<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Vladimir Nikishkin: Homepage</title>
<generator>Emacs webfeeder.el</generator>
<link href="https://lockywolf.net/"/>
<link href="https://lockywolf.net/atom-full.xml" rel="self"/>
<id>https://lockywolf.net/atom-full.xml</id>
<updated>2026-03-01T04:48:28+00:00</updated>
<entry>
  <title>How to install and start using LineageOS on your phone.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How to install and start using LineageOS on your phone.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Warning-1">0.1. Warning 1</a></li>
 <li> <a href="#Warning-2">0.2. Warning 2</a></li>
</ul> <li> <a href="#The-Manual">1. The Manual</a>
 <ul> <li> <a href="#Background">1.1. Background</a></li>
 <li> <a href="#Building-LineageOS">1.2. Building LineageOS</a>
 <ul> <li> <a href="#Git-and-repo">1.2.1. Git and repo</a></li>
 <li> <a href="#The-build-system,-Soong,-ckati,-ninja,-Android.bp,-and-Make">1.2.2. The build system, Soong, ckati, ninja, Android.bp, and Make</a></li>
 <li> <a href="#Android-Studio-and-Android-Studio-for-Platform">1.2.3. Android Studio and Android Studio for Platform</a></li>
</ul></li>
 <li> <a href="#Basics-of-Android-architecture">1.3. Basics of Android architecture</a>
 <ul> <li> <a href="#Overview">1.3.1. Overview</a></li>
 <li> <a href="#Kernel">1.3.2.  <span class="todo TODO">TODO</span> Kernel</a></li>
 <li> <a href="#VINTF-(vendor-interface)">1.3.3.  <span class="todo TODO">TODO</span> VINTF (vendor interface)</a></li>
 <li> <a href="#HAL,-AIDL,-HIDL,-and-SP-HAL-and-Binder">1.3.4.  <span class="todo TODO">TODO</span> HAL, AIDL, HIDL, and SP-HAL and Binder</a></li>
 <li> <a href="#Vendor,-ODM,-NDK,-VNDK,-Treble,-apex,-and-linker-namespaces">1.3.5. Vendor, ODM, NDK, VNDK, Treble, apex, and linker namespaces</a></li>
 <li> <a href="#Properties">1.3.6. Properties</a></li>
 <li> <a href="#Graphics-and-SurfaceFlinger">1.3.7.  <span class="todo TODO">TODO</span> Graphics and SurfaceFlinger</a></li>
 <li> <a href="#Audio-and-AudioFlinger">1.3.8.  <span class="todo TODO">TODO</span> Audio and AudioFlinger</a></li>
 <li> <a href="#SELinux,-SEAndroid,-and-permissions">1.3.9. SELinux, SEAndroid, and permissions</a></li>
 <li> <a href="#Partitions,-boot-process,-fastboot-and-recovery">1.3.10. Partitions, boot process, fastboot and recovery</a></li>
 <li> <a href="#Secret-proprietary-manufacturer-related-tools">1.3.11. Secret proprietary manufacturer-related tools</a></li>
 <li> <a href="#Important-points-in-Android-system">1.3.12. Important points in Android system</a></li>
 <li> <a href="#More-about-partitions-and-storage">1.3.13.  <span class="todo TODO">TODO</span> More about partitions and storage</a></li>
</ul></li>
 <li> <a href="#Using-LineageOS-on-your-own-device">1.4. Using LineageOS on your own device</a>
 <ul> <li> <a href="#Android-Debugging-Bridge-(ADB)-and-shell-commands">1.4.1. Android Debugging Bridge (ADB) and shell commands</a></li>
 <li> <a href="#Android.bp-and-Android.mk">1.4.2. Android.bp and Android.mk</a></li>
 <li> <a href="#Important-points-in-Android-source-tree">1.4.3. Important points in Android source tree</a></li>
 <li> <a href="#Creating-a-module-for-your-own-device">1.4.4. Creating a module for your own device</a></li>
 <li> <a href="#Device-specific-module">1.4.5. Device-specific module</a></li>
 <li> <a href="#Extracting-binary-files">1.4.6. Extracting binary files</a></li>
 <li> <a href="#dtb-and-dtbo">1.4.7.  <span class="todo TODO">TODO</span> dtb and dtbo</a></li>
 <li> <a href="#AIDL-services">1.4.8.  <span class="todo TODO">TODO</span> AIDL services</a></li>
 <li> <a href="#Writing-native-code">1.4.9. Writing native code</a></li>
 <li> <a href="#Android-apps">1.4.10. Android apps</a></li>
 <li> <a href="#Android-logging-and-crash-reporting">1.4.11. Android logging and crash reporting</a></li>
 <li> <a href="#Attaching-debuggers">1.4.12. Attaching debuggers</a></li>
 <li> <a href="#SDK-and-NDK-versioning-and-other-API-fiddling">1.4.13.  <span class="todo TODO">TODO</span> SDK and NDK versioning and other API fiddling</a></li>
</ul></li>
 <li> <a href="#Transplanting-an-app-to-LineageOS">1.5. Transplanting an app to LineageOS</a>
 <ul> <li> <a href="#General-development-iterations-and-tricks-to-shorten-them">1.5.1. General development iterations and tricks to shorten them</a></li>
 <li> <a href="#First-debugging-steps">1.5.2. First debugging steps</a></li>
 <li> <a href="#Log-based-debugging,-tombstones,-and-simple-tools">1.5.3. Log-based debugging, tombstones, and simple tools</a></li>
 <li> <a href="#Linker-and-~dlopen~-dependency-mapping">1.5.4. Linker and  <code>dlopen</code> dependency mapping</a></li>
 <li> <a href="#Java,-jadx,-smali,-and-adding-polyfills">1.5.5. Java, jadx, smali, and adding polyfills</a></li>
 <li> <a href="#C++,-Ghidra,-gas,-ddisasm,-and-aarch64">1.5.6. C++, Ghidra, gas, ddisasm, and aarch64</a></li>
 <li> <a href="#Frida">1.5.7. Frida</a></li>
 <li> <a href="#Adding-sections-to-binary-files,-add-linking-C-functions-and-~GNU-Poke~">1.5.8.  <span class="todo TODO">TODO</span> Adding sections to binary files, add-linking C functions and  <code>GNU Poke</code></a></li>
</ul></li>
 <li> <a href="#OnePlus-particulars">1.6. OnePlus particulars</a>
 <ul> <li> <a href="#Feature-summary">1.6.1. Feature summary</a></li>
 <li> <a href="#Previous-work">1.6.2. Previous work</a></li>
 <li> <a href="#Initial-debugging-with-~rg~,-~readelf~,-~logcat~-and-dependency-drawing.">1.6.3. Initial debugging with  <code>rg</code>,  <code>readelf</code>,  <code>logcat</code> and dependency drawing.</a></li>
 <li> <a href="#Rebuilding-the-camera-~apk~.">1.6.4. Rebuilding the camera  <code>apk</code>.</a></li>
 <li> <a href="#~camxoverridesettings.txt~">1.6.5.  <code>camxoverridesettings.txt</code></a></li>
 <li> <a href="#~oplus-fwk.jar~">1.6.6.  <code>oplus-fwk.jar</code></a></li>
 <li> <a href="#Solving-a-race-condition-with-Smali">1.6.7. Solving a race condition with Smali</a></li>
 <li> <a href="#slomo-workaround">1.6.8. slomo workaround</a></li>
 <li> <a href="#Decompiling-and-finding-the-logging-parameters.">1.6.9. Decompiling and finding the logging parameters.</a></li>
 <li> <a href="#~AHardware_GetNativeBuffer~">1.6.10.  <code>AHardware_GetNativeBuffer</code></a></li>
 <li> <a href="#Metadata-in-the-vendor-camera-hal-provider">1.6.11. Metadata in the vendor camera hal provider</a></li>
 <li> <a href="#What-actually-is-%22stream-metadata%22?">1.6.12. What actually is “stream metadata”?</a></li>
 <li> <a href="#SELinux-details">1.6.13. SELinux details</a></li>
 <li> <a href="#Potential-future-work">1.6.14. Potential future work</a></li>
 <li> <a href="#App-structure">1.6.15. App structure</a></li>
</ul></li>
 <li> <a href="#Collected-Bibliography">1.7. Collected Bibliography</a></li>
</ul></li>
 <li> <a href="#Blurb">2. Blurb</a></li>
 <li> <a href="#Local-Words">3. Local Words</a></li></div>
</nav> <blockquote>
 <p>
If you can program in assembly, all software is Open Source.
</p>
</blockquote>

 <p>
Android is one of the most popular operating systems in the world.
I is probably also one of the most versatile, used on PCs, phones, cars, autonomous devices such as drones, fridges, and many more.
</p>

 <p>
However, unlike Windows or Linux, which boast a lot of ready-to-buy manuals, guiding the user from zero to confident usage of the system, Android is a system which is expected to be “used intuitively”.
Maybe initially it was like this, but many years have passed since a cute new OS codename “Donut” was released on a couple of phone models.
</p>

 <p>
Hopefully, this manual can serve as a “missing manual” for people who want to use Android efficiently, which is more relevant in 2026 than ever, because a few releases ago Google introduced a “Desktop Mode” for Android, which means that at some point users might consider homogenising their computing environments: both the laptop and the phone will be Android.
</p>

 <div id="outline-container-Warning-1" class="outline-3">
 <h3 id="Warning-1"> <span class="section-number-3">0.1.</span>  <a href="#Warning-1">Warning 1</a></h3>
 <div class="outline-text-3" id="text-Warning-1">
 <p>
I am not a programmer by trade, I had zero fun doing all of that, and many things I did were probably crutches intended to overcome Android’s lack of documentation.
</p>
</div>
</div>

 <div id="outline-container-Warning-2" class="outline-3">
 <h3 id="Warning-2"> <span class="section-number-3">0.2.</span>  <a href="#Warning-2">Warning 2</a></h3>
 <div class="outline-text-3" id="text-Warning-2">
 <p>
This manual is born out of my own experiences of learning Android, and it is missing several important bits which I did not have a necessity or opportunity to research:
</p>

 <ol class="org-ol"> <li>Binder, AIDL, HAL, and  <code>servicemanager</code> :: for such important concepts they are barely mentioned</li>
 <li>Storage system, filesystems and providers :: same woe</li>
 <li>SurfaceFlinger and AudioFlinger :: same woe</li>
 <li>Kernel building and dtb/dts/dtsi :: this is the most lamentable</li>
 <li>VINTF</li>
 <li>App development is barely a sketch with a few links, but I do not mind this really, as there are a lot of books on app development</li>
</ol> <p>
These subjects are marked by the “TODO” marker, and I would appreciate if someone sends me a piece of text to fill in each of this lacunae.
</p>

 <p>
So, despite having several TODOs this document is considered “finished” in its current form in the sense that I do not plan to pro-actively improve it.
(If I even have a real need to fill-in the lacunae, there will be a new “version”.)
</p>
</div>
</div>

 <section id="outline-container-The-Manual" class="outline-2"> <h2 id="The-Manual"> <span class="section-number-2">1.</span>  <a href="#The-Manual">The Manual</a></h2>
 <div class="outline-text-2" id="text-The-Manual">
</div>

 <div id="outline-container-Background" class="outline-3">
 <h3 id="Background"> <span class="section-number-3">1.1.</span>  <a href="#Background">Background</a></h3>
 <div class="outline-text-3" id="text-Background">
 <p>
Why is it worth installing an OS on your phone?
I guess my noble readers will not buy an ideological excuse “to be able to do anything you want with your phone”, because what is it that you really need to do with your phone?
Every extra movement has to be justified.
</p>

 <p>
Why is just having a  <code>root</code> account on your phone not enough?
 <b>Firstly</b>, one answer to this is  <span class="underline">private app permissions</span>.
So-called “private apps” on Android have permissions exceeding those of normal “system apps”, and they have to be signed with the “platform key”, which is only possible having access to the manufacturer’s “private key” ( <a href="https://en.wikipedia.org/wiki/Public-key_cryptography">https://en.wikipedia.org/wiki/Public-key_cryptography</a>).
</p>

 <p>
 <b>Secondly</b>, having a vendor-independent OS on your device makes less likely that you become dependent on a program of a particular vendor solving your pain point.
What happens if the vendor stops supporting your program or even goes bankrupt?
If you sufficiently rely on your favourite program, you are going to suffer, and if you do not, you are probably under-using your phone, it could serve you better.
</p>

 <p>
 <b>Thirdly</b>, third-party developers are much more likely to invest into developing code for an open system than to a system fully controlled particular vendor.
I bet you really do not want to read ASUS’ developer documentation.
</p>

 <p>
 <b>Fourthly</b>, I have not found a way to run  <code>adbd</code> (see later) as  <code>root</code> on my (rooted) previous phone, which makes backing things up a bit more of a pain.
I really love backing things up.
In particular, I have a script to restore a familiar working environment on a phone even if its predecessor was crushed in a car crash.
Just copy a bunch of settings from the laptop and you are good to go.
</p>

 <p>
 <b>Fifthly</b>, this allows you to update SELinux policies without the pain of decompiling them.
</p>

 <p>
 <b>Sixthly</b>, installing your own system services becomes much simpler, no need to suffer from Magisk any more.
</p>
</div>
</div>

 <div id="outline-container-Building-LineageOS" class="outline-3">
 <h3 id="Building-LineageOS"> <span class="section-number-3">1.2.</span>  <a href="#Building-LineageOS">Building LineageOS</a></h3>
 <div class="outline-text-3" id="text-Building-LineageOS">
 <p>
In theory, this part is not even that badly documented:
</p>

 <ol class="org-ol"> <li> <a href="https://source.android.com/docs/setup/start/requirements">https://source.android.com/docs/setup/start/requirements</a></li>
</ol></div>

 <div id="outline-container-Git-and-repo" class="outline-4">
 <h4 id="Git-and-repo"> <span class="section-number-4">1.2.1.</span>  <a href="#Git-and-repo">Git and repo</a></h4>
 <div class="outline-text-4" id="text-Git-and-repo">
 <ol class="org-ol"> <li> <a href="https://source.android.com/docs/setup/download/source-control-tools">https://source.android.com/docs/setup/download/source-control-tools</a></li>
 <li> <a href="https://www.akshaydeo.com/switching-branch-with-repo-for-android-source-code/">https://www.akshaydeo.com/switching-branch-with-repo-for-android-source-code/</a></li>
 <li> <a href="https://source.android.com/docs/setup/reference/repo">https://source.android.com/docs/setup/reference/repo</a></li>
</ol> <p>
 <code>repo</code> is a tool to fetch Android.
It is essentially a different (to  <code>git submodule</code>) approach to multi-repository source trees.
</p>

 <p>
You initialise it by running
</p>

 <div class="org-src-container">
 <pre class="src src-shell">repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/LineageOS/android.git -b lineage-23.2  --git-lfs
</pre>
</div>

 <p>
The same command  <i>should</i> also work when switching versions.
In theory it is enough to just replace the branch name.
</p>

 <p>
There are tricks, however.
 <code>repo</code> is not error-resistant.
When it fails, it does not take care to restore the original state of the source tree, it just fails, often leaving individual  <code>git</code> repos in an inconsistent state.
You might have to repair those repos manually, usually by aborting merges, committing uncommitted files, or something like that.
</p>

 <p>
 <code>repo</code> is basically just helps maintaining a list of git repositories, revisions, and remotes, and calls git commands for individual repos.
</p>

 <p>
The files to study to understand it are:  <code>./repo/manifests/default.xml</code> and  <code>./repo/.repo/local_manifests/local_manifest.xml</code>.
</p>

 <p>
The first one is the list of repos for the main tree of Android, and the second one is for you to add references to repos specific to your device.
</p>

 <p>
Remote server definitions are quite self-explanatory, except, perhaps, a special path called  <code>".."</code>.
This is a  <i>parent directory with respect to the default repo</i>.
</p>

 <p>
There is an XML tag for “default settings”, called  <code>default</code>:
</p>
 <div class="org-src-container">
 <pre class="src src-xml">< <span style="font-weight: bold;">default</span>  <span style="font-weight: bold; font-style: italic;">revision</span>= <span style="font-style: italic;">"refs/heads/lineage-23.2"</span>
          <span style="font-weight: bold; font-style: italic;">remote</span>= <span style="font-style: italic;">"github"</span>
          <span style="font-weight: bold; font-style: italic;">sync-c</span>= <span style="font-style: italic;">"true"</span>
          <span style="font-weight: bold; font-style: italic;">sync-j</span>= <span style="font-style: italic;">"4"</span> />
</pre>
</div>
</div>
</div>

 <div id="outline-container-The-build-system,-Soong,-ckati,-ninja,-Android.bp,-and-Make" class="outline-4">
 <h4 id="The-build-system,-Soong,-ckati,-ninja,-Android.bp,-and-Make"> <span class="section-number-4">1.2.2.</span>  <a href="#The-build-system,-Soong,-ckati,-ninja,-Android.bp,-and-Make">The build system, Soong, ckati, ninja, Android.bp, and Make</a></h4>
 <div class="outline-text-4" id="text-The-build-system,-Soong,-ckati,-ninja,-Android.bp,-and-Make">
 <p>
Official build system documentation is so terrible that I am not even linking it here, as it’s completely pointless.
</p>

 <p>
It is convoluted and consists of several mutually duplicating parts.
</p>

 <p>
You might hear the words “Soong”, “CKati”, “Jack”, and “Bazel”.
There are also shell functions (pay attention, they are not files!, they are bash functions), which are expected to control the build, and they also seem to have bit-rotted a bit.
</p>

 <p>
First of all, go to  <code>build/make</code>, and add a pair of commands to enable ccache when building Android.
</p>

 <div class="org-src-container">
 <pre class="src src-patch">diff --git a/envsetup.sh b/envsetup.sh
index 12a69fc77b..d20f01aac7 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -15,6 +15,10 @@
 # gettop is duplicated here and in shell_utils.mk, because it's difficult
 # to find shell_utils.make without it for all the novel ways this file can be
 # sourced.  Other common functions should only be in one place or the other.
+
+export CC_WRAPPER=/usr/bin/ccache
+export USE_CCACHE=1
+
 function _gettop_once
 {
     local TOPFILE=build/make/core/envsetup.mk
</pre>
</div>

 <p>
Or you can add the same lines to your own bash build script, which is expected to  <code>source</code> the aforementioned  <code>source  build/envsetup.sh</code>.
This is documented somewhere, but the page mentioned does not seem to have this any more.
</p>

 <p>
The bash functions you might find are the following:
</p>

 <ol class="org-ol"> <li> <code>m</code></li>
 <li> <code>mm</code></li>
 <li> <code>make</code></li>
 <li> <code>mka</code></li>
 <li> <code>breakfast</code></li>
 <li> <code>brunch</code></li>
 <li> <code>lunch</code></li>
</ol> <p>
In theory they were expected to have their own meaning, in particular,  <code>breakfast</code> is expected to select the device configuration for building.
However, in my experience you usually only have a single device in the source tree anyway, so you do not need it.
</p>

 <p>
There should be a way to switch between debug, userdebug, and release configurations with these:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">lunch lineage_<codename>-<build number>-<build-flavour>
</pre>
</div>

 <p>
Where codename is your device code name (you have to find it out!), and it is not the same code name as board code name.
For example for my device the code name is  <code>xigua</code> (Chinese for Watermelon), and the board name is  <code>kalama</code> (a city name).
</p>

 <p>
But in my case just typing  <code>brunch xigua</code> was enough.
</p>

 <p>
In any case, in order to just run the build with a single command, I wrote a bash script:
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">export</span>  <span style="font-weight: bold; font-style: italic;">CC_WRAPPER</span>=/usr/bin/ccache
 <span style="font-weight: bold;">export</span>  <span style="font-weight: bold; font-style: italic;">USE_CCACHE</span>=1
( reset
rm out/target/product/xigua/lineage-23.0-*-UNOFFICIAL-xigua.zip*
source  build/envsetup.sh
(  <span style="font-weight: bold;">cd</span>  ~/Lineage-Camera/cam-oplus-15/
 ./mine_repack-cam.bash ||  <span style="font-weight: bold;">exit</span> 1
  <span style="font-weight: bold;">exit</span> 0 ; )
(  <span style="font-weight: bold;">cd</span> ./vendor/oplus/camera/
  ./extract-files.py --no-cleanup  ~/Lineage-Camera/009_15.0.0.860 ||  <span style="font-weight: bold;">exit</span> 1
   <span style="font-weight: bold;">exit</span> 0 ;  ) ||  <span style="font-weight: bold;">exit</span> 1
printf  <span style="font-style: italic;">"mine:camera files extracted\n"</span>
(  <span style="font-weight: bold;">cd</span> device/oneplus/xigua
  ./extract-files.py --only-target --no-cleanup  ~/Lineage-Camera/009_15.0.0.860 ||  <span style="font-weight: bold;">exit</span> 1
   <span style="font-weight: bold;">exit</span> 0 ; ) ||  <span style="font-weight: bold;">exit</span> 1
printf  <span style="font-style: italic;">"mine:device files extracted\n"</span>
 <span style="font-weight: bold;">export</span>  <span style="font-weight: bold; font-style: italic;">CC_WRAPPER</span>=/usr/bin/ccache
 <span style="font-weight: bold;">export</span>  <span style="font-weight: bold; font-style: italic;">USE_CCACHE</span>=1
brunch xigua  ||  <span style="font-weight: bold;">exit</span> 1
 <span style="font-weight: bold;">exit</span> 0 ; )
 <span style="font-weight: bold; font-style: italic;">RETVAL</span>=$ <span style="font-weight: bold; font-style: italic;">?</span>
 <span style="font-weight: bold;">if</span> (( RETVAL == 0 )) ;  <span style="font-weight: bold;">then</span>
  espeak  <span style="font-style: italic;">'compilation finished with success'</span>
 <span style="font-weight: bold;">else</span>
  espeak  <span style="font-style: italic;">'compilation finished with failure'</span>
 <span style="font-weight: bold;">fi</span>
</pre>
</div>

 <p>
This build script is more complicated that I mentioned, but there are reasons for that.
</p>

 <ol class="org-ol"> <li>There is a need to extract binary drivers from the original firmware.</li>
 <li>There is a need to modify the camera app so that it would run on LineageOS.</li>
</ol> <p>
It might happen that you do not actually need (2), but you will probably need (1).
</p>

 <p>
This is documented here quite decently:  <a href="https://wiki.lineageos.org/extracting_blobs_from_zips_manually.html">https://wiki.lineageos.org/extracting_blobs_from_zips_manually.html</a>
</p>
</div>
</div>

 <div id="outline-container-Android-Studio-and-Android-Studio-for-Platform" class="outline-4">
 <h4 id="Android-Studio-and-Android-Studio-for-Platform"> <span class="section-number-4">1.2.3.</span>  <a href="#Android-Studio-and-Android-Studio-for-Platform">Android Studio and Android Studio for Platform</a></h4>
 <div class="outline-text-4" id="text-Android-Studio-and-Android-Studio-for-Platform">
 <ol class="org-ol"> <li>Android Studio ::  <a href="https://developer.android.com/studio">https://developer.android.com/studio</a></li>
 <li>Android Studio for Platform ::  <a href="https://developer.android.com/studio/platform">https://developer.android.com/studio/platform</a></li>
 <li>Gradle ::  <a href="https://gradle.org/">https://gradle.org/</a></li>
 <li>Emacs + jdtls</li>
</ol> <p>
I need to mention these, because they exists.
I did not use them much, except for writing a small polyfill library, so I cannot produce a meaningful critique.
In general, Android Studio is quite a decent tool, it is a version of JetBrains IDE, so, basically, the best IDE available in the ecosystem.
It is a safe choice, unless you are good enough of a developer to assemble your own tool-belt, based on Emacs.
</p>

 <p>
If you want to setup Android Studio for Platform, see the howto file in the LineageOS repo:
 <code>./lineage/wiki/pages/how-tos/import_to_android_studio.md</code>
</p>

 <p>
I use Emacs for development, but even though Emacs supports Eclipse JDTLS LSP server, it does not support Android java, so I ended up doing find+grep (fd+rg), like in the old times.
</p>
</div>
</div>
</div>


 <div id="outline-container-Basics-of-Android-architecture" class="outline-3">
 <h3 id="Basics-of-Android-architecture"> <span class="section-number-3">1.3.</span>  <a href="#Basics-of-Android-architecture">Basics of Android architecture</a></h3>
 <div class="outline-text-3" id="text-Basics-of-Android-architecture">
 <ol class="org-ol"> <li>Android Internals: A Confectioner’s Cookbook ::  <a href="http://newandroidbook.com/">http://newandroidbook.com/</a></li>
</ol> <p>
I don’t actually understand what I am writing here.
Not because I was not reading enough, honestly, but because all of it is so poorly documented that I am missing vocabulary to express my frustration.
</p>
</div>


 <div id="outline-container-Overview" class="outline-4">
 <h4 id="Overview"> <span class="section-number-4">1.3.1.</span>  <a href="#Overview">Overview</a></h4>
 <div class="outline-text-4" id="text-Overview">
</div>

 <ol class="org-ol"> <li> <a id="Android-code,-C-and-Java"></a> <a href="#Android-code,-C-and-Java">Android code, C and Java</a> <br></br> <div class="outline-text-5" id="text-Android-code,-C-and-Java">
 <p>
So, Android is basically Linux with a custom init, custom linker, custom libc, and custom standard IPC.
</p>

 <p>
In theory, you can use it as you would use Linux, with Linux users, command-line, shell scripts, C programs and pipes.
(Yes, pipes work on Android.)
</p>

 <p>
Android is mostly written in C++ and C, but it has first-class support for a variety of Java, which is to an extent compatible with Sun’s JVM.
</p>

 <p>
Java, despite being an interpreted high-level language, is getting preferential treatment on Android, in the sense that by the way of some artificial means some APIs are only available through Java calls, and are unavailable through native C calls.
</p>

 <p>
How can this be?
Of course, everything boils down to the C calls at the end, but some C calls can only be done by the Dalvik/ART Java virtual machine, and cannot be done through native libraries loaded through JNI.
</p>

 <p>
Yes, Android supports JNI.
For those who do not know, JNI is “Java native interface”, a way for Java programs to call C code.
Android has its own version of JNI, which generally works, and you can develop native “.so” files for “apps” using a set of programs called the “NDK”.
</p>

 <p>
Make no mistake, the “native code” developed using “NDK”, even though it is normal Linux native code, is not subject to the same restrictions on API as the native code in the Android tree.
</p>

 <p>
I am not exactly sure how these restrictions are enforced (probably through the dynamic linking mechanism), and the issue is complicated by the fact that native NDK “.so” files can “dlopen” native Android “.so” files.
</p>
</div>
</li>

 <li> <a id="Android-processes"></a> <a href="#Android-processes">Android processes</a> <br></br> <div class="outline-text-5" id="text-Android-processes">
 <ol class="org-ol"> <li> <a href="https://android.stackexchange.com/questions/58184/writing-to-dev-log-main-from-command-line">https://android.stackexchange.com/questions/58184/writing-to-dev-log-main-from-command-line</a></li>
</ol> <p>
But the basic difference is that the way “apps” and “native processes”, even though both are actually represented as native Linux processes in the kernel, are spawned in different ways.
Processes spawned by init or shell behave mostly like normal Linux processes, and are run through  <code>fork</code> and  <code>exec</code>, whereas “apps” are spawned by asking a primordial  <code>zygote</code> process to parse an  <code>.apk</code> file,  <code>fork</code> and load it into its JVM.
This allows  <code>zygote</code> to set restrictions on what a process can do, to drop privileges so that each “app” process is running as a separate Linux user, obtain a different SELinux context, and probably do something else.
This means that all “app” processes have as their “image” (that is, the initial binary file) the same binary called  <code>app_process64</code>.
You cannot call it directly though, which makes it an issue for debugging (with a debugger) “app” processes, because you cannot start them thorough a debugger, you have to attach after  <code>zygote</code> has already done its shady business.
</p>

 <p>
There is a way to execute  <code>dalvik</code> directly, with the command  <code>dalvikvm</code>, which asks for a class name, but I have not found a way to use this productively somehow.
</p>

 <p>
The default language is  <code>mksh</code>, which is very similar to GNU Bash, but less sophisticated.
</p>

 <ol class="org-ol"> <li>write into system log by  <code>log -t TAG "message"</code></li>
 <li> <code>inotifyd</code> is usually available</li>
 <li> <code>flock</code> is usually available</li>
 <li>You can download a lot of statically built standard programs  <a href="https://files.serverless.industries/bin/">https://files.serverless.industries/bin/</a></li>
</ol></div>
</li>

 <li> <a id="Init-scripts-and-services"></a> <a href="#Init-scripts-and-services">Init scripts and services</a> <br></br> <div class="outline-text-5" id="text-Init-scripts-and-services">
 <ol class="org-ol"> <li> <a href="https://android.googlesource.com/platform/system/core/+/master/init/README.md">https://android.googlesource.com/platform/system/core/+/master/init/README.md</a></li>
 <li> <a href="https://source.android.com/docs/security/features/selinux/device-policy#label_new_services_and_address_denials">https://source.android.com/docs/security/features/selinux/device-policy#label_new_services_and_address_denials</a></li>
</ol> <p>
I have not modified init files extensively, but Android’s init is a decent init system, which can start a system service (what is usually called an Android HAL in the documentation) and restart it when it crashes.
</p>

 <p>
 <code>servicename.rc</code> files are put into  <code>/etc/init/</code>.
Their syntax is well documented  <a href="https://android.googlesource.com/platform/system/core/+/master/init/README.md">https://android.googlesource.com/platform/system/core/+/master/init/README.md</a>
</p>

 <p>
Bless Google for not using SystemD for Android, but choosing a sane system.
</p>

 <p>
You can write a simple init file for starting a service at boot:
</p>

 <div class="org-src-container">
 <pre class="src src-init">service example_service /system/bin/sh /bin/example_services.sh
    class late_start    # Starts after core system services are up
    user root           # Runs as root
    group root shell
    seclabel u:r:shell:s0
    oneshot             # Runs the script once and then stops the service
</pre>
</div>
</div>
</li>


 <li> <a id="Frameworks"></a> <a href="#Frameworks">Frameworks</a> <br></br> <div class="outline-text-5" id="text-Frameworks">
 <p>
Zygote (Java) processes can use a set of libraries pre-packaged with Android, called “frameworks”.
This frameworks wrap a lot of native code, and some code is only available through “frameworks”, unavailable through native “.so” libraries, even if they are loaded through JNI by Zygote processes.
</p>

 <p>
I  <i>think</i>, but not sure, that some Java libraries can be installed on an already bootstrapped system as  <code>apk</code> files, and then their classes become available for use by other Java code.
At least this is what seems to be happening when we install Google Services on de-googled phones.
</p>

 <p>
This is supposed to be explained on this page:  <a href="https://source.android.com/docs/core/architecture">https://source.android.com/docs/core/architecture</a> , but if you can understand what the hell is going on there, you are certainly smarter than I am.
In particular I am unable to understand how “system services” can be both above and below “android runtime”, and what actually is that thing called “HAL”, which is mentioned about a thousand of times in the Google documentation, but never actually defined.
</p>

 <p>
In any case, if you want/need to add some Java libraries to your phone, the easiest way is to add this code to the “frameworks” module.
(I have not yet defined modules, sorry, but bear with me, they will be defined soon.)
</p>

 <p>
In fact, most phone manufacturers seem to add their own Java libraries to their phones, in order to make their phones unique and more functional than their competitors’.
</p>

 <p>
In particular, the company BBK, manufacturing phones branded OnePlus, is adding its own Java library called “oplus-framework.jar” (and many others).
In LineageOS it is usually replaced with an Open Source alternative called “oplus-fwk.jar”.
</p>

 <p>
Pre-installed Java libraries are called “boot jars” or “framework”.
(To be honest, I do not actually understand the difference between “framework” and “boot jars”.)
</p>

 <p>
For example, on a OnePlus phone, there are the many Java libraries:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">fd  <span style="font-style: italic;">'.jar$'</span> system/framework/ system_ext/framework/ | wc -l
225
</pre>
</div>

 <p>
On a LineageOS, there are a few, but much less:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">fd  <span style="font-style: italic;">'.jar$'</span> out/target/product/xigua/system/framework/ out/target/product/xigua/system_ext/framework/  | wc -l
70
</pre>
</div>

 <p>
I have no idea what is the difference between “system” and “system_ext”, and the description in the documentation seems vague.
</p>

 <p>
This, in any case, should prove to you that installing LineageOS is a worthy business, as who knows what all this unknown unaudited suspicious code is doing on your phone, especially running as “framework” (that is, “trusted”) code?
It might be transmitting your credit card numbers and medical records to some moles, who worked for BBK and managed to embed malicious code into their jars.
</p>

 <p>
Pre-installed Java classes (not file names) need to be declared in the file  <code>build/soong/scripts/check_boot_jars/package_allowed_list.txt</code>
Pre-installed Java libraries (files) should be added to module definitions by adding the following lines:
</p>

 <div class="org-src-container">
 <pre class="src src-makefile"> <span style="font-weight: bold; font-style: italic;">PRODUCT_PACKAGES</span> += \
    org.microo \
    com.heytap.market \
    com.heytap.cloud \
    com.coloros.cloud
 <span style="font-weight: bold; font-style: italic;">PRODUCT_BOOT_JARS</span> += \
    oplus-support-wrapper
</pre>
</div>

 <p>
 <code>PRODUCT_PACKAGES</code> needs to have  <span class="underline">Java classes</span>, not file names listed, whereas  <code>PRODUCT_BOOT_JARS</code> should have  <span class="underline">jar files</span>.
</p>

 <p>
Note that if you add your own Java libraries to your build, your patch will probably not be accepted neither to AOSP, nor to LineageOS, because… hmm… well, I guess they want to keep the system minimalist?
</p>
</div>
</li>

 <li> <a id="Modules,-packages,-and-activity-management"></a> <a href="#Modules,-packages,-and-activity-management">Modules, packages, and activity management</a> <br></br> <div class="outline-text-5" id="text-Modules,-packages,-and-activity-management">
 <p>
One of the first thing a programmer is looking for when learning a programming language is “how is code structured into modules”.
Even in the most basic “protected mode” bare assembly there are sections and segments in memory, supported by hardware.
Most people are used to the idea of “adding” a module to a system or “removing” a module from a system without a requirement to write any new code.
</p>

 <p>
There are two, seemingly non-overlapping concepts of “modules” in Android.
</p>

 <p>
One is “soong namespaces”.
Soong is the Android build system, already mentioned before, and its modules are defined in the  <code>Android.bp</code> files, and each module usually occupies a directory in a source tree.
 <code>Android.bp</code> will be discussed later, but you will probably need to have a look at the  <code>Android.bp</code> targets  <code>package</code> and  <code>soong_namespace</code>.
</p>

 <p>
 <b>Important</b>: in order to increase confusion, throughout Google’s documentation, the functions declaring build targets are usually called “modules”.
I.e.  <code>soong_namespace</code> is a  <i>module</i>, just as is  <i>cc_binary</i>.
</p>

 <p>
To increase confusion even more, there are  <i>packages</i> which are system modules stored in  <code>apk</code> files, named like  <code>com.lineageos.aperture</code>, and there are also “Java packages”, which are a feature of the Java programming language and entirely unrelated to Android, but usually bear the same names as the Android packages.
</p>

 <p>
Soong namespaces define how modules can interact with each other, interaction usually being either static linking, or dynamic linking, or  <code>dlopen</code>, or Binder calls.
</p>

 <p>
Targets with identical names in different namespaces should not cause a conflict.
</p>

 <p>
Packages, those distributed in  <code>apk</code> files, cannot access each other’s  <code>.so</code> libraries, but can call each other through Binder, and interact via some allowed UNIX IPC mechanisms, such as sockets.
</p>

 <p>
Some  <code>apk</code> packages are shipped with Lineage, and those come in several flavours:
</p>

 <ol class="org-ol"> <li>Built from source: those are literally Android “APP” source directories, copied into  <code>packages/apps/</code>, which are built by Soong itself.</li>
 <li>Shipped as pre-built  <code>apk</code> files, the Soong target for those is  <code>android_app_import</code>.
You can write your own module with an  <code>Android.bp</code>, or just add an  <code>apk</code> to  <code>proprietary-files.txt</code>, and  <code>extract-files.py</code> will generate these files for you.</li>
</ol> <p>
As far as I understand, there is no way to list which files on the file system are coming from which module, so in this respect Android is missing in 2026 what Slackware already had in 1993.
</p>

 <p>
On the other hand, you can list all packages using  <code>pm list packages</code>.
 <code>apk</code> files can contain JNI-loadable  <code>.so</code> files, but they are never installed on the file system directly, but rather are passed to apps via a virtual file system.
</p>
</div>
</li>
</ol></div>


 <div id="outline-container-Kernel" class="outline-4">
 <h4 id="Kernel"> <span class="section-number-4">1.3.2.</span>  <a href="#Kernel"> <span class="todo TODO">TODO</span> Kernel</a></h4>
 <div class="outline-text-4" id="text-Kernel">
 <ol class="org-ol"> <li> <a href="https://source.android.com/docs/setup/build/building-kernels">https://source.android.com/docs/setup/build/building-kernels</a></li>
</ol> <p>
Okay, I know nothing about building the kernel for LineageOS, except that it is built with bazel, and is shipped in three source tree modules:
</p>

 <ol class="org-ol"> <li> <code>kernel/<manufacturer>/sm8550</code></li>
 <li> <code>kernel/<manufacturer>/sm8550-devicetrees</code></li>
 <li> <code>kernel/<manufacturer>/sm8550-modules</code></li>
</ol> <p>
Kernel is one of the most interesting things in any Linux system, but I did not need to deal with it yet.
</p>

 <p>
The only thing to note is that Android is not using  <code>udev</code> to determine hardware configuration in runtime, it requires that all system devices be declared in advance in a data structure called “device tree”, which I know nothing about except that it is compiled and that it is also used in Linux on Raspberry Pi.
</p>

 <p>
About modules I also know nothing except that, as far as I understand, the kernel has to be Open Source, as it is under GPL, but modules do not, and a lot of phone manufacturers are providing drivers for their devices only as pre-built modules.
</p>

 <p>
The entry to the kernel build system is  <code>vendor/lineage/build/tasks/kernel.mk</code>.
</p>
</div>
</div>

 <div id="outline-container-VINTF-(vendor-interface)" class="outline-4">
 <h4 id="VINTF-(vendor-interface)"> <span class="section-number-4">1.3.3.</span>  <a href="#VINTF-(vendor-interface)"> <span class="todo TODO">TODO</span> VINTF (vendor interface)</a></h4>
 <div class="outline-text-4" id="text-VINTF-(vendor-interface)">
 <p>
This is another incredibly badly documented part of Android, even though it is central to its architecture.
( <a href="https://source.android.com/docs/core/architecture/vintf">https://source.android.com/docs/core/architecture/vintf</a>)
</p>

 <p>
So, Android is an operating system, and it needs to talk to hardware.
But it does not want to talk to hardware directly, querying the drivers, or  <code>udev</code> or  <code>/proc</code> or  <code>/sys</code>, it wants to talk to userspace daemons over Binder, and those daemons can implement the userspace<->kernelspace interaction in any way they want.
So it collects a list of  <i>requirements</i> , for some obscure reason called  <span class="underline">compatibility matrix</span> into an XML file, and expects to compare that XML with a  <span class="underline">device manifest</span>, which is also an XML file, in a similar format, which collects all  <i>capabilities</i> of a particular device, which is called a  <span class="underline">manifest</span>.
The same thing also happens in another direction, so we have  <i>framework manifest</i>,  <i>framework compatibility matrix</i>,  <i>device manifest</i>, and  <i>device compatibility matrix</i>.
</p>

 <p>
The most confusing thing is that both of those things are happening in the same source tree!
</p>

 <p>
All four XML files are compiled by the build system, and compared to each other to find if some services are not provided.
</p>

 <p>
I did not have to write them myself, but you probably will, if you want to port Lineage to your own device.
I can only recommend looking at how this VINTF is declared and requested in  <code>device/oneplus/xigua</code>.
</p>

 <p>
Device manifest files are usually placed into “ <i>vendor/etc/vintf</i>”, or “ <i>odm/etc/vintf</i>”, I don’t know which one goes where, and I don’t know how to tell the build system that “these XML files are for the VINTF, and these are not”.
</p>
</div>
</div>

 <div id="outline-container-HAL,-AIDL,-HIDL,-and-SP-HAL-and-Binder" class="outline-4">
 <h4 id="HAL,-AIDL,-HIDL,-and-SP-HAL-and-Binder"> <span class="section-number-4">1.3.4.</span>  <a href="#HAL,-AIDL,-HIDL,-and-SP-HAL-and-Binder"> <span class="todo TODO">TODO</span> HAL, AIDL, HIDL, and SP-HAL and Binder</a></h4>
 <div class="outline-text-4" id="text-HAL,-AIDL,-HIDL,-and-SP-HAL-and-Binder">
 <p>
This part is also documented poorly and I did not understand it.
</p>

 <p>
As mentioned above, Binder services have to be declared in the “VINTF” XML files, and there should be services, implemented as Linux binaries, started by  <code>init</code> from  <code>/{vendor,odm,system,system_ext}/etc/init/servicename.rc</code>, which provide their services via Binder calls.
</p>

 <p>
Binder has to do with memory mapping, but it’s not just a place in memory into which you can write some garbage, it’s more like Sun-RPC, there are two versions of the library, and there is a serialising-deserialising server between them.
( <a href="https://en.wikipedia.org/wiki/Sun_RPC">https://en.wikipedia.org/wiki/Sun_RPC</a>)
In Sun-RPC, there is an RPC compiler,  <code>rpcgen</code>, which creates  <code>.c</code>-files from  <code>.x</code> files, which can be compiled and linked into the client and server programs, so that they would call functions and do not deal with serialisation and network transfers themselves.
</p>

 <p>
Android Binder does something similar, but instead of  <code>rpcgen</code>, there are  <code>hidl</code> and  <code>aidl</code>.
</p>

 <p>
But I cannot actually give you an example of a three-stage compilation: AIDL, Server, Client, because I have not found it, and I didn’t actually need it for anything.
</p>

 <p>
But AIDL services can be called both from C++, and from Java, and somehow even from apps.
I wonder, how AIDL interfaces are getting to  <code>apk</code> writers?
</p>

 <p>
In any case, services not just have to be declared in the VINTF, but also registered when they start, with “service manager” or “hw service manager”.
I don’t know how this is done, but I have seen a mention of this thing.
</p>

 <p>
But there is more to it.
There is such a thing as SP-HAL.
SP stands for Same Process.
</p>

 <p>
This means that you can just link to a library, or  <code>dlopen</code> a library, and use its functions.
They do not have to actually do anything with hardware… I think.
</p>

 <p>
In any case, I have no idea whether  <span class="underline">all</span> libraries supplied by Android are a part of SP-HAL, or not.
Again, all of this is very confusing and poorly documented.
If you can explain this to me in a consistent way, feel free to email me.
</p>
</div>
</div>



 <div id="outline-container-Vendor,-ODM,-NDK,-VNDK,-Treble,-apex,-and-linker-namespaces" class="outline-4">
 <h4 id="Vendor,-ODM,-NDK,-VNDK,-Treble,-apex,-and-linker-namespaces"> <span class="section-number-4">1.3.5.</span>  <a href="#Vendor,-ODM,-NDK,-VNDK,-Treble,-apex,-and-linker-namespaces">Vendor, ODM, NDK, VNDK, Treble, apex, and linker namespaces</a></h4>
 <div class="outline-text-4" id="text-Vendor,-ODM,-NDK,-VNDK,-Treble,-apex,-and-linker-namespaces">
 <p>
So, as mentioned in the previous section, Android cares a lot about abstraction barriers between different parties involved into the creation of a device.
In most cases there are at least three parties:
</p>

 <ol class="org-ol"> <li>Google (framework)</li>
 <li>BBK/OnePlus (ODM)</li>
 <li>Qualcomm (vendor)</li>
</ol> <p>
Google thinks that the interactions between them three should be if not tightly controlled, then at least well declared, and hence introduces VINTF.
</p>

 <p>
Now believe me or not, but each of those parties has a partition allocated specifically for itself, and since Project Treble even two (suffixed _a and _b).
</p>

 <p>
Wait, I didn’t say anything about partitioning on Android before.
This should be a whole section dedicated to it, but so far I can tell you that “vendor”, “odm”, and “system_ext” are separate partitions.
Moreover, at least on my phone, both  <code>vendor</code> and  <code>odm</code> are read-only images of an  <code>ext2</code> file system, and cannot be remounted read-write, only rebuilt.
</p>

 <p>
Why is that?
Well, because the three parties do not communicate to ensure common library interface, and end up with API and ABI incompatibility issues.
So, the decision ended up being: give each party its own set of basic Android libraries, and make the dynamic linker ensure in runtime that programs associated with  <code>vendor</code>, say, the camera provider services (a process run by init, which is allowed to open  <code>/dev/video0</code> and which services captured frames via a Binder service registered with the  <code>servicemanager</code>) can only link dynamically and  <code>dlopen</code>  <code>.so</code> files from  <code>/vendor/lib64</code>, even if it is given an  <code>LD_LIBRARY_PATH</code> or  <code>LD_PRELOAD</code>.
</p>

 <p>
Linker also enforces restrictions on which libraries can be accessed by  <code>.so</code> libraries shipped with  <code>apk</code> files.
</p>

 <p>
Now the important question:
 <b>Which libraries can be used where? Does anybody have a list?</b>
</p>
</div>

 <ol class="org-ol"> <li> <a id="APEXes"></a> <a href="#APEXes"> <span class="todo TODO">TODO</span> APEXes</a> <br></br> <div class="outline-text-5" id="text-APEXes">
 <p>
But there is more to it.
Since everyone is using similar libraries with slightly varying ABIs, there arose an need in more than three individual sets of libraries, and APEX appeared.
Apex files are zip archives which are mounted by the  <code>apexd</code> on boot under the  <code>/apex/</code> sub-tree, and can contain anything.
</p>

 <p>
Programs should be able to use those libraries (and resources) if the path is given to the program explicitly, but how do we give a specific set of libraries to a specific app which was not designed for this?
Could be very convenient.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Properties" class="outline-4">
 <h4 id="Properties"> <span class="section-number-4">1.3.6.</span>  <a href="#Properties">Properties</a></h4>
 <div class="outline-text-4" id="text-Properties">
 <ol class="org-ol"> <li> <a href="https://source.android.com/docs/core/architecture/configuration/add-system-properties">https://source.android.com/docs/core/architecture/configuration/add-system-properties</a></li>
</ol> <p>
So, Android has a unified configuration system called “properties”.
Properties are essentially a global key-value database, accessible through the  <code>/proc</code> filesystem, where they are represented as files, which allows them to have SELinux labels.
Properties are accessible to console programs with  <code>getprop</code>,  <code>setprop</code>, and  <code>__android_property_get</code>, and through Java API.
</p>

 <p>
They are stored in
</p>
 <ol class="org-ol"> <li> <code>/default.prop</code></li>
 <li> <code>/system/build.prop</code></li>
 <li> <code>/system/default.prop</code></li>
 <li> <code>/vendor/build.prop</code></li>
 <li>some other  <code>*.prop</code> files</li>
</ol> <p>
This part, surprisingly, actually has a decent HOWTO about it written by Google, so I will just link it here:
</p>

 <p>
 <a href="https://source.android.com/docs/core/architecture/configuration/add-system-properties">https://source.android.com/docs/core/architecture/configuration/add-system-properties</a>
</p>

 <p>
I will note that properties are divided into “system” properties and “vendor” properties, distinguished by specific prefixes.
</p>
 <div class="verbatim" id="orgd00a7e9">
 <p>
ctl.odm.
ctl.vendor.
ctl.start$odm.
ctl.start$vendor.
ctl.stop$odm.
ctl.stop$vendor.
init.svc.odm.
init.svc.vendor.
ro.odm.
ro.vendor.
odm.
persist.odm.
persist.vendor.
vendor.
</p>

</div>

 <p>
 <code>ro.</code> properties are writable only by  <code>init</code>, or by the build system.
 <code>persist</code> properties survive a reboot.
</p>

 <p>
In the build system, properties are defined either with
 <code>PRODUCT_{PARTITION}_PROPERTIES</code> (in the Makefile), or in  <code>TARGET_{PARTITION}_PROP</code> (in separate files).
</p>

 <p>
The biggest question is “why are properties different by partition?”.
I don’t know, but if your program or app cannot read or write a property, probably it needs to be moved to a different partition.
</p>

 <p>
Properties have SELinux labels, and those are defined in the files called  <code>property_contexts</code>, for example  <code>ro.vendor.oplus.camera.frontCamSize       u:object_r:vendor_camera_prop:s0</code>
</p>

 <p>
The full list of property contexts is probably somewhere under  <code>system/sepolicy</code> or in Qualcomm directories.
</p>

 <p>
Now the good idea would be to make an exhaustive list of all properties with explanation what those properties do.
The list can be obtained by running just  <code>getprop</code>, but what the meanings…
Maybe at least make a wiki page?
</p>
</div>
</div>

 <div id="outline-container-Graphics-and-SurfaceFlinger" class="outline-4">
 <h4 id="Graphics-and-SurfaceFlinger"> <span class="section-number-4">1.3.7.</span>  <a href="#Graphics-and-SurfaceFlinger"> <span class="todo TODO">TODO</span> Graphics and SurfaceFlinger</a></h4>
 <div class="outline-text-4" id="text-Graphics-and-SurfaceFlinger">
 <p>
I know nothing about this, except that there is a data structure called  <code>AHardwareBuffer</code>, and you can manipulate it a lot.
</p>

 <p>
SurfaceFlinger is the Android GUI system, I guess, the only one which can read/write  <code>/dev/drm</code> or  <code>/dev/dri</code>.
</p>
</div>
</div>

 <div id="outline-container-Audio-and-AudioFlinger" class="outline-4">
 <h4 id="Audio-and-AudioFlinger"> <span class="section-number-4">1.3.8.</span>  <a href="#Audio-and-AudioFlinger"> <span class="todo TODO">TODO</span> Audio and AudioFlinger</a></h4>
 <div class="outline-text-4" id="text-Audio-and-AudioFlinger">
 <p>
I don’t know anything about them.
</p>
</div>
</div>

 <div id="outline-container-SELinux,-SEAndroid,-and-permissions" class="outline-4">
 <h4 id="SELinux,-SEAndroid,-and-permissions"> <span class="section-number-4">1.3.9.</span>  <a href="#SELinux,-SEAndroid,-and-permissions">SELinux, SEAndroid, and permissions</a></h4>
 <div class="outline-text-4" id="text-SELinux,-SEAndroid,-and-permissions">
 <ol class="org-ol"> <li> <a href="https://lineageos.org/engineering/HowTo-SELinux/">https://lineageos.org/engineering/HowTo-SELinux/</a></li>
 <li> <a href="https://source.android.com/docs/core/architecture/aidl/aidl-hals#sepolicy">https://source.android.com/docs/core/architecture/aidl/aidl-hals#sepolicy</a></li>
 <li> <a href="https://stackoverflow.com/questions/36790794/what-is-c512-c768-of-selinux-process">https://stackoverflow.com/questions/36790794/what-is-c512-c768-of-selinux-process</a></li>
 <li> <a href="https://rtx.meta.security/reference/2024/07/03/Android-system-apps.html">https://rtx.meta.security/reference/2024/07/03/Android-system-apps.html</a></li>
 <li> <a href="https://github.com/SELinuxProject/selinux-notebook/">https://github.com/SELinuxProject/selinux-notebook/</a></li>
</ol> <p>
SELinux is decently documented by “SELinux Notebook”, and the basic principle is not too hard, but the implementation is very convoluted.
</p>

 <p>
SEAndroid (a modification of SELinux for Android) is decently described here:  <a href="https://lineageos.org/engineering/HowTo-SELinux/">https://lineageos.org/engineering/HowTo-SELinux/</a>
</p>

 <p>
Basically, SELinux works like this:  <code>source x target x operation => allow</code>, and everything else is denied.
</p>

 <p>
Firstly, the language is very confusing.
Essentially, there is not difference between labels on source and target, so I am calling them “labels”.
This is the most visible in the following example: suppose a project A wants to kill project B, then a check would be  <code>scontext=label_a tcontext=label_b class=process acton=kill</code>.
When a process B wants to kill process A, the action would be the same, but  <code>scontext</code> and  <code>tcontext</code> would be reversed.
</p>

 <p>
However, you may often see the words “domain” and “context”, which are basically the same thing – labels.
</p>

 <p>
In Android, many things have labels:
</p>

 <ol class="org-ol"> <li>processes/apps</li>
 <li>properties</li>
 <li>files</li>
 <li>pseudo-files</li>
</ol> <p>
Apps are labelled in files called  <code>seapp_context</code>, properties are labelled in  <code>property_context</code>, and files in  <code>file_context</code>.
Permissions are given in  <code>/.te</code> files.
</p>

 <p>
Of course, writing all permissions and re-flashing the system is a pain, so there is a tool called  <code>sepolicy-inject</code>, which allows injecting policies into the running kernel.
File contexts can be changed with  <code>chcon</code>, but process/app contexts have to be rebuilt.
</p>

 <p>
SELinux has essentially seven types of statements:
</p>

 <ol class="org-ol"> <li> <code>allow</code> :: permit an operation and print its denial in log</li>
 <li> <code>neverallow</code> :: prohibit an operation</li>
 <li> <code>auditallow</code> :: allow an operation but print log</li>
 <li> <code>dontaudit</code> :: prohibit an operation and do not print its denial in log</li>
 <li> <code>define</code> :: define a macro with arguments which will expand to something</li>
 <li> <code>type</code> :: define a new label</li>
 <li> <code>typeargument</code> :: add property to a label</li>
</ol> <p>
 <code>define</code> is tricky, because it usually allows a lot of permissions, while prohibiting (with  <code>neverallow</code>) some actions which can  <span class="underline">only</span> be allowed via this macro
This make a naive policy of “Enable SELinux, look for denials in the log ( <code>dmesg</code>), allow as needed” impractical, because while you know that you need to allow something, you do not necessarily know the correct macros for allowing that operation, and allowing the actions directly will be prohibited via  <code>neverallow</code>.
</p>

 <p>
For the list of macros, see:
</p>

 <ol class="org-ol"> <li> <code>system/sepolicy</code></li>
 <li> <code>find hardware -name '*.te'</code></li>
</ol> <p>
A convenient pattern for debugging SELinux is to find an object you are interested in (say, a camera app), give it a separate label (say  <code>mycamera_app</code>) in  <code>seapp_contexts</code>, and look at  <code>dmesg</code> for the actions denied to it.
</p>
</div>
</div>

 <div id="outline-container-Partitions,-boot-process,-fastboot-and-recovery" class="outline-4">
 <h4 id="Partitions,-boot-process,-fastboot-and-recovery"> <span class="section-number-4">1.3.10.</span>  <a href="#Partitions,-boot-process,-fastboot-and-recovery">Partitions, boot process, fastboot and recovery</a></h4>
 <div class="outline-text-4" id="text-Partitions,-boot-process,-fastboot-and-recovery">
 <p>
As a last topic in this chapter, I want to touch partitions and Android boot process.
</p>

 <p>
In fact, in most operating system manuals this is the first chapter, combined with “how to install an OS”, but Android is a little different in that:
</p>
 <ol class="org-ol"> <li>most people do not to install Android themselves,</li>
 <li>installing Android is difficult, the whole chapter  <a href="#Using-LineageOS-on-your-own-device">1.4</a>
is dedicated to this,</li>
 <li>boot process and partition details vary significantly between different manufacturers</li>
</ol> <p>
In principle we know how a system should boot:
</p>

 <ol class="org-ol"> <li>BIOS finds a bootloader</li>
 <li>bootloader finds an OS kernel and root file system</li>
 <li>bootloader boots the OS kernel, passing the root file system location as a command-line</li>
 <li>kernel mounts the root filesystem, sometimes additional file systems, and starts the init, which does all the initialisation work</li>
</ol> <p>
But Android is different.
Indeed, there are partitions, and in theory they are on the MMC storage, there is a bootloader and a kernel, but how exactly they are implemented, seems to depend on the manufacturer a lot.
</p>

 <p>
It should be possible to see the full list of partitions on a device …
But the method how see them differs from a manufacturer to a manufacturer.
</p>

 <p>
And what is also bad, their amount is significantly greater than on a normal OS.
</p>
 <div class="org-src-container">
 <pre class="src src-shell">/dev/block/by-name  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">ls
</span>ALIGN_TO_128K_1    fsc             oplusdycnvbk    storsec
ALIGN_TO_128K_2    fsg             oplusreserve1   super
DRIVER             hyp_a           oplusreserve2   toolsfv
abl_a              hyp_b           oplusreserve3   tz_a
abl_b              imagefv_a       oplusreserve4   tz_b
aop_a              imagefv_b       oplusreserve5   tzsc
aop_b              init_boot_a     oplusstanvbk_a  uefi_a
aop_config_a       init_boot_b     oplusstanvbk_b  uefi_b
aop_config_b       keymaster_a     param           uefisecapp_a
apdp               keymaster_b     persist         uefisecapp_b
apdp_full          keystore        qmcs            uefivarstore
apdpb              last_parti      qupfw_a         userdata
bluetooth_a        limits          qupfw_b         vbmeta_a
bluetooth_b        limits-cdsp     qweslicstore_a  vbmeta_b
boot_a             logdump         qweslicstore_b  vbmeta_system_a
boot_b             logfs           rawdump         vbmeta_system_b
cdt                mdcompress      recovery_a      vbmeta_vendor_a
connsec            mdm1oemnvbktmp  recovery_b      vbmeta_vendor_b
cpucp_a            mdtp_a          rtice           vendor_boot_a
cpucp_b            mdtp_b          rticmpdata_a    vendor_boot_b
ddr                mdtpsecapp_a    rticmpdata_b    vm-bootsys_a
devcfg_a           mdtpsecapp_b    sda             vm-bootsys_b
devcfg_b           metadata        sdb             vm-data
devinfo            misc            sdc             vm-persist
dinfo              modem_a         sdd             xbl_a
dip                modem_b         sde             xbl_b
dsp_a              modemst1        sdf             xbl_config_a
dsp_b              modemst2        secdata         xbl_config_b
dtbo_a             multiimgoem_a   shrm_a          xbl_ramdump_a
dtbo_b             multiimgoem_b   shrm_b          xbl_ramdump_b
engineering_cdt_a  multiimgqti_a   splash_a        xbl_sc_logs
engineering_cdt_b  multiimgqti_b   splash_b        xbl_sc_test_mode
featenabler_a      ocdt            splash_odm
featenabler_b      oplus_sec_a     spunvm
frp                oplus_sec_b     ssd
</pre>
</div>

 <p>
The  <code>_a/_b</code> partitions are an implementation of a system called “Project Treble”, which was expected to help phone manufacturers deliver updates to their phones faster.
The idea was that  <code>system</code>,  <code>odm</code>, and  <code>vendor</code> partitions could be updated independently, and if an update fails, the phone reboots using a dual partition  <code>_b</code> if  <code>_a</code> failed, and vice-versa.
</p>

 <p>
In theory this would allow booting separate operating system images while keeping the driver partitions  <code>odm</code> and  <code>vendor</code> intact.
I am not sure this actually works anywhere except Google’s reference devices (Pixel).
</p>

 <p>
So, in theory, a Treble-enabled phone has at least two  <code>system</code> “root” partitions to boot, but there are actually more.
Many devices are able to boot into
</p>
 <ol class="org-ol"> <li>bootloader</li>
 <li>fastboot</li>
 <li>fastbootd</li>
 <li>edl</li>
 <li>recovery</li>
 <li>sideload</li>
 <li>system</li>
</ol> <p>
The bootloader, in theory, should be independent from the MMC storage and be bootable regardless of a system installed.
Fastboot is a “debugging interface”, usable through a command-line tool “fastboot”, which should allow re-flashing the system or individual partitions.
It is often combined with Fastboot into the same interface.
Usually it is also not kept in the main MMC.
</p>

 <p>
Recovery is a stripped-down version of Android, using the same kernel and loadable into ram filesystem.
It usually has  <i>some</i> kind of interface, but its main purpose is to be able to repair Android in case it is broken.
Together with recovery, there is also “fastbootD” (note the D).
It is a system implementing the fastboot protocol, but running from a booted system, such as recovery.
It is used to flash partitions which are not real partitions, but are read-only files (file system images) mounted loopback.
</p>

 <p>
Note that the list of partitions above does not have a  <code>system</code> partition.
This is because the  <code>system</code> partition is not real.
</p>

 <p>
For some reason, Android really likes having different components of the boot process as separate partitions.
</p>

 <p>
For example, on many phones you install Android like this:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">fastboot flash boot boot.img
fastboot flash init_boot init_boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash dtbo dtbo.img
fastboot flash recovery recovery.img
fastboot reboot sideload-auto-reboot
adb sideload lineage*.zip
</pre>
</div>

 <p>
 <code>fastboot reboot sideload</code> might be replaced with  <code>fastboot reboot recovery</code> and tapping “install update”.
</p>

 <ol class="org-ol"> <li> <code>boot</code> is essentially the kernel</li>
 <li> <code>init_boot</code> is the ramfs with initial userspace for the booted kernel</li>
 <li> <code>vendor_boot</code> is a similar ramfs with vendor files</li>
 <li> <code>dtbo</code> is the “device tree” describing the system you are running on</li>
 <li> <code>recovery</code> is also a ramfs with a the few recovery options and an interface to install the main system</li>
</ol></div>
</div>

 <div id="outline-container-Secret-proprietary-manufacturer-related-tools" class="outline-4">
 <h4 id="Secret-proprietary-manufacturer-related-tools"> <span class="section-number-4">1.3.11.</span>  <a href="#Secret-proprietary-manufacturer-related-tools">Secret proprietary manufacturer-related tools</a></h4>
 <div class="outline-text-4" id="text-Secret-proprietary-manufacturer-related-tools">
 <p>
Android is not Windows, and ARM is not x86.
</p>

 <p>
In general, ARM is a much worse of a system, restrictive, repressive, and limiting.
While on x86, it is possible to query the system for a lot of things about itself, ARM systems have not ACPI, or BIOS, or EFI.
Well, something like an EFI does exist, but is not widespread.
</p>

 <p>
As a result, firmware (like, real firmware, not the Android system) is often only accessible through secret tools sold by the manufacturer for a lot of money.
</p>

 <p>
Sometimes such tools are available to download though, and they are not user-friendly.
</p>

 <p>
These tools are often used by repair shops to restore completely broken devices.
The boot mode used by such tools is sometimes called EDL.
Some bootloaders allow booting into EDL manually.
</p>
</div>
</div>

 <div id="outline-container-Important-points-in-Android-system" class="outline-4">
 <h4 id="Important-points-in-Android-system"> <span class="section-number-4">1.3.12.</span>  <a href="#Important-points-in-Android-system">Important points in Android system</a></h4>
 <div class="outline-text-4" id="text-Important-points-in-Android-system">
 <ol class="org-ol"> <li> <code>/system</code> :: system files</li>
 <li> <code>/system_ext</code> :: emm… more system files?</li>
 <li> <code>/odm</code> :: brand-related (say OnePlus) things</li>
 <li> <code>/vendor</code> :: chipset manufacturer (say, Qualcomm) related things</li>
 <li> <code>/data</code> :: data
 <ol class="org-ol"> <li> <code>/data/data/</code> :: app data. Usually only one sub-directory there is available for an app to write files, say  <code>/data/data/com.termux</code></li>
 <li> <code>/data/data/adb</code> :: directory to place adb-related files</li>
 <li> <code>/data/tombstones</code> :: crash minidumps</li>
 <li> <code>/data/vendor/camera</code> :: camera intermediate directory and debug dumping directory</li>
</ol></li>
 <li> <code>/apex</code> :: sub-tree to mount specific sets of versions of system libraries, for compatibility reasons</li>
 <li>various  <code>*etc*</code> directories :: configuration files</li>
 <li>various  <code>*lib64*</code> directories :: shared libraries</li>
 <li>various  <code>*bin*</code> directories :: binary executable files</li>
</ol></div>
</div>

 <div id="outline-container-More-about-partitions-and-storage" class="outline-4">
 <h4 id="More-about-partitions-and-storage"> <span class="section-number-4">1.3.13.</span>  <a href="#More-about-partitions-and-storage"> <span class="todo TODO">TODO</span> More about partitions and storage</a></h4>
 <div class="outline-text-4" id="text-More-about-partitions-and-storage">
 <ol class="org-ol"> <li>Background reading:  <a href="https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt">https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt</a></li>
 <li> <a href="https://android.stackexchange.com/questions/203951/how-can-i-make-a-symlink-or-equivalent-inside-storage-emulated-0/">https://android.stackexchange.com/questions/203951/how-can-i-make-a-symlink-or-equivalent-inside-storage-emulated-0/</a></li>
 <li>sdcardfs :  <a href="https://www.xda-developers.com/diving-into-sdcardfs-how-googles-fuse-replacement-will-reduce-io-overhead/">https://www.xda-developers.com/diving-into-sdcardfs-how-googles-fuse-replacement-will-reduce-io-overhead/</a></li>
 <li> <a href="https://android.stackexchange.com/questions/197959/why-partition-gets-unmounted-automatically-after-some-time/200449#200449">https://android.stackexchange.com/questions/197959/why-partition-gets-unmounted-automatically-after-some-time/200449#200449</a></li>
 <li> <a href="https://android.stackexchange.com/questions/214288/how-to-stop-apps-writing-to-android-folder-on-the-sd-card/">https://android.stackexchange.com/questions/214288/how-to-stop-apps-writing-to-android-folder-on-the-sd-card/</a></li>
 <li> <a href="https://android.stackexchange.com/questions/217741/how-to-bind-mount-a-folder-inside-sdcard-with-correct-permissions/217936#217936">https://android.stackexchange.com/questions/217741/how-to-bind-mount-a-folder-inside-sdcard-with-correct-permissions/217936#217936</a></li>
 <li> <a href="https://developer.android.com/training/data-storage#scoped-storage">https://developer.android.com/training/data-storage#scoped-storage</a></li>
</ol></div>
</div>
</div>



 <div id="outline-container-Using-LineageOS-on-your-own-device" class="outline-3">
 <h3 id="Using-LineageOS-on-your-own-device"> <span class="section-number-3">1.4.</span>  <a href="#Using-LineageOS-on-your-own-device">Using LineageOS on your own device</a></h3>
 <div class="outline-text-3" id="text-Using-LineageOS-on-your-own-device">
 <p>
After you have progressed far enough to build Android for  <span class="underline">some</span> device, you will want to make it run on  <span class="underline">your</span> device.
</p>

 <p>
Smartphones are just computers, you can boot a lot of different stuff on them, but it does not mean that everything which boots is usable, you need to supply correct drivers in order for the device to work properly.
</p>

 <p>
Also a bare-bones system is not very productive, you will probably want to install your own software on it.
Android software comes both as Linux binaries, installable into  <code>bin</code> directories manually, and as  <code>apk</code> files installable by tapping onto the  <code>apk</code> file in the file manager.
</p>
</div>

 <div id="outline-container-Android-Debugging-Bridge-(ADB)-and-shell-commands" class="outline-4">
 <h4 id="Android-Debugging-Bridge-(ADB)-and-shell-commands"> <span class="section-number-4">1.4.1.</span>  <a href="#Android-Debugging-Bridge-(ADB)-and-shell-commands">Android Debugging Bridge (ADB) and shell commands</a></h4>
 <div class="outline-text-4" id="text-Android-Debugging-Bridge-(ADB)-and-shell-commands">
</div>

 <ol class="org-ol"> <li> <a id="~adb~"></a> <a href="#~adb~"> <code>adb</code></a> <br></br> <div class="outline-text-5" id="text-~adb~">
 <p>
ADB is a tool to manage an Android device via command-line.
It is powered by  <code>adbd</code> (ADB daemon), running on the device and implemented whatever the desktop  <code>adb</code> command tells it.
</p>


 <p>
ADB can do a lot of interesting things.
</p>

 <ol class="org-ol"> <li> <code>adb shell</code> will run a mksh shell on the device
 <ol class="org-ol"> <li> <code>adb logcat</code> will run a</li>
</ol></li>
 <li> <code>adb forward</code> will forward sockets between the phone and your development machine</li>
 <li> <code>adb pull</code> and  <code>adb push</code> will download and upload files from the device</li>
 <li> <code>adb reboot recovery</code> will reboot to recovery to install a new system or reset an old one</li>
 <li> <code>adb</code> can run over USB</li>
 <li> <code>adb -s <deviceid></code> selects a device if you have many</li>
 <li> <code>adb root</code> will run the next shell as root (no need for magisk)</li>
 <li> <code>adb sideload</code> will install files onto the device, including both  <code>apk</code> files and Android images prepared by the build system, and even some random  <code>zip</code> files with shady things, such as Magisk</li>
</ol> <p>
You can include calls to  <code>adb -s <deviceid> shell 'command line'</code> into your scripts to automate a lot of operations with the phone.
For example,  <code>adb shell 'input tap 100 100'</code> will imitate a tap to a device.
</p>

 <p>
In general you can do quite a lot through Android command-line.
</p>

 <p>
You need to activate ADB in the device settings, or add a few parameters changing the properties in the device Makefile.
</p>

 <div class="org-src-container">
 <pre class="src src-make">PRODUCT_PROPERTY_OVERRIDES += \
    ro.debuggable=1 \
    persist.service.adb.enable=1 \
    persist.service.debuggable=1 \
    persist.sys.usb.config=adb \
    ro.adb.secure=0
</pre>
</div>
</div>
</li>

 <li> <a id="~fastboot~"></a> <a href="#~fastboot~"> <code>fastboot</code></a> <br></br> <div class="outline-text-5" id="text-~fastboot~">
 <p>
 <code>fastboot</code> is a command similar to  <code>adb</code>, but intended to work with the bootloader, not a running system (even if in a recovery mode).
</p>

 <p>
You can use it to flash individual partitions on a system not having a full-featured  <code>adbd</code> running.
This usually happens when your system is broken.
</p>
</div>
</li>


 <li> <a id="Using-recovery."></a> <a href="#Using-recovery.">Using recovery.</a> <br></br> <div class="outline-text-5" id="text-Using-recovery.">
 <p>
If you boot into recovery, either from bootloader, or from system, or by pressing a magic key combo, you will find out that quite a few operations can be done in recovery.
For example, you can browse the file system and extract some data, if your system is not booting.
</p>

 <p>
Pay attention to  <code>dmesg</code> and  <code>/tmp/recovery.log</code>.
</p>

 <p>
In order to connect to recovery with  <code>adb</code>, you need to disable  <code>adb</code> security though.
</p>

 <p>
On most systems it means that you need to run the build system like  <code>WITH_ADB_INSECURE=true bunch xigua</code>, but this might be different on your Android.
</p>
</div>
</li>


 <li> <a id="on-device-commands-(~am~,-~pm~,-~settings~,-~input~)"></a> <a href="#on-device-commands-(~am~,-~pm~,-~settings~,-~input~)">on-device commands ( <code>am</code>,  <code>pm</code>,  <code>settings</code>,  <code>input</code>)</a> <br></br> <div class="outline-text-5" id="text-on-device-commands-(~am~,-~pm~,-~settings~,-~input~)">
 <p>
 <code>pm</code> manages packages, for example  <code>pm list packages</code> will produce package names,  <code>pm list permissions</code> will list permissions.
</p>

 <p>
 <code>am</code> is the activity manager, using it you an start app activities, even those which are otherwise inaccessible from the default app interface.
</p>

 <p>
For example, you can restart “Airplane Mode” by typing:
</p>

 <div class="org-src-container">
 <pre class="src src-sh"> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">!/system/bin/</span> <span style="font-weight: bold;">sh</span> <span style="font-weight: bold; font-style: italic;">
</span>  settings put global airplane_mode_on 1
  sleep 1
  am broadcast -a android.intent.action.AIRPLANE_MODE
  sleep 1
  settings put global airplane_mode_on 0
  sleep 1
  am broadcast -a android.intent.action.AIRPLANE_MODE
</pre>
</div>
</div>
</li>
</ol></div>



 <div id="outline-container-Android.bp-and-Android.mk" class="outline-4">
 <h4 id="Android.bp-and-Android.mk"> <span class="section-number-4">1.4.2.</span>  <a href="#Android.bp-and-Android.mk">Android.bp and Android.mk</a></h4>
 <div class="outline-text-4" id="text-Android.bp-and-Android.mk">
 <p>
Android has suffered a series of transformations from one build system to another, and the current one is sort of a mess.
I have not personally met Bazel, even though it is believed to be somewhere inside there too, but there are  <code>Android.mk</code> and  <code>Android.pb</code> to be aware of.
</p>

 <p>
Both are a variation of classical UNIX Make, you define targets, connect them with dependencies, and the system traverses the dependency tree and builds the resulting object.
 <code>Android.mk</code> is essentially a Makefile, but it is parsed by  <code>ckati</code> into a  <code>Ninja</code> script rather than executing the statements directly.
 <code>Android.bp</code> is also parsed into  <code>Ninja</code>, but by a different tool.
</p>

 <p>
You probably will not have to tweak  <code>Ninja</code> scripts at all, but  <code>Make</code> and  <code>Android.bp</code> files are interesting, and you will probably also not call  <code>ckati</code> or  <code>soong</code> (the proper name of the build system) directly.
</p>

 <p>
Good for us,  <code>Android.bp</code> kinds of targets are well documented:
</p>

 <ol class="org-ol"> <li>Syntax ::  <a href="https://source.android.com/docs/setup/reference/androidbp">https://source.android.com/docs/setup/reference/androidbp</a></li>
 <li>Modules ::  <a href="https://ci.android.com/builds/submitted/13288697/linux/latest/view/soong_build.html">https://ci.android.com/builds/submitted/13288697/linux/latest/view/soong_build.html</a></li>
</ol> <p>
 <code>Android.mk</code> is not so well documented, especially since it is expected to be phased out eventually.
</p>

 <p>
Nevertheless,  <code>Make</code> files are still very important, as they are used for device definitions, and you will have to write our own one (or adapt someone else’s) in order to successfully port Lineage.
</p>
</div>
</div>

 <div id="outline-container-Important-points-in-Android-source-tree" class="outline-4">
 <h4 id="Important-points-in-Android-source-tree"> <span class="section-number-4">1.4.3.</span>  <a href="#Important-points-in-Android-source-tree">Important points in Android source tree</a></h4>
 <div class="outline-text-4" id="text-Important-points-in-Android-source-tree">
 <ol class="org-ol"> <li> <code>device</code> :: mostly things related to a particular device, say, Samsung Galaxy S10
 <ol class="org-ol"> <li> <code>device/oneplus/sm8550-common</code> :: source files related to all devices by OnePlus built on Qualcomm sm8550</li>
 <li> <code>device/oneplus/xigua</code> :: source files related to a particular device. Will most likely inherit from a  <code>common-phone.mk</code> profile</li>
</ol></li>
 <li> <code>vendor</code> :: mostly related to things extracted from original firmware
 <ol class="org-ol"> <li> <code>/vendor/oneplus/sm8550-common</code> :: binaries from original firmware, which are chipset-related</li>
 <li> <code>/vendor/oneplus/xigua</code> :: ditto, concrete device related</li>
 <li> <code>/vendor/lineage/...</code> :: despite being in  <code>vendor</code>, not really binaries, actually I don’t know what it is, it makes little sense</li>
</ol></li>
 <li> <code>kernel</code> :: kernel-related directories</li>
 <li> <code>frameworks</code> :: system libraries available to Java apps</li>
 <li> <code>packages</code> :: pre-built apps</li>
 <li> <code>hardware</code> :: em… some more drivers, but not chipset-related? I am confused</li>
 <li> <code>external</code> :: things used in Android transparently, for example, Linux libraries, such as libxml2</li>
 <li> <code>system</code> :: system libraries and services unavailable to Java apps</li>
</ol></div>
</div>

 <div id="outline-container-Creating-a-module-for-your-own-device" class="outline-4">
 <h4 id="Creating-a-module-for-your-own-device"> <span class="section-number-4">1.4.4.</span>  <a href="#Creating-a-module-for-your-own-device">Creating a module for your own device</a></h4>
 <div class="outline-text-4" id="text-Creating-a-module-for-your-own-device">
 <p>
In general, you need three components for a device:
</p>

 <ol class="org-ol"> <li>Device module (say,  <code>device/oneplus/xigua.mk</code>)</li>
 <li>Device binaries (say,  <code>vendor/oneplus/xigua.mk</code>), usually extracted from an official build</li>
 <li>Device kernel
 <ol class="org-ol"> <li>Kernel itself  <code>kernel/oneplus/sm8550</code></li>
 <li>Modules  <code>kernel/oneplus/sm8550-modules</code></li>
 <li>Device trees (dtb files)  <code>kernel/oneplus/sm8550-devicetrees</code></li>
</ol></li>
</ol> <p>
Kernel, modules, and dtbs is often published by the manufacturer, for example:
</p>

 <p>
 <a href="https://github.com/OnePlusOSS/android_kernel_modules_and_devicetree_oneplus_sm8550/tree/oneplus/sm8550_b_16.0.0_ace_2_pro/">https://github.com/OnePlusOSS/android_kernel_modules_and_devicetree_oneplus_sm8550/tree/oneplus/sm8550_b_16.0.0_ace_2_pro/</a>
</p>

 <p>
But do not be so naive to believe that just plugging those into your LineageOS tree will make it work instantly.
</p>
</div>
</div>

 <div id="outline-container-Device-specific-module" class="outline-4">
 <h4 id="Device-specific-module"> <span class="section-number-4">1.4.5.</span>  <a href="#Device-specific-module">Device-specific module</a></h4>
 <div class="outline-text-4" id="text-Device-specific-module">
 <p>
Let us have a look at the files in a typical device module:  <code>device/oneplus/xigua/</code>.
</p>

 <div class="org-src-container">
 <pre class="src src-shell"> <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">ls
</span>Android.bp
AndroidProducts.mk
BoardConfig.mk
board-info.txt
device.mk
extract-files.py
lineage.dependencies
lineage_xigua.mk
odm.prop
overlay
overlay-lineage
proprietary-files.txt
proprietary-firmware.txt
setup-makefiles.py
system_ext.prop
vendor.prop
</pre>
</div>

 <p>
As far as I understand, their meaning is the following:
</p>

 <ol class="org-ol"> <li> <code>AndroiProducts.mk</code> :: defines a “device” for the purposes of the Android build system.</li>
 <li> <code>lineage_xigua.mk</code> :: defines a module, which actually defines the device</li>
 <li> <code>BoardConfig.mk</code> :: defines … well, I don’t know what it defines and what is the need for it to be separate from  <code>lineage_xigua</code>, but it includes Makefile from  <code>vendor/oneplus/xigua</code>, which is the module for pre-built drivers, so it is obviously very important.</li>
 <li> <code>device.mk</code> :: seemingly also important, because defines a lot of device properties on part with  <code>lineage_xigua.mk</code> and  <code>BoardConfig.mk</code>. I have no idea why there are three files.</li>
 <li> <code>lineage.dependencies</code> :: tells the system that your device is actually designed on the basis of a System-on-Chip which is used for other devices as well and some drivers can be shared</li>
 <li> <code>board-info.txt</code> :: I have no idea what it is, but it includes the code name of my SoC</li>
 <li> <code>extract-files.py</code> :: extracts binaries from an unpacked original firmware and post-processes them.</li>
 <li> <code>setup-makefiles.py</code> :: just calls  <code>extract-files.py</code></li>
 <li> <code>proprietary-files.txt</code> :: a file from which  <code>extract-files.py</code> takes information on which files to extract</li>
 <li> <code>proprietary-firmware.txt</code> :: I have no idea what it is, but it is probably somehow connected to the partitions on the device which are not Open Source, such as modem firmware</li>
 <li> <code>{overlay,overlay-lineage}</code> :: no idea what they are for</li>
 <li> <code>Android.bp</code> :: empty</li>
</ol> <p>
If you want to port Android to a device which is to an extent similar to some other device already supported, chances are that you only need to find the true board name to inherit in  <code>BoardConfig.mk</code>, and adjust the parameters in the files to match your device.
</p>
</div>
</div>

 <div id="outline-container-Extracting-binary-files" class="outline-4">
 <h4 id="Extracting-binary-files"> <span class="section-number-4">1.4.6.</span>  <a href="#Extracting-binary-files">Extracting binary files</a></h4>
 <div class="outline-text-4" id="text-Extracting-binary-files">
 <p>
Extracting the correct binary files is very important for making the device run.
</p>

 <p>
In order to do that, it is important to understand which files serve which purpose and correspond to which packages.
As has already been said, there is no way to identify that using normal Android means, although I suspect that hacking something on the basis of xattrs should be possible.
</p>

 <p>
Nevertheless, if you look at  <code>proprietary-files.txt</code>, and  <code>extract-files.py</code>, you will see that those files do more than just copy files into a temporary directory.
</p>

 <p>
There are a lot of examples on how to rewrite files documented in  <code>tools/extract-utils/templates/single-device/extract-files.py</code>, but I will note the few most important here.
</p>

 <ol class="org-ol"> <li> <code>.regex_replace(from, to)</code> replaces a string</li>
 <li> <code>.binary_regex_replace(bytes.fromhex('cafebabe'),bytes.fromhex('deadbeef'))</code> replaces a binary sequence</li>
 <li> <code>.replace_needed('libfoo.so', 'libbar.so')</code> replaces a dependency</li>
 <li> <code>.fix_soname()</code> fixes an SONAME if the  <code>.so</code> metadata</li>
</ol> <p>
The last two are very important for the case when you need to link an app to an original version of a library, and copy it into  <code>/odm/lib64/libfoo_vendor.so</code>.
</p>
</div>
</div>

 <div id="outline-container-dtb-and-dtbo" class="outline-4">
 <h4 id="dtb-and-dtbo"> <span class="section-number-4">1.4.7.</span>  <a href="#dtb-and-dtbo"> <span class="todo TODO">TODO</span> dtb and dtbo</a></h4>
 <div class="outline-text-4" id="text-dtb-and-dtbo">
 <ol class="org-ol"> <li> <a href="https://docs.qualcomm.com/doc/80-70017-3/topic/features.html">https://docs.qualcomm.com/doc/80-70017-3/topic/features.html</a></li>
 <li> <a href="https://wiki.postmarketos.org/wiki/Device_Tree_(dtb)">https://wiki.postmarketos.org/wiki/Device_Tree_(dtb)</a></li>
</ol> <p>
I don’t know what to write here, I am ignorant, but I never had to write a device tree (dtb), or overlay it with some customisations with a device tree overlay (dtbo).
</p>

 <p>
Look at the examples of real device trees in  <code>kernel/<manufacturer>/<chip>-devicetrees</code>
</p>

 <p>
You can try decompiling your own phone device trees:
</p>
 <div class="org-src-container">
 <pre class="src src-shell"> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">!/bin/</span> <span style="font-weight: bold;">bash</span> <span style="font-weight: bold; font-style: italic;">
</span>mkdtboimg dump dtbo.img -b mydtb
 <span style="font-weight: bold;">for</span> i <span style="font-weight: bold;"> in</span> mydtb.* ;  <span style="font-weight: bold;">do</span>
  dtc -I dtb -O dts  <span style="font-style: italic;">"$i"</span> -o  <span style="font-style: italic;">"${i/mydtb/mydts}"</span>
 <span style="font-weight: bold;">done</span>
</pre>
</div>
 <p>
But the result will be megabytes in size.
</p>
</div>
</div>

 <div id="outline-container-AIDL-services" class="outline-4">
 <h4 id="AIDL-services"> <span class="section-number-4">1.4.8.</span>  <a href="#AIDL-services"> <span class="todo TODO">TODO</span> AIDL services</a></h4>
 <div class="outline-text-4" id="text-AIDL-services">
 <ol class="org-ol"> <li> <a href="https://github.com/Heydarchi/AIDL-HAL-Service">https://github.com/Heydarchi/AIDL-HAL-Service</a></li>
</ol> <p>
Missing place.
</p>

 <p>
Presumably you need to write an “*.aidl” file, add it to Soong, then write the server and the client for the service and include the headers generated by Soong.
But that is as much as I know.
</p>

 <p>
But there seems to be at least one working example:  <a href="https://github.com/Heydarchi/AIDL-HAL-Service">https://github.com/Heydarchi/AIDL-HAL-Service</a>
</p>
</div>
</div>

 <div id="outline-container-Writing-native-code" class="outline-4">
 <h4 id="Writing-native-code"> <span class="section-number-4">1.4.9.</span>  <a href="#Writing-native-code">Writing native code</a></h4>
 <div class="outline-text-4" id="text-Writing-native-code">
 <p>
To begin is always the hardest thing for a programmer.
You change one line in a huge project, and the crystal edifice shatters into myriads of tiny shards.
At best itn starts to fail building.
At worse, it builds, but begins to misbehave in a subtle way.
At worst, it works, seemingly, as intended, but either leaks memory or becomes horribly insecure.
</p>

 <p>
This is why having an introductory manual is so important.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Soong"></a> <a href="#Soong">Soong</a> <br></br> <div class="outline-text-5" id="text-Soong">
 <p>
The easiest way to start is to add a native binary into the Android tree.
The intuition behind doing that can be trained by looking at how some other mostly alien to Android projects are built.
For example, have a look at  <code>./external/bzip2</code>.
</p>

 <p>
The first thing you should notice is that the native build system for  <code>bzip2</code> is not used at all.
The source files of  <code>bzip2</code> are used directly from  <code>Android.bp</code>.
Luckily this file is small and easy to understand.
</p>

 <p>
Let us add a separate native binary:
</p>

 <div class="org-src-container">
 <pre class="src src-patch">diff --git a/Android.bp b/Android.bp
index d63fe4a..d1ed8da 100644
--- a/Android.bp
+++ b/Android.bp
@@ -104,3 +104,17 @@ cc_binary {
	 "bzcat",
     ],
 }
+
+cc_binary {
+    name: "mine_test",
+    host_supported: true,
+    srcs: ["mine_test.cc"],
+    cflags: [
+
+    ],
+    include_dirs: [
+    "system/libhidl/base/include",
+    ],
+
+
+}
+
</pre>
</div>

 <p>
We also need to tell the build system not not just build the file, but also install it, and to do that, we are adding a line to
 <code>shell_and_utilities/Android.bp</code>:
</p>
 <div class="org-src-container">
 <pre class="src src-patch">diff --git a/shell_and_utilities/Android.bp b/shell_and_utilities/Android.bp
index 0a1f7c5a2..83a20a619 100644
--- a/shell_and_utilities/Android.bp
+++ b/shell_and_utilities/Android.bp
@@ -18,6 +18,7 @@ phony {
	 "awk",
	 "bc",
	 "bzip2",
+        "mine_test",
	 "cpu-target-features",
	 "fsck.exfat",
	 "ldd",
</pre>
</div>

 <p>
Yes, we are adding the binary (target), not the project name.
</p>

 <p>
This way you can start shipping your own code in Android right away, and at least  <code>root</code> will be able to use it.
This already makes your system much more usable than before.
</p>

 <p>
I am not exactly sure how to add a separate project, not just plug a binary into an existing one, but it should be as easy as:
</p>
 <ol class="org-ol"> <li>making a directory under  <code>./external/projectname</code></li>
 <li>writing an  <code>Android.bp</code></li>
 <li>adding a dependency on your project from some installation-related target, such as  <code>shell_and_utilities</code></li>
</ol></div>
</li>

 <li> <a id="Custom-building"></a> <a href="#Custom-building">Custom building</a> <br></br> <div class="outline-text-5" id="text-Custom-building">
 <p>
You can use Lineage’s pre-built compilers, or even not Lineage’s, to make your own code without Soong, and even substitute them for your system-wide ones and build your own binaries independently of Soong.
</p>

 <p>
For example:
</p>

 <div class="org-src-container">
 <pre class="src src-makefile"> <span style="font-weight: bold; font-style: italic;">AS</span>= <span style="font-style: italic;">"/home/lockywolf/OfficialRepos/LineageOS-23/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-as"</span>
 <span style="font-weight: bold; font-style: italic;">I1</span>= <span style="font-style: italic;">"/home/lockywolf/OfficialRepos/LineageOS-23/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8/sysroot/usr/include/"</span>
 <span style="font-weight: bold; font-style: italic;">I2</span>= <span style="font-style: italic;">"/home/lockywolf/OfficialRepos/LineageOS-23/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8/sysroot/usr/include/x86_64-linux-gnu/"</span>
 <span style="font-weight: bold; font-style: italic;">I3</span>= <span style="font-style: italic;">"/home/lockywolf/OfficialRepos/LineageOS-23/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8/sysroot/usr/include/i386-linux-gnu/"</span>
 <span style="font-weight: bold; font-style: italic;">LD</span>= <span style="font-style: italic;">"/home/lockywolf/OfficialRepos/LineageOS-23/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-ld"</span>
 <span style="font-weight: bold; font-style: italic;">myCC</span>=arm64-tcc -I$( <span style="font-weight: bold; font-style: italic;">I1</span>) -I$( <span style="font-weight: bold; font-style: italic;">I2</span>) -I$( <span style="font-weight: bold; font-style: italic;">I3</span>)

 <span style="font-weight: bold;">01_helloworld/hello</span>: 01_helloworld/hello.s
        $( <span style="font-weight: bold; font-style: italic;">AS</span>) -o 01_helloworld/hello.o 01_helloworld/hello.s
        $( <span style="font-weight: bold; font-style: italic;">LD</span>) -o 01_helloworld/hello 01_helloworld/hello.o
 <span style="font-weight: bold;">03_c-inserts/02_timedate-static.o</span>: 03_c-inserts/02_timedate-static.c Makefile
        $( <span style="font-weight: bold; font-style: italic;">myCC</span>) -c $ <span style="font-weight: bold; text-decoration: underline;"><</span> -o  <span style="font-weight: bold;">$</span> <span style="font-weight: bold; text-decoration: underline;">@</span>
</pre>
</div>

 <p>
In this example I am using  <code>TCC</code> as an example of an external compiler.
Then push your file into  <code>/data/local/tmp</code> and run it.
</p>

 <p>
You can also copy a line from the Soong build log and adjust it as you need.
</p>

 <div class="org-src-container">
 <pre class="src src-shell"> <span style="font-weight: bold; font-style: italic;">PWD</span>=/proc/self/cwd /usr/bin/ccache prebuilts/clang/host/linux-x86/clang-r547379/bin/clang++  -Wl,out/soong/.intermediates/bionic/libc/crtend_android/android_arm64_armv8-2a-dotprod/crtend_android.o -Wl,out/soong/.intermediates/bionic/libc/crtbegin_dynamic/android_arm64_armv8-2a-dotprod/crtbegin_dynamic.o -nostdlibinc  -Werror=implicit-function-declaration -D__BIONIC_DEPRECATED_PAGE_SIZE_MACRO -O2 -Wall -Wextra -Winit-self -Wpointer-arith -Wunguarded-availability -Werror=date-time -Werror=int-conversion -Werror=pragma-pack -Werror=pragma-pack-suspicious-include -Werror=sizeof-array-div -Werror=string-plus-int -Werror=unreachable-code-loop-increment -Wno-error=deprecated-declarations -Wno-c23-extensions -Wno-c99-designator -Wno-gnu-folding-constant -Wno-inconsistent-missing-override -Wno-error=reorder-init-list -Wno-reorder-init-list -Wno-sign-compare -Wno-unused -DANDROID -DNDEBUG -UDEBUG -D__compiler_offsetof=__builtin_offsetof -D__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__ -faddrsig -fdebug-default-version=5 -fcolor-diagnostics -ffp-contract=off -fno-exceptions -fno-strict-aliasing -fmessage-length=0 -gsimple-template-names -gz=zstd -no-canonical-prefixes -fdebug-prefix-map=/proc/self/cwd= -ftrivial-auto-var-init=zero -Wno-unused-command-line-argument -g -ffunction-sections -fdata-sections -fno-short-enums -funwind-tables -fstack-protector-strong -Wa,--noexecstack -D_FORTIFY_SOURCE=2 -Wstrict-aliasing=2 -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Werror=format-security -Wno-enum-compare -Wno-enum-compare-switch -Wno-null-pointer-arithmetic -Wno-null-dereference -Wno-pointer-compare -Wno-final-dtor-non-final-class -Wno-psabi -Wno-null-pointer-subtraction -Wno-string-concatenation -Wno-deprecated-non-prototype -Wno-unused -Wno-deprecated -Wno-error=format -march=armv8.2-a+dotprod  -target aarch64-linux-android10000 -fPIE -Wimplicit-fallthrough -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -Wno-gnu-include-next -fvisibility-inlines-hidden  -Iexternal/bzip2 -D__LIBC_API__=10000 -D__LIBM_API__=10000 -D__LIBDL_API__=10000 -Iprebuilts/clang/host/linux-x86/clang-r547379/android_libc++/platform/aarch64/include/c++/v1 -Iprebuilts/clang/host/linux-x86/clang-r547379/include/c++/v1 -Ibionic/libc/async_safe/include -Isystem/logging/liblog/include -Ibionic/libc/system_properties/include -Isystem/core/property_service/libpropertyinfoparser/include -Ibionic/libdl/include_private -isystem bionic/libc/include -isystem bionic/libc/kernel/uapi/asm-arm64 -isystem bionic/libc/kernel/uapi -isystem bionic/libc/kernel/android/scsi -isystem bionic/libc/kernel/android/uapi -Werror -flto=thin -fsplit-lto-unit -std=gnu++20 -fno-rtti -Isystem/core/include -Isystem/logging/liblog/include -Isystem/media/audio/include -Ihardware/libhardware/include -Ihardware/libhardware_legacy/include -Ihardware/ril/include -Iframeworks/native/include -Iframeworks/native/opengl/include -Iframeworks/av/include  -Werror=bool-operation -Werror=dangling -Werror=format-insufficient-args -Werror=implicit-int-float-conversion -Werror=int-in-bool-context -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -Werror=xor-used-as-pow -Wimplicit-int-float-conversion -Wno-void-pointer-to-enum-cast -Wno-void-pointer-to-int-cast -Wno-pointer-to-int-cast -Werror=fortify-source -Wno-unused-variable -Wno-missing-field-initializers -Wno-packed-non-pod -Werror=address-of-temporary -Werror=incompatible-function-pointer-types -Werror=null-dereference -Werror=return-type -Wno-tautological-constant-compare -Wno-tautological-type-limit-compare -Wno-implicit-int-float-conversion -Wno-tautological-overlap-compare -Wno-deprecated-copy -Wno-range-loop-construct -Wno-zero-as-null-pointer-constant -Wno-deprecated-anon-enum-enum-conversion -Wno-deprecated-enum-enum-conversion -Wno-error=pessimizing-move -Wno-non-c-typedef-for-linkage -Wno-align-mismatch -Wno-error=unused-but-set-variable -Wno-error=unused-but-set-parameter -Wno-error=deprecated-builtins -Wno-error=deprecated -Wno-error=invalid-offsetof -Wno-vla-cxx-extension -Wno-cast-function-type-mismatch  -fcommon -Wno-format-insufficient-args -Wno-misleading-indentation -Wno-bitwise-instead-of-logical -Wno-unused -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-unqualified-std-cast-call -Wno-array-parameter -Wno-gnu-offsetof-extensions -Wno-pessimizing-move -MD -MF out/soong/.intermediates/external/bzip2/lwf_test/android_arm64_armv8-2a-dotprod/obj/external/bzip2/lwf_test.o.d -I./system/libhidl/base/include/  -o lwf_test external/bzip2/lwf_test.cc
</pre>
</div>

 <p>
If you want to replace an existing binary, you probably can do it on a writable filesystem, such as  <code>/system</code>, but not on  <code>/vendor/</code> or  <code>/odm/</code>.
</p>

 <p>
However, you can push the binary to  <code>/data/local/tmp</code> and  <code>mount -o bind</code> it over the old one.
</p>
</div>
</li>

 <li> <a id="ndk-build"></a> <a href="#ndk-build">ndk-build</a> <br></br> <div class="outline-text-5" id="text-ndk-build">
 <p>
There is a way to build binaries for Android using the special command  <code>ndk-build</code>, shipped with Android Sdk (not LineageOS).
</p>

 <p>
 <code>~/Android/Sdk/ndk/27.0.12077973/build/ndk-build</code>
</p>

 <p>
I have not used it too much, but it might work for you.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Android-apps" class="outline-4">
 <h4 id="Android-apps"> <span class="section-number-4">1.4.10.</span>  <a href="#Android-apps">Android apps</a></h4>
 <div class="outline-text-4" id="text-Android-apps">
</div>

 <ol class="org-ol"> <li> <a id="Pre-installed-apps,-permissions,-and-interaction-of-system-with-apps"></a> <a href="#Pre-installed-apps,-permissions,-and-interaction-of-system-with-apps">Pre-installed apps, permissions, and interaction of system with apps</a> <br></br> <div class="outline-text-5" id="text-Pre-installed-apps,-permissions,-and-interaction-of-system-with-apps">
 <ol class="org-ol"> <li> <a href="https://developer.android.com/topic/architecture?hl=en">https://developer.android.com/topic/architecture?hl=en</a></li>
 <li> <a href="https://rtx.meta.security/reference/2024/07/03/Android-system-apps.html">https://rtx.meta.security/reference/2024/07/03/Android-system-apps.html</a></li>
 <li> <a href="https://android.stackexchange.com/questions/210139/what-is-the-u-everybody-uid/">https://android.stackexchange.com/questions/210139/what-is-the-u-everybody-uid/</a></li>
 <li> <a href="https://source.android.com/devices/storage#runtime_permissions">https://source.android.com/devices/storage#runtime_permissions</a></li>
 <li> <a href="https://android.stackexchange.com/questions/208523/how-androids-permissions-mapping-with-uids-gids-works/208982#208982">https://android.stackexchange.com/questions/208523/how-androids-permissions-mapping-with-uids-gids-works/208982#208982</a></li>
</ol> <p>
There is not much to write here, luckily, writing Android apps is a well documented process, but it is worth mentioning a few words about pre-installing apps into Android.
</p>

 <p>
Why exactly would you want to pre-install apps into Android?
Because pre-installed apps are more privileged than installed externally.
</p>

 <p>
In particular, there are different levels of “privileges”, in particular this article speaks about it better:
 <a href="https://rtx.meta.security/reference/2024/07/03/Android-system-apps.html">https://rtx.meta.security/reference/2024/07/03/Android-system-apps.html</a>
</p>

 <p>
Overall, apps are pre-installed into android by placing them into ~packages/app∼ and adding something like
</p>
 <div class="org-src-container">
 <pre class="src src-make">PRODUCT_PACKAGES += \
    PackageName
</pre>
</div>
 <p>
into your device makefile.
</p>

 <p>
However, rebuilding and re-flashing the whole system for a single  <code>apk</code> development iteration is horrible, so there is a better way:
 <code>adb push my_app.apk /system_ext/priv-app/</code> and restart the app.
But in order for this to work, your  <code>apk</code> needs to be signed with a “platform key”:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">java -jar ~/LineageOS-23/out/host/linux-x86/framework/apksigner.jar sign --in ./dist/OplusCamera-15.apk -out ./dist/OplusCamera-15.apk.signed --cert ~/LineageOS-23/build/make/target/product/security/platform.x509.pem --key ~/LineageOS-23/build/make/target/product/security/platform.pk8 --v3-signing-enabled false
</pre>
</div>
</div>
</li>



 <li> <a id="Developing-Android-Apps"></a> <a href="#Developing-Android-Apps"> <span class="todo TODO">TODO</span> Developing Android Apps</a> <br></br> <div class="outline-text-5" id="text-Developing-Android-Apps">
 <p>
This section is not very well written, because it is too huge, I just listed a few points to stumble over.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Unset-_JAVA_OPTIONS"></a> <a href="#Unset-_JAVA_OPTIONS">Unset _JAVA_OPTIONS</a> <br></br> <div class="outline-text-6" id="text-Unset-_JAVA_OPTIONS">
 <p>
Because Android Studio is shit and broken.
</p>
</div>
</li>
 <li> <a id="Delete-all-Android-Studio-data-when-updating"></a> <a href="#Delete-all-Android-Studio-data-when-updating">Delete all Android Studio data when updating</a> <br></br> <div class="outline-text-6" id="text-Delete-all-Android-Studio-data-when-updating">
 <p>
Otherwise very weird symptoms occur
</p>
 <ol class="org-ol"> <li>~/.config/</li>
</ol></div>
</li>
 <li> <a id="when-you-change-applicationId,-it-is-not-enough-to-re-sync-Gradle"></a> <a href="#when-you-change-applicationId,-it-is-not-enough-to-re-sync-Gradle">when you change applicationId, it is not enough to re-sync Gradle</a> <br></br> <div class="outline-text-6" id="text-when-you-change-applicationId,-it-is-not-enough-to-re-sync-Gradle">
 <p>
You also have to  <span class="underline">manually delete</span> all run configurations and re-sync, otherwise
weird errors occur.
~/.config/Google/AndroidStudio2024.2/
</p>
</div>
</li>
 <li> <a id="When-you-create-emulated-devices,-you-need-to-restart-android-studio"></a> <a href="#When-you-create-emulated-devices,-you-need-to-restart-android-studio">When you create emulated devices, you need to restart android studio</a> <br></br> <div class="outline-text-6" id="text-When-you-create-emulated-devices,-you-need-to-restart-android-studio">
</div>
</li>
 <li> <a id="Sometimes-adb-server-fails"></a> <a href="#Sometimes-adb-server-fails">Sometimes adb server fails</a> <br></br> <div class="outline-text-6" id="text-Sometimes-adb-server-fails">
 <p>
The symptom is
</p>
 <blockquote>
 <p>
Adb connection Error:EOF
Cannot reach ADB server, attempting to reconnect
daemon not running; starting now at tcp:5037
</p>
</blockquote>
 <p>
I fixed this by switching from openscreen to bonjour in Debugger settings.
This also makes the emulator start/stop buttons work again.
</p>
</div>
</li>
 <li> <a id="View-vs-Fragments"></a> <a href="#View-vs-Fragments">View vs Fragments</a> <br></br> <div class="outline-text-6" id="text-View-vs-Fragments">
 <p>
 <a href="https://developer.squareup.com/blog/advocating-against-android-fragments/">https://developer.squareup.com/blog/advocating-against-android-fragments/</a>
 <a href="https://stackoverflow.com/questions/31236020/fragment-vs-custom-view-in-android">https://stackoverflow.com/questions/31236020/fragment-vs-custom-view-in-android</a>
</p>
</div>
</li>
 <li> <a id="Android's-toolkit,-Activities,-Views,-and-Fragments"></a> <a href="#Android's-toolkit,-Activities,-Views,-and-Fragments">Android’s toolkit, Activities, Views, and Fragments</a> <br></br> <div class="outline-text-6" id="text-Android's-toolkit,-Activities,-Views,-and-Fragments">
 <p>
 <a href="https://github.com/xxv/android-lifecycle/">https://github.com/xxv/android-lifecycle/</a>
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-Android-logging-and-crash-reporting" class="outline-4">
 <h4 id="Android-logging-and-crash-reporting"> <span class="section-number-4">1.4.11.</span>  <a href="#Android-logging-and-crash-reporting">Android logging and crash reporting</a></h4>
 <div class="outline-text-4" id="text-Android-logging-and-crash-reporting">
 <ol class="org-ol"> <li> <a href="https://lineageos.org/engineering/HowTo-Debugging/">https://lineageos.org/engineering/HowTo-Debugging/</a></li>
</ol> <p>
Of course, when you are writing code, everything can go wrong.
You need to debug it.
</p>

 <p>
Basically, in software there are just two ways of debugging: logging and debuggers.
</p>

 <p>
The following are the main log sources in Android:
</p>

 <ol class="org-ol"> <li> <code>dmesg</code></li>
 <li> <code>logcat</code></li>
 <li> <code>/data/tombstones</code></li>
 <li> <code>/tmp/recovery.log</code> (in recovery)</li>
</ol> <p>
Quoting Lineage’s guide:
</p>

 <div class="verbatim" id="org3104d5f">
 <p>
There are various circular buffers stored by the logcat process, and they can be accessed using the -b option, with the following options available:
radio: Views the buffer that contains radio/telephony related messages.
events: Views the interpreted binary system event buffer messages.
main: Views the main log buffer (default), which doesn’t contain system and crash log messages.
system: Views the system log buffer (default).
crash: Views the crash log buffer (default).
all: Views all buffers.
default: Reports main, system, and crash buffers.
</p>

</div>

 <p>
For apps crashing,  <code>logcat</code> is your best choice.
For native code, look at the “tombstones”, at least they are going to have stack traces.
</p>
</div>
</div>

 <div id="outline-container-Attaching-debuggers" class="outline-4">
 <h4 id="Attaching-debuggers"> <span class="section-number-4">1.4.12.</span>  <a href="#Attaching-debuggers">Attaching debuggers</a></h4>
 <div class="outline-text-4" id="text-Attaching-debuggers">
 <ol class="org-ol"> <li> <a href="https://github.com/NationalSecurityAgency/ghidra/issues/6386#issuecomment-2455257933">https://github.com/NationalSecurityAgency/ghidra/issues/6386#issuecomment-2455257933</a></li>
 <li>Debugging Android aarch64 with Ghidra ::  <a href="https://blog.nviso.eu/2024/01/15/deobfuscating-android-arm64-strings-with-ghidra-emulating-patching-and-automating/">https://blog.nviso.eu/2024/01/15/deobfuscating-android-arm64-strings-with-ghidra-emulating-patching-and-automating/</a></li>
</ol></div>

 <ol class="org-ol"> <li> <a id="Native-code"></a> <a href="#Native-code">Native code</a> <br></br> <div class="outline-text-5" id="text-Native-code">
 <p>
You can attach  <code>lldb</code> to both apps and native processes.
You can also attach a Java debugger to and app processes, but I did not do it.
</p>

 <p>
The basic idea is the following: you launch  <code>lldb-server</code> on the device, and the Lineage tree has several pre-built ones.
Then you launch  <code>lldb</code> on your machine, type a few magic lines, and it connects to the  <code>lldb-server</code>.
From there you can either launch a new process, or (more likely) attach to an existing one.
</p>

 <div class="org-src-container">
 <pre class="src src-shell">adb push prebuilts/clang/host/linux-x86/clang-r574158/runtimes_ndk_cxx/aarch64/lldb-server /data/local/tmp/
adb shell   <span style="font-style: italic;">'cd /data/local/tmp ;  ./lldb-server platform --listen "*:54321" --server'</span>
</pre>
</div>

 <pre class="example">
prebuilts/clang/host/linux-x86/clang-r574158/bin/lldb
platform select remote-android (gives the "Connected: no" message)
platform connect connect://emulator-5554:54321
file target; b main; r
</pre>

 <p>
 <b>Important</b>: most Java processes will require passing additional commands for the debugger to not break in weird ways:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">args+=(-o  <span style="font-style: italic;">"process handle --pass true --stop false --notify false SIGSEGV"</span> -o  <span style="font-style: italic;">"process handle --pass true --stop false --notify false SIGBUS"</span> -o  <span style="font-style: italic;">"settings set plugin.jit-loader.gdb.enable off"</span> -o  <span style="font-style: italic;">'process handle --pass true --stop true --notify true SIGCHLD'</span> -o  <span style="font-style: italic;">'settings set plugin.jit-loader.gdb.enable off'</span> -o  <span style="font-style: italic;">'process status'</span>)
</pre>
</div>

 <p>
In theory you can also use  <code>gdb-server</code> :  <a href="https://github.com/hugsy/gdb-static">https://github.com/hugsy/gdb-static</a>
</p>
</div>
</li>

 <li> <a id="Java-code"></a> <a href="#Java-code"> <span class="todo TODO">TODO</span> Java code</a> <br></br> <div class="outline-text-5" id="text-Java-code">
 <p>
For Java, there is some way to attach a debugger from Android Studio to a running app, but I did no use this method.
</p>

 <p>
In theory, JADX has debugging capabilities and can connect to running Android Java apps, but I was not successful with it.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-SDK-and-NDK-versioning-and-other-API-fiddling" class="outline-4">
 <h4 id="SDK-and-NDK-versioning-and-other-API-fiddling"> <span class="section-number-4">1.4.13.</span>  <a href="#SDK-and-NDK-versioning-and-other-API-fiddling"> <span class="todo TODO">TODO</span> SDK and NDK versioning and other API fiddling</a></h4>
 <div class="outline-text-4" id="text-SDK-and-NDK-versioning-and-other-API-fiddling">
 <p>
Okay, I do not really understand this, but there are some compatibility issues between different versions of Android, SDK and NDK.
This is so convoluted that I do not know how to understand it, so you have to search.
</p>
</div>
</div>
</div>

 <div id="outline-container-Transplanting-an-app-to-LineageOS" class="outline-3">
 <h3 id="Transplanting-an-app-to-LineageOS"> <span class="section-number-3">1.5.</span>  <a href="#Transplanting-an-app-to-LineageOS">Transplanting an app to LineageOS</a></h3>
 <div class="outline-text-3" id="text-Transplanting-an-app-to-LineageOS">
 <p>
Suppose you want to make some app work on your LineageOS.
Actually, why would it  <span class="underline">not</span> work on your phone by default?
</p>

 <p>
Well, mostly for two reasons: (1) it expects to have private app permissions, (2) it is written for a specific version of Android, using manufacturer’s particular APIs.
</p>

 <p>
(1) can be worked around by signing the app with the platform key and installing with  <code>adb</code>, but (2) requires creativity.
</p>
</div>


 <div id="outline-container-General-development-iterations-and-tricks-to-shorten-them" class="outline-4">
 <h4 id="General-development-iterations-and-tricks-to-shorten-them"> <span class="section-number-4">1.5.1.</span>  <a href="#General-development-iterations-and-tricks-to-shorten-them">General development iterations and tricks to shorten them</a></h4>
 <div class="outline-text-4" id="text-General-development-iterations-and-tricks-to-shorten-them">
 <p>
When you want to port an app for LineageOS, you usually only have two options: (1) modify the app, (2) modify the Operating System.
</p>

 <p>
In both of those cases you want to make your development iterations as short as possible.
</p>

 <p>
I already mentioned this, but it is never hurts to repeat:
</p>

 <ol class="org-ol"> <li>apps can be signed with the platform key and copied</li>
 <li>native libraries can be copied to  <code>/data/local/tmp</code> and mounted over</li>
 <li>selinux permissions can be injected using  <code>sepolicy-inject</code></li>
</ol></div>
</div>

 <div id="outline-container-First-debugging-steps" class="outline-4">
 <h4 id="First-debugging-steps"> <span class="section-number-4">1.5.2.</span>  <a href="#First-debugging-steps">First debugging steps</a></h4>
 <div class="outline-text-4" id="text-First-debugging-steps">
 <p>
First of all, you need to make sure that working with code is convenient, and stupid useless security theatre is not getting in the way.
</p>

 <p>
So, the first thing you need to do is turn off ADB authentication to avoid tapping stupid permission windows on each re-flash.
</p>

 <p>
go to  <code>vendor/lineage</code> and apply the patch.
</p>

 <div class="org-src-container">
 <pre class="src src-patch">diff --git a/config/common.mk b/config/common.mk
index abc2b9ec..69aff098 100644
--- a/config/common.mk
+++ b/config/common.mk
@@ -33,7 +33,7 @@ ifdef WITH_ADB_INSECURE
 PRODUCT_SYSTEM_DEFAULT_PROPERTIES += ro.adb.secure=0
 else
 # Enable ADB authentication
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += ro.adb.secure=1
+PRODUCT_SYSTEM_DEFAULT_PROPERTIES += ro.adb.secure=0
 endif

 # Disable extra StrictMode features on all non-engineering builds
</pre>
</div>

 <p>
Also, I added the following lines to my  <code>device/oneplus/xigua/device.mk</code>:
</p>

 <div class="org-src-container">
 <pre class="src src-patch">PRODUCT_PROPERTY_OVERRIDES += \
    ro.debuggable=1 \
    persist.service.adb.enable=1 \
    persist.service.debuggable=1 \
    persist.sys.usb.config=adb \
    ro.adb.secure=0
</pre>
</div>

 <p>
Again, this is making a lot of fiddling with the settings after each system reboot unnecessary.
</p>
</div>
</div>

 <div id="outline-container-Log-based-debugging,-tombstones,-and-simple-tools" class="outline-4">
 <h4 id="Log-based-debugging,-tombstones,-and-simple-tools"> <span class="section-number-4">1.5.3.</span>  <a href="#Log-based-debugging,-tombstones,-and-simple-tools">Log-based debugging, tombstones, and simple tools</a></h4>
 <div class="outline-text-4" id="text-Log-based-debugging,-tombstones,-and-simple-tools">
 <p>
Some debugging does not require complicated techniques.
</p>

 <p>
Very often you can see what an app needs right into the  <code>adb logcat</code> output.
</p>

 <p>
In order to make your life simpler, you can edit the Android log-printing functions to produce more information.
</p>

 <p>
For example, when I was debugging “Vendor Tags”, I added the following line to the code:
</p>

 <div class="org-src-container">
 <pre class="src src-c++">  <span style="font-weight: bold; text-decoration: underline;">status_t</span>  <span style="font-weight: bold; text-decoration: underline;">VendorTagDescriptor</span>:: <span style="font-weight: bold;">lookupTag</span>( <span style="font-weight: bold;">const</span>  <span style="font-weight: bold; text-decoration: underline;">String8</span>&  <span style="font-weight: bold; font-style: italic;">name</span>,  <span style="font-weight: bold;">const</span>  <span style="font-weight: bold; text-decoration: underline;">String8</span>&  <span style="font-weight: bold; font-style: italic;">section</span>,
                                          <span style="font-weight: bold; font-style: italic;">/*</span> <span style="font-weight: bold; font-style: italic;">out</span> <span style="font-weight: bold; font-style: italic;">*/</span>  <span style="font-weight: bold; text-decoration: underline;">uint32_t</span>*  <span style="font-weight: bold; font-style: italic;">tag</span>)  <span style="font-weight: bold;">const</span> {
+  ALOGE( <span style="font-style: italic;">"my-own:%s: Section: '%s', name: '%s'."</span>, __FUNCTION__, section.c_str(), name.c_str());
</pre>
</div>

 <p>
This line appears in “ADB logcat” and is easy to filter.
 <code>ALOGE</code> is essentially Java’s  <code>Log.e(TAG, message);</code>
</p>

 <p>
Install your app, run it, look at  <code>logcat</code>,  <code>dmesg</code> and  <code>/data/tombstones</code>.
</p>

 <p>
Often it will tell you what is missing.
</p>

 <p>
Another “naive”, but useful and practical tools are  <code>grep</code> (or  <code>ripgrep</code>) and  <code>strings</code>.
Those let you search binary files for the presence of content.
</p>

 <p>
Look for something in the log,  <code>grep</code> for this string, find out which binary contains it.
</p>
</div>
</div>

 <div id="outline-container-Linker-and-~dlopen~-dependency-mapping" class="outline-4">
 <h4 id="Linker-and-~dlopen~-dependency-mapping"> <span class="section-number-4">1.5.4.</span>  <a href="#Linker-and-~dlopen~-dependency-mapping">Linker and  <code>dlopen</code> dependency mapping</a></h4>
 <div class="outline-text-4" id="text-Linker-and-~dlopen~-dependency-mapping">
 <p>
A lot of problems with an app running on Lineage are coming from Lineage just missing some libraries that the manufacturer is shipping in his firmware.
</p>

 <p>
Firstly, you can unpack the  <code>apk</code> with  <code>apktool</code> and examine its shipped JNI and native libraries:
</p>

 <div class="verbatim" id="org84d282c">
 <p>
AndroidManifest.xml       build/     res/           unknown/
AndroidManifest.xml.orig  dist/      scratch.smali
META-INF/                 kotlin/    smali/
apktool.yml               lib/       smali_classes1/
assets/                   original/  smali_classes2/
</p>

</div>

 <p>
look at the  <code>lib</code> directory and see which libraries the  <code>apk</code> is carrying.
</p>

 <p>
You can examine those libraries with  <code>objdump</code>,  <code>readelf</code>, and  <code>ldd</code>.
Unfortunately, Android’s  <code>ldd</code> is unreliable, and it is listing all possible dependencies, transitively.
</p>

 <p>
But  <code>readelf -d libfoo.so | grep NEEDED</code> will give you a list of dependencies.
</p>

 <p>
I have written a small script in Scheme to plot those dependencies as a tree:
</p>

 <div class="org-src-container">
 <pre class="src src-scheme">#!/usr/bin/chibi-scheme -q
( <span style="font-weight: bold;">import</span> (chibi shell))
( <span style="font-weight: bold;">import</span> (chibi filesystem))
( <span style="font-weight: bold;">import</span> (chibi show))
( <span style="font-weight: bold;">import</span> (srfi 69))
( <span style="font-weight: bold;">import</span> (srfi 113))
( <span style="font-weight: bold;">import</span> ( <span style="font-weight: bold;">only</span> (scheme base) when))
( <span style="font-weight: bold;">import</span> (chibi pathname))
( <span style="font-weight: bold;">import</span> ( <span style="font-weight: bold;">only</span> (srfi 1) zip filter))
( <span style="font-weight: bold;">import</span> (srfi 27))
( <span style="font-weight: bold;">import</span> (srfi 95))
( <span style="font-weight: bold;">define</span>  <span style="font-weight: bold;">to-string</span>
  ( <span style="font-weight: bold;">lambda</span> (num)
    (substring (show #f (written num)) 0 4)))
( <span style="font-weight: bold;">define</span>  <span style="font-weight: bold;">graph-file</span>  <span style="font-style: italic;">"dep-graph.dot"</span>)
( <span style="font-weight: bold;">define</span>  <span style="font-weight: bold;">stopfiles</span> (set equal?
                   <span style="font-style: italic;">"/apex/com.android.runtime/lib64/bionic/libdl.so"</span>
                   <span style="font-style: italic;">"/apex/com.android.runtime/lib64/bionic/libc.so"</span>
                   <span style="font-style: italic;">"/apex/com.android.runtime/lib64/bionic/libm.so"</span>
                   <span style="font-style: italic;">"/system/lib64/libc++.so"</span>
                   <span style="font-style: italic;">"/system/lib64/liblog.so"</span>
                   <span style="font-style: italic;">"/system/lib64/libz.so"</span>))
( <span style="font-weight: bold;">define</span>  <span style="font-weight: bold;">processed</span> (set equal?))
( <span style="font-weight: bold;">define</span>  <span style="font-weight: bold;">processed-vertices</span> (set equal?))
( <span style="font-weight: bold;">define</span> ( <span style="font-weight: bold;">get-dep-names</span> file)
  ( <span style="font-weight: bold;">map</span> ( <span style="font-weight: bold;">lambda</span> (x) (substring x 1 (- (string-length x) 1)))
   (shell->string-list ( <span style="font-style: italic;">"adb"</span>  <span style="font-style: italic;">"-s"</span> a740e4ea shell readelf -d ,file) (grep  <span style="font-style: italic;">"Shared"</span>) (awk  <span style="font-style: italic;">"{print $5;}"</span>) )))

( <span style="font-weight: bold;">define</span> ( <span style="font-weight: bold;">get-dep-paths</span> filepath)
  ( <span style="font-weight: bold;">let*</span> ((extractor ( <span style="font-weight: bold;">lambda</span> (x)  <span style="font-weight: bold; font-style: italic;">;;</span> <span style="font-weight: bold; font-style: italic;">:/apex/com.android.i18n/lib64  /vendor/lib64/hw:/vendor/lib64
</span>                      (shell->string-list ( <span style="font-style: italic;">"adb"</span>  <span style="font-style: italic;">"-s"</span> a740e4ea shell ,(string-append  <span style="font-style: italic;">"LD_LIBRARY_PATH='/apex/com.android.i18n/lib64"</span>  <span style="font-style: italic;">"'"</span>  <span style="font-style: italic;">" ldd  "</span> filepath)) (grep  <span style="font-style: italic;">"-v"</span>  <span style="font-style: italic;">"vdso"</span>) (awk ,(string-append  <span style="font-style: italic;">"{print $"</span> x  <span style="font-style: italic;">"}"</span>)))))
         (deps (extractor  <span style="font-style: italic;">"1"</span>))
         (paths (extractor  <span style="font-style: italic;">"3"</span>)))
    (zip deps paths)))

( <span style="font-weight: bold;">define</span>  <span style="font-weight: bold;">systemp</span> ( <span style="font-weight: bold;">lambda</span> (target)
             (equal? (substring target 0 (string-length  <span style="font-style: italic;">"/system"</span>))
                      <span style="font-style: italic;">"/system"</span>)))

( <span style="font-weight: bold;">define</span>  <span style="font-weight: bold;">max-depth</span> 7)

( <span style="font-weight: bold;">define</span>  <span style="font-weight: bold;">walk-tree</span>
  ( <span style="font-weight: bold;">lambda</span> (path depth)
    (show #t  <span style="font-style: italic;">"Processing "</span> path  <span style="font-style: italic;">" at depth "</span> depth  <span style="font-style: italic;">"\n"</span>)
    (set-adjoin! processed path)
    ( <span style="font-weight: bold;">if</span> (< depth max-depth)
       ( <span style="font-weight: bold;">let*</span> ((deps (get-dep-names path))
               <span style="font-weight: bold; font-style: italic;">#;(_ (show #t "deps:" (displayed deps) "\n")</span> <span style="font-weight: bold; font-style: italic;">)</span>
              (paths (get-dep-paths path))
               <span style="font-weight: bold; font-style: italic;">#;(_ (show #t "paths:" (displayed paths) "\n")</span> <span style="font-weight: bold; font-style: italic;">)</span>
              (pairs (filter ( <span style="font-weight: bold;">lambda</span> (t) (not (equal? #f t)))
                             ( <span style="font-weight: bold;">map</span> ( <span style="font-weight: bold;">lambda</span> (dep) (assoc dep paths)) deps)))
               <span style="font-weight: bold; font-style: italic;">#;(_ (show #t "pairs:" (displayed pairs) "\n")</span> <span style="font-weight: bold; font-style: italic;">)</span>
              (targets (filter
                        ( <span style="font-weight: bold;">lambda</span> (t)
                          (not (set-contains? stopfiles t)))
                        ( <span style="font-weight: bold;">map</span> cadr pairs)))
               <span style="font-weight: bold; font-style: italic;">#;(_ (show #t "targets:" (displayed targets) "\n")</span> <span style="font-weight: bold; font-style: italic;">)</span>
              )
          <span style="font-weight: bold; font-style: italic;">#;(map (lambda (x) (display x) (newline)) pairs</span> <span style="font-weight: bold; font-style: italic;">)</span>
         ( <span style="font-weight: bold;">map</span> ( <span style="font-weight: bold;">lambda</span> (target)
                ( <span style="font-weight: bold;">let</span> ()
                  ( <span style="font-weight: bold;">if</span> (not (set-contains? processed-vertices target))
                     ( <span style="font-weight: bold;">begin</span>
                       (shell (echo ,(string-append  <span style="font-style: italic;">"\""</span> target  <span style="font-style: italic;">"\" "</span>
                                                    ( <span style="font-weight: bold;">if</span> (systemp target)
                                                        <span style="font-style: italic;">"[color=red]"</span>
                                                        <span style="font-style: italic;">"[color=green]"</span>))) (>> ,graph-file))
                       (set-adjoin! processed-vertices target)))
                  (shell (echo ,(string-append  <span style="font-style: italic;">"\""</span> path  <span style="font-style: italic;">"\" -> \""</span> target  <span style="font-style: italic;">"\"
                               [color=\""</span>
                               (to-string (random-real))
                                <span style="font-style: italic;">"+"</span>
                               (to-string (random-real))
                                <span style="font-style: italic;">"+"</span>
                                <span style="font-style: italic;">"0.5\"]"</span>)) (>> ,graph-file))))
              targets)
         ( <span style="font-weight: bold;">map</span> ( <span style="font-weight: bold;">lambda</span> (target)
                ( <span style="font-weight: bold;">if</span> ( <span style="font-weight: bold;">and</span> (not (set-contains? processed target))
                      (not (systemp target)))
                   (walk-tree target (+ 1 depth))
                   'already-processed))
              targets))
       (show #t  <span style="font-style: italic;">"depth of "</span> depth  <span style="font-style: italic;">" reached\n"</span>))))
 <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">(define my-deps (get-dep-names "/vendor/lib64/libcamerapostproc.so"))
</span> <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">(define my-paths (get-dep-paths "/vendor/lib64/libcamerapostproc.so"))
</span> <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">(map (lambda (x) (display x) (newline)) my-deps)
</span> <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">(map (lambda (x) (display x) (newline)) my-paths)
</span>( <span style="font-weight: bold;">define</span>  <span style="font-weight: bold;">main1</span>
  ( <span style="font-weight: bold;">lambda</span> ()
    (shell (echo  <span style="font-style: italic;">"strict digraph {
ranksep=\"1.2 equally\""</span> ) (> ,graph-file))
     <span style="font-weight: bold; font-style: italic;">#;(walk-tree "/vendor/lib64/libcamerapostproc.so" 0</span> <span style="font-weight: bold; font-style: italic;">)</span>
     <span style="font-weight: bold; font-style: italic;">#;(walk-tree "/vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so" 0</span> <span style="font-weight: bold; font-style: italic;">)</span>
     <span style="font-weight: bold; font-style: italic;">#;(walk-tree "/vendor/bin/hw/vendor.qti.camera.provider-service_64" 0</span> <span style="font-weight: bold; font-style: italic;">)</span>
    (walk-tree  <span style="font-style: italic;">"/vendor/lib64/hw/com.qti.chi.override.so"</span> 0)
    (shell (echo  <span style="font-style: italic;">"}"</span> ) (>> ,graph-file))
    ))
(main1)
(shell (dot -Tpdf  <span style="font-style: italic;">"dep-graph.dot"</span>) (>  <span style="font-style: italic;">"dep-graph.pdf"</span>))
( <span style="font-weight: bold;">define</span>  <span style="font-weight: bold;">main2</span>
  ( <span style="font-weight: bold;">lambda</span> ()
    ( <span style="font-weight: bold;">let*</span> ((get-rel ( <span style="font-weight: bold;">lambda</span> (p) (list->set equal? (filter systemp ( <span style="font-weight: bold;">map</span> cadr (get-dep-paths p))))))
           (deps-camera (set-union (get-rel  <span style="font-style: italic;">"/vendor/lib64/libcamerapostproc.so"</span>)
                                   (get-rel  <span style="font-style: italic;">"/vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so"</span>)
                                   (get-rel  <span style="font-style: italic;">"/vendor/bin/hw/vendor.qti.camera.provider-service_64"</span>)
                                   (get-rel  <span style="font-style: italic;">"/vendor/lib64/hw/com.qti.chi.override.so"</span>)))
           (deps-libAlgoProcess    (set-union
                                    (get-rel  <span style="font-style: italic;">"/odm/lib64/libAlgoProcess.so"</span>)
                                    (get-rel  <span style="font-style: italic;">"/odm/lib64/libAlgoInterface.so"</span>)))
           (difference (set-difference deps-camera deps-libAlgoProcess))
           (shower ( <span style="font-weight: bold;">lambda</span> (e) (show #t (written e)  <span style="font-style: italic;">"\n"</span>)))
           (mysort ( <span style="font-weight: bold;">lambda</span> (s) (sort (set->list s) string<?))))
      (show #t  <span style="font-style: italic;">"deps-camera:\n"</span>)
      ( <span style="font-weight: bold;">map</span> shower (mysort deps-camera))
      (show #t  <span style="font-style: italic;">"\ndeps-libAlgoProcess:\n"</span>)
      ( <span style="font-weight: bold;">map</span> shower (mysort deps-libAlgoProcess))
      (show #t  <span style="font-style: italic;">"\ndifference:\n"</span>)
      ( <span style="font-weight: bold;">map</span> shower (mysort difference)))))
(main2)
</pre>
</div>

 <p>
Just look at how beautiful it is.
It is generating a graphviz tree, and you can compile it into a searchable pdf.
</p>

 <p>
When you find missing dependencies, just add them to  <code>proprietary-files.txt</code>.
</p>



 <figure id="org91a0263"> <img src="Body/2026-02-22_21-03-19_screenshot.png" alt="2026-02-22_21-03-19_screenshot.png"></img></figure></div>
</div>


 <div id="outline-container-Java,-jadx,-smali,-and-adding-polyfills" class="outline-4">
 <h4 id="Java,-jadx,-smali,-and-adding-polyfills"> <span class="section-number-4">1.5.5.</span>  <a href="#Java,-jadx,-smali,-and-adding-polyfills">Java, jadx, smali, and adding polyfills</a></h4>
 <div class="outline-text-4" id="text-Java,-jadx,-smali,-and-adding-polyfills">
 <p>
When simple dependency and log-based methods stop working, it is time to do dig a little bit deeper.
</p>

 <p>
The previous chapter already mentioned decompiling an  <code>apk</code> with  <code>apktool</code>.
An extremely nice property of  <code>apktool</code> compared to traditional decompilers is that it is possible not just to decompile an  <code>apk</code>, but to also re-compile it, and the resulting  <code>apk</code> will be as good as the old one, except, maybe, losing the platform key, but since we are building our own Lineage, we have the key.
</p>

 <p>
Some adaptations might require you to just adjust the file  <code>AndroidManifest.xml</code> and recompile the  <code>apk</code>, but sometimes you have to actually edit the code in order to make the app compatible with your platform.
</p>

 <p>
Here comes Smali, the Java assembly.
</p>

 <p>
This is a decent howto on Smali:
 <a href="https://sallam.gitbook.io/sec-88/android-appsec/smali/smali-cheat-sheet">https://sallam.gitbook.io/sec-88/android-appsec/smali/smali-cheat-sheet</a>
See the chapter  <a href="#Solving-a-race-condition-with-Smali">1.6.7</a> to see how actual smali patches work.
</p>

 <p>
 <code>apktool</code> will decompile the code successfully, but trawling through megabytes of Smali is tedious, so we have JADX at our disposal.
</p>



 <figure id="org206337c"> <img src="Body/2026-02-22_21-09-53_screenshot.png" alt="2026-02-22_21-09-53_screenshot.png"></img></figure> <p>
JADX is a decent decompiler.
You can rename variables, add comments, and search nicely.
</p>

 <p>
It is not almighty, and it cannot compile the apps back into  <code>apk</code>, so when you find a place you want to modify, you have to edit the original smali code produced by  <code>apktool</code>.
</p>

 <p>
Luckily for us, Dalvik does limit the amount of registers per function, so we can add as many as we want, and call  <code>Log.e()</code> whenever we need.
</p>

 <div class="org-src-container">
 <pre class="src src-smali">const-string v4, "mine-parseMenuSetting"
const-string v5, "17"
invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
invoke-interface {v0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
</pre>
</div>

 <p>
As I mentioned, JADX can theoretically connect to a running app and become a debugger, but I failed to make work.
</p>
</div>
</div>

 <div id="outline-container-C++,-Ghidra,-gas,-ddisasm,-and-aarch64" class="outline-4">
 <h4 id="C++,-Ghidra,-gas,-ddisasm,-and-aarch64"> <span class="section-number-4">1.5.6.</span>  <a href="#C++,-Ghidra,-gas,-ddisasm,-and-aarch64">C++, Ghidra, gas, ddisasm, and aarch64</a></h4>
 <div class="outline-text-4" id="text-C++,-Ghidra,-gas,-ddisasm,-and-aarch64">
 <ol class="org-ol"> <li>ELF Format specification ::  <a href="https://refspecs.linuxfoundation.org/elf/elf.pdf">https://refspecs.linuxfoundation.org/elf/elf.pdf</a></li>
 <li>Learning Linux Binary Analysis by Ryan “Elfmaster” O’Neill ::  <a href="https://github.com/PacktPublishing/Learning-Linux-Binary-Analysis">https://github.com/PacktPublishing/Learning-Linux-Binary-Analysis</a></li>
 <li>The Ghidra Book The Definitive Guide by Chris Eagle and Kara Nance ::  <a href="https://nostarch.com/GhidraBook">https://nostarch.com/GhidraBook</a></li>
 <li> <a href="https://blog.k3170makan.com/2018/09/introduction-to-elf-format-elf-header.html">https://blog.k3170makan.com/2018/09/introduction-to-elf-format-elf-header.html</a></li>
 <li> <a href="https://en.wikipedia.org/wiki/Executable_and_Linkable_Format">https://en.wikipedia.org/wiki/Executable_and_Linkable_Format</a></li>
 <li> <a href="https://thinkingeek.com/categories/aarch64/">https://thinkingeek.com/categories/aarch64/</a></li>
</ol> <p>
If Java decompiling does not work, and you need to use heavier artillery, have a look at Ghidra.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Decompiling"></a> <a href="#Decompiling">Decompiling</a> <br></br> <div class="outline-text-5" id="text-Decompiling">
 <p>
Ghidra features both a disassembler which is stronger than  <code>objdump</code>, and a true de-compiler which can reconstruct way more C than I had expected.
Yes, it is still ugly, but nevertheless.
Also, Ghidra supports python scripting.
</p>

 <p>
Here is my script for starting Ghidra:
</p>
 <div class="org-src-container">
 <pre class="src src-shell">source /etc/profile.d/zulu-openjdk21.sh
source pyghidra-venv/bin/activate
 python3 -m pip install  <span style="font-style: italic;">'jpype1==1.5.2'</span>  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">uses internet
</span> python3 -m pip install --no-index -f  ./Ghidra/Features/PyGhidra/pypkg/dist pyghidra
 python3 -m pip install --no-index -f  ./Ghidra/Features/PyGhidra/build/pypkg/dist pyghidra
 python3 -m pip install --no-index -f  ./build/typestubs/dist/ ghidra-stubs
./Ghidra/RuntimeScripts/Linux/support/pyghidraRun
</pre>
</div>


 <figure id="orge9e4733"> <img src="Body/2026-02-22_21-22-08_screenshot.png" alt="2026-02-22_21-22-08_screenshot.png"></img></figure> <p>
The two most important feature that Ghidra decompiler possesses is the ability to rename variables and the ability to identify data structures.
</p>

 <p>
Basically, your main goal is to find enough  <code>struct</code> structures to find out the data tree of a module, and rename the members to understand which parameters are used where.
</p>

 <p>
Your best friends are:
</p>
 <ol class="org-ol"> <li> <code>malloc/new</code> declarations :: they give you the size of the objects,</li>
 <li> <code>__android_log</code> and similar logging functions :: very often developers are printing their classes/structures, and you can get field names from there,</li>
 <li>Exports and Imports :: those are actual parts of the source code remaining in the binaries,</li>
 <li> <code>__system_property_get</code> :: often indicates a critical code junction which can be influence by a system property.</li>
</ol></div>
</li>

 <li> <a id="Debugging"></a> <a href="#Debugging">Debugging</a> <br></br> <div class="outline-text-5" id="text-Debugging">
 <ol class="org-ol"> <li> <a href="https://stackoverflow.com/questions/78044084/android-app-paused-while-debugging-due-to-sigbus-signal">https://stackoverflow.com/questions/78044084/android-app-paused-while-debugging-due-to-sigbus-signal</a></li>
 <li> <a href="https://stackoverflow.com/questions/52377562/how-do-you-create-a-lldb-script-to-ignore-sigsegv-and-sigbus">https://stackoverflow.com/questions/52377562/how-do-you-create-a-lldb-script-to-ignore-sigsegv-and-sigbus</a></li>
</ol> <p>
Sometimes looking at the code for a long time does not actually help without knowing concrete values of the variables.
</p>

 <p>
Here Ghidra debugger comes into play.
</p>

 <p>
As already mentioned, it is possible to attach  <code>lldb</code> to running processes on Android over ADB, but bare  <code>lldb</code> would only give you a disassembly and a stack trace, whereas Ghidra can give you a change to see the same code in the decompiled form.
</p>



 <figure id="org99cfcdc"> <img src="Body/2026-02-22_21-32-31_screenshot.png" alt="2026-02-22_21-32-31_screenshot.png"></img></figure> <p>
Ghidra Debugger is not as advanced as the Decompiler, but overall it serves its purpose: see the details of the process.
</p>

 <p>
I would say that its main drawback is that it is relatively slow.
As for decompiling, it has given me better results than Binary Ninja.
</p>

 <p>
 <b>How to connect to an app with Ghidra Debugger</b>
</p>

 <p>
In theory you need to just: (1) start  <code>lldb-server</code> on the device, (2) just click in the “debug” button and attach to an Android process with  <code>lldb</code>.
(Keep in mind that is must be Android  <code>lldb</code>, not your system-wide  <code>lldb</code>.)
</p>

 <div class="org-src-container">
 <pre class="src src-shell">cat lwf_mylldb.bash
 <span style="font-weight: bold; font-style: italic;">R</span>= <span style="font-style: italic;">"~/LineageOS-23/"</span>
 <span style="font-weight: bold;">export</span>  <span style="font-weight: bold; font-style: italic;">PYTHONHOME</span>= <span style="font-style: italic;">"$R"</span>/prebuilts/clang/host/linux-x86/clang-r530567/python3/
 <span style="font-weight: bold;">export</span>  <span style="font-weight: bold; font-style: italic;">LD_LIBRARY_PATH</span>= <span style="font-style: italic;">"$R"</span>/prebuilts/clang/host/linux-x86/clang-r530567/python3/lib
 <span style="font-weight: bold;">export</span>  <span style="font-weight: bold; font-style: italic;">PYTHONPATH</span>= <span style="font-style: italic;">"$R"</span>/prebuilts/clang/host/linux-x86/clang-r547379/lib/python3.11/site-packages/
 <span style="font-weight: bold;">export</span>  <span style="font-weight: bold; font-style: italic;">PATH</span>= <span style="font-style: italic;">"$R/prebuilts/clang/host/linux-x86/clang-r547379/python3/bin/:$PATH"</span>
python3 -m pip install --force-reinstall --no-deps --no-index -f ~/OfficialRepos/ghidra/Ghidra/Debug/Debugger-rmi-trace/build/pypkg/dist/ -f ~/OfficialRepos/ghidra/Ghidra/Debug/Debugger-agent-lldb/build/pypkg/dist ghidralldb
 <span style="font-weight: bold;">exec</span>  <span style="font-style: italic;">"$R"</span>prebuilts/clang/host/linux-x86/clang-r547379/bin/lldb  <span style="font-style: italic;">"$@"</span>
</pre>
</div>

 <p>
But this is a bit inconvenient, because you would have to change a PID each time an app crashes, which is annoying.
</p>

 <p>
So I just tweaked the file  <code>lldbsetuputils.sh</code> from Ghidra:
</p>

 <div class="org-src-container">
 <pre class="src src-patch">diff --git a/Ghidra/Debug/Debugger-agent-lldb/data/support/lldbsetuputils.sh b/Ghidra/Debug/Debugger-agent-lldb/data/support/lldbsetuputils.sh
index 0211b02639..39200c1e7e 100644
--- a/Ghidra/Debug/Debugger-agent-lldb/data/support/lldbsetuputils.sh
+++ b/Ghidra/Debug/Debugger-agent-lldb/data/support/lldbsetuputils.sh
@@ -131,15 +131,32 @@ compute-lldb-platform-args-attach() {
	shift
	shift
	shift
+        #target_pid=$(adb -s a740e4ea shell 'pgrep -f om.oplus.camera')
+        addrDiff="00118484-001173e0"
+        addrDiff=${addrDiff^^}
+        addrDiff=$(echo "obase=16;ibase=16; $addrDiff" | bc -l)
+        addrDiff=${addrDiff,,}
	args+=("$OPT_LLDB_PATH")
	add-lldb-init-args
	args+=(-o "platform select '$target_type'")
+	args+=(-o "platform connect '$target_url'" -o 'settings set plugin.jit-loader.gdb.enable off')
	add-lldb-pid "$target_pid"
	add-lldb-connect-and-sync "$rmi_address"
	add-lldb-extra-cmds
	add-lldb-tail-args
+        args+=(-o "process handle --pass true --stop false --notify false SIGSEGV" -o "process handle --pass true --stop false --notify false SIGBUS" -o "settings set plugin.jit-loader.gdb.enable off" -o 'settings set plugin.jit-loader.gdb.enable off' -o 'br set -a `(void(*)())_ZN8OemLayer17configure_streamsEPK14camera3_deviceP28camera3_stream_configuration+0x'$addrDiff'`' -o 'process handle --pass true --stop true --notify true SIGCHLD' -o 'settings set plugin.jit-loader.gdb.enable off' -o 'process status') #   -o detach -o "attach $target_pid"
 }
 compute-lldb-remote-args() {
</pre>
</div>

 <p>
This way you can get all the information about the process automatically, and also set a break point right in the file.
I really recommend trying to understand how the breakpoint is set at an address relative to a function.
This is important because due to ASLR (address space layout randomization), libraries are loaded at different addresses each time.
</p>

 <p>
 <b>Also important</b>
</p>

 <p>
The files you are debugging in Ghidra  <b>must</b> have the same “project names” as are their file names, otherwise Ghidra will fail to find a correspondence between the memory and the file.
</p>
</div>
</li>

 <li> <a id="Patching-the-binary"></a> <a href="#Patching-the-binary">Patching the binary</a> <br></br> <div class="outline-text-5" id="text-Patching-the-binary">
 <ol class="org-ol"> <li> <a href="https://mariokartwii.com/armv8/">https://mariokartwii.com/armv8/</a></li>
</ol> <p>
When you know how to fix the binary, you need to write some assembly code.
</p>

 <p>
You can try practising assembly programming with GNU GAS (GNU Assembler), which is shipped together with Lineage.
</p>

 <p>
Here is an example:
#+name GAS-Hello-World
</p>
 <div class="org-src-container">
 <pre class="src src-gas">	.arch armv8-a
	.text
	.globl _start
_start:

	mov     x0, 1           /* file descriptor: 1 is stdout */
	adr     x1, msg         /* message location (memory address) */
	mov     x2, len         /* message length (bytes) */

	mov     x8, 64          /* write is syscall #64 */
	svc     0               /* invoke syscall */

	mov     x0, 0           /* status -> 0 */
	mov     x8, 93          /* exit is syscall #93 */
	svc     0               /* invoke syscall */

	.data
msg:    .ascii      "Hello, world!\n"
	len=    . - msg
</pre>
</div>

 <p>
Here is an example of a loop:
</p>

 <div class="org-src-container">
 <pre class="src src-gas" id="org68002e5">	.text
	.globl _start
	min = 0                          /* starting value for the loop index; **note that this is a symbol (constant)**, not a variable */
	max = 10                         /* loop exits when the index hits this number (loop condition is i<max) */
_start:
	mov     x19, min       /* the value in register 19 = loop index */
loop:
	/* ... body of the loop ... do something useful here ... */
	mov     x0, 1           /* file descriptor: 1 is stdout */
	adr     x1, msg         /* message location (memory address) */
	mov     x2, len         /* message length (bytes) */

	mov     x8, 64          /* write is syscall #64 */
	svc     0               /* invoke syscall */
	/* .. useful things done */
	add     x19, x19, 1     /* increment the loop counter */
	cmp     x19, max        /* see if we've hit the max */
	b.ne    loop            /* if not, then continue the loop */
	mov     x0, 0           /* set exit status to 0 */
	mov     x8, 93          /* exit is syscall #93 */
	svc     0               /* invoke syscall */
	.byte   0xFE
	.section .data
msg:    .ascii      "Hello, world!\n"
mylabel: len=    . - msg
	.byte   0xFF
</pre>
</div>

 <p>
To defeat race conditions, sometimes it is enough to just wait:
</p>

 <div class="org-src-container">
 <pre class="src src-gas" id="orgb4e9218">	.arch armv8-a
	.text
	.globl _start
_start:
	b call_nanosleep
arg1:
	.byte 10
	.rept 15
	.byte 0
	.endr
call_nanosleep:
	adr x0, arg1
	mov x1, 0
	mov     x8, 101         /* write is syscall #64 */
	svc     0               /* invoke syscall */
prg_exit:
	mov     x0, 0           /* status -> 0 */
	mov     x8, 93          /* exit is syscall #93 */
	svc     0               /* invoke scallop */
</pre>
</div>

 <p>
Generally, you only need to learn a few primitives, as it is unlikely that you’d have to write a lot of complicated stuff in assembly.
</p>

 <ol class="org-ol"> <li> <code>b</code> (and other  <code>b</code>-like instructions) :: jump to an address</li>
 <li> <code>mov</code> :: sets a register</li>
 <li> <code>str</code> (and other  <code>s</code>-like instructions) :: put data in memory</li>
 <li> <code>ldr</code> (and other  <code>l</code>-like instructions) :: read data from memory</li>
 <li> <code>cbz</code> (and other  <code>c</code>-like instructions) :: jump somewhere if a register is 0</li>
</ol> <p>
See  <a href="https://mariokartwii.com/armv8/">https://mariokartwii.com/armv8/</a> for a much better tutorial.
</p>

 <p>
Often you just have to jump over a particular crashing function call.
</p>
</div>
</li>

 <li> <a id="Smali-like-programming-for-GAS"></a> <a href="#Smali-like-programming-for-GAS">Smali-like programming for GAS</a> <br></br> <div class="outline-text-5" id="text-Smali-like-programming-for-GAS">
 <p>
Everything described above is nice and well, if you can find a place in the binary to write your code.
You see, assembly code is very file-offset dependent, and if you “insert” some data into a file, all of those offsets will become de-synchronised and your binary will be a complete failure.
</p>

 <p>
This is not much of an issue if you can “erase” some useless code (such as calls to logging functions) and place useful code there.
But what if not?
</p>

 <p>
Welcome  <code>ddisasm</code>: the  <b>bidirectional disassembler-assembler</b>.
</p>

 <p>
It is an amazing tool  <a href="https://github.com/grammatech/ddisasm">https://github.com/grammatech/ddisasm</a> , totally underappreciated.
It essentially allows a smali-like disassemble-modify-assemble rapid iteration development.
</p>

 <p>
Yes, you still have to write in assembly, but you now can insert your assembly anywhere in the code, just remember to save register values onto the stack (or allocate some memory for them) before your code runs, and restore them after, because, unlike smali, registers are not infinite.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Frida" class="outline-4">
 <h4 id="Frida"> <span class="section-number-4">1.5.7.</span>  <a href="#Frida">Frida</a></h4>
 <div class="outline-text-4" id="text-Frida">
 <ol class="org-ol"> <li> <a href="https://www.youtube.com/watch?v=RoNppaG1re4">https://www.youtube.com/watch?v=RoNppaG1re4</a></li>
 <li> <a href="https://github.com/iddoeldor/frida-snippets?tab=readme-ov-file">https://github.com/iddoeldor/frida-snippets?tab=readme-ov-file</a></li>
 <li> <a href="https://cilynx.com/vulnerabilities/exploring-native-functions-on-android-and-runtime-analyses-using-jadx-ghidra-and-frida/1565/">https://cilynx.com/vulnerabilities/exploring-native-functions-on-android-and-runtime-analyses-using-jadx-ghidra-and-frida/1565/</a></li>
 <li> <a href="https://github.com/Hamz-a/frida-android-libbinder">https://github.com/Hamz-a/frida-android-libbinder</a></li>
</ol> <p>
Ghidra is programmable in Java and Python, in theory you can run Ghidra scripts in Ghidra debugger, but it is a bit inconvenient, because Ghidra works by pulling memory to your machine via  <code>lldb</code>, which sometimes happens to be slow.
</p>

 <p>
Frida goes into the opposite direction.
It embeds a JavaScript interpreter into the target process and allows you to run arbitrary JS code at trace points.
You can use this, for example, to trace important functions calls.
</p>

 <p>
Frida is instantaneously fast.
</p>

 <p>
I did not use Frida a lot (just traced a few function calls), but generally a programmable debugger-tracer is a very mighty tool.
</p>

 <p>
For example, you can monitor Binder transactions.
 <a href="https://github.com/iddoeldor/frida-snippets?tab=readme-ov-file#binder-transactions">https://github.com/iddoeldor/frida-snippets?tab=readme-ov-file#binder-transactions</a>
</p>
</div>
</div>

 <div id="outline-container-Adding-sections-to-binary-files,-add-linking-C-functions-and-~GNU-Poke~" class="outline-4">
 <h4 id="Adding-sections-to-binary-files,-add-linking-C-functions-and-~GNU-Poke~"> <span class="section-number-4">1.5.8.</span>  <a href="#Adding-sections-to-binary-files,-add-linking-C-functions-and-~GNU-Poke~"> <span class="todo TODO">TODO</span> Adding sections to binary files, add-linking C functions and  <code>GNU Poke</code></a></h4>
 <div class="outline-text-4" id="text-Adding-sections-to-binary-files,-add-linking-C-functions-and-~GNU-Poke~">
 <ol class="org-ol"> <li> <a href="https://www.jemarch.net/poke-elf.html">https://www.jemarch.net/poke-elf.html</a></li>
</ol> <p>
This section is not developed, because I did not do it.
</p>

 <p>
So, the idea is that one might want to write a C function, compile it into an  <code>.o</code> file and all-link it to an  <code>.so</code> binary.
The goal is to be able to call that function from within some other functions, for example inserting a call with  <code>ddisasm</code>.
</p>

 <p>
I suspect that  <code>GNU Poke-ELF</code> ( <a href="https://www.jemarch.net/poke-elf.html">https://www.jemarch.net/poke-elf.html</a>) should be able to do that, but I am not sure.
</p>
</div>
</div>
</div>

 <div id="outline-container-OnePlus-particulars" class="outline-3">
 <h3 id="OnePlus-particulars"> <span class="section-number-3">1.6.</span>  <a href="#OnePlus-particulars">OnePlus particulars</a></h3>
 <div class="outline-text-3" id="text-OnePlus-particulars">
 <p>
The name of this chapter is a bit misleading.
Not everything mentioned here is OnePlus, BBK, Qualcomm or even camera specific.
But this chapter is the only one where I am trying to dump the rest of the collected knowledge which is not unequivocally “Android-generic”.
</p>
</div>

 <div id="outline-container-Feature-summary" class="outline-4">
 <h4 id="Feature-summary"> <span class="section-number-4">1.6.1.</span>  <a href="#Feature-summary">Feature summary</a></h4>
 <div class="outline-text-4" id="text-Feature-summary">
 <ol class="org-ol"> <li>Working features
 <ol class="org-ol"> <li>Normal photos</li>
 <li>50 MPx photos</li>
 <li>“Livephoto”</li>
 <li>1080@60Hz video</li>
 <li>4k@30Hz video</li>
 <li>“Pro” photos</li>
 <li>Panorama</li>
 <li>SELinux</li>
</ol></li>
 <li>Partially working features
 <ol class="org-ol"> <li>4k@60Hz video</li>
 <li>slomo videos</li>
 <li>RAW images</li>
 <li>RAW+ images</li>
</ol></li>
 <li>Broken features
 <ol class="org-ol"> <li>Portrait/Bokeh</li>
 <li>AI ID scanning</li>
 <li>10bit+HEIC images</li>
</ol></li>
</ol></div>
</div>

 <div id="outline-container-Previous-work" class="outline-4">
 <h4 id="Previous-work"> <span class="section-number-4">1.6.2.</span>  <a href="#Previous-work">Previous work</a></h4>
 <div class="outline-text-4" id="text-Previous-work">
 <p>
I started, of course, standing on the shoulders of giants, which in my case are
</p>

 <ol class="org-ol"> <li> <a href="https://gitlab.com/pjgowtham/proprietary_vendor_oplus_camera">https://gitlab.com/pjgowtham/proprietary_vendor_oplus_camera</a></li>
 <li> <a href="https://gitlab.com/ThankYouMario/proprietary_vendor_oplus_camera">https://gitlab.com/ThankYouMario/proprietary_vendor_oplus_camera</a></li>
</ol> <p>
I did not really care whether I am getting an “OnePlus Camera” (the international build), or the “OPlus Camera” (the Chinese build), as I only needed the offline features, and the Chinese version turned out to be easier to port.
</p>

 <p>
A few points deserve attention.
</p>

 <ol class="org-ol"> <li>Binary extraction</li>
 <li>Init script</li>
 <li>Mounting the files to override selinux context</li>
 <li>Main Camera project name</li>
</ol> <p>
 <b>Extracting blobs</b> is documented here:  <a href="https://wiki.lineageos.org/extracting_blobs_from_zips_manually">https://wiki.lineageos.org/extracting_blobs_from_zips_manually</a>
</p>

 <p>
The important thing is that at some point LineageOS has moved from  <code>extract-blobs.sh</code> to  <code>extract-blobs.py</code>, which seems to be more functional, but is a little weird to use.
</p>

 <p>
I was extracting blobs from an unpacking of the most recent version of the OnePlus original operating system, done as usually done with most Lineage builds, with a single caveat.
</p>

 <p>
My system used a single “APEX” package to provide alternative versions of the binary libraries to (at least some of) camera  <code>.so</code> libraries as dependencies.
</p>

 <p>
So in addition to unpacking the first layer of firmware into separate directories ( <code>system</code>,  <code>system_ext</code>,  <code>vendor</code>,  <code>odm</code>), I had to unpack that APEX file and add an additional directory to the unpack.
</p>

 <p>
It is very important that some binaries are “pinned”, that is that they are not expected to be extracted and are provided with the camera module itself.
In my project those are the files of the camera and gallery themselves, because they are actually re-compiled from Smali sources.
</p>

 <p>
 <b>Init script</b>,  <b>mount</b>, and  <b>camera project name</b> come from my predecessors, and I did not try removing them, and I do not know if they still serve any purpose.
</p>
</div>
</div>



 <div id="outline-container-Initial-debugging-with-~rg~,-~readelf~,-~logcat~-and-dependency-drawing." class="outline-4">
 <h4 id="Initial-debugging-with-~rg~,-~readelf~,-~logcat~-and-dependency-drawing."> <span class="section-number-4">1.6.3.</span>  <a href="#Initial-debugging-with-~rg~,-~readelf~,-~logcat~-and-dependency-drawing.">Initial debugging with  <code>rg</code>,  <code>readelf</code>,  <code>logcat</code> and dependency drawing.</a></h4>
 <div class="outline-text-4" id="text-Initial-debugging-with-~rg~,-~readelf~,-~logcat~-and-dependency-drawing.">
 <p>
It is surprising how far one can go without any specific debugging tools, just by reading logs and following the intuition.
</p>

 <p>
Essentially I kept reading  <code>adb -s <devid> logcat</code> and  <code>adb -s <devid> dmesg</code> for errors, and tried fixing those which were appearing.
</p>

 <p>
Most of the problems were of these kinds:
</p>

 <ol class="org-ol"> <li>Missing Java classes :: those I implemented in the  <code>oplus-fwk</code></li>
 <li>Missing start-time  <code>.so</code> libraries :: those I copied from the original firmware.</li>
 <li>Missing  <code>dlopen</code>  <code>.so</code> libraries :: those were also usually reported in the log, except when they were not.</li>
</ol> <p>
At some point I used a script written by myself in Scheme in order to plot the dependency tree of the camera  <code>.so</code> files.
</p>


 <figure id="org02485d2"> <img src="Body/2026-02-19_22-26-24_screenshot.png" alt="2026-02-19_22-26-24_screenshot.png"></img></figure> <p>
This is just a fragment, the full graph is a PDF, and it kinda helped me to track which dependencies are already installed and which are not related to the camera.
</p>
</div>
</div>

 <div id="outline-container-Rebuilding-the-camera-~apk~." class="outline-4">
 <h4 id="Rebuilding-the-camera-~apk~."> <span class="section-number-4">1.6.4.</span>  <a href="#Rebuilding-the-camera-~apk~.">Rebuilding the camera  <code>apk</code>.</a></h4>
 <div class="outline-text-4" id="text-Rebuilding-the-camera-~apk~.">
 <p>
At some point I found that the requirements for the  <code>apk</code> files changed with between Android 13, 14, 15 and 16.
</p>

 <p>
Those changes, luckily, were primarily those which can be accommodated with one of the two methods:
</p>

 <ol class="org-ol"> <li>Adding some statements into the  <code>AndroidManifest.xml</code> to declare using new permissions.</li>
 <li>Adding some statements to the  <code>/system_ext/etc/permissions/*xml</code> and  <code>/system/etc/sysconfig/*xml</code>  <code>/system_ext/etc/default-permissions/*xml</code> to grant those permissions to the app without asking. See the files in the camera project repo.</li>
</ol> <p>
But if changing the xml files in on the system is easy, changing the xml file in the  <code>apk</code> requires recompiling the  <code>apk</code>.
</p>

 <p>
Here is my script for it:
</p>

 <div class="org-src-container">
 <pre class="src src-shell"> <span style="font-weight: bold;">cd</span> ~/Lineage-Camera
(
   <span style="font-weight: bold;">set</span> -x
   <span style="font-weight: bold;">cd</span> OplusCamera-15 &&  <span style="font-style: italic;">\</span>
  rm -rf ./dist/OplusCamera-15.apk  &&  <span style="font-style: italic;">\</span>
  apktool b &&  <span style="font-style: italic;">\</span>
  java -jar ~/Lineage-Build/out/host/linux-x86/framework/apksigner.jar sign --in ./dist/OplusCamera-15.apk -out ./dist/OplusCamera-15.apk.signed --cert ~/Lineage-Build/build/make/target/product/security/platform.x509.pem --key ~/Lineage-Build/build/make/target/product/security/platform.pk8 --v3-signing-enabled false &&  <span style="font-style: italic;">\</span>
  mv ./dist/OplusCamera-15.apk.signed ./dist/OplusCamera-15.apk &&  <span style="font-style: italic;">\</span>
   <span style="font-weight: bold; font-style: italic;">mysha</span>=$(sha1sum ./dist/OplusCamera-15.apk | cut -d  <span style="font-style: italic;">' '</span> -f 1) &&
  printf  <span style="font-style: italic;">'Opluscam sha1sum=%s\n'</span>  <span style="font-style: italic;">"$mysha"</span> &&
  sed -i  <span style="font-style: italic;">"/my_product\/app\/OplusCamera\/OplusCamera\.apk/s/|.*$/|$mysha/"</span>   ~/Lineage-Build/vendor/oplus/camera/proprietary-files.txt &&
  cp ./dist/OplusCamera-15.apk ~/Lineage-Build/vendor/oplus/camera/proprietary/system_ext/priv-app/OplusCamera/OplusCamera.apk ||  <span style="font-weight: bold;">exit</span> 1
) &&  <span style="font-style: italic;">\</span>
(
   <span style="font-weight: bold;">cd</span> OppoGallery2 &&  <span style="font-style: italic;">\</span>
  rm -rf ./dist/OppoGallery2.apk &&  <span style="font-style: italic;">\</span>
  apktool b &&  <span style="font-style: italic;">\</span>
  jarsigner -storepass  <span style="font-style: italic;">"android"</span> -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore ./dist/OppoGallery2.apk androiddebugkey &&  <span style="font-style: italic;">\</span>
   <span style="font-weight: bold; font-style: italic;">mysha</span>=$(sha1sum ./dist/OppoGallery2.apk | cut -d  <span style="font-style: italic;">' '</span> -f 1) &&
  printf  <span style="font-style: italic;">'Oplusgallery sha1sum=%s\n'</span>  <span style="font-style: italic;">"$mysha"</span> &&
  sed -i  <span style="font-style: italic;">"/my_stock\/priv-app\/OppoGallery2\/OppoGallery2\.apk/s/|.*$/|$mysha/"</span>   ~/Lineage-Build/vendor/oplus/camera/proprietary-files.txt &&
  cp ./dist/OppoGallery2.apk ~/Lineage-Build/vendor/oplus/camera/proprietary/system_ext/priv-app/OppoGallery2/OppoGallery2.apk
) ||  <span style="font-weight: bold;">exit</span> 2

 <span style="font-weight: bold;">if</span> ! diff -u OplusCamera-15/dist/OplusCamera-15.apk ~/Lineage-Build/vendor/oplus/camera/proprietary/system_ext/priv-app/OplusCamera/OplusCamera.apk  ;  <span style="font-weight: bold;">then</span>
  printf  <span style="font-style: italic;">'Cameras do not match!\n'</span>
   <span style="font-weight: bold;">exit</span> 1
 <span style="font-weight: bold;">fi</span>

 <span style="font-weight: bold;">if</span> ! diff -u OppoGallery2/dist/OppoGallery2.apk ~/Lineage-Build/vendor/oplus/camera/proprietary/system_ext/priv-app/OppoGallery2/OppoGallery2.apk ;  <span style="font-weight: bold;">then</span>
  printf  <span style="font-style: italic;">'Galleries do not match!\n'</span>
   <span style="font-weight: bold;">exit</span> 1
 <span style="font-weight: bold;">fi</span>
</pre>
</div>

 <p>
Note that I am actually signing the camera  <code>apk</code> with the platform key.
This is superfluous when building Android once, but if you want to avoid re-flashing the image each time you rebuild the  <code>apk</code>, you can sign the  <code>apk</code> with the “platform key” and just copy it to the target directory.
</p>
</div>
</div>

 <div id="outline-container-~camxoverridesettings.txt~" class="outline-4">
 <h4 id="~camxoverridesettings.txt~"> <span class="section-number-4">1.6.5.</span>  <a href="#~camxoverridesettings.txt~"> <code>camxoverridesettings.txt</code></a></h4>
 <div class="outline-text-4" id="text-~camxoverridesettings.txt~">
 <ol class="org-ol"> <li> <a href="https://xdaforums.com/t/edge30ultra-moto30xpro-camera-research.4492159/page-3">https://xdaforums.com/t/edge30ultra-moto30xpro-camera-research.4492159/page-3</a></li>
</ol> <p>
There was a third, “bonus” file to edit,  <code>/etc/camera/camxoverridesettings.txt</code>, but it only required two edits.
</p>

 <div class="org-src-container">
 <pre class="src src-shell"> <span style="font-weight: bold; font-style: italic;">raiserecoverysigabrt</span>=0
 <span style="font-weight: bold; font-style: italic;">disableFDHWProcessing</span>=1
</pre>
</div>

 <p>
The first one does not crash the process when ASAN ( <a href="https://clang.llvm.org/docs/AddressSanitizer.html">https://clang.llvm.org/docs/AddressSanitizer.html</a>) failures occur, and they will occur because, come on, the project is not built from one source.
</p>

 <p>
The second disables hardware face detection (FD is Face Detection), because there were some crashes connected to it?
(I guess, I actually forgot).
</p>

 <p>
See the link to xda-forums for more details about using  <code>camxoverridesettings.txt</code>.
In particular, by setting  <code>enableFeature2Dump=1</code> it is possible to get not just DNG RAW, but full-sized Bayer matrix dumps into  <code>/data/vendor/camera</code>.
</p>

 <p>
The full list of parameters is in the project repo, but I don’t know what they mean.
</p>
</div>
</div>

 <div id="outline-container-~oplus-fwk.jar~" class="outline-4">
 <h4 id="~oplus-fwk.jar~"> <span class="section-number-4">1.6.6.</span>  <a href="#~oplus-fwk.jar~"> <code>oplus-fwk.jar</code></a></h4>
 <div class="outline-text-4" id="text-~oplus-fwk.jar~">
 <p>
I had to stub a lot of  <code>oplus-framework.jar</code> functions, mostly blindly making them return  <code>false</code>,  <code>null</code>, throw an exception, or do nothing.
</p>

 <p>
Perhaps this is the part of my work most likely to be accepted to LineageOS’ upstream.
Not all of the code is written by me, a lot of it is written by my predecessor,  <code>sx75</code> from crdroid.
</p>

 <p>
In total, this is:
</p>
 <div class="org-src-container">
 <pre class="src src-shell">git log HEAD~2..HEAD --patch -- oplus-fwk/ | wc -l
16099
</pre>
</div>

 <p>
in
</p>

 <div class="org-src-container">
 <pre class="src src-shell">git log HEAD~2..HEAD --stat -- oplus-fwk | grep -F  <span style="font-style: italic;">'|'</span>  | wc -l
135
</pre>
</div>

 <p>
I had to add the following exceptions to the declared “allowed framework classes” into  <code>build/soong/scripts/check_boot_jars/package_allowed_list.txt</code>
</p>

 <div class="org-src-container">
 <pre class="src src-patch">diff --git a/scripts/check_boot_jars/package_allowed_list.txt b/scripts/check_boot_jars/package_allowed_list.txt
index 983650039..7c5ed0ca2 100644
--- a/scripts/check_boot_jars/package_allowed_list.txt
+++ b/scripts/check_boot_jars/package_allowed_list.txt
@@ -280,6 +280,12 @@ com\.nvidia\..*
 # OPLUS adds
 com\.oplus\..*
+oplus\..*
+com.coloros\..*
+vendor.oplus\..*
+com.heytap\..*
+net.oneplus\..*
+com.color\..*
 # QC adds
 com.qualcomm.qti
</pre>
</div>
</div>
</div>

 <div id="outline-container-Solving-a-race-condition-with-Smali" class="outline-4">
 <h4 id="Solving-a-race-condition-with-Smali"> <span class="section-number-4">1.6.7.</span>  <a href="#Solving-a-race-condition-with-Smali">Solving a race condition with Smali</a></h4>
 <div class="outline-text-4" id="text-Solving-a-race-condition-with-Smali">
 <p>
Even though I have introduced Smali in  <a href="#Java,-jadx,-smali,-and-adding-polyfills">1.5.5</a>, I actually did not need to write much Smali to solve concrete issues.
Essentially, I added just two patches: one fixed a race condition deadlock, another one removed a hanging check.
</p>

 <p>
The deadlock is fixed like this, and I am afraid to touch it, because it is just making the correct thread “win” the race and is not actually solving the bug.
</p>

 <div class="org-src-container">
 <pre class="src src-patch">diff --git a/smali/com/oplus/camera/common/config/CameraSettingsConfig.smali b/smali/com/oplus/camera/common/config/CameraSettingsConfig.smali
index e80eaccf..befe96b8 100644
--- a/smali/com/oplus/camera/common/config/CameraSettingsConfig.smali
+++ b/smali/com/oplus/camera/common/config/CameraSettingsConfig.smali
@@ -1383,7 +1383,7 @@
 .end method
 .method public static declared-synchronized initialize(Landroid/content/Context;)V
-    .locals 3
+    .locals 6
     .line 1
     const-class p0, Lcom/oplus/camera/common/config/CameraSettingsConfig;
@@ -1472,6 +1472,9 @@
     .line 45
     sput-boolean v0, Lcom/oplus/camera/common/config/CameraSettingsConfig;->sbInit:Z
+    const-string v4, "mine-initialize"
+    const-string v5, "after sbInit=true;"
+    invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
     .line 46
     .line 47
@@ -1487,23 +1490,23 @@
     .line 50
     :cond_0
     :goto_0
-    const-string v0, "CameraSettingsConfig"
+#    const-string v0, "CameraSettingsConfig"
     .line 51
     .line 52
-    new-instance v1, Lcom/oplus/camera/common/config/a;
+#    new-instance v1, Lcom/oplus/camera/common/config/a;
     .line 53
     .line 54
-    const/4 v2, 0x0
+#    const/4 v2, 0x0
     .line 55
-    invoke-direct {v1, v2}, Lcom/oplus/camera/common/config/a;-><init>(I)V
+#    invoke-direct {v1, v2}, Lcom/oplus/camera/common/config/a;-><init>(I)V
     .line 56
     .line 57
     .line 58
-    invoke-static {v0, v1}, Ll7/a;->r(Ljava/lang/String;Ljava/util/function/Supplier;)V
+#    invoke-static {v0, v1}, Ll7/a;->r(Ljava/lang/String;Ljava/util/function/Supplier;)V
     :try_end_0
     .catchall {:try_start_0 .. :try_end_0} :catchall_0
@@ -1513,6 +1516,9 @@
     monitor-exit p0
     .line 62
+    const-string v4, "mine-initialize"
+    const-string v5, "after before return-void;"
+    invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
     return-void
     .line 63
</pre>
</div>

 <p>
The second is just as simple:
</p>

 <div class="org-src-container">
 <pre class="src src-patch">--- a/smali/com/oplus/camera/common/config/CameraSettingsConfig.smali
+++ b/smali/com/oplus/camera/common/config/CameraSettingsConfig.smali
@@ -3683,32 +3683,37 @@
     .line 157
     .line 158
     .line 159
-    invoke-static {}, Lv6/k2;->c()Z
+#    invoke-static {}, Lv6/k2;->c()Z
     .line 160
     .line 161
     .line 162
-    move-result v0
+#    move-result v0
     .line 163
-    if-eqz v0, :cond_5
+#    if-eqz v0, :cond_5
     .line 164
     .line 165
-    iget-object v0, p0, Lcom/oplus/camera/common/config/CameraSettingsConfig;->mMenuSettingList:Ljava/util/List;
+#    iget-object v0, p0, Lcom/oplus/camera/common/config/CameraSettingsConfig;->mMenuSettingList:Ljava/util/List;
     .line 166
     .line 167
-    const-string v2, "pref_spruce_function_key"
+#    const-string v2, "pref_spruce_function_key"
     .line 168
     .line 169
-    invoke-interface {v0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
     .line 170
     .line 171
     .line 172
-    :cond_5
+#    :cond_5
     invoke-static {}, Lcom/oplus/camera/configure/CameraConfig;->C()Z
     .line 173
</pre>
</div>

 <p>
That is just it.
I just removed some hanging function calls.
</p>
</div>
</div>

 <div id="outline-container-slomo-workaround" class="outline-4">
 <h4 id="slomo-workaround"> <span class="section-number-4">1.6.8.</span>  <a href="#slomo-workaround">slomo workaround</a></h4>
 <div class="outline-text-4" id="text-slomo-workaround">
 <p>
This issues is not entirely solved, but at least is somehow progressed.
When I was trying to find out why the “240Hz slomo” mode is not opening in the camera, I encountered a message about not enough buffers being allocated for a stream.
</p>

 <p>
This is related to an Android feature called “HAL3 buffer management API.”
( <a href="https://source.android.com/docs/core/camera/buffer-management-api">https://source.android.com/docs/core/camera/buffer-management-api</a>)
</p>

 <p>
 <code>requestStreamBuffers</code> is a function which is sometimes called by the “Camera HAL” client to receive … something.
I guess, some buffer pointers, for stream data.
</p>

 <p>
The log was complaining about the code requiring too many buffers, more than had been allocated in advance.
I added a hack to allocate more buffers, but the issue is probably that BBK ships a patched version of their  <code>cameraserver</code> and its dependencies, which somehow manage buffers differently.
It was also complaining about wrong frame numbers… whatever that is.
</p>

 <div class="org-src-container">
 <pre class="src src-patch">diff --git a/services/camera/libcameraservice/device3/Camera3OutputUtils.cpp b/services/camera/libcameraservice/device3/Camera3OutputUtils.cpp
index 7a53847765..ddcf59c096 100644
--- a/services/camera/libcameraservice/device3/Camera3OutputUtils.cpp
+++ b/services/camera/libcameraservice/device3/Camera3OutputUtils.cpp
@@ -654,10 +654,15 @@ void processCaptureResult(CaptureOutputStates& states, const camera_capture_resu
	 std::lock_guard<std::mutex> l(states.inflightLock);
	 ssize_t idx = states.inflightMap.indexOfKey(frameNumber);
	 if (idx == NAME_NOT_FOUND) {
-            SET_ERR("Unknown frame number for capture result: %d",
-                    frameNumber);
+          if (states.inflightMap.size() != 0) {
+            idx = states.inflightMap.size() - 1;
+            goto mine_out;
+          }
+          SET_ERR("Unknown frame number for capture result: %d",
+                  frameNumber);
	     return;
	 }
+    mine_out:
	 InFlightRequest &request = states.inflightMap.editValueAt(idx);
	 ALOGVV("%s: got InFlightRequest requestId = %" PRId32
		 ", frameNumber = %" PRId64 ", burstId = %" PRId32
diff --git a/services/camera/libcameraservice/device3/Camera3Stream.cpp b/services/camera/libcameraservice/device3/Camera3Stream.cpp
index ae76e603bd..0a0360e306 100644
--- a/services/camera/libcameraservice/device3/Camera3Stream.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Stream.cpp
@@ -382,7 +382,9 @@ status_t Camera3Stream::finishConfiguration(/*out*/bool* streamReconfigured) {
	 std::string name = std::string("Stream ") + std::to_string(mId);
	 mStatusId = statusTracker->addComponent(name);
     }
-
+    if (camera_stream::max_buffers >=6 || camera_stream::max_buffers <= 24 ) {
+      camera_stream::max_buffers = 25;
+    }
     // Check if the stream configuration is unchanged, and skip reallocation if
     // so.
     if (mState == STATE_IN_RECONFIG &&
</pre>
</div>

 <p>
I suspect it should increase memory usage significantly.
</p>

 <p>
Somehow this made the “slomo” work, even though in some kind of crippled way.
It is “slow” (whatever that means for a slo-mo), and crashes in the dark.
I guess this issues is still awaiting its champion.
</p>

 <p>
Is suspect it is somehow related to “stream metadata”, the same issue as in  <a href="#Metadata-in-the-vendor-camera-hal-provider">1.6.11</a>.
</p>
</div>
</div>

 <div id="outline-container-Decompiling-and-finding-the-logging-parameters." class="outline-4">
 <h4 id="Decompiling-and-finding-the-logging-parameters."> <span class="section-number-4">1.6.9.</span>  <a href="#Decompiling-and-finding-the-logging-parameters.">Decompiling and finding the logging parameters.</a></h4>
 <div class="outline-text-4" id="text-Decompiling-and-finding-the-logging-parameters.">
 <p>
When the app began starting successfully, I discovered that it crashes in the native code when making photos.
</p>

 <p>
Native code means that disassembling and binary debugging now became mandatory.
</p>

 <p>
The first steps in debugging the camera were a detour, but I still found some useful stuff.
</p>

 <p>
That is, I found some system properties which enable debugging logging for the Oplus Camera, and some for the Qualcomm backend:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">ro.control_privapp_permissions=log  <span style="font-style: italic;">\</span>
persist.sys.state.is.otest.running=1  <span style="font-style: italic;">\</span>
vendor.oplus.apsSN.algo.enable=0  <span style="font-style: italic;">\</span>
ro.control_privapp_permissions=log  <span style="font-style: italic;">\</span>
sys.gcsupression.optimize.enable=0  <span style="font-style: italic;">\</span>
persist.camera.aps.core.warningMask=0xffffffffffffffffffffffffffffffff  <span style="font-style: italic;">\</span>
persist.camera.aps.core.infoMask=0xffffffffffffffffffffffffffffffff  <span style="font-style: italic;">\</span>
persist.camera.aps.core.debugMask=0xffffffffffffffffffffffffffffffff  <span style="font-style: italic;">\</span>
oplus.autotest.camera.debug.forcelog=true  <span style="font-style: italic;">\</span>
persist.sys.camera.lao.enable=true  <span style="font-style: italic;">\</span>
persist.oplus.aps.trace=true  <span style="font-style: italic;">\</span>
com.oplus.camera.pw.debug.capture.flow=true  <span style="font-style: italic;">\</span>
ro.build.release_type=false  <span style="font-style: italic;">\</span>
ro.build.version.ota=PRE  <span style="font-style: italic;">\</span>
ro.version.confidential=false  <span style="font-style: italic;">\</span>
persist.camera.rotate.dump=true  <span style="font-style: italic;">\</span>
persist.camera.cfr.debug=1  <span style="font-style: italic;">\</span>
vendor.aps.logic.snapshot.metadata.debug=1 <span style="font-style: italic;">\</span>
persist.sys.assert.panic=true   <span style="font-style: italic;">\</span>
persist.camera.assert.panic=true  <span style="font-style: italic;">\</span>
persist.vendor.camera.oplus.enableLogging=true  <span style="font-style: italic;">\</span>
persist.sys.dump.aps=1  <span style="font-style: italic;">\</span>
persist.vendor.camera.jpeghwencode=1
</pre>
</div>

 <p>
Not all of them enable debugging, but the names are quite self-explanatory.
</p>

 <p>
The “dumps” usually go to  <code>/data/vendor/camera/</code>, the logs go to  <code>logcat</code>.
There  <span class="underline">are</span> some logging parameters in  <code>camxoverridesettings.txt</code>, but I failed at using them, too difficult.
</p>

 <p>
As I said, some parameters are actually misleading and led to a detour.
In particular,  <code>persist.vendor.camera.jpeghwencode=1</code> does make the post-processing flow go into a different direction, but it turned out to be harder to debug than the “hardware” one.
</p>

 <p>
At the end of the day, the camera supports hardware post-processing.
(The name of the parameter is misleading, it is not just activating hardware JPEG.)
</p>
</div>
</div>

 <div id="outline-container-~AHardware_GetNativeBuffer~" class="outline-4">
 <h4 id="~AHardware_GetNativeBuffer~"> <span class="section-number-4">1.6.10.</span>  <a href="#~AHardware_GetNativeBuffer~"> <code>AHardware_GetNativeBuffer</code></a></h4>
 <div class="outline-text-4" id="text-~AHardware_GetNativeBuffer~">
 <ol class="org-ol"> <li> <a href="https://developer.android.com/ndk/reference/group/a-hardware-buffer">https://developer.android.com/ndk/reference/group/a-hardware-buffer</a></li>
</ol> <p>
One of the crashes that I had to debug for the camera to work was a crash related to a wrong version of  <code>AHardwareBuffer_lock</code>
( <a href="https://developer.android.com/ndk/reference/group/a-hardware-buffer#group___a_hardware_buffer_1gaf10c050f1ddfe2a074ab0f80660b2925">https://developer.android.com/ndk/reference/group/a-hardware-buffer#group___a_hardware_buffer_1gaf10c050f1ddfe2a074ab0f80660b2925</a>)
</p>

 <p>
I found that a piece of code was crashing the program by accessing a non-allocated memory, as so-called “segmentation failure”.
</p>

 <p>
Of course, I had had many segmentation faults before, but never studied in depth where they may be coming from.
It turns out that program memory space is fixed for a program when it is loaded into memory and how in-process addressing works in modern operating systems.
</p>

 <p>
To keep the long story short, the code was crashing in an completely innocuous function, which was just manipulating some bits, i.e. no complicated system calls, stack unwinding, or any other magic.
</p>

 <p>
I started investigating why it crashes at accessing some memory, and found out that neither my debugger (lldb), nor Ghidra debugger can access that memory and it is shown as “unmapped”.
(Note that in Linux, “unmapped” my mean both “not mapped to a different process”, and “not allocated even in the current process space”.)
</p>

 <p>
Neither the Ghidra Book, nor “Learning Linux Binary Analysis” helped me with solving this mystery, but at some point I encountered a StackOverflow question asked by a programmer who could not read memory-mapped region with his debugger, and I guessed that this might be my case.
</p>

 <p>
To this day I do not know whether this memory is from Android Binder or from just a simple  <code>mmap</code>, but it did not matter for my case.
</p>

 <p>
I started to look around that code, and found that the mapped memory region was produced by a call to a function in the “AHardwareBuffer” family.
</p>

 <p>
I looked at the code for extracting binaries from the vendor’s firmware, and found the following lines ( <a href="https://github.com/xigua-dev/device_oneplus_xigua/blob/183e8f24df43b390f8e26a8d7c6f40bcc99f65e5/extract-files.py#L55">https://github.com/xigua-dev/device_oneplus_xigua/blob/183e8f24df43b390f8e26a8d7c6f40bcc99f65e5/extract-files.py#L55</a>):
</p>

 <div class="org-src-container">
 <pre class="src src-python">( <span style="font-style: italic;">'odm/lib64/libHIS.so'</span>,  <span style="font-style: italic;">'odm/lib64/libOGLManager.so'</span>): blob_fixup()
      .clear_symbol_version( <span style="font-style: italic;">'AHardwareBuffer_allocate'</span>)
      .clear_symbol_version( <span style="font-style: italic;">'AHardwareBuffer_describe'</span>)
      .clear_symbol_version( <span style="font-style: italic;">'AHardwareBuffer_lock'</span>)
      .clear_symbol_version( <span style="font-style: italic;">'AHardwareBuffer_release'</span>)
      .clear_symbol_version( <span style="font-style: italic;">'AHardwareBuffer_unlock'</span>),
</pre>
</div>

 <p>
“What the hell?” – I thought.
“These are the same functions which are used near the place where my code crashes.
Why are symbols there even versioned?”
</p>

 <p>
Also, symbol versions for those functions were weird.
They were not what we usually have in Linux, as in  <code>@GLIBC_2.24</code>, but just  <code>@LIBNATIVEWINDOW</code>.
</p>

 <p>
It is worth noting that in Linux linking, symbols  <span class="underline">with</span> symbol versions can be linked with libraries requiring functions  <span class="underline">without</span> symbol versions, but not the other way round.
I.e. if you library requires  <span class="underline">some</span> symbols, versioned will do, but if it requires versioned, un-versioned will not work.
</p>

 <p>
Then I added the copy of  <code>libnativewindow.so</code> to the list of extracted binaries from the vendor’s firmware, and also a set of its dependencies transitively, and had to rewrite some “sonames” and replace dependencies, and boom, the camera started to start up successfully and not crash when trying to make photos.
The photos still did not appear in the DCIM directory, but at least the camera did not crash.
</p>

 <p>
I assume that the different versions of the  <code>AHardwareBuffer_*</code> functions are creating different mappings of the P010 raw pixels arrays in the memory, and the code in the camera was expecting some particular mapping.
</p>
</div>
</div>

 <div id="outline-container-Metadata-in-the-vendor-camera-hal-provider" class="outline-4">
 <h4 id="Metadata-in-the-vendor-camera-hal-provider"> <span class="section-number-4">1.6.11.</span>  <a href="#Metadata-in-the-vendor-camera-hal-provider">Metadata in the vendor camera hal provider</a></h4>
 <div class="outline-text-4" id="text-Metadata-in-the-vendor-camera-hal-provider">
 <p>
After I made the camera successfully try to make photos, I found that they do not appear in the DCIM directory.
Luckily, at the same time some crashdumps, “tombstones” started to appear in the  <code>/data/tombstones/</code> directory.
</p>

 <p>
Those crashdumps indicated that the crash was happening in the process called  <code>vendor.qti.camera.provider-service_64</code>.
</p>

 <p>
This seems to be a process written by Qualcomm, which is responsible for managing the camera devices in the Linux kernel ( <code>/dev/video*</code>) and wrapping their usage into the Android HAL API.
</p>

 <p>
I am still not exactly sure whether the camera app is interacting with the HAL process through the Binder calls directly, or through a different process running under the same  <code>cameraserver</code> user, inventively called  <code>cameraserver</code>.
</p>

 <p>
In any case, the crash was happening because the function called  <code>PostProc</code> was querying the “stream metadata” for the Logical Camera ID and the Physical Camera ID, and since both were missing, it was using some inappropriate heuristic to get the physical ID, and was accessing unmapped memory.
</p>

 <p>
I started to investigate why exactly they were missing, but failed and never found the cause.
However, grepping and searching for various relevant symbols create a strong impression in me that BBK has somehow noticeably patched the process called  <code>cameraserver</code>, and the library called  <code>libcsextimpl.so</code>, so that they would be writing more metadata into the streams, which the Qualcomm process, in turn, would be relying upon.
</p>

 <p>
As far as I understand, this is not a polite way of writing code.
The code of the “framework” should be unchanged, and only “ODM” code should be tweaked by the phone manufacturer, but hey, who am I to say what should and what should not be done outside of my area of expertise.
</p>

 <p>
Initially I tried to do the same thing with  <code>libcsextimpl.so</code>, but found that in the current Android version Google has turned it into a static library instead of a dynamic one, and even though making it dynamic again and trying to replace the open source version with a binary one, but it turned out to require way more dependency rewriting than I had expected, and I gave up.
</p>

 <p>
However, it turned out that by using a small binary patch I can set that “Logical Camera ID” to always be zero, and it was enough to placate the  <code>PostProcess</code> function to do its function correctly.
I generated the patched binary in Ghidra (by using the “Patch instruction” feature), and then used  <code>diff -u</code> and  <code>xxd</code> to generate a two-line binary diff, which I added to the  <code>extract-files.py</code>, and voila, it works.
</p>

 <div class="org-src-container">
 <pre class="src src-python">.binary_regex_replace(  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">metadata error in in ChiOfflineIPEUpscale::PostProcess(PostProcSessionParams*)
</span>     <span style="font-weight: bold;">bytes</span>.fromhex( <span style="font-style: italic;">'6299009400060035844F40F962034039940040B982051836460100B0C6F444F9'</span>),
     <span style="font-weight: bold;">bytes</span>.fromhex( <span style="font-style: italic;">'0000805200060035844F40F9620340391400805282051836460100B0C6F444F9'</span>))
</pre>
</div>
</div>
</div>

 <div id="outline-container-What-actually-is-%22stream-metadata%22?" class="outline-4">
 <h4 id="What-actually-is-%22stream-metadata%22?"> <span class="section-number-4">1.6.12.</span>  <a href="#What-actually-is-%22stream-metadata%22?">What actually is “stream metadata”?</a></h4>
 <div class="outline-text-4" id="text-What-actually-is-%22stream-metadata%22?">
 <ol class="org-ol"> <li> <a href="https://source.android.com/docs/core/camera/camerax-vendor-extensions">https://source.android.com/docs/core/camera/camerax-vendor-extensions</a></li>
 <li> <a href="https://source.android.com/docs/core/camera/camera3">https://source.android.com/docs/core/camera/camera3</a></li>
</ol> <p>
So, in addition to capturing CCD pixel intensity, the camera also measures a lot of parameters, such as aperture, shutter delay, flash, timestamp of each frame, et cetera.
</p>

 <p>
Those are saved into a data structure called “stream metadata”, which is basically a map/dictionary from “vendor tags” to metadata values.
That is, metadata keys are binary numbers, not text strings, and each participant in this trio: Google, Qualcomm, BBK, is having its own system for converting strings such as  <code>"com.oplus.LogicalCameraID"</code> into a code for querying metadata.
</p>

 <p>
There is an issue about it  <a href="https://issuetracker.google.com/issues/261760717">https://issuetracker.google.com/issues/261760717</a>
</p>

 <p>
I suspect that in the current setup a lot of metadata is not getting into the pipeline.
</p>

 <p>
Tags can be dumped using the property  <code>vendor.aps.logic.snapshot.metadata.debug=1</code>, I think.
The file called  <code>/data/vendor/camera/metadata/metadatatable.txt</code>.
</p>
</div>
</div>

 <div id="outline-container-SELinux-details" class="outline-4">
 <h4 id="SELinux-details"> <span class="section-number-4">1.6.13.</span>  <a href="#SELinux-details">SELinux details</a></h4>
 <div class="outline-text-4" id="text-SELinux-details">
 <p>
Making the camera work with SELinux set to “Enforcing” was the last part of my debugging process.
</p>

 <p>
Setting SELinux to “Enforcing” produced quite a few denial errors in the  <code>dmesg</code>, but fixing all of them with  <code>sepolicy-inject</code> and  <code>chcon</code> did not really make the camera work, or even start.
</p>

 <div class="org-src-container">
 <pre class="src src-selinux">02-15 20:16:53.495  8722  8722 I PreviewReceived: type=1400 audit(0.0:287): avc:  denied  { open } for  path="/dev/__properties__/u:object_r:vendor_default_prop:s0" dev="tmpfs" ino=464 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=1 app=com.oplus.camera
02-15 20:16:53.495  8722  8722 I PreviewReceived: type=1400 audit(0.0:288): avc:  denied  { getattr } for  path="/dev/__properties__/u:object_r:vendor_default_prop:s0" dev="tmpfs" ino=464 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=1 app=com.oplus.camera
02-15 20:16:53.495  8722  8722 I PreviewReceived: type=1400 audit(0.0:289): avc:  denied  { map } for  path="/dev/__properties__/u:object_r:vendor_default_prop:s0" dev="tmpfs" ino=464 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=1 app=com.oplus.camera
</pre>
</div>

 <p>
and
</p>

 <div class="org-src-container">
 <pre class="src src-selinux">06-10 00:05:59.224  1026  1026 E SELinux : avc:  denied  { find } for interface=vendor.qti.hardware.camera.postproc::IPostProcService sid=u:r:platform_app:s0:c512,c768 pid=8558 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:vendor_hal_camera_postproc_hwservice:s0 tclass=hwservice_manager permissive=0
06-10 00:05:59.264     0     0 E [T201019] SELinux: avc:  denied  { find } for pid=11375 uid=10184 name=oiface scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:default_android_service:s0 tclass=service_manager permissive=0
06-10 00:05:59.265     0     0 E [T201019] SELinux: avc:  denied  { find } for pid=11375 uid=10184 name=oiface scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:default_android_service:s0 tclass=service_manager permissive=0
</pre>
</div>

 <p>
 <code>audit2allow</code> was always meeting “ <code>neverallow</code>” failures, and all of this stuff is so terribly documented that I was almost in despair.
</p>

 <p>
However, two ideas came to my mind.
The first one is that it does make a lot of sense to give the app process its own SELinux context (domain, label).
It took me a while to find out how to do that, as doing it in a naive way (just adding a type  <code>opluscamera_app</code> and adding a line to  <code>seapp_contexts</code>) was causing a boot-loop.
</p>

 <p>
However, at the end of the day I did something, and this something satisfies me.
</p>

 <p>
I added a  <code>type opluscamera_app</code>, and literally copied the definition of this type from  <code>platform_app.te</code>.
This made sure that my app has all the same permissions as a normal “platform app”, but is running at a different label, and I can filter the logs by this label.
It also meant that I can add permissions to this label, without interfering with the main SELinux policy.
</p>

 <p>
The drawback is that I had to declare this type not in the camera module but in the main  <code>sepolicy</code> module (so my could would not be taken upstream), and add exceptions to the  <code>neverallow</code> rules, which I do not mind, as there is only a single app running as this label, mine, and I do not intend to upstream it anyway.
</p>

 <p>
I had to add  <code>neverallow</code> exceptions like this:
</p>

 <p>
 <code>system/sepolicy</code>:
</p>
 <div class="org-src-container">
 <pre class="src src-patch">diff --git a/private/app.te b/private/app.te
index e4ac05b9c..441fb1889 100644
--- a/private/app.te
+++ b/private/app.te
@@ -521,7 +521,7 @@ allow appdomain zygote_tmpfs:file { map read };

 # Superuser capabilities.
 # bluetooth requires net_admin and wake_alarm. network stack app requires net_admin.
-neverallow { appdomain -bluetooth -network_stack } self:capability_class_set *;
+neverallow { appdomain -bluetooth -network_stack -opluscamera_app } self:capability_class_set *;

 # Block device access.
 neverallow appdomain dev_type:blk_file { read write };
@@ -746,7 +746,7 @@ neverallow {
 }:file no_x_file_perms;

 # Don't allow apps access to any of the following character devices.
-neverallow appdomain {
+neverallow {appdomain -opluscamera_app} {
     audio_device
     camera_device
     dm_device
@@ -758,6 +758,7 @@ neverallow appdomain {
 # needs access to /dev/video* for interfacing with the host
 neverallow {
     appdomain
+    -opluscamera_app
     -device_as_webcam
 } video_device:chr_file { read write };

</pre>
</div>

 <p>
 <code>device/qcom/sepolicy_vndr/sm8550/</code>:
</p>
 <div class="org-src-container">
 <pre class="src src-patch">diff --git a/generic/vendor/common/domain.te b/generic/vendor/common/domain.te
index 0f4f0539e..2e256d693 100644
--- a/generic/vendor/common/domain.te
+++ b/generic/vendor/common/domain.te
@@ -85,6 +85,7 @@ neverallow { domain
 - hal_contexthub_default
 - hal_sensors_default
 - hal_camera_default
+- opluscamera_app
 userdebug_or_eng(` -vendor_usta_app')
 userdebug_or_eng(` -vendor_ustaservice_app')
 userdebug_or_eng(` -vendor_sysmonapp_app_test')
@@ -111,6 +112,6 @@ neverallow { domain
 userdebug_or_eng(` -vendor_sysmonapp_app_test')
 } vendor_qdsp_device:chr_file *;
 neverallow { domain -init -vendor_init - ueventd } vendor_qdsp_device:chr_file ~{r_file_perms};
-neverallow { appdomain - shell userdebug_or_eng(`-vendor_sysmonapp_app_test') } vendor_qdsp_device:chr_file ~{ioctl read};
+neverallow { appdomain - shell userdebug_or_eng(`-vendor_sysmonapp_app_test') -opluscamera_app } vendor_qdsp_device:chr_file ~{ioctl read};
 neverallow mediacodec vendor_qdsp_device:chr_file ~{ioctl read};
</pre>
</div>

 <p>
This allowed me to study the behaviour of the camera app without interfering with the workings of the “platform_app” label.
</p>

 <p>
Another revelation, and I cannot call it by anything else, came when I was painfully and hopelessly staring through these two documents:
</p>

 <ol class="org-ol"> <li> <a href="https://source.android.com/docs/core/architecture/aidl/aidl-hals#sepolicy">https://source.android.com/docs/core/architecture/aidl/aidl-hals#sepolicy</a></li>
 <li> <a href="https://android.googlesource.com/platform/system/sepolicy/+/refs/heads/master/public/te_macros">https://android.googlesource.com/platform/system/sepolicy/+/refs/heads/master/public/te_macros</a></li>
</ol> <p>
The first one is written so badly that having it written in Swahili and read by a non-Swahili speaker would not hurt much.
The second is just “the source”, you cannot expect much from it.
</p>

 <p>
In any case, some of my SELinux denials were about  <code>vendor_hal_camera_postproc_hwservice</code>, and none of the statements like  <code>hal_client_domain(opluscamera_app, hal_camera_postproc_hwservice)</code>, or  <code>hal_client_domain(opluscamera_app, hal_camera_postproc)</code>, or  <code>hal_hwclient_domain(opluscamera_app, hal_camera_postproc)</code> were working.
</p>

 <p>
Finally after spending a long time studying  <code>hardware/oplus/sepolicy/qti/vendor/</code>, something clicked in my head and I wrote  <code>hal_client_domain(opluscamera_app, hal_camera)</code>.
This worked.
After looking once more at  <a href="https://source.android.com/docs/core/architecture/aidl/aidl-hals#sepolicy">https://source.android.com/docs/core/architecture/aidl/aidl-hals#sepolicy</a> , I decided that with  <span class="underline">a lot</span> of mental gymnastics and imagination stretching, it is possible to see how the official document is claiming that this is actually what should be written, but, honestly, this approach to documentation is just horrible.
</p>

 <p>
In any case, even though I had to add a type and edit the main tree, I am satisfied with this solution, because the app is running confined.
</p>

 <p>
As a side-note, the camera app is actually requiring  <code>selinux_check_access(opluscamera_app)</code>, that is, its behaviour is different depending on whether SELinux is Enforcing, Permissive, or off.
Which is a bad coding practice.
</p>
</div>
</div>

 <div id="outline-container-Potential-future-work" class="outline-4">
 <h4 id="Potential-future-work"> <span class="section-number-4">1.6.14.</span>  <a href="#Potential-future-work">Potential future work</a></h4>
 <div class="outline-text-4" id="text-Potential-future-work">
 <p>
I do not have time to work on the camera any more, but I hope that someone can take over this honourable task.
</p>

 <p>
I also did not find a good way to identify thread pools and find out which places are placing the tasks on the queue, so the code for me looks like “functions starting at  <code>libc</code>  <code>pthread_start</code>”.
</p>

 <p>
It would be nice if someone submits a fragment to this howto on how to track task entry into thread pool.
</p>
</div>
</div>

 <div id="outline-container-App-structure" class="outline-4">
 <h4 id="App-structure"> <span class="section-number-4">1.6.15.</span>  <a href="#App-structure">App structure</a></h4>
 <div class="outline-text-4" id="text-App-structure">
 <p>
This section is speculative, I am by no means an expert on Android Cameras.
</p>

 <p>
I saw three processes interaction over Binder:
</p>

 <ol class="org-ol"> <li> <code>com.oplus.camera</code> :: app</li>
 <li> <code>cameraserver</code> :: Android camera HAL service process</li>
 <li> <code>vendor.qti.camera.provider-service_64</code> :: Qualcomm device process</li>
</ol> <p>
The camera app had basically two big image-processing parts: preview and shooting.
Both of those were implemented in the  <code>libAlgoProcess.so</code>, which was  <code>dlopen</code> from some of the camera built-in  <code>.so</code> files.
 <code>libAlgoProcess.so</code> interacted with the  <code>cameraserver</code> (?) somehow to obtain the image (buffer array), or several images as  <code>AHardwareBuffer_Planes</code>.
</p>

 <p>
After a buffer was obtained, it did post-processing on this buffer, either inside itself (depending on a key  <code>persist.vendor.camera.jpeghwencode</code>), or passing the buffer to the  <code>vendor.qti.camera.provider-service_64</code> to do post-processing in hardware.
</p>

 <p>
All of this was followed by “CameraMetadata”, indexed by “VendorTags”, which contained some important information about streams and buffers.
</p>

 <p>
The camera process had some kind of “collection of typical pipelines”, called “usecases”, and in fact, a lot of Qualcomm code is named “CHI::usecase” – Camera HAL Interface Usecase.
</p>

 <p>
I cannot believe that  <code>vendor.qti.camera.provider-service_64</code> is used only for post-processing.
A camera process is naturally expected to also do capturing.
But I did not find where capturing happens.
</p>
</div>
</div>
</div>

 <div id="outline-container-Collected-Bibliography" class="outline-3">
 <h3 id="Collected-Bibliography"> <span class="section-number-3">1.7.</span>  <a href="#Collected-Bibliography">Collected Bibliography</a></h3>
 <div class="outline-text-3" id="text-Collected-Bibliography">
 <ol class="org-ol"> <li>OS details ::  <a href="https://source.android.com/">https://source.android.com/</a>
 <ol class="org-ol"> <li> <a href="https://source.android.com/docs/setup/start/requirements">https://source.android.com/docs/setup/start/requirements</a></li>
 <li> <a href="https://source.android.com/docs/setup/download/source-control-tools">https://source.android.com/docs/setup/download/source-control-tools</a></li>
 <li> <a href="https://www.akshaydeo.com/switching-branch-with-repo-for-android-source-code/">https://www.akshaydeo.com/switching-branch-with-repo-for-android-source-code/</a></li>
 <li> <a href="https://source.android.com/docs/setup/reference/repo">https://source.android.com/docs/setup/reference/repo</a></li>
 <li> <a href="https://developer.android.com/studio/platform">https://developer.android.com/studio/platform</a> :: Android Studio for Platform</li>
 <li> <a href="https://source.android.com/docs/setup/build/building-kernels">https://source.android.com/docs/setup/build/building-kernels</a></li>
 <li> <a href="https://source.android.com/docs/core/architecture/vintf">https://source.android.com/docs/core/architecture/vintf</a></li>
 <li> <a href="https://source.android.com/docs/core/architecture">https://source.android.com/docs/core/architecture</a></li>
 <li> <a href="https://source.android.com/docs/core/architecture/configuration/add-system-properties">https://source.android.com/docs/core/architecture/configuration/add-system-properties</a></li>
 <li> <a href="https://source.android.com/docs/setup/reference/androidbp">https://source.android.com/docs/setup/reference/androidbp</a></li>
 <li> <a href="https://ci.android.com/builds/submitted/13288697/linux/latest/view/soong_build.html">https://ci.android.com/builds/submitted/13288697/linux/latest/view/soong_build.html</a></li>
 <li> <a href="https://android.stackexchange.com/questions/58184/writing-to-dev-log-main-from-command-line">https://android.stackexchange.com/questions/58184/writing-to-dev-log-main-from-command-line</a></li>
 <li> <a href="https://files.serverless.industries/bin/">https://files.serverless.industries/bin/</a></li>
 <li> <a href="https://android.googlesource.com/platform/system/core/+/master/init/README.md">https://android.googlesource.com/platform/system/core/+/master/init/README.md</a></li>
 <li> <a href="https://android.stackexchange.com/questions/203951/how-can-i-make-a-symlink-or-equivalent-inside-storage-emulated-0/">https://android.stackexchange.com/questions/203951/how-can-i-make-a-symlink-or-equivalent-inside-storage-emulated-0/</a></li>
 <li> <a href="https://www.xda-developers.com/diving-into-sdcardfs-how-googles-fuse-replacement-will-reduce-io-overhead/">https://www.xda-developers.com/diving-into-sdcardfs-how-googles-fuse-replacement-will-reduce-io-overhead/</a> :: sdcardfs</li>
 <li> <a href="https://android.stackexchange.com/questions/197959/why-partition-gets-unmounted-automatically-after-some-time/200449#200449">https://android.stackexchange.com/questions/197959/why-partition-gets-unmounted-automatically-after-some-time/200449#200449</a></li>
 <li> <a href="https://android.stackexchange.com/questions/214288/how-to-stop-apps-writing-to-android-folder-on-the-sd-card/">https://android.stackexchange.com/questions/214288/how-to-stop-apps-writing-to-android-folder-on-the-sd-card/</a></li>
 <li> <a href="https://android.stackexchange.com/questions/217741/how-to-bind-mount-a-folder-inside-sdcard-with-correct-permissions/217936#217936">https://android.stackexchange.com/questions/217741/how-to-bind-mount-a-folder-inside-sdcard-with-correct-permissions/217936#217936</a></li>
 <li> <a href="https://developer.android.com/training/data-storage#scoped-storage">https://developer.android.com/training/data-storage#scoped-storage</a></li>
 <li> <a href="https://github.com/Heydarchi/AIDL-HAL-Service">https://github.com/Heydarchi/AIDL-HAL-Service</a></li>
 <li> <a href="https://source.android.com/docs/core/camera/buffer-management-api">https://source.android.com/docs/core/camera/buffer-management-api</a></li>
 <li> <a href="https://developer.android.com/ndk/reference/group/a-hardware-buffer">https://developer.android.com/ndk/reference/group/a-hardware-buffer</a></li>
 <li> <a href="https://source.android.com/docs/core/camera/camerax-vendor-extensions">https://source.android.com/docs/core/camera/camerax-vendor-extensions</a></li>
 <li> <a href="https://source.android.com/docs/core/camera/camera3">https://source.android.com/docs/core/camera/camera3</a></li>
 <li> <a href="https://issuetracker.google.com/issues/261760717">https://issuetracker.google.com/issues/261760717</a></li>
</ol></li>
 <li>Apps ::  <a href="https://developer.android.com/">https://developer.android.com/</a>
 <ol class="org-ol"> <li> <a href="https://developer.android.com/studio">https://developer.android.com/studio</a></li>
 <li> <a href="https://gradle.org/">https://gradle.org/</a> :: Gradle</li>
 <li> <a href="https://developer.android.com/topic/architecture?hl=en">https://developer.android.com/topic/architecture?hl=en</a></li>
 <li> <a href="https://rtx.meta.security/reference/2024/07/03/Android-system-apps.html">https://rtx.meta.security/reference/2024/07/03/Android-system-apps.html</a> :: App permissions</li>
 <li> <a href="https://android.stackexchange.com/questions/210139/what-is-the-u-everybody-uid/">https://android.stackexchange.com/questions/210139/what-is-the-u-everybody-uid/</a></li>
 <li> <a href="https://developer.squareup.com/blog/advocating-against-android-fragments/">https://developer.squareup.com/blog/advocating-against-android-fragments/</a></li>
 <li> <a href="https://stackoverflow.com/questions/31236020/fragment-vs-custom-view-in-android">https://stackoverflow.com/questions/31236020/fragment-vs-custom-view-in-android</a></li>
 <li> <a href="https://github.com/xxv/android-lifecycle/">https://github.com/xxv/android-lifecycle/</a></li>
 <li> <a href="https://android.stackexchange.com/questions/208523/how-androids-permissions-mapping-with-uids-gids-works/208982#208982">https://android.stackexchange.com/questions/208523/how-androids-permissions-mapping-with-uids-gids-works/208982#208982</a></li>
 <li> <a href="https://source.android.com/devices/storage#runtime_permissions">https://source.android.com/devices/storage#runtime_permissions</a></li>
</ol></li>
 <li>LineageOS documentation ::  <a href="https://lineageos.org/engineering/">https://lineageos.org/engineering/</a>
 <ol class="org-ol"> <li> <a href="https://lineageos.org/engineering/HowTo-SELinux/">https://lineageos.org/engineering/HowTo-SELinux/</a></li>
 <li> <a href="https://lineageos.org/engineering/HowTo-Debugging/">https://lineageos.org/engineering/HowTo-Debugging/</a></li>
 <li> <a href="https://wiki.lineageos.org/extracting_blobs_from_zips_manually.html">https://wiki.lineageos.org/extracting_blobs_from_zips_manually.html</a></li>
</ol></li>
 <li>Qualcomm documentation
 <ol class="org-ol"> <li> <a href="https://docs.qualcomm.com/doc/80-70014-12/topic/Debug-overview.html">https://docs.qualcomm.com/doc/80-70014-12/topic/Debug-overview.html</a></li>
 <li> <a href="https://docs.qualcomm.com/doc/80-70017-3/topic/features.html">https://docs.qualcomm.com/doc/80-70017-3/topic/features.html</a></li>
 <li> <a href="https://xdaforums.com/t/edge30ultra-moto30xpro-camera-research.4492159/page-3">https://xdaforums.com/t/edge30ultra-moto30xpro-camera-research.4492159/page-3</a></li>
</ol></li>
 <li>SELinux
 <ol class="org-ol"> <li> <a href="https://stackoverflow.com/questions/36790794/what-is-c512-c768-of-selinux-process">https://stackoverflow.com/questions/36790794/what-is-c512-c768-of-selinux-process</a></li>
 <li> <a href="https://github.com/SELinuxProject/selinux-notebook/">https://github.com/SELinuxProject/selinux-notebook/</a></li>
 <li> <a href="https://source.android.com/docs/security/features/selinux/device-policy#label_new_services_and_address_denials">https://source.android.com/docs/security/features/selinux/device-policy#label_new_services_and_address_denials</a></li>
 <li> <a href="https://source.android.com/docs/core/architecture/aidl/aidl-hals#sepolicy">https://source.android.com/docs/core/architecture/aidl/aidl-hals#sepolicy</a></li>
 <li> <a href="https://android.googlesource.com/platform/system/sepolicy/+/refs/heads/master/public/te_macros">https://android.googlesource.com/platform/system/sepolicy/+/refs/heads/master/public/te_macros</a></li>
</ol></li>
 <li>Linux, kernel, and drivers
 <ol class="org-ol"> <li> <a href="https://en.wikipedia.org/wiki/Sun_RPC">https://en.wikipedia.org/wiki/Sun_RPC</a></li>
 <li> <a href="https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt">https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt</a></li>
 <li> <a href="https://refspecs.linuxfoundation.org/elf/elf.pdf">https://refspecs.linuxfoundation.org/elf/elf.pdf</a> :: ELF Format specification</li>
 <li> <a href="https://wiki.postmarketos.org/wiki/Device_Tree_(dtb)">https://wiki.postmarketos.org/wiki/Device_Tree_(dtb)</a></li>
</ol></li>
 <li>Debugging
 <ol class="org-ol"> <li> <a href="https://github.com/NationalSecurityAgency/ghidra/issues/6386#issuecomment-2455257933">https://github.com/NationalSecurityAgency/ghidra/issues/6386#issuecomment-2455257933</a></li>
 <li> <a href="https://github.com/hugsy/gdb-static">https://github.com/hugsy/gdb-static</a></li>
 <li> <a href="https://stackoverflow.com/questions/78044084/android-app-paused-while-debugging-due-to-sigbus-signal">https://stackoverflow.com/questions/78044084/android-app-paused-while-debugging-due-to-sigbus-signal</a></li>
 <li> <a href="https://stackoverflow.com/questions/52377562/how-do-you-create-a-lldb-script-to-ignore-sigsegv-and-sigbus">https://stackoverflow.com/questions/52377562/how-do-you-create-a-lldb-script-to-ignore-sigsegv-and-sigbus</a></li>
</ol></li>
 <li>aarch64 and assembly
 <ol class="org-ol"> <li> <a href="https://mariokartwii.com/armv8/">https://mariokartwii.com/armv8/</a></li>
 <li> <a href="https://github.com/grammatech/ddisasm">https://github.com/grammatech/ddisasm</a></li>
 <li> <a href="https://en.wikipedia.org/wiki/Executable_and_Linkable_Format">https://en.wikipedia.org/wiki/Executable_and_Linkable_Format</a></li>
 <li> <a href="https://thinkingeek.com/categories/aarch64/">https://thinkingeek.com/categories/aarch64/</a></li>
 <li> <a href="https://blog.k3170makan.com/2018/09/introduction-to-elf-format-elf-header.html">https://blog.k3170makan.com/2018/09/introduction-to-elf-format-elf-header.html</a></li>
 <li> <a href="https://nostarch.com/GhidraBook">https://nostarch.com/GhidraBook</a> :: The Ghidra Book The Definitive Guide by Chris Eagle and Kara Nance</li>
 <li> <a href="https://github.com/PacktPublishing/Learning-Linux-Binary-Analysis">https://github.com/PacktPublishing/Learning-Linux-Binary-Analysis</a> :: Learning Linux Binary Analysis by Ryan “Elfmaster” O’Neill</li>
 <li> <a href="https://blog.nviso.eu/2024/01/15/deobfuscating-android-arm64-strings-with-ghidra-emulating-patching-and-automating/">https://blog.nviso.eu/2024/01/15/deobfuscating-android-arm64-strings-with-ghidra-emulating-patching-and-automating/</a> :: Debugging Android aarch64 with Ghidra</li>
 <li> <a href="https://sallam.gitbook.io/sec-88/android-appsec/smali/smali-cheat-sheet">https://sallam.gitbook.io/sec-88/android-appsec/smali/smali-cheat-sheet</a></li>
 <li> <a href="https://www.jemarch.net/poke-elf.html">https://www.jemarch.net/poke-elf.html</a> :: GNU Poke-ELF</li>
 <li> <a href="https://cilynx.com/vulnerabilities/exploring-native-functions-on-android-and-runtime-analyses-using-jadx-ghidra-and-frida/1565/">https://cilynx.com/vulnerabilities/exploring-native-functions-on-android-and-runtime-analyses-using-jadx-ghidra-and-frida/1565/</a></li>
 <li> <a href="https://github.com/iddoeldor/frida-snippets?tab=readme-ov-file">https://github.com/iddoeldor/frida-snippets?tab=readme-ov-file</a></li>
 <li> <a href="https://github.com/iddoeldor/frida-snippets?tab=readme-ov-file#binder-transactions">https://github.com/iddoeldor/frida-snippets?tab=readme-ov-file#binder-transactions</a></li>
 <li> <a href="https://github.com/Hamz-a/frida-android-libbinder">https://github.com/Hamz-a/frida-android-libbinder</a></li>
 <li> <a href="https://www.youtube.com/watch?v=RoNppaG1re4">https://www.youtube.com/watch?v=RoNppaG1re4</a></li>
</ol></li>
 <li>Mirrors
 <ol class="org-ol"> <li> <a href="https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/LineageOS/android.git">https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/LineageOS/android.git</a></li>
</ol></li>
 <li>General-purpose links
 <ol class="org-ol"> <li> <a href="https://en.wikipedia.org/wiki/Public-key_cryptography">https://en.wikipedia.org/wiki/Public-key_cryptography</a></li>
 <li> <a href="https://clang.llvm.org/docs/AddressSanitizer.html">https://clang.llvm.org/docs/AddressSanitizer.html</a></li>
</ol></li>
</ol></div>
</div>
</section> <section id="outline-container-Blurb" class="outline-2"> <h2 id="Blurb"> <span class="section-number-2">2.</span>  <a href="#Blurb">Blurb</a></h2>
 <div class="outline-text-2" id="text-Blurb">
 <ol class="org-ol"> <li>Mail (best way to reach me) :: lockywolf at lockywolf.net</li>
 <li>Telegram ::  <a href="https://t.me/unobvious">https://t.me/unobvious</a></li>
 <li>Zhihu (cn) ::  <a href="https://www.zhihu.com/people/lockywolf">https://www.zhihu.com/people/lockywolf</a></li>
 <li>LiveJournal (ru) ::  <a href="https://dead-doomer.livejournal.com">https://dead-doomer.livejournal.com</a></li>
 <li>Wordpress (en) ::  <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></li>
 <li>Permalink ::  <a href="https://lockywolf.net/2026-02-19_How-to-install-and-start-using-LineageOS-on-your-phone.d/index.html">https://lockywolf.net/2026-02-19_How-to-install-and-start-using-LineageOS-on-your-phone.d/index.html</a></li>
</ol></div>
</section> <section id="outline-container-Local-Words" class="outline-2"> <h2 id="Local-Words"> <span class="section-number-2">3.</span>  <a href="#Local-Words">Local Words</a></h2>
 <div class="outline-text-2" id="text-Local-Words">
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2026-02-19_How-to-install-and-start-using-LineageOS-on-your-phone.d/index.html"/>
  <id>https://lockywolf.net/2026-02-19_How-to-install-and-start-using-LineageOS-on-your-phone.d/index.html</id>
  <updated>2026-03-01T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Introduction into Android Development for the stupid.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Introduction into Android Development for the stupid.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Body">1.  <span class="todo TODO">TODO</span> Body</a>
 <ul> <li> <a href="#%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5">1.1.  <span class="todo TODO">TODO</span> Введение</a></li>
 <li> <a href="#Java-%D0%B8-Gradle">1.2.  <span class="todo TODO">TODO</span> Java и Gradle</a></li>
 <li> <a href="#%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC-%D0%B4%D0%BB%D1%8F-%D0%90%D0%BD%D0%B4%D1%80%D0%BE%D0%B8%D0%B4-%D0%B8-IPC.">1.3.  <span class="todo TODO">TODO</span> Структура программ для Андроид и IPC.</a>
 <ul> <li> <a href="#AndroidManifest.xml">1.3.1.  <span class="todo TODO">TODO</span> AndroidManifest.xml</a></li>
 <li> <a href="#%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82-~R~">1.3.2.  <span class="todo TODO">TODO</span> Объект  <code>R</code></a></li>
 <li> <a href="#Activity">1.3.3.  <span class="todo TODO">TODO</span> Activity</a></li>
 <li> <a href="#Permissions">1.3.4.  <span class="todo TODO">TODO</span> Permissions</a></li>
</ul></li>
 <li> <a href="#Async-shit">1.4.  <span class="todo TODO">TODO</span> Async shit</a>
 <ul> <li> <a href="#Bundle">1.4.1.  <span class="todo TODO">TODO</span> Bundle</a></li>
 <li> <a href="#Persistent-notifications">1.4.2.  <span class="todo TODO">TODO</span> Persistent notifications</a></li>
 <li> <a href="#Threads-and-Alarms">1.4.3.  <span class="todo TODO">TODO</span> Threads and Alarms</a></li>
 <li> <a href="#Providers-and-shitty-VFS">1.4.4.  <span class="todo TODO">TODO</span> Providers and shitty VFS</a></li>
 <li> <a href="#Jetpack-Compose">1.4.5.  <span class="todo TODO">TODO</span> Jetpack Compose</a></li>
</ul></li>
 <li> <a href="#Totalitarianism">1.5.  <span class="todo TODO">TODO</span> Totalitarianism</a></li>
 <li> <a href="#%D0%A1%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D0%B8%D0%B5,-%D0%BD%D0%BE-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D1%8B%D0%B5,-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B.">1.6.  <span class="todo TODO">TODO</span> Сторонние, но полезные, инструменты.</a>
 <ul> <li> <a href="#%D0%9A%D0%BE%D1%82%D0%BB%D0%B8%D0%BD-(%D0%BC%D0%BE%D1%80%D1%81%D0%BA%D0%B8%D0%B5-%D0%B2%D0%BE%D1%80%D0%BE%D1%82%D0%B0-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3%D0%B0)">1.6.1.  <span class="todo TODO">TODO</span> Котлин (морские ворота Петербурга)</a></li>
 <li> <a href="#Dagger">1.6.2.  <span class="todo TODO">TODO</span> Dagger</a></li>
 <li> <a href="#Mortar">1.6.3.  <span class="todo TODO">TODO</span> Mortar</a></li>
 <li> <a href="#WebRTC">1.6.4.  <span class="todo TODO">TODO</span> WebRTC</a></li>
</ul></li>
 <li> <a href="#Friends">1.7.  <span class="todo TODO">TODO</span> Friends</a></li>
</ul></li>
</ul></div>
</nav> <p>
TODO
 <a href="https://openvidu.discourse.group/t/implement-screen-share-from-android-application-to-web-users/3381/9">https://openvidu.discourse.group/t/implement-screen-share-from-android-application-to-web-users/3381/9</a>
</p>


 <p>
В этой методичке я собираюсь рассказать достопочтенным читателям всё, что нужно знать про программирование для Android.
</p>

 <p>
Методичка будет структурирована примерно следующим образом:
</p>

 <ol class="org-ol"> <li>Введение: почему я решил написать ещё одну методичку на тему, на которую уже всё написано.</li>
 <li>Tooling для Android, инструменты и образ мышления.
 <ol class="org-ol"> <li>Android Studio.</li>
 <li>Эмулятор и страдания с ним.</li>
 <li>ADB.</li>
 <li>Emacs и jdtls.</li>
</ol></li>
 <li>Gradle и как её использовать с минимумом страданий. Разбор дефолтного проекта из Android Studio.
 <ol class="org-ol"> <li>Gradle.</li>
 <li>Proguard.</li>
 <li>Репозитории, зависимости, версии.</li>
 <li>Dex, multidex, Smali, исходники.</li>
</ol></li>
 <li>Структура программ для Андроид и IPC.
 <ol class="org-ol"> <li>Внутренняя структура программ.</li>
 <li>Activities, IPC, Intents, Broadcast Receivers.</li>
 <li>Manifest, R, aapt2 и прочее XML-говно.</li>
 <li>Binder.</li>
</ol></li>
 <li>Тестирование.</li>
 <li>Android.mk и встройка в Андроид-программы нормального кода.</li>
 <li>Асинхронное говно и методы борьбы ним. Структура программ 2.
 <ol class="org-ol"> <li>Bundle и Preferences.</li>
 <li>Персистентные нотификации.</li>
 <li>Трэды и алярмы.</li>
 <li>Провайдеры данных и говённая Android VFS.</li>
 <li>Jetpack Compose, Androidx и Appcompat.</li>
 <li>Темы  <a href="https://stackoverflow.com/questions/21814825/you-need-to-use-a-theme-appcompat-theme-or-descendant-with-this-activity">https://stackoverflow.com/questions/21814825/you-need-to-use-a-theme-appcompat-theme-or-descendant-with-this-activity</a></li>
</ol></li>
 <li>Тоталитарное говно и способы справляться с ним.
 <ol class="org-ol"> <li>Firebase.</li>
 <li>Play Store.</li>
</ol></li>
 <li>Сторонние, но полезные, инструменты.
 <ol class="org-ol"> <li>Котлин (морские ворота Петербурга)</li>
 <li>Dagger</li>
 <li>Mortar</li>
 <li>WebRTC</li>
</ol></li>
 <li>Уже реализованные функции.
 <ol class="org-ol"> <li>Emacs.</li>
 <li>OpenKeyChain.</li>
 <li>Termux.</li>
</ol></li>
 <li>Список важных классов
 <ol class="org-ol"> <li>Activity</li>
 <li>View</li>
 <li>Bundle</li>
 <li>Parcelable</li>
 <li>Parcel</li>
 <li>Intent</li>
 <li>IBinder</li>
</ol></li>
</ol> <p>
References:
</p>

 <ol class="org-ol"> <li> <a href="https://www.geeksforgeeks.org/introduction-to-android-development/">https://www.geeksforgeeks.org/introduction-to-android-development/</a></li>
 <li> <a href="https://www.geeksforgeeks.org/best-way-to-become-android-developer-a-complete-roadmap/">https://www.geeksforgeeks.org/best-way-to-become-android-developer-a-complete-roadmap/</a></li>
</ol> <section id="outline-container-Body" class="outline-2"> <h2 id="Body"> <span class="section-number-2">1.</span>  <a href="#Body"> <span class="todo TODO">TODO</span> Body</a></h2>
 <div class="outline-text-2" id="text-Body">
</div>

 <div id="outline-container-%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5" class="outline-3">
 <h3 id="%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"> <span class="section-number-3">1.1.</span>  <a href="#%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"> <span class="todo TODO">TODO</span> Введение</a></h3>
 <div class="outline-text-3" id="text-%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5">
 <p>
Итак, зачем нужна эта методичка?
Ответ – потому, что штатная документация Google написана очень плохо, и ей невозможно пользоваться.
Проблем с ней базово две: (1) она написана таким отвратительным бюрократическим волапюком, что понять в нём решительно ничего не возможно, (2) она сознательно врёт, с целью ввести пользователя в заблуждение и обманом заставить его делать что-то во вред себе, что принесёт прибыль компании, (3) примеры в документации переусложнённые.
</p>

 <p>
Пример (1):
</p>

 <p>
Вот все мы знаем, что в программах бывают кнопочки, нажимая который можно триггерить какие-то действия.
Мы также знаем, что в ООП-языках (а Java – это ООП язык), обычно виджеты ассоциированы с объектами каких-то классов, например конкретная кнопка (виджет на экране) ассоциирована с классом Button.
Бывает, конечно, и не ООП-дизайн, но в Java обычно всё ООП.
</p>

 <p>
Теперь смотрим, какие кнопочки бывают в Android:
</p>

 <ol class="org-ol"> <li>android.widget.Button ::  <a href="https://developer.android.com/reference/android/widget/Button">https://developer.android.com/reference/android/widget/Button</a></li>
 <li>androidx.appcompat.widget.AppCompatButton extends android.widget.Button ::  <a href="https://developer.android.com/reference/androidx/appcompat/widget/AppCompatButton">https://developer.android.com/reference/androidx/appcompat/widget/AppCompatButton</a></li>
</ol> <p>
Хотим понять, чем они отличаются, читаем: "A Button which supports compatible features on older versions of the platform".
Думаем, "ага, ну наверное, Button это что-то свеженькое и новое, а AppCompatButton нужна для поддержки каких-то старых устройств".
Так?
А вот хрен два.
Button существует в Android с незапамятных времён, с самой первой версии в ней были какие-то кнопочки, а AppCompatButton – это виджет "нового поколения", из пакета androidx.
Обычно Compatibility означает, что мы можем взять старую программу, запустить на новой системе, и она автоматически получит хотя бы какой-то функционал новой системы, ну, до той степени, до которой он не конфликтует с логикой программы.
Но у Google всегда всё сделано не по-человечески, поэтому не надейтесь на логику.
</p>

 <p>
Что же "на самом деле" имеется в виду?
"На самом деле" имеется в виду, что ВООБЩЕ НЕТ никакого нормально определения того, что такое android.widget.Button.
Определение класса меняется по мановению левой ноги инженера в Google, установленной версии Sdk, выбранной версии Sdk, версии Андроида на целевом устройстве, компилятора Java и погоды на Марсе.
То есть, по сути классс android.widget.Button вообще бесполезен для обыденного использования.
Класс androidx.appcompat.widget.AppCompatButton – это то, что обеспечивает "до какой-то степени" совместимость между версиями и предоставляет хоть в какой-то мере стабильный API.
</p>

 <p>
Пример (2):
</p>

 <p>
Что такое Material Design, и нахер он нужен?
Я посмотрел в Википедии  <a href="https://en.wikipedia.org/wiki/Material_Design">https://en.wikipedia.org/wiki/Material_Design</a> и ни черта не понял.
Похоже не очередные бессмысленные финтифлюшки для визуалов.
В этой методичке, видимо, придётся рассмотреть, что они предлагают, но большую часть отбросить, потому что она бессмысленная.
</p>

 <p>
Смысл тут в том, что Google хочет заставить программистов не просто писать программы "по стандарту", а хочет, чтобы программы соответствовали их эстетическому чувству.
</p>
</div>
</div>



 <div id="outline-container-Java-%D0%B8-Gradle" class="outline-3">
 <h3 id="Java-%D0%B8-Gradle"> <span class="section-number-3">1.2.</span>  <a href="#Java-%D0%B8-Gradle"> <span class="todo TODO">TODO</span> Java и Gradle</a></h3>
 <div class="outline-text-3" id="text-Java-%D0%B8-Gradle">
</div>

 <ol class="org-ol"> <li> <a id="Java"></a> <a href="#Java"> <span class="todo TODO">TODO</span> Java</a> <br></br> <div class="outline-text-5" id="text-Java">
 <p>
Люди говорят, что Android написан на Java, но что основной язык разработки для Android –
это Kotlin.
</p>

 <p>
И то, и другое, мягко говоря, сомнительно.
</p>

 <p>
Интерпретатор Java, используемый в Андроиде, весьма своеобразен, стандартная библиотека не очень совместима с десктопной Java, а синтаксису, наоборот, уделяется особое внимание, так что более новые стандартый Java можно скомпилировать для райтаймов, которые не были рассчитанны запуск программ с таким синтаксисом.
</p>

 <p>
В итоге разбираться со всем этим довольно сложно, а может и не стоит.
</p>

 <p>
Надо иметь в виду, что в итоговом пайплайне у вас будут следующие реализации Java:
</p>

 <ol class="org-ol"> <li>JRE (или JDK), в которой запускается AndroidStudio</li>
 <li>JRE (или JDK), в которой запускается Gradle</li>
 <li>JDK, которым компилируется код программы</li>
 <li>JRE (Dalvik/Art), который работает на целевом устройстве</li>
 <li>JDK для minSdk</li>
 <li>JDK для targetSdk</li>
 <li>JDK для compileSdk</li>
</ol> <p>
Вы запутались?
Я тоже запутался, и смог запускать экзамплы из этой методички только путём долгого подбора непротиворечивых взаимосочетаний (1-7).
</p>

 <p>
Тем не менее, в сборочном файле  <code>build.gradle</code> (про который будет больше рассказано позднее), можно указать желаемый стандарт языка:
</p>

 <div class="org-src-container">
 <pre class="src src-groovy">android {
  // ...
  compileOptions {
	sourceCompatibility JavaVersion.VERSION_17
	targetCompatibility JavaVersion.VERSION_17
	coreLibraryDesugaringEnabled true
    }
  // ...
}
dependencies {
  // ...
  coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.4'
  // ...
}
</pre>
</div>

 <p>
Что это ещё за desugaring такой?
</p>

 <blockquote>
 <p>
Java 8+ APIs available through desugaring
</p>

 <p>
bookmark_border Android Studio now includes support for using a number
of Java 8+ APIs without requiring a minimum API level for your app.
Through a process called API desugaring, the DEX compiler (D8) allows
you to include more standard language APIs in apps that support older
versions of Android.
</p>
</blockquote>

 <p>
Вы что-нибудь поняли?
Я ни хрена не понял.
Кажется, это какой-то непонятный инструмент, чтобы компилировать код на современной Java 17/21 для древних JVM 8,9.
Но я точно не уверен, потому что документация полное говно.
В любом случае, включаем, и если ломается, выключаем.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Java-%D1%84%D0%B8%D1%87%D0%B8,-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5-%D0%BD%D0%B0%D0%B4%D0%BE-%D0%B7%D0%BD%D0%B0%D1%82%D1%8C."></a> <a href="#Java-%D1%84%D0%B8%D1%87%D0%B8,-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5-%D0%BD%D0%B0%D0%B4%D0%BE-%D0%B7%D0%BD%D0%B0%D1%82%D1%8C."> <span class="todo TODO">TODO</span> Java фичи, которые надо знать.</a> <br></br> <div class="outline-text-6" id="text-Java-%D1%84%D0%B8%D1%87%D0%B8,-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5-%D0%BD%D0%B0%D0%B4%D0%BE-%D0%B7%D0%BD%D0%B0%D1%82%D1%8C.">
</div>
</li>
</ol></li>



 <li> <a id="Gradle"></a> <a href="#Gradle"> <span class="todo TODO">TODO</span> Gradle</a> <br></br> <div class="outline-text-5" id="text-Gradle">
 <p>
Gradle – это андроидный аналог Make или CMake.
Он очень сложный, и, по возможности, его стоит избегать, как делают, например, разработчики Emacs for Android.
Собственно, сборка Android как системы использует не Gradle, а систему Soong, а ранее использовала систему Make.
Gradle не является даже основной сборочной системой для Java, для которой обычно используются Ant или Maven.
Тем не менее, большинство проектов используют именно Gradle, то есть, поскольку наша задача "побыстрому" запилить в нужный нам проект нужную функцию, избежать Gradle не удастся.
</p>

 <p>
Gradle обычно запускается через gradle-wrapper, который позволяет качать разные версии gradle, если это нужно (а это нужно).
</p>

 <p>
Версия gradle определяется в конфигурации gradle wrapper, файл  <code>./gradle/wrapper/gradle-wrapper.properties</code>, просто заменой цифры номера в URL.
</p>

 <div class="org-src-container">
 <pre class="src src-conf"> <span style="font-weight: bold; font-style: italic;">distributionBase</span>=GRADLE_USER_HOME
 <span style="font-weight: bold; font-style: italic;">distributionPath</span>=wrapper/dists
 <span style="font-weight: bold; font-style: italic;">distributionUrl</span>=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
 <span style="font-weight: bold; font-style: italic;">zipStoreBase</span>=GRADLE_USER_HOME
 <span style="font-weight: bold; font-style: italic;">zipStorePath</span>=wrapper/dists
</pre>
</div>
</div>
</li>

 <li> <a id="%D0%9F%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D1%8B"></a> <a href="#%D0%9F%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D1%8B"> <span class="todo TODO">TODO</span> Плагины</a> <br></br> <div class="outline-text-5" id="text-%D0%9F%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D1%8B">
 <p>
Грэдл поддерживает разную грамматику, на основе плагинов.
Блок  <code>android { }</code>, который определяет сборку андроид-программ определяется в плагине android gradle plugin (AGP), который специально называн так, чтобы его имя посильнее запутывало программиста.
Внимание: это не "плагин для Android, добавляющий поддержку Gradle", а "плагин для Gradle, добавляющий поддержку Android".
Но его нельзя было бы назвать GPfA, потому что это недопустимо низко опустило бы интеллектуальный барьер для входа в разработку под Android.
</p>

 <p>
Итого, к жонглированию версиями Java добавляется жонглирование версиями Gradle и AGP.
</p>

 <ol class="org-ol"> <li>JRE (или JDK), в которой запускается AndroidStudio</li>
 <li>JRE (или JDK), в которой запускается Gradle</li>
 <li>JDK, которым компилируется код программы</li>
 <li>JRE (Dalvik/Art), который работает на целевом устройстве</li>
 <li>JDK для minSdk</li>
 <li>JDK для targetSdk</li>
 <li>JDK для compileSdk</li>
 <li>Gradle</li>
 <li>AGP</li>
</ol> <p>
Естественно, у всех этих компотентов есть верхние и нижние пределы совместимости, потому что в Google не только добавляют фичи, но и УБИРАЮТ.
</p>

 <p>
Плагин включается в gradle вот такой строчкой:
</p>

 <div class="org-src-container">
 <pre class="src src-groovy">buildscript {
    repositories {
	google()
     }
    dependencies {
	classpath 'com.android.tools.build:gradle:8.5.2'
     }
}
apply plugin: 'com.android.application'
</pre>
</div>

 <p>
Строчка с  <code>classpath</code> указывает не на версию gradle, как могло бы показаться, а на версию Android Gradle Plugin.
Внимание: эти версии  <span class="underline">ОЧЕНЬ</span> похожи, но они  <span class="underline">РАЗНЫЕ</span>.
Версия Gradle 8.7  <span class="underline">НЕ СООТВЕТСТВУЕТ</span> AGP 8.7 и  <span class="underline">НЕ СОВМЕСТИМА</span> с ним.
</p>

 <p>
Есть ещё какой-то более новый способ. TODO
</p>
</div>
</li>

 <li> <a id="Dependencies"></a> <a href="#Dependencies"> <span class="todo TODO">TODO</span> Dependencies</a> <br></br> <div class="outline-text-5" id="text-Dependencies">
 <p>
Зависимости работают в Gradle независимо от того, используется ли Gradle для сборки андроид-программы, или какой-нибудь другой, поэтому блок dependencies вынесен за пределы блока android.
</p>

 <p>
В принципе, Gradle должен скачать зависимости автоматом, если, конечно, в вашей стране не заблокированы репозитории, или репозитории не заблокировали вашу страну.
</p>

 <div class="org-src-container">
 <pre class="src src-groovy">dependencies {
    implementation libs.appcompat
    implementation 'androidx.appcompat:appcompat:1.6.0'
    implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
    // This does not work:
    // implementation "org.jetbrains.kotlin:kotlin-bom:1.8.0"
    testImplementation libs.junit
    androidTestImplementation libs.ext.junit
}
</pre>
</div>



 <p>
Первая строчка  <code>implementation libs.appcompat</code> вообще хрен знает, что делает, но она точно требует отдельного gradle функционала, в котором я не разобрался.
</p>

 <div class="org-src-container">
 <pre class="src src-groovy">plugins {
  alias(libs.plugins.android.application) apply false
}
</pre>
</div>

 <p>
Вторая строчка подключает библиотеку  <code>androidx.appcompat</code>.
</p>

 <p>
Третья строчка вообще хз для чего нужна, но она устраняет проблему с дублированными классами.
(See  <a href="https://stackoverflow.com/questions/75263047/duplicate-class-in-kotlin-android">https://stackoverflow.com/questions/75263047/duplicate-class-in-kotlin-android</a> )
</p>
</div>
</li>
</ol></div>


 <div id="outline-container-%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC-%D0%B4%D0%BB%D1%8F-%D0%90%D0%BD%D0%B4%D1%80%D0%BE%D0%B8%D0%B4-%D0%B8-IPC." class="outline-3">
 <h3 id="%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC-%D0%B4%D0%BB%D1%8F-%D0%90%D0%BD%D0%B4%D1%80%D0%BE%D0%B8%D0%B4-%D0%B8-IPC."> <span class="section-number-3">1.3.</span>  <a href="#%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC-%D0%B4%D0%BB%D1%8F-%D0%90%D0%BD%D0%B4%D1%80%D0%BE%D0%B8%D0%B4-%D0%B8-IPC."> <span class="todo TODO">TODO</span> Структура программ для Андроид и IPC.</a></h3>
 <div class="outline-text-3" id="text-%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC-%D0%B4%D0%BB%D1%8F-%D0%90%D0%BD%D0%B4%D1%80%D0%BE%D0%B8%D0%B4-%D0%B8-IPC.">
</div>
 <div id="outline-container-AndroidManifest.xml" class="outline-4">
 <h4 id="AndroidManifest.xml"> <span class="section-number-4">1.3.1.</span>  <a href="#AndroidManifest.xml"> <span class="todo TODO">TODO</span> AndroidManifest.xml</a></h4>
 <div class="outline-text-4" id="text-AndroidManifest.xml">
 <p>
Вы, наверное, слышали, что программы для Андроида пишутся на Java.
Наиболее продвинутые люди слышали что-то про Kotlin.
Но на самом деле программы для Андроида пишутся на XML.
</p>

 <p>
В файле AndroidManifest.xml нужно описать "структурные элементы" программы, которые будут затем определять то, как она взаимодействует с другими программами.
Но не надо думать, что в AndroidManifest.xml нужно перечислить список путей, по которым программа может создавать named pipe, или список файлов, к которым разрешён доступ по аналогии с AppArmor или SELinux.
</p>

 <p>
AndroidManifest.xml намного сложнее.
</p>

 <p>
 <a href="https://developer.android.com/guide/topics/manifest/manifest-intro">https://developer.android.com/guide/topics/manifest/manifest-intro</a>
</p>

 <p>
Самое забавное – это то, что он невероятно хуёвый.
Например, он не поддерживает комментарии внутри тэгов.
</p>

 <p>
Вот так можно:
</p>
 <div class="org-src-container">
 <pre class="src src-xml">< <span style="font-weight: bold;">application</span>
     <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">allowBackup</span>= <span style="font-style: italic;">"true"</span>
     <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">something</span>= <span style="font-style: italic;">"meaningless"</span>
     <span style="font-weight: bold;">tools</span>: <span style="font-weight: bold; font-style: italic;">targetApi</span>= <span style="font-style: italic;">"31"</span>>
    < <span style="font-weight: bold;">activity</span>
        bla-bla
</ <span style="font-weight: bold;">activity</span>>
</ <span style="font-weight: bold;">application</span>>
</pre>
</div>

 <p>
А вот так нет:
</p>
 <div class="org-src-container">
 <pre class="src src-xml">< <span style="font-weight: bold;">application</span>
     <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">allowBackup</span>= <span style="font-style: italic;">"true"</span>
     <span style="font-weight: bold; font-style: italic;"><!-- </span> <span style="font-weight: bold; font-style: italic;">android:something="meaningless"</span> <span style="font-weight: bold; font-style: italic;"> --></span>
    tools:targetApi= <span style="font-style: italic;">"31"</span>>
    < <span style="font-weight: bold;">activity</span>
        bla-bla
</ <span style="font-weight: bold;">activity</span>>
</ <span style="font-weight: bold;">application</span>>
</pre>
</div>

 <p>
Действительно, верно, что валидный xml не допускает комментарии внутри тэгов, но уж в Android такую чушь могли бы и исправить.
</p>
</div>
</div>




 <div id="outline-container-%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82-~R~" class="outline-4">
 <h4 id="%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82-~R~"> <span class="section-number-4">1.3.2.</span>  <a href="#%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82-~R~"> <span class="todo TODO">TODO</span> Объект  <code>R</code></a></h4>
 <div class="outline-text-4" id="text-%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82-~R~">
 <p>
 <code>R</code> означает "ресурсы", и генерируется из каталога  <code>res</code>, процессором xml.
Это в каком-то смысле похоже на Qt ресурсы, или даже на cmrc ( <a href="https://github.com/vector-of-bool/cmrc">https://github.com/vector-of-bool/cmrc</a>).
</p>
</div>
</div>

 <div id="outline-container-Activity" class="outline-4">
 <h4 id="Activity"> <span class="section-number-4">1.3.3.</span>  <a href="#Activity"> <span class="todo TODO">TODO</span> Activity</a></h4>
 <div class="outline-text-4" id="text-Activity">
 <p>
 <a href="https://developer.android.com/guide/components/activities/intro-activities">https://developer.android.com/guide/components/activities/intro-activities</a>
</p>
</div>

 <ol class="org-ol"> <li> <a id="%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-Activity-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%B8%D1%85-%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C."></a> <a href="#%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-Activity-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%B8%D1%85-%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C."> <span class="todo TODO">TODO</span> Что такое Activity и как их писать.</a> <br></br> <div class="outline-text-5" id="text-%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-Activity-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%B8%D1%85-%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C.">
 <p>
Activity – это базовый строительный блок Андроид-программ, в каком-то смысле "точка входа", функция main().
</p>

 <p>
Активити, вроде бы, должна обязательно занимать весь экран, или кусок разделённого экрана в более свежих Андроидах.
</p>

 <p>
Активити надо задекларировать в AndroidManifest.xml, и создать соответствующий ей класс в Java.
</p>

 <div class="org-src-container">
 <pre class="src src-xml">< <span style="font-weight: bold;">manifest</span> ... >
  < <span style="font-weight: bold;">application</span> ... >
      < <span style="font-weight: bold;">activity</span>  <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">name</span>= <span style="font-style: italic;">".ExampleActivity"</span> />
      ...
  </ <span style="font-weight: bold;">application</span> ... >
  ...
</ <span style="font-weight: bold;">manifest</span> >
</pre>
</div>

 <p>
А одной программе может быть много активити.
</p>

 <p>
У Активити есть lifecycle, то есть, какие её методы вызываются в какой момент.
</p>

 <p>
Вот есть официальная диаграмма lifecycle:
</p>

 <p>
 <a href="https://developer.android.com/reference/android/app/Activity#activity-lifecycle">https://developer.android.com/reference/android/app/Activity#activity-lifecycle</a>
</p>

 <p>
И есть неофициальная:
</p>

 <p>
 <a href="https://github.com/xxv/android-lifecycle/">https://github.com/xxv/android-lifecycle/</a>
</p>
</div>
</li>

 <li> <a id="Activity-%D0%B8-GUI"></a> <a href="#Activity-%D0%B8-GUI"> <span class="todo TODO">TODO</span> Activity и GUI</a> <br></br> <div class="outline-text-5" id="text-Activity-%D0%B8-GUI">
 <p>
Поскольку андроидные люди большей частью пишут GUI, то львиная доля документации посвящена GUI.
</p>

 <p>
Поскольку обычный программист, пишущий программы для себя, позволить себе изощрённый GUI не может, это трудоёмко и обычно не очень нужно, то написанию GUI в этой методичке посвящён минимум.
</p>

 <p>
Тем не менее, хотя бы базового введения избежать не получится.
</p>

 <p>
Грубо говоря, GUI для андроида следует в общем тренде развития GUI в мире: есть программная часть и есть дизайнерская часть, которые более-менее совместимы.
</p>

 <p>
Дизайнерская часть рисуется графическим редактором, генерирующим xml.
XML можно также писать вручную.
Он хранится в каталоге res, и получать указатели на его элементы можно с помощью метода  <code>Activity.findViewById(R.id.bla)</code>.
</p>

 <p>
Например, у нас есть xml вида:
</p>

 <div class="org-src-container">
 <pre class="src src-xml"><? <span style="font-weight: bold;">xml</span>  <span style="font-style: italic;">version="1.0" encoding="utf-8"</span>?>
< <span style="font-weight: bold;">androidx.constraintlayout.widget.ConstraintLayout</span>
     <span style="font-weight: bold;">xmlns</span>: <span style="font-weight: bold; font-style: italic;">android</span>= <span style="font-style: italic;">"http://schemas.android.com/apk/res/android"</span>
     <span style="font-weight: bold;">xmlns</span>: <span style="font-weight: bold; font-style: italic;">app</span>= <span style="font-style: italic;">"http://schemas.android.com/apk/res-auto"</span>
     <span style="font-weight: bold;">xmlns</span>: <span style="font-weight: bold; font-style: italic;">tools</span>= <span style="font-style: italic;">"http://schemas.android.com/tools"</span>
     <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">id</span>= <span style="font-style: italic;">"@+id/main"</span>
     <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">layout_width</span>= <span style="font-style: italic;">"match_parent"</span>
     <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">layout_height</span>= <span style="font-style: italic;">"match_parent"</span>
     <span style="font-weight: bold;">tools</span>: <span style="font-weight: bold; font-style: italic;">context</span>= <span style="font-style: italic;">".MainActivity"</span>>
    < <span style="font-weight: bold;">SurfaceView</span>
         <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">id</span>= <span style="font-style: italic;">"@+id/first_screen_view"</span>
         <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">layout_width</span>= <span style="font-style: italic;">"0dp"</span>
         <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">layout_height</span>= <span style="font-style: italic;">"0dp"</span>
         <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">layout_marginBottom</span>= <span style="font-style: italic;">"32dp"</span>
         <span style="font-weight: bold;">app</span>: <span style="font-weight: bold; font-style: italic;">layout_constraintBottom_toTopOf</span>= <span style="font-style: italic;">"parent"</span>
         <span style="font-weight: bold;">app</span>: <span style="font-weight: bold; font-style: italic;">layout_constraintEnd_toEndOf</span>= <span style="font-style: italic;">"parent"</span>
         <span style="font-weight: bold;">app</span>: <span style="font-weight: bold; font-style: italic;">layout_constraintStart_toStartOf</span>= <span style="font-style: italic;">"parent"</span>
         <span style="font-weight: bold;">app</span>: <span style="font-weight: bold; font-style: italic;">layout_constraintTop_toTopOf</span>= <span style="font-style: italic;">"parent"</span> />
</ <span style="font-weight: bold;">androidx.constraintlayout.widget.ConstraintLayout</span>>
</pre>
</div>

 <p>
 <code>.MainActivity</code> – это активити, на котором есть  <code>ConstraintLayout</code> с id  <code>main</code>, внутри которого есть единственный холст  <code>SurfaceView</code> с id  <code>first_screen_view</code>.
</p>

 <p>
Нотация у Google как всегда отвратительная.
Во-первых, все виджеты унаследованы от  <code>View</code>.
Почему виджет называется  <code>View</code> – за гранью моего понимания, ведь они не являются отображением никаких данных.
</p>

 <p>
 <code>ConstraintLayout</code> – это тоже  <code>View</code>, то есть, виджет, по плану Google предназначенный, чтобы содержать другие виджеты.
Зачем так делать, совершенно непонятно.
Логично было бы сделать какой-нибудь  <code>Container</code> с мембером типа  <code>LayoutAlgorithm</code>, и он бы все внутренние виджеты разложил так, как умеет, и заменой его можно было бы адаптироваться под разные дизайны и размеры экранов.
Но, как всегда, Андроид – полное говно.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Binding"></a> <a href="#Binding">Binding</a> <br></br> <div class="outline-text-6" id="text-Binding">
 <p>
Ну, конечно, получать указатели на виджеты с помощью  <code>findViewById</code> глупо и неудобно, поэтому Google таки придумал механизм binding, пусть и не сразу.
</p>

 <p>
 <a href="https://developer.android.com/topic/libraries/data-binding">https://developer.android.com/topic/libraries/data-binding</a>
</p>

 <p>
По-моему, в С++ такое было ещё в Boland C++ VCL?
</p>

 <p>
Binding включается в build.gradle:
</p>

 <div class="org-src-container">
 <pre class="src src-groovy">dataBinding {
    enabled true
}
</pre>
</div>

 <p>
А в java коде пишется:
</p>

 <div class="org-src-container">
 <pre class="src src-java"> <span style="font-weight: bold;">import</span> my. <span style="font-weight: bold;">package</span>. <span style="font-weight: bold; text-decoration: underline;">name</span>. <span style="font-weight: bold; text-decoration: underline;">ActivityNameBinding</span>;
 <span style="font-weight: bold;">import</span>  <span style="font-weight: bold; text-decoration: underline;">androidx</span>. <span style="font-weight: bold; text-decoration: underline;">databinding</span>. <span style="font-weight: bold; text-decoration: underline;">DataBindingUtil</span>;

 <span style="font-weight: bold;">public</span>  <span style="font-weight: bold;">class</span>  <span style="font-weight: bold; text-decoration: underline;">NameActiviy</span>  <span style="font-weight: bold;">extends</span>  <span style="font-weight: bold; text-decoration: underline;">AppCompatActivity</span> {
   <span style="font-weight: bold;">private</span>  <span style="font-weight: bold; text-decoration: underline;">ActivityNameBinding</span>  <span style="font-weight: bold; font-style: italic;">binding</span>;
   <span style="font-weight: bold;">public</span>  <span style="font-weight: bold; text-decoration: underline;">void</span>  <span style="font-weight: bold;">onCreate</span> () {
     <span style="font-weight: bold;">this</span>.binding = DataBindingUtil.setContentView( <span style="font-weight: bold;">this</span>, R.layout.activity_name);

  }
}
</pre>
</div>

 <p>
И тогда можно писать проще, без  <code>findViewById</code>.
</p>

 <div class="org-src-container">
 <pre class="src src-java"> <span style="font-weight: bold;">this</span>.binding.first_screen_view
.setOnClickListener(( <span style="font-weight: bold;">final</span> View  <span style="font-weight: bold; text-decoration: underline;">v</span>) -> { Log.i( <span style="font-style: italic;">"bla"</span>,  <span style="font-style: italic;">"bla"</span>);});
</pre>
</div>
</div>
</li>
</ol></li>

 <li> <a id="IPC-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D0%BC%D0%B8-Activity"></a> <a href="#IPC-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D0%BC%D0%B8-Activity"> <span class="todo TODO">TODO</span> IPC между разными Activity</a> <br></br> <div class="outline-text-5" id="text-IPC-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D0%BC%D0%B8-Activity">
 <p>
Активити могут получать на вход аргументы, примерно как функция main.
Для этого надо в том же xml задекларировать эти аргументы (они называются Intent), а в самой активити написать обработчик.
</p>

 <div class="org-src-container">
 <pre class="src src-xml">< <span style="font-weight: bold;">intent-filter</span>>
    < <span style="font-weight: bold;">action</span>  <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">name</span>= <span style="font-style: italic;">"android.intent.action.SEND"</span> />
    < <span style="font-weight: bold;">category</span>  <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">name</span>= <span style="font-style: italic;">"android.intent.category.DEFAULT"</span> />
    < <span style="font-weight: bold;">data</span>  <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">mimeType</span>= <span style="font-style: italic;">"text/plain"</span> />
</ <span style="font-weight: bold;">intent-filter</span>>
</pre>
</div>

 <p>
Указанный выше код означает, что активити может получать аргументы с типом  <code>"android.intent.action.SEND"</code>.
</p>

 <div class="org-src-container">
 <pre class="src src-xml">< <span style="font-weight: bold;">intent-filter</span>>
  < <span style="font-weight: bold;">action</span>  <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">name</span>= <span style="font-style: italic;">"android.intent.action.MAIN"</span> />
  < <span style="font-weight: bold;">category</span>  <span style="font-weight: bold;">android</span>: <span style="font-weight: bold; font-style: italic;">name</span>= <span style="font-style: italic;">"android.intent.category.LAUNCHER"</span> />
</ <span style="font-weight: bold;">intent-filter</span>>
</pre>
</div>

 <p>
Указанный выше код означает, что активити будет запускаться по клику на иконку на рабочем столе.
</p>

 <p>
Как запустить эту активити из другого приложения?
</p>

 <div class="org-src-container">
 <pre class="src src-java"> <span style="font-weight: bold; font-style: italic;">// </span> <span style="font-weight: bold; font-style: italic;">Create the text message with a string
</span> <span style="font-weight: bold; text-decoration: underline;">Intent</span>  <span style="font-weight: bold; font-style: italic;">argvBox</span> =  <span style="font-weight: bold;">new</span>  <span style="font-weight: bold; text-decoration: underline;">Intent</span>();
argvBox.setAction( <span style="font-weight: bold; text-decoration: underline;">Intent</span>.ACTION_SEND);
argvBox.setType( <span style="font-style: italic;">"text/plain"</span>);
argvBox.putExtra( <span style="font-weight: bold; text-decoration: underline;">Intent</span>.EXTRA_TEXT,  <span style="font-style: italic;">"<switch 1> <switch 2> <file name>"</span>);
 <span style="font-weight: bold; font-style: italic;">// </span> <span style="font-weight: bold; font-style: italic;">Start the activity
</span> <span style="font-weight: bold;">this</span>.startActivity(argvBox);
</pre>
</div>

 <p>
Код сверху очень общий и будет запускать любые активити, заявляющие, что поддерживают android.intent.action.SEND и категорией android.intent.category.DEFAULT.
Наверное, можно и свои собственные типы сообщений определять, я ещё не разобрался.
Код сверху можно запускать из любых функций в первой активити.
Но как его обработать?
</p>

 <p>
Вот так:
</p>

 <div class="org-src-container">
 <pre class="src src-java"> <span style="font-weight: bold;">public</span>  <span style="font-weight: bold;">class</span>  <span style="font-weight: bold; text-decoration: underline;">SecondActivity</span>  <span style="font-weight: bold;">extends</span>  <span style="font-weight: bold; text-decoration: underline;">AppCompatActivity</span> {
     <span style="font-weight: bold; text-decoration: underline;">@Override</span>
     <span style="font-weight: bold;">protected</span>  <span style="font-weight: bold; text-decoration: underline;">void</span>  <span style="font-weight: bold;">onCreate</span>( <span style="font-weight: bold; text-decoration: underline;">Bundle</span>  <span style="font-weight: bold; font-style: italic;">savedInstanceState</span>) {
         <span style="font-weight: bold;">super</span>.onCreate(savedInstanceState);
         <span style="font-weight: bold;">this</span>.setContentView(R.layout.activity_second);
        (( <span style="font-weight: bold; text-decoration: underline;">TextView</span>)  <span style="font-weight: bold;">this</span>.findViewById(R.id.first_text_field)).setText( <span style="font-style: italic;">"Unset in code"</span>);
        (( <span style="font-weight: bold; text-decoration: underline;">TextView</span>)  <span style="font-weight: bold;">this</span>.findViewById(R.id.first_text_field))
                .setText( <span style="font-weight: bold;">this</span>.getIntent()
/                .getStringExtra( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">content</span>. <span style="font-weight: bold; text-decoration: underline;">Intent</span>.EXTRA_TEXT));
}}
</pre>
</div>

 <p>
Нужно при создании активити вытащить argv из интента, и потом с ней можно делать что нужно.
Обратите внимание на следующие вещи:
</p>

 <ol class="org-ol"> <li>onCreate – это не конструктор. Ну, потому что в Google ненавидят RAII и считают, что конструкторы придумали глупые люди.</li>
 <li>Заранее предполагается, что активити сериализуема, поэтому на вход всегда подаётся Bundle, даже если нам вообще это не нужно.</li>
 <li>argv передаётся через "глобальную переменную" (ну, глобальную для активити), Intent, получаемый через аналог  <code>getenv</code>,  <code>getIntent</code>.</li>
 <li> <code>.getStringExtra(android.content.Intent.EXTRA_TEXT)</code> – это вообще какой-то полный маразм.</li>
</ol> <p>
Этот код можно написать  <span class="underline">только</span> в  <code>onCreate</code>, потому что ну… дебилы проектировали, чо.
Несмотря на навороченный Lifecycle активити ( <a href="https://developer.android.com/guide/components/activities/intro-activities#mtal">https://developer.android.com/guide/components/activities/intro-activities#mtal</a>), метода  <code>onReceiveIntent</code> у неё нет.
</p>
</div>
</li>

 <li> <a id="%D0%9A%D0%B0%D0%BA-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BE%D1%82%D0%B2%D0%B5%D1%82-%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%88%D0%B0%D1%8E%D1%89%D0%B5%D0%BC%D1%83?"></a> <a href="#%D0%9A%D0%B0%D0%BA-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BE%D1%82%D0%B2%D0%B5%D1%82-%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%88%D0%B0%D1%8E%D1%89%D0%B5%D0%BC%D1%83?"> <span class="todo TODO">TODO</span> Как отправить ответ обратно вопрошающему?</a> <br></br> <div class="outline-text-5" id="text-%D0%9A%D0%B0%D0%BA-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BE%D1%82%D0%B2%D0%B5%D1%82-%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%88%D0%B0%D1%8E%D1%89%D0%B5%D0%BC%D1%83?">
 <p>
Ну, мне это особенно не было нужно, мне ответ отправляли чужие активити, но чисто ради интереса:
</p>

 <div class="org-src-container">
 <pre class="src src-java"> <span style="font-weight: bold;">this</span>.setResult ( <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold; font-style: italic;">resultCode</span>,  <span style="font-weight: bold; text-decoration: underline;">Intent</span>  <span style="font-weight: bold; font-style: italic;">data</span>);
 <span style="font-weight: bold;">this</span>.finish();
</pre>
</div>

 <p>
Внимание: на этом активити умрёт, будет уничтожена.
(Смотри диаграмму  <a href="https://developer.android.com/reference/android/app/Activity#activity-lifecycle">https://developer.android.com/reference/android/app/Activity#activity-lifecycle</a> )
</p>

 <p>
Почему так странно сделано?
Хрен его знает, если честно.
Чтобы не гонять разные активити в разных тредах?
</p>

 <p>
Заметьте, что на диаграмме нет  <code>onActivityResult</code>.
Почему?
Ну, говно документация у Google, чего.
</p>

 <p>
Вот диаграмма, где он есть:
</p>


 <figure id="orgb15d930"> <img src="https://github.com/xxv/android-lifecycle/raw/refs/heads/main/android-lifecycle-activity-to-fragments.png" alt="android-lifecycle-activity-to-fragments.png"></img></figure></div>
</li>

 <li> <a id="%D0%9A%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82-%D0%B8%D0%B7-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-Activity"></a> <a href="#%D0%9A%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82-%D0%B8%D0%B7-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-Activity"> <span class="todo TODO">TODO</span> Как получить результат из вызова Activity</a> <br></br> <div class="outline-text-5" id="text-%D0%9A%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82-%D0%B8%D0%B7-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-Activity">
 <p>
Итак, мы вызвали активити с аргументом, но текущий вариант не позволяет нам получить ответ от второй активити каким-то разумным способом.
То есть, если активити принадлежит нам же, то мы можем и вызвать первую активити из второй, точно так же, через интент.
Но что, если активити принадлежит не нам, а ответ получить всё равно надо?
</p>

 <p>
Тут есть два способа.
</p>
</div>

 <ol class="org-ol"> <li> <a id="~startActivityForResult~."></a> <a href="#~startActivityForResult~."> <span class="todo TODO">TODO</span>  <code>startActivityForResult</code>.</a> <br></br> <div class="outline-text-6" id="text-~startActivityForResult~.">
 <p>
 <code>startActivityForResult</code> работает точно так же, как  <code>startActivity</code>, но предполагает, что ответ нам вернут.
Для примера я запрошу доступ к записи экрана.
</p>

 <div class="org-src-container">
 <pre class="src src-java"> <span style="font-weight: bold;">final</span>  <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold; font-style: italic;">REQUEST_MEDIA_PROJECTION_CODE</span> = 1;
 <span style="font-weight: bold;">this</span>.startActivityForResult(
     <span style="font-weight: bold;">this</span>.getSystemService( <span style="font-weight: bold; text-decoration: underline;">Context</span>.MEDIA_PROJECTION_SERVICE).createScreenCaptureIntent(),
    REQUEST_MEDIA_PROJECTION_CODE);
</pre>
</div>

 <p>
Что за чушь тут происходит?
</p>

 <p>
 <code>startActivityForResult</code> получает на вход интент и тэг, который мы потом будем использовать для опознавания результата, который нам вернёт другая активити.
Этот интент мы конструируем не сами, а просим систему подготовить для нас.
</p>

 <p>
Вопрос: если мы всё равно просим систему подготовить для нас специальный интент, который только для захвата экрана и годится, то зачем городить огород с самодельной отправкой этого интента через  <code>startActivityForResult</code>?
Ну, почему-почему, говнокод, вот почему.
</p>

 <p>
Ну хорошо, ладно, допустим мы отправляем запрос так, но зачем нам помечать этот запрос через отдельный параметр в функции, почему нельзя записать прямо в интент, что делать с ответом на запрос?
Ну, почему-почему, говнокод, вот почему.
</p>

 <p>
Отдельно стоит заметить, что про класс  <code>Context</code> мы пока не говорили, но в данном случае это можно для ясности замять, просто упомянуть, что это пример антипаттерна "God object", через который можно вызывать много функций операционной системы.
</p>

 <p>
Теперь как получить результат запроса?
</p>

 <div class="org-src-container">
 <pre class="src src-java"> <span style="font-weight: bold; text-decoration: underline;">@Override</span>
     <span style="font-weight: bold;">public</span>  <span style="font-weight: bold; text-decoration: underline;">void</span>  <span style="font-weight: bold;">onActivityResult</span>( <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold; font-style: italic;">requestCode</span>,  <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold; font-style: italic;">resultCode</span>,  <span style="font-weight: bold; text-decoration: underline;">Intent</span>  <span style="font-weight: bold; font-style: italic;">data</span>) {
         <span style="font-weight: bold;">super</span>.onActivityResult(requestCode, resultCode, data);
        Log.i( <span style="font-style: italic;">"onActivityResult"</span>,  <span style="font-style: italic;">"receiving result"</span>);

         <span style="font-weight: bold;">if</span> (requestCode == REQUEST_MEDIA_PROJECTION_CODE) {
             <span style="font-weight: bold;">if</span> (resultCode !=  <span style="font-weight: bold; text-decoration: underline;">Activity</span>.RESULT_OK) {
                Log.i( <span style="font-style: italic;">"Permission"</span>,  <span style="font-style: italic;">"Failed to get permission."</span>);
                 <span style="font-weight: bold;">return</span>;
            }
             <span style="font-weight: bold;">this</span>.mProjectionPermissionResultCode = resultCode;
             <span style="font-weight: bold;">this</span>.mProjectionPermissionResultData = data;
        }
    }
</pre>
</div>

 <p>
Что?
Это делается в другой функции?
И результат можно получить только переда его через глобальные (для модуля) переменные?
Но нахуя?
Что это за говно вообще?
</p>

 <p>
Больше того, несмотря на то, что результат получается не просто в посторонней, а прямо таки в захардкоженной функции, диспетчеризация вызовов в Android Java асинхронная, но  <span class="underline">не параллельная</span>.
То есть, в вызывающей функции нельзя "подождать" пока ответ от второй активити вернётся и будет обработан в  <code>onActivityResult</code>.
Ну, если только самому не запускать отдельно тред.
</p>

 <p>
Что нам говорит Google на эту тему?
</p>

 <blockquote>
 <p>
When starting an activity for a result, it is possible—and, in cases
of memory-intensive operations such as camera usage, almost
certain—that your process and your activity will be destroyed due to
low memory.
</p>
</blockquote>

 <p>
А что будет с тредом, интересно, если Андроид и правда убъёт активити при переключении на камеру?
</p>

 <p>
В общем, без тредов, но мы попробуем сделать continuations для бедных.
</p>

 <p>
В нашей активити добавляем три глобальные переменные, через которые будем перекидывать данные, и пишем функцию:
</p>

 <div class="org-src-container">
 <pre class="src src-java"> <span style="font-weight: bold;">private</span>  <span style="font-weight: bold;">static</span>  <span style="font-weight: bold;">final</span>  <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold; font-style: italic;">REQUEST_MEDIA_PROJECTION_CODE</span> = 1;
 <span style="font-weight: bold;">private</span>  <span style="font-weight: bold;">static</span>  <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold; font-style: italic;">mProjectionPermissionResultCode</span> = -1;
 <span style="font-weight: bold;">private</span>  <span style="font-weight: bold;">static</span>  <span style="font-weight: bold; text-decoration: underline;">Intent</span>  <span style="font-weight: bold; font-style: italic;">mProjectionPermissionResultData</span> =  <span style="font-weight: bold; text-decoration: underline;">null</span>;
 <span style="font-weight: bold;">private</span>  <span style="font-weight: bold;">static</span>  <span style="font-weight: bold; text-decoration: underline;">boolean</span>  <span style="font-weight: bold; font-style: italic;">mPermissionReceived</span> =  <span style="font-weight: bold; text-decoration: underline;">false</span>;

 <span style="font-weight: bold;">public</span>  <span style="font-weight: bold; text-decoration: underline;">void</span>  <span style="font-weight: bold;">startScreenCast</span>() {
  actuallyStartScreenCast();
}
 <span style="font-weight: bold; text-decoration: underline;">@Override</span>
   <span style="font-weight: bold;">public</span>  <span style="font-weight: bold; text-decoration: underline;">void</span>  <span style="font-weight: bold;">onActivityResult</span>( <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold; font-style: italic;">requestCode</span>,  <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold; font-style: italic;">resultCode</span>,  <span style="font-weight: bold; text-decoration: underline;">Intent</span>  <span style="font-weight: bold; font-style: italic;">data</span>) {
       <span style="font-weight: bold;">super</span>.onActivityResult(requestCode, resultCode, data);
       <span style="font-weight: bold;">if</span> (requestCode == REQUEST_MEDIA_PROJECTION_CODE) {
           <span style="font-weight: bold;">if</span> (resultCode !=  <span style="font-weight: bold; text-decoration: underline;">Activity</span>.RESULT_OK) {
              Log.i( <span style="font-style: italic;">"Permission"</span>,  <span style="font-style: italic;">"Failed to get permission."</span>);
               <span style="font-weight: bold;">return</span>;
          }
           <span style="font-weight: bold;">this</span>.mProjectionPermissionResultCode = resultCode;
           <span style="font-weight: bold;">this</span>.mProjectionPermissionResultData = data;
           <span style="font-weight: bold;">this</span>.mPermissionReceived =  <span style="font-weight: bold; text-decoration: underline;">true</span>;
          actuallyStartScreenCast();
      }
  }
 <span style="font-weight: bold;">public</span>  <span style="font-weight: bold; text-decoration: underline;">void</span>  <span style="font-weight: bold;">actuallyStartScreenCast</span>() {
       <span style="font-weight: bold; text-decoration: underline;">MediaProjectionManager</span>  <span style="font-weight: bold; font-style: italic;">mediaProjectionManager</span> =
            ( <span style="font-weight: bold; text-decoration: underline;">MediaProjectionManager</span>)
                     <span style="font-weight: bold;">this</span>.getSystemService( <span style="font-weight: bold; text-decoration: underline;">Context</span>.MEDIA_PROJECTION_SERVICE);
     <span style="font-weight: bold;">if</span> ( <span style="font-weight: bold;">this</span>.mPermissionReceived ==  <span style="font-weight: bold; text-decoration: underline;">false</span>) {
         <span style="font-weight: bold;">this</span>.startActivityForResult(
                mediaProjectionManager.createScreenCaptureIntent(),
                REQUEST_MEDIA_PROJECTION_CODE);
         <span style="font-weight: bold;">return</span>;  <span style="font-weight: bold; font-style: italic;">// </span> <span style="font-weight: bold; font-style: italic;">cannot do more, but will be called again when permission arrives.
</span>    }  <span style="font-weight: bold;">else</span> {
         <span style="font-weight: bold; text-decoration: underline;">MediaProjection</span>  <span style="font-weight: bold; font-style: italic;">mediaProjection</span> = mediaProjectionManager.getMediaProjection(
                mProjectionPermissionResultCode,
                mProjectionPermissionResultData);
         <span style="font-weight: bold; text-decoration: underline;">assert</span>  <span style="font-weight: bold; font-style: italic;">mediaProjection</span> !=  <span style="font-weight: bold; text-decoration: underline;">null</span> :  <span style="font-style: italic;">"Media projection is null"</span>;
         <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">view</span>. <span style="font-weight: bold; text-decoration: underline;">SurfaceView</span>  <span style="font-weight: bold; font-style: italic;">sv</span> =  <span style="font-weight: bold;">this</span>.findViewById(R.id.first_screen_view);
         <span style="font-weight: bold; text-decoration: underline;">assert</span>  <span style="font-weight: bold; font-style: italic;">sv</span> !=  <span style="font-weight: bold; text-decoration: underline;">null</span> :  <span style="font-style: italic;">"SurfaceView is null"</span>;
         <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">view</span>. <span style="font-weight: bold; text-decoration: underline;">Surface</span>  <span style="font-weight: bold; font-style: italic;">s</span> = sv.getHolder().getSurface();
         <span style="font-weight: bold; text-decoration: underline;">assert</span>  <span style="font-weight: bold; font-style: italic;">s</span> !=  <span style="font-weight: bold; text-decoration: underline;">null</span> :  <span style="font-style: italic;">"Surface is null"</span>;
         <span style="font-weight: bold; text-decoration: underline;">DisplayMetrics</span>  <span style="font-weight: bold; font-style: italic;">metrics</span> =  <span style="font-weight: bold;">new</span>  <span style="font-weight: bold; text-decoration: underline;">DisplayMetrics</span>();
         <span style="font-weight: bold;">this</span>.getWindowManager().getDefaultDisplay().getMetrics(metrics);  <span style="font-weight: bold; font-style: italic;">// </span> <span style="font-weight: bold; font-style: italic;">Mutates!
</span>         <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold; font-style: italic;">dpi</span> = metrics.densityDpi;
         <span style="font-weight: bold; text-decoration: underline;">VirtualDisplay</span>  <span style="font-weight: bold; font-style: italic;">mVirtualDisplay</span> = mediaProjection.createVirtualDisplay( <span style="font-style: italic;">"ScreenCapture"</span>,
                sv.getWidth(), sv.getHeight(), dpi,
                 <span style="font-weight: bold; text-decoration: underline;">DisplayManager</span>.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
                s,  <span style="font-weight: bold; text-decoration: underline;">null</span>,  <span style="font-weight: bold; text-decoration: underline;">null</span>);
    }
}
</pre>
</div>

 <p>
Это работает, но в целом, этот идиотский проброс функций, как будто авторы очень хотели существования continuations, но не знали, как их сделать.
</p>

 <ol class="org-ol"> <li>startScreenCast</li>
 <li>actuallyStartScreenCast</li>
 <li>onActivityResult</li>
 <li>actuallyStartScreenCast</li>
</ol> <p>
Скринкаст тут выбран в силу того, что этот процесс, хотя и требует авторизации юзером, но не требует прописывания пермишшенов в манифест, что приятно, потому что мы этого ещё не проходили.
</p>
</div>
</li>
</ol></li>

 <li> <a id="Activity-Result-API"></a> <a href="#Activity-Result-API"> <span class="todo TODO">TODO</span> Activity Result API</a> <br></br> <div class="outline-text-5" id="text-Activity-Result-API">
 <p>
 <a href="https://www.geeksforgeeks.org/how-to-use-activityforresultluncher-as-startactivityforresult-is-deprecated-in-android/">https://www.geeksforgeeks.org/how-to-use-activityforresultluncher-as-startactivityforresult-is-deprecated-in-android/</a>
</p>

 <p>
So, the new API looks much better.
No stupid uniform  <code>onActivityResult</code>, and while we still cannot obtain the permission synchronously, we can do it in 2 parts instead of 4.
</p>

 <div class="org-src-container">
 <pre class="src src-java">                 <span style="font-weight: bold; text-decoration: underline;">@Override</span>
                 <span style="font-weight: bold;">protected</span>  <span style="font-weight: bold; text-decoration: underline;">void</span>  <span style="font-weight: bold;">onCreate</span>( <span style="font-weight: bold; text-decoration: underline;">Bundle</span>  <span style="font-weight: bold; font-style: italic;">savedInstanceState</span>) {
                   <span style="font-weight: bold;">super</span>.onCreate(savedInstanceState);
                   <span style="font-weight: bold;">this</span>.setContentView(R.layout.activity_main);
                  (( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">widget</span>. <span style="font-weight: bold; text-decoration: underline;">Button</span>)  <span style="font-weight: bold;">this</span>.findViewById(R.id.button_capture2)).setText( <span style="font-style: italic;">"Click me"</span>);
                  (( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">widget</span>. <span style="font-weight: bold; text-decoration: underline;">Button</span>)  <span style="font-weight: bold;">this</span>.findViewById(R.id.button_capture2))
                      .setOnClickListener(
                          ( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">view</span>.View  <span style="font-weight: bold; text-decoration: underline;">v</span>) -> {
                            ( <span style="font-weight: bold;">this</span>.registerForActivityResult(
                                 <span style="font-weight: bold;">new</span>  <span style="font-weight: bold; text-decoration: underline;">ActivityResultContracts</span>. <span style="font-weight: bold; text-decoration: underline;">StartActivityForResult</span>(),
                                result -> {
                                   <span style="font-weight: bold;">if</span> (result.getResultCode() == RESULT_OK) {
                                     <span style="font-weight: bold; text-decoration: underline;">assert</span> result. <span style="font-weight: bold;">getData</span>() !=  <span style="font-weight: bold; text-decoration: underline;">null</span> :  <span style="font-style: italic;">"Getting permission failed!"</span>;
                                     <span style="font-weight: bold; text-decoration: underline;">Intent</span>  <span style="font-weight: bold; font-style: italic;">data</span> = result.getData();
                                     <span style="font-weight: bold; text-decoration: underline;">MediaProjection</span>  <span style="font-weight: bold; font-style: italic;">m</span> = (( <span style="font-weight: bold; text-decoration: underline;">MediaProjectionManager</span>)
                                                          <span style="font-weight: bold;">this</span>.getSystemService(
                                                              <span style="font-weight: bold; text-decoration: underline;">Context</span>.MEDIA_PROJECTION_SERVICE))
                                                        .getMediaProjection(result.getResultCode(),
                                                                            result.getData());
                                     <span style="font-weight: bold; text-decoration: underline;">assert</span>  <span style="font-weight: bold; font-style: italic;">m</span> !=  <span style="font-weight: bold; text-decoration: underline;">null</span> :  <span style="font-style: italic;">"Media projection is null"</span>;
                                     <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">view</span>. <span style="font-weight: bold; text-decoration: underline;">SurfaceView</span>  <span style="font-weight: bold; font-style: italic;">sv</span> =  <span style="font-weight: bold;">this</span>
                                                                  .findViewById(R.id.first_screen_view);
                                     <span style="font-weight: bold; text-decoration: underline;">assert</span>  <span style="font-weight: bold; font-style: italic;">sv</span> !=  <span style="font-weight: bold; text-decoration: underline;">null</span> :  <span style="font-style: italic;">"SurfaceView is null"</span>;
                                     <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">view</span>. <span style="font-weight: bold; text-decoration: underline;">Surface</span>  <span style="font-weight: bold; font-style: italic;">s</span> = sv.getHolder().getSurface();
                                     <span style="font-weight: bold; text-decoration: underline;">assert</span>  <span style="font-weight: bold; font-style: italic;">s</span> !=  <span style="font-weight: bold; text-decoration: underline;">null</span> :  <span style="font-style: italic;">"Surface is null"</span>;
                                     <span style="font-weight: bold; text-decoration: underline;">DisplayMetrics</span>  <span style="font-weight: bold; font-style: italic;">metrics</span> =  <span style="font-weight: bold;">new</span>  <span style="font-weight: bold; text-decoration: underline;">DisplayMetrics</span>();
                                     <span style="font-weight: bold;">this</span>.getWindowManager()
                                        .getDefaultDisplay().getMetrics(metrics);  <span style="font-weight: bold; font-style: italic;">// </span> <span style="font-weight: bold; font-style: italic;">Mutates metrics!
</span>                                     <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold; font-style: italic;">dpi</span> = metrics.densityDpi;
                                     <span style="font-weight: bold; text-decoration: underline;">VirtualDisplay</span>  <span style="font-weight: bold; font-style: italic;">mVirtualDisplay</span> = m
                                     .createVirtualDisplay(
                                          <span style="font-style: italic;">"ScreenCapture"</span>,
                                         sv.getWidth(),
                                         sv.getHeight(),
                                         dpi,
                                          <span style="font-weight: bold; text-decoration: underline;">DisplayManager</span>.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
                                         s,  <span style="font-weight: bold; text-decoration: underline;">null</span>,  <span style="font-weight: bold; text-decoration: underline;">null</span>);}}))
                           .launch((( <span style="font-weight: bold; text-decoration: underline;">MediaProjectionManager</span>) <span style="font-weight: bold;">this</span>
                                    .getSystemService( <span style="font-weight: bold; text-decoration: underline;">Context</span>.MEDIA_PROJECTION_SERVICE))
                                   .createScreenCaptureIntent());
                          });
}
</pre>
</div>

 <p>
Right?
All in one method, all local, and the response is registered right where it is received.
</p>

 <div class="verbatim" id="org5ca143c">
 <p>
LifecycleOwner com.example.myscreengrabber.MainActivity@483cf7c
is attempting to register while current state is RESUMED.
LifecycleOwners must call register before they are STARTED.
</p>

</div>

 <p>
You must be kidding me, right?
</p>

 <p>
 <a href="https://stackoverflow.com/questions/64476827/how-to-resolve-the-error-lifecycleowners-must-call-register-before-they-are-sta">https://stackoverflow.com/questions/64476827/how-to-resolve-the-error-lifecycleowners-must-call-register-before-they-are-sta</a>
</p>

 <div class="org-src-container">
 <pre class="src src-java"> <span style="font-weight: bold; text-decoration: underline;">@Override</span>
 <span style="font-weight: bold;">protected</span>  <span style="font-weight: bold; text-decoration: underline;">void</span>  <span style="font-weight: bold;">onCreate</span>( <span style="font-weight: bold; text-decoration: underline;">Bundle</span>  <span style="font-weight: bold; font-style: italic;">savedInstanceState</span>) {
   <span style="font-weight: bold;">super</span>.onCreate(savedInstanceState);
   <span style="font-weight: bold;">this</span>.setContentView(R.layout.activity_main);
  (( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">widget</span>. <span style="font-weight: bold; text-decoration: underline;">Button</span>)  <span style="font-weight: bold;">this</span>.findViewById(R.id.first_button)).setText( <span style="font-style: italic;">"Click me"</span>);
  (( <span style="font-weight: bold; text-decoration: underline;">androidx</span>. <span style="font-weight: bold; text-decoration: underline;">appcompat</span>. <span style="font-weight: bold; text-decoration: underline;">widget</span>. <span style="font-weight: bold; text-decoration: underline;">AppCompatButton</span>)  <span style="font-weight: bold;">this</span>.findViewById(R.id.first_button)).setOnClickListener(
      ( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">view</span>.View  <span style="font-weight: bold; text-decoration: underline;">v</span>) -> {
        Log.i( <span style="font-style: italic;">"button"</span>,  <span style="font-style: italic;">"lwf:clicked button"</span>);
         <span style="font-weight: bold; text-decoration: underline;">String</span>  <span style="font-weight: bold; font-style: italic;">argv</span> =  <span style="font-style: italic;">"My wonderful text sent in an intent"</span>;
         <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">content</span>. <span style="font-weight: bold; text-decoration: underline;">Intent</span>  <span style="font-weight: bold; font-style: italic;">argvBox</span> =  <span style="font-weight: bold;">new</span>  <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">content</span>. <span style="font-weight: bold; text-decoration: underline;">Intent</span>();
        argvBox.setAction( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">content</span>. <span style="font-weight: bold; text-decoration: underline;">Intent</span>.ACTION_SEND);
        argvBox.setType( <span style="font-style: italic;">"text/plain"</span>);
        argvBox.putExtra( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">content</span>. <span style="font-weight: bold; text-decoration: underline;">Intent</span>.EXTRA_TEXT, argv);
        startActivity(argvBox);
      });
  (( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">widget</span>. <span style="font-weight: bold; text-decoration: underline;">Button</span>)  <span style="font-weight: bold;">this</span>.findViewById(R.id.button_screen)).setOnClickListener(
      ( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">view</span>.View  <span style="font-weight: bold; text-decoration: underline;">v</span>) -> {
        todoScreenCast();
      });
   <span style="font-weight: bold; text-decoration: underline;">var</span>  <span style="font-weight: bold; font-style: italic;">caller</span> =
      ( <span style="font-weight: bold;">this</span>.registerForActivityResult(
           <span style="font-weight: bold;">new</span>  <span style="font-weight: bold; text-decoration: underline;">ActivityResultContracts</span>. <span style="font-weight: bold; text-decoration: underline;">StartActivityForResult</span>(),
          result -> {
             <span style="font-weight: bold;">if</span> (result.getResultCode() == RESULT_OK) {
               <span style="font-weight: bold; text-decoration: underline;">assert</span> result. <span style="font-weight: bold;">getData</span>() !=  <span style="font-weight: bold; text-decoration: underline;">null</span> :  <span style="font-style: italic;">"Getting permission failed!"</span>;
               <span style="font-weight: bold; text-decoration: underline;">Intent</span>  <span style="font-weight: bold; font-style: italic;">data</span> = result.getData();
               <span style="font-weight: bold; text-decoration: underline;">MediaProjection</span>  <span style="font-weight: bold; font-style: italic;">m</span> = (( <span style="font-weight: bold; text-decoration: underline;">MediaProjectionManager</span>)
                                    <span style="font-weight: bold;">this</span>.getSystemService( <span style="font-weight: bold; text-decoration: underline;">Context</span>.MEDIA_PROJECTION_SERVICE))
                                  .getMediaProjection(result.getResultCode(),
                                                      result.getData());
               <span style="font-weight: bold; text-decoration: underline;">assert</span>  <span style="font-weight: bold; font-style: italic;">m</span> !=  <span style="font-weight: bold; text-decoration: underline;">null</span> :  <span style="font-style: italic;">"Media projection is null"</span>;
               <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">view</span>. <span style="font-weight: bold; text-decoration: underline;">SurfaceView</span>  <span style="font-weight: bold; font-style: italic;">sv</span> =  <span style="font-weight: bold;">this</span>.findViewById(R.id.first_screen_view);
               <span style="font-weight: bold; text-decoration: underline;">assert</span>  <span style="font-weight: bold; font-style: italic;">sv</span> !=  <span style="font-weight: bold; text-decoration: underline;">null</span> :  <span style="font-style: italic;">"SurfaceView is null"</span>;
               <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">view</span>. <span style="font-weight: bold; text-decoration: underline;">Surface</span>  <span style="font-weight: bold; font-style: italic;">s</span> = sv.getHolder().getSurface();
               <span style="font-weight: bold; text-decoration: underline;">assert</span>  <span style="font-weight: bold; font-style: italic;">s</span> !=  <span style="font-weight: bold; text-decoration: underline;">null</span> :  <span style="font-style: italic;">"Surface is null"</span>;
               <span style="font-weight: bold; text-decoration: underline;">DisplayMetrics</span>  <span style="font-weight: bold; font-style: italic;">metrics</span> =  <span style="font-weight: bold;">new</span>  <span style="font-weight: bold; text-decoration: underline;">DisplayMetrics</span>();
               <span style="font-weight: bold;">this</span>.getWindowManager().getDefaultDisplay().getMetrics(metrics);  <span style="font-weight: bold; font-style: italic;">// </span> <span style="font-weight: bold; font-style: italic;">Mutates!
</span>               <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold; font-style: italic;">dpi</span> = metrics.densityDpi;
               <span style="font-weight: bold; text-decoration: underline;">VirtualDisplay</span>  <span style="font-weight: bold; font-style: italic;">mVirtualDisplay</span> =
                  m.createVirtualDisplay( <span style="font-style: italic;">"ScreenCapture"</span>,
                                         sv.getWidth(),
                                         sv.getHeight(),
                                         dpi,
                                         <span style="font-weight: bold; text-decoration: underline;">DisplayManager</span>.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
                                        s,  <span style="font-weight: bold; text-decoration: underline;">null</span>,  <span style="font-weight: bold; text-decoration: underline;">null</span>);
            }}));
  (( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">widget</span>. <span style="font-weight: bold; text-decoration: underline;">Button</span>)  <span style="font-weight: bold;">this</span>.findViewById(R.id.button_capture2)).setOnClickListener(
      ( <span style="font-weight: bold; text-decoration: underline;">android</span>. <span style="font-weight: bold; text-decoration: underline;">view</span>.View  <span style="font-weight: bold; text-decoration: underline;">v</span>) -> {
        caller.launch((( <span style="font-weight: bold; text-decoration: underline;">MediaProjectionManager</span>)
                        <span style="font-weight: bold;">this</span>.getSystemService( <span style="font-weight: bold; text-decoration: underline;">Context</span>.MEDIA_PROJECTION_SERVICE))
                      .createScreenCaptureIntent());
      });
}
</pre>
</div>

 <p>
Okay, this is stupid, but not criminally stupid.
At least there is no "universal dispatcher" for return values.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Permissions" class="outline-4">
 <h4 id="Permissions"> <span class="section-number-4">1.3.4.</span>  <a href="#Permissions"> <span class="todo TODO">TODO</span> Permissions</a></h4>
 <div class="outline-text-4" id="text-Permissions">
 <p>
 <a href="https://stackoverflow.com/questions/77307867/screen-capture-mediaprojection-on-android-14">https://stackoverflow.com/questions/77307867/screen-capture-mediaprojection-on-android-14</a>
</p>

 <p>
TODO: uses-feature
TODO: uses-permission
</p>
</div>
</div>
</div>




 <div id="outline-container-Async-shit" class="outline-3">
 <h3 id="Async-shit"> <span class="section-number-3">1.4.</span>  <a href="#Async-shit"> <span class="todo TODO">TODO</span> Async shit</a></h3>
 <div class="outline-text-3" id="text-Async-shit">
</div>
 <div id="outline-container-Bundle" class="outline-4">
 <h4 id="Bundle"> <span class="section-number-4">1.4.1.</span>  <a href="#Bundle"> <span class="todo TODO">TODO</span> Bundle</a></h4>
 <div class="outline-text-4" id="text-Bundle">
 <p>
Bundle – это какая-то такая штука, которая должна помогать нам восстанавливать состояние программы в случае перезапуска.
</p>

 <p>
С какой-то стороны, это полезно, потому что Андроид часто убивает программы для экономии памяти или батареи.
С другой стороны, возиться с этим муторно, и если нам хочется сгенерить простейшую обвязку для консольной программы, с этим не хочется возиться.
</p>
</div>
</div>

 <div id="outline-container-Persistent-notifications" class="outline-4">
 <h4 id="Persistent-notifications"> <span class="section-number-4">1.4.2.</span>  <a href="#Persistent-notifications"> <span class="todo TODO">TODO</span> Persistent notifications</a></h4>
 <div class="outline-text-4" id="text-Persistent-notifications">
</div>
</div>
 <div id="outline-container-Threads-and-Alarms" class="outline-4">
 <h4 id="Threads-and-Alarms"> <span class="section-number-4">1.4.3.</span>  <a href="#Threads-and-Alarms"> <span class="todo TODO">TODO</span> Threads and Alarms</a></h4>
 <div class="outline-text-4" id="text-Threads-and-Alarms">
</div>
</div>
 <div id="outline-container-Providers-and-shitty-VFS" class="outline-4">
 <h4 id="Providers-and-shitty-VFS"> <span class="section-number-4">1.4.4.</span>  <a href="#Providers-and-shitty-VFS"> <span class="todo TODO">TODO</span> Providers and shitty VFS</a></h4>
 <div class="outline-text-4" id="text-Providers-and-shitty-VFS">
</div>
</div>
 <div id="outline-container-Jetpack-Compose" class="outline-4">
 <h4 id="Jetpack-Compose"> <span class="section-number-4">1.4.5.</span>  <a href="#Jetpack-Compose"> <span class="todo TODO">TODO</span> Jetpack Compose</a></h4>
 <div class="outline-text-4" id="text-Jetpack-Compose">
</div>
 <ol class="org-ol"> <li> <a id="Support-library"></a> <a href="#Support-library"> <span class="todo TODO">TODO</span> Support library</a> <br></br> <div class="outline-text-5" id="text-Support-library">
</div>
</li>
 <li> <a id="Fragment"></a> <a href="#Fragment"> <span class="todo TODO">TODO</span> Fragment</a> <br></br> <div class="outline-text-5" id="text-Fragment">
</div>
</li>
 <li> <a id="AppCompat"></a> <a href="#AppCompat"> <span class="todo TODO">TODO</span> AppCompat</a> <br></br> <div class="outline-text-5" id="text-AppCompat">
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-Totalitarianism" class="outline-3">
 <h3 id="Totalitarianism"> <span class="section-number-3">1.5.</span>  <a href="#Totalitarianism"> <span class="todo TODO">TODO</span> Totalitarianism</a></h3>
 <div class="outline-text-3" id="text-Totalitarianism">
</div>
</div>

 <div id="outline-container-%D0%A1%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D0%B8%D0%B5,-%D0%BD%D0%BE-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D1%8B%D0%B5,-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B." class="outline-3">
 <h3 id="%D0%A1%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D0%B8%D0%B5,-%D0%BD%D0%BE-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D1%8B%D0%B5,-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B."> <span class="section-number-3">1.6.</span>  <a href="#%D0%A1%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D0%B8%D0%B5,-%D0%BD%D0%BE-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D1%8B%D0%B5,-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B."> <span class="todo TODO">TODO</span> Сторонние, но полезные, инструменты.</a></h3>
 <div class="outline-text-3" id="text-%D0%A1%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D0%B8%D0%B5,-%D0%BD%D0%BE-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D1%8B%D0%B5,-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B.">
</div>

 <div id="outline-container-%D0%9A%D0%BE%D1%82%D0%BB%D0%B8%D0%BD-(%D0%BC%D0%BE%D1%80%D1%81%D0%BA%D0%B8%D0%B5-%D0%B2%D0%BE%D1%80%D0%BE%D1%82%D0%B0-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3%D0%B0)" class="outline-4">
 <h4 id="%D0%9A%D0%BE%D1%82%D0%BB%D0%B8%D0%BD-(%D0%BC%D0%BE%D1%80%D1%81%D0%BA%D0%B8%D0%B5-%D0%B2%D0%BE%D1%80%D0%BE%D1%82%D0%B0-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3%D0%B0)"> <span class="section-number-4">1.6.1.</span>  <a href="#%D0%9A%D0%BE%D1%82%D0%BB%D0%B8%D0%BD-(%D0%BC%D0%BE%D1%80%D1%81%D0%BA%D0%B8%D0%B5-%D0%B2%D0%BE%D1%80%D0%BE%D1%82%D0%B0-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3%D0%B0)"> <span class="todo TODO">TODO</span> Котлин (морские ворота Петербурга)</a></h4>
 <div class="outline-text-4" id="text-%D0%9A%D0%BE%D1%82%D0%BB%D0%B8%D0%BD-(%D0%BC%D0%BE%D1%80%D1%81%D0%BA%D0%B8%D0%B5-%D0%B2%D0%BE%D1%80%D0%BE%D1%82%D0%B0-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3%D0%B0)">
</div>
</div>
 <div id="outline-container-Dagger" class="outline-4">
 <h4 id="Dagger"> <span class="section-number-4">1.6.2.</span>  <a href="#Dagger"> <span class="todo TODO">TODO</span> Dagger</a></h4>
 <div class="outline-text-4" id="text-Dagger">
</div>
</div>
 <div id="outline-container-Mortar" class="outline-4">
 <h4 id="Mortar"> <span class="section-number-4">1.6.3.</span>  <a href="#Mortar"> <span class="todo TODO">TODO</span> Mortar</a></h4>
 <div class="outline-text-4" id="text-Mortar">
</div>
</div>
 <div id="outline-container-WebRTC" class="outline-4">
 <h4 id="WebRTC"> <span class="section-number-4">1.6.4.</span>  <a href="#WebRTC"> <span class="todo TODO">TODO</span> WebRTC</a></h4>
 <div class="outline-text-4" id="text-WebRTC">
 <p>
В этой главе будет краткий мануал по WebRTC, потому что это супер нужная штука для работы с потоками видео и аудио.
</p>

 <ol class="org-ol"> <li>MediaStreamTrack = { AutioStream,  VideoStream }</li>
 <li>VideoCapturer/VideoSource/VideoStream</li>
 <li>Transceiver/Transmitter/Receiver</li>
 <li>ICE</li>
</ol></div>
</div>
</div>

 <div id="outline-container-Friends" class="outline-3">
 <h3 id="Friends"> <span class="section-number-3">1.7.</span>  <a href="#Friends"> <span class="todo TODO">TODO</span> Friends</a></h3>
 <div class="outline-text-3" id="text-Friends">
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-07-30_Notes-on-how-to-develop-java-apps-on-Android.d/2025-03-08_Introduction-into-Android-development.html"/>
  <id>https://lockywolf.net/2020-07-30_Notes-on-how-to-develop-java-apps-on-Android.d/2025-03-08_Introduction-into-Android-development.html</id>
  <updated>2026-02-22T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;Heart of Bodhi&quot; by Cao DeWang.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “Heart of Bodhi” by Cao DeWang.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a></li>
 <li> <a href="#Heart-of-Bodhi">2. Heart of Bodhi</a>
 <ul> <li> <a href="#Family-becomes-poor">2.1. Family becomes poor</a></li>
 <li> <a href="#Arduously-making-business">2.2. Arduously making business</a></li>
 <li> <a href="#Trust-as-a-Capital">2.3. Trust as a Capital</a></li>
 <li> <a href="#Heaven-rewards-the-diligent">2.4. Heaven rewards the diligent</a></li>
 <li> <a href="#Morals-and-righteousness-lay-on-iron-shoulders">2.5. Morals and righteousness lay on iron shoulders</a></li>
 <li> <a href="#Going-international">2.6. Going international</a>
 <ul> <li> <a href="#Going-to-Russia">2.6.1. Going to Russia</a></li>
 <li> <a href="#Facing-the-anti-dumping-lawsuit">2.6.2. Facing the anti-dumping lawsuit</a></li>
 <li> <a href="#Finding-an-agreement-with-the-Kremlin">2.6.3. Finding an agreement with the Kremlin</a></li>
 <li> <a href="#A-VIP-on-a-party.">2.6.4. A VIP on a party.</a></li>
 <li> <a href="#How-a-smart-Jewish-guy-taught-him-to-make-business.">2.6.5. How a smart Jewish guy taught him to make business.</a></li>
 <li> <a href="#America-is-also-in-search-for-an-economic-transformation.">2.6.6. America is also in search for an economic transformation.</a></li>
 <li> <a href="#Investing-in-the-USA">2.6.7. Investing in the USA</a></li>
</ul></li>
 <li> <a href="#Afterword">2.7. Afterword</a></li>
</ul></li>
 <li> <a href="#Blurb">3. Blurb</a></li>
 <li> <a href="#LocalWords">4. LocalWords</a></li>
</ul></div>
</nav> <p>
I am reading “Heart of Bodhi” by Cao Dewang.
</p>


 <figure id="org7c9bff2"> <img src="./01_Cao-DeWang.jpg" alt="01_Cao-DeWang.jpg"></img></figure> <p>
A friend recommended this book to me, and it is truly a fascinating read.
</p>

 <p>
Since this book has never been translated either into English or into Russian, I am willing to make more detailed notes than I usually do, as it may actually turn out to be useful for people interested in China, but not knowing the languages.
This is the first Chinese book I am reading which is not available in other languages, knowing Chinese finally starting to pay off not just for business and work, but also for cultural enrichment.
(Update: it seems that the book was translated into English, but I only found a few used copies on Ebay.)
</p>

 <p>
Cao DeWang is a Chinese oligarch, the head of a leading automobile glass manufacturing company, and also a member of the Chinese parliament.
He is also a devout Buddhist, and also one of the leading Chinese philanthropists.
</p>

 <p>
His story is seen to be a case study for a “Chinese success”, on par with the story of Ma Yun (Jack Ma), the founder of Alibaba Group, and Ren ZhengFei, the founder of Huawei.
</p>

 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
 <p>
I am writing this review after reading the whole book.
As I said, this is the first book I have read in Chinese entirely on my own, without consulting a teacher all the time.
It is a good book.
I cannot say that it is “great”, as it takes a bit more to become “great” than making a successful business empire, but it certainly stands on par with other biographies of famous people.
</p>

 <p>
Of course, you cannot fully trust him, as he is very polite and equivocal when discussing other people.
You probably also cannot learn from his experience how to make business in China, partly because, clearly, he is not saying how exactly he made his connections as efficient as they turned out to be.
</p>

 <p>
But he is giving an account of the functioning of an engineering-based enterprise, and I see little motivation for him to lie.
He also gives an interesting account of China during the Cultural Revolution, which was very different from the Soviet era in Russia, despite superficial similarities.
</p>

 <p>
You can calibrate your sense of truthfulness about his narrative by reading his last chapter, where he is talking about investing in Russia and the USA, and compare his presented perception of Russia with yours.
</p>

 <p>
His language is very smooth, and approachable for people with my knowledge of Chinese.
He does use quite a few ChéngYǔ, which should help learners to memorise them, but overall his Chinese is not very difficult.
I was querying the dictionary about 15 times per page, which made it about 5% of the text.
Still a little too much, but manageable.
Looking into the dictionary this much does not interrupt the reading flow enough to lose the narrative.
I would say it is on the border, which is the best for learning.
</p>

 <p>
There are a lot of entertaining stories in the book, and even if some of them are not true, or presented tendentiously, I still did not have to force myself to read, I just enjoyed it.
</p>
</div>
</section> <section id="outline-container-Heart-of-Bodhi" class="outline-2"> <h2 id="Heart-of-Bodhi"> <span class="section-number-2">2.</span>  <a href="#Heart-of-Bodhi">Heart of Bodhi</a></h2>
 <div class="outline-text-2" id="text-Heart-of-Bodhi">
</div>

 <div id="outline-container-Family-becomes-poor" class="outline-3">
 <h3 id="Family-becomes-poor"> <span class="section-number-3">2.1.</span>  <a href="#Family-becomes-poor">Family becomes poor</a></h3>
 <div class="outline-text-3" id="text-Family-becomes-poor">
 <p>
Cao DeWang was born in Shanghai in 1946.
Interestingly, Wikipedia claims that he was born in Fujian, I wonder who is right.
His parents did not give him a name, calling him instead “Little Indian”, which was a common nickname for British Indian Police often dispatched in Shanghai’s International Settlement.
</p>

 <p>
His father had studied “doing business” in a clothing store in Japan, and later returned to China, started doing business in Shanghai, and became quite prosperous.
His family “ran away” from the onslaught of the People’s Liberation Army marching on Shanghai, moving to a mountainous town called Fuqing, losing most of their property on the way, with a sunken cargo boat.
(Can I actually believe that?)
He mentions that they were discussing various ways to “escape”, including moving to the USA and to Hong Kong, but eventually they decided on Fujian.
I wonder why?
</p>

 <p>
In any case, they bought a hut in Fuqing GaoShan, and officially became “rural dwellers”, which by itself was not, perhaps, particularly prestigious, but turned out to be useful later, during the Cultural Revolution, when most of the troubles were happening in the cities.
Nevertheless, the family became poor, and he had to work from a young age, including herding oxen and gathering firewood.
</p>

 <p>
He went to a school, but, in addition to being constantly tired, was also a bit mischievous, and was kicked out from the school a few years later, for covertly climbing the wall of a toilet building an urinating onto the head of the headmaster, as a vengeance for being maltreated.
</p>

 <p>
Being kicked out of school, he had to start hustling, bringing money into the family.
His father taught him the basics of business, which at the time was mostly illegal trading.
They were selling cigarettes and fruit, mostly delivering the goods manually, by bike, from Fuzhou to the rural town.
This was illegal, and they were constantly at risk of getting caught and punished.
</p>

 <p>
Nevertheless, this is how he learnt to make business, which, I presume, helped him a lot later.
</p>

 <p>
Eventually he grew to 17 years old, and his parents married him to a local girl, whom he had not even met before.
The union was mostly economical, the family needed one more worker, but he used his marriage as an excuse to start his own independent life of a married man.
</p>

 <p>
Firstly they were growing Tremella, an kind of mushroom, which used to cost a lot on the market (both legal and illegal), but since all of Fuqing was growing it, the price soon plummeted.
</p>


 <figure id="orgc0bc292"> <img src="./02_tremella.jpg" alt="02_tremella.jpg"></img></figure> <p>
He was the first one in the town to understand that it would be more profitable to sell the mushrooms in another province of Jiangxi, and started shuttle trading, which worked for a while, until he was caught and accused of profiteering, his and his villager’s goods confiscated.
</p>

 <p>
With no money and a lot of debt he was drafted into a “labour army” and sent to the “Provincial project 06”, building a dam on the river to make a reservoir.
Initially the work was extremely hard, but very soon their barracks caught fire and got burnt to the ground, which was a disaster for everyone, and he took it as an opportunity to actively participate in the relief measures, and became very friendly with the project leadership team.
</p>

 <p>
Later, when his conscription period ended, he still staid there voluntarily, because he had nothing else to do, and the leadership team appointed him into the canteen, and even made him responsible for procurement, a position on which he became well-respected for being incorruptible and for solving a few conflicts among the people.
After all he ended up making a some money on that project, and the leadership team even helped him with finding a proof that the Tremella mushrooms had been “collective property”, which allowed him to release the mushrooms from being impounded, albeit on the state-dictated price (about 1/3 lower than the market price).
</p>

 <p>
After the dam was complete, he was released with a bit of money, but no work.
He came home and started working as an employee at a seedling farm, for a small salary.
While there, he became acquainted with a different kolkhoz farm head, also growing plant seedlings, and he invited DeWang to work for them as a salesman.
(Yes, in the midst of the Cultural Revolution, Chinese kolkhoz farms had salesmen.)
</p>

 <p>
He worked as a salesman for the kolkhoz for 3 years, until the Cultural Revolution was over, earning 20% from each sale.
(I am finding this hard to believe.)
Eventually he resigned, presumably because he didn’t feel that the farm had growth perspectives after the end of the Cultural Revolution.
</p>
</div>
</div>

 <div id="outline-container-Arduously-making-business" class="outline-3">
 <h3 id="Arduously-making-business"> <span class="section-number-3">2.2.</span>  <a href="#Arduously-making-business">Arduously making business</a></h3>
 <div class="outline-text-3" id="text-Arduously-making-business">
 <p>
He initiates a construction of a glass factory for polishing water-meter glasses.
Although he finds two seemingly qualified engineers, finds the investor (his local government), and is the running motor of the plan, his official position is only sales and purchases, nothing administrative.
</p>

 <p>
The factory fails to produce passable quality output for a long time, and he is going to Shanghai to find an engineer who can help them debug the issue.
He finds one at the Shanghai glass factory, who turns out to be a woman.
He is surprised, but she quickly finds an issue with their equipment and earns his great respect.
</p>

 <p>
The Shanghai plant management arranges a flight for them to go to Fujian and back, which is his first flight, and he is amused.
</p>

 <p>
After the plant is set up, he does not have a lot to do, and goes to a Daoist-Buddhist temple on top of a mountain, together with his friend.
</p>

 <p>
Being a “sales and procurement” person on the factory turned out to be a great opportunity to make connections and learn how to do business.
In Fuzhou they made business by spending time in a hot spring where all of the city “elite” were gathering.
</p>

 <p>
He also had a many opportunities to go to Shanghai and other cities of China to discover useful people, especially people who participated in the state planning system.
The book has an interesting introduction into the Chinese-style planned economy.
</p>

 <p>
In 1980, his former boss at the sapling farm sent him a letter, admitting that he was dying from cancer and asked Cao Dewang to help him, arrange his son’s marriage.
</p>

 <p>
Eventually, the village party committee “subcontracted” factory management to him, whatever that means.
(The word is 承包, and I don’t understand what it means in this context.)
This has proven to be a success, he made the factory work three shifts a day, hired 60 more people, implemented KPI-based salary system, effectively increased salaries 5 times, and increased factory productivity at least three times.
</p>

 <p>
He also had some “political” experience at the time.
He found out that manufacturing glass according to the standard is hard, but also that the standard is excessively fine, so he went to the government bureau and an industrial conference to speak about this problem, and effectively lowered the standard for his factory.
(The standard was not changed, but nobody complained any more.)
</p>

 <p>
His “subcontract” has proven to be successful, and he earned a lot of money, about 60% of all of the factory profit, because the investors did not expect him to make so much money.
</p>

 <p>
After the end of the contract (one year), he intended to leave the factory and do something else, but before resigning he went to a temple, drew a fortune-strip, and a monk interpreted it for him in a way which suggested that leaving the factory is not a good idea.
Nevertheless, even though he did not leave, all of his team left, no matter how much he convinced them to stay.
(This part is kinda implausible.)
</p>

 <p>
While re-equipping the factory with new machines, a taxi driver told him that spare car windshields (and other glass pieces) were very expensive, and Dewang decided to make a new factory, adjacent to the previous one, with the goal of making car glass.
His village mayor’s office also agreed to invest into the factory, given that Dewang would invest his own money, so Dewang re-mortgaged his newly-built home for this purpose.
</p>

 <p>
Various events helped him be attentive to people around, no matter how, at the first glance, insignificant.
</p>

 <p>
“Arduously making business” ends with a long story on how his, previously supporting, local government, delcided to attack him, accusing him of corruption and misappropriation of funds.
This section is quite long, but the main point is that his main counter-action was, seemingly, asking a city party secretary (one level above village secretariat) to examine his case personally.
The first accusation failed, and Dèwáng became friends with the city government head, but the village government did not give up, and continued to escalate the issue up to provincial and Beijing level.
All attacks failed, and eventually village government people were transferred to other villages.
</p>

 <p>
(But I am sensing something insincere in this story. Why would local management try to destroy the business in which they were shareholders themselves?
Did they want to just expropriate Dèwáng’s shares?
Strange.)
</p>
</div>
</div>

 <div id="outline-container-Trust-as-a-Capital" class="outline-3">
 <h3 id="Trust-as-a-Capital"> <span class="section-number-3">2.3.</span>  <a href="#Trust-as-a-Capital">Trust as a Capital</a></h3>
 <div class="outline-text-3" id="text-Trust-as-a-Capital">
 <p>
The chapter starts with an anecdote on how Dèwáng “avoided” a kickback.
</p>

 <p>
He convinced his investors to move the factory to a bigger place with better access to electricity.
In order to do this, they needed to prepare the ground and construct the building.
Initially his investor signed a contract with 0.8 yuan per m^3, which was 3 times lower than the market price.
Obviously, the supplier offered a kickback for “exceeding” the work plan.
</p>

 <p>
Dèwáng did not agree, and even threatened to sue the supplier and the investor, who had volunteered to be guarantors.
(Huh? How did they do it?)
After a lot of argument, the work was actually done, working day and night, and he paid the subcontractor 2.8 yuan per m^3, which made the subcontractor his friend forever.
</p>

 <p>
Can I even believe this story?
</p>

 <p>
Eventually the car glass factory was built, also encountering quite a lot of issues with “petty corruption”, such as investors (municipal authorities) trying to make the company buy their relatives’ services and getting their relatives employed.
He even had to have an “exam” in Chinese in order to filter out idiots.
</p>

 <p>
They bought Finnish equipment, and while visiting Finland for the first time, he takes pride in making sure that nobody in his company took their business trip allowance to buy stuff to bring it home.
(As story too familiar to former Soviet people.)
Eventually they also bought equipment from this factory, which allowed manufacturing car door glass very quickly.
</p>

 <p>
The next story is how, on a dragon boat rowing competition, he threw a memorial cup into a reservoir.
His telling of the story is that he was promised to manufacture the winner’s cup, and his company donated money, produced the cup, and was ready to give it to the winner, when suddenly the organiser found a better sponsor, and decided that Dèwáng’s cup goes to the fourth place.
On the ceremony, Dèwáng threw the cup into the reservoir.
</p>

 <p>
On the factory, he acts in a paternalistic way.
He combats waste in the canteen and provides company hall of ceremonies for weddings.
</p>

 <p>
He also considered becoming a Buddhist monk, but went to the temple he had used to visit, and was dissuaded.
</p>

 <p>
He also tells his side of the story of the epic lawsuit between FuYao and their construction contractor (which failed to do a good job), which took 7 years and 100m yuan.
</p>
</div>
</div>


 <div id="outline-container-Heaven-rewards-the-diligent" class="outline-3">
 <h3 id="Heaven-rewards-the-diligent"> <span class="section-number-3">2.4.</span>  <a href="#Heaven-rewards-the-diligent">Heaven rewards the diligent</a></h3>
 <div class="outline-text-3" id="text-Heaven-rewards-the-diligent">
 <p>
One of his investors suggested that FúYào group should go public and sell its shares on the open market.
However, at that time (~1990) in China there were no rules and guidelines on how to go public, so FuYao ended up being the first experiment.
</p>

 <p>
Not everything went smooth, and people who were initially very enthusiastic about buying shares, eventually became dissatisfied that stock exchange placement took so long, and wanted Dewang to buy back their shares.
</p>

 <p>
All this turned out to be lossy until the General Manager of Societe Generale helped Dewang buy out all those “rogue” shares.
</p>

 <p>
Eventually, after a lot of struggles, he managed to make the company public and instantly became an extremely rich person.
(Yes, there is such a way.)
This even required convincing the provincial governor of Fujian to fly to Beijing and negotiate with the central government.
</p>

 <p>
However, not everything was bright.
In mid-90s China was in an economic crisis, and FúYào was not making a lot of money and was entangled in various inefficient investment projects: the “industrial town” property development, the polymer factory, a lot of repair shops all over the country.
</p>

 <p>
His Hongkong friend suggested restructuring, and then commended a book called “Focus” (Focus: The Future of Your Company Depends on It: Ries, Al).
Somewhere about that time he, seemingly, also got a Hongkong passport.
</p>

 <p>
The he went to the USA for the first time, wanting to find out about expanding the market, with no success.
During the trip he visited the Ford museum in Detroit, liked it a lot, and even flew to the USA the second time specifically to visit the museum to draw some inspiration.
He said that “China now is like the USA 100 years ago”.
</p>

 <p>
Eventually he came up with a plant to reorganise FúYào.
He sold the “worker’s village”, closed unprofitable assets, and sold their network of distributors to current managers.
</p>

 <p>
Later they received investment from  <a href="https://en.wikipedia.org/wiki/Saint-Gobain">https://en.wikipedia.org/wiki/Saint-Gobain</a> , and they appointed one director onto the board.
</p>

 <p>
They tried selling glass to the USA via a proxy storage company called GGI, but the business did not turn out profitable, and he wanted to close it, but Saint-Gobain objected.
At the end of the day, “cooperation” with Saint-Gobain was a failure and eventually DéWàng convinced them to withdraw the investment.
</p>

 <p>
From 1998 he also remembers the Indonesian branch of ASAHI glass coming for help with supplies, which was a thing during the Asian financial crisis.
About the same time he learnt golf and started playing it in the morning.
</p>
</div>
</div>

 <div id="outline-container-Morals-and-righteousness-lay-on-iron-shoulders" class="outline-3">
 <h3 id="Morals-and-righteousness-lay-on-iron-shoulders"> <span class="section-number-3">2.5.</span>  <a href="#Morals-and-righteousness-lay-on-iron-shoulders">Morals and righteousness lay on iron shoulders</a></h3>
 <div class="outline-text-3" id="text-Morals-and-righteousness-lay-on-iron-shoulders">
 <p>
There is a story about his employee getting cancer and him spending a lot of money to try and treat him, but in vain.
</p>

 <p>
There are two business development stories in this chapter.
</p>

 <p>
One is about building a factory in Chongqing, which required a lot of “cooperation” with the government officials, and even involvement of his relative in order to build connection and get allocated a good piece of land.
The other one is about being almost forced to buy an old (1948) factory in Manchuria, which local government wanted to sell due to it being lossy.
The problem was that this factory was a kolkhoz, and all 2000 employees were shareholders.
Anyway, he convinced local leadership to bankrupt this factory and took over for a minimal price.
</p>



 <p>
Interestingly, this factory was making “float glass”, not car glass, so it was only fit for buildings.
And the issue was that construction work was not at the time performed in winter due to soil being frozen.
Also, Manchuria had several factories making glass and the industry was suffering from over-production forcing very low prices.
Since he fired 1800 workers out of 2000, he could make the price much lower, but fierce competition still made sure that he could only sell in summer, when there was some demand.
His clever trick was stockpiling glass for future sales during summer, and not selling below the profitable price in winter.
</p>

 <p>
When he bought, bankrupted, and re-structured that factory, another city mayor offered him another factory, which was also state-run, and almost bankrupt.
He claims to have hesitated at first, but later conceded, bought, bankrupted and restructured the second factory too.
</p>

 <p>
The interesting thing about all this story is that at the time all factories in Manchuria were operating at a loss, and selling glass way below the market price.
How so?
Well, because of mismanagement and because of a cartel pact of the distributors.
They were all in debt, but it is not feasible to stop a glass furnace just as it is not feasible to stop a steel melting blast furnace.
So factories continued to manufacture and sell glass during the winter, when the demand is low, at low prices just to keep the furnaces working.
As a result, they were all in debt.
</p>

 <p>
Cao DeWang implemented stockpiling on those factories, and stopped selling all glass during winter time.
This was his know-how, other factories did not know how to stockpile glass and not let it become mouldy.
So, in spring he started selling glass at market price, and distributors were forced to buy from him, because other factories were out of stock, having sold everything at low price during winter.
</p>

 <p>
He also tells the story that shows him as a supporter of good natural environment.
He ad built a sand-processing factory for his Manchuria factories, which used fluoride acid to clean the sand from contamination, but eventually found that it is not possible to fully process residual solution from fluoride, which made it toxic.
So in 2006 he closed that plant and started to purchase sand from another province.
</p>

 <p>
Another story is a story about toll stations.
At some point Fúqīng city government wanted to get a loan from him, because they needed to repay a loan and didn’t have cash.
(You’re asking me how this can happen? I don’t know.)
He made them give min four high-speed toll stations into management as a collateral.
He re-organised the management at those stations, forbade “important people” and locals from ignoring the fee, and raised the revenue by 30%.
All his legal profits he donated to the city department of transportation to build new and repair old roads, and after 3 years convinced the city government to completely decommission those toll stations.
Seems like a noble affair, at least makes him look noble.
Funny thing, the government also made him pay the income tax on the donated profits.
</p>

 <p>
They also built a car “float glass” factory in Fúqīng.
During the buildup there was a scary event when wind blew down their sand storage, a whole building.
</p>

 <p>
He spends a whole section describing the 2008 World Financial Crisis.
He praises himself for predicting it early and closing several non-profitable production lines, implementing rigorous management policies at the remaining factories, and negotiating with the city government in Manchuria a possible subsidy (which he later refunded to them back).
He says that this is one of the few known cases when a company refunds government’s support money.
He invited Korean management consultants for conducting training on his factory.
He also discusses how US government mismanagement caused the mortgage crisis and how the “three big car manufacturers” in the USA probably will not be bankrupted.
</p>

 <p>
In 2009 he won the “Ernst&Young” Global Entrepreneurship Award.
He is telling this as a funny anecdote in which he did not even have a large part to play.
He was dragged into the competition by his acquaintance who worked for Ernst&Young China and really wanted a Chinese company to win the prize.
After winning the China stage, mostly by protection from that guy, they flew to Monte-Carlo together, and Cáo DéWàng played the usual “villager in a city” trick by not having leather shoes and a tie, and not even having prepared his application speech.
Being urged to refine himself, he still managed to buy a tie, a pair of shoes, and prepare his 5 minute speech in one afternoon.
Of course he won the prize, effectively by telling to the jury that “Big Three American car manufacturers will not get bankrupt”.
Of course they did not.
</p>
</div>
</div>

 <div id="outline-container-Going-international" class="outline-3">
 <h3 id="Going-international"> <span class="section-number-3">2.6.</span>  <a href="#Going-international">Going international</a></h3>
 <div class="outline-text-3" id="text-Going-international">
</div>

 <div id="outline-container-Going-to-Russia" class="outline-4">
 <h4 id="Going-to-Russia"> <span class="section-number-4">2.6.1.</span>  <a href="#Going-to-Russia">Going to Russia</a></h4>
 <div class="outline-text-4" id="text-Going-to-Russia">
 <p>
In 1996 he went to Russia, as a part of the FúJiàn government delegation.
They went to Saint-Petersburgh, Sochi, and Moscow.
SPb impressed him by its grand and ceremonious architecture, but he does not tell any stories about what happened there, except that they were greeted by a Duma official.
</p>

 <p>
In Sochi they studied a kolkhoz, apparently, not privatised, and he tells a few anecdotes.
</p>
 <ol class="org-ol"> <li>They caught a few sea turtles for lunch, and locals were baffled by that.</li>
 <li>The kolkhoz secretary invited them to build a mill near the kolkhoz, and when they asked for a “feasibility study” and a business plan, the secretary was baffled, he had never heard about anything like that.</li>
 <li>The kolkhoz secretary told them the story about how Russian economy works: “There is a big gas pipe from Russia to Europe, the government sells gas and buys cheap Chinese goods. In fact, gas fees lets the government pay salaries to half of the country.”</li>
</ol> <p>
(Souns fresh.)
</p>

 <p>
In Moscow they also mostly did sight-seeing, and he was very disappointed by the quality of the hotel, which did not even allow their hosts to join the meal, because “it is not in the plan”.
They met with the local Chinese trade representatives, who told them that the “protection fees” in Moscow are very high, a single ice-cream stand mush pay 5000 USD each month.
</p>

 <p>
In general, however, he expressed positive thoughts about Russian future, saying that if the reform succeeds, a bright future is awaiting Russia due to a highly developed heavy industry and a lot of resources.
</p>
</div>
</div>

 <div id="outline-container-Facing-the-anti-dumping-lawsuit" class="outline-4">
 <h4 id="Facing-the-anti-dumping-lawsuit"> <span class="section-number-4">2.6.2.</span>  <a href="#Facing-the-anti-dumping-lawsuit">Facing the anti-dumping lawsuit</a></h4>
 <div class="outline-text-4" id="text-Facing-the-anti-dumping-lawsuit">
 <p>
In 2001, FúYào and other Chinese car glass manufacturers were sued for selling their products “below the market price” and thus damaging the US economy.
</p>

 <p>
This lead to a court case, which lasted years, in which FúYào tried to defend its position.
Cáo DéWàng claims that they had prepared more than a ton of documents to substantiate their position.
</p>

 <p>
In 2002 they were also sued in Canada, by a glass manufacturer PPG, also for dumping, but this case proved easy to win, just by proving that PPG as a US company, not a Canadian company.
</p>

 <p>
They finally won the US lawsuit in 2004, and even had their pre-paid “anti-dumping tariffs” refunded.
</p>

 <p>
This story impressed Cáo DéWàng so much that he even organised a research department, associated with a law school, which would be collecting data on anti-dumping cases all over the world, and funding anti-anti-dumping lawyers and researchers.
</p>
</div>
</div>


 <div id="outline-container-Finding-an-agreement-with-the-Kremlin" class="outline-4">
 <h4 id="Finding-an-agreement-with-the-Kremlin"> <span class="section-number-4">2.6.3.</span>  <a href="#Finding-an-agreement-with-the-Kremlin">Finding an agreement with the Kremlin</a></h4>
 <div class="outline-text-4" id="text-Finding-an-agreement-with-the-Kremlin">
 <p>
In 2010 he visited Kaluga, on an invitation from the governor, suggesting that he build a glass factory there, because Kaluga was trying to become a “Russian Detroit”, and had already domesticated Ford, Renault, and Honda.
</p>

 <p>
He is saying that in 2010 Kaluga only had a single “pocket” hotel, built and run by the Germans for their own factory.
</p>

 <p>
He tells a wonderful story on how expensive is building a factory in Kaluga.
</p>

 <ol class="org-ol"> <li>Land: 5$</li>
 <li>Design: 30$</li>
 <li>Construction works: 200$</li>
 <li>Concrete: 300$ per tonne.</li>
</ol> <p>
He was surprised that regulations do not allow importing neither a design plan nor a construction team from China.
He talked to the governor and said that under such conditions he would withdraw from the project, and they agreed that a Chinese design can be “converted”, and a construction team can be invited from China, as long as they register a company in Russia to organise the works.
</p>

 <p>
In 2011 the project was underway, but the Russian part required that the agreement be signed in the presence of Hú JǐnTāo, in the Kremlin.
It took them 2 months to make an agreement on when the signing ceremony can be organised.
The Russian made the Ministry of Foreign Affairs send invitations three times (!), the first two being rejected.
</p>

 <p>
Cáo DéWàng is saying that this was one of the most nervous times in his life.
After all, his company is not that large, and not state-run.
But after all, the Russian MFA succeeded, and found time when the Chinese leader was visiting Moscow.
</p>
</div>
</div>

 <div id="outline-container-A-VIP-on-a-party." class="outline-4">
 <h4 id="A-VIP-on-a-party."> <span class="section-number-4">2.6.4.</span>  <a href="#A-VIP-on-a-party.">A VIP on a party.</a></h4>
 <div class="outline-text-4" id="text-A-VIP-on-a-party.">
 <p>
After his factory in Kaluga had been completed, they organised a reception ribbon-cutting event, which, since the contract was witnessed by the top leaders, received an all-Russian attention.
</p>

 <p>
Cáo DéWàng prepared a speech for this event, in which he was promising Russia a bright future, was describing several Russian problems and ways to solve them and hence make some money.
</p>

 <p>
This speech is so interesting that I will eventually translate it into Russian, I suspect, but I will not copy it here.
</p>

 <p>
After the reception he met with two representatives of the states of Michigan and Ohio, who were invited to the event as a part of the international community, and they invited him to invest in the USA.
</p>
</div>
</div>

 <div id="outline-container-How-a-smart-Jewish-guy-taught-him-to-make-business." class="outline-4">
 <h4 id="How-a-smart-Jewish-guy-taught-him-to-make-business."> <span class="section-number-4">2.6.5.</span>  <a href="#How-a-smart-Jewish-guy-taught-him-to-make-business.">How a smart Jewish guy taught him to make business.</a></h4>
 <div class="outline-text-4" id="text-How-a-smart-Jewish-guy-taught-him-to-make-business.">
 <p>
In 2013 they purchased a factory in Ohio, which had used to belong to General Motors, and was later purchased and refurbished by a Jewish guy.
</p>

 <p>
FúYào bought a half of this factory from him, and he also told them a story on how Rockefeller sold his skyscraper to the United Nations for a single dollar.
</p>

 <p>
Of course, the building had cost much more than one dollar, but Rockefeller also owned most of the buildings nearby, and giving one for free to the United Nations make all of those properties rise in price and make him much more money than the price of a single building.
</p>
</div>
</div>

 <div id="outline-container-America-is-also-in-search-for-an-economic-transformation." class="outline-4">
 <h4 id="America-is-also-in-search-for-an-economic-transformation."> <span class="section-number-4">2.6.6.</span>  <a href="#America-is-also-in-search-for-an-economic-transformation.">America is also in search for an economic transformation.</a></h4>
 <div class="outline-text-4" id="text-America-is-also-in-search-for-an-economic-transformation.">
 <p>
It was 2014, and, since he was planning to invest in the USA, he was considering pros and cons.
</p>

 <p>
This chapter is quite long and full of insights, so I will not re-tell it here, but generally he describes the following pluses and minuses of the US position.
</p>

 <p>
Pluses:
</p>
 <ol class="org-ol"> <li>A good Constitution and a legal system which enforces property rights</li>
 <li>American Dollar is the world’s reserve currency</li>
 <li>A united political culture, which gets to every citizen</li>
 <li>Outposts all over the world, including Hawaii</li>
 <li>Quick access to international politics through United Nations headquarters</li>
 <li>Simple lifestyle of its citizens, signified by Coca-Cola</li>
 <li>Incessant strive for progress, signified by Apple</li>
 <li>Sports culture, which is as important for Americans as food culture is for Chinese</li>
 <li>Wall Street and the concentration of the world capital</li>
</ol> <p>
Minuses:
</p>
 <ol class="org-ol"> <li>Too much influence of the Wall Street, whose interests are wildly different from ordinary Americans</li>
 <li>Decaying manufacturing, caused by the over-reliance of the economy on “services”</li>
 <li>Weird political system which is not bringing in the people who can address issues, in particular, neither party represents the society as a whole and sees the full picture</li>
 <li>The exceptionalist attitude of most Americans, who believe that their achievements are mostly due to their own industriousness and skill, whereas in fact it is due to the fact that they won the WW2 without taking much part in it.</li>
</ol> <p>
This is 2014, and he is still quite positive about investing in the US manufacturing, but is still saying that the US economy has not fully recovered.
</p>
</div>
</div>

 <div id="outline-container-Investing-in-the-USA" class="outline-4">
 <h4 id="Investing-in-the-USA"> <span class="section-number-4">2.6.7.</span>  <a href="#Investing-in-the-USA">Investing in the USA</a></h4>
 <div class="outline-text-4" id="text-Investing-in-the-USA">
 <p>
This chapter is actually not that much about his own investments in the USA, but rather about finding a correct stance to the USA in general.
</p>

 <p>
The story he is telling there is about helping the University of Dayton buy a building in China, where they had a branch, but could not buy a building due to legal difficulties.
At the end of the day, he donated the price of the building to the university, or rather made his company donate those money, and thus established “good friendship” in the USA, and the university thereupon helped him a lot to “merge” into the American society.
</p>

 <p>
His point is “when making a business in China, I tried to work for the Chinese nation, when investing in the USA, I need to learn how to work for the American nation”.
Not sure how truthful he is, but nevertheless.
</p>
</div>
</div>
</div>

 <div id="outline-container-Afterword" class="outline-3">
 <h3 id="Afterword"> <span class="section-number-3">2.7.</span>  <a href="#Afterword">Afterword</a></h3>
 <div class="outline-text-3" id="text-Afterword">
 <p>
While reading the book, I had a feeling, several times, that the book is not written by him, but rather by some hired authors.
But in the afterword he is claiming that this is not the case, that he wrote the book all by himself, even though there had been previous unsuccessful attempt to hire paid biographers.
</p>

 <p>
He is also claiming that the book is written by him on a suggestion by his fellow philanthropists, given to him at the 2015 Hawaii philanthropy summit.
</p>

 <p>
He also points out that China, even though it has become the second world economy during the past 30 years, still has many problems, including a great divide between the poor and the rich, and that he deeply praises the USA for their social system, which provides reconciliation between social classes.
</p>
</div>
</div>
</section> <section id="outline-container-Blurb" class="outline-2"> <h2 id="Blurb"> <span class="section-number-2">3.</span>  <a href="#Blurb">Blurb</a></h2>
 <div class="outline-text-2" id="text-Blurb">
 <ol class="org-ol"> <li>Mail (best way to reach me) :: lockywolf at lockywolf.net</li>
 <li>Telegram ::  <a href="https://t.me/unobvious">https://t.me/unobvious</a></li>
 <li>Zhihu (cn) ::  <a href="https://www.zhihu.com/people/lockywolf">https://www.zhihu.com/people/lockywolf</a></li>
 <li>LiveJournal (ru) ::  <a href="https://dead-doomer.livejournal.com">https://dead-doomer.livejournal.com</a></li>
 <li>Wordpress (en) ::  <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></li>
 <li>Permalink ::  <a href="https://lockywolf.net/2025-12-24_Heart-of-Bodhi-by-Cao-Dewang.org.d/index.html">https://lockywolf.net/2025-12-24_Heart-of-Bodhi-by-Cao-Dewang.org.d/index.html</a></li>
</ol></div>
</section> <section id="outline-container-LocalWords" class="outline-2"> <h2 id="LocalWords"> <span class="section-number-2">4.</span>  <a href="#LocalWords">LocalWords</a></h2>
 <div class="outline-text-2" id="text-LocalWords">
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-12-24_Heart-of-Bodhi-by-Cao-Dewang.org.d/index.html"/>
  <id>https://lockywolf.net/2025-12-24_Heart-of-Bodhi-by-Cao-Dewang.org.d/index.html</id>
  <updated>2026-02-22T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Various thoughts on articles and books read unsystematically.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Various thoughts on articles and books read unsystematically.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Spencer-Greenberg-on-intrinsic-vs.-instrumental-values,-overconfidence,-and-how-to-actually-update-beliefs.">1. Spencer Greenberg on intrinsic vs. instrumental values, overconfidence, and how to actually update beliefs.</a>
 <ul> <li> <a href="#Speakers">1.1. Speakers</a></li>
 <li> <a href="#*UpLift*----the-actual-Eliza!">1.2.  <b>UpLift</b> – the actual Eliza!</a></li>
 <li> <a href="#*MindEase*-...-some-robot-counselling-app.">1.3.  <b>MindEase</b> … some robot counselling app.</a></li>
 <li> <a href="#*Positly.com*,-recruiting-social-science-research-guinea-pigs.">1.4.  <b>Positly.com</b>, recruiting social science research guinea pigs.</a></li>
 <li> <a href="#Creating-*happiness-habits*">1.5. Creating  <b>happiness habits</b></a></li>
 <li> <a href="#*Temptation-bundling*.">1.6.  <b>Temptation bundling</b>.</a></li>
 <li> <a href="#*Happiness-tricks*.">1.7.  <b>Happiness tricks</b>.</a></li>
 <li> <a href="#*Intrinsic-values*.">1.8.  <b>Intrinsic values</b>.</a></li>
 <li> <a href="#Testing-people's-understanding-is-a-cool-trick.">1.9. Testing people's understanding is a cool trick.</a></li>
 <li> <a href="#*Groups-of-values*:-self,-community,-everyone.">1.10.  <b>Groups of values</b>: self, community, everyone.</a></li>
 <li> <a href="#Everyone-has-at-least-one-*universal-intrinsic-value*.">1.11. Everyone has at least one  <b>universal intrinsic value</b>.</a></li>
 <li> <a href="#People-generally-value-*beauty*,-*non-suffering*-oga,-*getting-things*-o">1.12. People generally value  <b>beauty</b>,  <b>non-suffering</b> oga,  <b>getting things</b> o</a>
 <ul> <li> <a href="#33%-value-%22society-does-not-engage-in-immoral-acts%22">1.12.1. 33% value "society does not engage in immoral acts"</a></li>
</ul></li>
 <li> <a href="#*Value-traps*.">1.13.  <b>Value traps</b>.</a></li>
 <li> <a href="#Learning-may-be-a-wrong-thing-to-do!">1.14. Learning may be a wrong thing to do!</a></li>
 <li> <a href="#Doing-something-unproductive-while-feeling-that-you-are-doing-something-productive-is-the-most-non-productive-thing-ever.">1.15. Doing something unproductive while feeling that you are doing something productive is the most non-productive thing ever.</a></li>
 <li> <a href="#*Intuition-pump*">1.16.  <b>Intuition pump</b></a></li>
 <li> <a href="#*Goal-factoring*">1.17.  <b>Goal factoring</b></a></li>
 <li> <a href="#If-you-do-not-find-your-own-intrinsic-value,-then-your-life-is-going-into-the-wrong-direction.">1.18. If you do not find your own intrinsic value, then your life is going into the wrong direction.</a></li>
 <li> <a href="#*Operant-conditioning*----education-through-reward-and-punishment.">1.19.  <b>Operant conditioning</b> – education through reward and punishment.</a></li>
 <li> <a href="#*Double-think*-is-when-you-are-convinced-in-truthfulness-of-some-social-theory-that-contradicts-your-intrinsic-values.">1.20.  <b>Double-think</b> is when you are convinced in truthfulness of some social theory that contradicts your intrinsic values.</a></li>
 <li> <a href="#Another-example-of-*double-think*-happens-when-your-*social-circle*-in-large-numbers-believes-in-a-certain-value-system.">1.21. Another example of  <b>double-think</b> happens when your  <b>social circle</b> in large numbers believes in a certain value system.</a></li>
 <li> <a href="#the-EA-community-is-especially-susceptible-to-is-this,not-drawing-clear-distinctions-between-these-like-my-intrinsic-value,with-what-I-think-my-intrinsic-value-should-be,-versus-what-I-think-the-universal-truth-about-intrinsic-values-are,-and-those-are-different-things-and-you-should-understand-that">1.22. the EA community is especially susceptible to is this,not drawing clear distinctions between these like my intrinsic value,with what I think my intrinsic value should be, versus what I think the universal truth about intrinsic values are, and those are different things and you should understand that</a></li>
 <li> <a href="#If-you-actually-want-to-change-your-intrinsic-values,-you-still-need-to-know-where-you%E2%80%99re-at">1.23. If you actually want to change your intrinsic values, you still need to know where you’re at</a></li>
 <li> <a href="#In-hundreds-of-years-if-humanity-makes-a-new-world,-what-do-we-want-that-world-to-look-like?">1.24. In hundreds of years if humanity makes a new world, what do we want that world to look like?</a></li>
 <li> <a href="#It-is-possible-to-measure-over-confidence-and-under-confidence.">1.25. It is possible to measure over-confidence and under-confidence.</a></li>
 <li> <a href="#People-are-generally-over-confident-at-ambiguous-skills.">1.26. People are generally over-confident at ambiguous skills.</a></li>
 <li> <a href="#Experience-raises-over-confidence.">1.27. Experience raises over-confidence.</a></li>
 <li> <a href="#if-you-don%E2%80%99t-believe-in-objective-moral-truth,-then-really,-what-are-you-doing?">1.28. if you don’t believe in objective moral truth, then really, what are you doing?</a></li>
 <li> <a href="#how-likely-would-I-be-to-see-this-evidence-if-my-hypothesis-is-true,-compared-to-if-it%E2%80%99s-false?">1.29. how likely would I be to see this evidence if my hypothesis is true, compared to if it’s false?</a></li>
 <li> <a href="#So-that-actually-raises-the-bar-pretty-high-because-if-you%E2%80%99re-a-psychologist-trying-to-discover-some-new-thing-about-psychology,-you%E2%80%99re-competing-against-people%E2%80%99s-pretty-well-honed,-intuitive-psychology-detectors-that-they-have-really-%E2%80%A6-Not-only-are-they-pretty-well-honed,-but-they-are-getting-feedback-all-the-time.-I%E2%80%99m-like,-%E2%80%9COh,-I-mis-predicted-my-friend,-and-now-my-friend%E2%80%99s-angry-at-me,%E2%80%9D-and-that-kind-of-thing.">1.30. So that actually raises the bar pretty high because if you’re a psychologist trying to discover some new thing about psychology, you’re competing against people’s pretty well-honed, intuitive psychology detectors that they have really … Not only are they pretty well-honed, but they are getting feedback all the time. I’m like, “Oh, I mis-predicted my friend, and now my friend’s angry at me,” and that kind of thing.</a></li>
</ul></li>
 <li> <a href="#77-skills-of-excellent-time-managers.">2. 77 skills of excellent time managers.</a>
 <ul> <li> <a href="#Nice-morning-wake-up-ritual.">2.1. Nice morning wake-up ritual.</a></li>
 <li> <a href="#Planning-relaxation-time.">2.2. Planning relaxation time.</a></li>
 <li> <a href="#Relax-by-changing-the-area-of-activity-completely.">2.3. Relax by changing the area of activity completely.</a></li>
 <li> <a href="#Solve-one-shitty-task-in-the-morning.">2.4. Solve one shitty task in the morning.</a></li>
 <li> <a href="#Partition-your-tasks.">2.5. Partition your tasks.</a></li>
 <li> <a href="#Tomato-timer.-(Didn't-work-for-me.)">2.6. Tomato timer. (Didn't work for me.)</a></li>
 <li> <a href="#Cut-the-news-flow.-(I-reorganised-it.)">2.7. Cut the news flow. (I reorganised it.)</a></li>
 <li> <a href="#Cut-distractions.">2.8. Cut distractions.</a></li>
</ul></li>
 <li> <a href="#Sasha-Galitsky-Don't-cry,-mama.">3. Sasha Galitsky Don't cry, mama.</a></li>
 <li> <a href="#Bill-Joy-on-Jini-1998-08-01">4. Bill Joy on Jini 1998-08-01</a>
 <ul> <li> <a href="#Epigraph">4.1. Epigraph</a></li>
 <li> <a href="#the-irresistible-dream:-Ever-since-Marshall-McLuhan,-a-central-dream-of-the-digital-culture-has-been-to-create-one-huge-computer.">4.2. The Irresistible Dream: Ever since Marshall McLuhan, a central dream of the digital culture has been to create one huge computer.</a></li>
 <li> <a href="#Any-Demo,-Silicon-Valley,-USA.">4.3. Any Demo, Silicon Valley, USA.</a></li>
 <li> <a href="#a-pair-of-flat-screen-monitors">4.4. a pair of flat-screen monitors</a></li>
 <li> <a href="#Or-add-another-10-gigs-of-storage---no-need-to-call-a-sysadmin,-just-grab-a-drive-off-the-shelf,-and-plug-it-in.">4.5. Or add another 10 gigs of storage - no need to call a sysadmin, just grab a drive off the shelf, and plug it in.</a></li>
 <li> <a href="#Jini-is-older-Android?">4.6. Jini is older Android?</a></li>
 <li> <a href="#Free-as-Android?">4.7. Free as Android?</a></li>
 <li> <a href="#Sun-Aspen-Smallworks">4.8. Sun Aspen Smallworks</a></li>
 <li> <a href="#too-cute-Victorians">4.9. too-cute Victorians</a></li>
 <li> <a href="#What-is-at-Jini's-core?">4.10. What is at Jini's core?</a></li>
</ul></li>
 <li> <a href="#Bill-Joy-Why-the-Future-Doesn't-Need-Us,-2000-04-01">5. Bill Joy Why the Future Doesn't Need Us, 2000-04-01</a>
 <ul> <li> <a href="#Ray-Kurzweil">5.1. Ray Kurzweil</a></li>
 <li> <a href="#Telecosm-Conference">5.2. Telecosm Conference</a></li>
 <li> <a href="#I-was-sitting-with-John-Searle,-a-Berkeley-philosopher-who-studies-consciousness.">5.3. I was sitting with John Searle, a Berkeley philosopher who studies consciousness.</a></li>
 <li> <a href="#Ray-saying-that-the-rate-of-improvement-of-technology-was-going-to-accelerate-and-that-we-were-going-to-become-robots-or-fuse-with-robots-or-something-like-that,-and-John-countering-that-this-couldn't-happen,-because-the-robots-couldn't-be-conscious.">5.4. Ray saying that the rate of improvement of technology was going to accelerate and that we were going to become robots or fuse with robots or something like that, and John countering that this couldn't happen, because the robots couldn't be conscious.</a></li>
 <li> <a href="#our-overuse-of-antibiotics-has-led-to-what-may-be-the-biggest-such-problem-so-far:-the-emergence-of-antibiotic-resistant-and-much-more-dangerous-bacteria.">5.5. Our overuse of antibiotics has led to what may be the biggest such problem so far: the emergence of antibiotic-resistant and much more dangerous bacteria.</a></li>
 <li> <a href="#how-our-main-job-in-the-21st-century-will-be-%22ensuring-continued-cooperation-from-the-robot-industries%22-by-passing-laws-decreeing-that-they-be-%22nice,%22">5.6. how our main job in the 21st century will be "ensuring continued cooperation from the robot industries" by passing laws decreeing that they be "nice,"</a></li>
 <li> <a href="#The-Long-Now-Foundation">5.7. The Long Now Foundation</a></li>
 <li> <a href="#Danny-Hillis">5.8. Danny Hillis</a></li>
 <li> <a href="#when-i-discovered-computers-i-found-something-much-more-interesting:-a-machine-into-which-you-could-put-a-program-that-attempted-to-solve-a-problem,-after-which-the-machine-quickly-checked-the-solution.">5.9. when I discovered computers I found something much more interesting: a machine into which you could put a program that attempted to solve a problem, after which the machine quickly checked the solution.</a></li>
 <li> <a href="#I-believe-we-all-would-agree-that-golden-rice,-with-its-built-in-vitamin-A,-is-probably-a-good-thing">5.10. I believe we all would agree that golden rice, with its built-in vitamin A, is probably a good thing</a></li>
 <li> <a href="#Foresight-Institute">5.11. Foresight Institute</a></li>
 <li> <a href="#Molecular-electronics%E2%80%94the-new-subfield-of-nanotechnology-where-individual-molecules-are-circuit-elements%E2%80%94should-mature-quickly-and-become-enormously-lucrative-within-this-decade,-causing-a-large-incremental-investment-in-all-nanotechnologies.">5.12. Molecular electronics—the new subfield of nanotechnology where individual molecules are circuit elements—should mature quickly and become enormously lucrative within this decade, causing a large incremental investment in all nanotechnologies.</a></li>
 <li> <a href="#%22Plants%22-with-%22leaves%22-no-more-efficient-than-today's-solar-cells-could-out-compete-real-plants,-crowding-the-biosphere-with-an-inedible-foliage.">5.13. "Plants" with "leaves" no more efficient than today's solar cells could out-compete real plants, crowding the biosphere with an inedible foliage.</a></li>
 <li> <a href="#One-would-think-we-might-be-driven-to-such-a-dialogue-(about-dangers-of-tech)-by-our-instinct-for-self-preservation.">5.14. One would think we might be driven to such a dialogue (about dangers of tech) by our instinct for self-preservation.</a></li>
 <li> <a href="#Attali">5.15. Attali</a></li>
 <li> <a href="#Fear">5.16. Fear</a></li>
 <li> <a href="#A-von-Neumann-probe-is-a-spacecraft">5.17. A von Neumann probe is a spacecraft</a></li>
</ul></li>
 <li> <a href="#Lee-KuanYew-%22Singapore-Story%22">6. Lee KuanYew "Singapore Story"</a></li>
 <li> <a href="#Ivan-Rusti%C4%87-Bulletproof-SSL-and-TLS.">7. Ivan Rustić Bulletproof SSL and TLS.</a></li>
 <li> <a href="#J.D.~Vance,-%22Hillbilly-Elegy%22">8. J.D.~Vance, "Hillbilly Elegy"</a></li>
 <li> <a href="#Book-of-Quotations-by-Lixia-Liu.">9. Book of Quotations by Lixia Liu.</a></li>
 <li> <a href="#Peer-Heinlein-and-Peer-Hartleben-%22The-Book-of-IMAP%22">10. Peer Heinlein and Peer Hartleben "The Book of IMAP"</a></li>
 <li> <a href="#Alkonost-de-Moscou-by-Xenia-Romanenko">11. Alkonost de Moscou by Xenia Romanenko</a></li>
 <li> <a href="#Chinese-Folk-Tales">12. Chinese Folk Tales</a></li>
 <li> <a href="#Lee-KuanYew-From-Third-World-to-First-1965-2000">13. Lee KuanYew From Third World to First 1965-2000</a></li>
 <li> <a href="#Stallman,-McGrath,-Smith,-GNU-Make-A-Program-for-Directing-Recompilation">14. Stallman, McGrath, Smith, GNU Make A Program for Directing Recompilation</a></li>
 <li> <a href="#Chassell,-Stallman,-Texinfo-The-GNU-Documentation-Format">15. Chassell, Stallman, Texinfo The GNU Documentation Format</a></li>
 <li> <a href="#Abbott,-Flatland">16. Abbott, Flatland</a></li>
 <li> <a href="#Serial-Experiments-Lain-1998">17. Serial Experiments Lain 1998</a></li>
 <li> <a href="#Napoleon-2023-(Ridley-Scott)">18. Napoleon 2023 (Ridley Scott)    <span class="tag"> <span class="film">film</span></span></a></li>
 <li> <a href="#Why-fish-don't-exist-by-Lulu-Miller">19. Why fish don't exist by Lulu Miller</a></li>
 <li> <a href="#Ralf-Hildebrandt,-Patrick-Koetter,-The-Book-of-Postfix">20. Ralf Hildebrandt, Patrick Koetter, The Book of Postfix</a></li>
 <li> <a href="#Anurag-Mendhekar,-Daniel-P.-Friedman,-The-Little-Learner:-A-Straight-Line-to-Deep-Learning">21. Anurag Mendhekar, Daniel P. Friedman, The Little Learner: A Straight Line to Deep Learning</a></li>
 <li> <a href="#Akira-1998-(Katsuhiro-Otomo)">22. Akira 1998 (Katsuhiro Otomo)</a></li>
 <li> <a href="#My-neighbor-Totoro-1988,-by-Hayao-Miyazaki">23. My neighbor Totoro 1988, by Hayao Miyazaki</a></li>
 <li> <a href="#Swan-Lake-1957-(Zo%C3%AB-Touloubieva)">24. Swan Lake 1957 (Zoë Touloubieva)</a></li>
 <li> <a href="#Barry-Lyndon-1975-(Stanley-Kubrick)">25. Barry Lyndon 1975 (Stanley Kubrick)</a></li>
 <li> <a href="#Avatar-2009-(James-Cameron)">26. Avatar 2009 (James Cameron)</a></li>
 <li> <a href="#The-Name-of-the-Wind-(2007),-by-Patrick-Rothfuss">27. The Name of the Wind (2007), by Patrick Rothfuss</a></li>
 <li> <a href="#Kiki's-Delivery-Service-(1989),-by-Hayao-Miyazaki">28. Kiki's Delivery Service (1989), by Hayao Miyazaki</a></li>
 <li> <a href="#The-Art-of-Metaobject-Protocol-(1991),-by-Daniel-G.-Bobrow,-Gregor-Kiczales,-and-Jim-Des-Rivi%C3%A8res">29. The Art of Metaobject Protocol (1991), by Daniel G. Bobrow, Gregor Kiczales, and Jim Des Rivières</a></li>
 <li> <a href="#Michael-W-Lucas,-SNMP-Mastery">30. Michael W Lucas, SNMP Mastery</a></li>
 <li> <a href="#Gladiator-(2000)-by-Ridley-Scott">31. Gladiator (2000) by Ridley Scott</a></li>
 <li> <a href="#Learning-Linux-Binary-Analysis-by-elfmaster">32. Learning Linux Binary Analysis by elfmaster</a></li>
 <li> <a href="#ghidra-book:-The-Definitive-Guide-by-Chris-Eagle-and-Kara-Nance-(2020-09)">33. Ghidra Book: The Definitive Guide by Chris Eagle and Kara Nance (2020-09)</a></li>
 <li> <a href="#Chongqing-Express-%EF%BC%88%E9%87%8D%E5%BA%86%E6%A3%AE%E6%9E%97%EF%BC%89-by-Wong-Kar-Wai-(1994)">34. Chongqing Express （重庆森林） by Wong Kar-Wai (1994)</a></li>
 <li> <a href="#Fear-and-Loathing-in-Las-Vegas-(1998)-by-Terry-Gilliam">35. Fear and Loathing in Las Vegas (1998) by Terry Gilliam</a></li>
 <li> <a href="#Appendix">36. Appendix</a></li>
</ul></div>
</nav> <p>
Sometimes I read articles and I need to put my thoughts somewhere.
Why not here?
</p>

 <section id="outline-container-Spencer-Greenberg-on-intrinsic-vs.-instrumental-values,-overconfidence,-and-how-to-actually-update-beliefs." class="outline-2"> <h2 id="Spencer-Greenberg-on-intrinsic-vs.-instrumental-values,-overconfidence,-and-how-to-actually-update-beliefs."> <span class="section-number-2">1.</span>  <a href="#Spencer-Greenberg-on-intrinsic-vs.-instrumental-values,-overconfidence,-and-how-to-actually-update-beliefs.">Spencer Greenberg on intrinsic vs. instrumental values, overconfidence, and how to actually update beliefs.</a></h2>
 <div class="outline-text-2" id="text-Spencer-Greenberg-on-intrinsic-vs.-instrumental-values,-overconfidence,-and-how-to-actually-update-beliefs.">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2021-01-24 Sun></span></span>
 <a href="https://80000hours.org/podcast/episodes/spencer-greenberg-bayesian-updating/">https://80000hours.org/podcast/episodes/spencer-greenberg-bayesian-updating/</a>
</p>
</div>

 <div id="outline-container-Speakers" class="outline-3">
 <h3 id="Speakers"> <span class="section-number-3">1.1.</span>  <a href="#Speakers">Speakers</a></h3>
 <div class="outline-text-3" id="text-Speakers">
 <p>
Host: Robert Wiblin
Guest: Spencer Greenberg
</p>

 <p>
PhD in Applied Mathematics, develops software for mental well-being, founder of ClearerThinking and EffectiveAltruism.
</p>
</div>
</div>

 <div id="outline-container-*UpLift*----the-actual-Eliza!" class="outline-3">
 <h3 id="*UpLift*----the-actual-Eliza!"> <span class="section-number-3">1.2.</span>  <a href="#*UpLift*----the-actual-Eliza!"> <b>UpLift</b> – the actual Eliza!</a></h3>
 <div class="outline-text-3" id="text-*UpLift*----the-actual-Eliza!">
 <p>
A robot for psychological counselling.
</p>
</div>
</div>

 <div id="outline-container-*MindEase*-...-some-robot-counselling-app." class="outline-3">
 <h3 id="*MindEase*-...-some-robot-counselling-app."> <span class="section-number-3">1.3.</span>  <a href="#*MindEase*-...-some-robot-counselling-app."> <b>MindEase</b> … some robot counselling app.</a></h3>
 <div class="outline-text-3" id="text-*MindEase*-...-some-robot-counselling-app.">
</div>
</div>

 <div id="outline-container-*Positly.com*,-recruiting-social-science-research-guinea-pigs." class="outline-3">
 <h3 id="*Positly.com*,-recruiting-social-science-research-guinea-pigs."> <span class="section-number-3">1.4.</span>  <a href="#*Positly.com*,-recruiting-social-science-research-guinea-pigs."> <b>Positly.com</b>, recruiting social science research guinea pigs.</a></h3>
 <div class="outline-text-3" id="text-*Positly.com*,-recruiting-social-science-research-guinea-pigs.">
</div>
</div>

 <div id="outline-container-Creating-*happiness-habits*" class="outline-3">
 <h3 id="Creating-*happiness-habits*"> <span class="section-number-3">1.5.</span>  <a href="#Creating-*happiness-habits*">Creating  <b>happiness habits</b></a></h3>
 <div class="outline-text-3" id="text-Creating-*happiness-habits*">
 <p>
That is what my psychologist was telling me about.
</p>
</div>
</div>

 <div id="outline-container-*Temptation-bundling*." class="outline-3">
 <h3 id="*Temptation-bundling*."> <span class="section-number-3">1.6.</span>  <a href="#*Temptation-bundling*."> <b>Temptation bundling</b>.</a></h3>
 <div class="outline-text-3" id="text-*Temptation-bundling*.">
 <p>
That is when you associate something bad with something good.
Spencer is doing workouts while watching TV shows.
</p>
</div>
</div>

 <div id="outline-container-*Happiness-tricks*." class="outline-3">
 <h3 id="*Happiness-tricks*."> <span class="section-number-3">1.7.</span>  <a href="#*Happiness-tricks*."> <b>Happiness tricks</b>.</a></h3>
 <div class="outline-text-3" id="text-*Happiness-tricks*.">
 <p>
Associate certain things with happy thoughts.
</p>

 <p>
"Tea exists in the world, it's such a wonderful thing!"
</p>
</div>
</div>

 <div id="outline-container-*Intrinsic-values*." class="outline-3">
 <h3 id="*Intrinsic-values*."> <span class="section-number-3">1.8.</span>  <a href="#*Intrinsic-values*."> <b>Intrinsic values</b>.</a></h3>
 <div class="outline-text-3" id="text-*Intrinsic-values*.">
 <p>
Are something we value for themselves.
This is opposed to instrumental values, which are mostly valuable for the effect they make.
</p>
</div>
</div>

 <div id="outline-container-Testing-people's-understanding-is-a-cool-trick." class="outline-3">
 <h3 id="Testing-people's-understanding-is-a-cool-trick."> <span class="section-number-3">1.9.</span>  <a href="#Testing-people's-understanding-is-a-cool-trick.">Testing people's understanding is a cool trick.</a></h3>
 <div class="outline-text-3" id="text-Testing-people's-understanding-is-a-cool-trick.">
 <p>
Like that job offer by Biden's administration, that they have put on the White House website.
</p>
</div>
</div>

 <div id="outline-container-*Groups-of-values*:-self,-community,-everyone." class="outline-3">
 <h3 id="*Groups-of-values*:-self,-community,-everyone."> <span class="section-number-3">1.10.</span>  <a href="#*Groups-of-values*:-self,-community,-everyone."> <b>Groups of values</b>: self, community, everyone.</a></h3>
 <div class="outline-text-3" id="text-*Groups-of-values*:-self,-community,-everyone.">
 <p>
That is almost like UNIX security: oga.
</p>
</div>
</div>

 <div id="outline-container-Everyone-has-at-least-one-*universal-intrinsic-value*." class="outline-3">
 <h3 id="Everyone-has-at-least-one-*universal-intrinsic-value*."> <span class="section-number-3">1.11.</span>  <a href="#Everyone-has-at-least-one-*universal-intrinsic-value*.">Everyone has at least one  <b>universal intrinsic value</b>.</a></h3>
 <div class="outline-text-3" id="text-Everyone-has-at-least-one-*universal-intrinsic-value*.">
 <p>
That helps people work together even if they do not know each other.
</p>
</div>
</div>

 <div id="outline-container-People-generally-value-*beauty*,-*non-suffering*-oga,-*getting-things*-o" class="outline-3">
 <h3 id="People-generally-value-*beauty*,-*non-suffering*-oga,-*getting-things*-o"> <span class="section-number-3">1.12.</span>  <a href="#People-generally-value-*beauty*,-*non-suffering*-oga,-*getting-things*-o">People generally value  <b>beauty</b>,  <b>non-suffering</b> oga,  <b>getting things</b> o</a></h3>
 <div class="outline-text-3" id="text-People-generally-value-*beauty*,-*non-suffering*-oga,-*getting-things*-o">
</div>

 <div id="outline-container-33%-value-%22society-does-not-engage-in-immoral-acts%22" class="outline-4">
 <h4 id="33%-value-%22society-does-not-engage-in-immoral-acts%22"> <span class="section-number-4">1.12.1.</span>  <a href="#33%-value-%22society-does-not-engage-in-immoral-acts%22">33% value "society does not engage in immoral acts"</a></h4>
 <div class="outline-text-4" id="text-33%-value-%22society-does-not-engage-in-immoral-acts%22">
 <p>
A huge number of  <b>punishers</b>!
</p>
</div>
</div>
</div>

 <div id="outline-container-*Value-traps*." class="outline-3">
 <h3 id="*Value-traps*."> <span class="section-number-3">1.13.</span>  <a href="#*Value-traps*."> <b>Value traps</b>.</a></h3>
 <div class="outline-text-3" id="text-*Value-traps*.">
 <p>
Pursue the value without actually getting an intrinsic value out of it.
Particular case: you associate something with an intrinsic value because it used to be associated.
Particular case: you had a false belief that it was your value.
Example: not having enough money reduced your autonomy, and you keep searching for money since.
</p>
</div>
</div>

 <div id="outline-container-Learning-may-be-a-wrong-thing-to-do!" class="outline-3">
 <h3 id="Learning-may-be-a-wrong-thing-to-do!"> <span class="section-number-3">1.14.</span>  <a href="#Learning-may-be-a-wrong-thing-to-do!">Learning may be a wrong thing to do!</a></h3>
 <div class="outline-text-3" id="text-Learning-may-be-a-wrong-thing-to-do!">
 <p>
When you are learning bullshit.
</p>
</div>
</div>

 <div id="outline-container-Doing-something-unproductive-while-feeling-that-you-are-doing-something-productive-is-the-most-non-productive-thing-ever." class="outline-3">
 <h3 id="Doing-something-unproductive-while-feeling-that-you-are-doing-something-productive-is-the-most-non-productive-thing-ever."> <span class="section-number-3">1.15.</span>  <a href="#Doing-something-unproductive-while-feeling-that-you-are-doing-something-productive-is-the-most-non-productive-thing-ever.">Doing something unproductive while feeling that you are doing something productive is the most non-productive thing ever.</a></h3>
 <div class="outline-text-3" id="text-Doing-something-unproductive-while-feeling-that-you-are-doing-something-productive-is-the-most-non-productive-thing-ever.">
</div>
</div>

 <div id="outline-container-*Intuition-pump*" class="outline-3">
 <h3 id="*Intuition-pump*"> <span class="section-number-3">1.16.</span>  <a href="#*Intuition-pump*"> <b>Intuition pump</b></a></h3>
 <div class="outline-text-3" id="text-*Intuition-pump*">
 <p>
Diminishing returns on scaling own's emotions for larger scale.
One person suffers: bad, ten people suffer: worse, million people suffer: ah, so bad, but you cannot scale your emotion.
</p>
</div>
</div>


 <div id="outline-container-*Goal-factoring*" class="outline-3">
 <h3 id="*Goal-factoring*"> <span class="section-number-3">1.17.</span>  <a href="#*Goal-factoring*"> <b>Goal factoring</b></a></h3>
 <div class="outline-text-3" id="text-*Goal-factoring*">
 <p>
Algorithm: questioning the goal "why do I want it?".
</p>

 <p>
Because A, B, C.
</p>

 <p>
Is there another plan that brings you A, B, C?
</p>

 <p>
This is what makes you find those A, B, C, that are leaves in your value system.
</p>
</div>
</div>

 <div id="outline-container-If-you-do-not-find-your-own-intrinsic-value,-then-your-life-is-going-into-the-wrong-direction." class="outline-3">
 <h3 id="If-you-do-not-find-your-own-intrinsic-value,-then-your-life-is-going-into-the-wrong-direction."> <span class="section-number-3">1.18.</span>  <a href="#If-you-do-not-find-your-own-intrinsic-value,-then-your-life-is-going-into-the-wrong-direction.">If you do not find your own intrinsic value, then your life is going into the wrong direction.</a></h3>
 <div class="outline-text-3" id="text-If-you-do-not-find-your-own-intrinsic-value,-then-your-life-is-going-into-the-wrong-direction.">
</div>
</div>

 <div id="outline-container-*Operant-conditioning*----education-through-reward-and-punishment." class="outline-3">
 <h3 id="*Operant-conditioning*----education-through-reward-and-punishment."> <span class="section-number-3">1.19.</span>  <a href="#*Operant-conditioning*----education-through-reward-and-punishment."> <b>Operant conditioning</b> – education through reward and punishment.</a></h3>
 <div class="outline-text-3" id="text-*Operant-conditioning*----education-through-reward-and-punishment.">
 <p>
It may mislead you from your true intrinsic values.
</p>
</div>
</div>

 <div id="outline-container-*Double-think*-is-when-you-are-convinced-in-truthfulness-of-some-social-theory-that-contradicts-your-intrinsic-values." class="outline-3">
 <h3 id="*Double-think*-is-when-you-are-convinced-in-truthfulness-of-some-social-theory-that-contradicts-your-intrinsic-values."> <span class="section-number-3">1.20.</span>  <a href="#*Double-think*-is-when-you-are-convinced-in-truthfulness-of-some-social-theory-that-contradicts-your-intrinsic-values."> <b>Double-think</b> is when you are convinced in truthfulness of some social theory that contradicts your intrinsic values.</a></h3>
 <div class="outline-text-3" id="text-*Double-think*-is-when-you-are-convinced-in-truthfulness-of-some-social-theory-that-contradicts-your-intrinsic-values.">
</div>
</div>

 <div id="outline-container-Another-example-of-*double-think*-happens-when-your-*social-circle*-in-large-numbers-believes-in-a-certain-value-system." class="outline-3">
 <h3 id="Another-example-of-*double-think*-happens-when-your-*social-circle*-in-large-numbers-believes-in-a-certain-value-system."> <span class="section-number-3">1.21.</span>  <a href="#Another-example-of-*double-think*-happens-when-your-*social-circle*-in-large-numbers-believes-in-a-certain-value-system.">Another example of  <b>double-think</b> happens when your  <b>social circle</b> in large numbers believes in a certain value system.</a></h3>
 <div class="outline-text-3" id="text-Another-example-of-*double-think*-happens-when-your-*social-circle*-in-large-numbers-believes-in-a-certain-value-system.">
 <p>
This often makes you reinterpret your intrinsic values in terms of those of your circle.
And this is often weird.
</p>
</div>
</div>

 <div id="outline-container-the-EA-community-is-especially-susceptible-to-is-this,not-drawing-clear-distinctions-between-these-like-my-intrinsic-value,with-what-I-think-my-intrinsic-value-should-be,-versus-what-I-think-the-universal-truth-about-intrinsic-values-are,-and-those-are-different-things-and-you-should-understand-that" class="outline-3">
 <h3 id="the-EA-community-is-especially-susceptible-to-is-this,not-drawing-clear-distinctions-between-these-like-my-intrinsic-value,with-what-I-think-my-intrinsic-value-should-be,-versus-what-I-think-the-universal-truth-about-intrinsic-values-are,-and-those-are-different-things-and-you-should-understand-that"> <span class="section-number-3">1.22.</span>  <a href="#the-EA-community-is-especially-susceptible-to-is-this,not-drawing-clear-distinctions-between-these-like-my-intrinsic-value,with-what-I-think-my-intrinsic-value-should-be,-versus-what-I-think-the-universal-truth-about-intrinsic-values-are,-and-those-are-different-things-and-you-should-understand-that">the EA community is especially susceptible to is this,not drawing clear distinctions between these like my intrinsic value,with what I think my intrinsic value should be, versus what I think the universal truth about intrinsic values are, and those are different things and you should understand that</a></h3>
 <div class="outline-text-3" id="text-the-EA-community-is-especially-susceptible-to-is-this,not-drawing-clear-distinctions-between-these-like-my-intrinsic-value,with-what-I-think-my-intrinsic-value-should-be,-versus-what-I-think-the-universal-truth-about-intrinsic-values-are,-and-those-are-different-things-and-you-should-understand-that">
</div>
</div>

 <div id="outline-container-If-you-actually-want-to-change-your-intrinsic-values,-you-still-need-to-know-where-you%E2%80%99re-at" class="outline-3">
 <h3 id="If-you-actually-want-to-change-your-intrinsic-values,-you-still-need-to-know-where-you%E2%80%99re-at"> <span class="section-number-3">1.23.</span>  <a href="#If-you-actually-want-to-change-your-intrinsic-values,-you-still-need-to-know-where-you%E2%80%99re-at">If you actually want to change your intrinsic values, you still need to know where you’re at</a></h3>
 <div class="outline-text-3" id="text-If-you-actually-want-to-change-your-intrinsic-values,-you-still-need-to-know-where-you%E2%80%99re-at">
</div>
</div>

 <div id="outline-container-In-hundreds-of-years-if-humanity-makes-a-new-world,-what-do-we-want-that-world-to-look-like?" class="outline-3">
 <h3 id="In-hundreds-of-years-if-humanity-makes-a-new-world,-what-do-we-want-that-world-to-look-like?"> <span class="section-number-3">1.24.</span>  <a href="#In-hundreds-of-years-if-humanity-makes-a-new-world,-what-do-we-want-that-world-to-look-like?">In hundreds of years if humanity makes a new world, what do we want that world to look like?</a></h3>
 <div class="outline-text-3" id="text-In-hundreds-of-years-if-humanity-makes-a-new-world,-what-do-we-want-that-world-to-look-like?">
</div>
</div>

 <div id="outline-container-It-is-possible-to-measure-over-confidence-and-under-confidence." class="outline-3">
 <h3 id="It-is-possible-to-measure-over-confidence-and-under-confidence."> <span class="section-number-3">1.25.</span>  <a href="#It-is-possible-to-measure-over-confidence-and-under-confidence.">It is possible to measure over-confidence and under-confidence.</a></h3>
 <div class="outline-text-3" id="text-It-is-possible-to-measure-over-confidence-and-under-confidence.">
</div>
</div>

 <div id="outline-container-People-are-generally-over-confident-at-ambiguous-skills." class="outline-3">
 <h3 id="People-are-generally-over-confident-at-ambiguous-skills."> <span class="section-number-3">1.26.</span>  <a href="#People-are-generally-over-confident-at-ambiguous-skills.">People are generally over-confident at ambiguous skills.</a></h3>
 <div class="outline-text-3" id="text-People-are-generally-over-confident-at-ambiguous-skills.">
</div>
</div>

 <div id="outline-container-Experience-raises-over-confidence." class="outline-3">
 <h3 id="Experience-raises-over-confidence."> <span class="section-number-3">1.27.</span>  <a href="#Experience-raises-over-confidence.">Experience raises over-confidence.</a></h3>
 <div class="outline-text-3" id="text-Experience-raises-over-confidence.">
</div>
</div>

 <div id="outline-container-if-you-don%E2%80%99t-believe-in-objective-moral-truth,-then-really,-what-are-you-doing?" class="outline-3">
 <h3 id="if-you-don%E2%80%99t-believe-in-objective-moral-truth,-then-really,-what-are-you-doing?"> <span class="section-number-3">1.28.</span>  <a href="#if-you-don%E2%80%99t-believe-in-objective-moral-truth,-then-really,-what-are-you-doing?">if you don’t believe in objective moral truth, then really, what are you doing?</a></h3>
 <div class="outline-text-3" id="text-if-you-don%E2%80%99t-believe-in-objective-moral-truth,-then-really,-what-are-you-doing?">
</div>
</div>

 <div id="outline-container-how-likely-would-I-be-to-see-this-evidence-if-my-hypothesis-is-true,-compared-to-if-it%E2%80%99s-false?" class="outline-3">
 <h3 id="how-likely-would-I-be-to-see-this-evidence-if-my-hypothesis-is-true,-compared-to-if-it%E2%80%99s-false?"> <span class="section-number-3">1.29.</span>  <a href="#how-likely-would-I-be-to-see-this-evidence-if-my-hypothesis-is-true,-compared-to-if-it%E2%80%99s-false?">how likely would I be to see this evidence if my hypothesis is true, compared to if it’s false?</a></h3>
 <div class="outline-text-3" id="text-how-likely-would-I-be-to-see-this-evidence-if-my-hypothesis-is-true,-compared-to-if-it%E2%80%99s-false?">
</div>
</div>

 <div id="outline-container-So-that-actually-raises-the-bar-pretty-high-because-if-you%E2%80%99re-a-psychologist-trying-to-discover-some-new-thing-about-psychology,-you%E2%80%99re-competing-against-people%E2%80%99s-pretty-well-honed,-intuitive-psychology-detectors-that-they-have-really-%E2%80%A6-Not-only-are-they-pretty-well-honed,-but-they-are-getting-feedback-all-the-time.-I%E2%80%99m-like,-%E2%80%9COh,-I-mis-predicted-my-friend,-and-now-my-friend%E2%80%99s-angry-at-me,%E2%80%9D-and-that-kind-of-thing." class="outline-3">
 <h3 id="So-that-actually-raises-the-bar-pretty-high-because-if-you%E2%80%99re-a-psychologist-trying-to-discover-some-new-thing-about-psychology,-you%E2%80%99re-competing-against-people%E2%80%99s-pretty-well-honed,-intuitive-psychology-detectors-that-they-have-really-%E2%80%A6-Not-only-are-they-pretty-well-honed,-but-they-are-getting-feedback-all-the-time.-I%E2%80%99m-like,-%E2%80%9COh,-I-mis-predicted-my-friend,-and-now-my-friend%E2%80%99s-angry-at-me,%E2%80%9D-and-that-kind-of-thing."> <span class="section-number-3">1.30.</span>  <a href="#So-that-actually-raises-the-bar-pretty-high-because-if-you%E2%80%99re-a-psychologist-trying-to-discover-some-new-thing-about-psychology,-you%E2%80%99re-competing-against-people%E2%80%99s-pretty-well-honed,-intuitive-psychology-detectors-that-they-have-really-%E2%80%A6-Not-only-are-they-pretty-well-honed,-but-they-are-getting-feedback-all-the-time.-I%E2%80%99m-like,-%E2%80%9COh,-I-mis-predicted-my-friend,-and-now-my-friend%E2%80%99s-angry-at-me,%E2%80%9D-and-that-kind-of-thing.">So that actually raises the bar pretty high because if you’re a psychologist trying to discover some new thing about psychology, you’re competing against people’s pretty well-honed, intuitive psychology detectors that they have really … Not only are they pretty well-honed, but they are getting feedback all the time. I’m like, “Oh, I mis-predicted my friend, and now my friend’s angry at me,” and that kind of thing.</a></h3>
 <div class="outline-text-3" id="text-So-that-actually-raises-the-bar-pretty-high-because-if-you%E2%80%99re-a-psychologist-trying-to-discover-some-new-thing-about-psychology,-you%E2%80%99re-competing-against-people%E2%80%99s-pretty-well-honed,-intuitive-psychology-detectors-that-they-have-really-%E2%80%A6-Not-only-are-they-pretty-well-honed,-but-they-are-getting-feedback-all-the-time.-I%E2%80%99m-like,-%E2%80%9COh,-I-mis-predicted-my-friend,-and-now-my-friend%E2%80%99s-angry-at-me,%E2%80%9D-and-that-kind-of-thing.">
</div>
</div>
</section> <section id="outline-container-77-skills-of-excellent-time-managers." class="outline-2"> <h2 id="77-skills-of-excellent-time-managers."> <span class="section-number-2">2.</span>  <a href="#77-skills-of-excellent-time-managers.">77 skills of excellent time managers.</a></h2>
 <div class="outline-text-2" id="text-77-skills-of-excellent-time-managers.">
</div>

 <div id="outline-container-Nice-morning-wake-up-ritual." class="outline-3">
 <h3 id="Nice-morning-wake-up-ritual."> <span class="section-number-3">2.1.</span>  <a href="#Nice-morning-wake-up-ritual.">Nice morning wake-up ritual.</a></h3>
 <div class="outline-text-3" id="text-Nice-morning-wake-up-ritual.">
</div>
</div>

 <div id="outline-container-Planning-relaxation-time." class="outline-3">
 <h3 id="Planning-relaxation-time."> <span class="section-number-3">2.2.</span>  <a href="#Planning-relaxation-time.">Planning relaxation time.</a></h3>
 <div class="outline-text-3" id="text-Planning-relaxation-time.">
</div>
</div>

 <div id="outline-container-Relax-by-changing-the-area-of-activity-completely." class="outline-3">
 <h3 id="Relax-by-changing-the-area-of-activity-completely."> <span class="section-number-3">2.3.</span>  <a href="#Relax-by-changing-the-area-of-activity-completely.">Relax by changing the area of activity completely.</a></h3>
 <div class="outline-text-3" id="text-Relax-by-changing-the-area-of-activity-completely.">
</div>
</div>

 <div id="outline-container-Solve-one-shitty-task-in-the-morning." class="outline-3">
 <h3 id="Solve-one-shitty-task-in-the-morning."> <span class="section-number-3">2.4.</span>  <a href="#Solve-one-shitty-task-in-the-morning.">Solve one shitty task in the morning.</a></h3>
 <div class="outline-text-3" id="text-Solve-one-shitty-task-in-the-morning.">
</div>
</div>

 <div id="outline-container-Partition-your-tasks." class="outline-3">
 <h3 id="Partition-your-tasks."> <span class="section-number-3">2.5.</span>  <a href="#Partition-your-tasks.">Partition your tasks.</a></h3>
 <div class="outline-text-3" id="text-Partition-your-tasks.">
</div>
</div>

 <div id="outline-container-Tomato-timer.-(Didn't-work-for-me.)" class="outline-3">
 <h3 id="Tomato-timer.-(Didn't-work-for-me.)"> <span class="section-number-3">2.6.</span>  <a href="#Tomato-timer.-(Didn't-work-for-me.)">Tomato timer. (Didn't work for me.)</a></h3>
 <div class="outline-text-3" id="text-Tomato-timer.-(Didn't-work-for-me.)">
</div>
</div>

 <div id="outline-container-Cut-the-news-flow.-(I-reorganised-it.)" class="outline-3">
 <h3 id="Cut-the-news-flow.-(I-reorganised-it.)"> <span class="section-number-3">2.7.</span>  <a href="#Cut-the-news-flow.-(I-reorganised-it.)">Cut the news flow. (I reorganised it.)</a></h3>
 <div class="outline-text-3" id="text-Cut-the-news-flow.-(I-reorganised-it.)">
</div>
</div>

 <div id="outline-container-Cut-distractions." class="outline-3">
 <h3 id="Cut-distractions."> <span class="section-number-3">2.8.</span>  <a href="#Cut-distractions.">Cut distractions.</a></h3>
 <div class="outline-text-3" id="text-Cut-distractions.">
</div>
</div>
</section> <section id="outline-container-Sasha-Galitsky-Don't-cry,-mama." class="outline-2"> <h2 id="Sasha-Galitsky-Don't-cry,-mama."> <span class="section-number-2">3.</span>  <a href="#Sasha-Galitsky-Don't-cry,-mama.">Sasha Galitsky Don't cry, mama.</a></h2>
 <div class="outline-text-2" id="text-Sasha-Galitsky-Don't-cry,-mama.">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2021-03-22 Mon> </span></span> 
</p>

 <p>
It's a bit hard of a book, although it does leave a bit of hope.
</p>

 <p>
What I remember on the next day?
</p>

 <p>
It's a very short book, actually.
You can read it in an hour or two.
</p>

 <p>
What is promising is that if you want to keep being young, you can do that for quite a long time.
</p>

 <p>
Apart from that, most of the ideas I have already seen.
</p>

 <p>
Maybe one of the thoughts that I should still keep in mind is that life is still as cruel as before.
</p>
</div>
</section> <section id="outline-container-Bill-Joy-on-Jini-1998-08-01" class="outline-2"> <h2 id="Bill-Joy-on-Jini-1998-08-01"> <span class="section-number-2">4.</span>  <a href="#Bill-Joy-on-Jini-1998-08-01">Bill Joy on Jini 1998-08-01</a></h2>
 <div class="outline-text-2" id="text-Bill-Joy-on-Jini-1998-08-01">
 <p>
 <a href="https://www.wired.com/1998/08/jini/">https://www.wired.com/1998/08/jini/</a>
</p>

 <table> <colgroup> <col class="org-right"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-right">#</th>
 <th scope="col" class="org-left">Word</th>
 <th scope="col" class="org-left">Meaning</th>
</tr></thead> <tbody> <tr> <td class="org-right">1</td>
 <td class="org-left">ruefully</td>
 <td class="org-left">sorrowfully, regretfully</td>
</tr> <tr> <td class="org-right">2</td>
 <td class="org-left">riotously</td>
 <td class="org-left">wildly, aggressively</td>
</tr> <tr> <td class="org-right">3</td>
 <td class="org-left">logjam</td>
 <td class="org-left">a jam of logs at a river</td>
</tr> <tr> <td class="org-right">4</td>
 <td class="org-left">cobbled</td>
 <td class="org-left">покрытый брусчаткой</td>
</tr> <tr> <td class="org-right">5</td>
 <td class="org-left">hurtling</td>
 <td class="org-left">rushing violently</td>
</tr> <tr> <td class="org-right">6</td>
 <td class="org-left">hole up</td>
 <td class="org-left">hide out</td>
</tr> <tr> <td class="org-right">7</td>
 <td class="org-left">skunkworks</td>
 <td class="org-left">an experimental lab</td>
</tr> <tr> <td class="org-right">8</td>
 <td class="org-left">slipstream</td>
 <td class="org-left">underwater current from an engine</td>
</tr> <tr> <td class="org-right">9</td>
 <td class="org-left">unfurl</td>
 <td class="org-left">unroll, unfold</td>
</tr></tbody></table></div>


 <div id="outline-container-Epigraph" class="outline-3">
 <h3 id="Epigraph"> <span class="section-number-3">4.1.</span>  <a href="#Epigraph">Epigraph</a></h3>
 <div class="outline-text-3" id="text-Epigraph">
 <p>
 <code>The Net made it possible. Java made it doable. Jini might just make it happen. An on-the-fly, plug-and-work, global nervous system that connects his cam to her RAM to your PDA.</code>
</p>

 <p>
Interesting, the first PDA I have seen was in 2003, AFAIR.
The article is from 1998, and they already have them.
And they are already thinking about the "Cloud".
</p>
</div>
</div>

 <div id="outline-container-the-irresistible-dream:-Ever-since-Marshall-McLuhan,-a-central-dream-of-the-digital-culture-has-been-to-create-one-huge-computer." class="outline-3">
 <h3 id="the-irresistible-dream:-Ever-since-Marshall-McLuhan,-a-central-dream-of-the-digital-culture-has-been-to-create-one-huge-computer."> <span class="section-number-3">4.2.</span>  <a href="#the-irresistible-dream:-Ever-since-Marshall-McLuhan,-a-central-dream-of-the-digital-culture-has-been-to-create-one-huge-computer.">The Irresistible Dream: Ever since Marshall McLuhan, a central dream of the digital culture has been to create one huge computer.</a></h3>
 <div class="outline-text-3" id="text-the-irresistible-dream:-Ever-since-Marshall-McLuhan,-a-central-dream-of-the-digital-culture-has-been-to-create-one-huge-computer.">
 <p>
I have never thought that McLuhan was behind all that cyberpunk idea.
I need to check on him.
</p>
</div>
</div>

 <div id="outline-container-Any-Demo,-Silicon-Valley,-USA." class="outline-3">
 <h3 id="Any-Demo,-Silicon-Valley,-USA."> <span class="section-number-3">4.3.</span>  <a href="#Any-Demo,-Silicon-Valley,-USA.">Any Demo, Silicon Valley, USA.</a></h3>
 <div class="outline-text-3" id="text-Any-Demo,-Silicon-Valley,-USA.">
 <p>
1998, and they already had that "Silicon Valley Demo" idea.
</p>
</div>
</div>

 <div id="outline-container-a-pair-of-flat-screen-monitors" class="outline-3">
 <h3 id="a-pair-of-flat-screen-monitors"> <span class="section-number-3">4.4.</span>  <a href="#a-pair-of-flat-screen-monitors">a pair of flat-screen monitors</a></h3>
 <div class="outline-text-3" id="text-a-pair-of-flat-screen-monitors">
 <p>
They already had flat-screen monitors in 1998!
</p>
</div>
</div>

 <div id="outline-container-Or-add-another-10-gigs-of-storage---no-need-to-call-a-sysadmin,-just-grab-a-drive-off-the-shelf,-and-plug-it-in." class="outline-3">
 <h3 id="Or-add-another-10-gigs-of-storage---no-need-to-call-a-sysadmin,-just-grab-a-drive-off-the-shelf,-and-plug-it-in."> <span class="section-number-3">4.5.</span>  <a href="#Or-add-another-10-gigs-of-storage---no-need-to-call-a-sysadmin,-just-grab-a-drive-off-the-shelf,-and-plug-it-in.">Or add another 10 gigs of storage - no need to call a sysadmin, just grab a drive off the shelf, and plug it in.</a></h3>
 <div class="outline-text-3" id="text-Or-add-another-10-gigs-of-storage---no-need-to-call-a-sysadmin,-just-grab-a-drive-off-the-shelf,-and-plug-it-in.">
 <p>
Storage is philosophically important in computing.
Laymen do not understand, or understand very roughly, the idea of storage, and why a picture weights more than text.
</p>

 <p>
So, their assumption about the "ease" of something is already biased.
What we have come to now, in 2021, is to try and make people forget about "storage" altogether.
People do not understand how much "Storage", say, Telegram eats every minute.
</p>
</div>
</div>

 <div id="outline-container-Jini-is-older-Android?" class="outline-3">
 <h3 id="Jini-is-older-Android?"> <span class="section-number-3">4.6.</span>  <a href="#Jini-is-older-Android?">Jini is older Android?</a></h3>
 <div class="outline-text-3" id="text-Jini-is-older-Android?">
 <p>
 <code>What Java aims to do for software - be a lingua franca - Jini hopes to do for the machines that run it: provide an overarching, universal platform - a distributed operating system, in effect, on which devices of every description can meet. "Jini is the next chapter in the Java story," reads another project mantra.</code>
</p>
</div>
</div>

 <div id="outline-container-Free-as-Android?" class="outline-3">
 <h3 id="Free-as-Android?"> <span class="section-number-3">4.7.</span>  <a href="#Free-as-Android?">Free as Android?</a></h3>
 <div class="outline-text-3" id="text-Free-as-Android?">
 <p>
 <code>The release name is still being debated, but the marketing plan is not: It will reprise the same strategy that fueled the explosive take-offs of both the World Wide Web and Java - essentially, give it away. "There's one thing we've all learned from watching Java and the Net," says Mike Clary, Joy's key colleague in Aspen and Jini's overall project manager. "This can only be a ubiquity play."</code>
</p>
</div>
</div>

 <div id="outline-container-Sun-Aspen-Smallworks" class="outline-3">
 <h3 id="Sun-Aspen-Smallworks"> <span class="section-number-3">4.8.</span>  <a href="#Sun-Aspen-Smallworks">Sun Aspen Smallworks</a></h3>
 <div class="outline-text-3" id="text-Sun-Aspen-Smallworks">
 <p>
Aspen is a small city in Colorado.
It is 1800 km away from Silicon Valley.
</p>

 <p>
Doesn't make sense.
Why would you go to a town of 7000 people?
</p>
</div>
</div>

 <div id="outline-container-too-cute-Victorians" class="outline-3">
 <h3 id="too-cute-Victorians"> <span class="section-number-3">4.9.</span>  <a href="#too-cute-Victorians">too-cute Victorians</a></h3>
 <div class="outline-text-3" id="text-too-cute-Victorians">
 <p>
They probably mean something like a Victorian mansion.
</p>

 <p>
 <a href="https://en.wikipedia.org/wiki/Victorian_house">https://en.wikipedia.org/wiki/Victorian_house</a>
</p>
</div>
</div>


 <div id="outline-container-What-is-at-Jini's-core?" class="outline-3">
 <h3 id="What-is-at-Jini's-core?"> <span class="section-number-3">4.10.</span>  <a href="#What-is-at-Jini's-core?">What is at Jini's core?</a></h3>
 <div class="outline-text-3" id="text-What-is-at-Jini's-core?">
 <p>
 <code>Jini is a set of new software layers that together create an overarching "federation" of computer devices and services.
On top is a directory service, based on a "lookup" mechanism that allows different Jini-enabled devices and applications to register and be seen on the network. The next-level service is persistence, provided by JavaSpaces technology, which stores objects so that other users or applications can retrieve them. Below that, a set of protocols based on Java's Remote Method Invocation enables objects to communicate and pass each other code. And finally a boot, join, and discover protocol allows Jini-compatible devices, users, and applications to announce themselves to the network and register in a directory.</code>
</p>

 <p>
Isn't that kinda "serverless"?
</p>
</div>
</div>
</section> <section id="outline-container-Bill-Joy-Why-the-Future-Doesn't-Need-Us,-2000-04-01" class="outline-2"> <h2 id="Bill-Joy-Why-the-Future-Doesn't-Need-Us,-2000-04-01"> <span class="section-number-2">5.</span>  <a href="#Bill-Joy-Why-the-Future-Doesn't-Need-Us,-2000-04-01">Bill Joy Why the Future Doesn't Need Us, 2000-04-01</a></h2>
 <div class="outline-text-2" id="text-Bill-Joy-Why-the-Future-Doesn't-Need-Us,-2000-04-01">
 <p>
<2021>
</p>

 <p>
 <a href="https://www.wired.com/2000/04/joy-2/">https://www.wired.com/2000/04/joy-2/</a>
</p>

 <table> <colgroup> <col class="org-right"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-right">#</th>
 <th scope="col" class="org-left">word</th>
 <th scope="col" class="org-left">meaning</th>
</tr></thead> <tbody> <tr> <td class="org-right">1</td>
 <td class="org-left">jaded</td>
 <td class="org-left">state of disillusionment and sadness</td>
</tr> <tr> <td class="org-right">2</td>
 <td class="org-left">isthmus</td>
 <td class="org-left">a narrow strip of land between 2 landmasses</td>
</tr> <tr> <td class="org-right">3</td>
 <td class="org-left">concomitantly</td>
 <td class="org-left">simultaneously</td>
</tr> <tr> <td class="org-right">4</td>
 <td class="org-left">placidly</td>
 <td class="org-left">calmly</td>
</tr> <tr> <td class="org-right">5</td>
 <td class="org-left">precipice</td>
 <td class="org-left">a very tall cliff (metaphorically)</td>
</tr> <tr> <td class="org-right">6</td>
 <td class="org-left">bode well</td>
 <td class="org-left">To seem indicative of a favorable outcome</td>
</tr> <tr> <td class="org-right">7</td>
 <td class="org-left">trot out</td>
 <td class="org-left">Bring out and show for inspection and admiration</td>
</tr> <tr> <td class="org-right"> </td>
 <td class="org-left"> </td>
 <td class="org-left"> </td>
</tr></tbody></table></div>


 <div id="outline-container-Ray-Kurzweil" class="outline-3">
 <h3 id="Ray-Kurzweil"> <span class="section-number-3">5.1.</span>  <a href="#Ray-Kurzweil">Ray Kurzweil</a></h3>
 <div class="outline-text-3" id="text-Ray-Kurzweil">
 <p>
That guy that wrote about the "technological singularity".
</p>
</div>
</div>

 <div id="outline-container-Telecosm-Conference" class="outline-3">
 <h3 id="Telecosm-Conference"> <span class="section-number-3">5.2.</span>  <a href="#Telecosm-Conference">Telecosm Conference</a></h3>
 <div class="outline-text-3" id="text-Telecosm-Conference">
 <p>
The last one seems to have been in 2009.  <a href="http://www.telecosmconference.com/">http://www.telecosmconference.com/</a>
George Gilder and Steve Forbes were the main drivers.
</p>

 <p>
Gilder is that guy:  <a href="https://threefounderspublishing.com/our-editors">https://threefounderspublishing.com/our-editors</a>
</p>

 <p>
Forbes is the Forbes Magazine founder and Editor-In-Chief.
(Yes, that very Forbes.)
</p>

 <p>
Those venture capitalists seemed to be very enthusiastic about "Technological Singularity" or some of that kind of stuff.
</p>
</div>
</div>

 <div id="outline-container-I-was-sitting-with-John-Searle,-a-Berkeley-philosopher-who-studies-consciousness." class="outline-3">
 <h3 id="I-was-sitting-with-John-Searle,-a-Berkeley-philosopher-who-studies-consciousness."> <span class="section-number-3">5.3.</span>  <a href="#I-was-sitting-with-John-Searle,-a-Berkeley-philosopher-who-studies-consciousness.">I was sitting with John Searle, a Berkeley philosopher who studies consciousness.</a></h3>
 <div class="outline-text-3" id="text-I-was-sitting-with-John-Searle,-a-Berkeley-philosopher-who-studies-consciousness.">
 <p>
Seriously?
Searle was invited to that kind of conference?
Unbelievable.
</p>
</div>
</div>

 <div id="outline-container-Ray-saying-that-the-rate-of-improvement-of-technology-was-going-to-accelerate-and-that-we-were-going-to-become-robots-or-fuse-with-robots-or-something-like-that,-and-John-countering-that-this-couldn't-happen,-because-the-robots-couldn't-be-conscious." class="outline-3">
 <h3 id="Ray-saying-that-the-rate-of-improvement-of-technology-was-going-to-accelerate-and-that-we-were-going-to-become-robots-or-fuse-with-robots-or-something-like-that,-and-John-countering-that-this-couldn't-happen,-because-the-robots-couldn't-be-conscious."> <span class="section-number-3">5.4.</span>  <a href="#Ray-saying-that-the-rate-of-improvement-of-technology-was-going-to-accelerate-and-that-we-were-going-to-become-robots-or-fuse-with-robots-or-something-like-that,-and-John-countering-that-this-couldn't-happen,-because-the-robots-couldn't-be-conscious.">Ray saying that the rate of improvement of technology was going to accelerate and that we were going to become robots or fuse with robots or something like that, and John countering that this couldn't happen, because the robots couldn't be conscious.</a></h3>
 <div class="outline-text-3" id="text-Ray-saying-that-the-rate-of-improvement-of-technology-was-going-to-accelerate-and-that-we-were-going-to-become-robots-or-fuse-with-robots-or-something-like-that,-and-John-countering-that-this-couldn't-happen,-because-the-robots-couldn't-be-conscious.">
 <p>
Effectively happening now.
Generally, people are very eagerly rejecting consciousness, offloading it to the machines wherever possible.
</p>
</div>
</div>

 <div id="outline-container-our-overuse-of-antibiotics-has-led-to-what-may-be-the-biggest-such-problem-so-far:-the-emergence-of-antibiotic-resistant-and-much-more-dangerous-bacteria." class="outline-3">
 <h3 id="our-overuse-of-antibiotics-has-led-to-what-may-be-the-biggest-such-problem-so-far:-the-emergence-of-antibiotic-resistant-and-much-more-dangerous-bacteria."> <span class="section-number-3">5.5.</span>  <a href="#our-overuse-of-antibiotics-has-led-to-what-may-be-the-biggest-such-problem-so-far:-the-emergence-of-antibiotic-resistant-and-much-more-dangerous-bacteria.">Our overuse of antibiotics has led to what may be the biggest such problem so far: the emergence of antibiotic-resistant and much more dangerous bacteria.</a></h3>
 <div class="outline-text-3" id="text-our-overuse-of-antibiotics-has-led-to-what-may-be-the-biggest-such-problem-so-far:-the-emergence-of-antibiotic-resistant-and-much-more-dangerous-bacteria.">
 <p>
So, the scarecrow of "antibiotic-resistant bacteria" was already present in 2000.
So, 20 years have passed, where are those nitrocharged bacteria that you are warning about, Dr Gelfand?
</p>
</div>
</div>

 <div id="outline-container-how-our-main-job-in-the-21st-century-will-be-%22ensuring-continued-cooperation-from-the-robot-industries%22-by-passing-laws-decreeing-that-they-be-%22nice,%22" class="outline-3">
 <h3 id="how-our-main-job-in-the-21st-century-will-be-%22ensuring-continued-cooperation-from-the-robot-industries%22-by-passing-laws-decreeing-that-they-be-%22nice,%22"> <span class="section-number-3">5.6.</span>  <a href="#how-our-main-job-in-the-21st-century-will-be-%22ensuring-continued-cooperation-from-the-robot-industries%22-by-passing-laws-decreeing-that-they-be-%22nice,%22">how our main job in the 21st century will be "ensuring continued cooperation from the robot industries" by passing laws decreeing that they be "nice,"</a></h3>
 <div class="outline-text-3" id="text-how-our-main-job-in-the-21st-century-will-be-%22ensuring-continued-cooperation-from-the-robot-industries%22-by-passing-laws-decreeing-that-they-be-%22nice,%22">
 <p>
Hm… Facebook censorship argument.
</p>
</div>
</div>

 <div id="outline-container-The-Long-Now-Foundation" class="outline-3">
 <h3 id="The-Long-Now-Foundation"> <span class="section-number-3">5.7.</span>  <a href="#The-Long-Now-Foundation">The Long Now Foundation</a></h3>
 <div class="outline-text-3" id="text-The-Long-Now-Foundation">
 <p>
Still exists.
 <a href="https://longnow.org/">https://longnow.org/</a>
</p>
</div>
</div>

 <div id="outline-container-Danny-Hillis" class="outline-3">
 <h3 id="Danny-Hillis"> <span class="section-number-3">5.8.</span>  <a href="#Danny-Hillis">Danny Hillis</a></h3>
 <div class="outline-text-3" id="text-Danny-Hillis">
 <p>
Still alive, works for the USA Defence Council.
 <a href="https://en.wikipedia.org/wiki/Danny_Hillis">https://en.wikipedia.org/wiki/Danny_Hillis</a>
Made  <a href="https://en.wikipedia.org/wiki/Connection_Machine">https://en.wikipedia.org/wiki/Connection_Machine</a> at  <a href="https://en.wikipedia.org/wiki/Thinking_Machines_Corporation">https://en.wikipedia.org/wiki/Thinking_Machines_Corporation</a>.
</p>

 <p>
They had kind of a dream-team of scientists working for them.
But failed.
Later became Sun Microsystems, which itself failed.
</p>
</div>
</div>

 <div id="outline-container-when-i-discovered-computers-i-found-something-much-more-interesting:-a-machine-into-which-you-could-put-a-program-that-attempted-to-solve-a-problem,-after-which-the-machine-quickly-checked-the-solution." class="outline-3">
 <h3 id="when-i-discovered-computers-i-found-something-much-more-interesting:-a-machine-into-which-you-could-put-a-program-that-attempted-to-solve-a-problem,-after-which-the-machine-quickly-checked-the-solution."> <span class="section-number-3">5.9.</span>  <a href="#when-i-discovered-computers-i-found-something-much-more-interesting:-a-machine-into-which-you-could-put-a-program-that-attempted-to-solve-a-problem,-after-which-the-machine-quickly-checked-the-solution.">when I discovered computers I found something much more interesting: a machine into which you could put a program that attempted to solve a problem, after which the machine quickly checked the solution.</a></h3>
 <div class="outline-text-3" id="text-when-i-discovered-computers-i-found-something-much-more-interesting:-a-machine-into-which-you-could-put-a-program-that-attempted-to-solve-a-problem,-after-which-the-machine-quickly-checked-the-solution.">
 <p>
This is interesting and philosophically inspiring.
Machines are not the thing that gives us new stuff, it is the thing that checks our ideas for correctness.
The new paragon of truth.
</p>

 <p>
If you can explain it to a machine, your idea is correct.
</p>
</div>
</div>

 <div id="outline-container-I-believe-we-all-would-agree-that-golden-rice,-with-its-built-in-vitamin-A,-is-probably-a-good-thing" class="outline-3">
 <h3 id="I-believe-we-all-would-agree-that-golden-rice,-with-its-built-in-vitamin-A,-is-probably-a-good-thing"> <span class="section-number-3">5.10.</span>  <a href="#I-believe-we-all-would-agree-that-golden-rice,-with-its-built-in-vitamin-A,-is-probably-a-good-thing">I believe we all would agree that golden rice, with its built-in vitamin A, is probably a good thing</a></h3>
 <div class="outline-text-3" id="text-I-believe-we-all-would-agree-that-golden-rice,-with-its-built-in-vitamin-A,-is-probably-a-good-thing">
 <p>
Aha! The Golden Rice has been the case in 2000 already.
</p>
</div>
</div>

 <div id="outline-container-Foresight-Institute" class="outline-3">
 <h3 id="Foresight-Institute"> <span class="section-number-3">5.11.</span>  <a href="#Foresight-Institute">Foresight Institute</a></h3>
 <div class="outline-text-3" id="text-Foresight-Institute">
 <p>
Still exists.
</p>

 <p>
The Foresight Institute is a Palo Alto, California-based research non-profit that
promotes the development of nanotechnology and other emerging technologies. The
institute holds conferences on molecular nanotechnology and awards yearly prizes for
developments in the field.
</p>

 <p>
 <a href="https://foresight.org">https://foresight.org</a>
</p>
</div>
</div>

 <div id="outline-container-Molecular-electronics%E2%80%94the-new-subfield-of-nanotechnology-where-individual-molecules-are-circuit-elements%E2%80%94should-mature-quickly-and-become-enormously-lucrative-within-this-decade,-causing-a-large-incremental-investment-in-all-nanotechnologies." class="outline-3">
 <h3 id="Molecular-electronics%E2%80%94the-new-subfield-of-nanotechnology-where-individual-molecules-are-circuit-elements%E2%80%94should-mature-quickly-and-become-enormously-lucrative-within-this-decade,-causing-a-large-incremental-investment-in-all-nanotechnologies."> <span class="section-number-3">5.12.</span>  <a href="#Molecular-electronics%E2%80%94the-new-subfield-of-nanotechnology-where-individual-molecules-are-circuit-elements%E2%80%94should-mature-quickly-and-become-enormously-lucrative-within-this-decade,-causing-a-large-incremental-investment-in-all-nanotechnologies.">Molecular electronics—the new subfield of nanotechnology where individual molecules are circuit elements—should mature quickly and become enormously lucrative within this decade, causing a large incremental investment in all nanotechnologies.</a></h3>
 <div class="outline-text-3" id="text-Molecular-electronics%E2%80%94the-new-subfield-of-nanotechnology-where-individual-molecules-are-circuit-elements%E2%80%94should-mature-quickly-and-become-enormously-lucrative-within-this-decade,-causing-a-large-incremental-investment-in-all-nanotechnologies.">
 <p>
Did it?
</p>

 <p>
We do have sequencing chips now, but they are the only bio-electronic thing I am aware of that is on the market.
</p>
</div>
</div>

 <div id="outline-container-%22Plants%22-with-%22leaves%22-no-more-efficient-than-today's-solar-cells-could-out-compete-real-plants,-crowding-the-biosphere-with-an-inedible-foliage." class="outline-3">
 <h3 id="%22Plants%22-with-%22leaves%22-no-more-efficient-than-today's-solar-cells-could-out-compete-real-plants,-crowding-the-biosphere-with-an-inedible-foliage."> <span class="section-number-3">5.13.</span>  <a href="#%22Plants%22-with-%22leaves%22-no-more-efficient-than-today's-solar-cells-could-out-compete-real-plants,-crowding-the-biosphere-with-an-inedible-foliage.">"Plants" with "leaves" no more efficient than today's solar cells could out-compete real plants, crowding the biosphere with an inedible foliage.</a></h3>
 <div class="outline-text-3" id="text-%22Plants%22-with-%22leaves%22-no-more-efficient-than-today's-solar-cells-could-out-compete-real-plants,-crowding-the-biosphere-with-an-inedible-foliage.">
 <p>
Darwinian outcompetition!
Fun!
</p>
</div>
</div>

 <div id="outline-container-One-would-think-we-might-be-driven-to-such-a-dialogue-(about-dangers-of-tech)-by-our-instinct-for-self-preservation." class="outline-3">
 <h3 id="One-would-think-we-might-be-driven-to-such-a-dialogue-(about-dangers-of-tech)-by-our-instinct-for-self-preservation."> <span class="section-number-3">5.14.</span>  <a href="#One-would-think-we-might-be-driven-to-such-a-dialogue-(about-dangers-of-tech)-by-our-instinct-for-self-preservation.">One would think we might be driven to such a dialogue (about dangers of tech) by our instinct for self-preservation.</a></h3>
 <div class="outline-text-3" id="text-One-would-think-we-might-be-driven-to-such-a-dialogue-(about-dangers-of-tech)-by-our-instinct-for-self-preservation.">
 <p>
That is, indeed, happening!
</p>
</div>
</div>

 <div id="outline-container-Attali" class="outline-3">
 <h3 id="Attali"> <span class="section-number-3">5.15.</span>  <a href="#Attali">Attali</a></h3>
 <div class="outline-text-3" id="text-Attali">
 <pre class="example" id="orgd9279f7">
"At the dawn of societies, men saw their passage on Earth as nothing
more than a labyrinth of pain, at the end of which stood a door leading, via their
death, to the company of gods and to Eternity. With the Hebrews and then the Greeks,
some men dared free themselves from theological demands and dream of an ideal City
where Liberty would flourish. Others, noting the evolution of the market society,
understood that the liberty of some would entail the alienation of others, and they
sought Equality."

Jacques helped me understand how these three different utopian goals exist in tension
in our society today. He goes on to describe a fourth utopia, Fraternity, whose
foundation is altruism. Fraternity alone associates individual happiness with the
happiness of others, affording the promise of self-sustainment.
</pre>

 <p>
Fraternity is, obviously, a mirage.
</p>
</div>
</div>

 <div id="outline-container-Fear" class="outline-3">
 <h3 id="Fear"> <span class="section-number-3">5.16.</span>  <a href="#Fear">Fear</a></h3>
 <div class="outline-text-3" id="text-Fear">
 <pre class="example" id="orgdb7dce8">
But many other people who know about the dangers still seem strangely
silent. When pressed, they trot out the "this is nothing new" riposte—as if awareness
of what could happen is response enough. They tell me, There are universities filled
with bioethicists who study this stuff all day long. They say, All this has been
written about before, and by experts. They complain, Your worries and your arguments
are already old hat.

I don't know where these people hide their fear. As an architect of complex systems I
enter this arena as a generalist. But should this diminish my concerns? I am aware of
how much has been written about, talked about, and lectured about so authoritatively.
But does this mean it has reached people? Does this mean we can discount the dangers
before us?

Knowing is not a rationale for not acting. Can we doubt that knowledge has become a
weapon we wield against ourselves?
</pre>

 <p>
So, he had that fear of the unknown even at that time.
Interesting.
I used to think that the Golden Age was the age of overwhelming optimism.
I was wrong.  <span class="timestamp-wrapper"> <span class="timestamp"><2021-06-17 Thu></span></span>
</p>
</div>
</div>

 <div id="outline-container-A-von-Neumann-probe-is-a-spacecraft" class="outline-3">
 <h3 id="A-von-Neumann-probe-is-a-spacecraft"> <span class="section-number-3">5.17.</span>  <a href="#A-von-Neumann-probe-is-a-spacecraft">A von Neumann probe is a spacecraft</a></h3>
 <div class="outline-text-3" id="text-A-von-Neumann-probe-is-a-spacecraft">
 <p>
A von Neumann probe is a spacecraft capable of replicating itself.
</p>
</div>
</div>
</section> <section id="outline-container-Lee-KuanYew-%22Singapore-Story%22" class="outline-2"> <h2 id="Lee-KuanYew-%22Singapore-Story%22"> <span class="section-number-2">6.</span>  <a href="#Lee-KuanYew-%22Singapore-Story%22">Lee KuanYew "Singapore Story"</a></h2>
 <div class="outline-text-2" id="text-Lee-KuanYew-%22Singapore-Story%22">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-05-29 Thu></span></span>
</p>

 <p>
A good book.
</p>

 <p>
His English is exceptional, crystal-clear, albeit a little dry.
</p>

 <p>
He is describing the story of his family and his party in Singapore as it reaches independence, becomes a part of Malaysia, and is expelled from Malaysia.
</p>

 <ol class="org-ol"> <li>He liked mathematics at school.</li>
 <li>He did not worry about corporal punishment.</li>
 <li>He joined the "Raffles college".</li>
 <li>He married his college-mate, 2 years older than him.</li>
 <li>He narrowly avoided being killed by the Japanese.</li>
 <li>The Japanese occupation was the first time he questioned "white supremacy".</li>
 <li>During the war he did odd jobs, produced office stationery with his future wife.</li>
 <li>After war he got a scholarship and went to study in the UK, first in London, and later in Cambridge.</li>
 <li>He managed to invite his future wife to study in Cambridge too.</li>
 <li>They both got legal degrees.</li>
 <li>They returned to Singapore and officially married.</li>
 <li>He worked as a lawyer, mostly for the trade unions.</li>
 <li>After becoming well regarded by the unions, he founded a party, PAP, and was elected into the Assembly.</li>
 <li>They had a long and difficult relationship with the communist party of Malaya.</li>
 <li>Eventually he became the first Minister of Singapore.</li>
 <li>Singapore joined Malaysia, the federation of Malaya, North Borneo, and Singapore.</li>
 <li>After two years of trying to find its place in Malaysia and encountering weird conflicts of interest, Singapore was expelled, while he was still the prime Minister.</li>
 <li>He spoke about 5 languages and took the opportunity to visit a lot of foreign countries.</li>
 <li>He had kids, and his wife took part in the "feminist" part of PAP.</li>
</ol></div>
</section> <section id="outline-container-Ivan-Rusti%C4%87-Bulletproof-SSL-and-TLS." class="outline-2"> <h2 id="Ivan-Rusti%C4%87-Bulletproof-SSL-and-TLS."> <span class="section-number-2">7.</span>  <a href="#Ivan-Rusti%C4%87-Bulletproof-SSL-and-TLS.">Ivan Rustić Bulletproof SSL and TLS.</a></h2>
 <div class="outline-text-2" id="text-Ivan-Rusti%C4%87-Bulletproof-SSL-and-TLS.">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-05-07 Wed></span></span>
</p>

 <p>
Not a terribly useful book.
</p>

 <p>
The first chapter has a few nice examples of the TLS packet structure, and the chapter called "OpenSSL Cookbook", indeed, gives some useful examples of using OpenSSL, but the rest of the book discusses things which are either too specific (for example, how to tweak Apache), or too broad "there is this vulnerability in OpenSSL".
</p>

 <p>
Do not recommend.
</p>
</div>
</section> <section id="outline-container-J.D.~Vance,-%22Hillbilly-Elegy%22" class="outline-2"> <h2 id="J.D.~Vance,-%22Hillbilly-Elegy%22"> <span class="section-number-2">8.</span>  <a href="#J.D.~Vance,-%22Hillbilly-Elegy%22">J.D.~Vance, "Hillbilly Elegy"</a></h2>
 <div class="outline-text-2" id="text-J.D.~Vance,-%22Hillbilly-Elegy%22">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-05-31 Sat></span></span>
</p>

 <p>
An interesting book discussing why American "hillbillies", people from the "Rust Belt" under-perform in the USA of 2008.
</p>

 <p>
In some sense this book is similar to "Educated" by Tara Westover, but her parents are isolationist, whereas his parents are "flowing with the crowd".
</p>

 <p>
He astutely highlights quite a few of contradictions in their culture, which are holding them back.
</p>

 <ol class="org-ol"> <li>They over-indulge their children with presents, and so they never learn how to deal with money.</li>
 <li>They  <span class="underline">think</span> that they "work hard", but in fact they do not.</li>
 <li>Eat wrong food.</li>
</ol> <p>
He also described a lot of psychological problems (rash character), and medical problems (drugs).
</p>

 <p>
In the end of the book he speaks about the importance of "connections" and about hiring in the legal industry in the USA.
Very useful.
</p>
</div>
</section> <section id="outline-container-Book-of-Quotations-by-Lixia-Liu." class="outline-2"> <h2 id="Book-of-Quotations-by-Lixia-Liu."> <span class="section-number-2">9.</span>  <a href="#Book-of-Quotations-by-Lixia-Liu.">Book of Quotations by Lixia Liu.</a></h2>
 <div class="outline-text-2" id="text-Book-of-Quotations-by-Lixia-Liu.">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-05-29 Thu></span></span>
</p>

 <p>
The first book I have read completely in handwritten Chinese.
Tough.
</p>
</div>
</section> <section id="outline-container-Peer-Heinlein-and-Peer-Hartleben-%22The-Book-of-IMAP%22" class="outline-2"> <h2 id="Peer-Heinlein-and-Peer-Hartleben-%22The-Book-of-IMAP%22"> <span class="section-number-2">10.</span>  <a href="#Peer-Heinlein-and-Peer-Hartleben-%22The-Book-of-IMAP%22">Peer Heinlein and Peer Hartleben "The Book of IMAP"</a></h2>
 <div class="outline-text-2" id="text-Peer-Heinlein-and-Peer-Hartleben-%22The-Book-of-IMAP%22">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-06-08 Sun 21:05> </span></span> Finished.
</p>

 <p>
This book taught me some basics about IMAP, and helped me set up my first IMAP server for getting notifications from old software.
</p>

 <p>
Is it good?
No.
</p>

 <p>
It is a dated text, with with a lot of mish-mash content lumped together.
</p>

 <p>
It consists of four parts:
</p>
 <ol class="org-ol"> <li>Intro to IMAP</li>
 <li>Courier IMAP</li>
 <li>Cyrus IMAP</li>
 <li>IMAP speicification</li>
</ol> <p>
It deals with many peculiarities needed for setting up IMAP in an enterprise environment, such as the choice of FS, clustering, performance optimisation, but I feel that it misses quite a lot of what we are usually buying tech books for – giving intuition about "how this thing works".
</p>

 <p>
For example, it would have been nice if the book taught how an email could be rewritten as if with, say, "sed".
</p>

 <p>
I guess you have to
</p>
 <div class="org-src-container">
 <pre class="src src-IMAP">LOGIN
FETCH $id
bash rewrite
bash deliver
STORE $id +FLAGS (\Deleted)
CLOSE
QUIT
</pre>
</div>

 <p>
A good useful part there is the introduction of Sieve scripts, which are very useful.
</p>
</div>
</section> <section id="outline-container-Alkonost-de-Moscou-by-Xenia-Romanenko" class="outline-2"> <h2 id="Alkonost-de-Moscou-by-Xenia-Romanenko"> <span class="section-number-2">11.</span>  <a href="#Alkonost-de-Moscou-by-Xenia-Romanenko">Alkonost de Moscou by Xenia Romanenko</a></h2>
 <div class="outline-text-2" id="text-Alkonost-de-Moscou-by-Xenia-Romanenko">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-06-15 Sun></span></span>
</p>

 <p>
I finished reading "Moscow Alkonost" by Xenia Romanenko.
</p>

 <p>
I read this book as a proof-reader for an early version.
</p>

 <p>
A book about people turning into fairy-tale characters due to a misguided scientific development by the decaying Soviet regime.
</p>

 <p>
It is a nice book.
I cannot write a lot about it, because it is not yet released by the time I am writing this note, but I read it with a lot of enjoyment.
</p>

 <p>
There are Firebirds, Mermaids, Russkaya toska, and a lot of cultural references.
</p>
</div>
</section> <section id="outline-container-Chinese-Folk-Tales" class="outline-2"> <h2 id="Chinese-Folk-Tales"> <span class="section-number-2">12.</span>  <a href="#Chinese-Folk-Tales">Chinese Folk Tales</a></h2>
 <div class="outline-text-2" id="text-Chinese-Folk-Tales">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-06-19 Thu></span></span>
</p>

 <p>
ISBN 978-7-5215-0261-9
CIP 197449
</p>

 <p>
I have read a book of Chinese Folk Tales, published by without a name of the editor on the front cover.
</p>

 <p>
This was my fourth book read completely in Chinese.
</p>

 <p>
It is interesting to have a look at a mythology different from Greek.
</p>

 <p>
In process I have learnt about:
</p>

 <ol class="org-ol"> <li>Liáo Zhāi Zhì Yì 聊齋誌異 ::  <a href="https://en.wikipedia.org/wiki/Strange_Tales_from_a_Chinese_Studiop">https://en.wikipedia.org/wiki/Strange_Tales_from_a_Chinese_Studiop</a></li>
 <li>Shān Hǎi Jīng 山海经 ::  <a href="https://en.wikipedia.org/wiki/Classic_of_Mountains_and_Seas">https://en.wikipedia.org/wiki/Classic_of_Mountains_and_Seas</a></li>
 <li>Sōu Shēn Jì 搜神记 ::  <a href="https://en.wikipedia.org/wiki/In_Search_of_the_Supernatural">https://en.wikipedia.org/wiki/In_Search_of_the_Supernatural</a></li>
</ol> <p>
China has a literary tradition lasting for more than two thousands of years, and naturally a lot of early books are just records of myths and legends.
</p>

 <p>
The book I read, even though it sometimes references the classics, is really a re-interpretation for children of the most classic tales.
The language is mostly modern Chinese, with a few odd words.
</p>

 <p>
The book contains a few stories about the creation of the world, including the stories of PánGǔ, NǚWā, ShénNóng, as well as "mythic kings and emperors", including FúXī, Huáng Dì, Yáo, Shùn, and a few heroes stories, such as the story of QiānNíu Láng and Zhī Nǚ.
I was particularly impressed by the story of JìYīng, who killed the "snake spirit" at the age of 13.
</p>

 <p>
I am a little disappointed that I am still reading slowly, even though this is my fourth book, and I remember starting to read fluently after just two in English, but hey, I still make progress.
</p>
</div>
</section> <section id="outline-container-Lee-KuanYew-From-Third-World-to-First-1965-2000" class="outline-2"> <h2 id="Lee-KuanYew-From-Third-World-to-First-1965-2000"> <span class="section-number-2">13.</span>  <a href="#Lee-KuanYew-From-Third-World-to-First-1965-2000">Lee KuanYew From Third World to First 1965-2000</a></h2>
 <div class="outline-text-2" id="text-Lee-KuanYew-From-Third-World-to-First-1965-2000">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-06-26 Thu></span></span>
</p>

 <p>
An excellent book about quite everything in the world: love, work, politics, industry, languages, friendship, and state-making.
</p>

 <p>
I highly recommend it, and regret that I had not read it when I was much younger.
</p>

 <p>
It says a lot about how you can make a modern society in the age of information.
</p>

 <p>
Of course, it should be read together with the first volume.
</p>

 <p>
Out of the books I have read, this one mostly deserves to be purchased as a physical copy.
</p>
</div>
</section> <section id="outline-container-Stallman,-McGrath,-Smith,-GNU-Make-A-Program-for-Directing-Recompilation" class="outline-2"> <h2 id="Stallman,-McGrath,-Smith,-GNU-Make-A-Program-for-Directing-Recompilation"> <span class="section-number-2">14.</span>  <a href="#Stallman,-McGrath,-Smith,-GNU-Make-A-Program-for-Directing-Recompilation">Stallman, McGrath, Smith, GNU Make A Program for Directing Recompilation</a></h2>
 <div class="outline-text-2" id="text-Stallman,-McGrath,-Smith,-GNU-Make-A-Program-for-Directing-Recompilation">
 <p>
A suprisingly nice computer program manual.
</p>

 <p>
I tried reading this manual in 2004, and it didn't work out well for me at the time, but now I was much happier.
</p>

 <p>
The book gets a bit of influence from the other GNU manuals and philosophy, speaking not just about the program itself, but also about good coding practices and common conventions, which explains a few gotchas met when working with UNIX not explained anywhere.
</p>
</div>
</section> <section id="outline-container-Chassell,-Stallman,-Texinfo-The-GNU-Documentation-Format" class="outline-2"> <h2 id="Chassell,-Stallman,-Texinfo-The-GNU-Documentation-Format"> <span class="section-number-2">15.</span>  <a href="#Chassell,-Stallman,-Texinfo-The-GNU-Documentation-Format">Chassell, Stallman, Texinfo The GNU Documentation Format</a></h2>
 <div class="outline-text-2" id="text-Chassell,-Stallman,-Texinfo-The-GNU-Documentation-Format">
 <p>
What can I say?
</p>

 <p>
Texinfo is not a terribly good writing system.
It is too featureful to be used for brief manuals and too finicky to replace LaTeX, ConTeXt, or other large packages.
</p>

 <p>
It also does not have facilities for supporting Cyrillic, Hebrew, Greek, etc, anything other than Latin and CJK.
(However, after playing a bit with its latex exporter, I managed to make it work with Russian, albeit imperfectly.)
</p>

 <p>
But it is a decent self-contained package, which usually liberates you from having to juggle TeX packages yourself, and produces extremely beautiful results, both in print and in HTML.
If there was no  <code>org-mode</code>, Texinfo could be my formatting package of choice.
</p>

 <ol class="org-ol"> <li>It is, as already said, beautiful.</li>
 <li>It supports documenting commands, functions, variables, macros, types, classes, and members.</li>
 <li>It has support for macros.</li>
 <li>It has a built-in indexing and definitions support.</li>
 <li>TeX mathematics largely works.</li>
</ol></div>
</section> <section id="outline-container-Abbott,-Flatland" class="outline-2"> <h2 id="Abbott,-Flatland"> <span class="section-number-2">16.</span>  <a href="#Abbott,-Flatland">Abbott, Flatland</a></h2>
 <div class="outline-text-2" id="text-Abbott,-Flatland">
 <p>
A wonderful sarcastic social pamphlet pretending to be popular science.
</p>

 <p>
Too many things to mention, but overall it is very funny, amazing, and made me deeply regret my embarrassingly low skill in topology.
</p>

 <p>
Women must maintain  <code>well-modulated undulation of the back</code>.
</p>
</div>
</section> <section id="outline-container-Serial-Experiments-Lain-1998" class="outline-2"> <h2 id="Serial-Experiments-Lain-1998"> <span class="section-number-2">17.</span>  <a href="#Serial-Experiments-Lain-1998">Serial Experiments Lain 1998</a></h2>
 <div class="outline-text-2" id="text-Serial-Experiments-Lain-1998">
 <p>
As an exception, this is a film (a cartoon), not a book, but it is culturally significant.
</p>

 <p>
Well, what I can say?
Long and boring, but has a few interesting ideas.
</p>

 <ol class="org-ol"> <li>That people are embedding some of their soul into their work, and continue influencing people's lives after their own death.
Not a new thought, but I did not consider it much with respect to computing before.</li>
 <li>Some people around us are collective hallucinations.</li>
 <li>The Internet becomes conscious as the amount of nodes in it approaches that of a living being.</li>
</ol> <p>
Overall, watching 13 episodes of this film is a price a little high for considering the three aforementioned ideas.
</p>

 <p>
There are other ideas about the dangers of the Internet, but most of them are common knowledge nowadays, so not worth mentioning.
</p>
</div>
</section> <section id="outline-container-Napoleon-2023-(Ridley-Scott)" class="outline-2"> <h2 id="Napoleon-2023-(Ridley-Scott)"> <span class="section-number-2">18.</span>  <a href="#Napoleon-2023-(Ridley-Scott)">Napoleon 2023 (Ridley Scott)    <span class="tag"> <span class="film">film</span></span></a></h2>
 <div class="outline-text-2" id="text-Napoleon-2023-(Ridley-Scott)">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-09-15 Mon></span></span>
A great film.  I have not seen anything this good in a decade.
</p>
</div>
</section> <section id="outline-container-Why-fish-don't-exist-by-Lulu-Miller" class="outline-2"> <h2 id="Why-fish-don't-exist-by-Lulu-Miller"> <span class="section-number-2">19.</span>  <a href="#Why-fish-don't-exist-by-Lulu-Miller">Why fish don't exist by Lulu Miller</a></h2>
 <div class="outline-text-2" id="text-Why-fish-don't-exist-by-Lulu-Miller">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-09-22 Mon></span></span>
</p>

 <p>
I read this book for a book club.
</p>

 <p>
On the surface it is a biography of David Starr Jordan, the first president of Stanford.
</p>

 <p>
In reality it is a book about how modern USA left are feeling themselves lost into chaos.
</p>

 <p>
The book is not good as a biography, but it is good as a representation of the emotional state of well-intending left-leaning people in the USA.
</p>

 <p>
This book was very illuminating for me, because, as a person who grew up in a post-Communist society, I feel almost nothing of what those people feel there, in America.
</p>

 <ol class="org-ol"> <li>Adultery has never been a major issue in my surroundings.
I was disapproved of, but that was what everyone did.</li>
 <li>Races and species has always been seen as vague.</li>
 <li>Science had been seen as something to provide a proper structuring of the world back when my great-grandpa was a young man, but since then has lost a lot of its appeal.</li>
 <li>Religion has never been seen as providing any sort of moral compass.</li>
</ol> <p>
For them, the fact that fish do not exist seems to be some sort of Earth-shattering revelation, for me it means nothing.
</p>
</div>
</section> <section id="outline-container-Ralf-Hildebrandt,-Patrick-Koetter,-The-Book-of-Postfix" class="outline-2"> <h2 id="Ralf-Hildebrandt,-Patrick-Koetter,-The-Book-of-Postfix"> <span class="section-number-2">20.</span>  <a href="#Ralf-Hildebrandt,-Patrick-Koetter,-The-Book-of-Postfix">Ralf Hildebrandt, Patrick Koetter, The Book of Postfix</a></h2>
 <div class="outline-text-2" id="text-Ralf-Hildebrandt,-Patrick-Koetter,-The-Book-of-Postfix">
 <p>
A very thorough introduction into Postfix.
</p>

 <p>
The narrative is very smooth, step by step, layer by layer, describing how to set up a working SMTP server, from a simple UNIX case from the 1980s, when mail was primarily delivered to system users on a big computer, up until a single-database-multiple-virtual-domains system of Postfix-SMTP and Courier-IMAP.
It includes an introduction into verification, rewrites, authentication, encryption, forwarding, and filtering mail.
The language is clear and readable, the examples are abundant, the use-cases are practical.
</p>

 <p>
The biggest drawback of this book is that it is a bit dated.
It does not speak at all about DKIM, SPF, and DMARC, which is sort of understandable, because they were not a thing in 2005, and does not speak about "milter"s.
I guess, Postfix did not support them at the time.
</p>

 <p>
On the positive side, all of the advice given in the book remains relevant today, 20 years later.
A few thing have changed, one might, perhaps, use 389DS instead of OpenLDAP, but overall, the architecture of the mail federation is time-proven to be robust.
</p>

 <p>
Overall, the book is a bit niche, but useful.
</p>
</div>
</section> <section id="outline-container-Anurag-Mendhekar,-Daniel-P.-Friedman,-The-Little-Learner:-A-Straight-Line-to-Deep-Learning" class="outline-2"> <h2 id="Anurag-Mendhekar,-Daniel-P.-Friedman,-The-Little-Learner:-A-Straight-Line-to-Deep-Learning"> <span class="section-number-2">21.</span>  <a href="#Anurag-Mendhekar,-Daniel-P.-Friedman,-The-Little-Learner:-A-Straight-Line-to-Deep-Learning">Anurag Mendhekar, Daniel P. Friedman, The Little Learner: A Straight Line to Deep Learning</a></h2>
 <div class="outline-text-2" id="text-Anurag-Mendhekar,-Daniel-P.-Friedman,-The-Little-Learner:-A-Straight-Line-to-Deep-Learning">
 <p>
I am disappointed.
Admittedly, I am disappointed with most of the "Little X" series.
Despite them being somewhat legendary in the programming world, and despite the creative form of the platonic dialog, I am always finding them unsystematic, chaotic, rife with distractions and insufficiently thorough at explaining the basics.
</p>

 <p>
"The Little Learner" is not at all better.
The book does teach the reader how to write a multi-layer neural network with fully-connected and convolutional layers, and how to train it using the "adam" modification of the gradient descent, but it is doing this sort of upside-down, dedicating too much attention to unnecessary fads of the day (such as the aforementioned adam optimiser and the relu transfer function), too much attention to mundane things, such as transposition of a tensor, but many important bits, such as coefficient normalisation and statistical properties of the distributions are not even mentioned.
Of those which are mentioned, too many crucial ones are exiled into the appendix.
</p>

 <p>
Furthermore, the supporting library "malt" is buggy and bit-rotten.
The amount of visuals in the books is almost zero, save for a few signal plots, which for a book on neural networks is just unforgivable, especially since Racket has a nice "plot" library.
</p>

 <p>
On the plus side, the book has a nice explanation of the extension of binary operations to work on tensors, and at least  <i>some</i> explanation of automatic differentiation.
It is nice to have those, machine learning books too often omit them.
</p>

 <p>
I would give this book a mark of 3 out of 5.
</p>
</div>
</section> <section id="outline-container-Akira-1998-(Katsuhiro-Otomo)" class="outline-2"> <h2 id="Akira-1998-(Katsuhiro-Otomo)"> <span class="section-number-2">22.</span>  <a href="#Akira-1998-(Katsuhiro-Otomo)">Akira 1998 (Katsuhiro Otomo)</a></h2>
 <div class="outline-text-2" id="text-Akira-1998-(Katsuhiro-Otomo)">
 <p>
Was recommended this film as being a signature of cyberpunk, and anti-recommended as boring and badly done.
</p>

 <p>
I would say I rather liked it.
</p>

 <p>
The drawing style is unlike anything I have ever seen: not like Japanese and not like Western.
</p>

 <p>
It has quite a few of cyberpunk themes:
</p>

 <ol class="org-ol"> <li>Interesting 3D visualisation interfaces.</li>
 <li>Nuclear war.</li>
 <li>Surveillance.</li>
 <li>Terrorism.</li>
 <li>Bikers.</li>
 <li>Fish 3D-sculptures.</li>
 <li>Psyonic abilities.</li>
 <li>Excessive cuteness.</li>
 <li>Huge skyscrapers.</li>
 <li>Cultists.</li>
 <li>"Old Children".</li>
 <li>Dictatorship by a Colonel.</li>
 <li>School bullying.</li>
 <li>Dodging bullets.</li>
 <li>Satellite weapons.</li>
 <li>Steel arm.</li>
 <li>Tentacles.</li>
 <li>Excessive focus on names.</li>
 <li>Nuclear War and semi post-apocalypse.</li>
</ol></div>
</section> <section id="outline-container-My-neighbor-Totoro-1988,-by-Hayao-Miyazaki" class="outline-2"> <h2 id="My-neighbor-Totoro-1988,-by-Hayao-Miyazaki"> <span class="section-number-2">23.</span>  <a href="#My-neighbor-Totoro-1988,-by-Hayao-Miyazaki">My neighbor Totoro 1988, by Hayao Miyazaki</a></h2>
 <div class="outline-text-2" id="text-My-neighbor-Totoro-1988,-by-Hayao-Miyazaki">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-10-25 Sat></span></span>
A nice, short, beautifully drawn cartoon for children.
Cannot blame adults for loving it though.
Somewhat iconic for all Miyazaki fans, more than his other cartoons.
</p>
</div>
</section> <section id="outline-container-Swan-Lake-1957-(Zo%C3%AB-Touloubieva)" class="outline-2"> <h2 id="Swan-Lake-1957-(Zo%C3%AB-Touloubieva)"> <span class="section-number-2">24.</span>  <a href="#Swan-Lake-1957-(Zo%C3%AB-Touloubieva)">Swan Lake 1957 (Zoë Touloubieva)</a></h2>
 <div class="outline-text-2" id="text-Swan-Lake-1957-(Zo%C3%AB-Touloubieva)">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-10-27 Mon></span></span>
A short version of the ballet, famous for being depicted to represent gloom in the "Kidnapping Caucasian Style".
I was impressed by the fact that it is not black-and-white.
</p>

 <p>
Plisetskaya is a star, and Faddeychev is a great match for her.
Ballet dancers are actually extremely strong!
</p>
</div>
</section> <section id="outline-container-Barry-Lyndon-1975-(Stanley-Kubrick)" class="outline-2"> <h2 id="Barry-Lyndon-1975-(Stanley-Kubrick)"> <span class="section-number-2">25.</span>  <a href="#Barry-Lyndon-1975-(Stanley-Kubrick)">Barry Lyndon 1975 (Stanley Kubrick)</a></h2>
 <div class="outline-text-2" id="text-Barry-Lyndon-1975-(Stanley-Kubrick)">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-10-29 Wed></span></span>
Extremely aesthetic film about rotten 18-th century aristocratic life.
Many people would claim it to be too dour and prim, and also too stretched in time, but I actually liked it.
</p>

 <p>
It is one of the films with no heroes with whom one would want to relate, everyone has his own bright and dark sides.
Made me want to read some Thackeray.
</p>
</div>
</section> <section id="outline-container-Avatar-2009-(James-Cameron)" class="outline-2"> <h2 id="Avatar-2009-(James-Cameron)"> <span class="section-number-2">26.</span>  <a href="#Avatar-2009-(James-Cameron)">Avatar 2009 (James Cameron)</a></h2>
 <div class="outline-text-2" id="text-Avatar-2009-(James-Cameron)">
 <p>
A somehow legendary film.
It really feels like an embodiment of American misgivings about the American Indian.
</p>

 <p>
It is… well, a teenage film.
There are conflicts, but they are resolved quickly.
There are a few holes in the plot, but overall the plot is so simple and straightforward that they do not really spoil it much.
</p>

 <p>
The idea of embedding people in the "avatars" is brewing in the society for a long time already.
</p>
</div>
</section> <section id="outline-container-The-Name-of-the-Wind-(2007),-by-Patrick-Rothfuss" class="outline-2"> <h2 id="The-Name-of-the-Wind-(2007),-by-Patrick-Rothfuss"> <span class="section-number-2">27.</span>  <a href="#The-Name-of-the-Wind-(2007),-by-Patrick-Rothfuss">The Name of the Wind (2007), by Patrick Rothfuss</a></h2>
 <div class="outline-text-2" id="text-The-Name-of-the-Wind-(2007),-by-Patrick-Rothfuss">
 <div class="epigraph" id="org938df81">
 <p>
The models who make most on OnlyFans are not the most beautiful, not the most extravagant, not the most brave, not the most hardworking and not the most empathetic.
</p>

 <p>
It is not the people who expose themselves in the best way, but rather people who  <span class="underline">promise</span> to expose themselves  <span class="underline">at some later date</span>, but never actually do it.
</p>

</div>

 <ol class="org-ol"> <li>I read this book because it spotted a recommendation in my Telegram feed.</li>
 <li>I looked at the reviews, found them very good, and even claiming that Rothfuss is the next George Martin.</li>
 <li>Even though I have given up reading fantasy, I still feel a desire to read modern literature, so I decided to give it a shot.</li>
 <li>Overall, I am not impressed, but more disheartened than offended. The book is not good, but it is more of a sign of our age of decadence rather than the sign of the author lacking skill.</li>
</ol> <ol class="org-ol"> <li>The book is an epitome of OnlyFans. Always promise, never deliver.</li>
 <li>The book is very well written.
 <ol class="org-ol"> <li>There is a nice has a very nice narrative frame of the narrator telling us his story by himself.</li>
 <li>It also has great colourful language. Author's literary skill is good.</li>
 <li>The author can create suspense, and sometimes even resolve it correctly.</li>
</ol></li>
 <li>The plot is extremely underwhelming.
 <ol class="org-ol"> <li>I started reading the book with enthusiasm: it has a nice beginning, the story has a nice sweet beginning emotionally similar Shire in JRRT's works.</li>
 <li>When I read until 30%, some strange suspicions started to crawl into my brain: when is the main plot going to start?</li>
 <li>About 50% of the book is about the "University". What, you are trying to sell me another "Harry Potter"? Really? Really! It even plagiarises "duels".</li>
 <li>The actual advancement of the plot happens about… 80% into the book? Basically 80% of the book are just a long and boring introduction with a few entertaining bits.</li>
 <li>The main event of the book is the main hero killing a harmless giant endangered 200y.o. herbivore lizard, which he himself provokes into delirium.
Dostoevsky could have enjoyed this, but he was writing 200 years ago.</li>
</ol></li>
 <li>The plot is full of holes.
"People do not behave like this"
 <ol class="org-ol"> <li>Money is the biggest driving motive for the protagonist.
 <ol class="org-ol"> <li>I am not sure this is the author's hidden Marxist tendencies, or maybe he is just reflecting his experience of an American university campus, but overall none of it makes sense.</li>
 <li>He spends three years as a pauper, even though he could have been making money by singing and making music.</li>
 <li>He works on three jobs during the university, and still manages to be poor.</li>
 <li>The "patronage" system for musicians he is describing just make 0 sense whatsoever.</li>
 <li>The author confused with how much something costs all literally all the time.</li>
 <li>When the protagonist needs money, they still magically appear out of nowhere.</li>
 <li>On the other hand, each time he has enough money to pay off his debts, there is a grand piano in the bushes, and magically he is broke again.</li>
 <li>He works 5 days a week as a musician in a bar, only for a bed and meal, but still refuses to go back to the dormitory?
Unbelievable.</li>
</ol></li>
 <li>His relationships with women are just laughable. Nobody but American university freshmen in 2025 behave like this. Certainly not semi-medieval citizens.
 <ol class="org-ol"> <li>Especially his "love", Denna, who behaves like a sugar babe from 2025 rather than a medieval minstrel (who she purportedly is).</li>
</ol></li>
 <li>The atmosphere in the university is just laughably absurd.
 <ol class="org-ol"> <li>The Archive has no catalogue? Seriously? Wtf?</li>
 <li>Students work in the precious Archives? Give me a break. This has zero plausibility.</li>
 <li>He supposedly is almost late for the admission exam, but somehow magically manages to spend hours at the back seats listening to other students answering the same questions over and over.
Utter bullshit, this is totally impossible.</li>
 <li>A student is banned from the Archives? Really? Also, totally impossible.</li>
</ol></li>
 <li>The obsession with ranks and titles (the Arcanum has one, the Workshop has one too, the Talent "pipes" is another one) reminds me an MMORPG much more than any medieval system of guilds and nobility.</li>
 <li>Corporal punishment is certainly as far from the author as the Moon, it is described totally implausibly.</li>
</ol></li>
 <li>Killing a harmless giant endangered 200y.o. herbivore lizard is just so patently ridiculous that I would have stopped reading the book unless it was in the last 5%, and it would not make sense to not finish.</li>
</ol> <p>
My general impression: "It is a shame that making normal literature is not 'hot' any more."
</p>

 <p>
Rothfuss could have been a second Walter Scott, but instead he creates novels out of DnD sessions.
</p>
</div>
</section> <section id="outline-container-Kiki's-Delivery-Service-(1989),-by-Hayao-Miyazaki" class="outline-2"> <h2 id="Kiki's-Delivery-Service-(1989),-by-Hayao-Miyazaki"> <span class="section-number-2">28.</span>  <a href="#Kiki's-Delivery-Service-(1989),-by-Hayao-Miyazaki">Kiki's Delivery Service (1989), by Hayao Miyazaki</a></h2>
 <div class="outline-text-2" id="text-Kiki's-Delivery-Service-(1989),-by-Hayao-Miyazaki">
 <p>
A nice film about teenagers growing up.
It really seems like a continuation of Totoro, which is really a pre-school film.
</p>

 <p>
Some interesting topics are re-raised, and there is a hint of that "pseudo-European" "Austro-Hungarian" atmosphere which later became so prominent in Japanese films.
</p>

 <p>
The film is also full of pantsu fan-service, which came as a big surprise to me, as I had not expected Miyazaki to take part in it, but all of it is completely benign.
</p>

 <p>
Overall, I am not terribly impressed, the film is clearly not as paradigm-shifting as Totoro, but it is not bad, I do not regret watching it.
</p>
</div>
</section> <section id="outline-container-The-Art-of-Metaobject-Protocol-(1991),-by-Daniel-G.-Bobrow,-Gregor-Kiczales,-and-Jim-Des-Rivi%C3%A8res" class="outline-2"> <h2 id="The-Art-of-Metaobject-Protocol-(1991),-by-Daniel-G.-Bobrow,-Gregor-Kiczales,-and-Jim-Des-Rivi%C3%A8res"> <span class="section-number-2">29.</span>  <a href="#The-Art-of-Metaobject-Protocol-(1991),-by-Daniel-G.-Bobrow,-Gregor-Kiczales,-and-Jim-Des-Rivi%C3%A8res">The Art of Metaobject Protocol (1991), by Daniel G. Bobrow, Gregor Kiczales, and Jim Des Rivières</a></h2>
 <div class="outline-text-2" id="text-The-Art-of-Metaobject-Protocol-(1991),-by-Daniel-G.-Bobrow,-Gregor-Kiczales,-and-Jim-Des-Rivi%C3%A8res">
 <p>
Well, it is not really a book on its own.
Its second part is a reference document, a chapter missing from "Common Lisp the language", by Guy_L._Steele.
</p>

 <p>
The first part, however, a fairly short one, provides a case-study on how an "object system" can be written on top of Common Lisp.
</p>

 <p>
Actually, SICP already provides a lot of building blocks which can serve as a basis for building objects, but it does not suggest that the whole computation system shall be wrapped into objects.
</p>

 <p>
TAOMP, however, is proud of being defined in terms of its own vocabulary (with a few ad-hoc tricks needed to resolve circularities).
</p>

 <p>
Am I enlightened?
No.
</p>

 <p>
Most of the stuff given in the book is fairly obvious, and some of it seems impractical.
The system is certainly flexible enough to implement any object system imaginable, but the problem is that most object systems are superfluous and are not the best way to solve the problems the are destined to solve.
</p>

 <p>
So, it seems that in 99% of the cases the advanced features of CLOS-MOP would not be useful.
</p>

 <p>
The biggest practical use-case would be enabling tracing, debugging, or profiling of complex pieces of software which are not easily tamed with other methods.
Fair enough!
I used those features a lot when writing Matlab, but as my skill grew stronger, I started using them a bit less.
</p>

 <p>
Anyway, I am happy that I have closed my gestalt.
</p>
</div>
</section> <section id="outline-container-Michael-W-Lucas,-SNMP-Mastery" class="outline-2"> <h2 id="Michael-W-Lucas,-SNMP-Mastery"> <span class="section-number-2">30.</span>  <a href="#Michael-W-Lucas,-SNMP-Mastery">Michael W Lucas, SNMP Mastery</a></h2>
 <div class="outline-text-2" id="text-Michael-W-Lucas,-SNMP-Mastery">
 <p>
See review on the official page.
</p>
</div>
</section> <section id="outline-container-Gladiator-(2000)-by-Ridley-Scott" class="outline-2"> <h2 id="Gladiator-(2000)-by-Ridley-Scott"> <span class="section-number-2">31.</span>  <a href="#Gladiator-(2000)-by-Ridley-Scott">Gladiator (2000) by Ridley Scott</a></h2>
 <div class="outline-text-2" id="text-Gladiator-(2000)-by-Ridley-Scott">
 <p>
Seems like one of the weakest works on Ridley Scott.
Admittedly, I was confused by my context, I used to think that the narrative presented in the Colosseum song of the band Aria was a fair reflection of the plot, but it is not.
The film is what we would now say "awfully Hollywood".
Joaquin Phoenix is playing much better than the rest of the team.
</p>

 <p>
Ridley Scott was fairly honest to the historic events, but generally the plot looks like a propaganda piece.
I guess we should love it for it.
</p>
</div>
</section> <section id="outline-container-Learning-Linux-Binary-Analysis-by-elfmaster" class="outline-2"> <h2 id="Learning-Linux-Binary-Analysis-by-elfmaster"> <span class="section-number-2">32.</span>  <a href="#Learning-Linux-Binary-Analysis-by-elfmaster">Learning Linux Binary Analysis by elfmaster</a></h2>
 <div class="outline-text-2" id="text-Learning-Linux-Binary-Analysis-by-elfmaster">
 <p>
A nice little book introducing some basics of binary files manipulation.
It presents some binary inspection tools, such as  <code>readelf</code>,  <code>objdump</code>, and  <code>objcopy</code>, introduces the ELF file format, and shows a consistent narrative how to use the former in order to modify the latter.
The book introduces examples of using system calls manually (to avoid using system libraries), add-linking executable code into binaries, and identifying common patterns of modified binaries.
The book is not at all deep, but is a very nice introduction for total newbies.
It is also interesting to see how pedestrian and naive Linux malware is, compared to Windows.
</p>
</div>
</section> <section id="outline-container-ghidra-book:-The-Definitive-Guide-by-Chris-Eagle-and-Kara-Nance-(2020-09)" class="outline-2"> <h2 id="ghidra-book:-The-Definitive-Guide-by-Chris-Eagle-and-Kara-Nance-(2020-09)"> <span class="section-number-2">33.</span>  <a href="#ghidra-book:-The-Definitive-Guide-by-Chris-Eagle-and-Kara-Nance-(2020-09)">Ghidra Book: The Definitive Guide by Chris Eagle and Kara Nance (2020-09)</a></h2>
 <div class="outline-text-2" id="text-ghidra-book:-The-Definitive-Guide-by-Chris-Eagle-and-Kara-Nance-(2020-09)">
 <p>
A book describing how work with the reverse engineering tool Ghidra.
It is an excellent guide to a large program helping with a difficult job.
</p>

 <p>
Reverse Engineering itself is not easy, but and the target of the book is Ghidra, not reverse engineering, but it contains a lot of examples which are trying to bridge the two.
The style is exceptionally clear and understandable, every sub-program is described in sufficient detail, and there are even some topics dedicated to more in-depth study of the Ghidra internals.
</p>

 <p>
Interestingly, Ghidra uses Eclipse as its default IDE, which disappoints me a bit.
</p>
</div>
</section> <section id="outline-container-Chongqing-Express-%EF%BC%88%E9%87%8D%E5%BA%86%E6%A3%AE%E6%9E%97%EF%BC%89-by-Wong-Kar-Wai-(1994)" class="outline-2"> <h2 id="Chongqing-Express-%EF%BC%88%E9%87%8D%E5%BA%86%E6%A3%AE%E6%9E%97%EF%BC%89-by-Wong-Kar-Wai-(1994)"> <span class="section-number-2">34.</span>  <a href="#Chongqing-Express-%EF%BC%88%E9%87%8D%E5%BA%86%E6%A3%AE%E6%9E%97%EF%BC%89-by-Wong-Kar-Wai-(1994)">Chongqing Express （重庆森林） by Wong Kar-Wai (1994)</a></h2>
 <div class="outline-text-2" id="text-Chongqing-Express-%EF%BC%88%E9%87%8D%E5%BA%86%E6%A3%AE%E6%9E%97%EF%BC%89-by-Wong-Kar-Wai-(1994)">
 <p>
A wonderful little piece of Hong Kong cinema, highly praised by Quentin Tarantino.
The main characters are adorable, the plot twists are contrived, but fun, the atmosphere is just superb.
The first film I watched entirely in Chinese, which didn't liberate me from having to read subtitles, because the film is in three languages (English, Mandarin, and Cantonese).
</p>

 <p>
Seriously, it is worth watching at least due to the marvellously expressed atmosphere at Chungking Mansions.
</p>
</div>
</section> <section id="outline-container-Fear-and-Loathing-in-Las-Vegas-(1998)-by-Terry-Gilliam" class="outline-2"> <h2 id="Fear-and-Loathing-in-Las-Vegas-(1998)-by-Terry-Gilliam"> <span class="section-number-2">35.</span>  <a href="#Fear-and-Loathing-in-Las-Vegas-(1998)-by-Terry-Gilliam">Fear and Loathing in Las Vegas (1998) by Terry Gilliam</a></h2>
 <div class="outline-text-2" id="text-Fear-and-Loathing-in-Las-Vegas-(1998)-by-Terry-Gilliam">
 <p>
"Monty Python" is crap, and even when its member create independently, it is still sub-par.
The film is boring and does not produce a single smile, but the pretence of trying to present the "counter-cultural movement" of the 1960s is worth a consolation prise.
</p>

 <p>
Narcotics apparently play a large role in the USA cultural context, given how many noteworthy films are created featuring them.
Also, the film, even though mediocre, is still better than the neutered cinema of the 2020s.
Reminded me of my childhood a bit.
1998 was a great year.
</p>
</div>
</section> <section id="outline-container-Appendix" class="outline-2"> <h2 id="Appendix"> <span class="section-number-2">36.</span>  <a href="#Appendix">Appendix</a></h2>
 <div class="outline-text-2" id="text-Appendix">
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2021-01-23_Unsystematic-reading-of-articles-and-books.d/index.html"/>
  <id>https://lockywolf.net/2021-01-23_Unsystematic-reading-of-articles-and-books.d/index.html</id>
  <updated>2026-02-01T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;SNMP Mastery&quot; by Michael W Lucas.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “SNMP Mastery” by Michael W Lucas.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Examples-and-notes">1. Examples and notes</a></li>
</ul></div>
</nav> <p>
I have a weird hobby of reading easy tech books when resting, having time off from reading hard books.
</p>

 <p>
“SNMP Mastery” is an easy book, you can read it in half a day and learn a bit of new knowledge about, well, network management which is unlikely to be useful, but you will understand what your company’s IT guys are talking about.
His writing is light, very clear, and rich with both examples and metaphors (for which he extensively uses Lovecraftian jargon).
</p>

 <p>
In this file I also copied a few examples about how to use SNMP to check some basic parameters.
(If your home router supports SNMP.)
</p>

 <p>
SNMP is a nice authenticated statistics collection and delivery tool.
It is often used when a machine does not allow installing a dedicated monitoring agent, such as zabbiz-agent or monitoring-plugins.
</p>

 <p>
Lucas’ book is very simple and consistently presented.
I enjoyed reading it partially because I have been reading a lot of complicated stuff recently, and like reading simple stuff as a way of distraction.
</p>

 <section id="outline-container-Examples-and-notes" class="outline-2"> <h2 id="Examples-and-notes"> <span class="section-number-2">1.</span>  <a href="#Examples-and-notes">Examples and notes</a></h2>
 <div class="outline-text-2" id="text-Examples-and-notes">
 <p>
The most valuable thing to remember: you can (must) add user-creation lines into snmpd’s persistence file and restart snmpd.
It  <span class="underline">will change</span> this file, remove your lines and hash the password.
This is a weird behaviour I have not seen before, so it is worth keeping in mind.
Also, users have to be cloned from templates, which is also weird.
</p>

 <div class="org-src-container">
 <pre class="src src-conf">createUser user authalgo  <span style="font-style: italic;">"authpassphrase"</span> privalgo  <span style="font-style: italic;">"privpassphrase"</span>
rwuser user
</pre>
</div>

 <p>
The rest is quite obvious.
</p>

 <div class="org-src-container">
 <pre class="src src-bash">snmpbulkwalk -v 3 -l priv -u template-lockywolf <span style="font-style: italic;">\</span>
             -A <pass> -a SHA-256 <span style="font-style: italic;">\</span>
             -X <pass> -x AES128 <span style="font-style: italic;">\</span>
             tcp:192.168.1.3
</pre>
</div>

 <p>
 <b>Get all stats</b>
</p>

 <div class="org-src-container">
 <pre class="src src-bash">snmpbulkwalk -v 3 -l priv -u template-lockywolf <span style="font-style: italic;">\</span>
             -A <pass> -a SHA-256 <span style="font-style: italic;">\</span>
             -X <pass> -x AES128 <span style="font-style: italic;">\</span>
             localhost
</pre>
</div>

 <p>
 <b>Get one stat</b>
</p>

 <div class="org-src-container">
 <pre class="src src-bash">snmpbulkwalk -v 3 -l priv -u template-lockywolf <span style="font-style: italic;">\</span>
             -A <pass> -a SHA-256 <span style="font-style: italic;">\</span>
             -X <pass> -x AES128 <span style="font-style: italic;">\</span>
             localhost IF-MIB::ifNumber.0
</pre>
</div>

 <p>
 <b>Explain the meaning of a MIB.</b>
</p>

 <div class="org-src-container">
 <pre class="src src-bash">snmptranslate -Td IF-MIB::ifNumber.0
</pre>
</div>

 <p>
 <b>Print a table</b>
</p>

 <div class="org-src-container">
 <pre class="src src-bash">snmptable  -v 3 -l priv -u template-lockywolf <span style="font-style: italic;">\</span>
               -A <pass> -a SHA-256 <span style="font-style: italic;">\</span>
               -X <pass> -x AES128 <span style="font-style: italic;">\</span>
               localhost ipNetToMedia
</pre>
</div>

 <p>
 <b>Config utility</b>
</p>

 <div class="org-src-container">
 <pre class="src src-bash">snmpconf
</pre>
</div>

 <p>
 <b>Set values</b>
</p>

 <div class="org-src-container">
 <pre class="src src-bash">smtpset
</pre>
</div>

 <p>
Not all systems support  <code>smtpset</code>, and each time it is worth debugging the issue separately.
But, in principle, it can be very efficient.
</p>

 <p>
 <b>Agents contacting the manager</b>
</p>

 <p>
Run  <code>snmptrapd</code> to collect data.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-01-15_Reading-SNMP-Mastery-by-Michael-W-Lucas.d/index.html"/>
  <id>https://lockywolf.net/2025-01-15_Reading-SNMP-Mastery-by-Michael-W-Lucas.d/index.html</id>
  <updated>2026-01-15T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;Cyberpunk 2020&quot; from Talsorian Games</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “Cyberpunk 2020” from Talsorian Games</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Wonderful-citations-from-a-game-book">1. Wonderful citations from a game book</a>
 <ul> <li> <a href="#Whether-it-takes-committing-dangerous-place,-filled-with-people-crimes,-defying-authority-or-even-outright-revolution,-the-quintessential-/Cyberpunk/-character-is-a-rebel-with-a-cause.">1.1. Whether it takes committing dangerous place, filled with people crimes, defying authority or even outright revolution, the quintessential  <i>Cyberpunk</i> character is a rebel with a cause.</a></li>
 <li> <a href="#media-special-ability:-Credibility.-The-ability-to-have-people-believe-what-you-are-saying-while-in-your-on-air-persona.">1.2. Media Special Ability: Credibility. The ability to have people believe what you are saying while in your on-air persona.</a></li>
 <li> <a href="#technoshock:-When-technology-outstrips-people's-ability-to-comprehend-or-fit-it-into-their-lives.-Suddenly,-people-freak-out.-They-get-irrational;-violent.-Families-shatter;-relationships-tear-apart.-People-feel-helpless-in-the-face-of-the-Universe.-Eventually,-the-whole-society-grinds-to-a-halt,-the-victim-of-a-mass-psychosis.-That's-what-we-now-call-the-Collapse.">1.3. Technoshock: When technology outstrips people’s ability to comprehend or fit it into their lives. Suddenly, people freak out. They get irrational; violent. Families shatter; relationships tear apart. People feel helpless in the face of the Universe. Eventually, the whole society grinds to a halt, the victim of a mass psychosis. That’s what we now call the Collapse.</a></li>
 <li> <a href="#If-you-live-to-rock,-this-is-where-you-belong.-Rockerboys-are-the-street-poets,-social-consciences-and-rebels-of-the-2000's.-With-the-advent-of-digital-porta-studios-and-garage-laser-disk-mastering,-every-Rocker-with-a-message-can-take-it-to-the-street;-put-it-in-the-record-stores,-bounce-it-off-the-comsats.-Sometimes,-this-message-isn't-something-the-Corporations-or-the-Government-wants-to-hear.-Sometimes-what-you-say-is-going-to-get-right-in-the-faces-of-the-powerful-people-who-really-run-this-world.-But-you-don't-care,-because-as-a-Rockerboy,-you-know-it's-your-place-to-challenge-authority,-whether-in-straight-out-protest-songs-that-tell-it-like-it-is,-or-just-by-playing-kick-ass-rock-n'-roll-to-get-the-people-away-from-the-1V-sets-and-into-the-Streets.-You-have-a-proud-history-as-a-Rockerboy-Dylan,-Springsteen,-Who,-Elvis,-the-Stones--the-legions-of-hardrock-heroes-who-told-the-truth-with-screaming-guitars-and-gut-honest-lyrics">1.4. If you live to rock, this is where you belong. Rockerboys are the street poets, social consciences and rebels of the 2000’s. With the advent of digital porta-studios and garage laser disk mastering, every Rocker with a message can take it to the street; put it in the record stores, bounce it off the comsats. Sometimes, this message isn’t something the Corporations or the Government wants to hear. Sometimes what you say is going to get right in the faces of the powerful people who really run this world. But you don’t care, because as a Rockerboy, you know it’s your place to challenge authority, whether in straight-out protest songs that tell it like it is, or just by playing kick-ass rock n’ roll to get the people away from the 1V sets and into the Streets. You have a proud history as a Rockerboy-Dylan, Springsteen, Who, Elvis, the Stones- the legions of hardrock heroes who told the truth with screaming guitars and gut-honest lyrics</a></li>
 <li> <a href="#Sooner-or-later,-a-faster-program-or-programmer's-going-to-catch-up;-reach-out-with-electronic-fingers-through-your-interface-plugs,-and-stop-your-heart.">1.5. Sooner or later, a faster program or programmer’s going to catch up; reach out with electronic fingers through your interface plugs, and stop your heart.</a></li>
 <li> <a href="#It-isn't-easy.-They've-tried-to-pressure-your-Mediacorp-dozens-of-times.-You've-had-stories-suppressed-once,-Corporate-pressure-forced-them-to-cancel-your-news-show.-Each-time,-you-went-to-the-top,-backed-by-your-news-director-and-your-crew,-and-fought-to-get-the-story-out.">1.6. It isn’t easy. They’ve tried to pressure your Mediacorp dozens of times. You’ve had stories suppressed-once, Corporate pressure forced them to cancel your news show. Each time, you went to the top, backed by your news director and your crew, and fought to get the story out.</a></li>
 <li> <a href="#Not-a-quotation,-but-it-is-interesting-that-Cyberpunk-calls-hired-guns-%22Solos%22.">1.7. Not a quotation, but it is interesting that Cyberpunk calls hired guns “Solos”.</a></li>
</ul></li>
 <li> <a href="#Modelling-a-character-and-a-human-life">2. Modelling a character and a human life</a>
 <ul> <li> <a href="#Character-design">2.1. Character design</a>
 <ul> <li> <a href="#Stats-(built-in-traits)">2.1.1. Stats (built-in traits)</a></li>
 <li> <a href="#Background">2.1.2. Background</a></li>
 <li> <a href="#Skills">2.1.3. Skills</a></li>
 <li> <a href="#Equipment">2.1.4. Equipment</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Interactions">3. Interactions</a>
 <ul> <li> <a href="#Combat-and-Internet">3.1. Combat and Internet</a></li>
 <li> <a href="#Medicine">3.2. Medicine</a></li>
 <li> <a href="#Companies">3.3. Companies</a></li>
</ul></li>
 <li> <a href="#Memos">4. Memos</a>
 <ul> <li> <a href="#Cyberpunk-loves-martial-arts">4.1. Cyberpunk loves martial arts</a></li>
 <li> <a href="#Claws-and-wildlife">4.2. Claws and wildlife</a></li>
 <li> <a href="#Quadratic-difficulty">4.3. Quadratic difficulty</a></li>
 <li> <a href="#A-facedown">4.4. A facedown</a></li>
 <li> <a href="#Combat,-Medicing,-Equipment">4.5. Combat, Medicing, Equipment</a></li>
 <li> <a href="#Internet">4.6. Internet</a></li>
 <li> <a href="#Entourage-and-background-material">4.7. Entourage and background material</a></li>
 <li> <a href="#Screemsheets-and-theatre">4.8. Screemsheets and theatre</a></li>
 <li> <a href="#Organisations">4.9. Organisations</a></li>
 <li> <a href="#Plot-twists">4.10. Plot twists</a></li>
</ul></li>
 <li> <a href="#%22Never-fade-away%22">5. “Never fade away”</a></li>
 <li> <a href="#Unknown-words">6. Unknown words</a></li>
</ul></div>
</nav> <figure id="orgb642043"> <img src="./01_CP3002.2_Cyberpunk_2020_The_Second_Edition_Book_Cover_CP2020.jpg" alt="01_CP3002.2_Cyberpunk_2020_The_Second_Edition_Book_Cover_CP2020.jpg"></img></figure> <p>
Why did I even start reading a book on a tabletop roleplaying game?
</p>

 <p>
Many years ago I used to play a lot of LARP.
There are both positive and negative effects to it, but what LARP is teaching almost all of its participants indiscriminately is the separation between reality and fantasy.
This separation is very prominent not just during games, when otherwise normal people assert the roles of characters in a game, but also in the very effect of the LARP “community” being seen from the outside world as a bunch of freaks with wooden swords.
“They are dreaming, we are living.”
</p>

 <p>
However, after “The Matrix” (1999)… or “Inception” (2010) and the triumphant march of te Smartphone, things changed.
The Smartphone has delivered computing right to each person’s pocket.
And computing is very much something like “automatic imagination”, and while imagination used to be mostly reliant on human brainpower in the old world, the Smartphone made sharing imagination easy.
</p>

 <p>
Imagination is a great thing, and we all used to be praising it immensely in the times of old.
But it turns out that when imagination becomes a commodity, its value greatly diminishes, because imagining things that are unrealistic is much easier than imagining things which behave close to how real things behave.
And it turns out that supplying people with a cheap source of low quality imagination had unintended consequences, namely that it gave people a lot of role model games to inadvertently introduce into their life.
Now “games” have always accompanied us even in the classical world, and Eric Berne has even written a book on how playing games destroys human lives.
Games/models are very powerful things, they let people analyse phenomena without actually risking life/health/resources on participating in those phenomena.
But games can, at the same time, be a devastatingly powerful weapon/drug, when they are being substituted for real things.
In Berne’s analysis, neurosis happens when a selfish self-interest is substituted by a model which is easier to play, but which provides a much lower payoff.
</p>

 <p>
Smartphones, however, have provided the people with an infinite supply of low-quality games to play inside their heads.
The most prominent example would be religions, people believing in the irrational.
And I would like to most emphasize the “new” religions, similar to “New Age”, because “old” religions are too complex phenomena.
City dwellers enjoy having those “dreamcatcher” adornments in their flats, because it is, seemingly, giving them all the niceties of having a faith, the feeling of belonging, the feeling of magical, the feeling of filia, without any downsides of having to comply with the moral code of any classical system of beliefs.
</p>

 <p>
Now do not get me wrong, people have always been playing games.
However, with the advent of a technological society, that is the society which has become too hard to comprehend and to make straightforward links between good and bad, games started to pervade our lives to a degree previously unimaginable.
I have mentioned “New Age religions”, because they are self-evidently games, however the amount of examples is so numerous that it is even hard to describe it meaningfully.
</p>

 <p>
Example 1: “This medicine helps me”.
</p>

 <p>
Antibiotics against common cold are the most famous game in medicine.
In more sinister cases it might happen to be “Paracetamol against flu”.
</p>

 <p>
Example 2: “Our company needs an SMM person”.
</p>

 <p>
Nobody really knows why and what for, but it is nice when people can find our name in a WeChat or Telegram directory.
</p>

 <p>
“Bullshit jobs”, “climate activism”, “democracy”, “patriotic activism”, “healthy lifestyle”, “vegetarianism”, “DIY”, and so on, and so on, are often “semi-games”.
They do have “some” benefit from the point of view of selfish self-interest, but seemingly way less than we expect them to be.
</p>

 <p>
So why a tabletop game?
The issue with LARP is that LARP is (a) limited in scope, usually severely, (b) still has a high degree of connection to reality.
Tabletop games are, on the other hand, as detached from reality as is possible, even more than computer games.
Computer games at least provide realistic visual effects on your screen, whereas TRPGs are purely inside your head, so they are, in some sense, the best possible implementation of the very idea of modelling.
</p>

 <p>
As a separate, but hopefully equally convincing argument, do you know who plays most of the TTRPGs in the world?
The military.
They are playing so-called “wargames” all the time as a prudent way of preparing for future contingencies.
So why shouldn’t we do the same, but for our civilian contingencies?
</p>

 <p>
Why Cyberpunk 2020?
There are many game systems: GURPS, Classic DnD, ADnD, Cyberpunk, Warhammer, and so on, and so forth.
Perhaps the most straightforward choice is GURPS, as it is designed to be aa one-fits-all solution, and be capable of modelling everything that can be modelled.
</p>

 <p>
However, I am planning to read a TRPG HOWTO with the aim of modelling “everyday life” of a person in 2024, so it seems that choosing a game system that comes with a pre-designed setting, which is essentially mimicking the life we are living in, is a permissible cheat, allowing one to save time on “designing the universe”, given that attention is paid to throwing away the bits that are intentionally aimed at titillating teenagers.
</p>

 <section id="outline-container-Wonderful-citations-from-a-game-book" class="outline-2"> <h2 id="Wonderful-citations-from-a-game-book"> <span class="section-number-2">1.</span>  <a href="#Wonderful-citations-from-a-game-book">Wonderful citations from a game book</a></h2>
 <div class="outline-text-2" id="text-Wonderful-citations-from-a-game-book">
</div>

 <div id="outline-container-Whether-it-takes-committing-dangerous-place,-filled-with-people-crimes,-defying-authority-or-even-outright-revolution,-the-quintessential-/Cyberpunk/-character-is-a-rebel-with-a-cause." class="outline-3">
 <h3 id="Whether-it-takes-committing-dangerous-place,-filled-with-people-crimes,-defying-authority-or-even-outright-revolution,-the-quintessential-/Cyberpunk/-character-is-a-rebel-with-a-cause."> <span class="section-number-3">1.1.</span>  <a href="#Whether-it-takes-committing-dangerous-place,-filled-with-people-crimes,-defying-authority-or-even-outright-revolution,-the-quintessential-/Cyberpunk/-character-is-a-rebel-with-a-cause.">Whether it takes committing dangerous place, filled with people crimes, defying authority or even outright revolution, the quintessential  <i>Cyberpunk</i> character is a rebel with a cause.</a></h3>
 <div class="outline-text-3" id="text-Whether-it-takes-committing-dangerous-place,-filled-with-people-crimes,-defying-authority-or-even-outright-revolution,-the-quintessential-/Cyberpunk/-character-is-a-rebel-with-a-cause.">
 <p>
When you are robbing people for money, you are a robber, when you are requisitioning property, you are a freedom fighter.
</p>
</div>
</div>

 <div id="outline-container-media-special-ability:-Credibility.-The-ability-to-have-people-believe-what-you-are-saying-while-in-your-on-air-persona." class="outline-3">
 <h3 id="media-special-ability:-Credibility.-The-ability-to-have-people-believe-what-you-are-saying-while-in-your-on-air-persona."> <span class="section-number-3">1.2.</span>  <a href="#media-special-ability:-Credibility.-The-ability-to-have-people-believe-what-you-are-saying-while-in-your-on-air-persona.">Media Special Ability: Credibility. The ability to have people believe what you are saying while in your on-air persona.</a></h3>
 <div class="outline-text-3" id="text-media-special-ability:-Credibility.-The-ability-to-have-people-believe-what-you-are-saying-while-in-your-on-air-persona.">
 <p>
This a hilariously pervasive game.
When you are talking to someone, you’re his friend, when you register a Telegram channel, give it a fancy name, and start creating “posts”, you magically attain that “media credibility” which makes people “follow” you, and which is so fiendishly seductive that not even a few of my fiends fell victim to it.
</p>
</div>
</div>

 <div id="outline-container-technoshock:-When-technology-outstrips-people's-ability-to-comprehend-or-fit-it-into-their-lives.-Suddenly,-people-freak-out.-They-get-irrational;-violent.-Families-shatter;-relationships-tear-apart.-People-feel-helpless-in-the-face-of-the-Universe.-Eventually,-the-whole-society-grinds-to-a-halt,-the-victim-of-a-mass-psychosis.-That's-what-we-now-call-the-Collapse." class="outline-3">
 <h3 id="technoshock:-When-technology-outstrips-people's-ability-to-comprehend-or-fit-it-into-their-lives.-Suddenly,-people-freak-out.-They-get-irrational;-violent.-Families-shatter;-relationships-tear-apart.-People-feel-helpless-in-the-face-of-the-Universe.-Eventually,-the-whole-society-grinds-to-a-halt,-the-victim-of-a-mass-psychosis.-That's-what-we-now-call-the-Collapse."> <span class="section-number-3">1.3.</span>  <a href="#technoshock:-When-technology-outstrips-people's-ability-to-comprehend-or-fit-it-into-their-lives.-Suddenly,-people-freak-out.-They-get-irrational;-violent.-Families-shatter;-relationships-tear-apart.-People-feel-helpless-in-the-face-of-the-Universe.-Eventually,-the-whole-society-grinds-to-a-halt,-the-victim-of-a-mass-psychosis.-That's-what-we-now-call-the-Collapse.">Technoshock: When technology outstrips people’s ability to comprehend or fit it into their lives. Suddenly, people freak out. They get irrational; violent. Families shatter; relationships tear apart. People feel helpless in the face of the Universe. Eventually, the whole society grinds to a halt, the victim of a mass psychosis. That’s what we now call the Collapse.</a></h3>
 <div class="outline-text-3" id="text-technoshock:-When-technology-outstrips-people's-ability-to-comprehend-or-fit-it-into-their-lives.-Suddenly,-people-freak-out.-They-get-irrational;-violent.-Families-shatter;-relationships-tear-apart.-People-feel-helpless-in-the-face-of-the-Universe.-Eventually,-the-whole-society-grinds-to-a-halt,-the-victim-of-a-mass-psychosis.-That's-what-we-now-call-the-Collapse.">
 <p>
Turns out that people around you believe in stuff which is radically different from what you believe in.
Partly because your degree of self-reflection is good enough to at least spot a few games people are playing, and they literally take things at face value.
</p>
</div>
</div>

 <div id="outline-container-If-you-live-to-rock,-this-is-where-you-belong.-Rockerboys-are-the-street-poets,-social-consciences-and-rebels-of-the-2000's.-With-the-advent-of-digital-porta-studios-and-garage-laser-disk-mastering,-every-Rocker-with-a-message-can-take-it-to-the-street;-put-it-in-the-record-stores,-bounce-it-off-the-comsats.-Sometimes,-this-message-isn't-something-the-Corporations-or-the-Government-wants-to-hear.-Sometimes-what-you-say-is-going-to-get-right-in-the-faces-of-the-powerful-people-who-really-run-this-world.-But-you-don't-care,-because-as-a-Rockerboy,-you-know-it's-your-place-to-challenge-authority,-whether-in-straight-out-protest-songs-that-tell-it-like-it-is,-or-just-by-playing-kick-ass-rock-n'-roll-to-get-the-people-away-from-the-1V-sets-and-into-the-Streets.-You-have-a-proud-history-as-a-Rockerboy-Dylan,-Springsteen,-Who,-Elvis,-the-Stones--the-legions-of-hardrock-heroes-who-told-the-truth-with-screaming-guitars-and-gut-honest-lyrics" class="outline-3">
 <h3 id="If-you-live-to-rock,-this-is-where-you-belong.-Rockerboys-are-the-street-poets,-social-consciences-and-rebels-of-the-2000's.-With-the-advent-of-digital-porta-studios-and-garage-laser-disk-mastering,-every-Rocker-with-a-message-can-take-it-to-the-street;-put-it-in-the-record-stores,-bounce-it-off-the-comsats.-Sometimes,-this-message-isn't-something-the-Corporations-or-the-Government-wants-to-hear.-Sometimes-what-you-say-is-going-to-get-right-in-the-faces-of-the-powerful-people-who-really-run-this-world.-But-you-don't-care,-because-as-a-Rockerboy,-you-know-it's-your-place-to-challenge-authority,-whether-in-straight-out-protest-songs-that-tell-it-like-it-is,-or-just-by-playing-kick-ass-rock-n'-roll-to-get-the-people-away-from-the-1V-sets-and-into-the-Streets.-You-have-a-proud-history-as-a-Rockerboy-Dylan,-Springsteen,-Who,-Elvis,-the-Stones--the-legions-of-hardrock-heroes-who-told-the-truth-with-screaming-guitars-and-gut-honest-lyrics"> <span class="section-number-3">1.4.</span>  <a href="#If-you-live-to-rock,-this-is-where-you-belong.-Rockerboys-are-the-street-poets,-social-consciences-and-rebels-of-the-2000's.-With-the-advent-of-digital-porta-studios-and-garage-laser-disk-mastering,-every-Rocker-with-a-message-can-take-it-to-the-street;-put-it-in-the-record-stores,-bounce-it-off-the-comsats.-Sometimes,-this-message-isn't-something-the-Corporations-or-the-Government-wants-to-hear.-Sometimes-what-you-say-is-going-to-get-right-in-the-faces-of-the-powerful-people-who-really-run-this-world.-But-you-don't-care,-because-as-a-Rockerboy,-you-know-it's-your-place-to-challenge-authority,-whether-in-straight-out-protest-songs-that-tell-it-like-it-is,-or-just-by-playing-kick-ass-rock-n'-roll-to-get-the-people-away-from-the-1V-sets-and-into-the-Streets.-You-have-a-proud-history-as-a-Rockerboy-Dylan,-Springsteen,-Who,-Elvis,-the-Stones--the-legions-of-hardrock-heroes-who-told-the-truth-with-screaming-guitars-and-gut-honest-lyrics">If you live to rock, this is where you belong. Rockerboys are the street poets, social consciences and rebels of the 2000’s. With the advent of digital porta-studios and garage laser disk mastering, every Rocker with a message can take it to the street; put it in the record stores, bounce it off the comsats. Sometimes, this message isn’t something the Corporations or the Government wants to hear. Sometimes what you say is going to get right in the faces of the powerful people who really run this world. But you don’t care, because as a Rockerboy, you know it’s your place to challenge authority, whether in straight-out protest songs that tell it like it is, or just by playing kick-ass rock n’ roll to get the people away from the 1V sets and into the Streets. You have a proud history as a Rockerboy-Dylan, Springsteen, Who, Elvis, the Stones- the legions of hardrock heroes who told the truth with screaming guitars and gut-honest lyrics</a></h3>
 <div class="outline-text-3" id="text-If-you-live-to-rock,-this-is-where-you-belong.-Rockerboys-are-the-street-poets,-social-consciences-and-rebels-of-the-2000's.-With-the-advent-of-digital-porta-studios-and-garage-laser-disk-mastering,-every-Rocker-with-a-message-can-take-it-to-the-street;-put-it-in-the-record-stores,-bounce-it-off-the-comsats.-Sometimes,-this-message-isn't-something-the-Corporations-or-the-Government-wants-to-hear.-Sometimes-what-you-say-is-going-to-get-right-in-the-faces-of-the-powerful-people-who-really-run-this-world.-But-you-don't-care,-because-as-a-Rockerboy,-you-know-it's-your-place-to-challenge-authority,-whether-in-straight-out-protest-songs-that-tell-it-like-it-is,-or-just-by-playing-kick-ass-rock-n'-roll-to-get-the-people-away-from-the-1V-sets-and-into-the-Streets.-You-have-a-proud-history-as-a-Rockerboy-Dylan,-Springsteen,-Who,-Elvis,-the-Stones--the-legions-of-hardrock-heroes-who-told-the-truth-with-screaming-guitars-and-gut-honest-lyrics">
 <p>
He-he.
</p>

 <p>
The most interesting thing is that none of this has happened.
</p>

 <p>
We have the world shifted by whoever… programmers, gangsters, politicians, doctors, the military… but  <span class="underline">not</span> the musicians.
With the advent of YouTube and Bandcamp, all of those leaders of the crowd have entered the stable, as if it had always been their actual desire.
</p>

 <p>
Rock music has ossified forever in the 80s, and is not going back.
</p>
</div>
</div>

 <div id="outline-container-Sooner-or-later,-a-faster-program-or-programmer's-going-to-catch-up;-reach-out-with-electronic-fingers-through-your-interface-plugs,-and-stop-your-heart." class="outline-3">
 <h3 id="Sooner-or-later,-a-faster-program-or-programmer's-going-to-catch-up;-reach-out-with-electronic-fingers-through-your-interface-plugs,-and-stop-your-heart."> <span class="section-number-3">1.5.</span>  <a href="#Sooner-or-later,-a-faster-program-or-programmer's-going-to-catch-up;-reach-out-with-electronic-fingers-through-your-interface-plugs,-and-stop-your-heart.">Sooner or later, a faster program or programmer’s going to catch up; reach out with electronic fingers through your interface plugs, and stop your heart.</a></h3>
 <div class="outline-text-3" id="text-Sooner-or-later,-a-faster-program-or-programmer's-going-to-catch-up;-reach-out-with-electronic-fingers-through-your-interface-plugs,-and-stop-your-heart.">
</div>
</div>

 <div id="outline-container-It-isn't-easy.-They've-tried-to-pressure-your-Mediacorp-dozens-of-times.-You've-had-stories-suppressed-once,-Corporate-pressure-forced-them-to-cancel-your-news-show.-Each-time,-you-went-to-the-top,-backed-by-your-news-director-and-your-crew,-and-fought-to-get-the-story-out." class="outline-3">
 <h3 id="It-isn't-easy.-They've-tried-to-pressure-your-Mediacorp-dozens-of-times.-You've-had-stories-suppressed-once,-Corporate-pressure-forced-them-to-cancel-your-news-show.-Each-time,-you-went-to-the-top,-backed-by-your-news-director-and-your-crew,-and-fought-to-get-the-story-out."> <span class="section-number-3">1.6.</span>  <a href="#It-isn't-easy.-They've-tried-to-pressure-your-Mediacorp-dozens-of-times.-You've-had-stories-suppressed-once,-Corporate-pressure-forced-them-to-cancel-your-news-show.-Each-time,-you-went-to-the-top,-backed-by-your-news-director-and-your-crew,-and-fought-to-get-the-story-out.">It isn’t easy. They’ve tried to pressure your Mediacorp dozens of times. You’ve had stories suppressed-once, Corporate pressure forced them to cancel your news show. Each time, you went to the top, backed by your news director and your crew, and fought to get the story out.</a></h3>
 <div class="outline-text-3" id="text-It-isn't-easy.-They've-tried-to-pressure-your-Mediacorp-dozens-of-times.-You've-had-stories-suppressed-once,-Corporate-pressure-forced-them-to-cancel-your-news-show.-Each-time,-you-went-to-the-top,-backed-by-your-news-director-and-your-crew,-and-fought-to-get-the-story-out.">
 <p>
Hm… also didn’t happen.
MSM are producing garbage, and the independent teams are producing the hot stuff.
But maybe the independent teams are just the coverage for the MSM?
Anyway, this is all much smarter and less straightforward.
</p>
</div>
</div>



 <div id="outline-container-Not-a-quotation,-but-it-is-interesting-that-Cyberpunk-calls-hired-guns-%22Solos%22." class="outline-3">
 <h3 id="Not-a-quotation,-but-it-is-interesting-that-Cyberpunk-calls-hired-guns-%22Solos%22."> <span class="section-number-3">1.7.</span>  <a href="#Not-a-quotation,-but-it-is-interesting-that-Cyberpunk-calls-hired-guns-%22Solos%22.">Not a quotation, but it is interesting that Cyberpunk calls hired guns “Solos”.</a></h3>
 <div class="outline-text-3" id="text-Not-a-quotation,-but-it-is-interesting-that-Cyberpunk-calls-hired-guns-%22Solos%22.">
 <p>
I mean we do live in a lonely world, but in most military professions the key thing is the concentration of force.
Literally the opposite of “soloing”.
It does seem extremely seductive to sell to the people the promise of “mighty Solos” being able to achieve goals which can only be achieved by crude collective action, such as mobilising a country to fight a war.
</p>
</div>
</div>
</section> <section id="outline-container-Modelling-a-character-and-a-human-life" class="outline-2"> <h2 id="Modelling-a-character-and-a-human-life"> <span class="section-number-2">2.</span>  <a href="#Modelling-a-character-and-a-human-life">Modelling a character and a human life</a></h2>
 <div class="outline-text-2" id="text-Modelling-a-character-and-a-human-life">
 <p>
What constitutes a human life?
What makes a human different from a character in a book?
In some sense, nothing, except the degree of being thought through.
</p>

 <p>
What the “Cyberpunk 2020” book is giving us all the tinsel thrown away?
It is giving us a model of human life, a set of base parameters with respect to which to resolve his traits and his life.
So let us read the contents of the book and see which aspects of life it suggests modelling.
</p>

 <p>
Digital (quantitative) modelling:
</p>

 <ol class="org-ol"> <li>Role</li>
 <li>Built-in traits (such as body constitution and empathy)</li>
 <li>Background (pre-history)</li>
 <li>Achievable (learnable) skills</li>
 <li>Private property</li>
 <li>One-to-many social interactions (fashion, media)</li>
 <li>Combat</li>
 <li>Medicine</li>
 <li>Interaction with robots (the Internet, Netrunning, Programming)</li>
 <li>Engineering (only drug design)</li>
</ol> <p>
Narrative (qualitative) modelling:
</p>

 <ol class="org-ol"> <li>Many-to-many interactions (megacorporations)</li>
 <li>Many-to-all and one-to-all interactions (local, city government)</li>
</ol> <p>
Things almost not modelled:
</p>

 <ol class="org-ol"> <li>Engineering beyond drugs</li>
 <li>Research</li>
 <li>Commerce</li>
 <li>Creativity
 <ol class="org-ol"> <li>which is actually very strange, because there actually is a whole Role for art performers, the “rockerboys”</li>
</ol></li>
</ol></div>


 <div id="outline-container-Character-design" class="outline-3">
 <h3 id="Character-design"> <span class="section-number-3">2.1.</span>  <a href="#Character-design">Character design</a></h3>
 <div class="outline-text-3" id="text-Character-design">
 <p>
When I was a kid, my classmates were binging on filling in “questioners”, like, fill-in forms printed on the back of middle-school copybooks.
People LOVE fitting themselves into those tiny square boxes.
</p>

 <p>
Are you a day person or a night person?:
</p>
 <ol class="org-ol"> <li>Day</li>
 <li>Night</li>
 <li>Third-bird</li>
</ol> <p>
This is how initially Facebook and Vkontakte enthralled us: “We are interested in YOU”.
</p>
</div>

 <div id="outline-container-Stats-(built-in-traits)" class="outline-4">
 <h4 id="Stats-(built-in-traits)"> <span class="section-number-4">2.1.1.</span>  <a href="#Stats-(built-in-traits)">Stats (built-in traits)</a></h4>
 <div class="outline-text-4" id="text-Stats-(built-in-traits)">
 <p>
Stats are what Cyberpunk authors consider to be innate, or at least hard to modify traits.
</p>

 <p>
9 to 90 by a dice roll.
</p>

 <ol class="org-ol"> <li>Intelligence (generalised “cleverness”)</li>
 <li>Reflexes (generalised “dexterity”)</li>
 <li>Cool (generalised “resist”)</li>
 <li>Technical ability (generalised “skillfullness”) :: while I certainly see why this is not Int, I don’t understand why this is a Stat, not a Skill</li>
 <li>Luck :: add these points to the dice roll</li>
 <li>Attractiveness (generalised “charisma”)</li>
 <li>Movement :: Why is this not the same as “reflexes”?</li>
 <li>Empathy
 <ol class="org-ol"> <li>Humanity</li>
</ol></li>
 <li>Body (generalized “strength”)</li>
 <li>Body type modifier</li>
</ol> <p>
To be honest, all this looks like a complete crap.
This traits are so ill-defined and not independent, that I am baffled at trying to fit normal people into this skeleton.
The body description is particularly stupid and hard to assess even for myself, let alone other people.
</p>

 <p>
 <b>How I would model inborn characteristics myself?</b>
</p>

 <p>
Okay, first of all, I am tempted to partition the traits into physical and mental.
However…
However, it is not clear whether psychological traits are really “software” and not “hardware”.
And even my favourite Eric Berne was mentioning an (extremely dubious!) hypothesis that people are divided into endomorphic, mesomorphic, and ectomorphic.
</p>

 <p>
Anyway, I would try to mention the following immutable characteristics:
</p>

 <p>
 <b>Hardware</b>
</p>
 <ol class="org-ol"> <li>Height</li>
 <li>Constitution (bone weight)</li>
 <li>IQ</li>
 <li>Luck</li>
</ol> <p>
 <b>Software</b>
</p>
 <ol class="org-ol"> <li>Openness</li>
 <li>Conscientiousness</li>
 <li>Introversion</li>
 <li>Agreeableness</li>
 <li>Emotional stability</li>
</ol> <p>
Does this look like OCEAN?
Well, yes, because I literally took them from there.
</p>

 <p>
And then I would add “first order skills”, which are, in some sense “impossible to forget”.
</p>

 <ol class="org-ol"> <li>Muscle weight (STR)</li>
 <li>Muscle flexibility (AGI)</li>
 <li>Fat percentage (LOAD)</li>
 <li>Willpower (WILL)</li>
 <li>Memory (MEM)</li>
 <li>Empathy/perception (EMP)</li>
 <li>Attractiveness (ATT)</li>
 <li>Leadership (LEAD)</li>
</ol> <p>
First order skills would be limited by the immutable characteristics.
But even the immutable characteristics are not totally immutable, and are evolving in time.
So, in a good model we would have the system adjust them on each turn.
</p>

 <p>
When you are writing your own new Facebook, why don’t you check people on these traits on registration?
</p>
</div>
</div>

 <div id="outline-container-Background" class="outline-4">
 <h4 id="Background"> <span class="section-number-4">2.1.2.</span>  <a href="#Background">Background</a></h4>
 <div class="outline-text-4" id="text-Background">
 <p>
Background is both interesting and not very much.
It is interesting, because we like to remember things, and it is filling our roster and gives us the sense of our life being fulfilling.
</p>

 <p>
However, for the purposes of modelling roles and scenarios, RPG-style, background is not terribly important, it is essentially a “historicist” misconception.
</p>

 <p>
Nevertheless, when you are writing your own “Facebook” for keeping files on people, this “background” thing indicates a few database columns to prepare for data mining people’s connections.
</p>
</div>
</div>

 <div id="outline-container-Skills" class="outline-4">
 <h4 id="Skills"> <span class="section-number-4">2.1.3.</span>  <a href="#Skills">Skills</a></h4>
 <div class="outline-text-4" id="text-Skills">
 <p>
So, Cyberpunk’s model of “skills” is that they are added to inborn stats when doing something.
They give a lot of skills for teenagers to enjoy, but overall, this surprisingly resembles skills as they are indicated on LinkedIn.
I wonder if it is hard to make a crawler for LinkedIn to collect all those skills and find correlations.
</p>

 <p>
I will not list the skills here, it’s not useful, but finding a full list of human skills would be interesting.
</p>
</div>
</div>

 <div id="outline-container-Equipment" class="outline-4">
 <h4 id="Equipment"> <span class="section-number-4">2.1.4.</span>  <a href="#Equipment">Equipment</a></h4>
 <div class="outline-text-4" id="text-Equipment">
 <p>
“You will own nothing and you will be happy.”
The game has a simplification here, but “everything you own you have to carry with you” approach is surprisingly similar to what I see around.
Having a lot of stuff is inconvenient.
</p>

 <p>
Property does not even appear in the book as something to own.
“Nomads” have bikes and caravans.
“Normal people” rent something to sleep at “per night”, which is radically different from how we rent flats now.
</p>

 <p>
Regarding body types and inventory.
According to the book, a 6-point body “average body type” should be able to carry about 60kg.
To me this seems too generous to a person, but this surprisingly mathches the “marching load” of modern soldier.
This probably makes my own body type 3-4, and a typical woman even less.
</p>

 <p>
The guns part I am going to skip, because this part of the model is designed for being spectacular, not predicative.
</p>

 <p>
The interesting thing here is “smart goggles”, which are definitely worth exploring.
</p>

 <p>
One more fun thing is that “cybernetic” versions of ordinary stuff seem to cost “more” than old-school ones, whereas nowadays we know that the opposite is going to happen – buying a  <span class="underline">non-cyber</span> things becomes harder and more expensive.
</p>
</div>
</div>
</div>
</section> <section id="outline-container-Interactions" class="outline-2"> <h2 id="Interactions"> <span class="section-number-2">3.</span>  <a href="#Interactions">Interactions</a></h2>
 <div class="outline-text-2" id="text-Interactions">
 <p>
 <b>Minor interactions</b>
</p>

 <ol class="org-ol"> <li>Cyberfashion :: buy a new smartphone</li>
 <li>Cyberpsychosis :: love of digital likes and stickers to an greater extent than living people. So far we do not seem to have those. Quite on the opposite, people become excessively social with cybertech, rather than antisocial. Or may be they do, we just don’t see it.</li>
 <li>Cyberware :: So far most of the wonderful cyberware implants do not yet exist. We do have dental braces, pacemakers, insuline pumps, tattoos, but that is  basically it.</li>
 <li>Jobs :: TODO</li>
</ol></div>

 <div id="outline-container-Combat-and-Internet" class="outline-3">
 <h3 id="Combat-and-Internet"> <span class="section-number-3">3.1.</span>  <a href="#Combat-and-Internet">Combat and Internet</a></h3>
 <div class="outline-text-3" id="text-Combat-and-Internet">
 <p>
Can I use combat to model employees doing assignments?
</p>

 <p>
The rules have two kinds of combat, a real-life combat and “internet hacking”.
The combat part is worth trying to play once, just to see if it makes any sense, however I did not find it to be a particularly good model for the kind of combat seen in everyday life for me: that is verbal argumentation.
Verbal argumentation looks more like a card game, I think.
</p>

 <p>
Their model of the Internet looks just like another offline fight.
Again, maybe worth playing once or twice, but in reality this is not what cracking looks like.
</p>

 <p>
Their model of writing programs is not completely meaningless.
What they call “daemons”, of course, has no resemblance to real programs whatsoever, but I really liked that they have this “complexity” parameter, which increases when you stack program feature on top of a feature, and things become difficult to maintain and operate.
</p>
</div>
</div>

 <div id="outline-container-Medicine" class="outline-3">
 <h3 id="Medicine"> <span class="section-number-3">3.2.</span>  <a href="#Medicine">Medicine</a></h3>
 <div class="outline-text-3" id="text-Medicine">
 <p>
I am trying to think of something innovative that the game made me think of, but most things seem to be well-known so far, and those which could have been implemented, are already implemented.
</p>

 <ol class="org-ol"> <li>Cyber body parts</li>
 <li>Modified body parts</li>
 <li>Implanted devices</li>
 <li>Exoskeleton</li>
 <li>Self-guiding assistive devices. This is quite fun, imagine a drone flying around you and making videos.</li>
</ol> <p>
I doubt that we will ever get our medicine good enough to make “ripperdocs” a thing, but it occured to me that it would be worth “trying and testing” oneself once in a while for a “digital medical file”, which would be not just a boring Excel file like those scattered dentistries are, but rather a nicely-looking personal program.
</p>

 <p>
I wonder which body parameters are worth measuring?
And which are worth measuring off the employees?
</p>

 <p>
I mean, this is the world of “quantified self”, which is too deep to delve into here.
</p>
</div>
</div>


 <div id="outline-container-Companies" class="outline-3">
 <h3 id="Companies"> <span class="section-number-3">3.3.</span>  <a href="#Companies">Companies</a></h3>
 <div class="outline-text-3" id="text-Companies">
 <ol class="org-ol"> <li>Government</li>
 <li>Corporations</li>
 <li>Gangs</li>
 <li>Stationary Small businesses</li>
 <li>Precariates, like rockerboys and hired guns (Roaming small businesses)</li>
</ol> <p>
An additional chapter on “megacorps” gives a few quantitative characteristics of the megacorps, and they frankly do not impress as much as I expected.
They largely model corps in their manpower, total cost, and access to technology.
</p>

 <p>
I think there are many websites which to the same for existing companies in most developed countries.
</p>
</div>
</div>
</section> <section id="outline-container-Memos" class="outline-2"> <h2 id="Memos"> <span class="section-number-2">4.</span>  <a href="#Memos">Memos</a></h2>
 <div class="outline-text-2" id="text-Memos">
</div>

 <div id="outline-container-Cyberpunk-loves-martial-arts" class="outline-3">
 <h3 id="Cyberpunk-loves-martial-arts"> <span class="section-number-3">4.1.</span>  <a href="#Cyberpunk-loves-martial-arts">Cyberpunk loves martial arts</a></h3>
 <div class="outline-text-3" id="text-Cyberpunk-loves-martial-arts">
 <p>
I won’t even mention it, but it is hard to imagine anything less practical than martial arts in 2024.
But they are beautiful, and that is why people are attracted.
Do not get me wrong, exercise is good, and when exercise is made less boring that by introducing combative elements, it’s even better, but for all practical purposes, martial arts seem to be completely useless.
</p>
</div>
</div>

 <div id="outline-container-Claws-and-wildlife" class="outline-3">
 <h3 id="Claws-and-wildlife"> <span class="section-number-3">4.2.</span>  <a href="#Claws-and-wildlife">Claws and wildlife</a></h3>
 <div class="outline-text-3" id="text-Claws-and-wildlife">
 <p>
The amount of animals in our life is petering out.
Many people still have cats and dogs as pets, and there are wild birds and even stray dogs running around our cities, but compared to the amount of animals in the pre-modern society, it’s a grain of sand.
</p>

 <p>
It is funny how people’s attraction to animals wakes up in unexpected domains.
</p>

 <p>
Cyberpunk loves claws and fangs.
(“Scratchers” are augmented fingernails, and “rippers” are the kind of claws growing out of the fist, like the cinematic character Wolverine possesses, and “Slice ‘N Dice” is a monowire implant.)
</p>
</div>
</div>

 <div id="outline-container-Quadratic-difficulty" class="outline-3">
 <h3 id="Quadratic-difficulty"> <span class="section-number-3">4.3.</span>  <a href="#Quadratic-difficulty">Quadratic difficulty</a></h3>
 <div class="outline-text-3" id="text-Quadratic-difficulty">
 <p>
In Cyberpunk, getting a new level is quadratic in difficulty.
This is interesting, because it sort of feels more natural to have skills progress with exponentially increasing difficulty.
Maybe this is just to make games more fun, progress faster?
</p>
</div>
</div>

 <div id="outline-container-A-facedown" class="outline-3">
 <h3 id="A-facedown"> <span class="section-number-3">4.4.</span>  <a href="#A-facedown">A facedown</a></h3>
 <div class="outline-text-3" id="text-A-facedown">
 <p>
A facedown is a competition of willpowers before a fight begins.
It is an interesting concept.
Of course I participated in it, but it is interesting to have it articulated explicitly.
A “facedown” is essentially assessing the model of a challenge in your head, with an option of giving up a fight if you can’t win it.
</p>
</div>
</div>


 <div id="outline-container-Combat,-Medicing,-Equipment" class="outline-3">
 <h3 id="Combat,-Medicing,-Equipment"> <span class="section-number-3">4.5.</span>  <a href="#Combat,-Medicing,-Equipment">Combat, Medicing, Equipment</a></h3>
 <div class="outline-text-3" id="text-Combat,-Medicing,-Equipment">
 <p>
Well…
The game is for teenagers, what you expect?
The combats might be fun to try a couple of times, but I bet that all the cyber, nano, and genetic stuff that the book lists will be a nuisance rather than a source of excitement.
</p>

 <p>
It is noteworthy that medicine is all over the place in the game.
</p>
</div>
</div>


 <div id="outline-container-Internet" class="outline-3">
 <h3 id="Internet"> <span class="section-number-3">4.6.</span>  <a href="#Internet">Internet</a></h3>
 <div class="outline-text-3" id="text-Internet">
 <p>
Their model of the internet is not too interesting, but there are a few bits worth mentioning.
</p>

 <p>
That is total visualisation of everything.
I am not sure how this can be done, but maybe, just maybe, LLMs could be used for this.
</p>

 <p>
They claim that AIs, if and when they appear, will be only motivated by two things: curiosity and survival.
</p>

 <p>
The book has an interesting “guide” on creating “virtual worlds”, which are really what we call “computer games” nowadays.
</p>
</div>
</div>

 <div id="outline-container-Entourage-and-background-material" class="outline-3">
 <h3 id="Entourage-and-background-material"> <span class="section-number-3">4.7.</span>  <a href="#Entourage-and-background-material">Entourage and background material</a></h3>
 <div class="outline-text-3" id="text-Entourage-and-background-material">
 <p>
Background material for the game is a set of quite boring distills of some classical stereotypes and archetypes, greek, roman, a few medival, and a few modern.
</p>

 <p>
They try to do their best altering the narrative style, and I especially liked the “corporate jargon” piece.
</p>
</div>
</div>

 <div id="outline-container-Screemsheets-and-theatre" class="outline-3">
 <h3 id="Screemsheets-and-theatre"> <span class="section-number-3">4.8.</span>  <a href="#Screemsheets-and-theatre">Screemsheets and theatre</a></h3>
 <div class="outline-text-3" id="text-Screemsheets-and-theatre">
 <p>
The game is missing theatre, it only has Rockerboys.
However, it would be very much in the style of the 21st century to add one more level of abstraction (virtuality, similation) and allege that all of the “dark future” world only exists within a VR system, such as The Matrix.
This is why people engage in fighting so much: because it entertains them and keeps them busy with themselves, and not threatening those who wield the real power.
</p>
</div>
</div>

 <div id="outline-container-Organisations" class="outline-3">
 <h3 id="Organisations"> <span class="section-number-3">4.9.</span>  <a href="#Organisations">Organisations</a></h3>
 <div class="outline-text-3" id="text-Organisations">
 <p>
So what Cyberpunk suggest is that the world will have “weak” government and strong corporations, and normal people, in order to survive, will group into improvised gangs and clans.
</p>

 <p>
So far I do not really see any of that happening.
The government tries, indeed, to cut expenditure, but not in order to shrink.
</p>
</div>
</div>

 <div id="outline-container-Plot-twists" class="outline-3">
 <h3 id="Plot-twists"> <span class="section-number-3">4.10.</span>  <a href="#Plot-twists">Plot twists</a></h3>
 <div class="outline-text-3" id="text-Plot-twists">
 <p>
The books suggests a few scenarios to play, most of which are typical crime fiction scenarios.
One thing which is binding them together is the presence of a “double bottom”.
They all expect that whatever is happening is happening due to some deeper hidden motives, even though there might be normal people believing in the surface motives playing their roles.
</p>

 <p>
Well, this does make sense in a “very complex world”, even without the presence of the Internet or more advanced information technologies.
</p>
</div>
</div>
</section> <section id="outline-container-%22Never-fade-away%22" class="outline-2"> <h2 id="%22Never-fade-away%22"> <span class="section-number-2">5.</span>  <a href="#%22Never-fade-away%22">“Never fade away”</a></h2>
 <div class="outline-text-2" id="text-%22Never-fade-away%22">
 <p>
There are a lot practical tools to learn from game modelling of real life, but surprisingly little philosophy.
It’s like after Wittgenstein we have understood that philosophy is split into analytical and emotional (continental), and what the digital world is doing is that it is trying to solve continental problems with analytic methods, which looks very promising, because analytic methods are very powerful, but ultimately fails, because they are unfit for the purpose.
</p>

 <p>
However, there is one thing magnificently presented there, again, nothing new in it, but it follows nicely from the aesthetics of the book (and all the franchise, including the game Cyberpunk 2077).
</p>

 <blockquote>
 <p>
You will die, and nothing will remain of you, even though all of your life will be digitized, recorded, and perhaps even simulated according to the excellent model created by collecting all the possible data about your life in a digital cold storage. And everyone will forget about the real “you”, even if they can access all the records about your “digital persona”.
</p>
</blockquote>

 <p>
As an emotional illustration, here is the link to the wonderful song by the Cyberpunk 2077 creators, which is promising you the opposite, by actually, between the lines, admitting the above.
</p>

 <p>
 <a href="https://www.youtube.com/watch?v=P4bKZT_Eg4">Never Fade Away commissioned by Cyberpunk 2077 development team</a>
</p>
</div>
</section> <section id="outline-container-Unknown-words" class="outline-2"> <h2 id="Unknown-words"> <span class="section-number-2">6.</span>  <a href="#Unknown-words">Unknown words</a></h2>
 <div class="outline-text-2" id="text-Unknown-words">
 <ol class="org-ol"> <li>sporting :: “debutante is satin sporting” Clearly some kind of clothing, but I failed to find a decent example on DuckDuckGo images.</li>
 <li>panache :: literally feathers on a helmet, metaphorically pomp and showing-off</li>
 <li>swagger into :: behave in a pompous, superior, fashionable manner</li>
 <li>find a cause and  <span class="underline">go to the wall</span> with it :: to make an all-out effort, work strenuously</li>
 <li>pitch off :: some baseball-related thing</li>
 <li>get into a dustdown :: become involved in a heated argument, dispute, or fight</li>
 <li>“have a knack for” :: to be exceptionally proficient at (doing) something</li>
 <li>garden variety :: very common</li>
 <li>fisticuffs :: hand-to-hand fight</li>
 <li>blimp :: non-rigid airship</li>
 <li>put the lean on :: rely upon</li>
 <li>jimmy :: open a lock using a lockpick or a crowbar</li>
 <li>chaff :: straw or hay, cut up finely as food for cattle</li>
 <li>kibble :: coarsely ground oats</li>
 <li>paltry :: (usually ironically) of little monetary worth</li>
 <li>frack :: fracturing, usually mental</li>
 <li>cut loose :: behave in an uncontrolled, wild way</li>
 <li>hors de combat :: out of action</li>
 <li>distaff side :: women only, comes from a “spinning and weaving” skill</li>
 <li>iai-jutsu :: skill of quickly pulling a sword out of its sheath</li>
 <li>door gunner jacket :: US army specific jacket, for guys shooting out of a helicopter machinegun</li>
 <li>pull his weight :: do your share of work</li>
 <li>dregs :: sediment at the bottom of a liquid, metaphorically something very low status or quality</li>
 <li>hurtle :: throw something or yourself violently</li>
 <li>freewheeling :: unbound, unrestrained</li>
 <li>maim :: wound seriously, mutilate</li>
 <li>maggot :: larva of an insect, extremely revolting</li>
 <li>shroud :: a dress for the dead, especially when not well-fitting, metaphorically everything that covers</li>
 <li>lunge :: a sudden move forward, russian “ринуться”, “сделать выпад”</li>
 <li>hissing :: sound as if produced by a snake, unvoiced fricative</li>
 <li>fez :: a turkish cut conic hat, russian феска</li>
 <li>sibilant :: speaking using a lot of “s” sounds</li>
 <li>phreaking (phreeking) :: a neo-logism from the 80s, means hacking telephones</li>
 <li>honcho :: boss, squad leader</li>
 <li>hulking :: looking big and massive</li>
 <li>lash out :: make a sudden violent attack, as if with a lash/whip</li>
 <li>hole up :: go into a hole, shelter into a hole</li>
 <li>outback :: remote and desolated areas, usually in Australia</li>
 <li>shaggy :: having long, thick, uncombed hair</li>
 <li>brick-a-brack (brickabrack,bricabrac) :: miscelaneous collection of small articles, ornamental or sentimental</li>
 <li>curio (usually plural curios) :: a strange and interesting object, a curiosity</li>
 <li>decrepit :: worn-out from old age</li>
 <li>squalid :: extremely dirty and unpleasant</li>
 <li>robber baron :: derogatory term used to describe unethical working practices of the 19th century</li>
 <li>pen :: not a writing tool, no. a small corral for sheep or cattle, metaphorically prison</li>
 <li>con :: shorthand for “convict” (in a prison)</li>
 <li>inner city :: not “city centre” or “downtown” – bad districts located where “city centre” really should be</li>
 <li>nacelle :: gondola, especially of an aircraft</li>
 <li>grunginess :: being dirty, shabby, in disrepair</li>
 <li>dingy :: shabby, squalid, uncared-for</li>
 <li>stagger :: move forward in unsteady steps, tilting left-right, comes from a horse illness</li>
 <li>clutch :: grip or grasp tightly</li>
 <li>mugger :: robber, especially in a public place</li>
 <li>sludge :: solids separated from a suspension, using a filter, usually dirty and messy goo</li>
 <li>play for keeps :: play with intention to win</li>
 <li>to mug :: to rob</li>
 <li>spring-board :: a bendy piece of wood or plastic, used in sports to jump higher and further,  <span class="underline">not</span> “trampoline”</li>
 <li>harried (pp of harry) :: stressed, rushed, overly busy and preoccupied</li>
 <li>temporize :: act evasively, prolong a discussion intentionally,</li>
 <li>snick :: sharp clicking sound</li>
 <li>come to :: come back to one’s senses</li>
 <li>blot out :: to obscure, cover, hide</li>
 <li>smug :: irritatingly pleased with oneself</li>
 <li>shimmer :: shine tremulously or gleam faintly</li>
 <li>actinic :: a type of light glow characteristic to radioactive objects, emitting Cherenkov radiation, or just abnormal colour, what Russians would call acidic</li>
 <li>stretcher :: a litter for carrying wounded</li>
 <li>din :: loud noise, cacophony</li>
 <li>waldo :: a telefactor, a remote manipulation system, for surgery or working in hot zones</li>
 <li>reedy :: tall and thin</li>
 <li>to rend :: to tear in two</li>
 <li>to tousle :: to put into disorder, to muss</li>
 <li>lopsided :: not even, not the same on one side as on the other</li>
 <li>burly :: large, well-built, and muscular</li>
 <li>scowl :: wrinkle the brows, frowning in displeasure</li>
 <li>crummy :: bad, poor</li>
 <li>straddle :: mount, sit with legs on both sides, like a horse or a motorcycle</li>
 <li>swarthy :: dark-skinned, but not very much. like Middle-Asian</li>
 <li>smolder :: show signs of repressed anger</li>
 <li>bunched :: collected in a bunch (about fingers)</li>
 <li>prone :: lying face down</li>
 <li>whimper :: low intermittent sob</li>
 <li>edge out :: push someone (possibly yourself) further and further into the margins, until it is out</li>
 <li>draw a bead on :: aim a gun at</li>
 <li>bell out :: bend in the shape of a bell</li>
 <li>seared :: burned as if with an instrument</li>
 <li>shatter :: break into pieces, like glass</li>
 <li>ragged :: harsh-sounding, having unpleasant noise</li>
 <li>bolthole :: a hole in the wall, a backpassage</li>
 <li>to redline :: to tweak a device to its maximum setting</li>
 <li>perch :: a stick, such as a tree branch, which birds sit on, to perch=to sit like a bird</li>
 <li>combining :: (not “composing”) trawling for something, searching for something</li>
 <li>stuff it :: “shut up”</li>
 <li>hem in :: surround and enclose in a way that restricts movement</li>
 <li>contour couch :: ?</li>
 <li>hinge :: the thing that a door rotates around, those metallic bits which are connected to the door and the frame</li>
 <li>to snoop :: to peep, to sniff, to follow someone</li>
 <li>sundown :: sunset</li>
 <li>exude :: to flow out through the pores</li>
 <li>bid :: to give a command</li>
 <li>trickle :: very thin flow of water, tears, other liquid</li>
 <li>bozo :: a stupid, foolish, ridiculous person</li>
 <li>hosed :: ruined, messed up</li>
 <li>back beat :: even beat, as opposed to odd beats (outbeat)  <a href="https://youtube.com/watch?v=ixc8G6cwJyk">https://youtube.com/watch?v=ixc8G6cwJyk</a></li>
 <li>poised :: ready, prepared</li>
 <li>teetering :: precarious motion or situation, risking a fall or collapse</li>
 <li>dazzle :: blinding by overpowering the sensor</li>
 <li>skid :: the uncontrolled movement of a car when its wheels lock up due to overenthusiastic braking</li>
 <li>duck out :: depart quickly without attracting attention</li>
 <li>to pant :: breathe heavily, quickly</li>
 <li>hotwire :: start something (usually a car’s engine) without a key</li>
 <li>husk :: the outer shell of certain fruits, such as coconuts, metaphorically any remaining shells</li>
 <li>flail :: to extract grain from an ear</li>
 <li>festering :: having ulcers and being infected</li>
 <li>commandeer :: conscript and subjugate, but informally</li>
 <li>dabble :: to participate in an activity in a casual way</li>
 <li>to be on the take :: to take bribes</li>
 <li>fern bar :: bar aiming at single office workers, decorated with green stuff</li>
 <li>take in :: arrest</li>
 <li>hew :: cut town</li>
 <li>rough-hewn :: fixed expression for a brutal haircut</li>
 <li>flack jacket :: jacket from a reinforced fabric, used in the military for the protection from minor damage</li>
 <li>hassle :: (not minor annoyance one) make an argument with</li>
 <li>to lug :: to be pulled or dragged (now you you know where the word “luggage” comes from)</li>
 <li>altercation :: angry, heated dispute</li>
 <li>tag along :: join, accompany, follow (slang)</li>
 <li>to bust :: to arrest</li>
 <li>bouncer :: a person whose job is to throw away people from a bar if they misbehave</li>
 <li>to have a hit out on X :: be displeased with</li>
 <li>octogenarian :: a person aged 80 to 89, also the person born between 80 and 89</li>
 <li>speakeasy :: illegal, underground bar</li>
 <li>in a pinch :: in a difficult situation, when things go wrong</li>
 <li>no holds barred :: “holds” are actions, rabs, in greco-roman wrestling, so “no holds barred” means that all moves are permitted (in a debate, war or something)</li>
 <li>set somebody up :: to make it seem as if someone is guilty of something as a way of blackmail or punishment</li>
 <li>burlap bag :: large woven bag from burlap, a coarse cloth (дерюга)</li>
 <li>blare :: make a loud sound lacking human feeling, usually used as blare out, about a radio or a speaker box</li>
 <li>household word :: a renown person or brand, a celebrity name</li>
 <li>rip-roaring :: exciting, energetic, enthusiastic, loud and proud</li>
 <li>slog :: long, tedious walk or march, and by extension, labourious work</li>
 <li>withered :: shrunken, dried out, due to lack of interior and water</li>
 <li>roving :: wantering, travelling</li>
 <li>wacked out :: deranged</li>
 <li>cookie cutter :: metallic forms/shapes, to cut out cookies from dough, metaphorically fake smiles (shape of the moon crescent)</li>
 <li>his kick :: his hobby (slang)</li>
 <li>congeal :: become a gel, jelly, coagulate, metaphorically find likeminded people to hang out together</li>
 <li>crud :: dirt</li>
 <li>gunmetal :: bronze, but usually used as colour</li>
 <li>gutter :: sewer, especially on a road</li>
 <li>cool one’s jets :: restrain oneself, calm down intentionally</li>
 <li>hail :: like snow, but with ice, weather phenomenon,</li>
 <li>meld :: combine two smelt metals to produce a compound</li>
 <li>“the fold” :: the flock of sheep, often used as a group of fans</li>
 <li>teenybopper :: a child who squeezes out of her parents following the recent trends, such as fashion and music (winx, pokemon, barbie, lego-bla-bla)</li>
 <li>blow over :: pass naturally, be forgotten, disappear from consciousness</li>
 <li>turnpike :: turnstile, but in U.S. means a toll road</li>
 <li>zero/zero ejection :: what Russians would call a “pilot catapult” in an aircraft, to avoid a crash</li>
 <li>winch :: a simple tool for lifting heavy things, like you would see in a village well, a drum with a crank handle, and a rope which is winding around it. often seen on Jeep cars</li>
 <li>red fuming nitric acid :: красная дымящая азотная кислота</li>
 <li>CB radio :: Citizen-Band radio, radio installed in cars</li>
 <li>cutout :: middle-man in espionage</li>
 <li>shaft :: cause harm via deceit or treachery, a “shaft” is a tool similar to a man’s genital</li>
 <li>drop the ball :: screw up at doing something, often about government or contractors</li>
 <li>penalty box :: literally a place on a rink in hockey, but used as an euphemism for prison</li>
 <li>small time :: local or small, but official achievement, such as a district trophey</li>
 <li>go down :: to be recorded officially, such as strike a business deal</li>
 <li>preternatural :: paranormal</li>
 <li>tweak someone’s nose :: tease someone, provoke, usually someone stronger</li>
 <li>wild and wooly :: uncultured and without laws</li>
 <li>pal around :: hang out together, by extension, make a secret society</li>
 <li>kluge :: (not to be confused with kludge) a messy improvised device which should not work, but does, because it is done creatively, with inventiveness and skill</li>
 <li>warren :: (not Buffet and not Elizabeth) literally rabbit hole, set of tunnels and burrows, by extension a mazelike thing, a Labyrinth</li>
 <li>round out :: augment, improve something by adducing, usually a report or a dataset</li>
 <li>bunkhouse :: sleeping quarters, place with bunk beds</li>
 <li>caseload :: backlog for a person which works on cases, such as an attorney or a prosecutor</li>
 <li>mufti :: nominally a Muslim scholar, used metaphorically as “dressed in civilian clothing, not uniformed”</li>
 <li>a dive :: seedy bar, night club, or hideout</li>
 <li>hookup :: a connection, not necessarily with a hook, particularly used for illegal connections to someone’s phone line, Internet line, or power line. A booty call is not this meaning of the word.</li>
 <li>fink :: informer, teacher’s pet who tells everything to the teacher, dobber</li>
 <li>whip out :: pull something out with a sudden jerk, quickly draw</li>
 <li>down and dirty :: hands-on, very involved (to get dirty)</li>
 <li>topsoil :: upper level of soil, typically the best</li>
 <li>patsy :: fall guy, a person who is innocent but blamed for something</li>
 <li>slimeball :: literally a ball of slime, but figuratively somebody unpleasant and undesirable</li>
 <li>lean on :: rely upon, depend, but also with a feeling of coercion</li>
 <li>fence the metal :: ??? something robbery-related</li>
 <li>turboshaft :: gas-turbine engine for a helicopter</li>
 <li>gurney :: a stretcher having legs and wheels, used in hospitals</li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-03-02_Reading-Cyberpunk-2020/index.html"/>
  <id>https://lockywolf.net/2024-03-02_Reading-Cyberpunk-2020/index.html</id>
  <updated>2025-12-24T00:00:00+00:00</updated>
</entry>
<entry>
  <title>如何减肥 (How to lose weigh, Chinese.)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">如何减肥 (How to lose weigh, Chinese.)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E5%A6%82%E4%BD%95%E5%87%8F%E8%82%A5">1. 如何减肥</a>
 <ul> <li> <a href="#%E5%BA%8F%E8%A8%80">1.1. 序言</a></li>
 <li> <a href="#%E4%B8%BB%E8%A6%81%E5%86%85%E5%AE%B9%EF%BC%9A%E5%A6%82%E4%BD%95%E5%87%AD%E5%80%9F%E9%99%90%E5%88%B6%E8%90%A5%E5%85%BB%E5%80%BC%E7%9A%84%E6%91%84%E5%85%A5%EF%BC%8C%E4%BF%9D%E6%8C%81%E4%B8%80%E5%AE%9A%E7%9A%84%E4%BD%93%E9%87%8D%E3%80%82">1.2. 主要内容：如何凭借限制营养值的摄入，保持一定的体重。</a>
 <ul> <li> <a href="#%E5%87%8F%E8%BD%BB%E4%BD%A0%E7%9A%84%E7%B2%BE%E7%A5%9E%E5%8E%8B%E5%8A%9B%E3%80%82">1.2.1. 减轻你的精神压力。</a></li>
 <li> <a href="#%E8%AE%A1%E7%AE%97%E5%BF%85%E8%A6%81%E7%9A%84%E8%90%A5%E5%85%BB%E6%91%84%E5%85%A5%E3%80%82">1.2.2. 计算必要的营养摄入。</a></li>
 <li> <a href="#%E6%88%91%E5%88%B0%E5%BA%95%E9%9C%80%E8%A6%81%E5%A4%9A%E5%B0%91%E7%A2%B3/%E8%84%82/%E8%9B%8B%E5%91%A2%EF%BC%9F">1.2.3. 我到底需要多少碳/脂/蛋呢？</a></li>
 <li> <a href="#%E4%BD%86%E6%98%AF%E6%88%91%E6%83%B3%E6%9B%B4%E5%BF%AB%E5%9C%B0%E5%87%8F%E8%82%A5%EF%BC%81">1.2.4. 但是我想更快地减肥！</a></li>
 <li> <a href="#%E6%8C%89%E7%85%A7%E5%BF%85%E8%A6%81%E7%9A%84%E6%91%84%E5%85%A5%EF%BC%8C%E8%A7%84%E5%88%92%E5%90%83%E5%A4%9A%E5%B0%91%E5%92%8C%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E9%A3%9F%E7%89%A9%E5%8F%AF%E4%BB%A5%E9%81%BF%E5%85%8D%E4%BD%A0%E8%BF%87%E5%BA%A6%E9%A5%A5%E9%A5%BF%E3%80%82">1.2.5. 按照必要的摄入，规划吃多少和什么样的食物可以避免你过度饥饿。</a></li>
 <li> <a href="#%E6%9C%89%E6%97%B6%E5%80%99%E6%88%91-_%E9%9D%9E%E5%B8%B8%E5%9C%B0%E9%A5%BF_-%EF%BC%81%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F">1.2.6. 有时候我  <span class="underline">非常地饿</span> ！怎么办？</a></li>
 <li> <a href="#%E5%87%8F%E8%82%A5%E6%88%90%E5%8A%9F%E4%B9%8B%E5%90%8E%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F">1.2.7. 减肥成功之后怎么办？</a></li>
</ul></li>
 <li> <a href="#%E7%BB%93%E8%AE%BA">1.3. 结论</a></li>
</ul></li>
 <li> <a href="#Contacts-and-blurb">2. Contacts and blurb</a></li>
</ul></div>
</nav> <p>
 <b>预警：</b> 我并不是医生，我不能给真实的建议。
我只是记录自己的体验，再持有一定的希望，此文章有可能会帮助某人，但是主要地是为我未来自己。
</p>

 <section id="outline-container-%E5%A6%82%E4%BD%95%E5%87%8F%E8%82%A5" class="outline-2"> <h2 id="%E5%A6%82%E4%BD%95%E5%87%8F%E8%82%A5"> <span class="section-number-2">1.</span>  <a href="#%E5%A6%82%E4%BD%95%E5%87%8F%E8%82%A5">如何减肥</a></h2>
 <div class="outline-text-2" id="text-%E5%A6%82%E4%BD%95%E5%87%8F%E8%82%A5">
</div>

 <div id="outline-container-%E5%BA%8F%E8%A8%80" class="outline-3">
 <h3 id="%E5%BA%8F%E8%A8%80"> <span class="section-number-3">1.1.</span>  <a href="#%E5%BA%8F%E8%A8%80">序言</a></h3>
 <div class="outline-text-3" id="text-%E5%BA%8F%E8%A8%80">
 <p>
我喜欢身体轻便（轻盈）。
体重轻让我感觉舒服，走得更敏捷，跳得更容易，睡觉更沉，以及在飞机或者大巴上拥有更多空间。
</p>

 <p>
我23岁的时候此议题成为问题（@）。
在那之前我什么都能吃，从不运动，但是保持敏捷性和灵活性。
但是我23岁的时候，状态变了。
我不确定是否是激素的原因，还是生活方式不一样的原因。
</p>

 <p>
无论如何，保持体重的需求出现了。
</p>

 <p>
大部分人知道两种保持体重的方式：节食和运动。
但是按照我的理解，这是一种误解。
运动，虽然有益于身体健康，从不会造成体重下降，无论是无氧的还是有氧的（跑步还是举重）。
如果运动时肌肉被损伤或者脂肪被消耗，身体一定会补充这个缺口，甚至会增加更多一点。
运动只能使你的体重更重，即使它有利于改善你的身体的成分。
</p>

 <p>
我自己体验过。
首先我不想为了节食消耗太多意志。
我希望，我通过办健身房卡、按时上课、每次跑步10公里，就能到达想要的体重。
</p>

 <p>
实际上这个结果没发生。
我大概持续一年勤奋地上健身房，每周至少跑两次10公里。
在年末甚至连续跑了两天（周六和周日）比赛，10公里和21公里，但是没减下一公斤。
</p>

 <p>
这次失败让我再一次考虑我的计划和转换节食方式。
这个方式，虽然需要过度用脑袋，还是出现了成功。
在使用这个方式当中，我连续10年成功保证我的体重是在理想的范围内。
虽然我几次大概胖了10公斤，但是我恢复我的正常节食方式之后，身体一定会回归理想的重量。
</p>

 <p>
我应该承认，我有一定的节食倾向，因为我的外婆也很成功地保持节食。
读者们有可能没有这个特质，所以谨慎地阅读以下的说明书。
</p>
</div>
</div>

 <div id="outline-container-%E4%B8%BB%E8%A6%81%E5%86%85%E5%AE%B9%EF%BC%9A%E5%A6%82%E4%BD%95%E5%87%AD%E5%80%9F%E9%99%90%E5%88%B6%E8%90%A5%E5%85%BB%E5%80%BC%E7%9A%84%E6%91%84%E5%85%A5%EF%BC%8C%E4%BF%9D%E6%8C%81%E4%B8%80%E5%AE%9A%E7%9A%84%E4%BD%93%E9%87%8D%E3%80%82" class="outline-3">
 <h3 id="%E4%B8%BB%E8%A6%81%E5%86%85%E5%AE%B9%EF%BC%9A%E5%A6%82%E4%BD%95%E5%87%AD%E5%80%9F%E9%99%90%E5%88%B6%E8%90%A5%E5%85%BB%E5%80%BC%E7%9A%84%E6%91%84%E5%85%A5%EF%BC%8C%E4%BF%9D%E6%8C%81%E4%B8%80%E5%AE%9A%E7%9A%84%E4%BD%93%E9%87%8D%E3%80%82"> <span class="section-number-3">1.2.</span>  <a href="#%E4%B8%BB%E8%A6%81%E5%86%85%E5%AE%B9%EF%BC%9A%E5%A6%82%E4%BD%95%E5%87%AD%E5%80%9F%E9%99%90%E5%88%B6%E8%90%A5%E5%85%BB%E5%80%BC%E7%9A%84%E6%91%84%E5%85%A5%EF%BC%8C%E4%BF%9D%E6%8C%81%E4%B8%80%E5%AE%9A%E7%9A%84%E4%BD%93%E9%87%8D%E3%80%82">主要内容：如何凭借限制营养值的摄入，保持一定的体重。</a></h3>
 <div class="outline-text-3" id="text-%E4%B8%BB%E8%A6%81%E5%86%85%E5%AE%B9%EF%BC%9A%E5%A6%82%E4%BD%95%E5%87%AD%E5%80%9F%E9%99%90%E5%88%B6%E8%90%A5%E5%85%BB%E5%80%BC%E7%9A%84%E6%91%84%E5%85%A5%EF%BC%8C%E4%BF%9D%E6%8C%81%E4%B8%80%E5%AE%9A%E7%9A%84%E4%BD%93%E9%87%8D%E3%80%82">
</div>

 <div id="outline-container-%E5%87%8F%E8%BD%BB%E4%BD%A0%E7%9A%84%E7%B2%BE%E7%A5%9E%E5%8E%8B%E5%8A%9B%E3%80%82" class="outline-4">
 <h4 id="%E5%87%8F%E8%BD%BB%E4%BD%A0%E7%9A%84%E7%B2%BE%E7%A5%9E%E5%8E%8B%E5%8A%9B%E3%80%82"> <span class="section-number-4">1.2.1.</span>  <a href="#%E5%87%8F%E8%BD%BB%E4%BD%A0%E7%9A%84%E7%B2%BE%E7%A5%9E%E5%8E%8B%E5%8A%9B%E3%80%82">减轻你的精神压力。</a></h4>
 <div class="outline-text-4" id="text-%E5%87%8F%E8%BD%BB%E4%BD%A0%E7%9A%84%E7%B2%BE%E7%A5%9E%E5%8E%8B%E5%8A%9B%E3%80%82">
 <p>
有人说精神压力大的时候他们吃更多并更容易变胖。
这个假设比较难证明，但是好像大部分人会承认，是这样。
</p>

 <p>
这个现象是心理性的还是生理学的，我不确定。
有可能，承受精神压力的大脑，会误认为存在饿死的可能性，所以想要储存多一点资源，以防万一。
也有可能精神压力导致身体激活存储脂肪相关的基因表达，所以身体容易变胖。
</p>

 <p>
不过，减轻精神压力肯定是有助于保持合理的体重。
</p>

 <p>
肯定“减轻精神压力”是容易说的，但是不容易做的，但是有些措施可以执行，即使如果外面的压力不变：
</p>

 <ol class="org-ol"> <li>保证睡眠时间。
对，这个很普通，但是一定的程度之内，睡眠对大脑来说和吃饭一样重要。
所有的人有不同的睡眠需求，但是9个小时是猜测大部分人需要的睡觉时间的起点。
据说，睡觉3*x小时比别的长度更好。
就是说，睡觉6个小时比睡觉7个小时更好。
大部分人一般地会把8个小时贡献给睡眠，所以这个说明书推荐尝试睡觉9个小时。</li>
 <li>早睡。
毕竟，你入睡的时间不是很重要，所以我推荐日落之后立刻睡：这个对身体是最自然的，而且没有必要设置闹钟。
家务事和娱乐，早上或晚上做没有区别。
而且你可以调用早上的，更安静的，没有车辆喧嚣的时间做自己的事情。
并且早上你的大脑运转的更敏捷，利于完成自己的任务而不是老板的任务。</li>
 <li>散步。
散步很重要：它输送淋巴，因为淋巴系统没有别的泵，不如血液系统。
找散步时间对大部分忙的人不那么容易，但是我成功了。
我早上上班的时候，早下一个地铁站，就走一个地铁站的长度。</li>
 <li> <p>
规划你的休息时间。
这个建议也是很平庸，但是我请读者再思考：计划休息时间有很明显的好处，就是你宁愿安排高质量的娱乐，也不要抓住身边随机存在的娱乐。
真的，娱乐也区分高质量和低质量。
读书比刷抖音更好。
去旅游一天比40个小时连续地打电脑游戏更好。
</p>

 <p>
以上的措施不会直接导致减肥，但是它们会帮助你更容易节食。
</p></li>
</ol></div>
</div>

 <div id="outline-container-%E8%AE%A1%E7%AE%97%E5%BF%85%E8%A6%81%E7%9A%84%E8%90%A5%E5%85%BB%E6%91%84%E5%85%A5%E3%80%82" class="outline-4">
 <h4 id="%E8%AE%A1%E7%AE%97%E5%BF%85%E8%A6%81%E7%9A%84%E8%90%A5%E5%85%BB%E6%91%84%E5%85%A5%E3%80%82"> <span class="section-number-4">1.2.2.</span>  <a href="#%E8%AE%A1%E7%AE%97%E5%BF%85%E8%A6%81%E7%9A%84%E8%90%A5%E5%85%BB%E6%91%84%E5%85%A5%E3%80%82">计算必要的营养摄入。</a></h4>
 <div class="outline-text-4" id="text-%E8%AE%A1%E7%AE%97%E5%BF%85%E8%A6%81%E7%9A%84%E8%90%A5%E5%85%BB%E6%91%84%E5%85%A5%E3%80%82">
 <p>
为了减肥你应该吃得少。
所有的人都知道这个常识，但是按照我跟别人聊天的经验，很多人不知道这到底是什么意思。
</p>

 <p>
首先，很多人好像认为，知道你吃多少卡罗里是足够的。
</p>

 <p>
虽然这个态度对某些人有可能有效，但是对我来说它没有成功了。
</p>

 <p>
为什么？
你看，卡罗里测量的是能量，但是人类吃的是食物，而不吃能量。
食物是使用克（或者公斤）测量的。
尽管按照消耗的食物容量计算相等的能量，但是大部分这种计算很强的依赖个人身体的属性，所以我很怀疑这种计算的准确性。
</p>

 <p>
相反，计算被摄入的碳水、脂肪和蛋白不仅是可以的，而且是比较可靠的。
肯定这个计算也是大概做得，因为不同的碳水，脂肪和蛋白都不是完全一样的，但是至少它们的容量是可以用化学方式测量，不需要依赖可以的公式。
</p>

 <p>
此外，不灭定律，对普通人来说，比能量守恒律更容易理解：输入等于输出。
如果每个消耗循环当中（一天左右），你的身体消耗比摄入更多，体重就会减少。
（以上的逻辑不考虑核反应，因为在这个情况下它们不存在。）
</p>
</div>
</div>

 <div id="outline-container-%E6%88%91%E5%88%B0%E5%BA%95%E9%9C%80%E8%A6%81%E5%A4%9A%E5%B0%91%E7%A2%B3/%E8%84%82/%E8%9B%8B%E5%91%A2%EF%BC%9F" class="outline-4">
 <h4 id="%E6%88%91%E5%88%B0%E5%BA%95%E9%9C%80%E8%A6%81%E5%A4%9A%E5%B0%91%E7%A2%B3/%E8%84%82/%E8%9B%8B%E5%91%A2%EF%BC%9F"> <span class="section-number-4">1.2.3.</span>  <a href="#%E6%88%91%E5%88%B0%E5%BA%95%E9%9C%80%E8%A6%81%E5%A4%9A%E5%B0%91%E7%A2%B3/%E8%84%82/%E8%9B%8B%E5%91%A2%EF%BC%9F">我到底需要多少碳/脂/蛋呢？</a></h4>
 <div class="outline-text-4" id="text-%E6%88%91%E5%88%B0%E5%BA%95%E9%9C%80%E8%A6%81%E5%A4%9A%E5%B0%91%E7%A2%B3/%E8%84%82/%E8%9B%8B%E5%91%A2%EF%BC%9F">
 <p>
（此节之后我会常用“碳脂蛋”缩写表达“碳水化合物，脂肪，蛋白质”。）
</p>

 <p>
这个节确实很主观的，但是算法本身是很常见的，好像适合大部分人，有可能需要微调。
</p>

 <p>
首先，你应该找到你的标准体重.
</p>

 <p>
这个任务并不是很简单，因为所有人是不一样的，男和女是不一样的，而且甚至有同样高度的人，也有不同的骨头密度和直径。
幸运的是，你只需要一次完成这个任务。
如果你不是孩子，你的标准体重不太会变。
</p>

 <p>
（如果你认真地健身就会。那你不需要我的建议。
在这种情况下推荐你去咨询你的医生。）
</p>

 <p>
如果你只想要设计你的计划一次，然后一直沿它执行，找到理想体重应该是足够的。
我不能告诉你一个准确的公式，你应该自己找到，互联网有很多。
</p>

 <p>
找到理想体重之后，你应该计算每日最低碳脂蛋摄入量。
此量是：为了保持体重需要摄入的量。
</p>

 <p>
每公斤体重每日需要：
</p>

 <ol class="org-ol"> <li>碳水 ：4克</li>
 <li>脂肪 ：1克</li>
 <li>蛋白 ：1+克</li>
</ol> <p>
让我们以重60公斤的人为例（男和女之中）：
</p>

 <p>
碳水240克，脂肪60克，蛋白60克。
</p>

 <p>
以上的数字表达身体的 _整个消耗_，由两个成分组成的：
</p>

 <ol class="org-ol"> <li>维修</li>
 <li>能量</li>
</ol> <p>
理论上，三个资源都能对这两个成分发挥作用。
就是身体需要各个资源（碳脂蛋），才可以自我修复，以及它可以为了取得能量燃烧这个资源。
（这不是很重要，但是燃烧者碳水身体会制造“腺苷三磷酸”，脂肪成为“酮体”，而蛋白…我不知道，反正燃烧蛋只会非常差情况下发生。）
</p>

 <p>
事实上，身体当然会优先将资源分配给修复工作而不是给能量。
毕竟，人类身体的物质转换能量的效率很高，但是修复能力…比较差，否则我们都会成为健美运动员。
</p>

 <p>
如果你只消耗以上的资源数量，你还是会减轻体重，因为以上的数字表达 “最小的足够数量”，所以如果你的身体更重，以上的数量会小于维持较重体重的消耗。
你会非常慢的减肥，但是对很多人这个是足够的。
</p>

 <p>
那现在我应该陈述第一个打破幻想的常谈：
  <b>减肥过程是永无止境的</b> 。
确实，你找到正确的食物数量之后，必须终生保持消耗此数量。
为什么？你猜！
是因为你的身体已经停止长高，你的身体不会长更高，它已经是封闭系统，所有输入的必须要么被消耗，要么储存起来。
</p>

 <p>
最终，你到达你想要的体重，最好是一直保持比“最小必要的数量”完全一样的碳脂蛋消耗。
</p>
</div>
</div>

 <div id="outline-container-%E4%BD%86%E6%98%AF%E6%88%91%E6%83%B3%E6%9B%B4%E5%BF%AB%E5%9C%B0%E5%87%8F%E8%82%A5%EF%BC%81" class="outline-4">
 <h4 id="%E4%BD%86%E6%98%AF%E6%88%91%E6%83%B3%E6%9B%B4%E5%BF%AB%E5%9C%B0%E5%87%8F%E8%82%A5%EF%BC%81"> <span class="section-number-4">1.2.4.</span>  <a href="#%E4%BD%86%E6%98%AF%E6%88%91%E6%83%B3%E6%9B%B4%E5%BF%AB%E5%9C%B0%E5%87%8F%E8%82%A5%EF%BC%81">但是我想更快地减肥！</a></h4>
 <div class="outline-text-4" id="text-%E4%BD%86%E6%98%AF%E6%88%91%E6%83%B3%E6%9B%B4%E5%BF%AB%E5%9C%B0%E5%87%8F%E8%82%A5%EF%BC%81">
 <p>
好的！
为了减肥更快，你必须进一步减少以上章节的数字。
进一步，但不是过度减少。
</p>

 <p>
我应该承认，有一个快速减肥的方式：“禁食疗法”。
意思大概是，你完全停止吃饭，而只能喝水。
很快（几天内），你的消化系统会熄火，你不会再感到饿。
（当然前提是你旁边也没有什么食物。）
</p>

 <p>
你可以禁食一个星期，或者甚至更长一些，以及体重会迅速减轻。
我不确定多快，我反正不建议这么做。
</p>

 <p>
虽然禁食不是比很多人认为危险那么危险（如果你禁食超过两个星期，危险的现象才会发生），但是实际上禁食不是很有用。
你会减肥很快，但是禁食之后你也会变胖很快。
而且你禁食之后必须按照“准确碳脂蛋”来继续节食，所以“禁食冲锋”不会给你很大的效果。
</p>

 <p>
另一方面，比“最低数量”再减少你的“碳脂蛋输入”是可以的，这会导致你减肥更快，即便不那么快。
</p>

 <p>
你会减少什么？
</p>

 <p>
事实上你只能减少碳水。
我已经说过脂肪和蛋白不是都一样的。
某些在你的身体被储存的脂肪不能用于制造/修复，你必须吃一点额外的脂肪。
而且身体完全不能储存任何蛋白，所以你必须每天吃它。
</p>

 <p>
但是减少碳水是可以的。
比如说，你每天吃120克碳水。
没问题，你的身体会（为了补偿能量的缺口）消化更多脂肪。
这就是你想要的，因为大部分多余的体重就是脂肪。
</p>

 <p>
减少脂肪… 不是那么被推荐的。
我猜测（不要相信我的话），你可以把60克减少到30克，但是我不确定，咨询一下你的医生。
</p>

 <p>
我再一次说，不要过度。
</p>
</div>
</div>

 <div id="outline-container-%E6%8C%89%E7%85%A7%E5%BF%85%E8%A6%81%E7%9A%84%E6%91%84%E5%85%A5%EF%BC%8C%E8%A7%84%E5%88%92%E5%90%83%E5%A4%9A%E5%B0%91%E5%92%8C%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E9%A3%9F%E7%89%A9%E5%8F%AF%E4%BB%A5%E9%81%BF%E5%85%8D%E4%BD%A0%E8%BF%87%E5%BA%A6%E9%A5%A5%E9%A5%BF%E3%80%82" class="outline-4">
 <h4 id="%E6%8C%89%E7%85%A7%E5%BF%85%E8%A6%81%E7%9A%84%E6%91%84%E5%85%A5%EF%BC%8C%E8%A7%84%E5%88%92%E5%90%83%E5%A4%9A%E5%B0%91%E5%92%8C%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E9%A3%9F%E7%89%A9%E5%8F%AF%E4%BB%A5%E9%81%BF%E5%85%8D%E4%BD%A0%E8%BF%87%E5%BA%A6%E9%A5%A5%E9%A5%BF%E3%80%82"> <span class="section-number-4">1.2.5.</span>  <a href="#%E6%8C%89%E7%85%A7%E5%BF%85%E8%A6%81%E7%9A%84%E6%91%84%E5%85%A5%EF%BC%8C%E8%A7%84%E5%88%92%E5%90%83%E5%A4%9A%E5%B0%91%E5%92%8C%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E9%A3%9F%E7%89%A9%E5%8F%AF%E4%BB%A5%E9%81%BF%E5%85%8D%E4%BD%A0%E8%BF%87%E5%BA%A6%E9%A5%A5%E9%A5%BF%E3%80%82">按照必要的摄入，规划吃多少和什么样的食物可以避免你过度饥饿。</a></h4>
 <div class="outline-text-4" id="text-%E6%8C%89%E7%85%A7%E5%BF%85%E8%A6%81%E7%9A%84%E6%91%84%E5%85%A5%EF%BC%8C%E8%A7%84%E5%88%92%E5%90%83%E5%A4%9A%E5%B0%91%E5%92%8C%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E9%A3%9F%E7%89%A9%E5%8F%AF%E4%BB%A5%E9%81%BF%E5%85%8D%E4%BD%A0%E8%BF%87%E5%BA%A6%E9%A5%A5%E9%A5%BF%E3%80%82">
 <p>
这里是第二个打破幻想的常谈：  <b>你会感到饿肚子</b> 。
</p>

 <p>
不幸的，  <b>饿肚子</b> 是成人的常态。
这可能是大开眼界，成人和小孩有区别的事实。
孩子可以吃饱，对他们这个是正常的，大部分他们吃的食物会用于长高或增长肌肉。
</p>

 <p>
成人不可以。
几万年进化使成人的饥饿感超过导致你吃“准确消耗”（保持正常体重）的标准。
</p>

 <p>
在这个阶段，“semaglutide”(司美格鲁肽)会干涉、调整成人的饥饿。
但是这个说明书不涉及“semaglutide”，因为小编不用它还是可以成功的减肥。
</p>

 <p>
那如何规划准确、适合你生活方式的营养成分？
</p>

 <p>
“碳脂蛋”信息你可以在食品包装背面看到，也可以在网上找到。
</p>
</div>

 <ol class="org-ol"> <li> <a id="%E4%BD%A0%E4%BC%9A%E5%8F%91%E7%8E%B0%E4%BD%A0%E4%BB%80%E4%B9%88%E9%83%BD%E4%B8%8D%E8%83%BD%E5%90%83%E3%80%82"></a> <a href="#%E4%BD%A0%E4%BC%9A%E5%8F%91%E7%8E%B0%E4%BD%A0%E4%BB%80%E4%B9%88%E9%83%BD%E4%B8%8D%E8%83%BD%E5%90%83%E3%80%82">你会发现你什么都不能吃。</a> <br></br> <div class="outline-text-5" id="text-%E4%BD%A0%E4%BC%9A%E5%8F%91%E7%8E%B0%E4%BD%A0%E4%BB%80%E4%B9%88%E9%83%BD%E4%B8%8D%E8%83%BD%E5%90%83%E3%80%82">
 <p>
我真的推荐你，尝试一下计算你今天消耗的碳脂蛋。
你真的会吃惊。
</p>

 <p>
比如说，可乐的每个100毫升含着16克碳水。
美国的可乐罐是240毫升，所以含着40克碳水。
</p>

 <p>
如果你每天吃三次，你的碳水预算是每次80克。
一罐可乐已经是这个预算的一半。
你真的觉得喝一罐可乐能满足你的50%的饥饿吗？
不可能吧。
</p>

 <p>
那，让我们查看往日的正常食物。
第二次世界大战的时候，苏维埃政府为每个退役军人提供“面包补贴”，每天600克面包。
100克俄罗斯的面包含着48克碳水，所以整个补贴是288克碳水。
这已经超越推荐的数量！
也不包含任何其他食物，比如粥或者肉，必要的蛋白输入。
</p>

 <p>
（当然二战之后，苏联物资一点都不丰富。
“面包补贴”是对各个家庭成员分布的，而且肉是非常少见的。
此外，他们必须作更多体力劳动，所以600克面包不能说是“很多”。）
</p>

 <p>
所以，你根本上可以告别可乐和面包。
</p>

 <p>
你的饥饿感取决于你的身体、胃容量、天然的饥饿程度。
某些人能吃一片面包（25克）之后那么饱，整天不需要吃更多。
碳脂蛋240/60/60实际上允许你有时候吃一片生日蛋糕。
</p>

 <p>
真的，让我们考虑生日蛋糕：
</p>

 <p>
碳脂蛋：40/17/6.
其实比面包差不了太多。
一个正常的生日蛋糕片是200克，带有每天的脂肪50%和碳水33%。
这不是那么多，理论上你可以每天吃一片生日蛋糕，并且还是继续减肥，前提是你吃的别得菜是非常低碳低脂。
但是对我来说，一片芝士蛋糕令我很饿，所以节食的时候我避免芝士蛋糕。
</p>
</div>
</li>

 <li> <a id="%E6%88%91%E4%BB%AC%E5%88%B0%E5%BA%95%E5%8F%AF%E4%BB%A5%E5%90%83%E4%BB%80%E4%B9%88%EF%BC%9F"></a> <a href="#%E6%88%91%E4%BB%AC%E5%88%B0%E5%BA%95%E5%8F%AF%E4%BB%A5%E5%90%83%E4%BB%80%E4%B9%88%EF%BC%9F">我们到底可以吃什么？</a> <br></br> <div class="outline-text-5" id="text-%E6%88%91%E4%BB%AC%E5%88%B0%E5%BA%95%E5%8F%AF%E4%BB%A5%E5%90%83%E4%BB%80%E4%B9%88%EF%BC%9F">
 <p>
尽管，我推荐你去一次营养信息网站探索一下。
你不必要遵守以下陈述的推荐。
但是我猜测你的结论不会比我的有很大差别。
</p>

 <p>
我想要最少感觉饥饿，尽管我的（男的）身高和体重基数比较大。
所以我想吃很多，即很大的容量的食物。
我天然地不那么痴迷食物，不那么爱吃，所以我可以吃别人认为很无聊的食物。
</p>

 <p>
以下是我的（很浅显的）菜单：
</p>

 <ol class="org-ol"> <li>碳水
 <ol class="org-ol"> <li>卷心菜 :: 2/0/1 (所有的，包含花菜和西兰花)</li>
 <li>黄瓜 :: 3/0/1</li>
 <li>番茄 :: 4/0/1</li>
 <li>西葫芦 :: 4/0/1</li>
</ol></li>
 <li>蛋白
 <ol class="org-ol"> <li>鸡胸肉 :: 1/4/31</li>
 <li>虾 :: 1/1/20</li>
 <li>马肉 :: 1/5/40</li>
</ol></li>
 <li>甜品
 <ol class="org-ol"> <li>鸡蛋 :: 1/10/13</li>
 <li>洋葱 :: 10/0/1</li>
 <li>蒜 :: 3/0/1</li>
</ol></li>
 <li>牛奶 :: 5/3/3</li>
 <li>茶，咖啡 :: 0</li>
 <li>气苏打水 :: 0</li>
 <li>食用油 :: 0/0/99</li>
 <li>番茄酱, 蛋黄酱, 芥末 :: 15/50/2</li>
</ol> <p>
即使如果我把我的碳水摄入限制在每天60克，我还可以吃3000克卷心菜，这满足几乎任何饥饿感。
</p>

 <p>
（3000克还是不是无限的。）
</p>

 <p>
蛋白质对减肥相对无害，我可以吃多一点。
身体不那么会把它变为脂肪（尽管过度吃蛋白能导致其它不利的现象），所以限制鸡胸肉得数量是脂肪，不是蛋白。
60/4 = 15, 差不多等与每天1500克鸡胸肉。
用3000克卷心菜和1500克鸡胸肉打败饥饿应该是可以的。
</p>

 <p>
脂肪的最大贡献者居然是酱和鸡蛋。
鸡蛋含着很多不同的碳脂蛋之外的必要元素，比如维生素，所以每天一个鸡蛋应该值得，但是鸡蛋将成为一个甜品。
没有酱吃卷心菜，甚至对我是很无聊，所有我允许自己一勺子，15克，就是7克脂肪。
</p>

 <p>
总而言之，我一般地每天吃一顿饭：
</p>

 <ol class="org-ol"> <li>被烤得或者被煮得卷心菜, 1kg :: 40/0/10</li>
 <li>炒鸡胸肉, 500g :: 5/20/150</li>
 <li>蒜, 50g :: 5/0/1</li>
 <li>食用油, 15g :: 0/15/0</li>
 <li>酱 :: 0/7/0</li>
 <li>奶咖啡 500ml :: 10/6/6</li>
</ol> <p>
55/50/170
</p>

 <p>
我怎么那么准确的知道此数量？
其实，我就买了厨房秤，做饭之前确认。
</p>

 <p>
我也喝很多低因咖啡、茶和纯水，有时候吃黄瓜和番茄。
</p>

 <p>
总结：60/60/170。
</p>

 <p>
我再一次会提到，在这个菜单里，蒜、鸡蛋、洋葱成为甜品，不是主食。
这真的不是很残酷，因为几个星期节食之后，蒜和洋葱味道会变，成为比以前的更甜。
不过它们比较辣，不能吃太多。
</p>

 <p>
虽然咖啡、茶、苏打水的碳脂蛋几乎是0，但是我还是把它们列入到菜单，因为它们真的对控制饥饿感有很大的帮助。
奶咖啡真的对减少饥饿感是非常有效的。
而苏打水有很多不同的口味，虽然你不节食的时候分不出来，而且它们的碳脂蛋是0，你可以随便喝。
</p>
</div>
</li>

 <li> <a id="%E4%BF%9D%E6%8C%81%E7%9B%91%E6%B5%8B%E6%AF%8F%E5%A4%A9%E7%9A%84%E8%BF%9B%E6%AD%A5%EF%BC%8C%E8%80%8C%E4%B8%94%E8%B7%9F%E7%9D%80%E4%BD%A0%E7%9A%84%E5%90%83%E9%A5%AD%E6%97%A5%E7%A8%8B%E8%A1%A8%E3%80%82"></a> <a href="#%E4%BF%9D%E6%8C%81%E7%9B%91%E6%B5%8B%E6%AF%8F%E5%A4%A9%E7%9A%84%E8%BF%9B%E6%AD%A5%EF%BC%8C%E8%80%8C%E4%B8%94%E8%B7%9F%E7%9D%80%E4%BD%A0%E7%9A%84%E5%90%83%E9%A5%AD%E6%97%A5%E7%A8%8B%E8%A1%A8%E3%80%82">保持监测每天的进步，而且跟着你的吃饭日程表。</a> <br></br> <div class="outline-text-5" id="text-%E4%BF%9D%E6%8C%81%E7%9B%91%E6%B5%8B%E6%AF%8F%E5%A4%A9%E7%9A%84%E8%BF%9B%E6%AD%A5%EF%BC%8C%E8%80%8C%E4%B8%94%E8%B7%9F%E7%9D%80%E4%BD%A0%E7%9A%84%E5%90%83%E9%A5%AD%E6%97%A5%E7%A8%8B%E8%A1%A8%E3%80%82">
 <p>
按照计划吃饭（比如每次18点）是很有助于检测进步，因为相同的时间点你会有相同的体重。
比如说早上7点测体重会测量一样的重量。
</p>

 <p>
测量对理解你的行为有没有效率是很重要，而且它们增强你的成就感。
（据说，为了到达目标，你先需要测量它。）
</p>

 <p>
与共普遍看法相反，晚上吃饭还是早上吃饭不是很重要，因为摄入的营养值合并进你的身体大概需要3天。
</p>

 <p>
所以我晚上睡觉之前吃，因为如果不感到饥饿时更容易睡觉。
</p>

 <p>
我每天早上一次测量体重，因为随机吃喝的东西不会影响测量准确性。
</p>

 <p>
（请注意，通过消化系统的资料一点不能减少你的体重。
实际离开你的身体得分子，用以下的渠道离开：
</p>
 <ol class="org-ol"> <li>尿液</li>
 <li>汗液</li>
 <li>呼出的空气）</li>
</ol> <p>
我把我的体重值记录在一张纸上，但是以前我用过浴室镜子和记号笔，因为这样可以不穿衣服者测量准确一点，避免由于风景不好看打扰别人。
</p>

 <p>
用这样的计划我能每个星期减少1.5公斤。
不要尝试超过此速度，可能不健康。
1.5公斤是很好的，可视的数字，提供我的快乐感，榜书我保持节食。
</p>

 <p>
假设你想把你体重从90公斤减少到60公斤（身高不高，但是很旁的男士）。
如果计划在20个星期内成功，这个因该是不健康，但是半年应该可以。
</p>

 <p>
不幸的是，这过程当中你不能避免减少肌肉量。
减少肥肉必须导致减少肌肉。
我总是不考虑这个问题，因为对我来说肌肉不太有用，我不做力工。
</p>

 <p>
然而，运动应该可以限制肌肉的缩小。
</p>

 <p>
反正，拥有体重图表很有用，让我看到我的体重如何下降。
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-%E6%9C%89%E6%97%B6%E5%80%99%E6%88%91-_%E9%9D%9E%E5%B8%B8%E5%9C%B0%E9%A5%BF_-%EF%BC%81%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F" class="outline-4">
 <h4 id="%E6%9C%89%E6%97%B6%E5%80%99%E6%88%91-_%E9%9D%9E%E5%B8%B8%E5%9C%B0%E9%A5%BF_-%EF%BC%81%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F"> <span class="section-number-4">1.2.6.</span>  <a href="#%E6%9C%89%E6%97%B6%E5%80%99%E6%88%91-_%E9%9D%9E%E5%B8%B8%E5%9C%B0%E9%A5%BF_-%EF%BC%81%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F">有时候我  <span class="underline">非常地饿</span> ！怎么办？</a></h4>
 <div class="outline-text-4" id="text-%E6%9C%89%E6%97%B6%E5%80%99%E6%88%91-_%E9%9D%9E%E5%B8%B8%E5%9C%B0%E9%A5%BF_-%EF%BC%81%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F">
 <p>
吃很多你一般吃的菜，比如卷心菜或者鸡胸肉。
如果1公斤不满足你，就吃两公斤。
</p>

 <p>
有激烈饥饿感的最大的问题是：它能导致你吃不健康的菜，而不是你吃太多。
以上的列表还是给你比较多自由。
</p>
</div>
</div>

 <div id="outline-container-%E5%87%8F%E8%82%A5%E6%88%90%E5%8A%9F%E4%B9%8B%E5%90%8E%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F" class="outline-4">
 <h4 id="%E5%87%8F%E8%82%A5%E6%88%90%E5%8A%9F%E4%B9%8B%E5%90%8E%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F"> <span class="section-number-4">1.2.7.</span>  <a href="#%E5%87%8F%E8%82%A5%E6%88%90%E5%8A%9F%E4%B9%8B%E5%90%8E%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F">减肥成功之后怎么办？</a></h4>
 <div class="outline-text-4" id="text-%E5%87%8F%E8%82%A5%E6%88%90%E5%8A%9F%E4%B9%8B%E5%90%8E%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F">
 <p>
一方面来说，保持稳定的体重是比减肥更难的。
</p>

 <p>
成功之后你不仅需要强迫你的KPI下降，你也需要防御它过度下降。
</p>

 <p>
所以你不只是需要考虑是否吃太多了也需要考虑是否吃太少了。
</p>

 <p>
这时候大概的目标“240/60/60”已经是不够准确的，你应该找到很准确的消耗标志。
</p>

 <p>
但是你至少可以恭喜自己减肥成功了。
</p>

 <p>
此后，你应该可以每天吃两顿。
这也应该导致你的体重测量会成为不那么准确，你也应该需要把它每天测量两次。
比一次又难又不准，但是我不知道更好的方法。
你应该需要买好智能秤，因为手写很麻烦。
</p>

 <p>
总而言之，240克碳水比60克允许很多，但是我一般更喜欢增加数量，并不是多样化。
</p>
</div>
</div>
</div>

 <div id="outline-container-%E7%BB%93%E8%AE%BA" class="outline-3">
 <h3 id="%E7%BB%93%E8%AE%BA"> <span class="section-number-3">1.3.</span>  <a href="#%E7%BB%93%E8%AE%BA">结论</a></h3>
 <div class="outline-text-3" id="text-%E7%BB%93%E8%AE%BA">
 <p>
这个报告含有真的经验，但是明显是主观的，不是被医疗专家写的，所以如果有疑问，咨询自己的医生。
</p>
</div>
</div>
</section> <section id="outline-container-Contacts-and-blurb" class="outline-2"> <h2 id="Contacts-and-blurb"> <span class="section-number-2">2.</span>  <a href="#Contacts-and-blurb">Contacts and blurb</a></h2>
 <div class="outline-text-2" id="text-Contacts-and-blurb">
 <ol class="org-ol"> <li>Telegram ::  <a href="https://t.me/unobvious">https://t.me/unobvious</a></li>
 <li>Zhihu (cn) ::  <a href="https://www.zhihu.com/people/lockywolf">https://www.zhihu.com/people/lockywolf</a></li>
 <li>LiveJournal (ru) ::  <a href="https://dead-doomer.livejournal.com">https://dead-doomer.livejournal.com</a></li>
 <li>Wordpress (en) ::  <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></li>
 <li>Permalink ::  <a href="https://lockywolf.net/2025-10-01_How-to-lose-weight.org.d/index.html">https://lockywolf.net/2025-10-01_How-to-lose-weight.org.d/index.html</a></li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-10-01_How-to-lose-weight.org.d/index.cn.html"/>
  <id>https://lockywolf.net/2025-10-01_How-to-lose-weight.org.d/index.cn.html</id>
  <updated>2025-11-19T00:00:00+00:00</updated>
</entry>
<entry>
  <title>How to lose weight.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How to lose weight.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#How-to-lose-weight">1. How to lose weight</a>
 <ul> <li> <a href="#Preface">1.1. Preface</a></li>
 <li> <a href="#How-to-maintain-body-weight-by-limiting-nutritional-intake">1.2. How to maintain body weight by limiting nutritional intake</a>
 <ul> <li> <a href="#Lower-your-stress.">1.2.1. Lower your stress.</a></li>
 <li> <a href="#Calculate-your-necessary-nutritional-intake.">1.2.2. Calculate your necessary nutritional intake.</a></li>
 <li> <a href="#How-much-CFP-do-I-need?">1.2.3. How much CFP do I need?</a></li>
 <li> <a href="#But-I-want-to-lose-weight-faster!">1.2.4. But I want to lose weight faster!</a></li>
 <li> <a href="#Find-the-amount-of-food-corresponding-to-your-CFP,-eating-which-does-not-leave-you-_too_-hungry.">1.2.5. Find the amount of food corresponding to your CFP, eating which does not leave you  <span class="underline">too</span> hungry.</a></li>
 <li> <a href="#What-can-we-_actually_-eat?">1.2.6. What can we  <span class="underline">actually</span> eat?</a></li>
 <li> <a href="#Monitoring-progress-and-daily-schedule">1.2.7. Monitoring progress and daily schedule</a></li>
 <li> <a href="#How-to-deal-with-episodes-when-you-_ARE-REALLY-HUNGRY_?">1.2.8. How to deal with episodes when you  <span class="underline">ARE REALLY HUNGRY</span>?</a></li>
 <li> <a href="#What-to-do-when-your-weight-becomes-as-you-want-it-to-be?">1.2.9. What to do when your weight becomes as you want it to be?</a></li>
</ul></li>
 <li> <a href="#Conclusion">1.3. Conclusion</a></li>
</ul></li>
 <li> <a href="#Contacts-and-blurb">2. Contacts and blurb</a></li>
</ul></div>
</nav> <p>
 <b>Warning:</b> I am not a doctor, and I cannot give an informed advice.
I am just documenting my own experience with a hope that it might be useful to someone, but mostly for my future self.
</p>

 <section id="outline-container-How-to-lose-weight" class="outline-2"> <h2 id="How-to-lose-weight"> <span class="section-number-2">1.</span>  <a href="#How-to-lose-weight">How to lose weight</a></h2>
 <div class="outline-text-2" id="text-How-to-lose-weight">
</div>

 <div id="outline-container-Preface" class="outline-3">
 <h3 id="Preface"> <span class="section-number-3">1.1.</span>  <a href="#Preface">Preface</a></h3>
 <div class="outline-text-3" id="text-Preface">
 <p>
I like being lightweight.
It makes me feel good, walk easier, jump easier, sleep better, have more free space on plane and bus seats.
</p>

 <p>
This became an issue when I turned about 23.
Before that time I could eat anything, never exercise, and still stay as swift and nimble as I wanted.
But things changed at the age of 23, and I am not sure whether due to hormonal changes or changes in lifestyle.
</p>

 <p>
In any case, the necessity to maintain a decent weight arose.
</p>

 <p>
Now, most people know about two methods of keeping fit: diet and exercise.
However, as far as I understand, this is a misconception.
Exercise, while certainly being a good thing for health, can never lead to weight loss, no matter if it is aerobic or anaerobic (running or weightlifting).
When muscles are damaged during exercise (which is normal), and resources (fat) are used for feeding the muscles, the body will always replenish the loss with a slight margin.
Exercise can only make you weigh more, even though it is likely to improve the quality of your body composition.
</p>

 <p>
I experienced it myself.
At first I did not want to spend a lot of willpower on maintaining a diet, hoping that I would just sign up for a gym, be running 10 kilometres each time, lift weights, and my life will just become better by itself.
</p>

 <p>
This did not happen.
After about a year of exercise and running for about 10 kilometres twice a week, I eventually managed to run two races in subsequent days, 10k and 21k on Saturday and Sunday, but had not lost a single extra kilogram.
</p>

 <p>
This made me reconsider my plan, and switch to the dietary method (described below), which proved to be successful, even if a bit taxing to the brain.
Using this method, I managed to maintain my desired weight for the past 10 years, within the accepted range.
I did get fat again a few times, during the periods of high stress, but inevitably regained my normal weight after normal schedule was restored.
</p>

 <p>
I have to admit that I have a bit of genetic proclivity to a diet, as my grandmother was very successful at maintaining a diet as well.
This might not be true for you, so take the manual below with a grain of salt (pun intended).
</p>
</div>
</div>

 <div id="outline-container-How-to-maintain-body-weight-by-limiting-nutritional-intake" class="outline-3">
 <h3 id="How-to-maintain-body-weight-by-limiting-nutritional-intake"> <span class="section-number-3">1.2.</span>  <a href="#How-to-maintain-body-weight-by-limiting-nutritional-intake">How to maintain body weight by limiting nutritional intake</a></h3>
 <div class="outline-text-3" id="text-How-to-maintain-body-weight-by-limiting-nutritional-intake">
</div>

 <div id="outline-container-Lower-your-stress." class="outline-4">
 <h4 id="Lower-your-stress."> <span class="section-number-4">1.2.1.</span>  <a href="#Lower-your-stress.">Lower your stress.</a></h4>
 <div class="outline-text-4" id="text-Lower-your-stress.">
 <p>
This claim is hard to prove, but many people would admit that in the times of stress they eat more and grow fat easier.
</p>

 <p>
Whether this is a purely psychological phenomenon, or a physiological as well, I do not know.
It is possible that the brain associated stress with a possibility of starvation, and wants to store more resources for future contingencies, so we feel more hungry, and it is also possible that stress produces some involuntary gene expression, which helps storing more fat.
</p>

 <p>
In any case, limiting stress is certainly beneficial to a decent weight.
</p>

 <p>
Of course, “limiting stress” is easier said than done, but there are certain measures that can be undertaken even when some external pressures will not abate by themselves.
</p>

 <ol class="org-ol"> <li>Sleep more.
Yes, this is very banal, but sleeping is equivalent to eating for the brain, to a degree.
Everybody’s sleeping requirements are different, but about 9 hours is usually a good guess.
It is believed that sleeping \(3*x\) hours is better than other numbers.
That is, sleeping for 6 hours is better than for 7 hours.
Most of us dedicate 8 hours, so the advice of this HOWTO is to try sleeping for 9 hours instead.</li>
 <li>Go to bed early.
After all, it does not really matter when you sleep, so I recommend going to bed right after sunset, as this is the most natural to the body clock.
This also means that you will have some quiet time in the morning, when no cars are running, and the city is quiet.
Also, going to bed right after you get off work has a nice benefit of resting right after getting tired, so your best relaxed hours (in the morning) are spent on your tasks, not your boss’ tasks.</li>
 <li>Go for a walk.
Walking is a good thing, it pumps lymph in your body, as lymph does not have any other pump.
Lymphatic system does not have a heart.
Finding time for a walk is usually a bit hard, but I just managed to have a walk while going to work.
Just get off one metro station earlier or later, and walk to your office building.</li>
 <li>Plan some time to relax.
This seem banal, but the point of planning rest is that you can actually plan high quality rest rather than follow your bodily instincts in just grabbing whatever entertainment is available at hand.
Use high-quality entertainment planned in advance instead!
Yest, entertainment can also be high and low quality!
Reading books is usually better than binge-watching Douyin.
Going for a day trip on a weekend is usually better than playing computer games for 40 hours in a row.</li>
</ol> <p>
The above measures will not lead to a measurable weight loss, but they will make keeping a diet easier.
</p>
</div>
</div>

 <div id="outline-container-Calculate-your-necessary-nutritional-intake." class="outline-4">
 <h4 id="Calculate-your-necessary-nutritional-intake."> <span class="section-number-4">1.2.2.</span>  <a href="#Calculate-your-necessary-nutritional-intake.">Calculate your necessary nutritional intake.</a></h4>
 <div class="outline-text-4" id="text-Calculate-your-necessary-nutritional-intake.">
 <p>
In order to lose weight, it is necessary to eat less.
Everyone sort of knows this maxim, but, judging by my conversations with people who tried to lose weight like I did, many people do not understand what they are doing.
</p>

 <p>
Firstly, many people seem to believe that it is enough to count the amount of calories you eat.
</p>

 <p>
While this might work for some people, I found that it does not work for me.
</p>

 <p>
You see, people do not eat energy, people eat food, and food is measured in grams (or kilograms).
While it is possible to find an amount of energy equivalent to consuming a certain amount of food, most of these calculations are highly dependent on the bodily efficiency of each particular individual, so I am finding most of them dubious.
</p>

 <p>
What is, on the other hand, possible to calculate is the amount of carbohydrates, fats, and proteins consumed.
Of course, this calculation is also approximate, as not all carbs, fats and proteins are equal, but at least they bear some resemblance to reality and do not rely of dubious formulas.
</p>

 <p>
Moreover, the law of conservation of mass is much easier to grasp for a human than the law of conservation of energy, and unless nuclear reactions are involved (and they are not), it is good enough: if you consume less materials than your body uses and discards, after a consumption cycle (about a day or a few), you will have to weigh less than before, that’s just it.
</p>
</div>
</div>

 <div id="outline-container-How-much-CFP-do-I-need?" class="outline-4">
 <h4 id="How-much-CFP-do-I-need?"> <span class="section-number-4">1.2.3.</span>  <a href="#How-much-CFP-do-I-need?">How much CFP do I need?</a></h4>
 <div class="outline-text-4" id="text-How-much-CFP-do-I-need?">
 <p>
(CFP is “carbs, fats, proteins”.)
</p>

 <p>
This section is very subjective, but there are “overall numbers”, which seem to be good enough for most people.
</p>

 <p>
Firstly, you need to  <span class="underline">find your normal body weight</span>.
</p>

 <p>
This is not easy, as everyone is different, men and women are different, and among even men and women of equal height, bone density and diameter differ, but the good thing is that this only needs to be done once for your body.
</p>

 <p>
Okay, theoretically not once.
The number is going to change if you regularly go to the gym and purposefully work on increasing your muscular mass.
If you do, refer to your trainer and medical doctor tracking your progress, this HOWTO is not for you.
</p>

 <p>
For the people who want to develop the program once, follow it forever, and forget the formulas, finding a proper weight should work.
I cannot tell you a correct formula, your have to find it yourself, but there are plenty.
</p>

 <p>
After you have found your desired weight, you need to find out the daily amount of CFP needed to  <span class="underline">maintain</span> the normal weight, per kilogram of desired body weight:
</p>

 <ol class="org-ol"> <li>Carbohydrates :: 4 grams</li>
 <li>Fats :: 1 gram</li>
 <li>Proteins :: 1+ gram</li>
</ol> <p>
Let us have a look at a person who weighs 60 kg (something between a man and a woman):
</p>

 <p>
240g of carbs, 60g of fat, 60g of protein.
</p>

 <p>
These numbers are intended to contribute to  <span class="underline">total consumption</span> of the body, which primarily consists of two channels:
</p>

 <ol class="org-ol"> <li>Repairs</li>
 <li>Energy</li>
</ol> <p>
Now, in principle, all three resources are used used for both channels, the body needs all CFP to build from, and it can also “burn” all three CFP to produce energy.
This is not too important, but carbs are transformed into ATP, fats are turned into ketone bodies, and proteins … I don’t know, but in any case, burning proteins is a very bad idea and a sign of your body malfunctioning to a large degree.
</p>

 <p>
In practice, though, the body will most naturally use the resources for repairs with higher priority than for energy.
After all, human body can be remarkably efficient at turning stuff into energy, but building … not so much, otherwise we would have all been bodybuilders.
</p>

 <p>
Even if you eat  <span class="underline">just</span> the amount of resources above, you will be already losing weight, because this is a  <span class="underline">bare minimum</span> needed to  <span class="underline">maintain</span> the desired weight, so there will be a delta between what the current body weight would need and the target body.
You will be losing weight very slowly, but for many people that is enough.
</p>

 <p>
Now, the first disillusionment maxim:
 <b>Losing weight is a process which cannot be finished</b>.
Indeed, after you have found a correct amount of food, you have to use it until the end of your life, because, guess what, you will not grow up any more, your body is a now a closed system and whatever comes in has to come out or stay.
</p>

 <p>
Eventually, after you have reached your desired body weight, it is best to keep the amount of food  <span class="underline">just equivalent</span> to the recommended intake of CFP.
</p>
</div>
</div>

 <div id="outline-container-But-I-want-to-lose-weight-faster!" class="outline-4">
 <h4 id="But-I-want-to-lose-weight-faster!"> <span class="section-number-4">1.2.4.</span>  <a href="#But-I-want-to-lose-weight-faster!">But I want to lose weight faster!</a></h4>
 <div class="outline-text-4" id="text-But-I-want-to-lose-weight-faster!">
 <p>
Okay, fine, if you want to lose weight faster, you can reduce the numbers mentioned in the previous section further.
Further, but not  <span class="underline">that</span> further.
</p>

 <p>
Okay, there is a way to lose weight  <span class="underline">very fast</span>, it is called “fasting”.
Basically this means that you stop eating completely and only drink water.
Very soon (in a few days), your digestive system will deactivate and your will stop feeling hungry, unless you see food.
</p>

 <p>
You can fast for a week, or even longer, not eating any food, and losing weight very quickly.
I am not sure  <i>how</i> quickly, but in any case I do  <span class="underline">not</span> recommend doing that at all.
</p>

 <p>
While it is not  <span class="underline">that</span> unhealthy as many people believe (in fact, dangerous effects from starvation would only appear after about … well, more than a week), it is also practically useless.
You  <span class="underline">will</span> lose weight fast, but you will also  <span class="underline">gain</span> weight very fast after resuming eating, and you would have to follow the “correct CFP” diet after fasting anyway, so the “fasting streak” will not give you much.
</p>

 <p>
However, you  <span class="underline">can</span> reduce the amount of CFP below the bare minimum, and it will make you lose weight faster, even though not  <span class="underline">that</span> faster.
</p>

 <p>
What can you cut?
</p>

 <p>
Practically speaking, the only resource you can really  <span class="underline">cut</span> from the above numbers is carbs.
Unfortunately, as I said, not all fats and proteins are equal.
Some fats that are stored into your body cannot be used for construction, you  <span class="underline">have to</span> eat some external fats, and the body cannot really store proteins at all, you need to eat them every day.
</p>

 <p>
But cutting carbs is much possible.
If you eat, say, 120g of carbs per day, no problem, the body will break down more fats to compensate for energy loss, which is more or less what you need, because most of the “bad weight” consists of fat.
</p>

 <p>
Cutting fat… well, it not that recommended.
I guess (do not trust my word), that it is fairly safe to go from 60g to 30g of fat, but I cannot prove it, talk to your doctor.
</p>

 <p>
Again, do not overdo it.
</p>
</div>
</div>

 <div id="outline-container-Find-the-amount-of-food-corresponding-to-your-CFP,-eating-which-does-not-leave-you-_too_-hungry." class="outline-4">
 <h4 id="Find-the-amount-of-food-corresponding-to-your-CFP,-eating-which-does-not-leave-you-_too_-hungry."> <span class="section-number-4">1.2.5.</span>  <a href="#Find-the-amount-of-food-corresponding-to-your-CFP,-eating-which-does-not-leave-you-_too_-hungry.">Find the amount of food corresponding to your CFP, eating which does not leave you  <span class="underline">too</span> hungry.</a></h4>
 <div class="outline-text-4" id="text-Find-the-amount-of-food-corresponding-to-your-CFP,-eating-which-does-not-leave-you-_too_-hungry.">
 <p>
The second disillusioning sad story:  <b>you will feel hungry</b>.
</p>

 <p>
Unfortunately,  <b>feeling hungry is natural for adults</b>.
This is one of the eye-opening realisations of how adults differ from children.
Children can eat and feel full, and it is normal for them, most of the things they eat will turn into growth.
</p>

 <p>
Adults cannot.
Moreover, millennia of evolution produced in human adults a feeling of hunger which  <span class="underline">exceeds</span> the amount needed to just consume the CFP needed to maintain normal weight.
</p>

 <p>
This is where “semaglutide” is trying to intervene, by reducing this sense of hunger in adults.
But this HOWTO is not about semaglutide, because I managed to successfully lose weight without it.
</p>

 <p>
How do you find a correct composition of your diet?
</p>

 <p>
CFP is often written on the back of the packs of food you are buying, or it is possible to search for it online.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Now,-the-first-thing-you-will-discover-is-that-you-cannot-really-eat-anything-at-all."></a> <a href="#Now,-the-first-thing-you-will-discover-is-that-you-cannot-really-eat-anything-at-all.">Now, the first thing you will discover is that you cannot really eat anything at all.</a> <br></br> <div class="outline-text-5" id="text-Now,-the-first-thing-you-will-discover-is-that-you-cannot-really-eat-anything-at-all.">
 <p>
For example, Coke has 16g of carbs per 100 ml.
An American can of Coke has 240 ml, so about 40 grams of carbs.
</p>

 <p>
Assuming that you eat three times a day, you have about 80 grams of carbs budget per meal.
And  <span class="underline">half</span> of that budget is a can of Coke.
Can you really satisfy a  <span class="underline">half</span> of your hunger with a can of Coke?
Come on.
</p>

 <p>
Now let us look at things we used to eat “normally” in the past.
After the WW2, the Soviet government provided veterans with a “bread allowance” of 600 grams of bread per day (about one “bukhanka”).
Russian bread has 48 grams of carbs per 100 grams of bread, which makes it 288 grams of carbs per day.
This is already more than the recommended amount!
And that is without any other food, such as gruel or meat, which is required for protein intake.
</p>

 <p>
(Of course, the Soviet union after the WW2 was not at all  <i>rich</i>.
The bread allowance was divided between all family members, and meat was such a scarcity that even mentioning it seems like a cruel joke, and, of course, they needed to do much more physical work, but our understanding of what is “normal to eat” comes from those times.)
</p>

 <p>
So, basically, you can forget about both Coke and bread.
</p>

 <p>
Well, it sort of depends on your stomach volume and natural hunger levels.
Some people feel so full after a single slice (25g) of bread that they do not need anything else for the rest of the day.
The allowance of 240/60/60, in fact, even gives some permission to eat a birthday cake slice once in a while.
</p>

 <p>
Let us look at a birthday cake CFP: 40/17/6.
That is not  <span class="underline">that</span> worse than bread actually.
If a typical slice is 200 grams, you are getting about half of your daily fat from it and a third of carbs.
This is not an overwhelming number, and, in theory, you can even eat a slice every day, and still lose weight, if all the other food you consume is very-very low-carbs low-fat.
But for me, a slice of cheesecake makes me very hungry, so having a diet of cheesecakes is impractical.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-What-can-we-_actually_-eat?" class="outline-4">
 <h4 id="What-can-we-_actually_-eat?"> <span class="section-number-4">1.2.6.</span>  <a href="#What-can-we-_actually_-eat?">What can we  <span class="underline">actually</span> eat?</a></h4>
 <div class="outline-text-4" id="text-What-can-we-_actually_-eat?">
 <p>
By all means, go and read through your favourite nutritional information website and look and find you best diet.
You do not have to follow my advice below.
</p>

 <p>
But my desire is to feel as little hunger as possible given my (male, fairly tall) size, so I want to eat large volumes, and I am blessed by the nature of not being a gourmand, so I can eat what other people consider to be boring.
</p>

 <p>
Which means that the food I am allowing myself to eat actually boils down to the following, very meagre list:
</p>

 <ol class="org-ol"> <li>Carbs
 <ol class="org-ol"> <li>Cabbage :: 2/0/1 (all sorts of it, including cauliflower and broccoli)</li>
 <li>Cucumber :: 3/0/1</li>
 <li>Tomato :: 4/0/1</li>
 <li>Courgette :: 4/0/1</li>
</ol></li>
 <li>Proteins
 <ol class="org-ol"> <li>Chicken breast :: 1/4/31</li>
 <li>Prawns/Shrimp :: 1/1/20</li>
 <li>Horse meat :: 1/5/40</li>
</ol></li>
 <li>Desserts
 <ol class="org-ol"> <li>Egg :: 1/10/13</li>
 <li>Onion :: 10/0/1</li>
 <li>Garlic :: 3/0/1</li>
</ol></li>
 <li>Milk :: 5/3/3</li>
 <li>Tea, Coffee :: 0</li>
 <li>Sparkling soda :: 0</li>
 <li>Cooking oil :: 0/0/99</li>
 <li>Tomato sauce, Mayonnaise, Mustard :: 15/50/2</li>
</ol> <p>
Even if you cut your carbs intake to 60g per day, you can still eat 3000 grams of cabbage, which is more than enough to not feel hungry any more.
(3000 grams is still not  <span class="underline">infinity</span>.)
</p>

 <p>
Protein is not that detrimental to weight loss.
The body is not very likely to turn it into fat (although overdoing proteins can have other negative effects), the limiting factor for chicken breast is fat.
60/4 = 15, which makes it about 1500 grams of chicken breast per day.
Again, defeating hunger with 1500 grams of chicken breast and 3000 grams of cabbage is quite possible.
</p>

 <p>
The biggest contributors to fat are, surprisingly, sauce and eggs.
Eggs have a lot other, non CFP elements, such as vitamins, so eating an egg per day is probably worth it, but and egg becomes a dessert.
Eating cabbage and chicken breast without sauce is tiresome, so I allow myself a spoon of it, 15g, which is already 7 grams of fat.
</p>

 <p>
So, to sum up, I am usually eating once a day, a meal of about the following:
</p>

 <ol class="org-ol"> <li>Roasted or boiled cabbage, 1kg :: 40/0/10</li>
 <li>Roasted chicken breast, 500g :: 5/20/150</li>
 <li>Garlic 50g :: 5/0/1</li>
 <li>Cooking oil, 15g :: 0/15/0</li>
 <li>Sauce :: 0/7/0</li>
 <li>Coffee with milk 500ml :: 10/6/6</li>
</ol> <p>
55/50/170
</p>

 <p>
How do I measure those weights so precisely?
Well, I bought kitchen scales which are ridiculously easy to use and check my components before cooking.
</p>

 <p>
I am also drinking a lot of decaf coffee and tea, and pure water, and sometimes eating a cucumber or a tomato.
</p>

 <p>
In total: 60/60/170
</p>

 <p>
I would also like to say a few words about desserts and candy.
</p>

 <p>
As can be seen from the “menu”, onion, garlic, and eggs end up being desserts in this program, rather than being normal food.
This is not as bad as it sounds, after a couple of weeks of a cabbage diet, garlic and onion start tasting really sweet, but in any case, they are spicy, and it is hard to eat a lot of them (I only eat them raw and juicy).
</p>

 <p>
Tea, coffee, and soda water are listed in the “menu”, even though their CFP value is close to zero.
They are a huge help in combating hunger during the day.
Warm coffee with milk is just excellent at reducing hunger, and tens of different soda flavours, seemingly identical, really start tasting really different after some time, and you can drink as many of them as you want.
</p>
</div>
</div>

 <div id="outline-container-Monitoring-progress-and-daily-schedule" class="outline-4">
 <h4 id="Monitoring-progress-and-daily-schedule"> <span class="section-number-4">1.2.7.</span>  <a href="#Monitoring-progress-and-daily-schedule">Monitoring progress and daily schedule</a></h4>
 <div class="outline-text-4" id="text-Monitoring-progress-and-daily-schedule">
 <p>
It is very helpful to eat regularly, mostly because it makes monitoring progress very more consistent, because you body has the same weight in the same hours of the day, therefore measurements are “of the same entity”, comparing apples to apples.
</p>

 <p>
Measurements are very important to understand whether you are doing into a correct direction, and to increase the feeling of success.
(A popular maxim says “if you want to achieve a goal, first you need to measure it”.)
</p>

 <p>
As I mentioned above, I eat solid food once a day, but I drink a lot of decaf coffee during the day, which is  <span class="underline">very</span> helpful to not feel hungry.
</p>

 <p>
Contrary to popular belief, it does not really matter if you eat in the evening or during the night, it seems to take about 3 days to incorporate the materials consumed into your body.
</p>

 <p>
So I eat before going to sleep, because when feeling full, falling asleep is much easier than when hungry.
</p>

 <p>
I am measuring my weight once a day, in the morning, when the water drunk and anything eaten not according to the schedule cannot affect the measurement.
</p>

 <p>
(Be aware that any material going through the digestive tract  <span class="underline">cannot</span> take any of your body weight away.
The actual molecules which are leaving your body and are leaving through one of the three channels:
</p>
 <ol class="org-ol"> <li>urinary tract</li>
 <li>sweating</li>
 <li>breathing out CO₂)</li>
</ol> <p>
I am writing down the results on paper, but in the past I used to just write them on the bathroom mirror with a marker, since I have my scales there and I can measure my weight without clothing without disturbing anyone with an unsightly show.
</p>

 <p>
With such a schedule, it is possible to achieve weight loss speed of about 1.5 kg per week.
Do not try to exceed this speed, it is not healthy.
1.5 kg per week is a solid observable number, which brings a lot of joy, helping to maintain the schedule.
</p>

 <p>
Suppose you want to lower your weight from 90 kilograms to 60 kilograms (a short, but very overweight man).
It would not be healthy to do this in less that 20 weeks, but in about half a year this should be doable.
</p>

 <p>
On the other hand, I cannot vouch for the fact that the above observations will be applicable to women mutatis mutandis, because body fat plays a larger role in female metabolism than in male metabolism.
Fat is actually producing some female hormones, so its percentage in a female body is naturally higher, so, firstly, probably females need to consume more fat than men, and are probably not expected to reach 1.5 kg per week weight loss.
</p>

 <p>
Some of this weight loss will be muscular weight, unfortunately, this cannot be avoided.
Losing fat is inevitably accompanied by losing muscles too.
But for me this has never been much of a concern, I am not doing a lot of physical work.
</p>

 <p>
Exercising can possibly make muscular loss less prominent.
</p>

 <p>
But in any case, it is very nice to have a table with the number “how my body weight goes down”.
On some days it will actually go up, do not expect your weight to decrease by 200 grams every day, but on average it should be possible.
</p>
</div>
</div>

 <div id="outline-container-How-to-deal-with-episodes-when-you-_ARE-REALLY-HUNGRY_?" class="outline-4">
 <h4 id="How-to-deal-with-episodes-when-you-_ARE-REALLY-HUNGRY_?"> <span class="section-number-4">1.2.8.</span>  <a href="#How-to-deal-with-episodes-when-you-_ARE-REALLY-HUNGRY_?">How to deal with episodes when you  <span class="underline">ARE REALLY HUNGRY</span>?</a></h4>
 <div class="outline-text-4" id="text-How-to-deal-with-episodes-when-you-_ARE-REALLY-HUNGRY_?">
 <p>
Eat a lot of food from the list above.
</p>

 <p>
Instead of eating a 1 kilogram of cabbage, eat 3.
If 500 grams of chicken do not satisfy you – add up 500 more grams of shrimp.
If even that fails, add 500 more grams of horse meat.
</p>

 <p>
Most of the time when we are DESPERATELY HUNGRY, the desire can be squelched by variety better than by a sheer amount.
The list above, no matter how meagre, still gives you some slack in choosing food.
</p>
</div>
</div>

 <div id="outline-container-What-to-do-when-your-weight-becomes-as-you-want-it-to-be?" class="outline-4">
 <h4 id="What-to-do-when-your-weight-becomes-as-you-want-it-to-be?"> <span class="section-number-4">1.2.9.</span>  <a href="#What-to-do-when-your-weight-becomes-as-you-want-it-to-be?">What to do when your weight becomes as you want it to be?</a></h4>
 <div class="outline-text-4" id="text-What-to-do-when-your-weight-becomes-as-you-want-it-to-be?">
 <p>
Well, maintaining a constant weight is, in some sense even harder than losing weight.
</p>

 <p>
Now you have to care not just about the KPI going up, but also about it going down unduly.
</p>

 <p>
So, if while “losing weight” you only have to care about “not exceeding” the value plus tolerance, now you also have to care about not cutting too much.
</p>

 <p>
This is also the time when the rough target of 240/60/60 stops being valid, because you really need to be “within a reasonable margin” of your bare minimum.
</p>

 <p>
But at least you can congratulate yourself with an achievement.
</p>

 <p>
You would probably want to switch to eating twice a day, not once.
Which will also make measuring your weight harder, but it is probably possible to measure the weight twice a day, before each meal.
This is actually much worse than measuring once, in the morning, but better than nothing.
You can probably use “smart scales”, as writing down twice-a-day measurements is tiresome.
</p>

 <p>
Overall, 240 grams of carbs allows a variety much larger than 60, but I generally like increasing amount, not increasing variety.
As I said, I am not a gourmand.
</p>
</div>
</div>
</div>


 <div id="outline-container-Conclusion" class="outline-3">
 <h3 id="Conclusion"> <span class="section-number-3">1.3.</span>  <a href="#Conclusion">Conclusion</a></h3>
 <div class="outline-text-3" id="text-Conclusion">
 <p>
This memo contains a real experience, but, of course, is subjective and not written by a medical professional, consult your doctor if in doubt.
</p>
</div>
</div>
</section> <section id="outline-container-Contacts-and-blurb" class="outline-2"> <h2 id="Contacts-and-blurb"> <span class="section-number-2">2.</span>  <a href="#Contacts-and-blurb">Contacts and blurb</a></h2>
 <div class="outline-text-2" id="text-Contacts-and-blurb">
 <ol class="org-ol"> <li>Telegram ::  <a href="https://t.me/unobvious">https://t.me/unobvious</a></li>
 <li>Zhihu (cn) ::  <a href="https://www.zhihu.com/people/lockywolf">https://www.zhihu.com/people/lockywolf</a></li>
 <li>LiveJournal (ru) ::  <a href="https://dead-doomer.livejournal.com">https://dead-doomer.livejournal.com</a></li>
 <li>Wordpress (en) ::  <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></li>
 <li>Permalink ::  <a href="https://lockywolf.net/2025-10-01_How-to-lose-weight.org.d/index.html">https://lockywolf.net/2025-10-01_How-to-lose-weight.org.d/index.html</a></li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-10-01_How-to-lose-weight.org.d/index.html"/>
  <id>https://lockywolf.net/2025-10-01_How-to-lose-weight.org.d/index.html</id>
  <updated>2025-10-16T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Some thoughts on human brain process scheduling. (Reading Eckhart Tolle&apos;s &quot;The Power of Now&quot;)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Some thoughts on human brain process scheduling. (Reading Eckhart Tolle’s “The Power of Now”)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Eckhart-Tolle-%22The-Power-of-Now%22">1. Eckhart Tolle “The Power of Now”</a>
 <ul> <li> <a href="#Automatic-algorithms-versus-observational-algorithms">1.1. Automatic algorithms versus observational algorithms</a></li>
 <li> <a href="#Conscious-algorithms-versus-unconscious-algorithms">1.2. Conscious algorithms versus unconscious algorithms</a></li>
 <li> <a href="#Synchronous-versus-asynchronous-algorithms">1.3. Synchronous versus asynchronous algorithms</a></li>
 <li> <a href="#Emotions">1.4. Emotions</a></li>
 <li> <a href="#Looking-at-the-algorithms-a-human-brain-runs">1.5. Looking at the algorithms a human brain runs</a></li>
 <li> <a href="#Other-topics">1.6. Other topics</a></li>
</ul></li>
 <li> <a href="#Contacts-and-blurb">2. Contacts and blurb</a></li>
</ul></div>
</nav> <section id="outline-container-Eckhart-Tolle-%22The-Power-of-Now%22" class="outline-2"> <h2 id="Eckhart-Tolle-%22The-Power-of-Now%22"> <span class="section-number-2">1.</span>  <a href="#Eckhart-Tolle-%22The-Power-of-Now%22">Eckhart Tolle “The Power of Now”</a></h2>
 <div class="outline-text-2" id="text-Eckhart-Tolle-%22The-Power-of-Now%22">
 <p>
“… the most popular spiritual author” in the United States.
</p>

 <p>
While the book did not impress me too much, as most “spiritual enlightenment” books, it made me spot a few observations.
</p>
</div>

 <div id="outline-container-Automatic-algorithms-versus-observational-algorithms" class="outline-3">
 <h3 id="Automatic-algorithms-versus-observational-algorithms"> <span class="section-number-3">1.1.</span>  <a href="#Automatic-algorithms-versus-observational-algorithms">Automatic algorithms versus observational algorithms</a></h3>
 <div class="outline-text-3" id="text-Automatic-algorithms-versus-observational-algorithms">
 <p>
As a general idea, the book is trying to teach adults how to de-overfit their brains.
</p>

 <p>
This idea comes from machine learning, and also in the psychological teachings on “refreshing being”.
</p>

 <p>
You might remember that for children the world seems more bright and full with things happening in it, than for adults.
Why?
Overfitting.
The amount of information coming to our system did not change, but adults do not see a lot of that information as useful, and the brain “fits” to ignoring it.
</p>

 <p>
The psychological training teaches the patients to start looking at familiar things as if they are alien, or, which is the same thing, as if a child is examining it, as a thing it has never seen before.
</p>

 <p>
While this trick is useful, and it is worth practising it, the book made me think about various computational models present in the brain.
</p>

 <p>
The “childhood” model, the one described above, is about “consciously observing the world”.
In some sense it is the most de-fit algorithm in the brain, as it sees everything from an observation point, has the least amount of automation, and at the same time is fully obedient to the willpower.
</p>

 <p>
Algorithms which require observation/investigation are very exhausting an energy-consuming, and many tasks just cannot be solved using conscious algorithms.
(Do not ask a centipede which leg it needs to move next.)
</p>

 <p>
However, algorithms which are “mostly automatic” are prone to all the issues that overfit neural networks encounter – they fail for new data.
</p>
</div>
</div>

 <div id="outline-container-Conscious-algorithms-versus-unconscious-algorithms" class="outline-3">
 <h3 id="Conscious-algorithms-versus-unconscious-algorithms"> <span class="section-number-3">1.2.</span>  <a href="#Conscious-algorithms-versus-unconscious-algorithms">Conscious algorithms versus unconscious algorithms</a></h3>
 <div class="outline-text-3" id="text-Conscious-algorithms-versus-unconscious-algorithms">
 <p>
Some algorithms work in the conscious, some work in sub-conscious, but  <span class="underline">not</span> all algorithms which work in the consciousness are consciously ignited.
</p>

 <p>
In fact, we have a lot of algorithms running in the conscious, mostly aiming at assessing the world around us or predicting the future, which are not consciously started.
</p>

 <p>
For example, we are having a walk, but instead of enjoying the scenery, we are thinking over our failing relationship.
Most often such thoughts “come by themselves”, and if we push our brain a bit, we can cast them off.
</p>

 <p>
Tolle is saying that most such algorithms are harmful, but I am not discussing good/bad here.
</p>

 <p>
The point is that such algorithms should not be confused with “subconscious” algorithms, such as breathing or smelling.
Breathing usually works without any conscious intervention at all, whereas smell works non-interactively “most” of the time, but not all – sometimes a strong smell hits our nostrils, and we suddenly become aware of it.
</p>
</div>
</div>

 <div id="outline-container-Synchronous-versus-asynchronous-algorithms" class="outline-3">
 <h3 id="Synchronous-versus-asynchronous-algorithms"> <span class="section-number-3">1.3.</span>  <a href="#Synchronous-versus-asynchronous-algorithms">Synchronous versus asynchronous algorithms</a></h3>
 <div class="outline-text-3" id="text-Synchronous-versus-asynchronous-algorithms">
 <p>
Surprise: not all subconscious algorithms are automatic.
</p>

 <p>
Example: Ramanujan, who saw solutions to mathematical problems while sleeping.
Most clearly he was also working on those problems during the day, but since he manually started those conscious solution-searching algorithms, they moved to subconscious when he slept, but continued working.
</p>
</div>
</div>

 <div id="outline-container-Emotions" class="outline-3">
 <h3 id="Emotions"> <span class="section-number-3">1.4.</span>  <a href="#Emotions">Emotions</a></h3>
 <div class="outline-text-3" id="text-Emotions">
 <p>
I am not sure whether emotions are algorithms.
Sometimes we analyse something, see it as unworthy, and feel disgust, so an emotion can be are a result of a voluntary or a compulsive conscious algorithm.
</p>

 <p>
This is not necessary, however, as sometimes we feel emotions coming from the subconscious.
</p>
</div>
</div>

 <div id="outline-container-Looking-at-the-algorithms-a-human-brain-runs" class="outline-3">
 <h3 id="Looking-at-the-algorithms-a-human-brain-runs"> <span class="section-number-3">1.5.</span>  <a href="#Looking-at-the-algorithms-a-human-brain-runs">Looking at the algorithms a human brain runs</a></h3>
 <div class="outline-text-3" id="text-Looking-at-the-algorithms-a-human-brain-runs">
 <p>
Most of the book is really about getting rid of “compulsive thinking”, that is, conscious automatic algorithms, such as “worry” or “waiting for something”.
</p>

 <p>
I am not ready to agree with him on this.
</p>
</div>
</div>

 <div id="outline-container-Other-topics" class="outline-3">
 <h3 id="Other-topics"> <span class="section-number-3">1.6.</span>  <a href="#Other-topics">Other topics</a></h3>
 <div class="outline-text-3" id="text-Other-topics">
 <p>
Most “self-help” and “spirituality” books are worthless from the point of view of applying their recommendations, but they are useful in seeing what really bothers people.
</p>

 <ol class="org-ol"> <li>Worry, expectations, and similar “compulsive thinking”.</li>
 <li>Emotional outbursts, uncontrolled emotions.</li>
 <li>Relationships with opposite sex, feeling “not whole”.</li>
 <li>Unhappiness with the body.</li>
 <li>The issue of mind-body separation (hardware/software), whether it exists.</li>
 <li>Salvation, the feeling of guilt/sin.</li>
 <li>Hopeless situations, such as being stuck on a bad job.</li>
</ol> <p>
The books also tells about a few “spiritual practices”, which should help the readers combat “compulsive thinking” and “automatic emotions” in order to better control themselves.
</p>
</div>
</div>
</section> <section id="outline-container-Contacts-and-blurb" class="outline-2"> <h2 id="Contacts-and-blurb"> <span class="section-number-2">2.</span>  <a href="#Contacts-and-blurb">Contacts and blurb</a></h2>
 <div class="outline-text-2" id="text-Contacts-and-blurb">
 <ol class="org-ol"> <li>Telegram ::  <a href="https://t.me/unobvious">https://t.me/unobvious</a></li>
 <li>Zhihu (cn) ::  <a href="https://www.zhihu.com/people/lockywolf">https://www.zhihu.com/people/lockywolf</a></li>
 <li>LiveJournal (ru) ::  <a href="https://dead-doomer.livejournal.com">https://dead-doomer.livejournal.com</a></li>
 <li>Wordpress (en) ::  <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></li>
 <li>Permalink ::  <a href="https://lockywolf.net/2025-06-27_Eckhart-Tolle-The-power-of-Now.d/index.html">https://lockywolf.net/2025-06-27_Eckhart-Tolle-The-power-of-Now.d/index.html</a></li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-06-27_Eckhart-Tolle-The-power-of-Now.d/index.html"/>
  <id>https://lockywolf.net/2025-06-27_Eckhart-Tolle-The-power-of-Now.d/index.html</id>
  <updated>2025-10-15T00:00:00+00:00</updated>
</entry>
<entry>
  <title>How to use GNU GRUB on OpenBSD.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How to use GNU GRUB on OpenBSD.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#How-to-install-GNU-GRUB-from-OpenBSD.">1. How to install GNU GRUB from OpenBSD.</a>
 <ul> <li> <a href="#Build-GRUB">1.1. Build GRUB</a>
 <ul> <li> <a href="#Grub-2.12">1.1.1. Grub 2.12</a></li>
 <li> <a href="#Build-grub-2.06">1.1.2. Build grub 2.06</a></li>
</ul></li>
 <li> <a href="#Resize-the-existing-openbsd-partition.">1.2. Resize the existing openbsd partition.</a></li>
 <li> <a href="#install-grub">1.3. install grub</a></li>
 <li> <a href="#~/boot_grub_part2/grub/grub.cfg~">1.4.  <code>/boot_grub_part2/grub/grub.cfg</code></a></li>
 <li> <a href="#Next-steps.">1.5. Next steps.</a></li>
 <li> <a href="#What-is-happening-here?">1.6. What is happening here?</a></li>
 <li> <a href="#Summary">1.7. Summary</a></li>
 <li> <a href="#Post-Scriptum-(Using-GRUB-withe-EFI)">1.8. Post Scriptum (Using GRUB withe EFI)</a></li>
</ul></li>
 <li> <a href="#Contacts-and-blurb">2. Contacts and blurb</a></li>
</ul></div>
</nav> <p>
At some point I got a machine with OpenBSD, which was running some expensive hardware.
</p>

 <p>
A lot of time has passed since its purchase, and we wanted to move to Linux, as its support for the hard ware has improved.
</p>

 <p>
However, the machine had a locked bootloader.
</p>

 <p>
This file is my notes on trying to circumvent it.
</p>

 <section id="outline-container-How-to-install-GNU-GRUB-from-OpenBSD." class="outline-2"> <h2 id="How-to-install-GNU-GRUB-from-OpenBSD."> <span class="section-number-2">1.</span>  <a href="#How-to-install-GNU-GRUB-from-OpenBSD.">How to install GNU GRUB from OpenBSD.</a></h2>
 <div class="outline-text-2" id="text-How-to-install-GNU-GRUB-from-OpenBSD.">
</div>

 <div id="outline-container-Build-GRUB" class="outline-3">
 <h3 id="Build-GRUB"> <span class="section-number-3">1.1.</span>  <a href="#Build-GRUB">Build GRUB</a></h3>
 <div class="outline-text-3" id="text-Build-GRUB">
 <p>
We will need two grub installations, because, well,… because it is software, and everything is broken.
GRUB 2.12 is generating bootloader images which are too huge (more than 64 sectors), and GRUB 2.06 is generating broken  <code>boot.img</code> and  <code>diskboot.img</code>.
But combined together, they work.
</p>

 <p>
Firstly we will do some preparatory work.
</p>

 <ol class="org-ol"> <li>pkg_add git rsync autoconf automake gawk gsed gmake libtool gettext-tools findutils wget gtar xz ggrep</li>
 <li>chsh -> bash</li>
 <li>printf ’export AUTOCONF_VERSION=2.72\nexport AUTOMAKE_VERSION=1.17\n export PS1=“\\u:\\w>”\n’ >> ~/.profile</li>
 <li>mkdir ~/grub ; cd ~/grub</li>
 <li>wget  <a href="https://mirrors.dotsrc.org/gnu/grub/grub-2.06.tar.gz">https://mirrors.dotsrc.org/gnu/grub/grub-2.06.tar.gz</a></li>
 <li>wget  <a href="https://mirrors.dotsrc.org/gnu/grub/grub-2.12.tar.gz">https://mirrors.dotsrc.org/gnu/grub/grub-2.12.tar.gz</a></li>
</ol> <p>
 <b>nsectors patch</b>
</p>

 <p>
This small patch can be applied to grub source in order to show you what is the size of the resulting image, in case installation fails.
</p>

 <div class="org-src-container">
 <pre class="src src-patch">diff --git a/grub-core/partmap/msdos.c b/grub-core/partmap/msdos.c
index c85bb74be..25c460474 100644
--- a/grub-core/partmap/msdos.c
+++ b/grub-core/partmap/msdos.c
@@ -400,10 +400,12 @@ pc_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors,
			  "post-MBR gap; embedding won't be possible"));

   if (*nsectors > 62)
+    {
+      printf("lwf:core.img nsectors=%d\n", *nsectors);
     return grub_error (GRUB_ERR_OUT_OF_RANGE,
		       N_("your core.img is unusually large.  "
			  "It won't fit in the embedding area"));
-
+    }
   return grub_error (GRUB_ERR_OUT_OF_RANGE,
		     N_("your embedding area is unusually small.  "
			"core.img won't fit in it."));

</pre>
</div>
</div>


 <div id="outline-container-Grub-2.12" class="outline-4">
 <h4 id="Grub-2.12"> <span class="section-number-4">1.1.1.</span>  <a href="#Grub-2.12">Grub 2.12</a></h4>
 <div class="outline-text-4" id="text-Grub-2.12">
 <p>
We will build grub-2.12 first, because it is easier, and because later we will be using its build artefacts.
The  <code>touch</code> command is needed, because GRUB developers just do not care if their software fails to build.
</p>

 <ol class="org-ol"> <li> <code>cd ~/grub/ ; gtar xvf grub-2.12.tar.gz ; cd grub-2.12</code></li>
 <li> <code>touch grub-core/extra_deps.lst</code></li>
 <li> <p>
 <code>MAKE=gmake ./configure --disable-werror --disable-nls && gmake -j1</code>
</p>

 <p>
Check results:
</p></li>
</ol> <pre class="example" id="org0918bfb">
root:~/grub/grub-2.12>ls -l ./grub-core/{diskboot.img,boot.img}
-rwxr-xr-x  1 root  wheel   512 Sep 24 16:00 ./grub-core/boot.img
-rwxr-xr-x  1 root  wheel   512 Sep 24 16:00 ./grub-core/diskboot.img
</pre>

 <p>
Both must be exactly 512 bytes.
</p>
</div>
</div>

 <div id="outline-container-Build-grub-2.06" class="outline-4">
 <h4 id="Build-grub-2.06"> <span class="section-number-4">1.1.2.</span>  <a href="#Build-grub-2.06">Build grub 2.06</a></h4>
 <div class="outline-text-4" id="text-Build-grub-2.06">
 <ol class="org-ol"> <li>cd ~/grub ; gtar xvf grub-2.06.tar.gz ; cd grub-2.06</li>
 <li>sed -i ’s/-falign-jumps=1//g’ configure</li>
 <li>MAKE=gmake  ./configure –disable-werror –disable-nls && gmake -j1</li>
 <li>gmake install</li>
</ol> <p>
We can see that the two images are, indeed, broken:
</p>

 <pre class="example" id="org9e8c81d">
root:~/grub/grub-2.06>ls -l ./grub-core/{diskboot.img,boot.img}
-rwxr-xr-x  1 root  wheel  531 Sep 24 16:07 ./grub-core/boot.img
-rwxr-xr-x  1 root  wheel  531 Sep 24 16:07 ./grub-core/diskboot.img
</pre>

 <p>
But do not worry, we will replace them:
</p>

 <ol class="org-ol"> <li>cd ~/grub/grub-2.12</li>
 <li>cp ./grub-core/{diskboot.img,boot.img}  <i>usr/local/lib/grub/i386-pc</i></li>
</ol> <p>
Now we can use grub-related commands.
</p>
</div>
</div>
</div>

 <div id="outline-container-Resize-the-existing-openbsd-partition." class="outline-3">
 <h3 id="Resize-the-existing-openbsd-partition."> <span class="section-number-3">1.2.</span>  <a href="#Resize-the-existing-openbsd-partition.">Resize the existing openbsd partition.</a></h3>
 <div class="outline-text-3" id="text-Resize-the-existing-openbsd-partition.">
 <p>
OpenBSD default install installs makes the fourth partition on the disk to be the BSD disklabel.
Inside the disklabel, there is a /home partition, which usually hosts user files, but we do not really need it to be a separate partition.
</p>

 <ol class="org-ol"> <li>mkdir /tmp/homebak</li>
 <li>mv /home/* /tmp/homebak</li>
 <li>umount /home</li>
 <li>remove mounting /home from /etc/fstab</li>
 <li>delete the home (in most cases, “k” disklabel-partition)
disklabel -E sd0 ; d k w x ; reboot</li>
 <li>create two BSD-disklabel partitions with disklabel -E sd0
It is a bit annoying to compute those offsets and sizes, but not hard.
I have made one partition sized 2Gb, on /dev/sd2k, for grub, and one for the future Linux system for the rest of the disk, /dev/sd0l.</li>
 <li>adjust two fdisk partitons (in my case, 2 and 3), to match the offset and size on /dev/sd0k and /dev/sd0l.</li>
 <li>format /dev/sd0k with newfs_msdos:  <code>newfs_msdos sd0k</code></li>
</ol> <p>
The reason for the above is that OpenBSD (and newfs) sees partitions under the disklabel, and grub and BIOS see partitions under MBR/fdisk.
</p>

 <p>
You do not really have to format the second partition, Linux can do it by itself.
</p>
</div>
</div>

 <div id="outline-container-install-grub" class="outline-3">
 <h3 id="install-grub"> <span class="section-number-3">1.3.</span>  <a href="#install-grub">install grub</a></h3>
 <div class="outline-text-3" id="text-install-grub">
 <ol class="org-ol"> <li>mkdir -p /boot_grub_part2/grub</li>
 <li>mount_msdos /dev/sd0k /boot_grub_part2</li>
 <li>echo ’(hd0) /dev/rsd0c’ > /boot_grub_part2/grub/device.map</li>
 <li>cd ~/grub/grub-2.06</li>
 <li>grub-install –no-rs-codes –disk-module=biosdisk –target=i386-pc -v –grub-mkdevicemap=/grub/device.map –skip-fs-probe  –boot-directory=/boot_grub_part2/ ’/dev/rsd0c’ 2>&1 | ggrep -v ’Scanning for’ | ggrep -v ’signature found’</li>
</ol> <p>
Look at the very bottom of it.
There should be not issues with installation.
If there are, they are likely due to “not enough space for embedding”.
With the nsectors patch it should also show you what the actual size of the bootloader it.
</p>

 <p>
This is the dangerous step, if it fails, you are screwed, the system will not boot.
</p>

 <p>
However, you probably can still repair it by running  <code>installboot</code> and  <code>fdisk</code>.
</p>
</div>
</div>

 <div id="outline-container-~/boot_grub_part2/grub/grub.cfg~" class="outline-3">
 <h3 id="~/boot_grub_part2/grub/grub.cfg~"> <span class="section-number-3">1.4.</span>  <a href="#~/boot_grub_part2/grub/grub.cfg~"> <code>/boot_grub_part2/grub/grub.cfg</code></a></h3>
 <div class="outline-text-3" id="text-~/boot_grub_part2/grub/grub.cfg~">
 <p>
Make the following  <code>grub.cfg</code>.
</p>

 <div class="org-src-container">
 <pre class="src src-example">set timeout=5
serial --unit=0 --speed=9600
terminal_input console serial
terminal_output console serial
menuentry "openbsd1" {
insmod chain
insmod ufs2
set root=(hd0,msdos4)
chainloader +1
}
</pre>
</div>

 <p>
This is a bit of a cheat. In fact, it  <span class="underline">relies</span> on the fact that /dev/sd0a , which is usually root of OpenBSD, is at the beginning of the disklabel, msdos4.
</p>

 <p>
You can do a better thing, you can do something like:
</p>
 <div class="org-src-container">
 <pre class="src src-example">set timeout=5
menuentry "openbsd1" {
insmod chain
insmod ufs2
insmod part_bsd
set root=(hd0,openbsd1)
chainloader +1
}
</pre>
</div>
 <p>
Or maybe even
</p>
 <div class="org-src-container">
 <pre class="src src-example">set timeout=5
menuentry "openbsd1" {
insmod chain
insmod ufs2
insmod part_bsd
set root=(hd0,openbsd1)
kopenbsd bsd
boot
}
</pre>
</div>

 <p>
But I have not tested it.
</p>

 <p>
Never  <span class="underline">ever</span> run  <code>grub-mkconfig</code>, because what would you expect it to generate?
</p>

 <p>
Reboot and observer your OpenBSD booting from GRUB.
</p>
</div>
</div>

 <div id="outline-container-Next-steps." class="outline-3">
 <h3 id="Next-steps."> <span class="section-number-3">1.5.</span>  <a href="#Next-steps.">Next steps.</a></h3>
 <div class="outline-text-3" id="text-Next-steps.">
 <p>
If you want to install Linux, you probably can add another menuentry, which would mount an ISO file as a loop-back device, and boot into it, like this:
</p>

 <div class="org-src-container">
 <pre class="src src-grub">menuentry "GParted Live ISO" {
  set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
  loopback loop (hd2,gpt2)$GPartedISOFile
  linuxefi (loop)/live/vmlinuz boot=live components config findiso=$GPartedISOFile ip=frommedia toram=filesystem.squashfs union=overlay username=user
  initrdefi (loop)/live/initrd.img
}
</pre>
</div>

 <p>
But I have not tried it, and I am not sure it works as intended.
</p>
</div>
</div>

 <div id="outline-container-What-is-happening-here?" class="outline-3">
 <h3 id="What-is-happening-here?"> <span class="section-number-3">1.6.</span>  <a href="#What-is-happening-here?">What is happening here?</a></h3>
 <div class="outline-text-3" id="text-What-is-happening-here?">
 <p>
Question: Why exactly do we need this trickery with two versions of GRUB?
</p>

 <p>
Answer: Because, despite most of the HOWTOs on the internet claiming that the 63 sectors between MBR and the first partition are enough for a GRUB image supporting msdos partitioning, and a FAT filesystem, this is wrong.
Neither GRUB-git.20250923, nor GRUB-2.12 are building an image which is small enough.
Ironically, with various tricks, I managed to build an image of 64 sectors, which is still 1 sector larger than allowed.
Only GRUB-2.06 generates the bootloader small enough to fit in the MBR gap.
</p>

 <p>
Question: Why do you even need an MBR/BIOS boot in 2025, where can you even encounter such machines?
</p>

 <p>
Answer: If you are not dealing with an OEM-specific hardware, there are still plenty of virtual machines rented out by hosting providers which book with BIOS.
</p>

 <p>
Question: What are all those “bootloaders”, “images”, all that kind of stuff you are talking about?
</p>

 <p>
Answer: GRUB’s architecture is incredibly stupid.
Here I will try to outline it briefly.
</p>

 <p>
 <b>Normal booting</b>
</p>
 <ol class="org-ol"> <li>MSDOS MBR usually works like this: the default bootloader, built into the MBR itself, cannot do any real booting, it just makes a jump to the “partition boot record” (PBR), of a partition marked as “bootable”.</li>
 <li>In the PBR there would be a 512-byte stage-1 bootloader, which is called “biosboot” on OpenBSD, which lists blocks containing the actual bootloader (called “boot” on OpenBSD), which is big enough to read the filesystem, its files and directories, not just blocks, and the code to assemble and execute it.</li>
 <li>“boot” boots the whole system, but it does not have to, actually, because it is already big enough to do more or less anything.</li>
</ol> <p>
 <b>GRUB booting</b>
</p>

 <p>
GRUB, in theory, could support the same model of booting.
It could generate the equivalent of the “boot” program, called “core.img”.
In principle, you would do the same thing: write the blocklists-enabled 512-byte large “stage1” bootloader place in the PBR.
This would require the partition to be edited seldom, but this is okay, since most people have a partition dedicated to GRUB specifically anyway.
The issues is that:
</p>

 <ol class="org-ol"> <li>It is impossible to enable this machinery explicitly, unless GRUB infers that it cannot install ALL of its “core.img” into the “gap” between the first sector (where the MBR is), and the beginning of the first partition (which is often 64 sectors-large, that is about 32kilobytes).</li>
 <li>Even if the “gap” is small enough, GRUB’s code for blocklists is so broken that they discourage its use themselves.</li>
</ol> <p>
Naturally, there is a question: why don’t you put the bootloader “somewhere outside the partitioned space”?
Well, this is extremely obvious and requires no tweaking whatsoever: just make some space for grub to be installed at the end of the disk, beyond the boundary of the last partition, and you can even ignore all the “blocklist” machinery, just write the bytes constituting “core.img” linearly, sector by sector.
</p>

 <p>
But GRUB does not support such an OBVIOUS thing.
</p>

 <p>
Moreover, even if you give it a whole partition, it still cannot install itself.
</p>

 <p>
Really, if you specifically prepare some space for it, and even:
</p>
 <pre class="example" id="org29630aa">
grub-install --force --no-rs-codes --disk-module=biosdisk --target=i386-pc -v --grub-mkdevicemap=/grub/device.map --skip-fs-probe  --boot-directory=/boot_grub_part2/ '/dev/rsd0k' 2>&1 | ggrep -v 'Scanning for' | ggrep -v 'signature found'
</pre>

 <p>
You will get:
</p>

 <pre class="example" id="org67f954c">
grub-install: info: guessed root_dev `hd0' from dir `/boot_grub_part2/grub/i386-pc'.
grub-install: info: setting the root device to `hd0,msdos4'.
grub-install: warning: Attempting to install GRUB to a partitionless disk or to a partition.  This is a BAD idea..
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: info: will leave the core image on the filesystem.
grub-install: info: attempting to read the core image `/boot_grub_part2/grub/i386-pc/core.img' from GRUB.
grub-install: info: drive = 0.
grub-install: info: the size of hd0 is 104857600.
grub-install: info: succeeded in opening the core image but the data is different.
grub-install: info: attempting to read the core image `/boot_grub_part2/grub/i386-pc/core.img' from GRUB again.
grub-install: info: drive = 0.
grub-install: info: the size of hd0 is 104857600.
grub-install: info: succeeded in opening the core image but the data is different.
grub-install: info: attempting to read the core image `/boot_grub_part2/grub/i386-pc/core.img' from GRUB again.
grub-install: info: drive = 0.
grub-install: info: the size of hd0 is 104857600.
grub-install: info: succeeded in opening the core image but the data is different.
grub-install: info: attempting to read the core image `/boot_grub_part2/grub/i386-pc/core.img' from GRUB again.
grub-install: info: drive = 0.
grub-install: info: the size of hd0 is 104857600.
grub-install: info: succeeded in opening the core image but the data is different.
grub-install: info: attempting to read the core image `/boot_grub_part2/grub/i386-pc/core.img' from GRUB again.
grub-install: info: drive = 0.
grub-install: info: the size of hd0 is 104857600.
grub-install: info: succeeded in opening the core image but the data is different.
grub-install: error: cannot read `/boot_grub_part2/grub/i386-pc/core.img' correctly.
</pre>

 <pre class="example" id="orgfeb3b5d">
grub-install: info: the size of hostdisk//dev/rsd0c is 104857600.
grub-install: info: guessed root_dev `hostdisk//dev/rsd0c' from dir `/boot_grub_part2/grub/i386-pc'.
grub-install: info: setting the root device to `hostdisk//dev/rsd0c,msdos4'.
grub-install: warning: Attempting to install GRUB to a partitionless disk or to a partition.  This is a BAD idea..
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: info: will leave the core image on the filesystem.
grub-install: info: attempting to read the core image `/boot_grub_part2/grub/i386-pc/core.img' from GRUB.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/rsd0c is 104857600.
grub-install: info: succeeded in opening the core image but the data is different.
grub-install: info: attempting to read the core image `/boot_grub_part2/grub/i386-pc/core.img' from GRUB again.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/rsd0c is 104857600.
grub-install: info: succeeded in opening the core image but the data is different.
grub-install: info: attempting to read the core image `/boot_grub_part2/grub/i386-pc/core.img' from GRUB again.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/rsd0c is 104857600.
grub-install: info: succeeded in opening the core image but the data is different.
grub-install: info: attempting to read the core image `/boot_grub_part2/grub/i386-pc/core.img' from GRUB again.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/rsd0c is 104857600.
grub-install: info: succeeded in opening the core image but the data is different.
grub-install: info: attempting to read the core image `/boot_grub_part2/grub/i386-pc/core.img' from GRUB again.
grub-install: info: drive = 0.
grub-install: info: the size of hostdisk//dev/rsd0c is 104857600.
grub-install: info: succeeded in opening the core image but the data is different.
grub-install: error: cannot read `/boot_grub_part2/grub/i386-pc/core.img' correctly.
</pre>

 <p>
WTF “impossible”, you have a whopping 2 GIGABYTES of space to embed yourself, you dummy.
I told you explicitly: write your “core.img” into /dev/sd0k, write its blocklists as the PBR, and install your module files into /boot_grub_part2.
What is wrong with you?
</p>

 <p>
GRUB  <span class="underline">requires</span> to be installed into a “partition with an FS”, because it insists on copying its “dynamic modules” into  <span class="underline">the same</span> filesystem.
</p>

 <p>
So, the only way to install GRUB reliably is to do both:
</p>

 <ol class="org-ol"> <li>Replace the standard MBR with GRUB’s specific code.</li>
 <li>Make sure that “core.img” is small enough to fit into 63 blocks between MBR and the first partition.</li>
 <li>Give it a dedicated fat/msdos partition to put its modules and  <code>grub.cfg</code> into.</li>
</ol> <p>
And to make (2) work, you MUST use grub 2.06, because the newer versions of GRUB produce a larger “core.img”.
</p>
</div>
</div>

 <div id="outline-container-Summary" class="outline-3">
 <h3 id="Summary"> <span class="section-number-3">1.7.</span>  <a href="#Summary">Summary</a></h3>
 <div class="outline-text-3" id="text-Summary">
 <p>
After wasting some time, I eventually managed to install grub-2.06 into the “gap”, and boot OpenBSD from it.
Not sense of joy ensued.
</p>
</div>
</div>

 <div id="outline-container-Post-Scriptum-(Using-GRUB-withe-EFI)" class="outline-3">
 <h3 id="Post-Scriptum-(Using-GRUB-withe-EFI)"> <span class="section-number-3">1.8.</span>  <a href="#Post-Scriptum-(Using-GRUB-withe-EFI)">Post Scriptum (Using GRUB withe EFI)</a></h3>
 <div class="outline-text-3" id="text-Post-Scriptum-(Using-GRUB-withe-EFI)">
 <p>
GRUB with EFI is also stupid, but less so.
I had to install it onto another device, and this is, strictly speaking, unrelated to OpenBSD and MBR, but I have no other better fitting file.
</p>

 <p>
GRUB on EFI needs access to efivars on Linux.
(Yes, I did this on Linux, not OpenBSD.)
</p>

 <div class="org-src-container">
 <pre class="src src-bash">mkdir /mnt/efi
mount /dev/sda1 /mnt/efi
mkdir -p /mnt/efi/EFI
umount /mnt/efi
mount -t efivarfs none /sys/firmware/efi/efivars
grub-install --target=x86_64-efi /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
</pre>
</div>

 <p>
I was in much of a less convoluted situation now.
</p>

 <ol class="org-ol"> <li> <code>/boot/grub</code> is just a directory on the root filesystem.</li>
 <li>EFI partition does not need to be mounted anywhere.</li>
 <li>What is the most reasonable place to install grub modules in such a case?
Well, since your  <code>grubx64.efi</code> goes into  <code>(hd0,1)/EFI/grub/</code>, it is most reasonable to place the modules into  <code>(hd0,1)/EFI/grub/grub/</code>, and the file  <code>grub.cfg</code> into  <code>(hd0,1)/EFI/grub/grub/grub.cfg</code>.
Right?
Right???</li>
 <li>Well, GRUB is, of course, smarter than that.
It does not want to “just care about EFI fat in its  <code>core.img</code>”, because that would mean that  <code>core.img</code> would be able to ignore the filesystem drivers and all that complexity, and just load the modules and config from the  <span class="underline">same folder where  <code>core.img</code> is</span>.
But of course, GRUB would never do something so lowly and profane.
It  <span class="underline">needs</span> to have drivers in the core, and therefore when you run  <code>grub-install</code>, it will generate  <code>grubx64.efi</code> with filesystem drivers and pointers to  <code>(hd0,3)/boot/grub/</code>.</li>
</ol> <p>
Also, of course  <code>grub-mkconfig</code> messed up the kernels and generated a lot of noodle-like code in  <code>grub.cfg</code>, but by chance, the kernel I needed to boot ended up as the first one, so whatever.
</p>
</div>
</div>
</section> <section id="outline-container-Contacts-and-blurb" class="outline-2"> <h2 id="Contacts-and-blurb"> <span class="section-number-2">2.</span>  <a href="#Contacts-and-blurb">Contacts and blurb</a></h2>
 <div class="outline-text-2" id="text-Contacts-and-blurb">
 <ol class="org-ol"> <li>Telegram ::  <a href="https://t.me/unobvious">https://t.me/unobvious</a></li>
 <li>Zhihu (cn) ::  <a href="https://www.zhihu.com/people/lockywolf">https://www.zhihu.com/people/lockywolf</a></li>
 <li>LiveJournal (ru) ::  <a href="https://dead-doomer.livejournal.com">https://dead-doomer.livejournal.com</a></li>
 <li>Wordpress (en) ::  <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></li>
 <li>Permalink ::  <a href="https://lockywolf.net/2025-09-23_How-to-use-Grub-on-OpenBSD.org.d/index.html">https://lockywolf.net/2025-09-23_How-to-use-Grub-on-OpenBSD.org.d/index.html</a></li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-09-23_How-to-use-Grub-on-OpenBSD.org.d/index.html"/>
  <id>https://lockywolf.net/2025-09-23_How-to-use-Grub-on-OpenBSD.org.d/index.html</id>
  <updated>2025-10-15T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Infinite Jest, Table of Contents</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Infinite Jest, Table of Contents</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Table-of-Contents">1. Table of Contents</a></li>
</ul></div>
</nav> <p>
My book was missing the Table of Contents, so I wrote my own one.
</p>

 <section id="outline-container-Table-of-Contents" class="outline-2"> <h2 id="Table-of-Contents"> <span class="section-number-2">1.</span>  <a href="#Table-of-Contents">Table of Contents</a></h2>
 <div class="outline-text-2" id="text-Table-of-Contents">
 <ol class="org-ol"> <li>YEAR OF GLAD  3</li>
 <li>YEAR OF THE DEPEND ADULT UNDERGARMENT.17</li>
 <li>1 APRIL — YEAR OF THE TUCKS MEDICATED PAD 27</li>
 <li>9 MAY — YEAR OF THE DEPEND ADULT UNDERGARMENT 32</li>
 <li>YEAR OF THE DEPEND ADULT UNDERGARMENT.33</li>
 <li>YEAR OF THE TRIAL-SIZE DOVE BAR .37</li>
 <li>YEAR OF THE DEPEND ADULT UNDERGARMENT.39</li>
 <li>OCTOBER — YEAR OF THE DEPEND ADULT UNDERGARMENT 42</li>
 <li>YEAR OF THE DEPEND ADULT UNDERGARMENT.49</li>
 <li>AUTUMN — YEAR OF DAIRY PRODUCTS FROM THE AMERICAN HEARTLAND .55</li>
 <li>3 NOVEMBER — YEAR OF THE DEPEND ADULT UNDERGARMENT 60</li>
 <li>AS OF YEAR OF THE DEPEND ADULT UNDERGARMENT .63</li>
 <li>DENVER CO, 1 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT 65</li>
 <li>YEAR OF THE DEPEND ADULT UNDERGARMENT.68</li>
 <li>YEAR OF THE DEPEND ADULT UNDERGARMENT.85</li>
 <li>30 APRIL — YEAR OF THE DEPEND ADULT UNDERGARMENT .87</li>
 <li>YEAR OF THE DEPEND ADULT UNDERGARMENT.95</li>
 <li>3 NOVEMBER Y.D.A.U. 109</li>
 <li>MARIO INCANDENZA’S FIRST AND ONLY EVEN REMOTELY ROMANTIC EXPERIENCE, THUS FAR 121</li>
 <li>30 APRIL — YEAR OF THE DEPEND ADULT UNDERGARMENT .126</li>
 <li>30 APRIL — YEAR OF THE DEPEND ADULT UNDERGARMENT .127</li>
 <li>3 NOVEMBER Y.D.A.U.135</li>
 <li>WINTER B.S. 1960 — TUCSON AZ .157</li>
 <li>4 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .169</li>
 <li>LATE OCTOBER YEAR OF THE DEPEND ADULT UNDERGARMENT 181</li>
 <li>6 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .198</li>
 <li>7 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .219</li>
 <li>5 NOVEMBER —YEAR OF THE DEPEND ADULT UNDERGARMENT .242</li>
 <li>6 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .258</li>
 <li>14 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .299</li>
 <li>7 NOVEMBER — YEAR OF THE DEPEND ADULT UNDERGARMENT 306</li>
 <li>30 APRIL / 1 MAY YEAR OF THE DEPEND ADULT UNDERGARMENT .317</li>
 <li>8 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT. INTERDEPENDENCE DAY GAUDEAMUS IGITUR .321</li>
 <li>8 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT INTERDEPENDENCE DAY GAUDEAMUS IGITUR  .343</li>
 <li>30 APRIL / 1 MAY YEAR OF THE DEPEND ADULT UNDERGARMENT .375</li>
 <li>8 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT GAUDEAMUS IGITUR 380</li>
 <li>30 APRIL / 1 MAY YEAR OF THE DEPEND ADULT UNDERGARMENT .418</li>
 <li>YEAR OF THE DEPEND ADULT UNDERGARMENT.442</li>
 <li>VERY LATE OCTOBER Y.D.A.U. .449</li>
 <li>9 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .450</li>
 <li>PRE-DAWN, 1 MAY — Y.D.A.U. OUTCROPPING NORTHWEST OF TUCSON AZ U.S.A., STILL .470</li>
 <li>PRE-DAWN, 1 MAY Y.D.A.U. OUTCROPPING NORTHWEST OF TUCSON AZ U.S.A., STILL .489</li>
 <li>WINTER, B.S. 1963, SEPULVEDA CA 491</li>
 <li>10 november year of the depend adult undergarment 508</li>
 <li>PRE-DAWN AND DAWN, 1 MAY Y.D.A.U. OUTCROPPING NORTHWEST OF TUCSON AZ U.S.A., STILL 528</li>
 <li>0450H., 11 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT FRONT OFFICE, ENNET HOUSE</li>
 <li>D.A.R.H., ENFIELD MA .531</li>
 <li>EARLY NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT. 548</li>
 <li>LATE P.M., MONDAY 9 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT474 550</li>
 <li>WEDNESDAY 11 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT 477 553</li>
 <li>YEAR OF THE DEPEND ADULT UNDERGARMENT:534</li>
 <li>SELECTED SNIPPETS FROM THE INDIVIDUAL-RESIDENT-INFORMAL-INTERFACE MOMENTS OF D. W. GATELY, LIVE-IN STAFF, ENNET HOUSE DRUG AND ALCOHOL RECOVERY HOUSE, ENFIELD MA, ON AND OFF FROM JUST AFTER THE BROOKLINE YOUNG PEOPLE’S AA MTNG. UP TO ABOUT 2329H., WEDNESDAY 11 NOVEMBER Y.D.A.U. 563</li>
 <li>11 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .540 627</li>
 <li>1 MAY Y.D.A.U. OUTCROPPING NORTHWEST OF TUCSON AZ U.S.A.549  638</li>
 <li>13 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .558  648</li>
 <li>11 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .561  651</li>
 <li>14 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .586 682</li>
 <li>11 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .589  686</li>
 <li>14 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .592  689</li>
 <li>14 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .600  698</li>
 <li>14 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .615  716</li>
 <li>14 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .618  719</li>
 <li>14 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .622  723</li>
 <li>11 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .649  755</li>
 <li>17 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .676 785</li>
 <li>19 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT .726   845</li>
 <li>20 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT GAUDEAMUS IGITUR  731  851</li>
 <li>PARTIAL TRANSCRIPT OF WEATHER-DELAYED MEETING BETWEEN: (1) MR. RODNEY TINE SR., CHIEF OF UNSPECIFIED SERVICES & WHITE HOUSE ADVISER ON INTERDEPENDENT RELATIONS; (2) MS. MAUREEN HOOLEY, VICE-PRESIDENT FOR CHILDREN’S ENTERTAINMENT, INTERLACE TELENTERTAINMENT, INC.; (3) MR. CARL E. (’BUSTER’) YEE, DIRECTOR OF MARKETING AND PRODUCT-PERCEPTION, GLAD FLACCID RECEPTACLE CORPORATION;(4) MR. R. TINE JR., DEPUTY REGIONAL COORDINATOR, U.S. OFFICE OF UNSPECIFIED SERVICES; AND (5) MR. P. TOM VEALS, VINEY AND VEALS ADVERTISING, UNLTD. 8TH FLOOR STATE HOUSE ANNEX BOSTON MA, U.S.A 20 NOVEMBER — YEAR OF THE DEPEND ADULT UNDERGARMENT 876</li>
 <li>20 NOVEMBER YEAR OF THE DEPEND ADULT UNDERGARMENT IMMEDIATELY PRE-FUNDRAISER-EXHIBITION-FÊTE GAUDEAMUS IGITUR .964</li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-10-15_Infinite-Jest-table-of-contents.org.d/index.html"/>
  <id>https://lockywolf.net/2025-10-15_Infinite-Jest-table-of-contents.org.d/index.html</id>
  <updated>2025-10-15T00:00:00+00:00</updated>
</entry>
<entry>
  <title>How to configure postfix in 2024.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How to configure postfix in 2024.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Preface">1. Preface</a></li>
 <li> <a href="#Postfix">2. Postfix</a>
 <ul> <li> <a href="#What-is-this-howto-aimed-at?">2.1. What is this howto aimed at?</a></li>
 <li> <a href="#What-are-pre-requisites-for-using-this-howto?">2.2. What are pre-requisites for using this howto?</a></li>
 <li> <a href="#I-have-messed-up-completely-a-lot-of-things,-how-can-I-drop-everything?">2.3. I have messed up completely a lot of things, how can I drop everything?</a></li>
 <li> <a href="#What-is-the-full-list-of-software-used-in-this-HOWTO?">2.4. What is the full list of software used in this HOWTO?</a></li>
 <li> <a href="#How-do-I-change-something-and-see-what-it-does?">2.5. How do I change something and see what it does?</a></li>
 <li> <a href="#What-is-tls-and-why-would-I-need-it?">2.6. What is tls and why would I need it?</a></li>
 <li> <a href="#How-do-I-obtain-certificate-for-encrypting-my-mail?">2.7. How do I obtain certificate for encrypting my mail?</a></li>
 <li> <a href="#How-do-I-enable-mail-on-a-machine?">2.8. How do I enable mail on a machine?</a></li>
 <li> <a href="#And-that-is-it?-Mail-would-work-now?">2.9. And that is it? Mail would work now?</a>
 <ul> <li> <a href="#test-1:-normal-mail-within-a-machine.">2.9.1. Test 1: normal mail within a machine.</a></li>
 <li> <a href="#Wait,-what-the-hell?-Are-you-suggesting-that-I-send-mail-%22from-a-user-to-a-user-on-the-same-machine%22?-This-sounds-like-pinging-localhost.">2.9.2. Wait, what the hell? Are you suggesting that I send mail "from a user to a user on the same machine"? This sounds like pinging localhost.</a></li>
 <li> <a href="#Why-would-I-even-send-those-errors-using-%22email%22-to-a-different-machine?-Why-not-just-copy-it-using-%22~scp~?">2.9.3. Why would I even send those errors using "email" to a different machine? Why not just copy it using " <code>scp</code>?</a></li>
 <li> <a href="#Okay,-can-I-send-those-%22errors%22-to-a-user-on-a-different-machine?">2.9.4. Okay, can I send those "errors" to a user on a different machine?</a></li>
 <li> <a href="#test-2:-sending-mail-using-postfix.">2.9.5. Test 2: sending mail using postfix.</a></li>
 <li> <a href="#test-3:-sending-mail-using-an-%22out-of-band-method%22.">2.9.6. Test 3: sending mail using an "out-of-band method".</a></li>
 <li> <a href="#How-do-we-introduce-this-wonderful-sender-rewriting-in-~postfix~?">2.9.7. How do we introduce this wonderful sender rewriting in  <code>postfix</code>?</a></li>
 <li> <a href="#test-4:-Does-this-work-now?">2.9.8. Test 4: Does this work now?</a></li>
</ul></li>
 <li> <a href="#How-do-I-get-the-wonderful-error-messages-delivered-to-me?-The-system-won't-know-my-~badmail~-address?">2.10. How do I get the wonderful error messages delivered to me? The system won't know my  <code>badmail</code> address?</a>
 <ul> <li> <a href="#test-1:-local-delivery-redirected-to-~badmail~.">2.10.1. Test 1: local delivery redirected to  <code>badmail</code>.</a></li>
 <li> <a href="#test-2:-remote-delivery-over-port-25.">2.10.2. Test 2: remote delivery over port 25.</a></li>
</ul></li>
 <li> <a href="#How-do-I-enable-encryption-in-~postfix~-and-support-outbound-encryption?">2.11. How do I enable encryption in  <code>postfix</code> and support outbound encryption?</a>
 <ul> <li> <a href="#test-1:-sending-outbound-TLS-encrypted-mail.">2.11.1. Test 1: sending outbound TLS-encrypted mail.</a></li>
</ul></li>
 <li> <a href="#How-do-I-add-encryption-to-a-default-port-25?">2.12. How do I add encryption to a default port 25?</a></li>
 <li> <a href="#Is-this-the-time-to-set-up-domain-name,-DNS,-and-all-that-magic?">2.13. Is this the time to set up domain name, DNS, and all that magic?</a></li>
 <li> <a href="#Shall-I-set-up-DKIM-right-now?">2.14. Shall I set up DKIM right now?</a></li>
 <li> <a href="#How-do-I-add-authenticated-encryption-to-submit-email?">2.15. How do I add authenticated encryption to submit email?</a>
 <ul> <li> <a href="#Test-1-starttls-on-port-587">2.15.1. Test 1 starttls on port 587</a></li>
 <li> <a href="#Test-2-starttls-on-port-465">2.15.2. Test 2 starttls on port 465</a></li>
 <li> <a href="#Test-3-tls-on-port-465">2.15.3. Test 3 tls on port 465</a></li>
</ul></li>
 <li> <a href="#How-do-I-make-myself-authenticated-on-the-two-submission-ports?">2.16. How do I make myself authenticated on the two submission ports?</a>
 <ul> <li> <a href="#Test-1-that-sending-authenticated-mail-works.">2.16.1. Test 1 that sending authenticated mail works.</a></li>
 <li> <a href="#Test-2-that-wrong-password-fails.">2.16.2. Test 2 that wrong password fails.</a></li>
</ul></li>
 <li> <a href="#Can-I-send-normal-mail-now?">2.17. Can I send normal mail now?</a>
 <ul> <li> <a href="#test-1:-from-mailer-to-some-machine.">2.17.1. Test 1: from mailer to some machine.</a></li>
 <li> <a href="#test-2:-from-a-public-address-to-a-public-address.">2.17.2. Test 2: from a public address to a public address.</a></li>
</ul></li>
 <li> <a href="#How-can-I-receive-mail?">2.18. How can I receive mail?</a>
 <ul> <li> <a href="#test-1:-unauthorized-sending.">2.18.1. Test 1: unauthorized sending.</a></li>
 <li> <a href="#Add-our-domain-to-~virtual_maps~">2.18.2. Add our domain to  <code>virtual_maps</code></a></li>
 <li> <a href="#Enable-OpenDKIM-to-sign-all-your-mail.">2.18.3. Enable OpenDKIM to sign all your mail.</a></li>
</ul></li>
 <li> <a href="#Should-_all_-forwarding-now-work?">2.19. Should  <span class="underline">all</span> forwarding now work?</a>
 <ul> <li> <a href="#test-1:-mail-from-_some_-server.">2.19.1. Test 1: mail from  <span class="underline">some</span> server.</a></li>
</ul></li>
 <li> <a href="#How-to-check-that-my-server-is-not-slow?">2.20. How to check that my server is not slow?</a></li>
 <li> <a href="#How-do-I-remove-IPs-from-relayed-emails?">2.21.  <span class="todo TODO">TODO</span> How do I remove IPs from relayed emails?</a></li>
</ul></li>
 <li> <a href="#Cyrus-Imap">3. Cyrus-Imap</a>
 <ul> <li> <a href="#References">3.1. References</a></li>
 <li> <a href="#Intro">3.2. Intro</a></li>
 <li> <a href="#~/etc/cyrus.conf~">3.3.  <code>/etc/cyrus.conf</code></a></li>
 <li> <a href="#~/etc/imapd.conf~">3.4.  <code>/etc/imapd.conf</code></a></li>
 <li> <a href="#Check-that-it-works.">3.5. Check that it works.</a></li>
 <li> <a href="#Add-password-to-the-~cyrus~-user.">3.6. Add password to the  <code>cyrus</code> user.</a></li>
 <li> <a href="#Send-a-test-email-to-cyrus">3.7. Send a test email to cyrus</a></li>
 <li> <a href="#Classifying-messages-to-directories-(making-a-la-Telegram-Channels)">3.8. Classifying messages to directories (making a-la Telegram Channels)</a></li>
 <li> <a href="#Editing-Sieve-scripts">3.9. Editing Sieve scripts</a>
 <ul> <li> <a href="#GUI-editing-on-your-laptop.">3.9.1. GUI editing on your laptop.</a></li>
 <li> <a href="#GUI-editing-on-Android">3.9.2. GUI editing on Android</a></li>
 <li> <a href="#Console-editing.">3.9.3. Console editing.</a></li>
</ul></li>
 <li> <a href="#Mail-notifications">3.10. Mail notifications</a>
 <ul> <li> <a href="#Notifications-with-IMAP-IDLE.">3.10.1. Notifications with IMAP IDLE.</a></li>
 <li> <a href="#IMAP-NOTIFY-(+IDLE)">3.10.2. IMAP NOTIFY (+IDLE)</a></li>
 <li> <a href="#X-GM-LABELS-(GMail)">3.10.3. X-GM-LABELS (GMail)</a></li>
 <li> <a href="#Script-reference">3.10.4.  <span class="todo TODO">TODO</span> Script reference</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Interaction-between-Postfix-and-Cyrus,-automatic-archiving-of-responses.">4. Interaction between Postfix and Cyrus, automatic archiving of responses.</a>
 <ul> <li> <a href="#Adding-headers-to-submitted-mail.">4.1. Adding headers to submitted mail.</a></li>
 <li> <a href="#Adding-a-Sieve-filter-in-Cyrus">4.2. Adding a Sieve filter in Cyrus</a></li>
 <li> <a href="#Make-sure-that-the-header-is-removed-when-the-message-leaves-Postfix">4.3. Make sure that the header is removed when the message leaves Postfix</a></li>
</ul></li>
 <li> <a href="#Unfinished-things.-%5B0/10%5D">5.  <span class="todo TODO">TODO</span> Unfinished things.  <code>[0/10]</code></a></li>
 <li> <a href="#Afterword">6. Afterword</a>
 <ul> <li> <a href="#Postfix-cheatsheet">6.1. Postfix cheatsheet</a></li>
</ul></li>
</ul></div>
</nav> <p>
 <b>References</b>
</p>

 <ol class="org-ol"> <li> <a href="https://prefetch.eu/blog/2020/email-server/">https://prefetch.eu/blog/2020/email-server/</a></li>
 <li> <a href="https://www.linux.org/threads/local-postfix-cannot-send-to-gmail.49489/">https://www.linux.org/threads/local-postfix-cannot-send-to-gmail.49489/</a></li>
 <li> <a href="https://apedik.dev/blog/post/rewrite-postfix-email-sender-with-postsrsd.html">https://apedik.dev/blog/post/rewrite-postfix-email-sender-with-postsrsd.html</a></li>
 <li> <a href="https://wiki.archlinux.org/title/Postfix_with_SASL">https://wiki.archlinux.org/title/Postfix_with_SASL</a></li>
 <li> <a href="https://wiki.archlinux.org/title/Postfix">https://wiki.archlinux.org/title/Postfix</a></li>
 <li> <a href="https://www.mail-tester.com/">https://www.mail-tester.com/</a></li>
 <li>(Sieve HOWTO)  <a href="https://gist.github.com/Hotrod369/6b7a24e1ea060e48e0c02459cbb950a0">https://gist.github.com/Hotrod369/6b7a24e1ea060e48e0c02459cbb950a0</a></li>
 <li> <a href="https://www.hjp.at/doc/rfc/rfc3028.html#sec_2.4.2.2">https://www.hjp.at/doc/rfc/rfc3028.html#sec_2.4.2.2</a></li>
 <li>Ralf Hildebrandt, Patrick Koetter - Postfix, the state of the art message transport</li>
 <li>Peer Heinlein, Peer Hartleben - The Book of IMAP_ Building a Mail Server with Courier and Cyrus</li>
</ol> <section id="outline-container-Preface" class="outline-2"> <h2 id="Preface"> <span class="section-number-2">1.</span>  <a href="#Preface">Preface</a></h2>
 <div class="outline-text-2" id="text-Preface">
 <p>
At some point I had to move from OpenBSD's OpenSMTPd to Slackware's Postfix.
</p>

 <p>
It turned out to be surprisingly hard to configure, so I decided to keep a log of things I have done in order to remember them, and in order to help future mail server administrators.
</p>

 <p>
In a few words, I am not amused: Postfix is over-engineered and pretends to be modular and modifiable, like a "true UNIX software", but in reality it is not, it is just that its features are scattered among components, and are hard to navigate around.
</p>

 <p>
Still, there is a lot of culture around it, and it also allows one to do quite a lot of things, which walled gardens, such as Telegram, WhatsApp, Wechat, and similar ones do not provide.
</p>

 <p>
I have been asked to mention some "easy to setup" alternatives to Postfix in this howto (mailinabox, docker-mailserver, mailu, mailcow).
I am mentioning them there, as requested, with a personal recommendation to  <b>NEVER EVER USE THEM IF YOUR SANITY IS DEAR TO YOU</b>.
They are solving exactly the kind of problems which are best solved by  <b>NEVER ALLOWING THEM TO EXIST IN THE FIRST PLACE</b>.
No only does the person deploying them have to learn 16 (not joking) programs instead of 1, that person also has to learn them in once batch, all at the same time, otherwise debugging lost mail, mail loops, and wrong deliveries becomes nearly impossible, and to complicate things even further, they make the user jump through all of the insane network forwarding and data-persistence hoops that  <code>docker</code> incurs.
</p>
</div>
</section> <section id="outline-container-Postfix" class="outline-2"> <h2 id="Postfix"> <span class="section-number-2">2.</span>  <a href="#Postfix">Postfix</a></h2>
 <div class="outline-text-2" id="text-Postfix">
</div>

 <div id="outline-container-What-is-this-howto-aimed-at?" class="outline-3">
 <h3 id="What-is-this-howto-aimed-at?"> <span class="section-number-3">2.1.</span>  <a href="#What-is-this-howto-aimed-at?">What is this howto aimed at?</a></h3>
 <div class="outline-text-3" id="text-What-is-this-howto-aimed-at?">
 <p>
This howto is aimed at someone installing Postfix at his or her own VPS, in order to have a self-hosted mail server for one or several people (not a company), and enjoy the benefits that self-hosted mail provides.
</p>

 <p>
The howto tries to follow two principles:
</p>
 <ol class="org-ol"> <li>Make things as simple and minimalist as possible, but allow further scaling when required.</li>
 <li>Provide as many test cases as possible.</li>
</ol> <p>
With an exception of hosting a somewhat dated  <code>submission</code> STARTTLS service on port 587 (which can be omitted), and the log watcher (which is still immensely helpful), none of the steps in this HOWTO can be avoided.
</p>

 <p>
Rewriting addresses in case of mail forwarding are done using an improvised method, which might be less beneficial than  <code>postsrsd</code>.
The author is interested in feedback on this subject: if some reader includes  <code>postsrsd</code> and finds that its rewriting method is better in some respect, the author would be interested in comments.
</p>
</div>
</div>

 <div id="outline-container-What-are-pre-requisites-for-using-this-howto?" class="outline-3">
 <h3 id="What-are-pre-requisites-for-using-this-howto?"> <span class="section-number-3">2.2.</span>  <a href="#What-are-pre-requisites-for-using-this-howto?">What are pre-requisites for using this howto?</a></h3>
 <div class="outline-text-3" id="text-What-are-pre-requisites-for-using-this-howto?">
 <p>
Setting up your own mail is not that simple, and this is unavoidable, because E-Mail is a social system.
Yes, it is a social system, because it can be used by people talking to people.
And as social systems evolve, they start to exhibit properties of social systems observed already by Plato and Aristotle.
</p>

 <p>
E-Mail used to be a very democratic system, and although gradually over time it became more oligarchic, to combat some ochlocratic tendencies, such as SPAM.
Even so, the presence of multiple oligarchs which are competing among themselves, so far has left us able to flow between the raindrops.
</p>

 <p>
Matching oligarchs requirements requires a bit of work, but so far most of this work is possible to perform cheaply, or even with no money spent at all.
</p>

 <ol class="org-ol"> <li>Domain name. :: I don't know a way to get one for free, but … sometimes you can get one from your ISP.</li>
 <li>DNS provider. :: Well, you can host one yourself, but there are free providers over there, with an excellent interface.</li>
 <li>An unassuming and unpretending free email provider which can receive mail. :: Same thing. This is not strictly requires, but nice to have. Let's call him  <b>badmail.test</b></li>
 <li>A hosting provider with a VM or at least with a mutable container. :: You can host at home, of course, but a "Cloud VM" is better.</li>
 <li>A real email provider that you are using when your self-hosted mail is down. Say,  <b>oligarch.com</b></li>
 <li>A way to pay for all of those. :: Paypal? Bitcoin? Card? Whatever.</li>
</ol></div>
</div>




 <div id="outline-container-I-have-messed-up-completely-a-lot-of-things,-how-can-I-drop-everything?" class="outline-3">
 <h3 id="I-have-messed-up-completely-a-lot-of-things,-how-can-I-drop-everything?"> <span class="section-number-3">2.3.</span>  <a href="#I-have-messed-up-completely-a-lot-of-things,-how-can-I-drop-everything?">I have messed up completely a lot of things, how can I drop everything?</a></h3>
 <div class="outline-text-3" id="text-I-have-messed-up-completely-a-lot-of-things,-how-can-I-drop-everything?">
 <div class="org-src-container">
 <pre class="src src-bash">postqueue -j | jq -r  <span style="font-style: italic;">'.queue_id'</span> | postsuper -d -
</pre>
</div>

 <p>
or
</p>

 <div class="org-src-container">
 <pre class="src src-bash">postqueue -d ALL
</pre>
</div>

 <p>
you can also stop all the services mentioned in this howto by running
</p>

 <blockquote>
 <p>
/etc/rc.d/rc.postfix stop ; /etc/rc.d/rc.opendkim stop
</p>
</blockquote>
</div>
</div>

 <div id="outline-container-What-is-the-full-list-of-software-used-in-this-HOWTO?" class="outline-3">
 <h3 id="What-is-the-full-list-of-software-used-in-this-HOWTO?"> <span class="section-number-3">2.4.</span>  <a href="#What-is-the-full-list-of-software-used-in-this-HOWTO?">What is the full list of software used in this HOWTO?</a></h3>
 <div class="outline-text-3" id="text-What-is-the-full-list-of-software-used-in-this-HOWTO?">
 <ol class="org-ol"> <li>postfix</li>
 <li>opendkim</li>
 <li>msmtp</li>
 <li>acme.sh</li>
 <li>nail</li>
</ol> <p>
Occasionally mentioned are:
</p>

 <ol class="org-ol"> <li>postsrsd</li>
 <li>opensmtpd</li>
 <li>ssh</li>
 <li>tmux</li>
 <li>tcpdump</li>
 <li>tshark/wireshark</li>
</ol> <p>
You may have to search for what some of those programs do.
</p>
</div>
</div>

 <div id="outline-container-How-do-I-change-something-and-see-what-it-does?" class="outline-3">
 <h3 id="How-do-I-change-something-and-see-what-it-does?"> <span class="section-number-3">2.5.</span>  <a href="#How-do-I-change-something-and-see-what-it-does?">How do I change something and see what it does?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-change-something-and-see-what-it-does?">
 <p>
I did most of the debugging having a  <code>tmux</code> session on the remote server, with 3 windows open:
</p>

 <ol class="org-ol"> <li>Console for sending mail with  <code>nail</code> or  <code>msmtp</code></li>
 <li> <code>tail -f /var/log/maillog</code></li>
 <li> <code>tcpdump -vvv -n -i any 'port 25'</code></li>
</ol> <p>
I know what you are thinking about "tcpdump? wtf?", but yes,  <code>tcpdump</code>.
SMTP is a plain-text protocol, so you can see where bad things happen.
</p>

 <p>
You have to turn tls off though.
</p>
</div>
</div>

 <div id="outline-container-What-is-tls-and-why-would-I-need-it?" class="outline-3">
 <h3 id="What-is-tls-and-why-would-I-need-it?"> <span class="section-number-3">2.6.</span>  <a href="#What-is-tls-and-why-would-I-need-it?">What is tls and why would I need it?</a></h3>
 <div class="outline-text-3" id="text-What-is-tls-and-why-would-I-need-it?">
 <p>
TLS is the server-side encryption standard we use today.
It essentially consists of two parts: private key and public key.
Public key is used by everyone to encrypt messages sent to you, and private key is used by you to decrypt those messages.
</p>

 <p>
Of course, TLS does not just work in one direction, it works in both directions, but to  <span class="underline">initiate</span> a connection it is enough to send a private message to recipient once.
</p>

 <p>
I suggest getting a tls certificate using  <code>acme.sh</code> with a DNS challenge.
You can use HTTP challenge too, but it requires maintaining an HTTP server, and is generally less fun to setup as it is more stateful.
</p>
</div>
</div>

 <div id="outline-container-How-do-I-obtain-certificate-for-encrypting-my-mail?" class="outline-3">
 <h3 id="How-do-I-obtain-certificate-for-encrypting-my-mail?"> <span class="section-number-3">2.7.</span>  <a href="#How-do-I-obtain-certificate-for-encrypting-my-mail?">How do I obtain certificate for encrypting my mail?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-obtain-certificate-for-encrypting-my-mail?">
 <p>
Use  <code>acme.sh</code>
</p>

 <p>
I will not write the full script here, but you need to run the script twice, to apply for a cert and to issue a cert.
</p>

 <ol class="org-ol"> <li> <code>acme.sh --home /root/.acme.sh --server letsencrypt --issue --days 60 --dns -d domain.test -d subdomain1.domain.test -d subdomain2.domain.test  --yes-I-know-dns-manual-mode-enough-go-ahead-please</code></li>
 <li> <code>for i in "${domainArray[@]}" ; do update_ddns.sh  ; done</code></li>
 <li> <code>acme.sh --home /root/.acme.sh --server letsencrypt --issue --days 60 --renew --dns -d domain.test -d subdomain1.domain.test -d subdomain2.domain.test  --yes-I-know-dns-manual-mode-enough-go-ahead-please</code></li>
</ol> <p>
This is finicky funky stuff, but you should get it eventually.
</p>

 <p>
It will produce two files:   <code>tls-certificate-acme.sh.fullchain.crt</code>, the public key, and  <code>tls-certificate-acme.sh.key</code>, the private key.
</p>
</div>
</div>

 <div id="outline-container-How-do-I-enable-mail-on-a-machine?" class="outline-3">
 <h3 id="How-do-I-enable-mail-on-a-machine?"> <span class="section-number-3">2.8.</span>  <a href="#How-do-I-enable-mail-on-a-machine?">How do I enable mail on a machine?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-enable-mail-on-a-machine?">
 <ol class="org-ol"> <li> <code>chmod +x /etc/rc.d/rc.postfix</code></li>
 <li> <code>/etc/rc.d/rc.postfix start</code></li>
</ol> <p>
But it is better to first enable both Internets we are living in now in  <code>postfix</code>'s main.cf
</p>

 <div class="org-src-container">
 <pre class="src src-patch">+#inet_protocols = ipv4
+inet_protocols = all
</pre>
</div>
</div>
</div>

 <div id="outline-container-And-that-is-it?-Mail-would-work-now?" class="outline-3">
 <h3 id="And-that-is-it?-Mail-would-work-now?"> <span class="section-number-3">2.9.</span>  <a href="#And-that-is-it?-Mail-would-work-now?">And that is it? Mail would work now?</a></h3>
 <div class="outline-text-3" id="text-And-that-is-it?-Mail-would-work-now?">
 <p>
Let us check.
</p>
</div>

 <div id="outline-container-test-1:-normal-mail-within-a-machine." class="outline-4">
 <h4 id="test-1:-normal-mail-within-a-machine."> <span class="section-number-4">2.9.1.</span>  <a href="#test-1:-normal-mail-within-a-machine.">Test 1: normal mail within a machine.</a></h4>
 <div class="outline-text-4" id="text-test-1:-normal-mail-within-a-machine.">
 <p>
As  <code>root</code>
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span> test | nail -s  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> user
</pre>
</div>

 <p>
This should create a message in the user's "mailbox", which is usually  <code>/var/spool/mail/user</code>
</p>
</div>
</div>

 <div id="outline-container-Wait,-what-the-hell?-Are-you-suggesting-that-I-send-mail-%22from-a-user-to-a-user-on-the-same-machine%22?-This-sounds-like-pinging-localhost." class="outline-4">
 <h4 id="Wait,-what-the-hell?-Are-you-suggesting-that-I-send-mail-%22from-a-user-to-a-user-on-the-same-machine%22?-This-sounds-like-pinging-localhost."> <span class="section-number-4">2.9.2.</span>  <a href="#Wait,-what-the-hell?-Are-you-suggesting-that-I-send-mail-%22from-a-user-to-a-user-on-the-same-machine%22?-This-sounds-like-pinging-localhost.">Wait, what the hell? Are you suggesting that I send mail "from a user to a user on the same machine"? This sounds like pinging localhost.</a></h4>
 <div class="outline-text-4" id="text-Wait,-what-the-hell?-Are-you-suggesting-that-I-send-mail-%22from-a-user-to-a-user-on-the-same-machine%22?-This-sounds-like-pinging-localhost.">
 <p>
Well, not really.
It is, indeed, not terribly useful by itself, but email is a thing which is inadvertently implementing a very widespread data structure: a series of entries with headers.
</p>

 <p>
This data structure is so ubiquitous that we often do not even recognise it, but it everywhere.
</p>

 <p>
It allows a lot of operations necessary for meaningful data organisation of a human.
</p>

 <p>
In theory you could put everything into a single file, which is trivial to implement, because:
</p>

 <ol class="org-ol"> <li>a flat file does not have boundaries between messages</li>
 <li>is append(overwrite)-only</li>
 <li>filtering is by pattern only</li>
</ol> <p>
A messagebox is strictly stronger than a flat file:
</p>

 <ol class="org-ol"> <li>you can delete messages</li>
 <li>you can sort the box</li>
 <li>you can filter messages by context</li>
 <li>(optional) messages might be linked into a tree</li>
</ol> <p>
A messagebox is weaker than a directory, because a messagebox does not support tree-like organisation.
However, the maildir format, combined with IMAP allows a tree-like directory for messages.
In theory this makes mail as expressive as a file system.
</p>

 <p>
There is the GMail system of mail organisation using  <b>labels</b>.
Labels are a totally different beast, and I do not yet have a clear opinion on them.
They are also ubiquitous, but I need to think more about them.
</p>

 <p>
But "mail" is readily available, and is "at least" the most standard way to report actionable errors to the user on UNIX.
If something breaks, is one-off, deserves user's attention, the best bet is to send an error message to the user in question.
</p>

 <p>
Sometimes it is okay to just append an error message to the log file, but, again, the point is that messages are mutable, so a user can clear them off, whereas log files are append-only and are dedicated to faithfully representing history.
</p>
</div>
</div>


 <div id="outline-container-Why-would-I-even-send-those-errors-using-%22email%22-to-a-different-machine?-Why-not-just-copy-it-using-%22~scp~?" class="outline-4">
 <h4 id="Why-would-I-even-send-those-errors-using-%22email%22-to-a-different-machine?-Why-not-just-copy-it-using-%22~scp~?"> <span class="section-number-4">2.9.3.</span>  <a href="#Why-would-I-even-send-those-errors-using-%22email%22-to-a-different-machine?-Why-not-just-copy-it-using-%22~scp~?">Why would I even send those errors using "email" to a different machine? Why not just copy it using " <code>scp</code>?</a></h4>
 <div class="outline-text-4" id="text-Why-would-I-even-send-those-errors-using-%22email%22-to-a-different-machine?-Why-not-just-copy-it-using-%22~scp~?">
 <p>
You can, and possibly even should, if (a) you trust your server enough to put an ssh login key onto this server, (b) your target machine accepts ssh/scp.
This is often not the case, and  <code>badmail.test</code> does not accept  <code>ssh</code> at all.
</p>

 <p>
Moreover, email is, so far, the only method of receiving messages anonymously, and which has a lot of provisions for reducing even anonymous spam.
</p>
</div>
</div>


 <div id="outline-container-Okay,-can-I-send-those-%22errors%22-to-a-user-on-a-different-machine?" class="outline-4">
 <h4 id="Okay,-can-I-send-those-%22errors%22-to-a-user-on-a-different-machine?"> <span class="section-number-4">2.9.4.</span>  <a href="#Okay,-can-I-send-those-%22errors%22-to-a-user-on-a-different-machine?">Okay, can I send those "errors" to a user on a different machine?</a></h4>
 <div class="outline-text-4" id="text-Okay,-can-I-send-those-%22errors%22-to-a-user-on-a-different-machine?">
 <p>
Well, yes.
You can do something like this:
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;">MX</span>=$(dig MX badmail.test | grep -A1  <span style="font-style: italic;">'ANSWER SECTION'</span> | tail -n 1 | awk  <span style="font-style: italic;">'{print $6;}'</span>)
 <span style="font-weight: bold; font-style: italic;">MX</span>= <span style="font-style: italic;">"${MX%.}"</span>
 <span style="font-weight: bold;">echo</span> test | nail -s  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span>  <span style="font-style: italic;">\</span>
                 -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">"$MX"</span>  <span style="font-style: italic;">\</span>
                 user@badmail.test
</pre>
</div>

 <p>
This is likely going to fail even on  <code>badmail.test</code>.
Firstly, because even  <code>badmail.test</code> is going to reject your mail with a thing called "Greylisting".
That is they will give you a "soft error", like "we are busy, come later".
</p>

 <p>
To avoid this loop, and to avoid querying the mail server yourself, you are expected to use this postfix.
</p>
</div>
</div>

 <div id="outline-container-test-2:-sending-mail-using-postfix." class="outline-4">
 <h4 id="test-2:-sending-mail-using-postfix."> <span class="section-number-4">2.9.5.</span>  <a href="#test-2:-sending-mail-using-postfix.">Test 2: sending mail using postfix.</a></h4>
 <div class="outline-text-4" id="text-test-2:-sending-mail-using-postfix.">
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;">MX</span>=$(dig MX badmail.test | grep -A1  <span style="font-style: italic;">'ANSWER SECTION'</span> | tail -n 1 | awk  <span style="font-style: italic;">'{print $6;}'</span>)
 <span style="font-weight: bold; font-style: italic;">MX</span>= <span style="font-style: italic;">"${MX%.}"</span>
 <span style="font-weight: bold;">echo</span> test | nail -s  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span>  <span style="font-style: italic;">\</span>
                 user@badmail.test
</pre>
</div>

 <p>
This will also probably fail, and you won't even know this, because postfix will not even send a "bounce" (delivery error) message to you, so you have to look for a "bounce" in a log file.
</p>

 <p>
The message will probably be that the sender address (that is effectively  <code>user@mymachine.local</code>) is not valid.
It is not valid because  <code>mymachine.local</code> is not a globally recognised domain name.
</p>

 <p>
Now did I mention registering a name on DNS in order to send mail from your own name?
Maybe I didn't, but you have to, obviously.
</p>

 <p>
But even giving this machine a real name will not solve your issue, because those domain names might expire, and you want your errors to be delivered with certainty.
</p>

 <p>
But, yes  <b>it is the time to find out how to register a domain, and be ready to give it to your machine</b>.
</p>

 <p>
Well, let us first identify how to properly send mail "by hand".
</p>
</div>
</div>

 <div id="outline-container-test-3:-sending-mail-using-an-%22out-of-band-method%22." class="outline-4">
 <h4 id="test-3:-sending-mail-using-an-%22out-of-band-method%22."> <span class="section-number-4">2.9.6.</span>  <a href="#test-3:-sending-mail-using-an-%22out-of-band-method%22.">Test 3: sending mail using an "out-of-band method".</a></h4>
 <div class="outline-text-4" id="text-test-3:-sending-mail-using-an-%22out-of-band-method%22.">
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;">MX</span>=$(dig MX badmail.test | grep -A1  <span style="font-style: italic;">'ANSWER SECTION'</span> | tail -n 1 | awk  <span style="font-style: italic;">'{print $6;}'</span>)
 <span style="font-weight: bold; font-style: italic;">MX</span>= <span style="font-style: italic;">"${MX%.}"</span>
 <span style="font-weight: bold; font-style: italic;">l_pattern</span>= <span style="font-style: italic;">'bounced'</span>
nohup tail -n0  --follow=name /var/log/maillog 2>/dev/null |   <span style="font-style: italic;">\</span>
  grep --line-buffered -i -F  <span style="font-style: italic;">"$l_pattern"</span> |  <span style="font-style: italic;">\</span>
  tee |  <span style="font-style: italic;">\</span>
   <span style="font-weight: bold;">while </span> <span style="font-weight: bold;">read</span> -r l_inputline ;  <span style="font-weight: bold;">do</span>
     <span style="font-weight: bold;">while</span> ! su nobody -s/bin/sh -c  <span style="font-style: italic;">\</span>
             <span style="font-style: italic;">"nail -s '/var/log/maillog:bounced' \
          -r 'account+mailer@badmail.test' \
          -S mta='smtp://${MX}:587 \
          -S smtp-use-starttls \
          -S smtp-auth=none \
          -S v15-compat=yes \
         account+mailer@badmail.test"</span> <<<  <span style="font-style: italic;">"$l_inputline"</span>
     <span style="font-weight: bold;">do</span>
       <span style="font-weight: bold; font-style: italic;">rc</span>=$ <span style="font-weight: bold; font-style: italic;">?</span>
      logger  <span style="font-style: italic;">"sending bounce notification failed:inputline=$l_inputline"</span>
      sleep 60
     <span style="font-weight: bold;">done</span> &
    disown
   <span style="font-weight: bold;">done</span>
</pre>
</div>

 <p>
I added a little more here to help you.
This is effectively a log watcher, which can watch for all sorts of errors, and mail them to your receive-error-only mail account.
This one watches for mail bounces, but it could watch for anything.
</p>

 <p>
The positive side of this watcher is that it does not require the mail server to work on its own.
</p>

 <p>
Now what is important in this log watcher script?
Do you see the  <code>-r 'account+mailer@badmail.test'</code> line there?
It could have been  <code>-r ''</code>, which is called "null recipient".
(Actually maybe this is even better.)
</p>

 <p>
It lets you go around that error of the original server having a broken hostname.
Again, we want to receive error messages even if our server is totally mis-configured (say, by invaders).
</p>
</div>
</div>

 <div id="outline-container-How-do-we-introduce-this-wonderful-sender-rewriting-in-~postfix~?" class="outline-4">
 <h4 id="How-do-we-introduce-this-wonderful-sender-rewriting-in-~postfix~?"> <span class="section-number-4">2.9.7.</span>  <a href="#How-do-we-introduce-this-wonderful-sender-rewriting-in-~postfix~?">How do we introduce this wonderful sender rewriting in  <code>postfix</code>?</a></h4>
 <div class="outline-text-4" id="text-How-do-we-introduce-this-wonderful-sender-rewriting-in-~postfix~?">
 <p>
Okay, I already mentioned the config file called  <code>main.cf</code>, where most of the  <code>postfix</code> configuration go, now I will mention  <code>main.cf</code>, which is its "service supervisor" config file.
</p>

 <p>
 <code>master.cf</code> defines the components that  <code>postfix</code> is running.
We will later use it to allow message submission on encrypted ports, but now we will define a separate delivery method (using msmtp) for our  <code>badmail.test</code>.
</p>

 <p>
Add the following line to your  <code>master.cf</code>:
</p>

 <div class="org-src-container">
 <pre class="src src-bash">msmtp_for_badmail unix -    n    n    -    50   pipe    <span style="font-weight: bold; font-style: italic;">flags</span>=R  <span style="font-weight: bold; font-style: italic;">user</span>=nobody  <span style="font-weight: bold; font-style: italic;">argv</span>=/etc/bin/postfix-to-msmtp-wrapper.bash --sender=${ <span style="font-weight: bold; font-style: italic;">sender</span>} --user=${ <span style="font-weight: bold; font-style: italic;">user</span>} --extension=${ <span style="font-weight: bold; font-style: italic;">extension</span>} --recipient=${ <span style="font-weight: bold; font-style: italic;">recipient</span>}
</pre>
</div>

 <p>
Where  <code>/etc/bin/postfix-to-msmtp-wrapper.bash</code> is a script which reads the arguments and calls  <code>msmtp</code> about like this:
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">exec</span> msmtp --host= <span style="font-style: italic;">"$MX"</span> --port=587 --tls=on --from= <span style="font-style: italic;">"$recipient"</span>  <span style="font-style: italic;">"$recipient"</span> 2>&1
</pre>
</div>

 <p>
I won't give you full script, this is a trivial exercise.
</p>

 <p>
You also need to specify that mail to this server should be sent in a special way.
</p>

 <p>
 <code>main.cf</code>
</p>
 <div class="org-src-container">
 <pre class="src src-bash">minimal_backoff_time = 60s
maximal_backoff_time = 600s
transport_maps = regexp:/etc/postfix/transport_maps
</pre>
</div>

 <p>
And in  <code>transport_maps</code>:
</p>
 <div class="org-src-container">
 <pre class="src src-bash">/^.*@badmail.test/ msmtp_for_badmail:
</pre>
</div>
</div>
</div>

 <div id="outline-container-test-4:-Does-this-work-now?" class="outline-4">
 <h4 id="test-4:-Does-this-work-now?"> <span class="section-number-4">2.9.8.</span>  <a href="#test-4:-Does-this-work-now?">Test 4: Does this work now?</a></h4>
 <div class="outline-text-4" id="text-test-4:-Does-this-work-now?">
 <p>
Well, test it by sending mail like this:
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> | nail -s  <span style="font-style: italic;">"Test $I mail to badmail"</span>  <span style="font-style: italic;">\</span>
     root@my-domain.test
</pre>
</div>

 <p>
This should pass.
Look into your  <code>/var/log/maillog</code> for greylisting errors and such, and wait a few minutes for the message to be delivered.
</p>
</div>
</div>
</div>

 <div id="outline-container-How-do-I-get-the-wonderful-error-messages-delivered-to-me?-The-system-won't-know-my-~badmail~-address?" class="outline-3">
 <h3 id="How-do-I-get-the-wonderful-error-messages-delivered-to-me?-The-system-won't-know-my-~badmail~-address?"> <span class="section-number-3">2.10.</span>  <a href="#How-do-I-get-the-wonderful-error-messages-delivered-to-me?-The-system-won't-know-my-~badmail~-address?">How do I get the wonderful error messages delivered to me? The system won't know my  <code>badmail</code> address?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-get-the-wonderful-error-messages-delivered-to-me?-The-system-won't-know-my-~badmail~-address?">
 <p>
Good.
</p>

 <p>
So, there are two methods:
</p>
 <ol class="org-ol"> <li>aliases</li>
 <li>bcc</li>
</ol> <p>
Aliases is the file  <code>/etc/aliases</code>, which allows you to show where to duplicate a message if you are sending it to a local user.
You can check its syntax by  <code>man aliases</code>, and do not forget to run  <code>postalias</code> after editing it.
</p>

 <p>
However, for a start, I recommend editing  <code>always_bcc</code> in  <code>main.cf</code>.
Set it to your  <code>badmail</code> address.
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">main.cf
</span>always_bcc = user@badmail.test
</pre>
</div>

 <p>
In addition, I suggest adding the following setting in order to receive error reports from  <code>postfix</code> itself when things go wrong:
</p>

 <div class="org-src-container">
 <pre class="src src-bash">notify_classes = bounce, delay, policy, protocol, resource, software
</pre>
</div>

 <p>
Errors are not subject to  <code>always_bcc</code>, so you will need to edit  <code>/etc/aliases</code> anyway (that is why introduced it first) and add  <code>user@badmail.test</code> after  <code>postmaster</code>.
 <code>postmaster</code> is a magical domain which is there for receiving mail errors.
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">cd</span> /etc/postfix ; postalias aliases
</pre>
</div>
</div>

 <div id="outline-container-test-1:-local-delivery-redirected-to-~badmail~." class="outline-4">
 <h4 id="test-1:-local-delivery-redirected-to-~badmail~."> <span class="section-number-4">2.10.1.</span>  <a href="#test-1:-local-delivery-redirected-to-~badmail~.">Test 1: local delivery redirected to  <code>badmail</code>.</a></h4>
 <div class="outline-text-4" id="text-test-1:-local-delivery-redirected-to-~badmail~.">
 <p>
This time I suggest not writing a mail, but rather making a  <code>cron</code> entry like this:
</p>

 <div class="org-src-container">
 <pre class="src src-cron">* * * * * echo "Test $(date --iso=seconds)" 1>&2
</pre>
</div>

 <p>
Messages should be delivered to both user inbox, and your wonderful  <code>badmail</code> account.
</p>
</div>
</div>

 <div id="outline-container-test-2:-remote-delivery-over-port-25." class="outline-4">
 <h4 id="test-2:-remote-delivery-over-port-25."> <span class="section-number-4">2.10.2.</span>  <a href="#test-2:-remote-delivery-over-port-25.">Test 2: remote delivery over port 25.</a></h4>
 <div class="outline-text-4" id="text-test-2:-remote-delivery-over-port-25.">
 <p>
In general you want to have your mail encrypted.
However, receiving mail over the classical unencrypted port 25 would still be nice if you have some old devices, and old does not mean that old, at the time of writing Android 6 already have expired TLS certificates and balk at random occasions.
</p>

 <p>
By default Postfix allows unencrypted port 25 mail for local delivery, so let us try it from your laptop.
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> | nail -v -s  <span style="font-style: italic;">'test-public-port-25'</span>  <span style="font-style: italic;">\</span>
        -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtp://subdomain.my-domain.test:25'</span>  <span style="font-style: italic;">\</span>
        -S smtp-auth=none  <span style="font-style: italic;">\</span>
        -S v15-compat=yes  <span style="font-style: italic;">\</span>
       user@my-domain.test
</pre>
</div>

 <p>
This should work and deliver mail to  <code>user</code>, as well as duplicate it to your  <code>badmail</code>.
</p>
</div>
</div>
</div>

 <div id="outline-container-How-do-I-enable-encryption-in-~postfix~-and-support-outbound-encryption?" class="outline-3">
 <h3 id="How-do-I-enable-encryption-in-~postfix~-and-support-outbound-encryption?"> <span class="section-number-3">2.11.</span>  <a href="#How-do-I-enable-encryption-in-~postfix~-and-support-outbound-encryption?">How do I enable encryption in  <code>postfix</code> and support outbound encryption?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-enable-encryption-in-~postfix~-and-support-outbound-encryption?">
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">main.cf
</span>smtp_tls_security_level = may
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_loglevel = 1
</pre>
</div>
</div>

 <div id="outline-container-test-1:-sending-outbound-TLS-encrypted-mail." class="outline-4">
 <h4 id="test-1:-sending-outbound-TLS-encrypted-mail."> <span class="section-number-4">2.11.1.</span>  <a href="#test-1:-sending-outbound-TLS-encrypted-mail.">Test 1: sending outbound TLS-encrypted mail.</a></h4>
 <div class="outline-text-4" id="text-test-1:-sending-outbound-TLS-encrypted-mail.">
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> | nail -v -s  <span style="font-style: italic;">'test-public-port-25-encryption-outbound'</span>  <span style="font-style: italic;">\</span>
        -S v15-compat=yes  <span style="font-style: italic;">\</span>
       noreply@oligarch.com
</pre>
</div>

 <p>
And look at the  <code>postfix</code> log.
Delivery should fail, but Postfix log should have information about the TLS quality.
</p>

 <p>
You can disable  <code>smtp_tls_loglevel</code> afterwards.
</p>
</div>
</div>
</div>

 <div id="outline-container-How-do-I-add-encryption-to-a-default-port-25?" class="outline-3">
 <h3 id="How-do-I-add-encryption-to-a-default-port-25?"> <span class="section-number-3">2.12.</span>  <a href="#How-do-I-add-encryption-to-a-default-port-25?">How do I add encryption to a default port 25?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-add-encryption-to-a-default-port-25?">
 <p>
Again, it is better to only add optional encryption, since receiving unencrypted mail can be useful.
</p>

 <p>
We will use those keys that you should have prepared  <a href="#What-are-pre-requisites-for-using-this-howto?">2.2</a>
</p>

 <div class="org-src-container">
 <pre class="src src-config"># main.cf
smtpd_tls_security_level = may
smtpd_tls_cert_file = /etc/ssl/tls-certificate-acme.sh.fullchain.crt
smtpd_tls_key_file = /etc/ssl/private/tls-certificate-acme.sh.key
</pre>
</div>

 <p>
Test from your laptop by:
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |  <span style="font-style: italic;">\</span>
  nail -v -s  <span style="font-style: italic;">'test-public-port-25'</span>  <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtp://mailer.domain.test'</span>  <span style="font-style: italic;">\</span>
       -S smtp-use-starttls <span style="font-style: italic;">\</span>
       -S smtp-auth=none <span style="font-style: italic;">\</span>
       -S v15-compat=yes <span style="font-style: italic;">\</span>
       user@mailer.domain.test
</pre>
</div>

 <p>
This should succeed, because mail should be accepted to a local destination.
</p>

 <p>
Also test on your laptop:
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |  <span style="font-style: italic;">\</span>
  nail -v -s  <span style="font-style: italic;">'test-public-port-25'</span>  <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtp://mailer.domain.test'</span>  <span style="font-style: italic;">\</span>
       -S smtp-use-starttls  <span style="font-style: italic;">\</span>
       -S smtp-auth=none  <span style="font-style: italic;">\</span>
       -S v15-compat=yes  <span style="font-style: italic;">\</span>
       user@oligarch.com
</pre>
</div>

 <p>
This should  <span class="underline">fail</span>, because relaying to oligarch.com over port 25 should be refused even the port supports encryption.
</p>
</div>
</div>

 <div id="outline-container-Is-this-the-time-to-set-up-domain-name,-DNS,-and-all-that-magic?" class="outline-3">
 <h3 id="Is-this-the-time-to-set-up-domain-name,-DNS,-and-all-that-magic?"> <span class="section-number-3">2.13.</span>  <a href="#Is-this-the-time-to-set-up-domain-name,-DNS,-and-all-that-magic?">Is this the time to set up domain name, DNS, and all that magic?</a></h3>
 <div class="outline-text-3" id="text-Is-this-the-time-to-set-up-domain-name,-DNS,-and-all-that-magic?">
 <p>
Yes.
So far we have done everything that can be done without exposing ourselves to the world as people with an identity.
We used IP addresses, nonexistent domain names, and sender rewriting.
Now we are planning to interact with the external world.
</p>

 <p>
Some of it can be done with self-generated keys and localhosted domains, but really the next steps are about interacting with the rest of the world.
Let us assume that your domain is  <code>domain.test</code>.
</p>

 <ol class="org-ol"> <li>Generate a DKIM key buy running  <code>/etc/rc.d/rc.opendkim</code> (and add starting it to  <code>rc.local</code>)</li>
 <li>You need at least four  <code>A</code> and ( <code>AAAA</code>) records, for  <code>domain.test</code> and for  <code>mailer.domain.test</code>, with IP addresses.</li>
 <li>You will need least one  <code>MX</code> record with  <code>mailer.domain.test</code>.</li>
 <li>You will need an SPF (TXT) record like this:  <code>v=spf1 mx -all</code> on  <code>domain.test</code>, and maybe  <code>"v=spf1 a -all"</code> on  <code>mailer.domain.test</code>.</li>
 <li>You will need a DMARC record  <code>_dmarc.domain.test</code> like this  <code>"v=DMARC1;p=none;pct=100;rua=mailto:postmaster@mailer.domain.test</code> , this is for the place where spam violations will be sent. (Aren't those the errors which we have done so much to be able to receive?)</li>
 <li>Set up a DKIM record  <code>default._domainkey.domain.test</code> with the value that  <code>opendkim</code> has generated for your in  <code>/etc/opendkim/keys/</code>. These are  <span class="underline">NOT</span> the TLS keys.</li>
</ol></div>
</div>

 <div id="outline-container-Shall-I-set-up-DKIM-right-now?" class="outline-3">
 <h3 id="Shall-I-set-up-DKIM-right-now?"> <span class="section-number-3">2.14.</span>  <a href="#Shall-I-set-up-DKIM-right-now?">Shall I set up DKIM right now?</a></h3>
 <div class="outline-text-3" id="text-Shall-I-set-up-DKIM-right-now?">
 <p>
Well… technically you can, and this would work, but would not be terribly useful, since the mail server would have the SPF trust level anyway.
</p>

 <p>
So, surprisingly, I refer you to the point to really read about DKIM and OpenDKIM.
</p>
</div>
</div>

 <div id="outline-container-How-do-I-add-authenticated-encryption-to-submit-email?" class="outline-3">
 <h3 id="How-do-I-add-authenticated-encryption-to-submit-email?"> <span class="section-number-3">2.15.</span>  <a href="#How-do-I-add-authenticated-encryption-to-submit-email?">How do I add authenticated encryption to submit email?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-add-authenticated-encryption-to-submit-email?">
 <p>
Add the following to  <code>main.cf</code>
</p>

 <div class="org-src-container">
 <pre class="src src-config">submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_auth_only=yes
  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
</pre>
</div>

 <p>
Sometimes your system might have  <code>submissions</code> instead of  <code>smtps</code>.
Mapping of "services" to ports is done in  <code>/etc/services</code>.
</p>

 <p>
The important bit here is  <code>smtpd_relay_restrictions=permit_sasl_authenticated</code>.
</p>

 <p>
It will prohibit sending mail with this port, unless one is authenticated using "sasl".
SASL is essentially "login/password smtp authentication".
It is not the only model which makes sense even for a home setup.
For example, one might imagine a TLS client-certificate authentication.
</p>

 <p>
You need to run the following tests:
</p>
</div>

 <div id="outline-container-Test-1-starttls-on-port-587" class="outline-4">
 <h4 id="Test-1-starttls-on-port-587"> <span class="section-number-4">2.15.1.</span>  <a href="#Test-1-starttls-on-port-587">Test 1 starttls on port 587</a></h4>
 <div class="outline-text-4" id="text-Test-1-starttls-on-port-587">
 <p>
On your laptop:
</p>
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |
  nail -s  <span style="font-style: italic;">'test-submission-port-587'</span>  <span style="font-style: italic;">\</span>
       -v <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtp://mailer.domain.test:587'</span>  <span style="font-style: italic;">\</span>
       -S smtp-use-starttls  <span style="font-style: italic;">\</span>
       -S smtp-auth=none  <span style="font-style: italic;">\</span>
       -S v15-compat=yes  <span style="font-style: italic;">\</span>
       root@mailer.domain.test
</pre>
</div>

 <p>
Connection should work, but sending mail should fail with the reason:
</p>

 <p>
 <code>SMTP server: 554 5.7.1 <root@mailer.domain.test>: Recipient address rejected: Access denied</code>
</p>

 <p>
I haven't investigated it deeper, but it seems that this message is misleading.
It is not the recipient address which is rejected, it is that the client is not authorised.
The reason this happens is that postfix processes the client connection line by line, and the authentication is checked after the RCPT TO command is issued by the client.
</p>

 <p>
SMTP does not have anything like "AUTH anon" command, which could fail with something like "unauthorized", the command may simply be missing, therefore the place where postfix fails is RCPT TO.
</p>

 <p>
Why the error message is misleading?
Well, I don't know.
</p>
</div>
</div>

 <div id="outline-container-Test-2-starttls-on-port-465" class="outline-4">
 <h4 id="Test-2-starttls-on-port-465"> <span class="section-number-4">2.15.2.</span>  <a href="#Test-2-starttls-on-port-465">Test 2 starttls on port 465</a></h4>
 <div class="outline-text-4" id="text-Test-2-starttls-on-port-465">
 <p>
On your laptop.
</p>
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |
  nail -s  <span style="font-style: italic;">'test-submission-port-465'</span>  <span style="font-style: italic;">\</span>
       -v <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtp://mailer.domain.test:465'</span>  <span style="font-style: italic;">\</span>
       -S smtp-use-starttls  <span style="font-style: italic;">\</span>
       -S smtp-auth=none  <span style="font-style: italic;">\</span>
       -S v15-compat=yes  <span style="font-style: italic;">\</span>
       root@mailer.domain.test
</pre>
</div>

 <p>
This test should connect, but timeout, because STARTTLS is a plain TCP connection, whereas port 465 expects a TCP+TLS conection.
</p>
</div>
</div>

 <div id="outline-container-Test-3-tls-on-port-465" class="outline-4">
 <h4 id="Test-3-tls-on-port-465"> <span class="section-number-4">2.15.3.</span>  <a href="#Test-3-tls-on-port-465">Test 3 tls on port 465</a></h4>
 <div class="outline-text-4" id="text-Test-3-tls-on-port-465">
 <p>
Note that there is no  <code>smtp-use-starttls</code>, but there is  <code>smtps://</code>.
</p>

 <p>
On your laptop.
</p>
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |  <span style="font-style: italic;">\</span>
  nail -v -s  <span style="font-style: italic;">'test-submission-port-465-tls'</span>  <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtps://mailer.domain.test:465'</span> <span style="font-style: italic;">\</span>
       -S smtp-auth=none  <span style="font-style: italic;">\</span>
       -S v15-compat=yes  <span style="font-style: italic;">\</span>
       root@mailer.domain.test
</pre>
</div>

 <p>
This test should fail with the message:
</p>

 <p>
 <code>SMTP server: 554 5.7.1 <root@mailer.domain.test>: Recipient address rejected: Access denied</code>.
</p>

 <p>
Again, this message is misleading, see Test 1.
</p>
</div>
</div>
</div>

 <div id="outline-container-How-do-I-make-myself-authenticated-on-the-two-submission-ports?" class="outline-3">
 <h3 id="How-do-I-make-myself-authenticated-on-the-two-submission-ports?"> <span class="section-number-3">2.16.</span>  <a href="#How-do-I-make-myself-authenticated-on-the-two-submission-ports?">How do I make myself authenticated on the two submission ports?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-make-myself-authenticated-on-the-two-submission-ports?">
 <p>
So, in OpenSMTPd this is super easy, just use the  <code>listen</code> directive with an  <code>auth</code> keyword, and users will be authenticated with their system login/password pair.
</p>

 <p>
But Postfix is enterprise-level software, so it expected something called SASL-daemon.
</p>

 <p>
Slackware has  <code>cyrus-sasl</code> and  <code>rc.saslauthd</code>.
</p>

 <p>
I used the following guide,  <a href="https://wiki.archlinux.org/title/Postfix_with_SASL">https://wiki.archlinux.org/title/Postfix_with_SASL</a> , but the  <code>pam_other</code> issue that they are mentioning does not exist on Slackware, so things are a bit easier.
The official documentation of Postfix surprisingly makes sense in this question too ( <a href="http://www.postfix.org/SASL_README.html">http://www.postfix.org/SASL_README.html</a>).
</p>

 <ol class="org-ol"> <li>enable  <code>rc.saslauthd</code> :: chmod +x /etc/rc.d/rc.saslauthd</li>
 <li>Edit /etc/sasl2/smtpd.conf</li>
 <li>/etc/rc.d/rc.saslauthd restart</li>
 <li>Nothing required on the postfix side, because  <code>permit_sasl_authenticated,reject</code> has already been introduced, but you can restart postfix for clarity.  <code>/etc/rc.d/rc.postfix restart</code></li>
</ol> <div class="org-src-container">
 <pre class="src src-config"># /etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
log_level: 7
</pre>
</div>

 <p>
So, SASL is a generic authentication daemon (which includes a plain password method).
PAM is a system login method.
Postfix asks SASL, and gives it a login and a password, and SASL asks PAM, and forwards the login and password to it.
PAM can delegate password checking again somewhere, say, to SASL, which will in turn ask PAM, and so on and so on, and we will have a nice sweet authentication loop which will hang your system.
But usually PAM asks the  <code>passwd</code> (UNIX) database instead.
</p>

 <p>
Important note: your password must be as simple as possible, in order to not be mangled by byte-encoding conversions, and other annoying system limitations.
It does  <span class="underline">not</span>, however, mean that your password should be weak, you should make it strong by the most obvious method – make it looooong.
At least 64 symbols, desirably all from just Latin alphabet, possibly with digits.
</p>

 <p>
In fact, you can make  <code>SASL</code> check the  <code>shadow</code> database by itself, without PAM, or it can even query its own database  <code>sasldb</code>.
You can also make  <code>Postfix</code> query Dovecot, not using  <code>cyrus-sasl</code> at all.
</p>
</div>

 <div id="outline-container-Test-1-that-sending-authenticated-mail-works." class="outline-4">
 <h4 id="Test-1-that-sending-authenticated-mail-works."> <span class="section-number-4">2.16.1.</span>  <a href="#Test-1-that-sending-authenticated-mail-works.">Test 1 that sending authenticated mail works.</a></h4>
 <div class="outline-text-4" id="text-Test-1-that-sending-authenticated-mail-works.">
 <p>
On your laptop:
</p>
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |  <span style="font-style: italic;">\</span>
  nail -v -s  <span style="font-style: italic;">'test-submission-port-465'</span>  <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtps://login:password@mailer.domain.test:465'</span> <span style="font-style: italic;">\</span>
       -S v15-compat=yes <span style="font-style: italic;">\</span>
       root@mailer.domain.test
</pre>
</div>

 <p>
This should pass, and your root should receive this message, as well as your debugging account on an unrelated mail service.
</p>
</div>
</div>

 <div id="outline-container-Test-2-that-wrong-password-fails." class="outline-4">
 <h4 id="Test-2-that-wrong-password-fails."> <span class="section-number-4">2.16.2.</span>  <a href="#Test-2-that-wrong-password-fails.">Test 2 that wrong password fails.</a></h4>
 <div class="outline-text-4" id="text-Test-2-that-wrong-password-fails.">
 <p>
On your laptop:
</p>
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |  <span style="font-style: italic;">\</span>
  nail -v -s  <span style="font-style: italic;">'test-submission-port-465'</span>  <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtps://login:wrong_password@mailer.domain.test:465'</span> <span style="font-style: italic;">\</span>
       -S v15-compat=yes <span style="font-style: italic;">\</span>
       root@mailer.domain.test
</pre>
</div>

 <p>
This test should, obviously, fail.
</p>

 <p>
The error should be  <code>535 5.7.8 Error: authentication failed: authentication failure</code>.
</p>
</div>
</div>
</div>

 <div id="outline-container-Can-I-send-normal-mail-now?" class="outline-3">
 <h3 id="Can-I-send-normal-mail-now?"> <span class="section-number-3">2.17.</span>  <a href="#Can-I-send-normal-mail-now?">Can I send normal mail now?</a></h3>
 <div class="outline-text-3" id="text-Can-I-send-normal-mail-now?">
 <p>
Well, let us check:
</p>
</div>

 <div id="outline-container-test-1:-from-mailer-to-some-machine." class="outline-4">
 <h4 id="test-1:-from-mailer-to-some-machine."> <span class="section-number-4">2.17.1.</span>  <a href="#test-1:-from-mailer-to-some-machine.">Test 1: from mailer to some machine.</a></h4>
 <div class="outline-text-4" id="text-test-1:-from-mailer-to-some-machine.">
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |  <span style="font-style: italic;">\</span>
  nail -v -s  <span style="font-style: italic;">'test-submission-port-465'</span>  <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtps://login:pass@mailer.domain.test:465'</span> <span style="font-style: italic;">\</span>
       -S v15-compat=yes <span style="font-style: italic;">\</span>
       -r  <span style="font-style: italic;">'user@mailer.domain.test'</span>  <span style="font-style: italic;">\</span>
       my-nick@oligarch.com
</pre>
</div>

 <p>
This may or may not work without DKIM.
In general, SPF alone should be enough, if it is not, go to 
But this is not very sweet, because we do not want to send mail from the mailer machine, unless it is diagnostic mail.
What we really want is "cloud mail", that is sending mail from an address like "my-nick@domain.test", not "user@mailer.domain.test".
</p>

 <p>
Let us go to the test number 2.
</p>
</div>
</div>

 <div id="outline-container-test-2:-from-a-public-address-to-a-public-address." class="outline-4">
 <h4 id="test-2:-from-a-public-address-to-a-public-address."> <span class="section-number-4">2.17.2.</span>  <a href="#test-2:-from-a-public-address-to-a-public-address.">Test 2: from a public address to a public address.</a></h4>
 <div class="outline-text-4" id="text-test-2:-from-a-public-address-to-a-public-address.">
 <p>
On your laptop:
</p>
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |  <span style="font-style: italic;">\</span>
  nail -v -s  <span style="font-style: italic;">'test-submission-port-465'</span>  <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtps://login:pass@mailer.my-domain.test:465'</span> <span style="font-style: italic;">\</span>
       -S v15-compat=yes <span style="font-style: italic;">\</span>
       -r  <span style="font-style: italic;">'user@my-domain.test'</span>  <span style="font-style: italic;">\</span>
       my-nick@oligarch.com
</pre>
</div>

 <p>
This may or may not work without DKIM.
Again, SPF is often enough.
</p>
</div>
</div>
</div>

 <div id="outline-container-How-can-I-receive-mail?" class="outline-3">
 <h3 id="How-can-I-receive-mail?"> <span class="section-number-3">2.18.</span>  <a href="#How-can-I-receive-mail?">How can I receive mail?</a></h3>
 <div class="outline-text-3" id="text-How-can-I-receive-mail?">
 <p>
By this time you should be able to receive mail to "user@mailer.domain.test", but receiving mail to a mailer user is not terribly useful.
Sometimes you may want to make your systems exchange logs or certificates, but even in this case, doing those exchanges by mail is harder than over, say, SSH.
The only benefit really is being able to accept anonymous messages from machines which do not have proper ssh, or have outdated TLS certificates, or such.
</p>

 <p>
Now when you receive mail, you have a painful choice to make:
</p>

 <ol class="org-ol"> <li>Do you want to maintain your own JMAP/IMAP server?</li>
 <li>Do you want to just forward everything to an oligarch and call it a day?</li>
</ol> <p>
In theory the option 1 is better, because it actually allows you to control your information flow as you want it.
However, the option 2 is not without its merits: (1) many people do not have a good information flow system, (2) those who do may already have an established workflow with an oligarch's service, (3) in some cases an oligarch's service ends up less costly.
</p>

 <p>
My choice is going with an oligarch, which creates one more choice:
</p>

 <ol class="org-ol"> <li>Make the oligarch's service collect your mail.</li>
 <li>Make your server send the mail to the oligarch.</li>
</ol> <p>
Option 1 is usually better, because it is more likely to catch errors – if you configure oligarch.com to collect your mail by POP3, OLigomail will complain if your server ends up being broken.
However, this requires maintaining your own POP server, requires more "state" to be configured on it, and not all oligarch's services support mail collection.
</p>

 <p>
So let us do option 2.
</p>
</div>

 <div id="outline-container-test-1:-unauthorized-sending." class="outline-4">
 <h4 id="test-1:-unauthorized-sending."> <span class="section-number-4">2.18.1.</span>  <a href="#test-1:-unauthorized-sending.">Test 1: unauthorized sending.</a></h4>
 <div class="outline-text-4" id="text-test-1:-unauthorized-sending.">
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |  <span style="font-style: italic;">\</span>
  nail -v -s  <span style="font-style: italic;">'test-send-to-my-domain'</span> <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtps://mailer.my-domain.test \
       -S smtp-use-startls \
       -S smtp-auth=none \
       -S v15-compat=yes \
       -r '</span>me@laptop <span style="font-style: italic;">' \
       someone@my-domain.test</span>
</pre>
</div>

 <p>
This should fail with  <code>554 5.7.1 <someone@domain.test>: Recipient address rejected: Access denied</code>
</p>

 <p>
This is because our domain is  <code>mailer.my-domain.test</code>, not  <code>my-domain.test</code>
</p>
</div>
</div>

 <div id="outline-container-Add-our-domain-to-~virtual_maps~" class="outline-4">
 <h4 id="Add-our-domain-to-~virtual_maps~"> <span class="section-number-4">2.18.2.</span>  <a href="#Add-our-domain-to-~virtual_maps~">Add our domain to  <code>virtual_maps</code></a></h4>
 <div class="outline-text-4" id="text-Add-our-domain-to-~virtual_maps~">
 <p>
Virtual maps is effectively what allows forwarding of mail that does not belong to the world of UNIX machines talking to each other, and instead connects people among themselves.
</p>

 <p>
Postfix has two different kinds of "virtual" redirections, "virtual aliases" and "virtual mailboxes".
The documentation for them is obscure and impenetrable that it's unlikely that a human being can understand it, but if you wish to try, here is the link:
</p>

 <ol class="org-ol"> <li> <a href="https://www.postfix.org/ADDRESS_CLASS_README.html">https://www.postfix.org/ADDRESS_CLASS_README.html</a></li>
 <li> <a href="https://www.postfix.org/VIRTUAL_README.html">https://www.postfix.org/VIRTUAL_README.html</a></li>
</ol> <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">main.cf
</span>virtual_alias_domains = my-domain.test
virtual_alias_maps = regexp:/etc/postfix/virtual_maps_to_oligarch
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">/etc/postfix/virtual_maps_to_oligarch
</span>/^(.*)@my-domain.test/ user@oligarch.com
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">cd</span> /etc/postfix ; postmap virtual_maps_to_oligarch
</pre>
</div>
</div>

 <ol class="org-ol"> <li> <a id="Test-1"></a> <a href="#Test-1">Test 1</a> <br></br> <div class="outline-text-5" id="text-Test-1">
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |  <span style="font-style: italic;">\</span>
  nail -v -s  <span style="font-style: italic;">'test-send-to-my-domain'</span> <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtps://mailer.my-domain.test \
       -S smtp-use-startls \
       -S smtp-auth=none \
       -S v15-compat=yes \
       -r '</span>someone@my-domain.test <span style="font-style: italic;">' \
       someone@my-domain.test</span>
</pre>
</div>

 <p>
This should pass, because our  <code>MAIL FROM</code>, or reverse address, is from  <code>my-domain.test</code>, but this test will probably fail:
</p>
</div>
</li>

 <li> <a id="Test-2"></a> <a href="#Test-2">Test 2</a> <br></br> <div class="outline-text-5" id="text-Test-2">
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |  <span style="font-style: italic;">\</span>
  nail -v -s  <span style="font-style: italic;">'test-send-to-my-domain'</span> <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtps://mailer.my-domain.test \
       -S smtp-use-startls \
       -S smtp-auth=none \
       -S v15-compat=yes \
       -r '</span>someone@not-my-domain.test <span style="font-style: italic;">' \
       someone@my-domain.test</span>
</pre>
</div>
</div>
</li>
</ol></div>

 <div id="outline-container-Enable-OpenDKIM-to-sign-all-your-mail." class="outline-4">
 <h4 id="Enable-OpenDKIM-to-sign-all-your-mail."> <span class="section-number-4">2.18.3.</span>  <a href="#Enable-OpenDKIM-to-sign-all-your-mail.">Enable OpenDKIM to sign all your mail.</a></h4>
 <div class="outline-text-4" id="text-Enable-OpenDKIM-to-sign-all-your-mail.">
 <p>
We never intend to  <span class="underline">validate</span> dkim, but we want to  <span class="underline">sign</span> DKIM on  <span class="underline">at least</span> the messages that we ourselves send from  <code>'user@my-domain.test'</code>.
Well, actually, the actual thing is that we will sign  <span class="underline">all</span> mail regardless.
We do not intend to do any relaying of alien mail, all the mail is either originating  <span class="underline">from</span> us (and thus deserves a signature), or is coming  <span class="underline">to</span> us, so having it signed does not hurt.
</p>

 <p>
OpenDKIM is  <span class="underline">very</span> annoying to set up.
</p>

 <p>
Set up signing with OpenDKIM
</p>
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">main.cf
</span>smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-bash">LogWhy                 yes
Syslog                  yes
SyslogSuccess           yes
Canonicalization        relaxed/simple
Mode s
ExternalIgnoreList /etc/opendkim/refile_match_everything
InternalHosts /etc/opendkim/refile_match_everything
KeyTable refile:/etc/opendkim/keytable
SigningTable refile:/etc/opendkim/signingtable
Socket                  inet:8891@localhost
ReportAddress           postmaster@my-domain.test
SendReports             yes
UserID opendkim:opendkim
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-bash">   <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">/etc/opendkim/refile_match_everything
</span>127.0.0.1
::1
::/0
0.0.0.0/0
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-bash">   <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">/etc/opendkim/keytable
</span>default._domainkey.my-domain.test mydomain.test:default:/etc/opendkim/keys/default.private
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-bash">  <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">/etc/opendkim/signingtable
</span>* default._domainkey.my-domain.test
</pre>
</div>

 <p>
Test by trying to send mail to your friend, or your second OLigomail account and monitoring either OLigomail "Show original", or  <code>postfix</code> log files for DKIM.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Test-1-1"></a> <a href="#Test-1-1">Test 1</a> <br></br> <div class="outline-text-5" id="text-Test-1-1">
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"Test $(( I = I + 1 ))"</span> |  <span style="font-style: italic;">\</span>
  nail -v -s  <span style="font-style: italic;">'test-send-to-my-domain'</span> <span style="font-style: italic;">\</span>
       -S  <span style="font-weight: bold; font-style: italic;">mta</span>= <span style="font-style: italic;">'smtps://mailer.my-domain.test \
       -S smtp-use-startls \
       -S smtp-auth=none \
       -S v15-compat=yes \
       -r '</span>someone@domain.test <span style="font-style: italic;">' \
       someone@oligarch.com</span>
</pre>
</div>

 <p>
Now this should work with no issues.
It should have both SPF  <span class="underline">and</span> DKIM succeeding.
</p>
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-Should-_all_-forwarding-now-work?" class="outline-3">
 <h3 id="Should-_all_-forwarding-now-work?"> <span class="section-number-3">2.19.</span>  <a href="#Should-_all_-forwarding-now-work?">Should  <span class="underline">all</span> forwarding now work?</a></h3>
 <div class="outline-text-3" id="text-Should-_all_-forwarding-now-work?">
 <p>
Lol, now.
Sometimes you have addresses like this:
</p>

 <ol class="org-ol"> <li>MAIL FROM ::  <code>cmake+verp-3d0a58993745ed18eea3ea75a1641ead@discourse.cmake.org</code></li>
 <li>From:  <code>noreply@cmake.org</code></li>
</ol> <p>
DMARC for  <code>cmake.org</code> is set up so as to prevent forwarding, so if you forward message with these addresses, and a DKIM sign, to OLigomail, it will be rejected.
</p>

 <p>
What shall we do?
</p>

 <p>
We will rewrite the  <code>MAIL FROM</code> address just like we did with mail to  <code>badmail</code>.
</p>

 <p>
Add another transport:
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">master.cf
</span>msmtp_for_olig unix -  n    n    -    50    pipe
     <span style="font-weight: bold; font-style: italic;">flags</span>=R  <span style="font-weight: bold; font-style: italic;">user</span>=nobody  <span style="font-weight: bold; font-style: italic;">argv</span>=/etc/bin/postfix-to-msmtp-wrapper_olig.bash --sender=${ <span style="font-weight: bold; font-style: italic;">sender</span>} --user=${ <span style="font-weight: bold; font-style: italic;">user</span>} --extension=${ <span style="font-weight: bold; font-style: italic;">extension</span>} --recipient=${ <span style="font-weight: bold; font-style: italic;">recipient</span>}
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">/etc/bin/postfix-to-msmtp-wrapper_olig.bash
</span> <span style="font-weight: bold; font-style: italic;">l_sender</span>= <span style="font-style: italic;">"${sender/@/==}"</span>_rewrite@my-domain.test
 <span style="font-weight: bold; font-style: italic;">MX</span>=$(dig MX oligomail.com | grep -A1  <span style="font-style: italic;">'ANSWER SECTION'</span> | tail -n 1 | awk  <span style="font-style: italic;">'{print $6;}'</span>)
 <span style="font-weight: bold; font-style: italic;">MX</span>= <span style="font-style: italic;">"${MX%.}"</span>
 <span style="font-weight: bold;">exec</span> msmtp --host= <span style="font-style: italic;">"$MX"</span> --port=25 --tls=on --from= <span style="font-style: italic;">"$l_sender"</span>  <span style="font-style: italic;">"$recipient"</span> 2>&1
</pre>
</div>

 <p>
In my case it worked for 90% of the cases, with an exception of SPF-enabled domains without DKIM.
I will leave dealing with such domains as a simple homework to the reader.
</p>
</div>

 <div id="outline-container-test-1:-mail-from-_some_-server." class="outline-4">
 <h4 id="test-1:-mail-from-_some_-server."> <span class="section-number-4">2.19.1.</span>  <a href="#test-1:-mail-from-_some_-server.">Test 1: mail from  <span class="underline">some</span> server.</a></h4>
 <div class="outline-text-4" id="text-test-1:-mail-from-_some_-server.">
 <p>
Try registering at cmake discourse, and look in postfix logs if the message goes through.
</p>
</div>
</div>
</div>

 <div id="outline-container-How-to-check-that-my-server-is-not-slow?" class="outline-3">
 <h3 id="How-to-check-that-my-server-is-not-slow?"> <span class="section-number-3">2.20.</span>  <a href="#How-to-check-that-my-server-is-not-slow?">How to check that my server is not slow?</a></h3>
 <div class="outline-text-3" id="text-How-to-check-that-my-server-is-not-slow?">
 <p>
 <a href="https://serverfault.com/questions/24121/understanding-a-postfix-log-file-entry">https://serverfault.com/questions/24121/understanding-a-postfix-log-file-entry</a>
</p>

 <p>
For each message there will be two entries:  <code>delay</code> and  <code>delays=a/b/c/d</code>, they mean time spent by Postfix on processing the message.
</p>

 <ol class="org-ol"> <li>a :: receiving SMTP session</li>
 <li>b :: in queue</li>
 <li>c :: connection setup</li>
 <li>d :: message transmission</li>
</ol></div>
</div>

 <div id="outline-container-How-do-I-remove-IPs-from-relayed-emails?" class="outline-3">
 <h3 id="How-do-I-remove-IPs-from-relayed-emails?"> <span class="section-number-3">2.21.</span>  <a href="#How-do-I-remove-IPs-from-relayed-emails?"> <span class="todo TODO">TODO</span> How do I remove IPs from relayed emails?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-remove-IPs-from-relayed-emails?">
 <p>
 <a href="https://wiki.archlinux.org/title/Postfix#Secure_SMTP_(receiving):~:text=Hide%20the%20sender%27s%20IP%20and%20user%20agent%20in%20the%20Received%20header%5Bedit%20source%5D">https://wiki.archlinux.org/title/Postfix#Secure_SMTP_(receiving):~:text=Hide%20the%20sender%27s%20IP%20and%20user%20agent%20in%20the%20Received%20header%5Bedit%20source%5D</a>
</p>
</div>
</div>
</section> <section id="outline-container-Cyrus-Imap" class="outline-2"> <h2 id="Cyrus-Imap"> <span class="section-number-2">3.</span>  <a href="#Cyrus-Imap">Cyrus-Imap</a></h2>
 <div class="outline-text-2" id="text-Cyrus-Imap">
</div>

 <div id="outline-container-References" class="outline-3">
 <h3 id="References"> <span class="section-number-3">3.1.</span>  <a href="#References">References</a></h3>
 <div class="outline-text-3" id="text-References">
 <ol class="org-ol"> <li> <a href="https://cyrus.topicbox.com/groups/info/T21eaaa194ab9b730-Mb01973f841d0bc229cd0d491">https://cyrus.topicbox.com/groups/info/T21eaaa194ab9b730-Mb01973f841d0bc229cd0d491</a></li>
 <li> <a href="https://www.cyrusimap.org/3.4/imap/reference/manpages/configs/imapd.conf.html">https://www.cyrusimap.org/3.4/imap/reference/manpages/configs/imapd.conf.html</a></li>
 <li> <a href="https://help.ubuntu.com/community/Cyrus">https://help.ubuntu.com/community/Cyrus</a></li>
 <li> <a href="https://serverfault.com/questions/407302/how-can-i-configure-postfix-to-retain-copies-of-all-email-sent-through-it">https://serverfault.com/questions/407302/how-can-i-configure-postfix-to-retain-copies-of-all-email-sent-through-it</a></li>
 <li> <a href="https://tldp.org/HOWTO/Postfix-Cyrus-Web-cyradm-HOWTO/">https://tldp.org/HOWTO/Postfix-Cyrus-Web-cyradm-HOWTO/</a></li>
</ol></div>
</div>

 <div id="outline-container-Intro" class="outline-3">
 <h3 id="Intro"> <span class="section-number-3">3.2.</span>  <a href="#Intro">Intro</a></h3>
 <div class="outline-text-3" id="text-Intro">
 <p>
Cyrus is in some sense similar to postfix
</p>
</div>
</div>

 <div id="outline-container-~/etc/cyrus.conf~" class="outline-3">
 <h3 id="~/etc/cyrus.conf~"> <span class="section-number-3">3.3.</span>  <a href="#~/etc/cyrus.conf~"> <code>/etc/cyrus.conf</code></a></h3>
 <div class="outline-text-3" id="text-~/etc/cyrus.conf~">
 <div class="org-src-container">
 <pre class="src src-diff">-  imap          cmd="imapd" listen="imap" prefork=0
+  # imap          cmd="imapd" listen="imap" prefork=0 # lwf: commented out. no unencrypted connections.
+  imap          cmd="imapd" listen="127.0.0.1:imap" prefork=0 #lwf
+  squatter      cmd="/usr/sbin/squatter -R -vv"
</pre>
</div>

 <p>
 <code>imap</code> means port 143, which has STARTTLS,  <code>imaps</code> (not shown) means port 993, which has TLS by default.
</p>

 <p>
The default file should be okay, but it is better to not have a STARTTLS at all, if you can make a proper TLS.
But keep it running on localhost, because it is easier.
</p>
</div>
</div>

 <div id="outline-container-~/etc/imapd.conf~" class="outline-3">
 <h3 id="~/etc/imapd.conf~"> <span class="section-number-3">3.4.</span>  <a href="#~/etc/imapd.conf~"> <code>/etc/imapd.conf</code></a></h3>
 <div class="outline-text-3" id="text-~/etc/imapd.conf~">
 <div class="org-src-container">
 <pre class="src src-bash">configdirectory: /var/imap
partition-default: /var/spool/imap
sievedir: /var/sieve
admins: cyrus
sasl_pwcheck_method: saslauthd

sasl_mech_list: PLAIN LOGIN  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">remove CRAM and Kerberos, they are useless.
</span>allowplaintext: yes  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">we have everything encrypted, so PLAIN is okay
</span>tls_server_cert: path-to-cert
tls_server_key: path-to-key
tls_server_ca_file: /etc/ssl/certs/ca-certificates.crt
 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">cyradm cannot get this parameter from else where
</span>lmtpsocket: /run/cyrus/socket/lmtp
 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">0 mean enabled = autocreate mailboxes
</span>autocreate_quota: 0
 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">1 means enabled
</span>autocreate_post: 1
 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">separate directories
</span>unixhierarchysep: on

 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">virtual domains
</span>loginrealms: my.domain
defaultdomain: my.domain
 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">http parts
</span>httpmodules: admin jmap caldav carddav webdav ischedule domainkey
httpdocroot: /var/imap/httpdocroot

 <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">filtering
</span>anysievefolder: 1  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">create any sieve subfolder that a sieve script wants
</span>
 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">search index
</span>sync_log: on
sync_log_channels: squatter
sync_log_unsuppressable_channels: squatter
search_engine: xapian
search_index_headers: yes
search_batchsize: 8192
defaultpartition: default
defaultsearchtier: t1
t1searchpartition-default: /var/imap/search
conversations: 1

</pre>
</div>

 <ol class="org-ol"> <li>The first five lines are there by default.</li>
 <li>The  <code>lmtpsocket:</code> is needed, because  <code>deliver</code> checks it for where to find the LMTP socket, and otherwise checks no-one knows where. It should be the same as in  <code>cyrus.conf</code>.</li>
 <li>The  <code>autocreate_*</code> things are needed so that you do not have to annoy yourself with manually creating anything.</li>
</ol></div>
</div>

 <div id="outline-container-Check-that-it-works." class="outline-3">
 <h3 id="Check-that-it-works."> <span class="section-number-3">3.5.</span>  <a href="#Check-that-it-works.">Check that it works.</a></h3>
 <div class="outline-text-3" id="text-Check-that-it-works.">
 <p>
On server:
</p>

 <div class="org-src-container">
 <pre class="src src-bash">cyradm --user my-user localhost
</pre>
</div>

 <p>
It should accept your UNIX password.
</p>

 <p>
On client:
</p>

 <div class="org-src-container">
 <pre class="src src-bash">imtest -a user -u user -m login -s mailer.domain.test
</pre>
</div>

 <p>
This should login successfully after connecting to TLS.
 <code>-s</code> means to use TLS and port 993.
</p>

 <p>
Why am I testing this over  <code>imtest</code>, and not  <code>cyradm</code>?
Because  <code>cyradm</code> does not support implicit TLS.
</p>
</div>
</div>

 <div id="outline-container-Add-password-to-the-~cyrus~-user." class="outline-3">
 <h3 id="Add-password-to-the-~cyrus~-user."> <span class="section-number-3">3.6.</span>  <a href="#Add-password-to-the-~cyrus~-user.">Add password to the  <code>cyrus</code> user.</a></h3>
 <div class="outline-text-3" id="text-Add-password-to-the-~cyrus~-user.">
 <p>
I really dislike this idea actually, but you need this for administering mailboxes.
</p>

 <div class="org-src-container">
 <pre class="src src-bash">passwd cyrus
</pre>
</div>
</div>
</div>

 <div id="outline-container-Send-a-test-email-to-cyrus" class="outline-3">
 <h3 id="Send-a-test-email-to-cyrus"> <span class="section-number-3">3.7.</span>  <a href="#Send-a-test-email-to-cyrus">Send a test email to cyrus</a></h3>
 <div class="outline-text-3" id="text-Send-a-test-email-to-cyrus">
 <p>
Run the following code on your machine.
</p>

 <div class="org-src-container">
 <pre class="src src-bash">printf  <span style="font-style: italic;">'%s'</span>  <span style="font-style: italic;">"From: anon@example.net
To: famous.figure@microsoft.com
Subject: test

Test Test Test
"</span> | /usr/sbin/deliver --return-path= <span style="font-style: italic;">"anon2@unrelated.domain"</span> --mailbox= my-user-name
</pre>
</div>

 <p>
This should work, and also automatically create an mailboxes on the server, which you can check with either  <code>cyradm</code> or  <code>imtest</code>.
</p>

 <p>
 <code>deliver</code> might be also called  <code>cyrdeliver</code>.
</p>

 <p>
If it works, you can add a line to your oligarch-wrapper, to duplicate messages both to the oligarch, and to your IMAP.
(Presumably you do not want switch immediately and want to test that everything works fine for a while.)
</p>

 <div class="org-src-container">
 <pre class="src src-bash">printf  <span style="font-style: italic;">'%s'</span>  <span style="font-style: italic;">"$l_input"</span> | base64 -d | /usr/sbin/deliver --return-path= <span style="font-style: italic;">"${sender}"</span> --mailbox= <span style="font-style: italic;">"${extension}"</span> my-user || true
</pre>
</div>

 <p>
If you have many users on your machine, you probably can replace  <code>my-user</code> with  <code>"${user}"</code>, but I did not test it.
</p>
</div>
</div>

 <div id="outline-container-Classifying-messages-to-directories-(making-a-la-Telegram-Channels)" class="outline-3">
 <h3 id="Classifying-messages-to-directories-(making-a-la-Telegram-Channels)"> <span class="section-number-3">3.8.</span>  <a href="#Classifying-messages-to-directories-(making-a-la-Telegram-Channels)">Classifying messages to directories (making a-la Telegram Channels)</a></h3>
 <div class="outline-text-3" id="text-Classifying-messages-to-directories-(making-a-la-Telegram-Channels)">
 <p>
We need to use Sieve for this:
</p>

 <ol class="org-ol"> <li> <a href="https://serverfault.com/questions/575668/sieve-filter-subject-with-regex-file-into-mailbox-named-match">https://serverfault.com/questions/575668/sieve-filter-subject-with-regex-file-into-mailbox-named-match</a></li>
 <li> <a href="http://sieve.info/clients">http://sieve.info/clients</a></li>
 <li> <a href="https://stackoverflow.com/questions/78377453/sieve-filter-script-regex">https://stackoverflow.com/questions/78377453/sieve-filter-script-regex</a></li>
 <li> <a href="https://stackoverflow.com/questions/79094777/sieve-filtering-body-extension-not-working-as-expected">https://stackoverflow.com/questions/79094777/sieve-filtering-body-extension-not-working-as-expected</a></li>
</ol> <p>
Sieve is not documented even in Cyrus' manual, but never mind, it's easy.
</p>

 <div class="org-src-container">
 <pre class="src src-sieve"> <span style="font-weight: bold;">require</span> [ <span style="font-style: italic;">"reject"</span>, <span style="font-style: italic;">"fileinto"</span>,  <span style="font-style: italic;">"regex"</span>,  <span style="font-style: italic;">"imap4flags"</span>,  <span style="font-style: italic;">"variables"</span>,  <span style="font-style: italic;">"vnd.cyrus.log"</span>];

 <span style="font-weight: bold;">if</span>  <span style="font-weight: bold; text-decoration: underline;">header</span> <span style="font-weight: bold;"> :regex</span>  <span style="font-style: italic;">"received"</span>  <span style="font-style: italic;">"<nickname+(.+)@mydomain.com>;"</span>
{
  log  <span style="font-style: italic;">"debug:sieve:message for ${1}"</span>;
   <span style="font-weight: bold;">fileinto</span>  <span style="font-style: italic;">"INBOX/${1}"</span>;
   <span style="font-weight: bold;">stop</span>;
}

 <span style="font-weight: bold;">if</span>  <span style="font-weight: bold; text-decoration: underline;">header</span> <span style="font-weight: bold;"> :regex</span>  <span style="font-style: italic;">"to"</span>  <span style="font-style: italic;">".*postmaster@lockywolf.net.*"</span>
{
  log  <span style="font-style: italic;">"debug:sieve:message for postmaster"</span>;
   <span style="font-weight: bold;">fileinto</span>  <span style="font-style: italic;">"postmaster"</span>;
   <span style="font-weight: bold;">stop</span>;
}
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-bash">sieveshell --user=myuser <span style="font-style: italic;">\</span>
           --authname=myuser imap.myserver.com
 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">password
</span> <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">put script-name.sieve myscript
</span> <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">activate myscript</span>
</pre>
</div>
</div>
</div>


 <div id="outline-container-Editing-Sieve-scripts" class="outline-3">
 <h3 id="Editing-Sieve-scripts"> <span class="section-number-3">3.9.</span>  <a href="#Editing-Sieve-scripts">Editing Sieve scripts</a></h3>
 <div class="outline-text-3" id="text-Editing-Sieve-scripts">
 <p>
Okay, we need ways to edit Sieve scripts.
You can look at  <a href="https://sieve.info">https://sieve.info</a> for remote Sieve editors, but there are issues with them.
</p>

 <p>
See also  <a href="https://gist.github.com/Hotrod369/6b7a24e1ea060e48e0c02459cbb950a0">https://gist.github.com/Hotrod369/6b7a24e1ea060e48e0c02459cbb950a0</a> for some examples.
</p>

 <p>
In theory, you can have many Sieve scripts, but in reality there is no need to have more than one, as a single script can be long.
</p>
</div>

 <div id="outline-container-GUI-editing-on-your-laptop." class="outline-4">
 <h4 id="GUI-editing-on-your-laptop."> <span class="section-number-4">3.9.1.</span>  <a href="#GUI-editing-on-your-laptop.">GUI editing on your laptop.</a></h4>
 <div class="outline-text-4" id="text-GUI-editing-on-your-laptop.">
 <p>
GMail has a decent GUI for editing filtering scripts.
Unfortunately, they are not Sieve, and are strictly weaker.
They can be exported as XML.
</p>

 <p>
For the rest of us, we have to deal with writing Sieve code.
Fortunately, it is easy, unfortunately, it is writing code.
</p>

 <p>
There are at least three dedicated Sieve editors, which can manage scripts remotely:
</p>

 <ol class="org-ol"> <li>Emacs/Sieve-mode</li>
 <li>Thunderbird thsmi/sieve: Sieve Script Editor  <a href="https://github.com/thsmi/sieve">https://github.com/thsmi/sieve</a></li>
 <li>KMail sieve editor</li>
</ol> <p>
Thunderbird extension even has a decent GUI.
</p>

 <p>
ManageSieve supports STARTTLS, so it is encrypted, but not TLS, which is bad.
(This issue exists.)
</p>
</div>

 <ol class="org-ol"> <li> <a id="Exporting-as-xml-and-re-importing-in-your-own-IMAP."></a> <a href="#Exporting-as-xml-and-re-importing-in-your-own-IMAP."> <span class="todo TODO">TODO</span> Exporting as xml and re-importing in your own IMAP.</a> <br></br> <div class="outline-text-5" id="text-Exporting-as-xml-and-re-importing-in-your-own-IMAP.">
</div>
</li>
</ol></div>

 <div id="outline-container-GUI-editing-on-Android" class="outline-4">
 <h4 id="GUI-editing-on-Android"> <span class="section-number-4">3.9.2.</span>  <a href="#GUI-editing-on-Android">GUI editing on Android</a></h4>
 <div class="outline-text-4" id="text-GUI-editing-on-Android">
 <p>
Does not exist.
Nuff said, unfortunately this is true.
</p>
</div>
</div>

 <div id="outline-container-Console-editing." class="outline-4">
 <h4 id="Console-editing."> <span class="section-number-4">3.9.3.</span>  <a href="#Console-editing.">Console editing.</a></h4>
 <div class="outline-text-4" id="text-Console-editing.">
 <p>
If you have Termux on your android, you can edit the scripts in a semi-convenient manner:
</p>

 <ol class="org-ol"> <li>Write a script in Emacs (on Android) Sieve-mode</li>
 <li>Run a script to update your script.</li>
 <li>sieveshell is in the "cyrus-imap" package, I had to compile it on termux.
Termux for Android 8+ has everything you need, Android 6 might need a bit of manual work.</li>
</ol> <div class="org-src-container">
 <pre class="src src-expect">spawn sieveshell  --user=myuser --authname=myuser  myserver.test
expect "Please enter your password: "
send "<redacted>\n"
expect "> "
send "deactivate\n"
expect "> "
send "delete first\n"
expect "> "
send "put first-filter.sieve first\n"
expect "> "
send "activate first\n"
expect "> "
send "quit\n"
expect eof
</pre>
</div>

 <p>
It does not let you do filter previews, unfortunately, but overall is a decent hack, fairly ergonomic.
</p>
</div>
</div>
</div>

 <div id="outline-container-Mail-notifications" class="outline-3">
 <h3 id="Mail-notifications"> <span class="section-number-3">3.10.</span>  <a href="#Mail-notifications">Mail notifications</a></h3>
 <div class="outline-text-3" id="text-Mail-notifications">
 <p>
Mail notifications are a painful topic, but not because the tech is not there, but rather because various mail providers (Yahoo, Microsoft, Google), do not hurry implementing them.
</p>

 <p>
In this section I survey a few methods of getting mail notifications on devices, and some ways to speeding up mail download.
</p>
</div>

 <div id="outline-container-Notifications-with-IMAP-IDLE." class="outline-4">
 <h4 id="Notifications-with-IMAP-IDLE."> <span class="section-number-4">3.10.1.</span>  <a href="#Notifications-with-IMAP-IDLE.">Notifications with IMAP IDLE.</a></h4>
 <div class="outline-text-4" id="text-Notifications-with-IMAP-IDLE.">
 <p>
IMAP IDLE is a mechanism for Push notifications for IMAP.
There is a modification of it called "NOTIFY", but I did not study it.
There is an even newer mechanism called "JMAP", but I did not study it too.
</p>

 <p>
The issue with IDLE is that it only supports subscription to a single mailbox (or, rather, it is maintaining a TCP connection per mailbox), and you are probably expected to have at least a hundred of mailboxes, if not over a thousand.
</p>

 <p>
In theory it is your own server, you can maintain a thousand connections, but this is inconvenient.
</p>

 <p>
Let us do a better trick:
</p>

 <ol class="org-ol"> <li>Make an "All-Mail" mailbox, where we will be copying all the messages, just in case.
 <code>fileinto "All-Mail";</code></li>
 <li>Copy messages you want to be notified of to a separate "NOTIFICATIONS" directory.
It can also be "INBOX", really, as this is the most natural directory to subscribe to.</li>
 <li>Update your mail when a notification arrives.</li>
</ol> <p>
I call this method "IDLE-BRUTEFORCE".
You can improve on it but making your IDLE connection wander about the IMAP directories and checking if they are updated, fetching them when necessary.
</p>
</div>
</div>

 <div id="outline-container-IMAP-NOTIFY-(+IDLE)" class="outline-4">
 <h4 id="IMAP-NOTIFY-(+IDLE)"> <span class="section-number-4">3.10.2.</span>  <a href="#IMAP-NOTIFY-(+IDLE)">IMAP NOTIFY (+IDLE)</a></h4>
 <div class="outline-text-4" id="text-IMAP-NOTIFY-(+IDLE)">
 <p>
In a few words, there is an IMAP extension which allows one to subscribe to multiple directories, not just one.
</p>

 <p>
It is just a single command, run before entering IDLE, which changes IDLE behaviour in that it starts sending notifications for all IMAP mailboxes (directories).
After the mailboxes list is extracted, you can run synchronisation for those mailboxes.
</p>
</div>
</div>

 <div id="outline-container-X-GM-LABELS-(GMail)" class="outline-4">
 <h4 id="X-GM-LABELS-(GMail)"> <span class="section-number-4">3.10.3.</span>  <a href="#X-GM-LABELS-(GMail)">X-GM-LABELS (GMail)</a></h4>
 <div class="outline-text-4" id="text-X-GM-LABELS-(GMail)">
 <p>
GMail does not support NOTIFY, but it has
</p>

 <ol class="org-ol"> <li>A mailbox called  <code>[Gmail]/All Mail</code>, which has references to each message in the account.</li>
 <li>A custom IMAP command  <code>X-GM-LABELS</code>, which would return a list of directories which also reference this message.</li>
</ol> <p>
So, make IDLE monitor  <code>All Mail</code>, fetch its labels, and synchronise those "labels-mailboxes".
</p>
</div>
</div>

 <div id="outline-container-Script-reference" class="outline-4">
 <h4 id="Script-reference"> <span class="section-number-4">3.10.4.</span>  <a href="#Script-reference"> <span class="todo TODO">TODO</span> Script reference</a></h4>
 <div class="outline-text-4" id="text-Script-reference">
 <p>
There is a hacky and broken script which does the sync:
</p>

 <p>
TODO
</p>
</div>
</div>
</div>
</section> <section id="outline-container-Interaction-between-Postfix-and-Cyrus,-automatic-archiving-of-responses." class="outline-2"> <h2 id="Interaction-between-Postfix-and-Cyrus,-automatic-archiving-of-responses."> <span class="section-number-2">4.</span>  <a href="#Interaction-between-Postfix-and-Cyrus,-automatic-archiving-of-responses.">Interaction between Postfix and Cyrus, automatic archiving of responses.</a></h2>
 <div class="outline-text-2" id="text-Interaction-between-Postfix-and-Cyrus,-automatic-archiving-of-responses.">
 <p>
After having Postfix and Cyrus running, it is nice to show how they can interact for mutual benefit.
</p>

 <p>
A simple example of such a use-case is to have postfix automatically place outbound messages into ~/Sent.
</p>

 <p>
Firstly, we need to make Postfix somehow identify messages received via the submission and smtps ports, 587 and 993.
OpenSMTPd can do it using its "tagging" facility, which is "out-of-band", it is not reflected in the messages.
Postfix uses an in-band method instead, changing the message's headers.
</p>

 <p>
 <b>Note:</b> my postfix is too old, so I have to use real-file  <code>regexp:</code> tables.
If your postfix is new, you probably can use an  <code>inline:</code> regexp table.
</p>
</div>

 <div id="outline-container-Adding-headers-to-submitted-mail." class="outline-3">
 <h3 id="Adding-headers-to-submitted-mail."> <span class="section-number-3">4.1.</span>  <a href="#Adding-headers-to-submitted-mail.">Adding headers to submitted mail.</a></h3>
 <div class="outline-text-3" id="text-Adding-headers-to-submitted-mail.">
 <p>
 <b>Method 1</b>
Add  <code>-o smtpd_client_restrictions=check_client_access,static:{ PREPEND X-Whatever: 24a7b88d-02db-4af7-9d45-5a5e654e11e6 }</code> to both the  <code>submission</code> and  <code>smtps</code> lines in Postfix'  <code>master.cf</code>, and define a custom  <code>cleanup</code> service.
</p>

 <pre class="example" id="orgcdb54ce">
smtps     inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o smtpd_relay_before_recipient_restrictions=yes
  -o cleanup_service_name=cleanup-archiving
  -o smtpd_client_restrictions=check_client_access,static:{ PREPEND X-Whatever: 24a7b88d-02db-4af7-9d45-5a5e654e11e6 }
cleanup-archiving   unix  n       -       n       -       0       cleanup
  -o sender_bcc_maps=regexp:/etc/postfix/my_sender_bcc_archiving
</pre>

 <p>
Even though it is called "restrictions", in reality it more of a pre-processing step, before mail enters the server.
This line will add a header  <code>X-Whatever: 24a7b88d-02db-4af7-9d45-5a5e654e11e6</code>, which we can later use in our Sieve scripts.
</p>

 <pre class="example" id="orgb9958b9">
/(.*)/ my_name@my.domain
</pre>

 <p>
 <code>BCC:</code> is a pseud-header, which means that your email will be forwarded to that email (in our case) my_name@my.domain
</p>

 <p>
 <b>Method 2</b>
</p>

 <p>
Add the following custom  <code>cleanup</code> service to Postfix'  <code>master.cf</code>
</p>

 <pre class="example" id="org16db4bd">
smtps     inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o smtpd_relay_before_recipient_restrictions=yes
  -o cleanup_service_name=cleanup-archiving
cleanup-archiving   unix  n       -       n       -       0       cleanup
  -o sender_bcc_maps=regexp:/etc/postfix/my_sender_bcc_archiving
  -o header_checks=regexp:/etc/postfix/my_header_checks_add_submission_header
</pre>

 <pre class="example" id="orgf48c852">
/^Received/ PREPEND  X-Whatever2: 24a7b88d-02db-4af7-9d45-5a5e654e11e6
</pre>

 <p>
This method is slightly worse, because it relies on the  <code>Received:</code> header being present, which is not (in theory) guaranteed, but Postfix adds such a header very early, unless made not to, so it is almost reliable.
</p>
</div>
</div>

 <div id="outline-container-Adding-a-Sieve-filter-in-Cyrus" class="outline-3">
 <h3 id="Adding-a-Sieve-filter-in-Cyrus"> <span class="section-number-3">4.2.</span>  <a href="#Adding-a-Sieve-filter-in-Cyrus">Adding a Sieve filter in Cyrus</a></h3>
 <div class="outline-text-3" id="text-Adding-a-Sieve-filter-in-Cyrus">
 <p>
Because all submitted mail is also forwarded to Cyrus, we add a simple check to the Sieve script to place it into the Sent mailbox.
</p>

 <div class="org-src-container">
 <pre class="src src-sieve"> <span style="font-weight: bold;">if</span>  <span style="font-weight: bold; text-decoration: underline;">header</span> <span style="font-weight: bold;"> :regex</span> [ <span style="font-style: italic;">"X-Whatever"</span>]  <span style="font-style: italic;">"24a7b88d-02db-4af7-9d45-5a5e654e11e6"</span> {
  addflag  <span style="font-style: italic;">"\\Seen"</span>;
   <span style="font-weight: bold;">fileinto</span>  <span style="font-style: italic;">"Sent-Postfix"</span>;
  log  <span style="font-style: italic;">"Lsieve|sent message, fileinto Sent-Postfix"</span> ;
   <span style="font-weight: bold;">stop</span>;
}
 <span style="font-weight: bold;">elsif</span>  <span style="font-weight: bold; text-decoration: underline;">header</span> <span style="font-weight: bold;"> :regex</span> [ <span style="font-style: italic;">"X-Whatever"</span>]  <span style="font-style: italic;">"(.*)"</span> {
  log  <span style="font-style: italic;">"sieve|weird header, debug ${1}"</span>;
   <span style="font-weight: bold;">stop</span>;
}
 <span style="font-weight: bold;">else</span> {
  log  <span style="font-style: italic;">"sieve|no submission header|probably an incoming email"</span>;
}
</pre>
</div>
</div>
</div>

 <div id="outline-container-Make-sure-that-the-header-is-removed-when-the-message-leaves-Postfix" class="outline-3">
 <h3 id="Make-sure-that-the-header-is-removed-when-the-message-leaves-Postfix"> <span class="section-number-3">4.3.</span>  <a href="#Make-sure-that-the-header-is-removed-when-the-message-leaves-Postfix">Make sure that the header is removed when the message leaves Postfix</a></h3>
 <div class="outline-text-3" id="text-Make-sure-that-the-header-is-removed-when-the-message-leaves-Postfix">
 <pre class="example" id="orga28279c">
smtp_header_checks = regexp:/etc/postfix/smtp_header_checks_remove_submission_header
</pre>

 <pre class="example" id="orge27e526">
/^X-Submission:.*/ STRIP
/^X-LWF-Submission:.*/ STRIP
</pre>
</div>
</div>
</section> <section id="outline-container-Unfinished-things.-%5B0/10%5D" class="outline-2"> <h2 id="Unfinished-things.-%5B0/10%5D"> <span class="section-number-2">5.</span>  <a href="#Unfinished-things.-%5B0/10%5D"> <span class="todo TODO">TODO</span> Unfinished things.  <code>[0/10]</code></a></h2>
 <div class="outline-text-2" id="text-Unfinished-things.-%5B0/10%5D">
 <ol class="org-ol"> <li class="off"> <input type="checkbox"></input> Autocrypt</li>
 <li class="off"> <input type="checkbox"></input> Client configuration :: claws-mail, sylpheed, evolution</li>
 <li class="off"> <input type="checkbox"></input> CalDAV</li>
 <li class="off"> <input type="checkbox"></input> CardDAV</li>
 <li class="off"> <input type="checkbox"></input> JMAP</li>
 <li class="off"> <input type="checkbox"></input> Placing sent messages to Sent on the server</li>
 <li class="off"> <input type="checkbox"></input> DeltaChat</li>
 <li class="off"> <input type="checkbox"></input> GnuGP</li>
 <li class="off"> <input type="checkbox"></input> Gnus</li>
 <li class="off"> <input type="checkbox"></input> mu4e</li>
</ol></div>
</section> <section id="outline-container-Afterword" class="outline-2"> <h2 id="Afterword"> <span class="section-number-2">6.</span>  <a href="#Afterword">Afterword</a></h2>
 <div class="outline-text-2" id="text-Afterword">
 <p>
I am not amused.
Postfix' routing model is strictly weaker than that of OpenSMTPd.
It's syntax is queer, and its defaults are dubious.
Its documentation is pile of toilet paper that is so hard to get through that everyone who is getting through installing his own server ends up writing a HOWTO "how I did it".
It is extremely verbose and at the same time inflexible.
</p>

 <p>
The configuration that in OpenSMTPd required just 21 lines in a single file, ended up needing a lot more in postfix.
</p>

 <p>
Maybe I will move to OpenSMTPd or exim if I decide that they are easier.
</p>
</div>

 <div id="outline-container-Postfix-cheatsheet" class="outline-3">
 <h3 id="Postfix-cheatsheet"> <span class="section-number-3">6.1.</span>  <a href="#Postfix-cheatsheet">Postfix cheatsheet</a></h3>
 <div class="outline-text-3" id="text-Postfix-cheatsheet">
 <ol class="org-ol"> <li> <i>system hostname</i> :: what is presented to others in STMP HELO when  <span class="underline">receiving</span> mail</li>
 <li> <code>myhostname</code> :: if you want to override system hostname</li>
 <li> <code>mydomain</code> :: if myhostname is unset, SMTP HELO is system hostname + mydomain</li>
 <li> <code>smtp_helo_name</code> :: SMTP HELO give to other servers when  <span class="underline">sending</span> mail</li>
 <li> <code>myorigin</code> :: hostname appended to outgoing mail without a domain (crond)</li>
 <li> <i>aliases file</i> :: better be called synonyms, allows an address to be replaced with another address, used for so-called "local delivery", when emails are presumed to be for local (usually UNIX) users. traditionally set in  <span class="underline">/etc/aliases</span>, using plaintext key-value format with a slight "-suffix" expansion (and +expansion), but postfix allows redefining the file path and using regular expressions
 <ol class="org-ol"> <li>there is an extension to pipe the mail to a command</li>
 <li>and another one to put it into files</li>
</ol></li>
 <li> <span class="underline">~/.forward</span> file :: forbidden by default method, allowing local users to redirect their mail to external addresses or other users</li>
 <li> <code>mynetworks</code> :: list of networks from which to accept messages for  <i>sending</i> (that is, relaying to other servers)</li>
 <li> <code>relayhost</code> :: a mail server you want to relay most mail through. (Beware of authentication, authorisation and rewriting.)</li>
 <li> <i> <span class="underline">postconf -e</span></i> :: dynamically changes the config.</li>
 <li> <code>max_use</code> :: how many tasks a daemon must perform before it is restarted.</li>
 <li> <i>restictions</i> :: are not necessary restricting mail sometimes they change it, like in the adding custom header example, they are documented in the  <code>access</code> man page.
 <ol class="org-ol"> <li> <code>smtpd_client_restrictions</code> :: check_client_access</li>
 <li> <code>smtpd_helo_restrictions</code> :: check_helo_access</li>
 <li> <code>smtpd_sender_restrictions</code> :: check_sender_access</li>
 <li> <code>smtpd_relay_restrictions</code> :: check_recipient_access, smtpd_relay_restrictions=permit_sasl_authenticated,reject</li>
</ol></li>
 <li> <i>checks</i> :: are like restrictions, but are applied to the headers and body
 <ol class="org-ol"> <li> <code>header_checks</code></li>
 <li> <code>body_checks</code></li>
 <li> <code>mime_header_checks</code></li>
 <li> <code>nested_header_checks</code></li>
</ol></li>
 <li> <i>external content filters</i> : can process email much smarter than postfix itself
 <ol class="org-ol"> <li> <code>smtpd_proxy_filter</code> :: SMTP-like filters  <span class="underline">before</span> queuing</li>
 <li> <code>smtpd_milters</code> :: milter-like filters  <span class="underline">before</span> queuing</li>
 <li> <code>non_smtpd_milters</code> :: milter-like filters  <span class="underline">before</span> queuing</li>
 <li> <code>content_filters</code> :: SMTP-like filters  <span class="underline">after</span> queuing</li>
</ol></li>
 <li> <code>virtual_alias_maps</code> :: like  <i>aliases file</i>, but for recipients in different domains. often used for relaying, not that useful for a basement-dweller user, but you can sometimes use it to redirect mail to oligarchs</li>
 <li> <code>virtual_mailbox_domains</code> :: table for redirecting mail for the actual domains we are interested in to some non-UNIX mailboxes</li>
 <li> <i>SASL</i> :: authentication method.
 <ol class="org-ol"> <li> <code>smtpd_sasl*</code> :: various sasl parameters</li>
 <li> <i>/etc/sasl2/smtpd.conf</i> :: configure SASL authentication</li>
 <li> <i>saslauthd</i> :: SASL daemon</li>
</ol></li>
 <li> <i>Outbound SASL</i>
 <ol class="org-ol"> <li> <code>smtp_sasl_auth_enable</code></li>
 <li> <code>smtp_sasl_password_maps</code></li>
</ol></li>
 <li> <i>TLS</i> :: Encryption
 <ol class="org-ol"> <li>Server-Side
 <ol class="org-ol"> <li> <i>letsencrypt</i> :: obtain certificates</li>
 <li> <code>smtpd_use_tls</code></li>
 <li> <code>smtpd_tls_key_file</code></li>
 <li> <code>smtpd_tls_cert_file</code></li>
 <li> <code>smtpd_tls_CAfile</code></li>
 <li> <code>smtpd_tls_auth_only</code></li>
</ol></li>
 <li>Client-Side
 <ol class="org-ol"> <li> <code>smtp_use_tls</code></li>
 <li> <code>smtp_tls_CApath</code></li>
 <li> <code>smtp_tls_protocols</code></li>
 <li> <code>smtp_tls_security_level</code></li>
 <li> <code>smtp_tls_policy_maps</code></li>
</ol></li>
</ol></li>
</ol></div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-10-06_moving-from-opensmtpd-to-postfix.org.d/index.html"/>
  <id>https://lockywolf.net/2024-10-06_moving-from-opensmtpd-to-postfix.org.d/index.html</id>
  <updated>2025-09-26T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A review on &quot;Sources of Chinese Tradition&quot; by William Theodore De Bary.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A review on “Sources of Chinese Tradition” by William Theodore De Bary.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%D0%9E%D0%B1%D0%B7%D0%BE%D1%80">1. Обзор</a>
 <ul> <li> <a href="#%D0%9A%D0%B0%D0%BA-%D1%8F-%D0%BF%D1%80%D0%B8%D1%88%D1%91%D0%BB-%D0%BA-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8E-%D0%B0%D0%B7%D0%B8%D0%B0%D1%82%D1%81%D0%BA%D0%BE%D0%B9-%D0%BB%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D1%8B.">1.1. Как я пришёл к чтению азиатской литературы.</a></li>
 <li> <a href="#%D0%9A%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB-%D0%B4%D0%B0%D1%91%D1%82%D1%81%D1%8F-%D0%B2-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B5,-%D0%B8-%D0%BA%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BD%D0%B5-%D0%B4%D0%B0%D1%91%D1%82%D1%81%D1%8F.">1.2. Какой материал даётся в книге, и какой не даётся.</a></li>
 <li> <a href="#%D0%A1%D1%83%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5-%D0%BE%D1%89%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BE%D1%82-%D0%BF%D1%80%D0%BE%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8F.">1.3. Субъективные ощущения от прочтения.</a></li>
</ul></li>
 <li> <a href="#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%81%D0%B2%D1%8F%D0%B7%D0%B8">2. Методы связи</a></li>
</ul></div>
</nav> <figure id="orgd920d22"> <img src="./01_book-cover.jpg" alt="01_book-cover.jpg"></img></figure> <p>
В этом кратком ревью я хочу написать моё впечатление от прочтения “The Sources of Chinese Tradition”, книги, написанной William Theodore de Bary ( <a href="https://en.wikipedia.org/wiki/Wm._Theodore_de_Bary">https://en.wikipedia.org/wiki/Wm._Theodore_de_Bary</a>), китайским китаеведом, востоковедом, который много лет преподавал в Columbia University, и умер в июле 2017 года, в возрасте 97 лет, успев при этом довести своих студентов весеннего семестра 2017 года до конца экзаменационной сессии.
</p>

 <p>

</p>

 <p>
(Можно даже заказать бумажное издание за несуразные деньги, ну, или найти в интернете где-нибудь.)
 <a href="https://www.logobook.ru/prod_show.php?object_uid=12947868">https://www.logobook.ru/prod_show.php?object_uid=12947868</a>
</p>

 <p>
Эта книга предлагалась в качестве основного учебника по введению в китаистику на онлайн-курсе EdX.org и Harvard University, и поскольку я в своё время проходил этот курс, я читал фрагменты из неё в качестве домашних заданий.
Впоследствии, я решил прочитать её целиком, и под катом этого поста я собрал свои впечатления.
</p>

 <p>
Я пишу этот пост по-русски, ну, потому что, насколько мне известно, книга никогда не издавалась по-русски и мало известна в России.
</p>

 <section id="outline-container-%D0%9E%D0%B1%D0%B7%D0%BE%D1%80" class="outline-2"> <h2 id="%D0%9E%D0%B1%D0%B7%D0%BE%D1%80"> <span class="section-number-2">1.</span>  <a href="#%D0%9E%D0%B1%D0%B7%D0%BE%D1%80">Обзор</a></h2>
 <div class="outline-text-2" id="text-%D0%9E%D0%B1%D0%B7%D0%BE%D1%80">
</div>

 <div id="outline-container-%D0%9A%D0%B0%D0%BA-%D1%8F-%D0%BF%D1%80%D0%B8%D1%88%D1%91%D0%BB-%D0%BA-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8E-%D0%B0%D0%B7%D0%B8%D0%B0%D1%82%D1%81%D0%BA%D0%BE%D0%B9-%D0%BB%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D1%8B." class="outline-3">
 <h3 id="%D0%9A%D0%B0%D0%BA-%D1%8F-%D0%BF%D1%80%D0%B8%D1%88%D1%91%D0%BB-%D0%BA-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8E-%D0%B0%D0%B7%D0%B8%D0%B0%D1%82%D1%81%D0%BA%D0%BE%D0%B9-%D0%BB%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D1%8B."> <span class="section-number-3">1.1.</span>  <a href="#%D0%9A%D0%B0%D0%BA-%D1%8F-%D0%BF%D1%80%D0%B8%D1%88%D1%91%D0%BB-%D0%BA-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8E-%D0%B0%D0%B7%D0%B8%D0%B0%D1%82%D1%81%D0%BA%D0%BE%D0%B9-%D0%BB%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D1%8B.">Как я пришёл к чтению азиатской литературы.</a></h3>
 <div class="outline-text-3" id="text-%D0%9A%D0%B0%D0%BA-%D1%8F-%D0%BF%D1%80%D0%B8%D1%88%D1%91%D0%BB-%D0%BA-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8E-%D0%B0%D0%B7%D0%B8%D0%B0%D1%82%D1%81%D0%BA%D0%BE%D0%B9-%D0%BB%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D1%8B.">
 <p>
Как я уже написал в предисловии, мой опыт взаимоотношений с китайским языком и культурой практически целиком (за исключением редких посещений 大БКРС), англоязычный.
Я начинал учить китайский в Эдинбурге, учил китайскую историю по гарвардскому курсу, и из русской традиции знаю только о существовании архимандрита Палладия, а также о том, что фамилия известного русского математика Александра Шеня имеет китайские корни.
</p>

 <p>
Курс китайской истории от Гарварда я закончил уже приехав в Китай, и несколько лет у меня не было ни времени, ни сил заняться высокой культурой, тем, что древние китайцы называли 大学(Dà Xúe), потому что ни времени, ни сил после работы и самообразования не оставалось.
</p>


 <figure id="orgf63c948"> <img src="./03_daxue.jpg" alt="03_daxue.jpg"></img></figure> <p>
Однако, со временем мой китайский улучшался, и в какой-то момент я с моей репетиторшей прочитал книгу китайских сказок для детей, купленную в соседнем магазине, в которой встретились имена правителей, смутно знакомые мне по гарвардскому курсу.
</p>

 <p>
Затем моя репетиторша уехала на каникулы, и у меня нашлось какое-то свободное время, чтобы вернуться к давно лелеемому плану разобраться уже, наконец, с литературной традицией.
</p>

 <p>
С другой стороны, я, после длительных попыток, наконец firmly приучил себя воспринимать тексты на слух, что позволило мне слушать книги во время прогулок.
В принципе, я слушал книги через TTS и раньше, и даже на каком-то из аккаунтов своих старых соцсетей постил ревью на “Симулякры и Симуляции” Жана Бодрийяра, прочитанную таким образом, однако наладить “конвейер” прослушивания книг у меня раньше не получалось.
</p>

 <p>
Книга большая, два тома по восемьсот страниц, и слушал я её довольно долго, хотя и не так долго как “Историю Рима” от Майка Данкана.
</p>


 <figure id="org834a3dd"> <img src="./04_thick-book.jpg" alt="04_thick-book.jpg"></img></figure></div>
</div>

 <div id="outline-container-%D0%9A%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB-%D0%B4%D0%B0%D1%91%D1%82%D1%81%D1%8F-%D0%B2-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B5,-%D0%B8-%D0%BA%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BD%D0%B5-%D0%B4%D0%B0%D1%91%D1%82%D1%81%D1%8F." class="outline-3">
 <h3 id="%D0%9A%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB-%D0%B4%D0%B0%D1%91%D1%82%D1%81%D1%8F-%D0%B2-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B5,-%D0%B8-%D0%BA%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BD%D0%B5-%D0%B4%D0%B0%D1%91%D1%82%D1%81%D1%8F."> <span class="section-number-3">1.2.</span>  <a href="#%D0%9A%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB-%D0%B4%D0%B0%D1%91%D1%82%D1%81%D1%8F-%D0%B2-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B5,-%D0%B8-%D0%BA%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BD%D0%B5-%D0%B4%D0%B0%D1%91%D1%82%D1%81%D1%8F.">Какой материал даётся в книге, и какой не даётся.</a></h3>
 <div class="outline-text-3" id="text-%D0%9A%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB-%D0%B4%D0%B0%D1%91%D1%82%D1%81%D1%8F-%D0%B2-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B5,-%D0%B8-%D0%BA%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BD%D0%B5-%D0%B4%D0%B0%D1%91%D1%82%D1%81%D1%8F.">
 <p>
Для многих моих знакомых книги неразрывно связанны с их авторами.
По их мнению “Игру Престолов” мог бы написать только Джордж Мартин, а “На западном фронте без Перемен” только Ремарк.
</p>

 <p>
Мне так не кажется, причём не только в отношении книг, написанных давно и личностями полу-легендарными, но и в отношении моих собственных текстов.
Где-то на половине написания хорошего текста, я начинаю чувствовать, что текст уже не совсем мой и следует какой-то своей логике.
</p>

 <p>
В каком-то смысле это хорошо стыкуется с китайским конфуцианством, потому что самые заметные и известные конфуцианские работы – это не авторские произведения, а хрестоматии, сборники, или, в лучшем случае, критические издания более старых авторов, в которых объём комментариев превышает объём исходного текста.
</p>

 <p>
Я совсем не китаист, и никакого отношения к китаистике не имею, однако от меня не ускользнула ирония того факта, что книга де Бари – это тоже хрестоматия, собрание извлечений из классиков с обильными комментариями между ними, имеющими целью построить единую, стройную традицию, растущую из бронзового века, и, в каком-то смысле, продолжающуюся до сих пор.
</p>

 <p>
Книга в среднем следует за китайской историей, которая, как принято, делится на династии.
Каждой династии посвящено от одной до нескольких глав, рассказывающих о разных аспектах китайской философии этой эпохи.
</p>

 <p>
В целом, складывается ощущение, что каждая следующая эпоха была бы логическим продолжением предыдущей и строилась на её основе, если бы не необходимость реагировать на внешние стимулы, чаще всего, военные, нападения вражеских цивилизаций, но временами и культурные, распространение буддизма и западного эмпиризма.
</p>

 <p>
Когда я пишу слово “философия”, я чувствую себя несколько неуютно.
На самом деле, то, что моём понимании собственно “философия”, ярче всего проявляется в Китае в эпоху Чжоу (Zhōu), когда творят Конфуций и его ученики, Лаоцзы, Моцзы.
(В книге есть фрагменты произведений их всех, и у читателя есть возможность вполне удовлетворительно понять, о чём они писали и чем отличались их учения.)
</p>

 <p>
Но со времён эпохи Чжоу прошло много лет, много династий и эпох сменили друг друга, однако китайские мыслители и писатели, как будто бы намного больше хотели разобраться в творениях авторов древности, ну, и донести их мысли до широкой аудитории, нежели чем писать новую философию, пусть и на основе мыслей классиков.
</p>

 <p>
Отдельной строкой в этой традиции идёт буддизм, который, в отличие от конфуцианской и даосской традиций, скорее поощрял написание и изобретение всё новых и новых методов познания Дхармы и описания мироздания, однако доминирование буддизма в Китае продлилось около 600 лет, что составляет меньше четверти от китайской истории.
Более того, даже слово “доминирование” надо взять в кавычки, потому что обучение в имперских академиях продолжалось всё равно по конфуцианскому канону.
</p>


 <figure id="orgc95df37"> <img src="./05_confucius-vs-buddha.jpg" alt="05_confucius-vs-buddha.jpg"></img></figure> <p>
Грубо говоря, складывается ощущение, что китайцев-традиционалистов всю историю интересовали ровно три вопроса:
</p>

 <ol class="org-ol"> <li>Морально-этическая философия, отношения людей друг между другом и между человеком и государством</li>
 <li>Написание корректных исторических хроник</li>
 <li>Образование и методы обучения, как высшего сословия, так и простых людей</li>
</ol> <p>
В этом виде даже как-то начинает казаться, что буддизм и даосизм являют в каком-то смысле попытку яростного несогласия с сухой, скучной, и бюрократической атмосферой конфуцианства и попыткой достичь спасения:
</p>

 <ol class="org-ol"> <li>Личного</li>
 <li>Своих собратьев по религии</li>
 <li>Всех окружающих</li>
</ol> <p>
Про буддизм я не могу написать много, хотя, де Бари и приводит довольного много выдержек из разных канонов Махаяны, включая “Лотусову Сутру”, дзенские коаны, и притчи школы “Чистой Земли”, просто потому что я сам по себе не очень религиозен, и не могу ничего всерьёз сказать об ощущении божественного присутствия, которое (несмотря на отсутствие единого “Бога”), в буддизме очень заметно.
</p>

 <p>
Но всё же мне трудно не отметить, что буддийское самоощущение “человек по природе своей плох и несчастен” как будто by design диаметрально противоположно конфуцианскому “человек от природы хорош, его только нужно правильно воспитать, вот ему десяток книжек, которые надо прочитать и выучить”.
</p>

 <p>
Нельзя сказать, что двумя вышеупомянутыми “потоками” китайская культура исчерпывается.
(Да даже если бы исчерпывалась, эти потоки зачастую переплетаются весьма причудливо, например, в работах Wáng Bì.)
</p>


 <figure id="org75ab602"> <img src="./06_yin-yang.jpg" alt="06_yin-yang.jpg"></img></figure> <p>
Есть, конечно, и работы Хань ФэйЦзы, не смотря на своё некоторое людоедство, заложившие начало китайской законодательной культуры.
Есть и работы Сунь Цзы, которые до сих пор изучают в военных академиях всего мира.
</p>

 <p>
Но количество людей, желавших продолжать их работы было, кажется, намного меньше людей, желающих прикоснуться к конфуцианскому (и до какой-то степени буддийскому) канону.
</p>

 <p>
Тут, несомненно, влияет тот факт, что конфуцианство являлось основным материалом, на котором в китайских школах учили читать и писать, в малых масштабах с начала имперского периода, в больших примерно с 10 века нашей эры.
А чтобы выучиться читать и писать по-китайски нужно много времени.
Это не так уж и сложно, просто мозг медленный, а объём китайской азбуки велик.
</p>

 <p>
И всё же меня до сих пор удивляет, что во время расцвета средневекового Китая, в 12 веке, написать критическое издание Конфуция для философа-педагога Чжу Си (Zhū Xī) оказалось более заманчивым делом, чем придумывать что-то своё.
</p>

 <p>
Нет, я не отрицаю того факта, что Конфуцианство сыграло, вероятно, большую роль в том, чтобы смягчить общественные нормы, до той степени, до которой это вообще возможно в средневековом обществе, но всё же, всё же.
</p>
</div>
</div>

 <div id="outline-container-%D0%A1%D1%83%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5-%D0%BE%D1%89%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BE%D1%82-%D0%BF%D1%80%D0%BE%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8F." class="outline-3">
 <h3 id="%D0%A1%D1%83%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5-%D0%BE%D1%89%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BE%D1%82-%D0%BF%D1%80%D0%BE%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8F."> <span class="section-number-3">1.3.</span>  <a href="#%D0%A1%D1%83%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5-%D0%BE%D1%89%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BE%D1%82-%D0%BF%D1%80%D0%BE%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8F.">Субъективные ощущения от прочтения.</a></h3>
 <div class="outline-text-3" id="text-%D0%A1%D1%83%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5-%D0%BE%D1%89%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BE%D1%82-%D0%BF%D1%80%D0%BE%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8F.">
 <p>
Я не жалею, что прочитал китайскую хрестоматию, и может быть, когда-нибудь, я даже соберусь прочитать аналогичные “Sources of Japanese Tradition” и “Sources of Indian Tradition”, от того же de Bary, которого, как, наверное, заметно по моим заметкам, я считаю неординарной личностью.
Прочитай одну книгу, и знаешь всё про культурную традицию целой страны.
(Шутка, конечно.)
</p>

 <p>
Я, наверное, найду в себе силы одолеть до конца Four Books and Five Classics, доступных простому читателю на замечательном сайте  <a href="https://ctext.org">https://ctext.org</a>.
(Они, на самом деле, не очень длинные.)
Я, скорее всего, дочитаю все классические романы на разговорном китайском ( <a href="https://en.wikipedia.org/wiki/Classic_Chinese_Novels">https://en.wikipedia.org/wiki/Classic_Chinese_Novels</a>).
</p>

 <p>
С другой стороны, я не могу сказать, что мне захотелось вникать что в конфуцианство или в буддизм детально.
</p>

 <p>
В этом ревью я совсем не упоминал китайскую журналистику конца 19 века, в которой активно обсуждалось изучение западных науки и культуры, а также не упоминал “азиатский национализм” “Китайской Республики” и маоизм.
Про них всех есть во втором томе “Sources of Chinese Tradition”, но их характер настолько отличается от “традиционной культуры”, что запихивать их в один и тот же отчёт кажется мне нескладным.
</p>

 <p>
Я давал почитать книгу моему другу с хорошим китайским образованием, и он горячо одобрил её, сказал, что в ней очень хорошая подборка авторов.
</p>

 <p>
С точки зрения организационно-политической, мне интересно, соберётся ли кто-нибудь переводить “Sources of Chinese Tradition” на русский язык?
Особенно это интересно в связи с тем, что интерес к Китаю как ко второй экономике мира нарастает повсеместно, как в капстранах и в странах народной демократии, так и в странах третьего мира.
</p>
</div>
</div>
</section> <section id="outline-container-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%81%D0%B2%D1%8F%D0%B7%D0%B8" class="outline-2"> <h2 id="%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%81%D0%B2%D1%8F%D0%B7%D0%B8"> <span class="section-number-2">2.</span>  <a href="#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%81%D0%B2%D1%8F%D0%B7%D0%B8">Методы связи</a></h2>
 <div class="outline-text-2" id="text-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%81%D0%B2%D1%8F%D0%B7%D0%B8">
 <ol class="org-ol"> <li>Mail :: lockywolf at lockywolf.net</li>
 <li>Telegram ::  <a href="https://t.me/unobvious">https://t.me/unobvious</a></li>
 <li>Zhihu (cn) ::  <a href="https://www.zhihu.com/people/lockywolf">https://www.zhihu.com/people/lockywolf</a></li>
 <li>LiveJournal (ru) ::  <a href="https://dead-doomer.livejournal.com">https://dead-doomer.livejournal.com</a></li>
 <li>Wordpress (en) ::  <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></li>
 <li>Permalink ::  <a href="https://lockywolf.net/2025-08-26_Sources-of-Chinese-Tradition_De-Bary.d/index.html">https://lockywolf.net/2025-08-26_Sources-of-Chinese-Tradition_De-Bary.d/index.html</a></li>
 <li>LiveJournal post ::  <a href="https://dead-doomer.livejournal.com/115709.html">https://dead-doomer.livejournal.com/115709.html</a></li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-08-26_Sources-of-Chinese-Tradition_De-Bary.d/index.html"/>
  <id>https://lockywolf.net/2025-08-26_Sources-of-Chinese-Tradition_De-Bary.d/index.html</id>
  <updated>2025-08-26T00:00:00+00:00</updated>
</entry>
<entry>
  <title>The History of Rome by Mike Duncan</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">The History of Rome by Mike Duncan</h1>
</header> <figure id="org456503c"> <img src="./title.jpg" alt="title.jpg"></img></figure> <p>
Я нечасто пишу обзоры по-русски, но время от времени я всё-таки делаю это, чтобы не забыть родной язык.
Ныне же, тем более, выдалась тема, которая на Западе давно отзвучала, и про которую написали уже очень много разного и без меня, в Китае чужда и не очень интересна, а в СНГ всё-таки проникает, но медленно.
Эта тема – подкасты.
</p>

 <p>
Так вот, я набрёл на подкаст под названием «The History of Rome», сделанные самоотверженным первопроходцем по имени Mike Duncan ( <a href="https://historyofrome.typepad.com">https://historyofrome.typepad.com</a>).
Если в трёх словах, то я рекомендую его послушать – он хороший, из него можно узнать много нового, его организация тоже весьма хороша – кусочки по 15 минут потребляются очень удобно, что в транспорте, что на кухне.
Ну, а тема – тема, как мне кажется, одна из самых любопытных, которые только бывали в истории, потому что нет, кажется, такой культуры, которая повлияла бы на нас, европейцев, больше, чем Рим.
</p>

 <p>
<!– lj-cut –> 
</p>


 <p>
Честно говоря, мне подкасты всегда казались вырожденным видом искусства, ведь из аудио всегда можно сделать видео просто путём подстановки подходящей картинки в качестве фона, а значит, разницы между подкастом и онлайн-видео никакой нет.
Однако, у онлайн-аудио и онлайн-видео оказалась достаточно разная аудитория, хотя с недавних пор большое количество подкастов всё равно дублируется на YouTube.
Надо сказать, что в 2007 году всё было не совсем так, и YouTube был куда менее популярен, однако в 2007 году у меня и смартфона-то не было, поэтому эпоху бурного развития подкастов я пропустил, а как оказалось, зря.
</p>

 <p>
Когда онлайн-контент был людям ещё в новинку, и люди ещё не сообразили, что в деле заработка денег в интернете количество бьёт качество, а вернее, что лучше всего зарабатывает деньги контент с максимальным отношением качества к вложенным усилиям.
(Поскольку линейная функция растёт куда медленнее гиперболы, исход стал ясен.)
То есть, в те годы подкасты делали, вкладывая в них  <span class="underline">намного</span> больше усилий, чем сейчас, а люди, которые их делали, были не скучающие школьники, а люди, которые относились к своему делу ответственно.
</p>

 <p>
Так вот, Mike Duncan и его The History of Rome.
Подкаст состоит из примерно 180 эпизодов, и покрывает примерно тоже же временной промежуток, который преподаётся в советской школе под названием «история древнего Рима».
То есть, история сначала Римской Республики до Цезаря, а потом Римской Империи до «падения» Западной Римской Империи в 475 году.
</p>

 <p>
Итак, зачем слушать про историю Рима, даже если хорошо ходил в школу, запомнилось всё хорошо, и разница между Тиберием и Тиберием Гракхом не вызывает удивления?
На этот вопрос у меня будет два ответа, один из начала существования Рима, другой из его конца.
</p>

 <p>
Во-первых, в школе вам рассказывают не всё.
Несмотря на то, что история Рима была единственной частью школьного курса, который я выучил хорошо, я с удивлением обнаружил, что в «Истории Рима» рассказывается намного больше, чем в школе.
Школьный курс вообще выглядел примерно как-то так: изгнание Тарквиния Гордого, похищение сабинянок, Пирр, Ганнибал, братья Гракх, Спартак, Цезарь, Октавиан, потом что-то там про империю, Веспасиан и его туалеты, Константин и его христианство и раздел империи пополам, а потом на Рим набижали варвары и всё пропало.
То есть, на самом деле, вторая половина почти тысячелетней истории Рима, собственно, имперская часть, ближайшая к нам, рассказывается посредственно, и подкаст есть отличный шанс наверстать упущенное.
</p>

 <p>
Во-вторых, в школе мало и плохо рассказывают ту часть, которая нам, людям, живущим во время упадка империй, должна быть наиболее интересна.
Никто же не будет спорить, что мы живём во время упадка империй?
Как именно падают империи?
Почему?
На каком временном промежутке это происходит?
Дункан достаточно аккуратно подходит к изложению, и не делает выводов за читателей, но рассказывает довольно много подробностей, позволяющих сделать свои умозаключения на эту тему. 
</p>

 <p>
На самом деле, даже к его весьма аккуратному изложению у меня есть некоторые претензии, в том смысле, что он рассказывает о том, как произошло падение Западной Римской Империи, но не рассказывает, почему Восточной удалось устоять.
Это упущение весьма популярное, историю Восточной Римской Империи вообще мало кто рассказывает.
Но эта претензия не очень серьёзная, потому что есть аналогичный по форме (только ещё более подробный) подкаст от Robin Pierson, «The History of Byzantium»,  <a href="https://thehistoryofbyzantium.com">https://thehistoryofbyzantium.com</a> .
</p>

 <p>
Однако, зря я начал с претензии: подкаст хорош, и вот что я выучил из него, чего не выучил бы, скорее всего, никогда:
</p>

 <ol class="org-ol"> <li>Римская Республика (и Римская Империя) никогда ни на кого не нападали. (да-да)</li>
 <li>Ганнибал и Сципион Африканский встречались на дипломатическом приёме.</li>
 <li>За 800 лет всего лишь около 4 императоров ухитрились передать трон сыну.  Много кому удалось передать племянникам и иным непрямым родственникам, но в целом, никаких династий в Риме особенно не складывалось.</li>
 <li>Римляне вели себя на удивление похоже на итальянцев эпохи Ренессанса как их отображают в литературе. Все эти любовные страсти, политические интриги, отравления, заказные убийства, восстания и предательства – то, что нынче принято называть «игрой престолов», было у них в максимальных количествах.</li>
 <li>Рим оставался по форме республиканским на всё протяжении своего существования. В период «домината» император начал носить диадему и вести себя более по-королевски, но в целом, сенат и выборные должности оставались в империи глубоко византийские времена.</li>
 <li>Римский император – одна из самых опасных профессий в мире.</li>
 <li>У римлян были школы и образование по всей империи.</li>
 <li>У римлян была вполне современного вида юриспруденция</li>
 <li>Империя едва не сгинула в третьем веке (200-300).</li>
 <li>Социализм изобрёл Диоклетиан, чтобы побороть инфляцию.</li>
 <li>Константин не делал христианство государственной религией, это сделал Феодосий.</li>
 <li>Империя практически не расширялась, большая часть завоеваний была сделана в республиканский период.</li>
 <li>Британия была под властью империи почти 400 лет.</li>
 <li>Император Коммод и в самом деле сражался в Колизее.</li>
 <li>Сенат неоднократно имел возможность вернуть себе власть, и каждый раз отказывался это делать.</li>
 <li>Гунны нападали не только на Рим и Константинополь, но и на Персию.</li>
 <li>Рождество – это языческий праздник, и поэтому оно не отмечалось в США до самого конца 19 века, ёлку наряжали ещё римляне.</li>
 <li>Бросание букета невестой, «выкуп» невесты и прочие свадебные развлечения уже были у римлян.</li>
 <li>Долгие столетия римляне ухитрялись интегрировать и ассимилировать варваров так, что те сами становились римлянами.</li>
 <li>Вандалы дошли аж до самой северной Африки.</li>
 <li>После замены призывной армии на профессиональную, простолюдины довольно охотно шли на 20 лет в солдаты для того, чтобы получить в итоге земельный надел и стать крестьянами.</li>
 <li>Когда даже за большие деньги римляне перестали идти в армию, императоры не смогли вернуть призыв, и начали платить большие деньги наёмным варварским полевым командирам.</li>
 <li>Развалившие Западную Римскую Империю варвары большей частью имели звания римских генералов, провели годы на службе римской армии, и, вообще говоря, не имели никакого желания разваливать Рим.</li>
</ol> <p>
Также Дункан упоминает немалое количество имён, помимо имён императоров, интересных личностей, многие из которых оставили после себя записи, которые можно прочитать и сейчас, ну или про которых уже написано много интересного.
</p>

 <ol class="org-ol"> <li>Сципион Африканский</li>
 <li>Братья Гракхи</li>
 <li>Луций Корнелий Сулла</li>
 <li>Гай Марий</li>
 <li>Публий Валерий Публикола</li>
 <li>Плутарх</li>
 <li>Тацит</li>
 <li>Плинии, Старший и Младший</li>
 <li>Дион Кассий</li>
 <li>Сенека</li>
 <li>Тит Ливий</li>
 <li>Прокопий Кесарийский</li>
 <li>Флавий Аэций</li>
 <li>Катон Старший</li>
</ol> <p>
Битвы описаны подробно, военные кампании детально и аккуратно, экономико-политические моменты разобраны тщательно и аналитично.
</p>

 <p>
У подкаста есть, однако, и минусы, хотя, как мне кажется, они более субъективны, чем плюсы.
Больше всего меня раздосадовало то, что мало внимания уделяется невоенным аспектам истории.
У Дункана есть всего несколько эпизодов, где он в деталях разбирает, как была устроена повседневность того времени, искусство и философия, хотя, мне кажется, что этому можно было бы посвятить намного больше внимания.
Например, рассказывается, что у римлян были школы, но не очень понятна степень распространения образования по провинциям.
Непонятно, как писались и издавались книги.
Ведь переписывать книги должно было быть немалого размера предприятием.
Мало рассказано про архитектуру и литературу, хотя и с тем, и с другим у римлян всё было хорошо.
Наверное, традиционно это больше рассказывается в курса истории искусств, а не «общей истории», но мне кажется, что это разделение искусственно, и что в подкаст-формате можно был бы сделать как-нибудь иначе.
</p>

 <p>
Подкаст подъёмен по размеру – где-то 180 эпизодов по полчаса и меньше, что в сумме около 80 часов, примерно равно большой аудиокниге.
</p>

 <p>
В общем, я бы рекомендовал послушать, кому показалось интересным.
Рассвет и закат демократии, её смена диктатурой, а потом и закат и угасание диктатуры тоже, трудолюбие, переходящее со временем в «хлеба и зрелищ» и тотальный импорт сначала рабочей силы, а потом и солдат, из-за границы, угасание просвещённой религии предков и её постепенное замещение тоталитарной сектой, распространённой среди народных низов и иммигрантов, запрет работать не по специальности, запреты абортов и разводов, прощение долгов своим друзьям, продразвёрстка, тщательно рассчитанная армией бюрократов в столице, ну, конечно, любовницы и матери, вещающие по ночам императорам на ухо, как править империей, замена компетентных на преданных, политические отравления и пакостящие свекрови – в общем, всё это слушается удивительно свежо, лучше чем «Игра Престолов», потому что всё это было на самом деле. Ну, и, конечно, прекрасные и умные женщины и сильные, храбрые, и умные мужчины.
</p>

 <p>
По мотивам подкаста и в качестве афтерпати, я нашёл книгу Lingua Latina Per Se Illustrata, это учебник латыни, но написанный в разговорной форме, как любой современный учебник иностранного языка.
На YouTube есть с десяток мини-сериалов, могущих служить companion, я упомяну только один: 
 <a href="https://m.youtube.com/playlist?list=PL6xCzqlvGbKS7E3P1RVinIZ7Z2SViXA-F">https://m.youtube.com/playlist?list=PL6xCzqlvGbKS7E3P1RVinIZ7Z2SViXA-F</a>
</p>

 <p>
Также надо упомянуть, что на римские примеры активно ссылаются Макиавелли, Александр Гамильтон, а также много кто ещё.
</p>

 <p>
Ну и, конечно, прослушав курс римской истории, начинаешь осознавать, насколько же Москва и правда Третий Рим.
</p>

 <p>
Английский у Дункана очень простой, за весь курс я выписал, быть может, пару десятков новых слов, так что больших трудностей быть не должно.
</p>

 <p>
Ну, и в подвале я приведу несколько видео, чисто ради создания атмосферы.
</p>

 <ol class="org-ol"> <li>Орёл Шестого Легиона ::  <a href="https://m.youtube.com/watch?v=7UiBQr_PFVY">https://m.youtube.com/watch?v=7UiBQr_PFVY</a></li>
 <li>Песня Римского Легионера ::  <a href="https://m.youtube.com/watch?v=nuE_nkJ6JQw">https://m.youtube.com/watch?v=nuE_nkJ6JQw</a></li>
 <li>Roman Centurion's Song ::  <a href="https://m.youtube.com/watch?v=0SMOhwvMnf0">https://m.youtube.com/watch?v=0SMOhwvMnf0</a></li>
 <li>In Taberna ::  <a href="https://m.youtube.com/watch?v=Dfz89UVbLAA">https://m.youtube.com/watch?v=Dfz89UVbLAA</a></li>
 <li>Gaudeamus Igitur ::  <a href="https://m.youtube.com/watch?v=ha6pGK6ZnXE">https://m.youtube.com/watch?v=ha6pGK6ZnXE</a></li>
 <li>Разговоры ::  <a href="https://m.youtube.com/watch?v=LW9XRA4641E">https://m.youtube.com/watch?v=LW9XRA4641E</a></li>
</ol> <p>
Также, я не могу не сослаться на попавшийся мне в недрах Телеграмма восхитительный кусок пропаганды, исчерпывающе доказывающий, что настоящий Рим сейчас называется КНР:  <a href="https://lockywolf.net/2022-08-07_Roman-Imperial-Heritage-in-Chinese-Hebei-ZhangJiaKou/index.html">https://lockywolf.net/2022-08-07_Roman-Imperial-Heritage-in-Chinese-Hebei-ZhangJiaKou/index.html</a>
</p>

 <p>
Оригинал этой заметки расположен по адресу:   <a href="https://lockywolf.net/2025-01-31_The-History-of-Rome-by-Mike-Duncan.d/index.html">https://lockywolf.net/2025-01-31_The-History-of-Rome-by-Mike-Duncan.d/index.html</a>
</p>
</main>]]></content>
  <link href="https://lockywolf.net/2025-01-31_The-History-of-Rome-by-Mike-Duncan.d/index.html"/>
  <id>https://lockywolf.net/2025-01-31_The-History-of-Rome-by-Mike-Duncan.d/index.html</id>
  <updated>2025-08-20T00:00:00+00:00</updated>
</entry>
<entry>
  <title>How to make use of scientific (or similar) conferences (online too).</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How to make use of scientific (or similar) conferences (online too).</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract.">1. Abstract.</a></li>
 <li> <a href="#Before-the-conference.">2. Before the conference.</a>
 <ul> <li> <a href="#Make-a-memory-bank-file-for-the-conference.">2.1. Make a memory bank file for the conference.</a></li>
 <li> <a href="#Prepare-the-slides.-(Not-necessarily-a-pptx/odp/pdf,-maybe-imaginary-slides)">2.2. Prepare the slides. (Not necessarily a pptx/odp/pdf, maybe imaginary slides)</a></li>
 <li> <a href="#Record-yourself-while-your-are-preparing-for-the-talk.-You-can-publish-the-video-later.">2.3. Record yourself while your are preparing for the talk. You can publish the video later.</a></li>
 <li> <a href="#For-every-day-of-the-conference,-read-X-papers-you-like-most,-extensively.">2.4. For every day of the conference, read X papers you like most, extensively.</a>
 <ul> <li> <a href="#Read-the-text,-and-understand-it-as-thoroughly-as-you-can.">2.4.1. Read the text, and understand it as thoroughly as you can.</a></li>
 <li> <a href="#Prepare-at-least-one-meaningful-question-you-will-ask-the-author-at-the-presentation.">2.4.2. Prepare at least one meaningful question you will ask the author at the presentation.</a></li>
 <li> <a href="#Prepare-a-list-of-questions-you-will-be-asking-the-author-after-(or-before?)-the-presentation.">2.4.3. Prepare a list of questions you will be asking the author after (or before?) the presentation.</a></li>
</ul></li>
 <li> <a href="#Select-Y-presentations-you-want-to-go-to.">2.5. Select Y presentations you want to go to.</a></li>
 <li> <a href="#Prepare-your-business-cards.">2.6. Prepare your business cards.</a></li>
 <li> <a href="#Formulate-your-goals-for-visiting-the-conference.">2.7. Formulate your goals for visiting the conference.</a></li>
 <li> <a href="#Research-the-people-you-want-to-hang-out-with,-according-to-the-previous-headline.">2.8. Research the people you want to hang out with, according to the previous headline.</a></li>
 <li> <a href="#Prepare-a-directory-for-making-screenshots-and-a-file-for-notes.">2.9. Prepare a directory for making screenshots and a file for notes.</a></li>
</ul></li>
 <li> <a href="#On-the-conference.">3. On the conference.</a>
 <ul> <li> <a href="#Check-the-equipment-1-hour-before-the-start.-Mitigate-if-broken.">3.1. Check the equipment 1 hour before the start. Mitigate if broken.</a></li>
 <li> <a href="#Find-the-speakers-that-will-be-delivering-the-talks-you-are-interested-in.-(Offline-conferences)">3.2. Find the speakers that will be delivering the talks you are interested in. (Offline conferences)</a></li>
 <li> <a href="#Find-out-clearly,-which-nickname-hides-which-person.-(Offline-conferences)">3.3. Find out clearly, which nickname hides which person. (Offline conferences)</a></li>
 <li> <a href="#Attend-the-talks-you-have-prepared-for.">3.4. Attend the talks you have prepared for.</a></li>
 <li> <a href="#Ask-the-questions-you-have-in-your-homework-at-the-Q&A.">3.5. Ask the questions you have in your homework at the Q&A.</a></li>
 <li> <a href="#Between-the-interesting-talks,-catch-interesting-people-at-the-sidelines-and-engage-with-them.">3.6. Between the interesting talks, catch interesting people at the sidelines and engage with them.</a></li>
</ul></li>
 <li> <a href="#After-the-conference.">4. After the conference.</a>
 <ul> <li> <a href="#Update-the-notes-for-the-papers-you-found-interesting.">4.1. Update the notes for the papers you found interesting.</a></li>
 <li> <a href="#Remove-the-notes-that-proved-to-be-useless.">4.2. Remove the notes that proved to be useless.</a></li>
 <li> <a href="#Write-follow-up-emails-to-people-you-are-still-interested-in.">4.3. Write follow-up emails to people you are still interested in.</a></li>
 <li> <a href="#Write-a-conference-summary-into-your-memory-bank.">4.4. Write a conference summary into your memory bank.</a></li>
 <li> <a href="#Archive-the-memory-bank.">4.5. Archive the memory bank.</a></li>
 <li> <a href="#Clean-the-messy-references.">4.6. Clean the messy references.</a></li>
</ul></li>
 <li> <a href="#Literature">5. Literature</a></li>
</ul></div>
</nav> <section id="outline-container-Abstract." class="outline-2"> <h2 id="Abstract."> <span class="section-number-2">1.</span>  <a href="#Abstract.">Abstract.</a></h2>
 <div class="outline-text-2" id="text-Abstract.">
 <p>
This memo contains a checklist that I created during preparation for a conference.
It is by no means exhaustive, necessary or sufficient.
</p>
</div>
</section> <section id="outline-container-Before-the-conference." class="outline-2"> <h2 id="Before-the-conference."> <span class="section-number-2">2.</span>  <a href="#Before-the-conference.">Before the conference.</a></h2>
 <div class="outline-text-2" id="text-Before-the-conference.">
</div>

 <div id="outline-container-Make-a-memory-bank-file-for-the-conference." class="outline-3">
 <h3 id="Make-a-memory-bank-file-for-the-conference."> <span class="section-number-3">2.1.</span>  <a href="#Make-a-memory-bank-file-for-the-conference.">Make a memory bank file for the conference.</a></h3>
 <div class="outline-text-3" id="text-Make-a-memory-bank-file-for-the-conference.">
</div>
</div>
 <div id="outline-container-Prepare-the-slides.-(Not-necessarily-a-pptx/odp/pdf,-maybe-imaginary-slides)" class="outline-3">
 <h3 id="Prepare-the-slides.-(Not-necessarily-a-pptx/odp/pdf,-maybe-imaginary-slides)"> <span class="section-number-3">2.2.</span>  <a href="#Prepare-the-slides.-(Not-necessarily-a-pptx/odp/pdf,-maybe-imaginary-slides)">Prepare the slides. (Not necessarily a pptx/odp/pdf, maybe imaginary slides)</a></h3>
 <div class="outline-text-3" id="text-Prepare-the-slides.-(Not-necessarily-a-pptx/odp/pdf,-maybe-imaginary-slides)">
</div>
</div>

 <div id="outline-container-Record-yourself-while-your-are-preparing-for-the-talk.-You-can-publish-the-video-later." class="outline-3">
 <h3 id="Record-yourself-while-your-are-preparing-for-the-talk.-You-can-publish-the-video-later."> <span class="section-number-3">2.3.</span>  <a href="#Record-yourself-while-your-are-preparing-for-the-talk.-You-can-publish-the-video-later.">Record yourself while your are preparing for the talk. You can publish the video later.</a></h3>
 <div class="outline-text-3" id="text-Record-yourself-while-your-are-preparing-for-the-talk.-You-can-publish-the-video-later.">
</div>
</div>

 <div id="outline-container-For-every-day-of-the-conference,-read-X-papers-you-like-most,-extensively." class="outline-3">
 <h3 id="For-every-day-of-the-conference,-read-X-papers-you-like-most,-extensively."> <span class="section-number-3">2.4.</span>  <a href="#For-every-day-of-the-conference,-read-X-papers-you-like-most,-extensively.">For every day of the conference, read X papers you like most, extensively.</a></h3>
 <div class="outline-text-3" id="text-For-every-day-of-the-conference,-read-X-papers-you-like-most,-extensively.">
 <p>
You need to calibrate the parameter X.
For me X=1, but if you are smart this may be successful with X>1.
</p>

 <p>
The following sub-items are to be performed for each of the X papers.
</p>
</div>

 <div id="outline-container-Read-the-text,-and-understand-it-as-thoroughly-as-you-can." class="outline-4">
 <h4 id="Read-the-text,-and-understand-it-as-thoroughly-as-you-can."> <span class="section-number-4">2.4.1.</span>  <a href="#Read-the-text,-and-understand-it-as-thoroughly-as-you-can.">Read the text, and understand it as thoroughly as you can.</a></h4>
 <div class="outline-text-4" id="text-Read-the-text,-and-understand-it-as-thoroughly-as-you-can.">
 <p>
I need to write a HOWTO on this topic, but I have not yet.
</p>
</div>
</div>

 <div id="outline-container-Prepare-at-least-one-meaningful-question-you-will-ask-the-author-at-the-presentation." class="outline-4">
 <h4 id="Prepare-at-least-one-meaningful-question-you-will-ask-the-author-at-the-presentation."> <span class="section-number-4">2.4.2.</span>  <a href="#Prepare-at-least-one-meaningful-question-you-will-ask-the-author-at-the-presentation.">Prepare at least one meaningful question you will ask the author at the presentation.</a></h4>
 <div class="outline-text-4" id="text-Prepare-at-least-one-meaningful-question-you-will-ask-the-author-at-the-presentation.">
 <p>
This question is for the author, not for you.
You are expected to understand the paper well enough any way.
This question is needed to:
</p>

 <ul class="org-ul"> <li>Make the audience understand the speech better.</li>
 <li>Make the author look more confident.</li>
 <li>Make the author like your assistive behaviour.</li>
</ul></div>
</div>

 <div id="outline-container-Prepare-a-list-of-questions-you-will-be-asking-the-author-after-(or-before?)-the-presentation." class="outline-4">
 <h4 id="Prepare-a-list-of-questions-you-will-be-asking-the-author-after-(or-before?)-the-presentation."> <span class="section-number-4">2.4.3.</span>  <a href="#Prepare-a-list-of-questions-you-will-be-asking-the-author-after-(or-before?)-the-presentation.">Prepare a list of questions you will be asking the author after (or before?) the presentation.</a></h4>
 <div class="outline-text-4" id="text-Prepare-a-list-of-questions-you-will-be-asking-the-author-after-(or-before?)-the-presentation.">
 <ul class="org-ul"> <li>Maybe one question that seems difficult, but is easy for the author to answer, to make him feel that you understand the subject area.</li>
 <li>The rest of the questions may be about the paper details, just try to make sure that they are not from among those that can be solved just by careful reading.</li>
</ul></div>
</div>
</div>

 <div id="outline-container-Select-Y-presentations-you-want-to-go-to." class="outline-3">
 <h3 id="Select-Y-presentations-you-want-to-go-to."> <span class="section-number-3">2.5.</span>  <a href="#Select-Y-presentations-you-want-to-go-to.">Select Y presentations you want to go to.</a></h3>
 <div class="outline-text-3" id="text-Select-Y-presentations-you-want-to-go-to.">
 <p>
You need to calibrate the Y.
I think that 4 is a realistic number.
Add one well-read paper from the previous headline.
For a three-day conference this makes 15 presentations. 
Already a lot.
</p>
</div>
</div>

 <div id="outline-container-Prepare-your-business-cards." class="outline-3">
 <h3 id="Prepare-your-business-cards."> <span class="section-number-3">2.6.</span>  <a href="#Prepare-your-business-cards.">Prepare your business cards.</a></h3>
 <div class="outline-text-3" id="text-Prepare-your-business-cards.">
 <ul class="org-ul"> <li>(Optional) Paper business cards. You can send them to your friends by snail-mail.</li>
 <li>Website business card with your CV and why you are interesting.</li>
 <li>LinkedIn profile for recruiters.</li>
 <li>GitLab/GitHub/SourceForge/BitBucket/Savannah, any worksharing service.</li>
</ul></div>
</div>

 <div id="outline-container-Formulate-your-goals-for-visiting-the-conference." class="outline-3">
 <h3 id="Formulate-your-goals-for-visiting-the-conference."> <span class="section-number-3">2.7.</span>  <a href="#Formulate-your-goals-for-visiting-the-conference.">Formulate your goals for visiting the conference.</a></h3>
 <div class="outline-text-3" id="text-Formulate-your-goals-for-visiting-the-conference.">
 <p>
A non-exhaustive list:
</p>

 <ul class="org-ul"> <li>Promote your concrete work. (paper, software, service, website, project)</li>
 <li>Promote yourself. (employee, collaborator, find a job)</li>
 <li>Find a concrete missing puzzle piece for your work. (idea, product, service, employee)</li>
 <li>Find an abstract person. (friend, consultant, mentor, teacher, well-connected person)</li>
 <li>Hang out with likeminded people.</li>
</ul></div>
</div>

 <div id="outline-container-Research-the-people-you-want-to-hang-out-with,-according-to-the-previous-headline." class="outline-3">
 <h3 id="Research-the-people-you-want-to-hang-out-with,-according-to-the-previous-headline."> <span class="section-number-3">2.8.</span>  <a href="#Research-the-people-you-want-to-hang-out-with,-according-to-the-previous-headline.">Research the people you want to hang out with, according to the previous headline.</a></h3>
 <div class="outline-text-3" id="text-Research-the-people-you-want-to-hang-out-with,-according-to-the-previous-headline.">
 <ul class="org-ul"> <li>List of organisers and committees.</li>
 <li>List of presenters.</li>
 <li>(Sometimes) conferences publish lists of participants.</li>
 <li>Lists of sponsoring companies.</li>
</ul></div>
</div>

 <div id="outline-container-Prepare-a-directory-for-making-screenshots-and-a-file-for-notes." class="outline-3">
 <h3 id="Prepare-a-directory-for-making-screenshots-and-a-file-for-notes."> <span class="section-number-3">2.9.</span>  <a href="#Prepare-a-directory-for-making-screenshots-and-a-file-for-notes.">Prepare a directory for making screenshots and a file for notes.</a></h3>
 <div class="outline-text-3" id="text-Prepare-a-directory-for-making-screenshots-and-a-file-for-notes.">
 <p>
As a homework, paste your Twitter, GitLab, account links, and other Social Media links at the top of the file.
</p>
</div>
</div>
</section> <section id="outline-container-On-the-conference." class="outline-2"> <h2 id="On-the-conference."> <span class="section-number-2">3.</span>  <a href="#On-the-conference.">On the conference.</a></h2>
 <div class="outline-text-2" id="text-On-the-conference.">
</div>

 <div id="outline-container-Check-the-equipment-1-hour-before-the-start.-Mitigate-if-broken." class="outline-3">
 <h3 id="Check-the-equipment-1-hour-before-the-start.-Mitigate-if-broken."> <span class="section-number-3">3.1.</span>  <a href="#Check-the-equipment-1-hour-before-the-start.-Mitigate-if-broken.">Check the equipment 1 hour before the start. Mitigate if broken.</a></h3>
 <div class="outline-text-3" id="text-Check-the-equipment-1-hour-before-the-start.-Mitigate-if-broken.">
 <ul class="org-ul"> <li>Laptop</li>
 <li>Smartphone</li>
 <li>Power bank</li>
 <li>Storage space</li>
 <li>Internet connection</li>
 <li>VPN</li>
 <li>Cloud</li>
</ul></div>
</div>

 <div id="outline-container-Find-the-speakers-that-will-be-delivering-the-talks-you-are-interested-in.-(Offline-conferences)" class="outline-3">
 <h3 id="Find-the-speakers-that-will-be-delivering-the-talks-you-are-interested-in.-(Offline-conferences)"> <span class="section-number-3">3.2.</span>  <a href="#Find-the-speakers-that-will-be-delivering-the-talks-you-are-interested-in.-(Offline-conferences)">Find the speakers that will be delivering the talks you are interested in. (Offline conferences)</a></h3>
 <div class="outline-text-3" id="text-Find-the-speakers-that-will-be-delivering-the-talks-you-are-interested-in.-(Offline-conferences)">
 <p>
Make a photo with them. 
It is an easy way to remember what they look like and add to your BBDB.
</p>
</div>
</div>

 <div id="outline-container-Find-out-clearly,-which-nickname-hides-which-person.-(Offline-conferences)" class="outline-3">
 <h3 id="Find-out-clearly,-which-nickname-hides-which-person.-(Offline-conferences)"> <span class="section-number-3">3.3.</span>  <a href="#Find-out-clearly,-which-nickname-hides-which-person.-(Offline-conferences)">Find out clearly, which nickname hides which person. (Offline conferences)</a></h3>
 <div class="outline-text-3" id="text-Find-out-clearly,-which-nickname-hides-which-person.-(Offline-conferences)">
 <p>
Write it down into the BBDB.
</p>
</div>
</div>

 <div id="outline-container-Attend-the-talks-you-have-prepared-for." class="outline-3">
 <h3 id="Attend-the-talks-you-have-prepared-for."> <span class="section-number-3">3.4.</span>  <a href="#Attend-the-talks-you-have-prepared-for.">Attend the talks you have prepared for.</a></h3>
 <div class="outline-text-3" id="text-Attend-the-talks-you-have-prepared-for.">
</div>
</div>

 <div id="outline-container-Ask-the-questions-you-have-in-your-homework-at-the-Q&A." class="outline-3">
 <h3 id="Ask-the-questions-you-have-in-your-homework-at-the-Q&A."> <span class="section-number-3">3.5.</span>  <a href="#Ask-the-questions-you-have-in-your-homework-at-the-Q&A.">Ask the questions you have in your homework at the Q&A.</a></h3>
 <div class="outline-text-3" id="text-Ask-the-questions-you-have-in-your-homework-at-the-Q&A.">
</div>
</div>

 <div id="outline-container-Between-the-interesting-talks,-catch-interesting-people-at-the-sidelines-and-engage-with-them." class="outline-3">
 <h3 id="Between-the-interesting-talks,-catch-interesting-people-at-the-sidelines-and-engage-with-them."> <span class="section-number-3">3.6.</span>  <a href="#Between-the-interesting-talks,-catch-interesting-people-at-the-sidelines-and-engage-with-them.">Between the interesting talks, catch interesting people at the sidelines and engage with them.</a></h3>
 <div class="outline-text-3" id="text-Between-the-interesting-talks,-catch-interesting-people-at-the-sidelines-and-engage-with-them.">
 <p>
How is this even done at the video conferences?
“Private rooms” just sound creepy.
At chat-based conferences?
</p>
</div>
</div>
</section> <section id="outline-container-After-the-conference." class="outline-2"> <h2 id="After-the-conference."> <span class="section-number-2">4.</span>  <a href="#After-the-conference.">After the conference.</a></h2>
 <div class="outline-text-2" id="text-After-the-conference.">
</div>

 <div id="outline-container-Update-the-notes-for-the-papers-you-found-interesting." class="outline-3">
 <h3 id="Update-the-notes-for-the-papers-you-found-interesting."> <span class="section-number-3">4.1.</span>  <a href="#Update-the-notes-for-the-papers-you-found-interesting.">Update the notes for the papers you found interesting.</a></h3>
 <div class="outline-text-3" id="text-Update-the-notes-for-the-papers-you-found-interesting.">
</div>
</div>

 <div id="outline-container-Remove-the-notes-that-proved-to-be-useless." class="outline-3">
 <h3 id="Remove-the-notes-that-proved-to-be-useless."> <span class="section-number-3">4.2.</span>  <a href="#Remove-the-notes-that-proved-to-be-useless.">Remove the notes that proved to be useless.</a></h3>
 <div class="outline-text-3" id="text-Remove-the-notes-that-proved-to-be-useless.">
</div>
</div>

 <div id="outline-container-Write-follow-up-emails-to-people-you-are-still-interested-in." class="outline-3">
 <h3 id="Write-follow-up-emails-to-people-you-are-still-interested-in."> <span class="section-number-3">4.3.</span>  <a href="#Write-follow-up-emails-to-people-you-are-still-interested-in.">Write follow-up emails to people you are still interested in.</a></h3>
 <div class="outline-text-3" id="text-Write-follow-up-emails-to-people-you-are-still-interested-in.">
</div>
</div>

 <div id="outline-container-Write-a-conference-summary-into-your-memory-bank." class="outline-3">
 <h3 id="Write-a-conference-summary-into-your-memory-bank."> <span class="section-number-3">4.4.</span>  <a href="#Write-a-conference-summary-into-your-memory-bank.">Write a conference summary into your memory bank.</a></h3>
 <div class="outline-text-3" id="text-Write-a-conference-summary-into-your-memory-bank.">
</div>
</div>

 <div id="outline-container-Archive-the-memory-bank." class="outline-3">
 <h3 id="Archive-the-memory-bank."> <span class="section-number-3">4.5.</span>  <a href="#Archive-the-memory-bank.">Archive the memory bank.</a></h3>
 <div class="outline-text-3" id="text-Archive-the-memory-bank.">
</div>
</div>
 <div id="outline-container-Clean-the-messy-references." class="outline-3">
 <h3 id="Clean-the-messy-references."> <span class="section-number-3">4.6.</span>  <a href="#Clean-the-messy-references.">Clean the messy references.</a></h3>
 <div class="outline-text-3" id="text-Clean-the-messy-references.">
 <ul class="org-ul"> <li>Useless business cards.</li>
 <li>Useless social network connections.</li>
 <li>?</li>
</ul></div>
</div>
</section> <section id="outline-container-Literature" class="outline-2"> <h2 id="Literature"> <span class="section-number-2">5.</span>  <a href="#Literature">Literature</a></h2>
 <div class="outline-text-2" id="text-Literature">
 <ol class="org-ol"> <li>The Importance of Networking in Science By Shayna Joubert August 9, 2018  <a href="https://www.northeastern.edu/graduate/blog/biotechnology-networking-tips/">https://www.northeastern.edu/graduate/blog/biotechnology-networking-tips/</a></li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-07-24_How-to-make-use-of-online-scientific-conferences.html"/>
  <id>https://lockywolf.net/2020-07-24_How-to-make-use-of-online-scientific-conferences.html</id>
  <updated>2025-08-19T00:00:00+00:00</updated>
</entry>
<entry>
  <title>GnuPG and other creatures.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">GnuPG and other creatures.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Preface">1. Preface</a></li>
 <li> <a href="#Notes">2. Notes</a>
 <ul> <li> <a href="#Gnupg-is-very-stateful.">2.1. Gnupg is very stateful.</a></li>
 <li> <a href="#Gnupg-is-_very_-picky-about-options,-parameters,-whatever-it-has.">2.2. Gnupg is  <span class="underline">very</span> picky about options, parameters, whatever it has.</a></li>
 <li> <a href="#Address-book-is-_very_-important-for-gnupg.">2.3. Address book is  <span class="underline">very</span> important for gnupg.</a></li>
 <li> <a href="#Keys-are-identified-by-fingerprints.">2.4. Keys are identified by fingerprints.</a></li>
 <li> <a href="#Key-ID-is-the-last-16-numbers-of-a-fingerprint.">2.5. Key-ID is the last 16 numbers of a fingerprint.</a></li>
 <li> <a href="#GnuPG-does-_not_-preserve-message-length.">2.6. GnuPG does  <span class="underline">not</span> preserve message length.</a></li>
 <li> <a href="#GnuPG-encrypts-the-same-cleartext-_DIFFERENTLY-EACH-TIME_">2.7. GnuPG encrypts the same cleartext  <span class="underline">DIFFERENTLY EACH TIME</span></a></li>
 <li> <a href="#GnuPG-by-default-also-includes-metadata.-(HUGELY-unclear)">2.8. GnuPG by default also includes metadata. (HUGELY unclear)</a></li>
 <li> <a href="#Different-recipients">2.9. Different recipients</a></li>
 <li> <a href="#trust-level">2.10. trust level</a></li>
 <li> <a href="#Importing-a-key-to-Emacs">2.11. Importing a key to Emacs</a></li>
 <li> <a href="#What-are-you-defending-against?-How-do-you-find-out-that-enemies-don't-send-emails-in-your-name?">2.12. What are you defending against? How do you find out that enemies don’t send emails in your name?</a></li>
 <li> <a href="#How-do-you-prevent-people-from-publicly-disclosing-that-they-know-you-by-signing-your-key-and-uploading-it-to-a-keyserver?">2.13. How do you prevent people from publicly disclosing that they know you by signing your key and uploading it to a keyserver?</a></li>
 <li> <a href="#How-do-you-verify-messages-in-console-mu?">2.14. How do you verify messages in console mu?</a></li>
 <li> <a href="#What-are-(~auto-key-locate-mechanisms~,-~auto-key-import~,-and-~auto-key-retrieve~)?">2.15. What are ( <code>auto-key-locate mechanisms</code>,  <code>auto-key-import</code>, and  <code>auto-key-retrieve</code>)?</a></li>
 <li> <a href="#How-do-I-verify-messages-in-mu4e?">2.16. How do I verify messages in mu4e?</a></li>
 <li> <a href="#~mm-verify-option~-is-always-unsure-about-the-signature">2.17.  <code>mm-verify-option</code> is always unsure about the signature</a></li>
 <li> <a href="#What-does-verification-actually-tell-you?-If-verification-fails,-what-does-it-mean?">2.18. What does verification actually tell you? If verification fails, what does it mean?</a></li>
 <li> <a href="#How-do-I-sign-messages-by-default-in-mu?">2.19. How do I sign messages by default in mu?</a></li>
 <li> <a href="#How-do-I-sign-messages-by-default-in-mu4e?">2.20. How do I sign messages by default in mu4e?</a></li>
 <li> <a href="#How-do-I-use-Gnupg-with-Gmail?">2.21. How do I use Gnupg with Gmail?</a></li>
 <li> <a href="#How-do-I-use-Gnupg-with-Gmail-Android?">2.22. How do I use Gnupg with Gmail Android?</a>
 <ul> <li> <a href="#K-9Mail/Fairemail-+-OpenKeychain-+-synchronise-keys">2.22.1. K-9Mail/Fairemail + OpenKeychain + synchronise keys</a></li>
 <li> <a href="#Sign/Encrypt-with-OpenKeychain-and-paste">2.22.2. Sign/Encrypt with OpenKeychain and paste</a></li>
</ul></li>
 <li> <a href="#How-do-I-encrypt-my-password-file?">2.23. How do I encrypt my password file?</a></li>
 <li> <a href="#What-if-I-do-not-use-~--sign~?-I-can-decrypt-a-file-means-that-it-is-fine,-right?">2.24. What if I do not use  <code>--sign</code>? I can decrypt a file means that it is fine, right?</a></li>
 <li> <a href="#How-do-I-decrypt-my-password-file?">2.25. How do I decrypt my password file?</a></li>
 <li> <a href="#How-to-import-data-from-old-gnupg-installations?">2.26. How to import data from old gnupg installations?</a></li>
 <li> <a href="#How-do-I-find-someone's-key-to-encrypt-to-or-check-the-senders-signature?">2.27. How do I find someone’s key to encrypt to or check the senders signature?</a>
 <ul> <li> <a href="#general-method:-~--locate-keys~">2.27.1. General method:  <code>--locate-keys</code></a></li>
 <li> <a href="#Method-1-(HTTPS):-WKD">2.27.2. Method 1 (HTTPS): WKD</a></li>
 <li> <a href="#Method-2-(DNS):-CERT,-PKA,-DANE,-IPGP">2.27.3. Method 2 (DNS): CERT, PKA, DANE, IPGP</a></li>
</ul></li>
 <li> <a href="#How-do-I-encrypt/decrypt-files-from-GUI-with-Thunar-in-XFCE?">2.28. How do I encrypt/decrypt files from GUI with Thunar in XFCE?</a></li>
 <li> <a href="#How-does-that-Subkey-machinery-work-in-practice?">2.29. How does that Subkey machinery work in practice?</a></li>
</ul></li>
 <li> <a href="#Open-Questions">3. Open Questions</a>
 <ul> <li> <a href="#Is-it-better-to-synchronise-keys-over-different-devices,-or-have-different-ones?">3.1.  <span class="todo TODO">TODO</span> Is it better to synchronise keys over different devices, or have different ones?</a></li>
</ul></li>
 <li> <a href="#References">4. References</a></li>
</ul></div>
</nav> <p>
GnuPG is a tricky and finicky piece of software.
While learning it, I had to find out a lot of its peculiarities.
</p>

 <section id="outline-container-Preface" class="outline-2"> <h2 id="Preface"> <span class="section-number-2">1.</span>  <a href="#Preface">Preface</a></h2>
 <div class="outline-text-2" id="text-Preface">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2025-08-06 Wed 09:50> </span></span> I have written this howto some time ago, more like a set of notes rather than as a true howto on how to make GnuPG useful for oneself.
A bit of time has passed, and, revising this howto, I found a need to write a preface, explaining what the following notes are all about.
</p>

 <p>
 <b>GnuPG</b> is a command-line cryptography toolkit (although GUIs exist), quite strange and baroque, but probably the best available nowadays for “asynchronous” encryption.
By “asynchronous” I mean cryptography which cannot demand the recepient to do anything when the sender is sending the message.
This is a big limitation, in particular it makes Diffie-Hellman key exchange impossible.
But it is also allows offline communication, which is very useful.
</p>

 <p>
GnuPG supports many standard cryptography tools:
</p>

 <ol class="org-ol"> <li>Symmetric encryption (encryption for everyone who has a certain key)</li>
 <li>Asymmetric encryption (encryption with a published public key for someone who has a secret key)</li>
 <li>Asymmetric signing (signing a message for everyone who can obtain your public key from somewhere)</li>
 <li>Server-side address book for storing and searching keys</li>
 <li>Web-of-trust machinery for establishing trustworthiness of keys for contacts you have not been able to directly exchange public keys</li>
</ol> <p>
Notably absent is anything related to actually  <span class="underline">sending</span> messages.
</p>

 <p>
This is almost intentional.
As originally designed, gnupg can be used with any communication tool available.
Well, any too which will not mangle plain text messages too much.
</p>

 <p>
For example, you can use it with Telegram or Whatsapp.
How?
</p>

 <ol class="org-ol"> <li>Find (somehow) out which key corresponds to your recipient,</li>
 <li>Write your message in Notepad,</li>
 <li>Encrypt it with recipient’s key,</li>
 <li>Sign with your own key,</li>
 <li>Copy the resulting text to clipboard,</li>
 <li>Paste in the Telegram chat box on Telegram’s website,</li>
 <li>Wait for the recipient to verify, decrypt, read.</li>
</ol> <p>
Of course, no normal person will be doing something like that except spies and
secret agents.
This is super incovenenient.
On the other hand it is this plain-text-based architecture which allows GnuPG to be integrated with many chat systems relatively easily.
</p>

 <p>
But “allows” does not mean “integrated”.
In fact, the only two systems with which it is actually “integrated” at least to some extent are Email and XMPP.
Moreover, XMPP does not “actually” need to use GnuPG, because XMPP is a  <span class="underline">synchronous</span> communication system, and hence allows more operations than Email.
Which means that Email is your main encrypted communication method.
</p>

 <p>
Many people would tell me “but Email is very inconvenient!”.
</p>

 <p>
Alas, you are right.
At present, in 2025, Email is not convenient.
It is much better than it used to be in 2005, but it is still not supporting many things considered natural in 2025.
</p>

 <p>
On the other hand, even now there is a way to use GMail with GnuPG fairly easily, with a tool called “Mailvelope”.
Moreover, other programs and service providers are improving their support for GnuPG, slowly but surely.
</p>

 <p>
Yours truly has an unfinished HOWTO on setting up your own Email system:  <a href="https://lockywolf.net/2024-10-06_moving-from-opensmtpd-to-postfix.org.d/index.html">https://lockywolf.net/2024-10-06_moving-from-opensmtpd-to-postfix.org.d/index.html</a>
(Despite the title, it is not only about  <b>postfix</b>.)
</p>

 <p>
There is a tool called  <b>Delta Chat</b>, which tries to make Email as convenient as Whatsapp/Telegram.
Not everything is lost.
</p>

 <p>
In this HOWTO I will mostly use the console-based email client  <b>mu</b> and its GUI  <b>mu4e</b>, with some attention to  <b>GMail</b>.
</p>
</div>
</section> <section id="outline-container-Notes" class="outline-2"> <h2 id="Notes"> <span class="section-number-2">2.</span>  <a href="#Notes">Notes</a></h2>
 <div class="outline-text-2" id="text-Notes">
</div>

 <div id="outline-container-Gnupg-is-very-stateful." class="outline-3">
 <h3 id="Gnupg-is-very-stateful."> <span class="section-number-3">2.1.</span>  <a href="#Gnupg-is-very-stateful.">Gnupg is very stateful.</a></h3>
 <div class="outline-text-3" id="text-Gnupg-is-very-stateful.">
 <p>
It heavily depends on the gnupg directory, where it keeps the address book.
</p>
</div>
</div>

 <div id="outline-container-Gnupg-is-_very_-picky-about-options,-parameters,-whatever-it-has." class="outline-3">
 <h3 id="Gnupg-is-_very_-picky-about-options,-parameters,-whatever-it-has."> <span class="section-number-3">2.2.</span>  <a href="#Gnupg-is-_very_-picky-about-options,-parameters,-whatever-it-has.">Gnupg is  <span class="underline">very</span> picky about options, parameters, whatever it has.</a></h3>
 <div class="outline-text-3" id="text-Gnupg-is-_very_-picky-about-options,-parameters,-whatever-it-has.">
 <p>
Example:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">gpg2 --yes  --batch --trust-model always --armor --recipient  <span style="font-style: italic;">'security@slackware.com'</span>
</pre>
</div>

 <p>
The  <code>--yes  --batch --trust-model always</code> is needed for demo purposes, so that no questions are asked.
 <code>--armor</code> is needed, because output is normally binary, and we need to encode it.
</p>
</div>
</div>

 <div id="outline-container-Address-book-is-_very_-important-for-gnupg." class="outline-3">
 <h3 id="Address-book-is-_very_-important-for-gnupg."> <span class="section-number-3">2.3.</span>  <a href="#Address-book-is-_very_-important-for-gnupg.">Address book is  <span class="underline">very</span> important for gnupg.</a></h3>
 <div class="outline-text-3" id="text-Address-book-is-_very_-important-for-gnupg.">
 <p>
As opposed to whatever you might read in the manuals, cryptography is not really about algorithms as it is about people.
</p>

 <p>
When working with gnupg, you will be dealing with people  <span class="underline">all the time</span>, looking at them, trusting or dis-trusing them, looking at their connections, et cetera.
</p>
</div>
</div>

 <div id="outline-container-Keys-are-identified-by-fingerprints." class="outline-3">
 <h3 id="Keys-are-identified-by-fingerprints."> <span class="section-number-3">2.4.</span>  <a href="#Keys-are-identified-by-fingerprints.">Keys are identified by fingerprints.</a></h3>
 <div class="outline-text-3" id="text-Keys-are-identified-by-fingerprints.">
 <p>
Keys themselves are huge (4096 bytes are, like 2 pages of text), you don’t want to manage them yourself.
But each of them has a fingerprint, which is used to identify it more or less uniquely.
</p>
</div>
</div>

 <div id="outline-container-Key-ID-is-the-last-16-numbers-of-a-fingerprint." class="outline-3">
 <h3 id="Key-ID-is-the-last-16-numbers-of-a-fingerprint."> <span class="section-number-3">2.5.</span>  <a href="#Key-ID-is-the-last-16-numbers-of-a-fingerprint.">Key-ID is the last 16 numbers of a fingerprint.</a></h3>
 <div class="outline-text-3" id="text-Key-ID-is-the-last-16-numbers-of-a-fingerprint.">
 <p>
It is not documented anywhere, but now I am telling you.
</p>

 <ol class="org-ol"> <li>’6A4463C040102233’ is the Key-ID for Slackware Linux.</li>
 <li>’0368EF579C7BA3B6’ is the Key-ID for SlackBuilds Project.</li>
</ol> <div class="org-src-container">
 <pre class="src src-shell">gpg2 --no-verbose -q --recv-keys  <span style="font-style: italic;">'6A4463C040102233'</span>  2>&1
 <span style="font-weight: bold;">echo</span>
gpg2 --no-verbose -q --recv-keys  <span style="font-style: italic;">'0368EF579C7BA3B6'</span>  2>&1
</pre>
</div>

 <pre class="example" id="org9fa5adc">
gpg: enabled debug flags: memstat
gpg: data source: http://pgp.surf.nl:11371
gpg: armor header: Comment: Hostname: pgp.surf.nl
gpg: armor header: Version: Hockeypuck 2.1.2
gpg: key 6A4463C040102233: number of dropped non-self-signatures: 231
gpg: pub  dsa1024/6A4463C040102233 2003-02-26  Slackware Linux Project <security@slackware.com>
gpg: removing signature from key 6A4463C040102233 on user ID "Slackware Linux Project <security@slackware.com>": signature superseded
gpg: removing signature from key 6A4463C040102233 on user ID "Slackware Linux Project <security@slackware.com>": signature superseded
gpg: key 6A4463C040102233: 1 duplicate signature removed
gpg: key 6A4463C040102233: "Slackware Linux Project <security@slackware.com>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg: keydb: handles=2 locks=1 parse=0 get=2
gpg:        build=0 update=0 insert=0 delete=0
gpg:        reset=0 found=2 not=0 cache=0 not=0
gpg: kid_not_found_cache: count=0 peak=0 flushes=0
gpg: sig_cache: total=20 cached=14 good=14 bad=0
gpg: random usage: poolsize=600 mixed=0 polls=0/0 added=0/0
              outmix=0 getlvl1=0/0 getlvl2=0/0
gpg: rndjent stat: collector=0x0000000000000000 calls=0 bytes=0
gpg: secmem usage: 0/32768 bytes in 0 blocks

gpg: enabled debug flags: memstat
gpg: data source: http://pgp.surf.nl:11371
gpg: armor header: Comment: Hostname: pgp.surf.nl
gpg: armor header: Version: Hockeypuck 2.1.2
gpg: key 0368EF579C7BA3B6: number of dropped non-self-signatures: 14
gpg: pub  dsa1024/0368EF579C7BA3B6 2007-01-27  SlackBuilds.org Development Team <slackbuilds-devel@slackbuilds.org>
gpg: key 0368EF579C7BA3B6: "SlackBuilds.org Development Team <slackbuilds-devel@slackbuilds.org>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg: keydb: handles=2 locks=1 parse=0 get=2
gpg:        build=0 update=0 insert=0 delete=0
gpg:        reset=0 found=2 not=0 cache=0 not=0
gpg: kid_not_found_cache: count=0 peak=0 flushes=0
gpg: sig_cache: total=9 cached=7 good=7 bad=0
gpg: random usage: poolsize=600 mixed=0 polls=0/0 added=0/0
              outmix=0 getlvl1=0/0 getlvl2=0/0
gpg: rndjent stat: collector=0x0000000000000000 calls=0 bytes=0
gpg: secmem usage: 0/32768 bytes in 0 blocks
</pre>
</div>
</div>

 <div id="outline-container-GnuPG-does-_not_-preserve-message-length." class="outline-3">
 <h3 id="GnuPG-does-_not_-preserve-message-length."> <span class="section-number-3">2.6.</span>  <a href="#GnuPG-does-_not_-preserve-message-length.">GnuPG does  <span class="underline">not</span> preserve message length.</a></h3>
 <div class="outline-text-3" id="text-GnuPG-does-_not_-preserve-message-length.">
 <p>
This is  <span class="underline">not</span> obvious, but this is true.
</p>

 <div class="org-src-container">
 <label class="org-src-name"> <span class="listing-number">Listing 1: </span>“Cleartext 001”</label> <pre class="src src-text" id="orgbd642c5">Test message 0003 +++.
</pre>
</div>

 <p>
Encrypt with one key:
</p>

 <ol class="org-ol"> <li>Slackware Linux Project <security@slackware.com> (not certified, OpenPGP, created: 27/02/2003)</li>
</ol> <div class="org-src-container">
 <label class="org-src-name"> <span class="listing-number">Listing 2: </span>“Ciphertext Generator 001”</label> <pre class="src src-shell" id="orgc7bd841">gpg2 --yes  --batch  --armor --trust-model always --no-default-recipient --recipient  <span style="font-style: italic;">'security@slackware.com'</span>  --encrypt
</pre>
</div>

 <pre class="example" id="orgc6e8ff7">
-----BEGIN PGP MESSAGE-----

hQEOA3aHN/lOUjVpEAP+MVRuiao2dEXiOyLOiuMnFaa1eDt5PcSfSCHid5Kxy3Vb
hQbqymL2so7FSonDhE/nJMcxO4lYlg3GZJnlbRH/vioHw14hTQFavTUZW8jyW3uG
pJjY2y51UNeRxumoAPgGTN0x37trp252wF6fc5ZMyjgcbRb8FWqXcmBn3smFx7QE
AJWgtkSDj048l0Rc8jOcynJfBB6ecDCRiC4RAReT1B+sjeVonaCvY7tYXBWlPVzR
pkebg1lX/eUCKZSaXqYhpvgKZ/9S2MVX6E4ROLmIb+Wda8/2PSzfR8WxzZkkKo4M
JvKnngCHBQnt40woK2vTB48r7p3l1hqNOCPaReX8Cosn0jsBs5INedzWQkGNf7AX
+xvsNsNaMgJh1+m8X5hQ/pUmjsN+gDVwE2kKm01oPM2bULcj2/0npilIY0Nhew==
=SK2i
-----END PGP MESSAGE-----
</pre>


 <p>
There is an empty line at the top, but not at the bottom? WTF?
</p>

 <div class="org-src-container">
 <pre class="src src-shell" id="orgc749faa">wc -c <<EOF <span style="font-weight: bold;">
<<cleartext_001>>
EOF

wc -c <<EOF
<<ciphertext_001()>>
EOF</span>
</pre>
</div>

 <pre class="example" id="org430683d">
23
517
</pre>

 <p>
Size  <span class="underline">hugely</span> differs!
</p>
</div>
</div>

 <div id="outline-container-GnuPG-encrypts-the-same-cleartext-_DIFFERENTLY-EACH-TIME_" class="outline-3">
 <h3 id="GnuPG-encrypts-the-same-cleartext-_DIFFERENTLY-EACH-TIME_"> <span class="section-number-3">2.7.</span>  <a href="#GnuPG-encrypts-the-same-cleartext-_DIFFERENTLY-EACH-TIME_">GnuPG encrypts the same cleartext  <span class="underline">DIFFERENTLY EACH TIME</span></a></h3>
 <div class="outline-text-3" id="text-GnuPG-encrypts-the-same-cleartext-_DIFFERENTLY-EACH-TIME_">
 <p>
HUGELY UNOBVIOUS
</p>

 <p>
The following example has the same cleartext, but the cipertext will be different.
</p>

 <div class="org-src-container">
 <pre class="src src-shell" id="orgbbccf94">sleep 1;  gpg2 --yes  --batch  --armor --trust-model always --recipient  <span style="font-style: italic;">'security@slackware.com'</span> --encrypt
</pre>
</div>

 <pre class="example" id="orgef8cea1">
-----BEGIN PGP MESSAGE-----

hQEOA3aHN/lOUjVpEAP/RUxAlhkW8PrJ4ULAeM9Po9x9vQtKUfdpbktt7Fd5CvQx
1PpXNLSPQcu3RmMWExlSOdAc89u4oeJsleR18jQuwUTfuqC5k/zzbsxHitEeoWSW
NVL2g+g0qeh20XOPe/otVPA4Ho/NjX4WwNy9NVgZzMPw90R4/cAhCcikvPHzEhEE
AL1cKFklENuPegkFmIe+3FifaokEAe8t2Mkk9jd5uBMVaTmnlXzjhloXopscpCsD
yKAcEdfsP2rvvIXhssxAvPAqauWyYpgULe64AdxeniutjyTyRQxvExmWw1HQRmZZ
XEgptlTFpL53ZHOvoaN9TxfqGP5BP8ylDZdplxBUCVZw0lIB48yndY7xChfeebbB
ed1Nmtd9TI5KOZHUz018M/+adXzu8agHHRoxmI1rwMi8akzPVLl36af1DN3lzfCT
6RF17GXgpewPHqbiK6miiB/7AaSb
=nbTL
-----END PGP MESSAGE-----
</pre>

 <div class="org-src-container">
 <pre class="src src-shell">diff --report-identical-files --side-by-side <(cat <<EOF <span style="font-weight: bold;">
<<ciphertext_001()>>
EOF
)  <(cat <<EOF
<<ciphertext_002()>>
EOF
)
exit 0</span>
</pre>
</div>

 <pre class="example" id="orgc95554a">
-----BEGIN PGP MESSAGE-----					-----BEGIN PGP MESSAGE-----

hQEOA3aHN/lOUjVpEAP/d9lUngV9EVFh9yGRmijaY0xgbiRxC96FVw11yosiO |	hQEOA3aHN/lOUjVpEAQAkzjNExyYNSqrM152b7npJzo20WXbBKDYEZ8kvoBwu
+LUFcJoKVl7at+OA7YFQepNoGlrjaMmM64+1mPZjpVau6ydfSHPR41TOPoJVV |	jmoaiJmFPLU2krlDzT8tr5nrNYU9TXM2wx0A1geM59Xp6T7HzSVjlehaGLTga
8dG2eM+cBY+disXlYHHD6KX9R1hzKa0bhrzwmbqbRLxRTitb7Z9MurUJcXVDj |	0bo6L7/m3guF86kd7+NTsbLeogQ6Ra6ckOLrtW5wbR25kfEub2QkA6tJli7E4
/2t0oSFJ5V4Btz7rUIHi8bwa9mlVeZgkwVIAnanvYGAgjaw0JJinqtyTe+Cb/ |	/iQe101Tuaq93roc2Ar1QijUSNEDZgv0m/7xQ6lWnT0APegGC843LPiIhXfEe
k1bjgfPVhKmztr3msZrOy8xUJlFekZVW5KNGD4vgwTZSqEW37Q0bQ3MYiR4sI |	ozGi23quj3oNJpHSMeQvzxGw5+K+CkRuWnqT43nfpGOVMAsfed/DRbVjQuQs5
RB2XZHoXijDzJNHRx+tfCk5nhZ9zLgfWkDOQxneSF+MB0lIBbNw6fp9QcTZSb |	vjoMG+Sw8md35lsvWsTv+dErBv/UtldMwxLNzTXX+Vwi0lIBo32DixsV7wx4f
RC1orzZAABW5rzzwLpipT7uQ5ISGGxtBtZhFr6uZX8GHl8Gqk0pLpMEQkbBP4 |	B/Rj7VoWYsOgLLR0xXO48L7eQVWgYy3sOygBZwgcfDs3a1ihIlrBYXqMre55F
n1BWvFbe2G7t/9PRyCLAbiqnVHDm				      |	a7W3U2gV4YnjS8CTaOjzB09ZCsAw
=Cjf8							      |	=iXjK
-----END PGP MESSAGE-----					-----END PGP MESSAGE-----

</pre>

 <p>
They are similar up to the character 18, but not further.
</p>
</div>
</div>

 <div id="outline-container-GnuPG-by-default-also-includes-metadata.-(HUGELY-unclear)" class="outline-3">
 <h3 id="GnuPG-by-default-also-includes-metadata.-(HUGELY-unclear)"> <span class="section-number-3">2.8.</span>  <a href="#GnuPG-by-default-also-includes-metadata.-(HUGELY-unclear)">GnuPG by default also includes metadata. (HUGELY unclear)</a></h3>
 <div class="outline-text-3" id="text-GnuPG-by-default-also-includes-metadata.-(HUGELY-unclear)">
 <div class="org-src-container">
 <pre class="src src-shell" id="orgf1aea7b"> <span style="font-weight: bold;">read</span> -d  <span style="font-style: italic;">''</span> cleartext
diff -y  <span style="font-style: italic;">\</span>
<(printf  <span style="font-style: italic;">"%s"</span>  <span style="font-style: italic;">"$cleartext"</span> | gpg2 --yes  --batch  --armor --trust-model always --hidden-recipient  <span style="font-style: italic;">'security@slackware.com'</span> --encrypt)  <span style="font-style: italic;">\</span>
<(printf  <span style="font-style: italic;">"%s"</span>  <span style="font-style: italic;">"$cleartext"</span> | gpg2 --yes  --batch  --armor --trust-model always --recipient  <span style="font-style: italic;">'security@slackware.com'</span> --encrypt)
printf  <span style="font-style: italic;">"\nVisible recpipent\n"</span>
printf  <span style="font-style: italic;">"%s"</span>  <span style="font-style: italic;">"$cleartext"</span> | gpg2 --yes  --batch  --armor --trust-model always --no-default-recipient --recipient  <span style="font-style: italic;">'security@slackware.com'</span> --encrypt | gpg2 --pinentry-mode cancel --list-packets 2>&1 | grep -F  <span style="font-style: italic;">'encrypted with'</span>
printf  <span style="font-style: italic;">"\nHidden recpipent\n"</span>
printf  <span style="font-style: italic;">"%s"</span>  <span style="font-style: italic;">"$cleartext"</span> | gpg2 --yes  --batch  --armor --trust-model always --no-default-recipient --hidden-recipient  <span style="font-style: italic;">'security@slackware.com'</span> --encrypt | gpg2 --pinentry-mode cancel --list-packets 2>&1 | grep -F  <span style="font-style: italic;">'encrypted with'</span>
</pre>
</div>

 <pre class="example" id="org908513e">
-----BEGIN PGP MESSAGE-----					-----BEGIN PGP MESSAGE-----

hQEOAwAAAAAAAAAAEAQAx07fFUO7g5qBUJthUCyfa3L1PguSLxGAe8AlBhZbe |	hQEOA3aHN/lOUjVpEAP8COSescSPFwZHrmYNyMy6XjIa8vN0bbBj50QzhWGLC
PqQ6E8/sTFwd2ix6elUPolsJ9fFQ7rU0x11rBJHH7i6uBDWzasdkp8Rn3w/Ss |	OtBLMcGjitCrwRiiEsDvb70YkC1W4ujv9PcKnMPlk/GZeuCiJqXXivMaNvRV1
NL77DExogIFe9HqMzJzsELiheYMVN76XAlkr7kCS7H2Fd7TqC4ZXqlo9Eg+r4 |	okIFYgvy845eZ1VV//CJXTDTUm7YKbxisRptAWJISb1QydiuYrmh0BEs2cUgH
ALPL/30E+GXF+poTXOCXI95cdgHGiRWZyxQWFQeduiHKNOkBfe53YPCwO7yHl |	/2Qr9kqo0iBrGF8TUGZKK0rbiAQSis1yC/dGNfCkI/nmcHWzeEE/fsOg+IZaJ
NS/wDQH9lE3zta+9uYYG2U3/ktjRye2JOQ92tPC5TjXpq9fKA9+PbWP5K4KoL |	NGWPi4H8AKvvStJrvnNctvFd5eRkDihzNWjbN15QQhCz/3qY12GxRxhTuYv9+
c7bqUM16d5FQlFSH/yimAGb9gRMQFE8SpawSv92XrY1P0lEBBsZ8z9ZtsigbZ |	X35LzHc72yVt3Yu74XgK8QZZP4vwsE6Lapm6yEmJX1Ex0lEBXvvffz3N433Hc
gM129ABQc1gHRzspmm4LCbFzJdLgpq5sXZ5UygZcRfD3wmdgmeuJB6xylbe7r |	w2aTs6+cYiQHMCX6DaFACpNuIj9CGNSJ3/Yyw56vCpMYG5aHVs6gH1lHFokla
803nE4RSPuR52I8B+UZMh+2F240=				      |	77J8ny9fW1MkOyi7MxdZone667k=
=iREK							      |	=xg18
-----END PGP MESSAGE-----					-----END PGP MESSAGE-----

Visible recpipent
gpg: encrypted with 1024-bit ELG key, ID 768737F94E523569, created 2003-02-26

Hidden recpipent
gpg: encrypted with ELG key, ID 0000000000000000
</pre>

 <p>
HIDING RECIPIENT IS NOT (!!!) THE DEFAULT SETTING.
The interceptor  <span class="underline">WILL KNOW</span> who you are writing to by default.
</p>
</div>
</div>

 <div id="outline-container-Different-recipients" class="outline-3">
 <h3 id="Different-recipients"> <span class="section-number-3">2.9.</span>  <a href="#Different-recipients">Different recipients</a></h3>
 <div class="outline-text-3" id="text-Different-recipients">
 <p>
Now try with different recipients:
</p>

 <ol class="org-ol"> <li>Slackware Linux Project <security@slackware.com> (not certified, OpenPGP, created: 27/02/2003)</li>
 <li>SlackBuilds.org Development Team <slackbuilds-devel@slackbuilds.org> (not certified, OpenPGP, created: 28/01/2007)</li>
</ol> <div class="org-src-container">
 <pre class="src src-shell" id="org98c8554">    <span style="font-weight: bold;">read</span> -d  <span style="font-style: italic;">''</span> cleartext
   diff -y  <span style="font-style: italic;">\</span>
  <(printf  <span style="font-style: italic;">"%s"</span>  <span style="font-style: italic;">"$cleartext"</span> | gpg2 --yes  --batch  --armor --trust-model always --recipient  <span style="font-style: italic;">'security@slackware.com'</span> --encrypt)  <span style="font-style: italic;">\</span>
  <(printf  <span style="font-style: italic;">"%s"</span>  <span style="font-style: italic;">"$cleartext"</span> | gpg2 --yes  --batch  --armor --trust-model always --recipient  <span style="font-style: italic;">'security@slackware.com'</span> --recipient  <span style="font-style: italic;">'slackbuilds-devel@slackbuilds.org'</span> --encrypt)
printf  <span style="font-style: italic;">"%s"</span>  <span style="font-style: italic;">"$cleartext"</span> | gpg2 --yes  --batch  --armor --trust-model always --recipient  <span style="font-style: italic;">'security@slackware.com'</span> --encrypt | wc -c
printf  <span style="font-style: italic;">"%s"</span>  <span style="font-style: italic;">"$cleartext"</span> | gpg2 --yes  --batch  --armor --trust-model always --recipient  <span style="font-style: italic;">'slackbuilds-devel@slackbuilds.org'</span> --encrypt | wc -c
printf  <span style="font-style: italic;">"%s"</span>  <span style="font-style: italic;">"$cleartext"</span> | gpg2 --yes  --batch  --armor --trust-model always --recipient  <span style="font-style: italic;">'security@slackware.com'</span> --recipient  <span style="font-style: italic;">'slackbuilds-devel@slackbuilds.org'</span> --encrypt | wc -c
printf  <span style="font-style: italic;">"\nAlso metadata for multiple recipients:\n"</span>
printf  <span style="font-style: italic;">"%s"</span>  <span style="font-style: italic;">"$cleartext"</span> | gpg2 --yes  --batch  --armor --trust-model always --recipient  <span style="font-style: italic;">'security@slackware.com'</span> --recipient  <span style="font-style: italic;">'slackbuilds-devel@slackbuilds.org'</span> --encrypt | gpg2 --list-packets 2>&1 | grep -F  <span style="font-style: italic;">'encrypted with'</span>
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-text">-----BEGIN PGP MESSAGE-----                                     -----BEGIN PGP MESSAGE-----

hQEOA3aHN/lOUjVpEAQAwSYL8+1VxzbgDuH4O+3APLww1/YRPwVT1fMwcJaJn | hQEOA3aHN/lOUjVpEAP+NOgmHMV3+7lJNqBPzau3Jk36HQAMTToo8UUaEoIsK
ATZQzEGEPhG30ffWXPhC+fYHIbVLo0dEtkD+2K8Q1YYpvLWf8gRJPs5aFal3G | neHzSnrQruLmfQDKDrcx3L7gA40ML7V4lYJ8Gr+xBKgkInk5veHyEQEO28cct
JB8DDO0otSLFpBa4qIkKBajwwxnQy5lsyz5+nHhynWsAqgYGbjpXuryPnAKvY | WVrde9CaRQAU7rQLrx+yBclHTtjFo5Zz0bkk6G5kbAtb9GVdV2M2LYNHElzdt
+waeFOL4gykwxQrcJMk5bcsTntXErVRR+lDFhklv0d3/M62hbG3RyvL4yq/Ir | AMnS0UDUSc6OiJXJFvc2wTeUmBIW4zaWDDHfPbZ9HOMK4FlDnLwZ8E5q3QA5c
HdjAlcrGyUnKN7f/sFjZghRCRV7B/GugruC5vD45Nc030De5o1yKK30uSqQ85 | AYGs2qba/FhCddbJlQkrppxijR/KW6OB2He6QqlpIT5rMtTmff9SumPetztJx
8iqfThVldyWiYJl+iyIwFikhv3VSKXIoMBJRDzqLR5qE0jsBmnKyfX+iOOYS5 | NTUO2unAEfl2sR4qD2hdgMxKo7PLM37PuUyBgn+Yx7Q3hQIOA5HkZF/FddSbE
+u6WQqtxwsYoRFM11AwgaWN7cpnWkIlSFgyPxa6xN3zt3q4x8nZPmNNeHIhKd | XiVVNr6L5j1+Zo7HaBjh6RYAJ2Cx6zzFsP0dVyrZ3Z+2U600nE7Ttt2Bkwgjf
=8HI6                                                         | 8QNDglJewjR4nd0LKg7A55lVNpGWM4l7tZ54WPagn8UOJtFgxNVliupjH5G3Y
                                                              > qrFmOGxoQoIuwPKQsZm5gekFXJraHLuOWKjH4+I5FeeJErnkJGKu3m2Ay+Jo+
                                                              > 2gi81VmAYwfpJmXlankXkATAFRMk/i9mfkQPFkrE+VVei/vyxT99alInghOQm
                                                              > lW+1CaJwhsrWLx6qXTceAe5aNE9d3XPfDu90pEHxENWkQGffuK4BQyYGy8l7X
                                                              > Kx8fS25cS22vsriYpV6hxAf/arg5Qv7Hy6GCh9y+bNBfzGX214Jh8yjVLUtu/
                                                              > 6Ivh/NvOjpf5QVlebmsur36KxZy/n/y/OQkjTslB47gdm5twdzty81O3wYUNO
                                                              > YzhOCzCldClUTVygU89ekB3BvRzi17lVoNOstIz6CGVSPIEUWiYpHOwNdjBoo
                                                              > mftI6SVxFYiJPeiVCL3mweE/YKx9zyVhJYKHSz4L2fKfDF5vLTymsV0zyCsUG
                                                              > 6azAXXn3O4LsAofz+sjPJvbN3vzk0PSOYAtYSdyJOUIFt9Q/Xu7xuwr8hX4a5
                                                              > uYPRymgFNtbmNAxrgQD/NoYJvYd0CEpebv91NBaYrae9SNI7AbhlkXwc12bcF
                                                              > uMq1d1MhktDJrt7zC5Cd0ATLEJ4JfUFsznudgaUEafAHrltnMSS9jYoKhynzf
                                                              > =yTHX
-----END PGP MESSAGE-----                                       -----END PGP MESSAGE-----
516
862
1231

Also metadata for multiple recipients:
gpg: encrypted with 2048-bit ELG key, ID 0x91E4645FC575D49B, created 2007-01-27
gpg: encrypted with 1024-bit ELG key, ID 0x768737F94E523569, created 2003-02-26
</pre>
</div>

 <p>
Two-recipient message is  <span class="underline">NOT</span> two ciphertexts concatenated.
Why?
</p>
</div>
</div>


 <div id="outline-container-trust-level" class="outline-3">
 <h3 id="trust-level"> <span class="section-number-3">2.10.</span>  <a href="#trust-level">trust level</a></h3>
 <div class="outline-text-3" id="text-trust-level">
 <p>
 <code>sig {,1,2,3}</code> is trust level:
</p>

 <div class="org-src-container">
 <label class="org-src-name"> <span class="listing-number">Listing 3: </span>“People do trust the SlackBuilds team to verify other keys.”</label> <pre class="src src-shell">gpg2 --list-sigs  <span style="font-style: italic;">'slackbuilds-devel@slackbuilds.org'</span>
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-text">pub   dsa1024/0x0368EF579C7BA3B6 2007-01-27 [SC]
      Key fingerprint = D307 6BC3 E783 EE74 7F09  B8B7 0368 EF57 9C7B A3B6
      Keygrip = F9231F44B9E53FAC422A0B8D69FAC7D94F824BB1
uid                   [ unknown] SlackBuilds.org Development Team  <a href="mailto:slackbuilds-devel%40slackbuilds.org"><slackbuilds-devel@slackbuilds.org></a>
sig          0xF1D5979976B20C2C 2007-01-27  [User ID not found]
sig          0x5E56AAAFA75CBDA0 2007-01-27  Eric Hameleers  <a href="mailto:alien%40slackware.com"><alien@slackware.com></a>
sig          0x57DB2CB7EABADD7B 2007-01-27  [User ID not found]
sig 3        0xED03EF40D0E52F04 2007-01-27  [User ID not found]
sig 3        0x8D01BA7CBD9A880E 2007-01-27  [User ID not found]
sig 3        0x0368EF579C7BA3B6 2007-01-27  SlackBuilds.org Development Team  <a href="mailto:slackbuilds-devel%40slackbuilds.org"><slackbuilds-devel@slackbuilds.org></a>
sig          0x151BC8BDF48D71EA 2007-02-08  [User ID not found]
sig          0xB44A343FA8F23B66 2008-11-22  [User ID not found]
sig          0x72C395892C5402BF 2009-01-05  [User ID not found]
sig          0x6A4463C040102233 2013-03-12  Slackware Linux Project  <a href="mailto:security%40slackware.com"><security@slackware.com></a>
sig          0xE8D8E103E906E998 2017-04-06  [User ID not found]
sig          0x883EC63B769EE011 2016-11-10  [User ID not found]
sig       X  0x78C2DF2D1A170CC6 2016-07-12  [User ID not found]
sub   elg2048/0x91E4645FC575D49B 2007-01-27 [E]
      Key fingerprint = 2415 DC27 B7A0 F5D6 5806  E4C4 91E4 645F C575 D49B
      Keygrip = A67D366751302FE14888E348BB2634D409EC71F4
sig          0x0368EF579C7BA3B6 2007-01-27  SlackBuilds.org Development Team  <a href="mailto:slackbuilds-devel%40slackbuilds.org"><slackbuilds-devel@slackbuilds.org></a>

</pre>
</div>
</div>
</div>

 <div id="outline-container-Importing-a-key-to-Emacs" class="outline-3">
 <h3 id="Importing-a-key-to-Emacs"> <span class="section-number-3">2.11.</span>  <a href="#Importing-a-key-to-Emacs">Importing a key to Emacs</a></h3>
 <div class="outline-text-3" id="text-Importing-a-key-to-Emacs">
 <p>
 <a href="https://rollenspiel.social/@ArneBab/110294093784538500">https://rollenspiel.social/@ArneBab/110294093784538500</a>
</p>

 <blockquote>
 <p>
C-s key
tab
C-space
C-<arrow-down>
M-x epa-import-keys-region
</p>

 <p>
PGP with mu4e just works.
</p>

 <p>
Sadly it’s not the case for every GnuPG client.
</p>
</blockquote>
</div>
</div>

 <div id="outline-container-What-are-you-defending-against?-How-do-you-find-out-that-enemies-don't-send-emails-in-your-name?" class="outline-3">
 <h3 id="What-are-you-defending-against?-How-do-you-find-out-that-enemies-don't-send-emails-in-your-name?"> <span class="section-number-3">2.12.</span>  <a href="#What-are-you-defending-against?-How-do-you-find-out-that-enemies-don't-send-emails-in-your-name?">What are you defending against? How do you find out that enemies don’t send emails in your name?</a></h3>
 <div class="outline-text-3" id="text-What-are-you-defending-against?-How-do-you-find-out-that-enemies-don't-send-emails-in-your-name?">
 <p>
You don’t!
</p>

 <p>
Enemies  <span class="underline">MAY</span> send emails pretending to be your.name@gmail.com, and you cannot do anything against it, if your friends don’t verify signatures.
(And they do not.)
</p>
</div>
</div>

 <div id="outline-container-How-do-you-prevent-people-from-publicly-disclosing-that-they-know-you-by-signing-your-key-and-uploading-it-to-a-keyserver?" class="outline-3">
 <h3 id="How-do-you-prevent-people-from-publicly-disclosing-that-they-know-you-by-signing-your-key-and-uploading-it-to-a-keyserver?"> <span class="section-number-3">2.13.</span>  <a href="#How-do-you-prevent-people-from-publicly-disclosing-that-they-know-you-by-signing-your-key-and-uploading-it-to-a-keyserver?">How do you prevent people from publicly disclosing that they know you by signing your key and uploading it to a keyserver?</a></h3>
 <div class="outline-text-3" id="text-How-do-you-prevent-people-from-publicly-disclosing-that-they-know-you-by-signing-your-key-and-uploading-it-to-a-keyserver?">
 <p>
You can’t!
</p>

 <p>
Moreover, a terrorist can ceritify your key and upload it to the server, and somebody can claim that you talked to a terrorist!
</p>

 <p>
So, the protection against this is  <span class="underline">only</span> social.
You MUST memorise the phrase “anybody can certify my key and upload it to the server”.
</p>

 <p>
Moreover, most people keep their contacts in Google Contacts anyway, so Google does know who you know.
Also, most people won’t bother uploading your key anywhere.
</p>
</div>
</div>

 <div id="outline-container-How-do-you-verify-messages-in-console-mu?" class="outline-3">
 <h3 id="How-do-you-verify-messages-in-console-mu?"> <span class="section-number-3">2.14.</span>  <a href="#How-do-you-verify-messages-in-console-mu?">How do you verify messages in console mu?</a></h3>
 <div class="outline-text-3" id="text-How-do-you-verify-messages-in-console-mu?">
 <p>
The command below should work if you have at least one signed message.
</p>

 <p>
Depending on your settings ( <code>auto-key-locate mechanisms</code>,  <code>auto-key-import</code>, and  <code>auto-key-retrieve</code>), it will either verify the signature as true or fake, or complain that it has no key.
</p>

 <div class="org-src-container">
 <pre class="src src-shell">mu verify --verbose  <span style="font-style: italic;">"$(mu find -f l flag:signed   | tail -n 1)"</span>
</pre>
</div>
</div>
</div>

 <div id="outline-container-What-are-(~auto-key-locate-mechanisms~,-~auto-key-import~,-and-~auto-key-retrieve~)?" class="outline-3">
 <h3 id="What-are-(~auto-key-locate-mechanisms~,-~auto-key-import~,-and-~auto-key-retrieve~)?"> <span class="section-number-3">2.15.</span>  <a href="#What-are-(~auto-key-locate-mechanisms~,-~auto-key-import~,-and-~auto-key-retrieve~)?">What are ( <code>auto-key-locate mechanisms</code>,  <code>auto-key-import</code>, and  <code>auto-key-retrieve</code>)?</a></h3>
 <div class="outline-text-3" id="text-What-are-(~auto-key-locate-mechanisms~,-~auto-key-import~,-and-~auto-key-retrieve~)?">
 <p>
This is very confusing.
</p>

 <p>
So,  <code>locate</code> is for  <span class="underline">encryption</span>, and on  <span class="underline">sending</span>.
</p>

 <p>
I suggest refraining from encryption until you are fully comfortable with signing, because you risk permanently losing your messages.
</p>

 <p>
If you are fine with using some centralised way to find your friend’s pubkey, you can set that  <code>locate</code> to some method, just make sure that you understand what it does.
</p>

 <p>
 <code>import</code> is for the cases when a key  <span class="underline">is</span> attached to the message (yes, you can do that, see  <code>--include-key-block</code>).
</p>

 <p>
 <code>retrieve</code> is for the cases when the key  <span class="underline">is not</span> attached to the message (yes, you can do that).
Then gnupg will look at the server for the available key.
</p>
</div>
</div>


 <div id="outline-container-How-do-I-verify-messages-in-mu4e?" class="outline-3">
 <h3 id="How-do-I-verify-messages-in-mu4e?"> <span class="section-number-3">2.16.</span>  <a href="#How-do-I-verify-messages-in-mu4e?">How do I verify messages in mu4e?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-verify-messages-in-mu4e?">
 <div class="org-src-container">
 <pre class="src src-elisp">( <span style="font-weight: bold;">setf</span> mm-verify-option 'always)
( <span style="font-weight: bold;">cl-pushnew</span>  <span style="font-style: italic;">"multipart/signed"</span> gnus-buttonized-mime-types)
</pre>
</div>

 <p>
For details, see  <a href="https://www.gnu.org/software/emacs/manual/html_mono/gnus.html#Security">gnus#Security</a>
</p>

 <p>
mm is the gnus message viewer, reused by mu4e
</p>
</div>
</div>

 <div id="outline-container-~mm-verify-option~-is-always-unsure-about-the-signature" class="outline-3">
 <h3 id="~mm-verify-option~-is-always-unsure-about-the-signature"> <span class="section-number-3">2.17.</span>  <a href="#~mm-verify-option~-is-always-unsure-about-the-signature"> <code>mm-verify-option</code> is always unsure about the signature</a></h3>
 <div class="outline-text-3" id="text-~mm-verify-option~-is-always-unsure-about-the-signature">
 <p>
Because you don’t have a key?
</p>

 <p>
You may want to set gnupg to fetch the key automatically (see above)  <a href="#What-are-(~auto-key-locate-mechanisms~,-~auto-key-import~,-and-~auto-key-retrieve~)?">2.15</a> .
</p>

 <p>
You may also want to import a key manually.
I have not yet found a way to do it with mm/gnus (probably there is a way), but you can use an improvised function.
</p>

 <div class="org-src-container">
 <label class="org-src-name"> <span class="listing-number">Listing 4: </span>“Imrovised function to lookup message keys.”</label> <pre class="src src-elisp" id="org22cdaa6">( <span style="font-weight: bold;">defun</span>  <span style="font-weight: bold;">mu4e-view-snarf-pgp-key</span> ( <span style="font-weight: bold; text-decoration: underline;">&optional</span> msg)
   <span style="font-style: italic;">"Snarf the pgp key for the specified message."</span>
  ( <span style="font-weight: bold;">interactive</span>)
  ( <span style="font-weight: bold;">let*</span> ((msg ( <span style="font-weight: bold;">or</span> msg (mu4e-message-at-point)))
          (path (mu4e-message-field msg  <span style="font-weight: bold;">:path</span>))
          (cmd (format  <span style="font-style: italic;">"%s verify --verbose %s"</span>
                 mu4e-mu-binary
                 (shell-quote-argument path)))
          (output (shell-command-to-string cmd)))
    (message  <span style="font-style: italic;">"mu4e-view-snarf-pgp-key"</span>  <span style="font-style: italic;">":msg="</span> msg  <span style="font-style: italic;">":path="</span> path  <span style="font-style: italic;">":cmd="</span> cmd  <span style="font-style: italic;">":output="</span> output)
    ( <span style="font-weight: bold;">let</span> ((case-fold-search nil)
          (index 0))
      ( <span style="font-weight: bold;">while</span> (string-match  <span style="font-style: italic;">"finger-print[[:space:]]*: </span> <span style="font-weight: bold; font-style: italic;">\\</span> <span style="font-weight: bold; font-style: italic;">(</span> <span style="font-style: italic;">[A-F0-9]+</span> <span style="font-weight: bold; font-style: italic;">\\</span> <span style="font-weight: bold; font-style: italic;">)</span> <span style="font-style: italic;">"</span> output index)
        ( <span style="font-weight: bold;">let*</span> ((cmd (format  <span style="font-style: italic;">"%s --recv %s"</span>
                            epg-gpg-program (match-string 1 output)))
               (output (shell-command-to-string cmd)))
          ( <span style="font-weight: bold;">setf</span> index (match-end 0))
          (message output))))))
</pre>
</div>
</div>
</div>

 <div id="outline-container-What-does-verification-actually-tell-you?-If-verification-fails,-what-does-it-mean?" class="outline-3">
 <h3 id="What-does-verification-actually-tell-you?-If-verification-fails,-what-does-it-mean?"> <span class="section-number-3">2.18.</span>  <a href="#What-does-verification-actually-tell-you?-If-verification-fails,-what-does-it-mean?">What does verification actually tell you? If verification fails, what does it mean?</a></h3>
 <div class="outline-text-3" id="text-What-does-verification-actually-tell-you?-If-verification-fails,-what-does-it-mean?">
 <p>
(Malory=active, Eve=passive/evesdropping)
</p>

 <p>
If an evil Malory steals your Friend’s key Gmail password, but not key password, they won’t send you a broken signature, they will just send you an unsigned message.
</p>

 <p>
Gmail works over TLS, so an evil Eve won’t be able to MITM with the message over Friend-Gmail link without the Friend noticing.
</p>

 <p>
If the Friend is stupid, they will neglect the TLS warning, and Malory may mangle the message, and the signature will be broken.
</p>

 <p>
Gmail might deliver your Friend’s message over unsafe link, or Malory might have cracked Gmail, and the signature will be broken.
</p>

 <p>
You are probably also not an idiot, and only connect to your mail server over TLS, so Eve cannot do anything, and you are also not an idiot and care about TLS warnings, so only if Malory has hacked LetsEncrypt or your server, the signature will be broken.
</p>

 <p>
So really the only place where the signature can be realistically broken without TLS being broken is between mail servers.
</p>

 <p>
This means that all of your email is probably garbage, and you need to call your friend and clarify what is going on, ideally via  <span class="underline">several</span> means.
(The best way is probably SIP operators from neutral countries, small enough so that nobody cares about them.)
</p>
</div>
</div>

 <div id="outline-container-How-do-I-sign-messages-by-default-in-mu?" class="outline-3">
 <h3 id="How-do-I-sign-messages-by-default-in-mu?"> <span class="section-number-3">2.19.</span>  <a href="#How-do-I-sign-messages-by-default-in-mu?">How do I sign messages by default in mu?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-sign-messages-by-default-in-mu?">
 <p>
You don’t, as mu itself does not send messages.
</p>
</div>
</div>

 <div id="outline-container-How-do-I-sign-messages-by-default-in-mu4e?" class="outline-3">
 <h3 id="How-do-I-sign-messages-by-default-in-mu4e?"> <span class="section-number-3">2.20.</span>  <a href="#How-do-I-sign-messages-by-default-in-mu4e?">How do I sign messages by default in mu4e?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-sign-messages-by-default-in-mu4e?">
 <div class="org-src-container">
 <pre class="src src-elisp"> <span style="font-weight: bold;">:hook</span>
(mu4e-compose-mode . ( <span style="font-weight: bold;">lambda</span> () (mml-secure-sign)))
 <span style="font-weight: bold;">:config</span>
( <span style="font-weight: bold;">setf</span> mm-sign-option 'guided)
</pre>
</div>

 <p>
This will add a marker which will tell mm/mml/gnus to sign automatically.
Delete it if you do not actually want to sign the message.
</p>

 <p>
If you  <span class="underline">do</span> want to sign the message, try sending it, and mm will ask you for the key.
</p>

 <p>
For me this signs with  <code>pgp/mime</code>, and I am fine with that.
</p>
</div>
</div>

 <div id="outline-container-How-do-I-use-Gnupg-with-Gmail?" class="outline-3">
 <h3 id="How-do-I-use-Gnupg-with-Gmail?"> <span class="section-number-3">2.21.</span>  <a href="#How-do-I-use-Gnupg-with-Gmail?">How do I use Gnupg with Gmail?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-use-Gnupg-with-Gmail?">
 <p>
There is (2024) an extension called “Mailvelope” ( <a href="https://www.mailvelope.com/">https://www.mailvelope.com/</a>).
It is open-source, up to the GMail api key.
</p>

 <p>
They claim that their key management is fully local (unless you choose to upload your pubkeys).
</p>

 <p>
It can connect to gnupg, although this requires some gymnastics.
</p>

 <ol class="org-ol"> <li> <a href="https://github.com/mailvelope/mailvelope/wiki/Mailvelope-GnuPG-integration">https://github.com/mailvelope/mailvelope/wiki/Mailvelope-GnuPG-integration</a></li>
 <li> <a href="https://github.com/mailvelope/mailvelope/wiki/Creating-the-app-manifest-file-on-macOS-and-Linux">https://github.com/mailvelope/mailvelope/wiki/Creating-the-app-manifest-file-on-macOS-and-Linux</a></li>
 <li>Mailvelope (min. version 5.0) is installed in the browser</li>
 <li>GnuPG (min. version 2.4.0) is installed on the system</li>
 <li>gpgme (min. version 1.19.0) is installed on the system</li>
</ol></div>
</div>

 <div id="outline-container-How-do-I-use-Gnupg-with-Gmail-Android?" class="outline-3">
 <h3 id="How-do-I-use-Gnupg-with-Gmail-Android?"> <span class="section-number-3">2.22.</span>  <a href="#How-do-I-use-Gnupg-with-Gmail-Android?">How do I use Gnupg with Gmail Android?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-use-Gnupg-with-Gmail-Android?">
 <p>
You cannot use it with a native Gmail app, well, unless you are some kind of Android disassembly ninja.
</p>

 <p>
There are two methods, both bad.
</p>
</div>

 <div id="outline-container-K-9Mail/Fairemail-+-OpenKeychain-+-synchronise-keys" class="outline-4">
 <h4 id="K-9Mail/Fairemail-+-OpenKeychain-+-synchronise-keys"> <span class="section-number-4">2.22.1.</span>  <a href="#K-9Mail/Fairemail-+-OpenKeychain-+-synchronise-keys">K-9Mail/Fairemail + OpenKeychain + synchronise keys</a></h4>
 <div class="outline-text-4" id="text-K-9Mail/Fairemail-+-OpenKeychain-+-synchronise-keys">
 <p>
This is not too bad if you can use K-9 Mail with Gmail.
</p>

 <p>
Creates nice  <code>pgp/mime</code> messages and encrypts attachments, but works over IMAP, so your battery will suffer, and all the nice features of Gmail labels will be lost.
You will also be able to verify signatures.
</p>
</div>
</div>


 <div id="outline-container-Sign/Encrypt-with-OpenKeychain-and-paste" class="outline-4">
 <h4 id="Sign/Encrypt-with-OpenKeychain-and-paste"> <span class="section-number-4">2.22.2.</span>  <a href="#Sign/Encrypt-with-OpenKeychain-and-paste">Sign/Encrypt with OpenKeychain and paste</a></h4>
 <div class="outline-text-4" id="text-Sign/Encrypt-with-OpenKeychain-and-paste">
 <p>
Annoying to copy/paste, for both writing and reading.
Does not encrypt/sign attachments unless you are a base64 ninja.
</p>

 <p>
But keeps the original Gmail app and all its niceties.
</p>
</div>
</div>
</div>

 <div id="outline-container-How-do-I-encrypt-my-password-file?" class="outline-3">
 <h3 id="How-do-I-encrypt-my-password-file?"> <span class="section-number-3">2.23.</span>  <a href="#How-do-I-encrypt-my-password-file?">How do I encrypt my password file?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-encrypt-my-password-file?">
 <div class="org-src-container">
 <pre class="src src-shell">gpg2 --sign --encrypt --recipient <my-key-id> ~/passwords.txt
</pre>
</div>

 <p>
This will create ~/passwords.txt.gpg
</p>

 <p>
There are different pinentries, you probably want to rebuild pinentry with –enable-inside-emacs,
but if you are running a GUI, and a window appears, don’t be surprised.
</p>

 <p>
There are pinentries in gtk2, gtk3, and such.
</p>
</div>
</div>

 <div id="outline-container-What-if-I-do-not-use-~--sign~?-I-can-decrypt-a-file-means-that-it-is-fine,-right?" class="outline-3">
 <h3 id="What-if-I-do-not-use-~--sign~?-I-can-decrypt-a-file-means-that-it-is-fine,-right?"> <span class="section-number-3">2.24.</span>  <a href="#What-if-I-do-not-use-~--sign~?-I-can-decrypt-a-file-means-that-it-is-fine,-right?">What if I do not use  <code>--sign</code>? I can decrypt a file means that it is fine, right?</a></h3>
 <div class="outline-text-3" id="text-What-if-I-do-not-use-~--sign~?-I-can-decrypt-a-file-means-that-it-is-fine,-right?">
 <p>
No!
Or, rather, it only guarantees that Malory has not  <span class="underline">seen</span> your passwords.
But Malory may have  <span class="underline">replaced</span> the file, and you would still see it as encrypted, and be able to decrypt it.
</p>
</div>
</div>


 <div id="outline-container-How-do-I-decrypt-my-password-file?" class="outline-3">
 <h3 id="How-do-I-decrypt-my-password-file?"> <span class="section-number-3">2.25.</span>  <a href="#How-do-I-decrypt-my-password-file?">How do I decrypt my password file?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-decrypt-my-password-file?">
 <p>
Emacs will decrypt it automatically, potentially asking you for a passphrase with one of the  <code>pinentry</code>.
</p>

 <p>
If you need to use a password from that file in some other software, encrypt that password alone, and use PassCmd, for example:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">PassCmd  <span style="font-style: italic;">"gpg2 --quiet --for-your-eyes-only --no-tty --decrypt ~/.password-store/mbsync/gmail.gpg"</span>
</pre>
</div>

 <p>
Same will work in dumb console.
</p>
</div>
</div>

 <div id="outline-container-How-to-import-data-from-old-gnupg-installations?" class="outline-3">
 <h3 id="How-to-import-data-from-old-gnupg-installations?"> <span class="section-number-3">2.26.</span>  <a href="#How-to-import-data-from-old-gnupg-installations?">How to import data from old gnupg installations?</a></h3>
 <div class="outline-text-3" id="text-How-to-import-data-from-old-gnupg-installations?">
 <p>
From those which have no pubring.gpg (new ones):
</p>

 <div class="org-src-container">
 <pre class="src src-shell">gpg2 --keyring path/to/pubring.kbx --export  | gpg2 --import
</pre>
</div>

 <p>
From older ones, which have pubring.gpg:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">gpg2 --import path/to/pubring.gpg
</pre>
</div>
</div>
</div>

 <div id="outline-container-How-do-I-find-someone's-key-to-encrypt-to-or-check-the-senders-signature?" class="outline-3">
 <h3 id="How-do-I-find-someone's-key-to-encrypt-to-or-check-the-senders-signature?"> <span class="section-number-3">2.27.</span>  <a href="#How-do-I-find-someone's-key-to-encrypt-to-or-check-the-senders-signature?">How do I find someone’s key to encrypt to or check the senders signature?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-find-someone's-key-to-encrypt-to-or-check-the-senders-signature?">
 <p>
Okay, a keyserver is essentially a phonebook, what in computing is called a “directory”.
The problem with a keyserver is that everyone can upload all kind of crap there, and the Web of Trust is not very reliable, so you want a more robust way of finding signatures.
</p>

 <p>
I will use  <code>bernhard.reiter@intevation.de</code>, because it is used in a lot of examples on the Internet.
</p>
</div>

 <div id="outline-container-general-method:-~--locate-keys~" class="outline-4">
 <h4 id="general-method:-~--locate-keys~"> <span class="section-number-4">2.27.1.</span>  <a href="#general-method:-~--locate-keys~">General method:  <code>--locate-keys</code></a></h4>
 <div class="outline-text-4" id="text-general-method:-~--locate-keys~">
 <p>
This will query not just keyservers, but other methods too.
 <code>nodefault</code> there is important, replace  <code>wkd</code> with another method of your preference.
</p>

 <div class="org-src-container">
 <pre class="src src-shell">gpg2 --auto-key-locate clear,nodefault,wkd  --locate-keys bernhard.reiter@intevation.de 2>&1
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-text">
</pre>
</div>
</div>
</div>


 <div id="outline-container-Method-1-(HTTPS):-WKD" class="outline-4">
 <h4 id="Method-1-(HTTPS):-WKD"> <span class="section-number-4">2.27.2.</span>  <a href="#Method-1-(HTTPS):-WKD">Method 1 (HTTPS): WKD</a></h4>
 <div class="outline-text-4" id="text-Method-1-(HTTPS):-WKD">
 <p>
If you put a key on an HTTPS webserver, you can be sure that it is as trustworthy as LetsEncrypt.
Let us check this:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">/usr/libexec/gpg-wks-client --verbose --check  <span style="font-style: italic;">'bernhard.reiter@intevation.de'</span> 2>&1
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-text">
</pre>
</div>

 <p>
You can put your key on your own web server, so only people who know your server will be able to query your keys.
GMail obviously won’t put your keys on their WKD, because they don’t like in-band security.
</p>

 <p>
How to publish it?
</p>

 <ol class="org-ol"> <li> <a href="https://www.uriports.com/blog/setting-up-openpgp-web-key-directory/">https://www.uriports.com/blog/setting-up-openpgp-web-key-directory/</a></li>
 <li> <a href="https://brandonrozek.com/blog/decentralized-pgp-keys-wkd/">https://brandonrozek.com/blog/decentralized-pgp-keys-wkd/</a></li>
</ol> <p>
Get the tricky url part:
</p>

 <div class="org-src-container">
 <pre class="src src-shell">gpg2 --with-wkd-hash -k bernhard.reiter@intevation.de | tail -n 3
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-shell">gpg2 --with-wkd-hash -k bernhard.reiter@intevation.de > hacabazoakmnagxwmkjerb9yehuwehbm
cp /var/www/htdoc/intevation.de/.well-known/openpgpkey/policy/hu/hacabazoakmnagxwmkjerb9yehuwehbm
</pre>
</div>
</div>
</div>



 <div id="outline-container-Method-2-(DNS):-CERT,-PKA,-DANE,-IPGP" class="outline-4">
 <h4 id="Method-2-(DNS):-CERT,-PKA,-DANE,-IPGP"> <span class="section-number-4">2.27.3.</span>  <a href="#Method-2-(DNS):-CERT,-PKA,-DANE,-IPGP">Method 2 (DNS): CERT, PKA, DANE, IPGP</a></h4>
 <div class="outline-text-4" id="text-Method-2-(DNS):-CERT,-PKA,-DANE,-IPGP">
 <p>
CERT and PKA are two kinds of DNS records used for placing a key there.
</p>

 <p>
This is like WKD, only you put the pubkey on DNS, not on HTTPS.
</p>

 <p>
The nice part about it is that:
</p>
 <ol class="org-ol"> <li>You need no HTTPS server.</li>
 <li>You can use these methods when you don’t control the mail server itself. I.e. it works with GMail with a personal domain name.</li>
</ol> <p>
The bad part about it is that DNS is insecure.
It is  <span class="underline">possible</span> to sign DNS records with DNSSEC, but the DNSSEC does not encrypt the payload, only signs, and is very often misconfigured.
And if you use DNS-over-HTTPS or DNS-over-TLS, you still end up trusting LetsEncrypt.
</p>

 <p>
If you are interested, see here:  <a href="https://www.gushi.org/make-dns-cert/howto.html">https://www.gushi.org/make-dns-cert/howto.html</a>
</p>

 <p>
Practically speaking, since most people do not have their own email server, this is not really useful.
</p>
</div>
</div>
</div>

 <div id="outline-container-How-do-I-encrypt/decrypt-files-from-GUI-with-Thunar-in-XFCE?" class="outline-3">
 <h3 id="How-do-I-encrypt/decrypt-files-from-GUI-with-Thunar-in-XFCE?"> <span class="section-number-3">2.28.</span>  <a href="#How-do-I-encrypt/decrypt-files-from-GUI-with-Thunar-in-XFCE?">How do I encrypt/decrypt files from GUI with Thunar in XFCE?</a></h3>
 <div class="outline-text-3" id="text-How-do-I-encrypt/decrypt-files-from-GUI-with-Thunar-in-XFCE?">
 <p>
Use  <a href="https://gitlab.com/nobodyinperson/thunar-custom-actions">https://gitlab.com/nobodyinperson/thunar-custom-actions</a>
</p>

 <p>
and run  <code>uca-apply</code>.
</p>
</div>
</div>

 <div id="outline-container-How-does-that-Subkey-machinery-work-in-practice?" class="outline-3">
 <h3 id="How-does-that-Subkey-machinery-work-in-practice?"> <span class="section-number-3">2.29.</span>  <a href="#How-does-that-Subkey-machinery-work-in-practice?">How does that Subkey machinery work in practice?</a></h3>
 <div class="outline-text-3" id="text-How-does-that-Subkey-machinery-work-in-practice?">
 <p>
Okay, so idea is the following.
</p>

 <p>
Firstly, gpg really expects you to share your encryption key among your devices.
You  <span class="underline">can</span>, in principle, define different IDs for different devices, and encrypt for them independently, but it is not convenient at all.
</p>

 <p>
So, if you need to revoke your encryption key, you are to revoke it everywhere, and update all your devices.
</p>

 <p>
What subkeys are about, is about  <span class="underline">signature</span> keys being fairly independent.
This is how you do it:
</p>

 <div class="org-src-container">
 <pre class="src src-shell"> <span style="font-weight: bold; font-style: italic;">key_id</span>= <span style="font-style: italic;">'Test (Test 001) <invalid>'</span>
gpg2 --quick-generate-key  <span style="font-style: italic;">"$key_id"</span>  <span style="font-style: italic;">"ed25519/cert+cv25519/encr"</span>
 <span style="font-weight: bold; font-style: italic;">cfpr</span>=$(gpg2 --list-secret-keys  <span style="font-style: italic;">"$key_id"</span> | grep  <span style="font-style: italic;">'Key fingerprint'</span> | head -n 1 | cut -d  <span style="font-style: italic;">'='</span> -f 2 | cut -c 2-)
gpg2 --quick-add-key  <span style="font-style: italic;">"$cfpr"</span> cv25519 encr 1y
 <span style="font-weight: bold; font-style: italic;">efpr</span>=$(gpg2 --list-secret-keys  <span style="font-style: italic;">"$key_id"</span> | grep  <span style="font-style: italic;">'Key fingerprint'</span> | tail -n 1 | cut -d  <span style="font-style: italic;">'='</span> -f 2 | cut -c 2-)
gpg2 --quick-add-key  <span style="font-style: italic;">"$cfpr"</span> ed25519 sign 1y
 <span style="font-weight: bold; font-style: italic;">sfpr_laptop</span>=$(gpg2 --list-secret-keys  <span style="font-style: italic;">"$key_id"</span> | grep  <span style="font-style: italic;">'Key fingerprint'</span> | tail -n 1 | cut -d  <span style="font-style: italic;">'='</span> -f 2 | cut -c 2-)
gpg2 --quick-add-key  <span style="font-style: italic;">"$cfpr"</span> ed25519 sign 1y
 <span style="font-weight: bold; font-style: italic;">sfpr_mailvelope</span>=$(gpg2 --list-secret-keys  <span style="font-style: italic;">"$key_id"</span> | grep  <span style="font-style: italic;">'Key fingerprint'</span> | tail -n 1 | cut -d  <span style="font-style: italic;">'='</span> -f 2 | cut -c 2-)
gpg2 --quick-add-key  <span style="font-style: italic;">"$cfpr"</span> ed25519 sign 1y
 <span style="font-weight: bold; font-style: italic;">sfpr_phone</span>=$(gpg2 --list-secret-keys  <span style="font-style: italic;">"$key_id"</span> | grep  <span style="font-style: italic;">'Key fingerprint'</span> | tail -n 1 | cut -d  <span style="font-style: italic;">'='</span> -f 2 | cut -c 2-)
mkdir ~/.gnupg/secrtificate-backup/
gpg2 --output ~/.gnupg/secrtificate-backup/ <span style="font-style: italic;">"$(date --iso-local).${key_id}.gpg.asc"</span> --armor --export-secret-keys  <span style="font-style: italic;">"$key_id"</span>
mkdir ~/.gnupg/secrtificate-backup/ <span style="font-style: italic;">"$(date --iso-local).${key_id}.gpg.asc"</span>
gpg2 --delete-secret-keys  <span style="font-style: italic;">"$key_id"</span>  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">yes to first, and no to the rest
</span>gpg2 --armor --output ~/.gnupg/secrtificate-backup/ <span style="font-style: italic;">"$(date --iso-local).${key_id}.gpg.asc"</span>/ec-2024-laptop.gpg.asc --export-secret-subkeys  <span style="font-style: italic;">"${efpr}!"</span>  <span style="font-style: italic;">"${sfpr_laptop}!"</span>
gpg2 --armor --output ~/.gnupg/secrtificate-backup/ <span style="font-style: italic;">"$(date --iso-local).${key_id}.gpg.asc"</span>/ec-2024-mailvelope.gpg.asc --export-secret-subkeys  <span style="font-style: italic;">"${efpr}!"</span>  <span style="font-style: italic;">"${sfpr_mailvelope}!"</span>
gpg2 --armor --output ~/.gnupg/secrtificate-backup/ <span style="font-style: italic;">"$(date --iso-local).${key_id}.gpg.asc"</span>/ec-2024-phone.gpg.asc --export-secret-subkeys  <span style="font-style: italic;">"${efpr}!"</span>  <span style="font-style: italic;">"${sfpr_phone}!"</span>
gpg2 --delete-secret-keys  <span style="font-style: italic;">"$key_id"</span>  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">yes to all
</span>gpg2 --import ~/.gnupg/secrtificate-backup/ <span style="font-style: italic;">"$(date --iso-local).${key_id}.gpg.asc"</span>/ec-2024-laptop.gpg.asc
</pre>
</div>

 <p>
Now you have your master key backed up, and one sign+encrypt pair on your laptop.
Import the mailvelope and phone subcerts into mailvelope and phone (openkeychain) respectively.
</p>

 <p>
You can backup the master key and delete file with it.
</p>
</div>
</div>
</section> <section id="outline-container-Open-Questions" class="outline-2"> <h2 id="Open-Questions"> <span class="section-number-2">3.</span>  <a href="#Open-Questions">Open Questions</a></h2>
 <div class="outline-text-2" id="text-Open-Questions">
</div>

 <div id="outline-container-Is-it-better-to-synchronise-keys-over-different-devices,-or-have-different-ones?" class="outline-3">
 <h3 id="Is-it-better-to-synchronise-keys-over-different-devices,-or-have-different-ones?"> <span class="section-number-3">3.1.</span>  <a href="#Is-it-better-to-synchronise-keys-over-different-devices,-or-have-different-ones?"> <span class="todo TODO">TODO</span> Is it better to synchronise keys over different devices, or have different ones?</a></h3>
 <div class="outline-text-3" id="text-Is-it-better-to-synchronise-keys-over-different-devices,-or-have-different-ones?">
 <p>
You most probably do not want to synchronise the master key.
</p>

 <p>
If you only care about signing, you may have different keys everywhere, and if a device is stolen, revoke the key by a master key.
</p>

 <p>
But for encryption…
I don’t know.
</p>

 <p>
Probably, you need to synchronise the key.
</p>
</div>
</div>
</section> <section id="outline-container-References" class="outline-2"> <h2 id="References"> <span class="section-number-2">4.</span>  <a href="#References">References</a></h2>
 <div class="outline-text-2" id="text-References">
 <ol class="org-ol"> <li>Michael W Lucas “PGP & GnuPG”</li>
 <li>Neal H. Walfield “An Advanced Introduction to GnuPG”</li>
 <li> <a href="https://wiki.debian.org/Subkeys">https://wiki.debian.org/Subkeys</a></li>
 <li> <a href="https://www.gushi.org/make-dns-cert/howto.html">https://www.gushi.org/make-dns-cert/howto.html</a></li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-03-02_GnuPG/index.html"/>
  <id>https://lockywolf.net/2024-03-02_GnuPG/index.html</id>
  <updated>2025-08-07T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;The Book of Change&quot; by Richard Rutt.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “The Book of Change” by Richard Rutt.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a>
 <ul> <li> <a href="#How-I-started-reading-the-Book-of-Change">1.1. How I started reading the Book of Change</a></li>
 <li> <a href="#What-is-the-Book-of-Change-and-how-to-read-it?">1.2. What is the Book of Change and how to read it?    <span class="tag"> <span class="ATTACH">ATTACH</span></span></a>
 <ul> <li> <a href="#Translation-details">1.2.1. Translation details</a></li>
</ul></li>
 <li> <a href="#The-programmer's-manual">1.3. The programmer’s manual</a>
 <ul> <li> <a href="#Tu%C3%A1n-zhu%C3%A0n">1.3.1. Tuán zhuàn</a></li>
 <li> <a href="#Xi%C3%A0ng-zhu%C3%A0n">1.3.2. Xiàng zhuàn</a></li>
 <li> <a href="#Other-appendices">1.3.3. Other appendices</a></li>
</ul></li>
 <li> <a href="#W%C3%BAw%C3%A9i-(the-principle-of-minimal-action)">1.4. Wúwéi (the principle of minimal action)</a></li>
 <li> <a href="#Postface">1.5. Postface</a></li>
</ul></li>
 <li> <a href="#Notes">2. Notes</a>
 <ul> <li> <a href="#Caves">2.1. Caves</a></li>
 <li> <a href="#References">2.2. References</a></li>
</ul></li>
 <li> <a href="#Subscribe-and-donate,-links-and-blurb">3. Subscribe and donate, links and blurb</a></li>
 <li> <a href="#Words">4. Words</a></li>
</ul></div>
</nav> <figure id="org8420dd3"> <img src="./01_title-yi-jing.jpeg" alt="01_title-yi-jing.jpeg"></img></figure> <p>
Many readers of my dispersed essays know that I am a huge fan of manuals and HOWTOs.
</p>

 <p>
Indeed, I consider them a superior genre of literature, and sincerely think that most of non fiction literature should obey their format.
</p>

 <p>
Imagine my joy when I discovered that “Book Of Change” by Richard Rutt is written in this style.
(Although the typesetting itself is horrible disgusting!)
</p>

 <p>
Why exactly did it decide to read “The Book of Change”?
Well, firstly, because it is the earliest known consistent text in existence (there are Shāng bone inscriptions, but they are can hardly be called a consistent text), and its traces are visible all over the Chinese and related cultures.
</p>

 <p>
Even Korean flag includes references to the Book of Change in the form of four “gua” on it.
</p>

 <p>
I did not expect that it would take me so long.
Indeed, I will have been reading the ’book of change’ for more than 3 years by the time this essay is published, and all of that despite Richard Rutt’s translation being accompanied by a giant commentary in the form of a manual, and it being a translation into English, a language I know decently.
</p>

 <p>
Granted, a lot of the complications are due to the fact that the typesetting is really junk, and I had to spend much more time googling and de/re-compiling the  <code>epub</code> file before the narrative could flow smoothly into my brain.
</p>

 <p>
Finally I am done, and in this text I am going to try and express my thoughts about how “Zhōu Yì” stays relevant nowadays and why it is worth a read by every aspiring programmer, especially in the Rutt’s version.
</p>

 <p>

</p>

 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
 <p>
Reading the “Book of Changes” is like reading a de-compiled binary.
</p>

 <p>
You sort of getting it here and there, some pieces are trivial, and some are totally obscure.
</p>

 <p>
At the same time it is clearly structured somehow, it’s just that structure keeps eluding you.
</p>

 <p>
Okay, let me start from the beginning.
</p>
</div>

 <div id="outline-container-How-I-started-reading-the-Book-of-Change" class="outline-3">
 <h3 id="How-I-started-reading-the-Book-of-Change"> <span class="section-number-3">1.1.</span>  <a href="#How-I-started-reading-the-Book-of-Change">How I started reading the Book of Change</a></h3>
 <div class="outline-text-3" id="text-How-I-started-reading-the-Book-of-Change">
 <p>
I have always suffered from over-estimating myself.
</p>

 <p>
Really, what is there difficult about reading basically any book in any language?
Just take a dictionary, query the sentences one by one, word by word, and you are going to get a rough idea of any text.
If you are an Indo-European speaker, try doing it with Latin.
</p>

 <p>
Is it going to work?
Well, not really.
In Latin you have those pesky inflections, conjugations, declensions, when meaning is transmitted by word forms rather than words themselves.
</p>

 <p>
But what about Chinese, especially old Chinese.
Even modern Chinese does not have much grammar and has very little syntax.
Surely with Chinese it should be possible?
</p>

 <p>
Those were my thoughts when I bought a standard edition of “周易”, with a preface saying that it is intended to be read by parents to their children.
</p>

 <p>
I spent about a weekend trying to decipher what is going on, and was overwhelmed by flying dragons (龍), speaking elephants (象), strange (magic) numbers appearing out of nowhere, superficial symmetries and a disgusting feeling that “just a little more and I will be able to make sense out of it”.
Then another weekend.
Then one more.
Doesn’t that sound familiar to anyone trying to reverse-engineer a binary file, or even read some spaghetti code in C++?
</p>

 <p>
At some point I gave up and decided that I am going to cheat and read an English translation.
I just need to find a decent one, not the one done by anime fanboys which revere everything Asian and are not ready to apply critical thinking to whatever they read.
</p>

 <p>
After browsing a library for a while, I found the “Book of Change” by Richard Rutt, who had been an interpreter for the U.S.~Army during the Korean war in the 1950s.
</p>


 <figure id="orgbdfdb99"> <img src="./Review/02_rutt-cover.jpg" alt="02_rutt-cover.jpg"></img></figure> <p>
Unfortunately, even though the book uses pīnyīn for transliteration, it does not use tone marks, which makes it very difficult to find out what is going on, and sometimes allows opposing interpretations.
(For example, some structures are described as “cheng”, which can mean both “chéng”(乘) and chēng (撑), which are really opposites.)
</p>

 <p>
It took me months of free time to reverse engineer the book and to place the correct tone marks where they are due (and also research all the cross-references and citations).
Does not this also remind you of reading an old piece of code which “somehow works”, but you need to develop and maintain it?
</p>
</div>
</div>

 <div id="outline-container-What-is-the-Book-of-Change-and-how-to-read-it?" class="outline-3">
 <h3 id="What-is-the-Book-of-Change-and-how-to-read-it?"> <span class="section-number-3">1.2.</span>  <a href="#What-is-the-Book-of-Change-and-how-to-read-it?">What is the Book of Change and how to read it?    <span class="tag"> <span class="ATTACH">ATTACH</span></span></a></h3>
 <div class="outline-text-3" id="text-What-is-the-Book-of-Change-and-how-to-read-it?">
 <p>
Well, it is a bit hard to explain.
</p>

 <p>
Let us go back to the Korean flag.
</p>


 <figure id="org4ebdc2f"> <img src="Review/2025-07-02_12-45-03_screenshot.png" alt="2025-07-02_12-45-03_screenshot.png"></img></figure> <p>
The four groups of three lines, broken and solid, are coming from the Book of Changes.
In fact, they are not really coming form the original text (Zhōu Yì), but from a later, Hàn dynasty, compilation, called Yì Jīng which, despite being written almost a thousand years later, became the true classic of Chinese culture.
</p>

 <p>
Those groups are called “trigrams”, and represent nothing more than “machine half-words” of three bits.
Yes, really, 2400 years ago people already knew about bits.
</p>

 <p>
In fact, those “machine words” of six bits (twice the three-bit half-words) are what the original book is about.
</p>

 <p>
The source of the original text (Zhōu Yì, not Yì Jīng), is a little bit similar to a description of a peculiar assembly language, which gives each “machine word” a short description of what it does, as well as gives implementation details for each bit, that is why exactly it has to be 1 or 0 so that the computational module as a whole produces the desired effect on the computational flow.
</p>

 <p>
The list of the “words” is the following:
</p>

 <p>
䷀ ䷁ ䷂ ䷃ ䷄ ䷅ ䷆ ䷇
䷈ ䷉ ䷊ ䷋ ䷌ ䷍ ䷎ ䷏
䷐ ䷑ ䷒ ䷓ ䷔ ䷕ ䷖ ䷗
䷘ ䷙ ䷚ ䷛ ䷜ ䷝ ䷞ ䷟
䷠ ䷡ ䷢ ䷣ ䷤ ䷥ ䷦ ䷧
䷨ ䷩ ䷪ ䷫ ䷬ ䷭ ䷮ ䷯
䷰ ䷱ ䷲ ䷳ ䷴ ䷵ ䷶ ䷷
䷸ ䷹ ䷺ ䷻ ䷼ ䷽ ䷾ ䷿
</p>

 <p>
Can you fit a lot of data into 6-bit words?
Well, not really, but you could make a calculator which can count to 64.
</p>

 <p>
For example, you could have the word partitioned into 3 parts, 2 bits each.
Two bits give 4 instructions: +, -, \(\cup\) \(\cap\), and two two-bit operands, denoting 1 to 4 in decimal.
(Why not multiply/divide? Because those are too irregular, and you need to care about carry.)
</p>

 <p>
3 times 3 makes 9, which does not really fit into 8 bits, but if you sacrifice the last bit of the instruction, it works.
</p>

 <p>
Here are your mnemonics for 2-bit operations:
</p>

 <p>
⚌ ⚍ ⚎ ⚏ 𝌁 𝌂 𝌃 𝌄 𝌅
</p>

 <p>
Of course, old Chinese did not do anything this stupid.
Instead of dividing one hexagram into three bigrams, to make a calculator which can count to 9, they used three-bit half-words: ☰ ☱ ☲ ☳ ☴ ☵ ☶ ☷, also called trigrams.
Or at least the Hàn scholars, which were reverse-engineering Zhōu computations (算命, suàn mìng, from Chinese “calculate commands”.)
</p>

 <p>
They assumed that the instruction set was the following:
</p>

 <ol class="org-ol"> <li>One 6-bit word defines a command (one hexagram).</li>
 <li>Two three-bit half-words (trigrams) define the operands for the command, which are unlikely to be immediate operands, because computing with numbers less than 8 is a pity, but were probably displacements relative to the address of the instruction pointer, in which case 8 is enough.</li>
 <li>Two words pointed to by the operands of the command served as the arguments of the operation.</li>
</ol> <p>
This gave them a full 6-bit arithmetic, which is enough to execute and arbitrary Turing-complete program and model any interesting phenomenon.
</p>

 <p>
The ancient Chinese did not know an alphabet, but they had to represent their language somehow, which means that they had to encode their language into their primitive computational machines.
</p>

 <p>
As far as I know, they did not know variable-length prefix-free coding, such as UNICODE, so instead of expanding their instruction set to the thousands of codepoints needed to encode all of Chinese, they would just strip-down their language to a bare minimum, to 64 “letters”, which had to represent any idea that a programmer (at that time called a “diviner” as a pun on the fact that computations predict results of a physical process) might want.
</p>

 <p>
Their version of the ASCII table (one instruction=one symbol) is below:
</p>

 <ol class="org-ol"> <li>䷀乾 - Qian</li>
 <li>䷁坤 - Kun</li>
 <li>䷂屯 - Zhun</li>
 <li>䷃蒙 - Meng</li>
 <li>䷄需 - Xu</li>
 <li>䷅訟 - Song</li>
 <li>䷆師 - Shi</li>
 <li>䷇比 - Bi</li>
 <li>䷈小畜 - Xiao Xu</li>
 <li>䷉履 - Lu</li>
 <li>䷊泰 - Tai</li>
 <li>䷋否 - Pi</li>
 <li>䷌同人 - Tong Ren</li>
 <li>䷍大有 - Da You</li>
 <li>䷎謙 - Qian</li>
 <li>䷏豫 - Yu</li>
 <li>䷐隨 - Sui</li>
 <li>䷑蠱 - Gu</li>
 <li>䷒臨 - Lin</li>
 <li>䷓觀 - Guan</li>
 <li>䷔噬嗑 - Shi He</li>
 <li>䷕賁 - Bi</li>
 <li>䷖剝 - Bo</li>
 <li>䷗復 - Fu</li>
 <li>䷘无妄 - Wu Wang</li>
 <li>䷙大畜 - Da Xu</li>
 <li>䷚頤 - Yi</li>
 <li>䷛大過 - Da Guo</li>
 <li>䷜坎 - Kan</li>
 <li>䷝離 - Li</li>
 <li>䷞咸 - Xian</li>
 <li>䷟恆 - Heng</li>
 <li>䷠遯 - Dun</li>
 <li>䷡大壯 - Da Zhuang</li>
 <li>䷢晉 - Jin</li>
 <li>䷣明夷 - Ming Yi</li>
 <li>䷤家人 - Jia Ren</li>
 <li>䷥睽 - Kui</li>
 <li>䷦蹇 - Jian</li>
 <li>䷧解 - Jie</li>
 <li>䷨損 - Sun</li>
 <li>䷩益 - Yi</li>
 <li>䷪夬 - Guai</li>
 <li>䷫姤 - Gou</li>
 <li>䷬萃 - Cui</li>
 <li>䷭升 - Sheng</li>
 <li>䷮困 - Kun</li>
 <li>䷯井 - Jing</li>
 <li>䷰革 - Ge</li>
 <li>䷱鼎 - Ding</li>
 <li>䷲震 - Zhen</li>
 <li>䷳艮 - Gen</li>
 <li>䷴漸 - Jian</li>
 <li>䷵歸妹 - Gui Mei</li>
 <li>䷶豐 - Feng</li>
 <li>䷷旅 - Lu</li>
 <li>䷸巽 - Xun</li>
 <li>䷹兌 - Dui</li>
 <li>䷺渙 - Huan</li>
 <li>䷻節 - Jie</li>
 <li>䷼中孚 - Zhong Fu</li>
 <li>䷽小過 - Xiao Guo</li>
 <li>䷾既濟 - Ji Ji</li>
 <li>䷿未濟 - Wei Ji</li>
</ol> <p>
Of course the ancient Chinese knew the difference between P and BPP complexity classes, but I will re-state them here for clarity:
</p>

 <p>
A language L is in  <b>BPP</b> if and only if there exists a probabilistic Turing machine M, such that:
</p>

 <ol class="org-ol"> <li>M runs for polynomial time on all inputs</li>
 <li>For all x in L, M outputs 1 with probability greater than or equal to 2/3</li>
 <li>For all x not in L, M outputs 1 with probability less than or equal to 1/3</li>
</ol> <p>
 <b>P</b> contains all decision problems that can be solved by a deterministic Turing machine using a polynomial amount of computation time, or polynomial time.
</p>

 <p>
Ancient Chinese computers were much more primitive than we have now, and needed an external supply of random bits, usually in the sets of 9.
</p>

 <p>
It is really easy: 6 bits are needed to select one hexagram out of 64, and 3 bits are needed to select a particular line out of the 6 available in a hexagram.
In fact, we need 2.5 bits, because 6 is not a power of 2, but the remaining half-bit would be still useful, because sometimes there is a need to apply randomness not just throughout the computational process (the BPP model), but also in the process of decoding the text.
The last half-bit is thus used to select the codeword or the “extranumerary” bits in the codewords 1 and 2.
</p>

 <p>
It is not entirely clear what most of the codewords meant in that ISA, but we can be certain about the codewords 1 (䷀乾) and 2 (䷁坤): “call a procedure” (干, old Chinese Qián, modern Chinese Gān, which means “to do”, so very naturally “do” a procedure) and “yield a value” (坤, both Old and Modern Chinese Kūn, “to yield”).
</p>

 <p>
It is easy to guess that ䷇比 is a comparison operator ( A < B),  ䷖剝 is a noop operator, and ䷗復 is a copying operator because these words still mean the same thing in modern Chinese.
Generally, most single-bit operators are easy to guess.
</p>

 <p>
The evaluation was performed in a series of calls to “eval” and “apply”, which is epitomised in the famous “Yīn/Yàng” symbol:
</p>


 <figure id="orgaa85912"> <img src="Review/2025-07-02_14-18-47_screenshot.png" alt="2025-07-02_14-18-47_screenshot.png"></img></figure> <p>
Specifically, it was probably carried out as some kind of a fluidic solver:
</p>

 <ol class="org-ol"> <li> <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC6553589/">https://pmc.ncbi.nlm.nih.gov/articles/PMC6553589/</a></li>
 <li> <a href="https://theconversation.com/researchers-built-an-analogue-computer-that-uses-water-waves-to-forecast-the-chaotic-future-205842">https://theconversation.com/researchers-built-an-analogue-computer-that-uses-water-waves-to-forecast-the-chaotic-future-205842</a></li>
</ol> <p>
If the “hexagrams” are actually bone plates with punched holes, it makes sense that in addition to performing calculations, the programmer also has to care about sufficient and not excessive pressure in the machine, hence paying particular attention to the first and the fourth “carrier” bits (holes).
Alternatively, if one looks at the earliest depictions of the machine words:
</p>

 <p>
 <img src="Review/2025-07-04_19-23-55_screenshot.png" alt="2025-07-04_19-23-55_screenshot.png"></img>
it starts to make sense that the machine words were not punched bone cards, but rather something like clay tablets with troughs and/or bumps, which either impeded or diverted the flow of water.
</p>

 <p>
The ancient Chinese had a very good understanding of binary arithmetic, as we know from other sources, not just the assembly manual:
</p>

 <blockquote>
 <p>
When everyone in the world knows beauty as beauty, ugliness appears.
When everyone knows good as good, not-good arrives.
Therefore being and non-being give birth to one another;
Difficult and easy give completion to one another;
Long and short form one another;
High and low fill? one another;
Sound and voice harmonize with one another;
Ahead and behind follow after one another.
Therefore the sage accomplishes things by doing nothing,
Furthering a teaching that is without words.
All things arise, and he does not leave them.
He gives them life but without possessing them.
He acts but without relying on his own ability.
He succeeds but without dwelling on his success.
And because he does not dwell on it, it does not leave him.
</p>
</blockquote>

 <p>
This is one of the first self-reflections of a programmer in the world.
The especially noteworthy part is “He gives them life but without possessing them”, that is, he is writing programs who appear to be alive, but he publishes them in the open-source form to not possess them, and also “Therefore the sage accomplishes things by doing nothing”, where the sage (the programmer) is relaxing while his program is doing things for him, making him rich his goals.
</p>

 <p>
Ah, at the end of the brief introduction to the Book of Change, I must explain why and how exactly the word “change” comes into play.
</p>

 <p>
In modern terms, the “change”, “yì” (易) would rather be correctly called “bit flipping”.
When a bit changes, it switches from a state to an opposite state, there is nothing really happening there.
But through the process of flipping bits, the encoding transforms from a set of codewords encoding the input and the program into the set of codewords encoding the answer, and this is how the programmer’s manual came to be known as a “manual of change”.
</p>
</div>

 <div id="outline-container-Translation-details" class="outline-4">
 <h4 id="Translation-details"> <span class="section-number-4">1.2.1.</span>  <a href="#Translation-details">Translation details</a></h4>
 <div class="outline-text-4" id="text-Translation-details">
 <p>
Let me try and translate a few codeword descriptions.
</p>

 <blockquote>
 <p>
元亨利贞
</p>
</blockquote>

 <ol class="org-ol"> <li>Richard Rutt :: Supreme offering. Favourable augury.</li>
 <li>James Legge :: (represents) what is great and originating, penetrating, advantageous, correct and firm.</li>
 <li>Me :: Always return “true” value.</li>
</ol></div>

 <ol class="org-ol"> <li> <a id="%E4%B7%96%E5%89%9D---B%C5%8D"></a> <a href="#%E4%B7%96%E5%89%9D---B%C5%8D">䷖剝 - Bō</a> <br></br> <div class="outline-text-5" id="text-%E4%B7%96%E5%89%9D---B%C5%8D">
 <ol class="org-ol"> <li>不利有攸往。 :: Does not return, computational flow goes indefinitely. (noop)</li>
</ol> <ol class="org-ol"> <li>初六：剝床以足，蔑貞凶。 :: First, carrier (medium) bit is zero, computational flow gathers at the bottom. Does not affect return value.</li>
 <li>六二：剝床以辨，蔑貞凶。 :: Second, logic bit is zero, does not affect computation value.</li>
 <li>六三：剝之，无咎。:: Third bit is zero, but there should be no flow through it anyway.</li>
 <li>六四：剝床以膚，凶。:: Fourth (second-carrier) bit is zero, does not affect the value.</li>
 <li>六五：貫魚，以宮人寵，无不利。:: Fifth bit is zero, the flow gathers in the accumulator, does not affect the value.</li>
 <li>上九：碩果不食，君子得輿，小人剝廬。:: Sixth (topmost) bit is finally non-zero, the implementer must enforce this strictly, otherwise programmers (小人) will rip the skin off the machine.</li>
</ol></div>
</li>

 <li> <a id="%E4%B7%87%E6%AF%94---B%C7%90"></a> <a href="#%E4%B7%87%E6%AF%94---B%C7%90">䷇比 - Bǐ</a> <br></br> <div class="outline-text-5" id="text-%E4%B7%87%E6%AF%94---B%C7%90">
 <ol class="org-ol"> <li>比：吉。原筮元永貞，无咎。不寧方來，後夫凶。 :: Comparator. Works well. Originally written program always returns the correct value, no matter what. It does not matter if which direction the flow goes, backwards flow does not affect the value.</li>
</ol> <ol class="org-ol"> <li>初六：有孚，比之，无咎。有孚盈缶，終來有它吉。 :: The first bit is zero. Even if there is an overflow, it should not matter, because the flow goes into the “overflow cup”, which is ultimately good for the machine.</li>
 <li>六二：比之自內，貞吉。:: The second bit is zero. It is the Comparators internal flow, the value is always correct.</li>
 <li>六三：比之匪人。 :: The third bit is zero. Compares with the opponent.</li>
 <li>六四：外比之，貞吉。 :: The fourth bit is zero, compares with the outside. The value is always high quality (perhaps the pressure is always good).</li>
 <li>九五：顯比，王用三驅，失前禽。邑人不誡，吉。 :: The fifth bit is zero. This is the result of the comparison. Control uses three valves. Used to be have a bird as a part of the indicator, but not any more, because people complained. Which is ultimately good.</li>
 <li>上六：比之无首，凶。:: The top bit is one, in fact it is not needed for the comparator, so ignored.</li>
</ol></div>
</li>
</ol></div>
</div>

 <div id="outline-container-The-programmer's-manual" class="outline-3">
 <h3 id="The-programmer's-manual"> <span class="section-number-3">1.3.</span>  <a href="#The-programmer's-manual">The programmer’s manual</a></h3>
 <div class="outline-text-3" id="text-The-programmer's-manual">
 <p>
I should further note that the problem of constantly changing computational frameworks was clearly very painful for the Zhōu programmers, as Dào Dé Jīng testifies:
</p>

 <blockquote>
 <p>
A good cook changes his knife once a year - because he cuts. A mediocre cook
changes his knife once a month - because he hacks. I’ve had this knife of mine for
nineteen years and I’ve cut up thousands of oxen with it, and yet the blade is as
good as though it had just come from the grindstone. There are spaces between the
joints, and the blade of the knife has really no thickness. If you insert what has
no thickness into such spaces, then there’s plenty of room more than enough for the
blade to play about it. That’s why after nineteen years the blade of my knife is
still as good as when it first came from the grindstone.
</p>
</blockquote>

 <p>
Nowadays we can see exactly the same situation, the old knife (UNIX, C, and GNU Bash) are still as sharp as in the 70s, whereas Rust and JavaScript keep reinventing themselves every month, because they hack.
 <i>But I digress.</i>
</p>

 <p>
In addition to the handbook on the instruction set architecture and the implementation, the Yì Jīng, a much later compilation (which includes Zhōu Yì), also includes some documents which were not written by the machine designers.
</p>

 <ol class="org-ol"> <li>Programmers review (彖传, tuán zhuàn, meaning “the one who infers”, programmer) on the new ISA</li>
 <li>Circuit/performance analysis profiles (象传, xiàng zhuàn, literally “scheme analysis”) which analyses how signal flows through each of the circuits implementing the instruction</li>
 <li>Programmer’s manual (繫辭, xì cí), literally “connecting words”, meaning “writing programs”.</li>
 <li>Short history of the ISA (说卦, shuōguà)</li>
 <li>A mnemonic for memorising the ISA , (序卦，Xùguà)</li>
 <li>An attempt to simplify the instruction set by dividing it into two parts, unfinished and seemingly later abandoned (杂卦, záguà, literally “your instruction set is in disarray”)</li>
</ol></div>

 <div id="outline-container-Tu%C3%A1n-zhu%C3%A0n" class="outline-4">
 <h4 id="Tu%C3%A1n-zhu%C3%A0n"> <span class="section-number-4">1.3.1.</span>  <a href="#Tu%C3%A1n-zhu%C3%A0n">Tuán zhuàn</a></h4>
 <div class="outline-text-4" id="text-Tu%C3%A1n-zhu%C3%A0n">
 <p>
Tuánzhuàn is basically notes of a programmer who tried to learn how to use the machine, or even to rebuild it, perhaps several hundred years after the original ISA was documented.
</p>

 <p>
Let us have a look at what he things about implementing the Comparator ䷇比 - Bi:
</p>

 <blockquote>
 <p>
比，吉也，比，輔也，下順從也。
原筮元永貞，无咎，以剛中也。
不寧方來，上下應也。後夫凶，其道窮也。
</p>
</blockquote>

 <blockquote>
 <p>
Okay, the comparison instruction, always correct, very useful(輔), even though the lower part has a weak flow of computation.
The original program should always produce a stable value, no matter what, because the flow through the middle pipes is stable.
In reality this is false, for both directions of computation (!), because the central pipes of the second and the fifth pipes correspond and no matter how the engineers (夫) maintain the machine, the computation flow (道) will be too weak to power the computation further (其道窮).
</p>
</blockquote>

 <p>
Very simple and straightforward, all of the first appendix is like this.
</p>

 <p>
I think that the computational flow was really going in a loop, perhaps flowing through the upper part in one direction and through the lower part into the other direction.
(Of course, you could reverse the flow, this is why the programmer constantly mentions 方來 and 攸往.)
</p>

 <p>
The machine was, evidently, not as stable as the ISA manual supposed.
</p>

 <p>
Another example is Tài
</p>
</div>

 <ol class="org-ol"> <li> <a id="%E4%B7%8A%E6%B3%B0---T%C3%A0i"></a> <a href="#%E4%B7%8A%E6%B3%B0---T%C3%A0i">䷊泰 - Tài</a> <br></br> <div class="outline-text-5" id="text-%E4%B7%8A%E6%B3%B0---T%C3%A0i">
 <blockquote>
 <p>
泰，小往大來，吉亨。
則是天地交，而萬物通也；
上下交，而其志同也。
內陽而外陰，內健而外順，內君子而外小人，君子道長，小人道消也。
</p>
</blockquote>

 <p>
It looks like the instruction was really for the accumulation of the excessive computational flow.
(Again, remember that fluid computer programmers have to care not just about truth values, but also about the pressure of the computational flow, the “carrier” (道).)
</p>

 <blockquote>
 <p>
Tài, one part passes the flow, the other accumulates, always returns “true”, or so they say.
In reality, the computational block works like a junction, thousands of bits passing through, not staying. (Here I suspect that certain particles had to be in the flow in order for the machine to compute.)
They flow both at the top and at the bottom, so its effect is identical.
As usual, they promise that the element will accumulate the flow inside, but in reality it leaks outside.
Maybe their internal ISA gigachads (內君子) know how to set it up, but we, outside are mere programmers (外小人).
Computational flow gigachads can ensure the flow (道) pressure is high, but for us it is leaking all over the place.
</p>
</blockquote>
</div>
</li>
</ol></div>

 <div id="outline-container-Xi%C3%A0ng-zhu%C3%A0n" class="outline-4">
 <h4 id="Xi%C3%A0ng-zhu%C3%A0n"> <span class="section-number-4">1.3.2.</span>  <a href="#Xi%C3%A0ng-zhu%C3%A0n">Xiàng zhuàn</a></h4>
 <div class="outline-text-4" id="text-Xi%C3%A0ng-zhu%C3%A0n">
</div>
</div>





 <div id="outline-container-Other-appendices" class="outline-4">
 <h4 id="Other-appendices"> <span class="section-number-4">1.3.3.</span>  <a href="#Other-appendices">Other appendices</a></h4>
 <div class="outline-text-4" id="text-Other-appendices">
 <p>
Other appendices clearly develop some theory of higher-level computing.
For example,
</p>

 <blockquote>
 <p>
closing a door is called Kun,
and opening a door is called Qian.
Closing and opening is called alternation,
endless toing and froing is called development.
What is then perceived is called a figure;
given shape it is called an object;
putting it to use is called method.
</p>
</blockquote>

 <p>
clearly is the earliest introduction of class(shape)-object-method relationship in human history, albeit with an unduly reference of binary arithmetic in the form of Qian and Kun.
</p>
</div>
</div>
</div>

 <div id="outline-container-W%C3%BAw%C3%A9i-(the-principle-of-minimal-action)" class="outline-3">
 <h3 id="W%C3%BAw%C3%A9i-(the-principle-of-minimal-action)"> <span class="section-number-3">1.4.</span>  <a href="#W%C3%BAw%C3%A9i-(the-principle-of-minimal-action)">Wúwéi (the principle of minimal action)</a></h3>
 <div class="outline-text-3" id="text-W%C3%BAw%C3%A9i-(the-principle-of-minimal-action)">
 <p>
There is actually no mention of 無爲/无为 in 周易, but it is actually closely related to the ancient Chinese skill of cybernetics, so deeply understood by the Sages.
</p>

 <p>
Wúwéi manifests in the fact that fighting with a machine is of no use (无用).
To explain it, imagine the following loop:
</p>

 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">while</span> true ;  <span style="font-weight: bold;">do</span>
      sleep 60
      xscreensaver-command -lock
 <span style="font-weight: bold;">done</span>
</pre>
</div>


 <figure id="org330b86a"> <img src="./Review/1350px-XScreenSaver_2021_v6.00.jpg" alt="1350px-XScreenSaver_2021_v6.00.jpg"></img></figure> <p>
No matter how strong you are, how much willpower you possess, or how skilful you are in typing your password, your work will still be interrupted every minute, unless you follow the principles of  <code>道</code>, and  <code>pkill xscreensaver</code>.
</p>

 <p>
In the case of the part of cybernetics dedicated to managing humans, well, the principle is the same – if your management process is draining your power, you will never guide the company into the direction intended.
</p>

 <p>
So,  <code>道</code> is essentially “the graph of computation”, which the physicists call a “world line”, and  <code>易</code> is its differential with respect to time in the Minkowski space.
</p>

 <p>
The book stresses quite a few times that spending “action” to achieve what you want to achieve is unlikely to succeed, because fighting against the world line it like fighting against the machine.
However, sages manage to apply their “action” to redirect the world line slightly, so that eventually it comes into the point the programmer needs.
</p>
</div>
</div>

 <div id="outline-container-Postface" class="outline-3">
 <h3 id="Postface"> <span class="section-number-3">1.5.</span>  <a href="#Postface">Postface</a></h3>
 <div class="outline-text-3" id="text-Postface">
 <p>
Of course, this essay is a game, do not take it too seriously.
</p>

 <p>
However, there are a few things to consider.
</p>

 <p>
 <b>Bits</b>
</p>

 <p>
Bits, as far as we understand them, have to intrinsic meaning, and the meaning of ASCII 01000000 (@) is not composed of two independent 0100 and 0000.
</p>


 <p>
 <b>Thinking about a-priori meaningless structured things</b>
</p>

 <p>
STEM people often find it enjoyable in thinking about mechanistic things, such as chess, tabletop games, even Rubik’s cube.
</p>

 <p>
The Book of Changes and divination in general seems to be lying in the same domain, but taking this notion to the extreme.
There is  <span class="underline">no</span> meaning in the hexagrams whatsoever, yet they are structured in a fairly advanced way, at least if the tradition (Fu Xi order, Luo River Document, He Map) is studied carefully.
</p>

 <p>
Presumably, thinking about structured meaningless things, that is, iterating over patterns presented to the thinker in pure forms (patterns which have no meaning), allow one to infer some regularities, consistent behaviours in things around him, which  <span class="underline">do</span> have meaning, things the thinker is actually considering.
</p>

 <p>
In this thought the Book of Changes is consistent not just with the Daoist tradition, but also with the Confucian tradition, and with modern psychology, which is quite aware of patterns in human behaviour, which sometimes overbear normal human lives and bring unhappiness, but also sometimes allow breaking away from the patterns which are not reflected by the person.
</p>
</div>
</div>
</section> <section id="outline-container-Notes" class="outline-2"> <h2 id="Notes"> <span class="section-number-2">2.</span>  <a href="#Notes">Notes</a></h2>
 <div class="outline-text-2" id="text-Notes">
</div>

 <div id="outline-container-Caves" class="outline-3">
 <h3 id="Caves"> <span class="section-number-3">2.1.</span>  <a href="#Caves">Caves</a></h3>
 <div class="outline-text-3" id="text-Caves">
 <p>
Seemingly, the Chinese knew the concept of cavemen even during the Han dynasty:
(大传2.III)
</p>
 <blockquote>
 <p>
上古穴居而野處
</p>
</blockquote>
 <p>
I have never heard about European ancient texts mentioning living in caves.
The Bible mentions living in a “Garden of Eden”.
</p>
</div>
</div>

 <div id="outline-container-References" class="outline-3">
 <h3 id="References"> <span class="section-number-3">2.2.</span>  <a href="#References">References</a></h3>
 <div class="outline-text-3" id="text-References">
 <p>
Wikipedia and Baidupedia have quite a few references to various memes connected to the Book of Changes: 64 hexagrams, 8 trigrams, Early Chinese mythology, Early Chinese constellations, Heavenly Stems, Earthly Branches, and such.
</p>
</div>
</div>
</section> <section id="outline-container-Subscribe-and-donate,-links-and-blurb" class="outline-2"> <h2 id="Subscribe-and-donate,-links-and-blurb"> <span class="section-number-2">3.</span>  <a href="#Subscribe-and-donate,-links-and-blurb">Subscribe and donate, links and blurb</a></h2>
 <div class="outline-text-2" id="text-Subscribe-and-donate,-links-and-blurb">
 <dl class="org-dl"> <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
 <dt>Permalink</dt> <dd> <a href="https://lockywolf.net/2022_The-Book-Of-Change-by-Richard-Rutt.d/index.html">https://lockywolf.net/2022_The-Book-Of-Change-by-Richard-Rutt.d/index.html</a></dd>
 <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>Blog</dt> <dd> <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></dd>
 <dt>Liberapay + Paypal + Patreon</dt> <dd>See the bottom of the page.</dd>
</dl> <p>
If you donate to me, I will have more time and be able to spend more effort on producing stuff.
</p>
</div>
</section> <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">4.</span>  <a href="#Words">Words</a></h2>
 <div class="outline-text-2" id="text-Words">
 <ol class="org-ol"> <li>roughage :: Substances, generally of plant origin, consisting mostly of complex carbohydrates which are undigested when eaten by humans, and which therefore help the passage of food and waste through the alimentary tract; dietary fibre.</li>
 <li>dodder ::</li>
 <li>malus toringo ::</li>
 <li>pennons ::</li>
 <li>glum ::</li>
 <li>sojourners ::</li>
 <li>juncture :: a particular point in events or time</li>
 <li>bedight ::</li>
 <li>flaying ::</li>
 <li>ridge-pole ::</li>
 <li>oriole ::</li>
 <li>dustpan ::</li>
 <li>espy ::</li>
 <li>carter ::</li>
 <li>shouldering ::</li>
 <li>unloosing ::</li>
 <li>tether ::</li>
 <li>concur ::</li>
 <li>bucking ::</li>
 <li>bustle ::</li>
 <li>pinions ::</li>
 <li>bide ::</li>
 <li>betide ::</li>
 <li>dragon soaring away ::</li>
 <li>woodsman ::</li>
 <li>fording ::</li>
 <li>scud ::</li>
 <li>pithouse ::</li>
 <li>pitchpipes ::</li>
 <li>earthenware ::</li>
 <li>mustering ::</li>
 <li>herbage ::</li>
 <li>glee ::</li>
 <li>scrunch ::</li>
 <li>ripping ::</li>
 <li>pilloried on the stone ::</li>
 <li>mildew ::</li>
 <li>keening ::</li>
 <li>cangue ::</li>
 <li>sheen ::</li>
 <li>knolls ::</li>
 <li>flaying ::</li>
 <li>ewe ::</li>
 <li>hornboard ::</li>
 <li>tusks ::</li>
 <li>gelded ::</li>
 <li>gnarled ::</li>
 <li>warp ::</li>
 <li>wading ::</li>
 <li>Lackaday ::</li>
 <li>Hither and thither ::</li>
 <li>distraught ::</li>
 <li>quarry ::</li>
 <li>espy ::</li>
 <li>come nigh ::</li>
 <li>unwrought ::</li>
 <li>wailing ::</li>
 <li>boughs ::</li>
 <li>awry ::</li>
 <li>cleaving ::</li>
 <li>reaving ::</li>
 <li>moon waxes full ::</li>
 <li>pennons ::</li>
 <li>tabor-beats ::</li>
 <li>dirge ::</li>
 <li>sundried ::</li>
 <li>asterism ::</li>
 <li>mordant ::</li>
 <li>Black-naped Oriole ::</li>
 <li>mantic ::</li>
 <li>modicum ::</li>
 <li>gobbets ::</li>
 <li>dogged ::</li>
 <li>antepenultimate ::</li>
 <li>burnished ::</li>
 <li>rill ::</li>
 <li>sycophant ::</li>
 <li>toady ::</li>
 <li>brushwood :: wood of small branches especially when cut or broken</li>
 <li>Hither and thither :: there and back</li>
 <li>distraught :: not “distracted”, but rather “unhinged”</li>
 <li>bough :: сук</li>
 <li>scion :: a piece of a tree transplanted onto a different tree</li>
 <li>jumble :: an orderless mess, a chaotic pile of stuff</li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2022_The-Book-Of-Change-by-Richard-Rutt.d/index.html"/>
  <id>https://lockywolf.net/2022_The-Book-Of-Change-by-Richard-Rutt.d/index.html</id>
  <updated>2025-07-09T00:00:00+00:00</updated>
</entry>
<entry>
  <title>How to I learnt Chinese.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How to I learnt Chinese.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Body">1.  <span class="todo TODO">TODO</span> Body</a>
 <ul> <li> <a href="#References">1.1.  <span class="todo TODO">TODO</span> References</a></li>
 <li> <a href="#Text">1.2.  <span class="todo TODO">TODO</span> Text</a></li>
 <li> <a href="#Counting-words-I-have-learnt-overtime">1.3. Counting words I have learnt overtime</a>
 <ul> <li> <a href="#Counting-words">1.3.1. Counting words</a></li>
 <li> <a href="#Generating-a-plot">1.3.2. Generating a plot</a></li>
 <li> <a href="#Result">1.3.3. Result</a></li>
</ul></li>
 <li> <a href="#Generating-a-list-of-hard-characters">1.4. Generating a list of hard characters</a></li>
</ul></li>
</ul></div>
</nav> <p>
Todo: this is a post-mortem of learning Chinese as a foreign language, for those who would like to try it themselves, to assess time and effort needed.
</p>

 <section id="outline-container-Body" class="outline-2"> <h2 id="Body"> <span class="section-number-2">1.</span>  <a href="#Body"> <span class="todo TODO">TODO</span> Body</a></h2>
 <div class="outline-text-2" id="text-Body">
</div>

 <div id="outline-container-References" class="outline-3">
 <h3 id="References"> <span class="section-number-3">1.1.</span>  <a href="#References"> <span class="todo TODO">TODO</span> References</a></h3>
 <div class="outline-text-3" id="text-References">
 <ol class="org-ol"> <li> <a href="https://github.com/cschiller/zhongwen/">https://github.com/cschiller/zhongwen/</a> :: firefox extension dictionary</li>
 <li>panlatin (sound hints) :: firefox extension</li>
 <li>Pleco</li>
 <li>ChinesePOD</li>
 <li>Mao’s Little Red Book</li>
 <li>The Little Schemer</li>
 <li>Zhihu</li>
 <li>Private offline teacher</li>
 <li>Word plotting from pleco backups</li>
 <li>Chinese Word Separator</li>
 <li>fcitx5</li>
 <li>mdbg</li>
 <li>cedict, cc-cedict</li>
 <li>opencc</li>
 <li>Anki</li>
 <li>ctext.org</li>
 <li>Book of Change</li>
 <li>Emacs’ “pinyin with tone marks” input method.</li>
</ol></div>
</div>

 <div id="outline-container-Text" class="outline-3">
 <h3 id="Text"> <span class="section-number-3">1.2.</span>  <a href="#Text"> <span class="todo TODO">TODO</span> Text</a></h3>
 <div class="outline-text-3" id="text-Text">
</div>
</div>

 <div id="outline-container-Counting-words-I-have-learnt-overtime" class="outline-3">
 <h3 id="Counting-words-I-have-learnt-overtime"> <span class="section-number-3">1.3.</span>  <a href="#Counting-words-I-have-learnt-overtime">Counting words I have learnt overtime</a></h3>
 <div class="outline-text-3" id="text-Counting-words-I-have-learnt-overtime">
</div>

 <div id="outline-container-Counting-words" class="outline-4">
 <h4 id="Counting-words"> <span class="section-number-4">1.3.1.</span>  <a href="#Counting-words">Counting words</a></h4>
 <div class="outline-text-4" id="text-Counting-words">
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">!/bin/</span> <span style="font-weight: bold;">bash</span> <span style="font-weight: bold; font-style: italic;">
</span> <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">-*- mode:sh; -*-
</span> <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">Time-stamp: <2024-12-12 19:32:34 lockywolf>
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+title: Print word usage from time, learning Chinese.
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+author: 
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+date: 
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+created: <2024-05-09 Thu 13:19:26>
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+refiled:
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+language: bash
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+category: 
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+filetags: 
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+creator: Emacs-30.0.50/org-mode-9.7-pre
</span>
 <span style="font-weight: bold;">if</span> [[ $ <span style="font-weight: bold; font-style: italic;">1</span> ==  <span style="font-style: italic;">""</span> ]] ;  <span style="font-weight: bold;">then</span>
  printf  <span style="font-style: italic;">"usage: %s <dir>"</span>  <span style="font-style: italic;">"$0"</span>
 <span style="font-weight: bold;">fi</span>

{
 <span style="font-weight: bold;">echo</span> date words-learnt
 <span style="font-weight: bold;">for</span> f <span style="font-weight: bold;"> in</span>  <span style="font-style: italic;">"$1"</span>/*.pqb ;  <span style="font-weight: bold;">do</span>
 <span style="font-weight: bold; font-style: italic;">#  </span> <span style="font-weight: bold; font-style: italic;">echo "$f"
</span>   <span style="font-weight: bold; font-style: italic;">REG</span>= <span style="font-style: italic;">'flashbackup-([[:digit:]]{10})\.pqb'</span>
   <span style="font-weight: bold;">if</span> [[  <span style="font-style: italic;">"$f"</span> =~ $ <span style="font-weight: bold; font-style: italic;">REG</span> ]] ;  <span style="font-weight: bold;">then</span>
 <span style="font-weight: bold; font-style: italic;">#    </span> <span style="font-weight: bold; font-style: italic;">echo matches "${BASH_REMATCH[1]}"
</span>     <span style="font-weight: bold; font-style: italic;">cdate</span>= <span style="font-style: italic;">"${BASH_REMATCH[1]}"</span>
     <span style="font-weight: bold; font-style: italic;">ndate</span>=$(stat --format= <span style="font-style: italic;">'%y'</span>  <span style="font-style: italic;">"$f"</span> | cut -f 1 -d  <span style="font-style: italic;">' '</span>)
     <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">ndate=$(date --date="$ndate" +%s)
</span>   <span style="font-weight: bold;">else</span>
     <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"not matches!"</span>
     <span style="font-weight: bold;">exit</span> 1
   <span style="font-weight: bold;">fi</span>
   <span style="font-weight: bold; font-style: italic;">nwords</span>=$(sqlite3  <span style="font-style: italic;">"$f"</span>  <span style="font-style: italic;">'select count(*) from pleco_flash_cards;'</span>)
  printf  <span style="font-style: italic;">"%s %s\n"</span>  <span style="font-style: italic;">"$ndate"</span>  <span style="font-style: italic;">"$nwords"</span>

 <span style="font-weight: bold;">done</span> } > print-word-usages.csv

 <span style="font-weight: bold;">echo</span> finished successfully
</pre>
</div>
</div>
</div>

 <div id="outline-container-Generating-a-plot" class="outline-4">
 <h4 id="Generating-a-plot"> <span class="section-number-4">1.3.2.</span>  <a href="#Generating-a-plot">Generating a plot</a></h4>
 <div class="outline-text-4" id="text-Generating-a-plot">
</div>
</div>

 <div id="outline-container-Result" class="outline-4">
 <h4 id="Result"> <span class="section-number-4">1.3.3.</span>  <a href="#Result">Result</a></h4>
 <div class="outline-text-4" id="text-Result">
 <p>
(This plot is outdated, and not re-generated regularly.)
</p>


 <figure id="orgddec827"> <img src="./output_graph.jpg" alt="output_graph.jpg"></img></figure></div>
</div>
</div>

 <div id="outline-container-Generating-a-list-of-hard-characters" class="outline-3">
 <h3 id="Generating-a-list-of-hard-characters"> <span class="section-number-3">1.4.</span>  <a href="#Generating-a-list-of-hard-characters">Generating a list of hard characters</a></h3>
 <div class="outline-text-3" id="text-Generating-a-list-of-hard-characters">
 <p>
I used this list for the Chinese “alphabet”  <a href="https://www.hanyuguoxue.com/zidian/guifanhanzi-sn-3">https://www.hanyuguoxue.com/zidian/guifanhanzi-sn-3</a> , because full UNICODE is too huge.
It has four groups: easy characters, middle characters, hard characters, and the rest, seldom used characters.
</p>

 <p>
This script has a few nice features:
</p>

 <ol class="org-ol"> <li>It is still pure UNIX: bash, sed, grep, and awk, even though it does “statistical data analysis”.</li>
 <li>Sequential string character processing in bash is horrible (unicode BAD, BAD!), but there is a nice trick around it.</li>
 <li>OpenCC is a very nice tool for simplified<->traditional conversion, and this is the first time in my life I actually used co-processes in a script (albeit not in BASH).</li>
 <li> <code>grep -P '[\p{Han}]'</code> is really useful.</li>
</ol> <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">!/bin/</span> <span style="font-weight: bold;">bash</span> <span style="font-weight: bold; font-style: italic;">
</span> <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">-*- mode:sh; -*-
</span> <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">Time-stamp: <2025-07-07 09:05:01 lockywolf>
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+title: Make word statistics in bash.
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+author: 
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+date: 
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+created: <2025-07-05 Sat 21:44:56>
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+refiled:
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+language: bash
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+category: 
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+tags: 
</span> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">+creator: Emacs-31.0.50/org-mode-9.7-pre
</span>
 <span style="font-weight: bold;">set</span> -x

 <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">echo "你好嗎 新年好。全型句號" | sed -e 's/\(.\)/\1\n/g'
</span>


 <span style="font-weight: bold;">for</span> i <span style="font-weight: bold;"> in</span> 1 2 3;  <span style="font-weight: bold;">do</span>
  time sed -e  <span style="font-style: italic;">'s/\(.\)/\1\n/g'</span> level-$ <span style="font-weight: bold; font-style: italic;">i</span>-source.txt | grep -P  <span style="font-style: italic;">'[\p{Han}]'</span> | sort <span style="font-style: italic;">\</span>
    | uniq  > level-$ <span style="font-weight: bold; font-style: italic;">i</span>-processed.txt
 <span style="font-weight: bold;">done</span>


 <span style="font-weight: bold; font-style: italic;">filename</span>=$(  <span style="font-weight: bold;">cd</span> ~/Syncthing_2021/Oneplus-5t-sdcard/2020-06-15-Pleco_backups
            readlink -f $(find . -iname  <span style="font-style: italic;">'flashbackup-*.pqb'</span> | sort  -r | head -n1))

 <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"$filename"</span>

time sqlite3 -cmd  <span style="font-style: italic;">'select * from pleco_flash_cards ; '</span>  <span style="font-style: italic;">"$filename"</span> </dev/null  <span style="font-style: italic;">\</span>
  | sed -e  <span style="font-style: italic;">'s/\(.\)/\1\n/g'</span> | grep -P  <span style="font-style: italic;">'[\p{Han}]'</span> | sort | uniq > my-characters.txt



 <span style="font-weight: bold; font-style: italic;">#  </span> <span style="font-weight: bold; font-style: italic;">| awk --field-separator='' '{ for (i=1; i<NF ; i++)  ;}'
</span>
 <span style="font-weight: bold;">if</span> [[ ! -d ./sources ]] ;  <span style="font-weight: bold;">then</span>
   <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">"you must mkdir ./sources and copy your source files there"</span>
   <span style="font-weight: bold;">exit</span> 2
 <span style="font-weight: bold;">fi</span>

time find -L . -type f -iname  <span style="font-style: italic;">'*html'</span> -exec cat {} +  <span style="font-style: italic;">\</span>
  | awk --field-separator= <span style="font-style: italic;">''</span>  <span style="font-style: italic;">'BEGIN{distribution[a]=1} { for (i=1; i<NF ; i++) if( $i in distribution ) { distribution[$i]++ } else {distribution[$i]=1} ;} END{ for (char in distribution ) { print distribution[char] " : " char  } ; }'</span>  <span style="font-style: italic;">\</span>
  | grep -P  <span style="font-style: italic;">'[\p{Han}]'</span>  | sort -V -r   <span style="font-style: italic;">\</span>
  | awk  <span style="font-style: italic;">'BEGIN{while(( getline tmp < "my-characters.txt") > 0) {mine[tmp]=1 ; } ;
               while(( getline tmp < "level-1-processed.txt") > 0) {level1[tmp]=1 ; } ;
               while(( getline tmp < "level-2-processed.txt") > 0) {level2[tmp]=1 ; } ;
               while(( getline tmp < "level-3-processed.txt") > 0) {level3[tmp]=1 ; } ;
  }
{printf( "%4d" " : " "%6d : %s"  " : " , NR, $1, $3);
if ($3 in mine) {printf("  seen") ; } else {printf("unseen")}; printf(" : ");
if ($3 in level1) {printf("1"); } else if ($3 in level2) {printf("2") } else if ($3 in level3) {printf("3");} else {printf("0");}
 print $3 |& "opencc -c /usr/share/opencc/t2s.json" ;
 "opencc -c /usr/share/opencc/t2s.json" |& getline tmp ;
 printf(" : " tmp )
 print ""; }'</span> > sorted.txt
</pre>
</div>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-07-02_how-I-learnt-Chinese.d/index.html"/>
  <id>https://lockywolf.net/2025-07-02_how-I-learnt-Chinese.d/index.html</id>
  <updated>2025-07-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>How to digitise a book in 2025.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How to digitise a book in 2025.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Body">1. Body</a>
 <ul> <li> <a href="#Scan-a-book-into-TIFF-or-PNG.">1.1. Scan a book into TIFF or PNG.</a></li>
 <li> <a href="#Fix-deformities-using-scantailor-or-unpaper.">1.2. Fix deformities using scantailor or unpaper.</a></li>
 <li> <a href="#Compress-the-images.">1.3. Compress the images.</a></li>
 <li> <a href="#Combine-the-pages-into-a-single-PDF.">1.4. Combine the pages into a single PDF.</a></li>
 <li> <a href="#Add-a-text-search-layer-(OCR)-to-a-file-using-ocrmypdf.">1.5. Add a text search layer (OCR) to a file using ocrmypdf.</a></li>
 <li> <a href="#Add-%22roman-page-numbers%22-and-add-a-Table-of-Contents.">1.6. Add “roman page numbers” and add a Table of Contents.</a></li>
 <li> <a href="#(Optional)-Try-to-convert-a-pdf-book-to-epub.">1.7. (Optional) Try to convert a pdf book to epub.    <span class="tag"> <span class="optional">optional</span></span></a></li>
 <li> <a href="#Enjoy-yourself.">1.8. Enjoy yourself.</a></li>
</ul></li>
</ul></div>
</nav> <p>
In this HOWTO I want to digitise a book in 2025, with minimal effort.
</p>

 <p>
In short, it involves the following:
</p>

 <ol class="org-ol"> <li>Scan a book into TIFF or PNG.</li>
 <li>Fix scan deformities using scantailor.</li>
 <li>Compress image files until they have a sensible size.
 <ol class="org-ol"> <li>(Optional) Make different versions of the book for different use-cases, e.g. colourful and grayscale.</li>
</ol></li>
 <li>Combine the images into a single PDF using LaTeX or ocrmypdf.</li>
 <li>Add a text search layer (OCR) to a file using ocrmypdf.</li>
 <li>Add “roman page numbers” using python/mupdf/PyMuPDF/fitz or LaTeX.</li>
 <li>Add a Table of Contents (TOC), using python/mupdf/PyMuPDF/fitz or LaTeX.</li>
 <li>(Optional) Try to convert a pdf book to epub.</li>
 <li>Upload it where need it to be available.</li>
</ol> <p>
This task is a bit of a pain, but if you use a book often, it is worth it.
</p>

 <p>
Throughout this HOWTO I assume that this is your own book.
</p>

 <section id="outline-container-Body" class="outline-2"> <h2 id="Body"> <span class="section-number-2">1.</span>  <a href="#Body">Body</a></h2>
 <div class="outline-text-2" id="text-Body">
</div>

 <div id="outline-container-Scan-a-book-into-TIFF-or-PNG." class="outline-3">
 <h3 id="Scan-a-book-into-TIFF-or-PNG."> <span class="section-number-3">1.1.</span>  <a href="#Scan-a-book-into-TIFF-or-PNG.">Scan a book into TIFF or PNG.</a></h3>
 <div class="outline-text-3" id="text-Scan-a-book-into-TIFF-or-PNG.">
 <p>
This is the easiest if you have a stack of paper sheets, and you can put them into a scanner which supports scanning stacks.
However, this is often not the case.
</p>

 <p>
In this HOWTO we have a slightly worse case, when we have a webcam, which is focused well on the book pages, the books is fixed on the table, and but you need to turn the pages manually.
</p>

 <p>
On screen 4, there is a webcam program, which looks at the book’s page.
You need to turn pages manually in 5 seconds.
Increase the delay if you need it.
</p>

 <div class="org-src-container">
 <pre class="src src-bash">pkill -f screensaver  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">we do not want to screenshot the lockscreen
</span>sleep 3
xdotool key Super+4  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">switch to desktop 4
</span>sleep 3

 <span style="font-weight: bold;">for</span> ((  <span style="font-weight: bold; font-style: italic;">i</span>=1 ; i<100 ; i++ )) ;  <span style="font-weight: bold;">do</span>
  sleep 5
  scrot -a 70,80,925,1500 -f page-$(printf  <span style="font-style: italic;">'%04d'</span> $ <span style="font-weight: bold; font-style: italic;">i</span>).png  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">page dimensions
</span>  xdotool key Right  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">prevent X11 from sleeping
</span> <span style="font-weight: bold;">done</span>

xdotool key Super+3
xscreensaver-demo &  <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">restore screensaver</span>
</pre>
</div>

 <p>
You might think that calling the webcam program to do screenshot is better, and it may be in your case, but in my case a screenshot was perfectly fine.
</p>

 <p>
As a result you will have a directory of book pages scans.
</p>
</div>
</div>

 <div id="outline-container-Fix-deformities-using-scantailor-or-unpaper." class="outline-3">
 <h3 id="Fix-deformities-using-scantailor-or-unpaper."> <span class="section-number-3">1.2.</span>  <a href="#Fix-deformities-using-scantailor-or-unpaper.">Fix deformities using scantailor or unpaper.</a></h3>
 <div class="outline-text-3" id="text-Fix-deformities-using-scantailor-or-unpaper.">
 <p>
This HOWTO point is small, because you’d better go and try using scantailor-advanced yourself to learn the intuition.
</p>

 <p>
You can also try “unpaper” if you want to try a fully automatic method.
</p>
</div>
</div>

 <div id="outline-container-Compress-the-images." class="outline-3">
 <h3 id="Compress-the-images."> <span class="section-number-3">1.3.</span>  <a href="#Compress-the-images.">Compress the images.</a></h3>
 <div class="outline-text-3" id="text-Compress-the-images.">
 <div class="org-src-container">
 <pre class="src src-bash">printf  <span style="font-style: italic;">"Converting to Black-and-White\n"</span>
 <span style="font-weight: bold; font-style: italic;">TMP</span>=temp-bw-png
rm -rf $ <span style="font-weight: bold; font-style: italic;">TMP</span>
mkdir $ <span style="font-weight: bold; font-style: italic;">TMP</span>
time seq -w 0000 $((nfiles-1)) | parallel -j $(nproc) convert -colorspace Gray  scans/page-{}.png $ <span style="font-weight: bold; font-style: italic;">TMP</span>/page-{}.png

 <span style="font-weight: bold; font-style: italic;">TMP</span>=temp-bw-jpg
rm -rf $ <span style="font-weight: bold; font-style: italic;">TMP</span>
mkdir $ <span style="font-weight: bold; font-style: italic;">TMP</span>
time seq -w 0000 $((nfiles-1)) | parallel -j $(nproc) convert -colorspace Gray  -quality 90 scans/page-{}.png $ <span style="font-weight: bold; font-style: italic;">TMP</span>/page-{}.jpg
</pre>
</div>

 <p>
 <code>parallel</code> runs the programs in parallel to use all CPU resources.
</p>
</div>
</div>

 <div id="outline-container-Combine-the-pages-into-a-single-PDF." class="outline-3">
 <h3 id="Combine-the-pages-into-a-single-PDF."> <span class="section-number-3">1.4.</span>  <a href="#Combine-the-pages-into-a-single-PDF.">Combine the pages into a single PDF.</a></h3>
 <div class="outline-text-3" id="text-Combine-the-pages-into-a-single-PDF.">
 <p>
There are two ways of doing so.
</p>

 <ol class="org-ol"> <li> <code>ocrmypdf</code></li>
 <li> <code>LaTeX</code></li>
</ol> <p>
 <code>ocrmypdf</code> is easier, you can just run something like
</p>

 <div class="org-src-container">
 <pre class="src src-bash">ocrmypdf scans/*png index.pdf
</pre>
</div>

 <p>
But LaTeX gives more control over pages, allows adding stuff, and in general is more flexible.
</p>

 <p>
The tricky thing here is the  <code>colors</code> dictionary, it needs to be measured from the images by hand.
You can use  <code>kcolorpicker</code> or anything else, or even try to extract it from the pages using  <code>imagemagick</code>.
It is actually quite necessary, because without good background tesseract fails to perform OCR.
</p>

 <div class="org-src-container">
 <pre class="src src-bash">declare -A colors
colors[scans]= <span style="font-style: italic;">"A5A099"</span>
colors[temp-bw-png]= <span style="font-style: italic;">"9A9A9A"</span>
colors[temp-bw-jpg]= <span style="font-style: italic;">"9A9A9A"</span>
 <span style="font-weight: bold; font-style: italic;">dirs</span>=(scans temp-bw-png temp-bw-jpg)
 <span style="font-weight: bold;">for</span> t <span style="font-weight: bold;"> in</span> ${ <span style="font-weight: bold; font-style: italic;">dirs</span>[@]} ;  <span style="font-weight: bold;">do</span>
   <span style="font-weight: bold; font-style: italic;">FILENAME</span>= <span style="font-style: italic;">"index-$t"</span>
   <span style="font-weight: bold; font-style: italic;">FULLPATH</span>= <span style="font-style: italic;">"$WORKINGDIR"</span>/ <span style="font-style: italic;">"${FILENAME}.tex"</span>
  cat >  <span style="font-style: italic;">"$FULLPATH"</span> <<EOF <span style="font-weight: bold;">
  \documentclass[a4paper]{article}
  \usepackage{hyperref} % roman numbering and TOC
  \usepackage[dvipsnames]{xcolor} % background
  % taken from the file with colorpicker
  % greatly improves OCR
  \definecolor{Mycolor2}{HTML}{${colors[$t]}}
  \usepackage[margin=0in]{geometry} % no margins
  \usepackage{graphicx} % for image inclusion
  \begin{document}
  \pagecolor{Mycolor2}
  \pagenumbering{Alph} % front cover is neither roman nor arabic page
  \begin{center}
  EOF
</span>   <span style="font-weight: bold; font-style: italic;">i</span>=0
   <span style="font-weight: bold;">for</span> p <span style="font-weight: bold;"> in</span> $ <span style="font-weight: bold; font-style: italic;">t</span>/*
   <span style="font-weight: bold;">do</span>
     <span style="font-weight: bold; font-style: italic;">i</span>=$((i+1))
     <span style="font-weight: bold; font-style: italic;">#  </span> <span style="font-weight: bold; font-style: italic;">if (( i > 55 )) ; then break ; fi
</span>     <span style="font-weight: bold;">if</span> (( i == 3 )) ;  <span style="font-weight: bold;">then</span>
      printf  <span style="font-style: italic;">'%s'</span>  <span style="font-style: italic;">"\\pagenumbering{roman}"</span> >> $ <span style="font-weight: bold; font-style: italic;">FULLPATH</span>
     <span style="font-weight: bold;">else</span>
      :
     <span style="font-weight: bold;">fi</span>
    printf  <span style="font-style: italic;">'%s'</span>  <span style="font-style: italic;">"\\includegraphics[height=\\paperheight,keepaspectratio]{$(readlink -f $p)}"</span> >> $ <span style="font-weight: bold; font-style: italic;">FULLPATH</span>
     <span style="font-weight: bold;">if</span> (( i == 39 )) ;  <span style="font-weight: bold;">then</span>
      printf  <span style="font-style: italic;">'%s\n'</span>  <span style="font-style: italic;">'\pagenumbering{arabic} '</span> >> $ <span style="font-weight: bold; font-style: italic;">FULLPATH</span>
     <span style="font-weight: bold;">fi</span>
     <span style="font-weight: bold;">if</span> (( i != nfiles)) ;  <span style="font-weight: bold;">then</span>
      printf  <span style="font-style: italic;">'%s\n'</span>  <span style="font-style: italic;">'\newpage'</span> >> $ <span style="font-weight: bold; font-style: italic;">FULLPATH</span>
     <span style="font-weight: bold;">fi</span>
   <span style="font-weight: bold;">done</span>
  cat >>  <span style="font-style: italic;">"$FULLPATH"</span> <<EOF <span style="font-weight: bold;">

    \end{center}
  \end{document}
  EOF
</span> <span style="font-weight: bold;">done</span>
 <span style="font-weight: bold;">for</span> t <span style="font-weight: bold;"> in</span> ${ <span style="font-weight: bold; font-style: italic;">dirs</span>[@]} ;  <span style="font-weight: bold;">do</span>
   <span style="font-weight: bold; font-style: italic;">FILENAME</span>= <span style="font-style: italic;">"index-$t"</span>
  ( <span style="font-weight: bold;">cd</span>   <span style="font-style: italic;">"$WORKINGDIR"</span>
   printf  <span style="font-style: italic;">"Building pdf for %s\n"</span>  <span style="font-style: italic;">"$FILENAME"</span>
   time lualatex  <span style="font-style: italic;">"$FILENAME.tex"</span> > /dev/null
  )
  printf  <span style="font-style: italic;">"Non-OCRed file is  is %s\n"</span>  <span style="font-style: italic;">"$WORKINGDIR"</span>/ <span style="font-style: italic;">"$FILENAME.pdf"</span>
  ls -lh  <span style="font-style: italic;">"$WORKINGDIR"</span>/ <span style="font-style: italic;">"$FILENAME.pdf"</span>
 <span style="font-weight: bold;">done</span>
</pre>
</div>
</div>
</div>

 <div id="outline-container-Add-a-text-search-layer-(OCR)-to-a-file-using-ocrmypdf." class="outline-3">
 <h3 id="Add-a-text-search-layer-(OCR)-to-a-file-using-ocrmypdf."> <span class="section-number-3">1.5.</span>  <a href="#Add-a-text-search-layer-(OCR)-to-a-file-using-ocrmypdf.">Add a text search layer (OCR) to a file using ocrmypdf.</a></h3>
 <div class="outline-text-3" id="text-Add-a-text-search-layer-(OCR)-to-a-file-using-ocrmypdf.">
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold;">for</span> t <span style="font-weight: bold;"> in</span> ${ <span style="font-weight: bold; font-style: italic;">dirs</span>[@]} ;  <span style="font-weight: bold;">do</span>
   <span style="font-weight: bold; font-style: italic;">FILENAME</span>= <span style="font-style: italic;">"index-$t"</span>
  ( <span style="font-weight: bold;">cd</span>   <span style="font-style: italic;">"$WORKINGDIR"</span>
   printf  <span style="font-style: italic;">"OCRing the pdf %s\n"</span>  <span style="font-style: italic;">"$FILENAME"</span>
   time ocrmypdf --force-ocr  <span style="font-style: italic;">"$FILENAME.pdf"</span>  <span style="font-style: italic;">"$FILENAME.ocr.pdf"</span>
  )
  printf  <span style="font-style: italic;">"Your ready to use file is %s\n"</span>  <span style="font-style: italic;">"$WORKINGDIR"</span>/ <span style="font-style: italic;">"$FILENAME.ocr.pdf"</span>
  ls -lh  <span style="font-style: italic;">"$WORKINGDIR"</span>/ <span style="font-style: italic;">"$FILENAME.ocr.pdf"</span>
 <span style="font-weight: bold;">done</span>
</pre>
</div>

 <p>
Nothing really to comment here, because it is self-evident.
</p>

 <p>
Note that  <code>ocrmypdf</code> can, in principle, do more than just OCR, look at  <code>ocrmypdf --help</code>.
In particular, it can call  <code>unpaper</code> for some post-processing, compress pages into a PDF file without you having to perform the  <code>parallel</code> step, et cetera.
</p>
</div>
</div>

 <div id="outline-container-Add-%22roman-page-numbers%22-and-add-a-Table-of-Contents." class="outline-3">
 <h3 id="Add-%22roman-page-numbers%22-and-add-a-Table-of-Contents."> <span class="section-number-3">1.6.</span>  <a href="#Add-%22roman-page-numbers%22-and-add-a-Table-of-Contents.">Add “roman page numbers” and add a Table of Contents.</a></h3>
 <div class="outline-text-3" id="text-Add-%22roman-page-numbers%22-and-add-a-Table-of-Contents.">
 <p>
You have to write a TOC manually, because there is no fully-automatic algorithm to do it.
</p>

 <p>
However, not all is lost, if the OCR process succeeded, you can copy at least some of the data from the recognised table of contents in the PDF.
</p>

 <div class="org-src-container">
 <pre class="src src-python"> <span style="font-weight: bold;">import</span> fitz   <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">PyMuPDF
</span>

 <span style="font-weight: bold;">def</span>  <span style="font-weight: bold;">add_toc_to_pdf</span>(input_pdf, output_pdf, toc_entries):
     <span style="font-style: italic;">"""
    Example of toc_entries:
    [
        [1, 'Chapter 1', 1],
        [2, 'Section 1.1', 2],
        [2, 'Section 1.2', 3],
        [1, 'Chapter 2', 4],
        [2, 'Section 2.1', 5]
    ]
    """</span>
    pdf_document = fitz. <span style="font-weight: bold;">open</span>(input_pdf)
    pdf_document.set_toc(toc_entries)
 <span style="font-weight: bold; font-style: italic;">#    </span> <span style="font-weight: bold; font-style: italic;">pdf_document.set_page_labels([{'startpage': 1, 'style': 'r', 'firstpagenum': 1},
</span> <span style="font-weight: bold; font-style: italic;">#                                  </span> <span style="font-weight: bold; font-style: italic;">{'startpage': 39, 'style': 'D', 'firstpagenum': 1}])
</span>    pdf_document.save(output_pdf)
     <span style="font-weight: bold;">print</span>(f <span style="font-style: italic;">"Table of contents added and saved to </span>{output_pdf} <span style="font-style: italic;">"</span>)

 <span style="font-weight: bold; font-style: italic;">toc_entries</span> =     [
        [1,  <span style="font-style: italic;">'Chapter 1'</span>, 1],
        [2,  <span style="font-style: italic;">'Section 1.1'</span>, 2],
        [2,  <span style="font-style: italic;">'Section 1.2'</span>, 3],
        [1,  <span style="font-style: italic;">'Chapter 2'</span>, 4],
        [2,  <span style="font-style: italic;">'Section 2.1'</span>, 5]
    ]

add_toc_to_pdf(  <span style="font-style: italic;">"bookmaker-temp/index-scans.ocr.pdf"</span>,  <span style="font-style: italic;">"bookmaker-temp/index-scans.ocr.withtoc.pdf"</span> , toc_entries)
</pre>
</div>

 <p>
Look at the commented part:  <code>pdf_document.set_page_labels</code>.
Style  <code>D</code> is “digits”, and  <code>r</code> is “roman numbers”.
</p>

 <p>
In theory you can add roman numbering right in this script, and dispense with the use LaTeX.
</p>
</div>
</div>

 <div id="outline-container-(Optional)-Try-to-convert-a-pdf-book-to-epub." class="outline-3">
 <h3 id="(Optional)-Try-to-convert-a-pdf-book-to-epub."> <span class="section-number-3">1.7.</span>  <a href="#(Optional)-Try-to-convert-a-pdf-book-to-epub.">(Optional) Try to convert a pdf book to epub.    <span class="tag"> <span class="optional">optional</span></span></a></h3>
 <div class="outline-text-3" id="text-(Optional)-Try-to-convert-a-pdf-book-to-epub.">
 <p>
Extract the text.
</p>

 <div class="org-src-container">
 <pre class="src src-bash">pdfgrep  <span style="font-style: italic;">''</span> index-scans.ocr.withtoc.pdf > booktext.txt
</pre>
</div>

 <p>
Tesseract would give you a decent, but “stupid” conversion, without recognising page structure, so you might want to try some more advanced tools or services.
(I tried  <code>Mathpix</code>, but up to you.)
</p>

 <p>
From the text and the TOC you can try and make the epub, but it is far more work than everything above combined.
</p>
</div>
</div>

 <div id="outline-container-Enjoy-yourself." class="outline-3">
 <h3 id="Enjoy-yourself."> <span class="section-number-3">1.8.</span>  <a href="#Enjoy-yourself.">Enjoy yourself.</a></h3>
 <div class="outline-text-3" id="text-Enjoy-yourself.">
 <p>
Upload your book where you want, say, on your website, and feel the inner glow of joy overwhelming you.
</p>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-07-08_How-to-digitise-a-book-in-2025.d/index.html"/>
  <id>https://lockywolf.net/2025-07-08_How-to-digitise-a-book-in-2025.d/index.html</id>
  <updated>2025-07-05T00:00:00+00:00</updated>
</entry>
<entry>
  <title>How nerds love.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How nerds love.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Body">1.  <span class="todo TODO">TODO</span> Body</a>
 <ul> <li> <a href="#Harry-Lee-Kuan-Yew,-Father-of-independent-Singapore.">1.1.  <span class="todo TODO">TODO</span> Harry Lee Kuan Yew, Father of independent Singapore.</a></li>
 <li> <a href="#Indira-Gandhi">1.2.  <span class="todo TODO">TODO</span> Indira Gandhi</a></li>
 <li> <a href="#Michel-Talagrand,-Mathematician.">1.3.  <span class="todo TODO">TODO</span> Michel Talagrand, Mathematician.</a></li>
 <li> <a href="#Benjamin-Disraeli,-British-Prime-Minister.">1.4.  <span class="todo TODO">TODO</span> Benjamin Disraeli, British Prime Minister.</a></li>
 <li> <a href="#Stendhal-(Marie-Henri-Beyle),-Writer-and-diplomat.">1.5.  <span class="todo TODO">TODO</span> Stendhal (Marie-Henri Beyle), Writer and diplomat.</a></li>
 <li> <a href="#Somerset-Maugham,-British-Writer-and-Spy.">1.6.  <span class="todo TODO">TODO</span> Somerset Maugham, British Writer and Spy.</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Body" class="outline-2"> <h2 id="Body"> <span class="section-number-2">1.</span>  <a href="#Body"> <span class="todo TODO">TODO</span> Body</a></h2>
 <div class="outline-text-2" id="text-Body">
</div>

 <div id="outline-container-Harry-Lee-Kuan-Yew,-Father-of-independent-Singapore." class="outline-3">
 <h3 id="Harry-Lee-Kuan-Yew,-Father-of-independent-Singapore."> <span class="section-number-3">1.1.</span>  <a href="#Harry-Lee-Kuan-Yew,-Father-of-independent-Singapore."> <span class="todo TODO">TODO</span> Harry Lee Kuan Yew, Father of independent Singapore.</a></h3>
 <div class="outline-text-3" id="text-Harry-Lee-Kuan-Yew,-Father-of-independent-Singapore.">
 <p>
Married his high school classmate Choo Kwa Geok.
</p>

 <p>
They began dating before his departure to England, later he solicited for her a vacancy in Cambridge, and when she arrived they married in secret, and lived together for three more years.
After return to Singapore they made an official Singaporean marriage ceremony and staid together till the bitter end.
</p>

 <blockquote>
 <p>
At the end of each of the three terms in the academic year there were examinations,
and for the first of these I was the best student in mathematics, scoring over 90
marks. But to my horror, I discovered I was not the best in either English or
economics. I was in second place, way behind a certain Miss Kwa Geok Choo. I had
already met Miss Kwa at Raffles Institution. In 1939, as the only girl in a boys’
school, she had been asked by the principal to present prizes on the annual
prize-giving day, and I had collected three books from her. She had been in the
special class preparing to try for the Queen’s scholarship two years running. I was
disturbed and upset. There were only two Queen’s scholarships a year for the whole
of the Straits Settlements (Singapore, Penang and Malacca), and they would not
necessarily go to the two top-scoring students. Above all, I feared an even-handed
geographical distribution designed to give a chance to entrants from Penang and
Malacca. The scholarship board might not want to give both scholarships to
Singapore students, in which case coming second might just not be good enough.
</p>
</blockquote>

 <blockquote>
 <p>
The gum turned a decent profit, and we made it in two centres. One was my home,
with my mother and sister helping; the other was Nyuk Lin’s home, where he was
helped by his wife and his wife’s younger sister, Kwa Geok Choo, the girl who had
done better than me at Raffles College. I had seen her again when I first looked
for Nyuk Lin in his flat in Tiong Bahru, riding my bicycle with its solid tyres.
She was sitting on a veranda when I arrived, and when I asked where I could find
him, she smiled and pointed out a staircase around the corner. Now we were meeting
under different circumstances. She was at home, at a loose end, doing domestic
chores as there were no maids. Making gum was one chore that gave her pin money,
and my visits to check on production led to a friendship that developed over the
months.
</p>

 <p>
By September 1944, we knew each other well enough for me to invite Nyuk Lin, his
wife and Geok Choo (now simply Choo) to my 21st birthday dinner at a Chinese
restaurant at the Great World, an amusement park. It was the first time I had asked
her out. True, she was escorted by her brother-in-law, but in the Singapore of that
era, if a girl accepted an invitation to a young man’s 21st birthday dinner, it was
an event not without significance.
</p>

 <p>
The gum-making lasted for some six to seven months until late 1944. By then, the
war was going badly for the Japanese. Few merchant ships came through and trade was
at a standstill; business dwindled and offices did not need gum. I discontinued
gum-making, but continued to visit Choo at her Tiong Bahru home to chat and keep up
the friendship.
</p>
</blockquote>

 <blockquote>
 <p>
All this while, I had also been preoccupied over what I was to do about my
uncompleted education and my growing attachment to Choo. I did not feel optimistic
about being able to finish my diploma course at Raffles College soon enough. The
college would take at least a year to get restarted. Then I would need another one
or one and a half years to graduate. In all, I would lose two to three years. I
discussed the matter with my mother. We decided that, with her savings and
jewellery, my earnings from the black market and my contract work, the family could
pay for my law studies in Britain and those of Dennis. I planned to leave for
England as soon as possible instead of returning to Raffles College to try to win
the Queen’s scholarship.
</p>

 <p>
In October-November 1945, I introduced Choo to the librarian at Raffles Library
(now the National Library) and got her a temporary job there. Her family had moved
to a bungalow in Devonshire Road, about a mile from our house, and I used to walk
her home. Sometimes we would sit at a quiet spot in the grounds of the big
Chesed-El Synagogue at Oxley Rise, close to where the Kempeitei had had one of
their centres. But in November 1945, I could afford to buy a second-hand car, a
pre-war Morris refurbished with spares now available from the British army. As my
business improved, I sold it at a profit after a few months and bought a pre-war
Ford V8, restored to good condition. It must have been used by a Japanese general
during the occupation.
</p>

 <p>
On New Year’s Eve, I took Choo to a party for young people at Mandalay Villa in
Amber Road, the seaside mansion of Mrs Lee Choon Guan, doyenne of the Straits-born
Chinese and a very wealthy widow. Just before the party broke up, I led her out
into the garden facing the sea. I told her that I no longer planned to return to
Raffles College, but would go to England to read law. I asked her whether she would
wait for me until I came back three years later after being called to the Bar. Choo
asked if I knew she was two and a half years older than I was. I said I knew, and
had considered this carefully. I was mature for my age and most of my friends were
older than me anyway. Moreover, I wanted someone my equal, not someone who was not
really grown up and needed looking after, and I was not likely to find another girl
who was my equal and who shared my interests. She said she would wait. We did not
tell our parents. It would have been too difficult to get them to agree to such a
long commitment. This was the way we dealt with each other; when we ran into
difficult personal problems, we faced them and sorted them out. We did not dodge or
bury them. The courtship blossomed. I started to plan on leaving Singapore that
year, 1946.
</p>
</blockquote>

 <blockquote>
 <p>
Before I sailed, she also did her best to make sure I would leave Singapore
committed to some Chinese girl, and therefore be less likely to return with an
English one. Several students had come back with British wives, often with unhappy
results. Their families were upset, and couples broke up or else went off to settle
in England because they could not fit into British colonial society, where they
were patronised if not publicly ostracised. She introduced me in turn to three
eligible young ladies of suitable background and good social status. I was not
enthusiastic. They were the right age, their families were comfortably off and they
were presentable. But they did not arouse my interest. I was quite happy, having
settled on Choo. Finally, I decided to confide in my mother. She was a shrewd
woman. Once she realised I had really made up my mind, she stopped her search. Her
attitude to Choo changed to one of the warm friendliness of a prospective
mother-in-law.
</p>

 <p>
I had earlier told her about Choo, the girl who had beaten me in the English and
economics examinations at Raffles College. She had also met Choo during our
gum-making days and had visited the family. Choo’s father, Kwa Siew Tee, a banker
at the Oversea-Chinese Banking Corporation, was a Java-born Chinese like my father
and my paternal grandmother. Her mother was a Straits-born Singapore Chinese like
my own mother. We had similar backgrounds, spoke the same language at home and
shared the same social norms.
</p>

 <p>
Choo had been educated at Methodist Girls’ School, and having passed her Senior
Cambridge examinations, was only 16 when she went to the special class at Raffles
Institution for students competing for the Queen’s scholarship, but she did not get
it. She told me later she was waiting for her Prince Charming. I turned up, not on
a white horse but a bicycle with solid tyres! In 1940, she went to Raffles College,
and we met at dinners and picnics, but at that time I kept my distance as I was in
my first year and having a difficult time adjusting. Moreover, I was not eager to
get close to any girl because I was not ready for any commitment. The few times we
met socially or in lecture rooms, we were friendly but casual. In 1943–44, however,
we came together in a different setting – myself older by three years of Japanese
occupation and seeing her with different eyes; Choo cooped up in a flat doing
housework, learning Mandarin, reading whatever books she could get and ready for
our gum-making venture.
</p>
</blockquote>

 <blockquote>
 <p>
She belonged to a large family of eight children and had a happy, sheltered
childhood in a conservative home. Her parents were moderately well off and there
was always a car to take her to school, to Raffles College or wherever she needed
to go. They also had a keen sense of propriety. On one occasion, after they moved
to Devonshire Road, Choo arrived home from the library riding pillion on my
motorcycle to the consternation of her mother. She was roundly rebuked for such
improper behaviour. What would people think! Who would want to marry her! Soon
afterwards, her family moved back to Pasir Panjang, where they had lived before.
Fortunately, by then I had a car.
</p>

 <p>
In the hectic months before September 1946 we spent a lot of time together. Before
I left, I got my cousin Harold Liem, who was boarding with us at 38 Oxley Road, to
take a whole series of photographs of us, all within a couple of days. We were
young and in love, anxious to record this moment of our lives, to have something to
remember each other by during the three years that I would be away in England. We
did not know when we would meet again once I left. We both hoped she would go back
to Raffles College, win the Queen’s scholarship to read law, and join me wherever I
might be. She was totally committed. I sensed it. I was equally determined to keep
my commitment to her.
</p>

 <p>
When I left Singapore on my 23rd birthday, 16 September 1946, aboard the Britannic
and waved to her from the ship’s deck, she was tearful. So was I. All my family and
some friends, including Hon Sui Sen, were on the quay to wish me luck and wave me
goodbye.
</p>
</blockquote>

 <blockquote>
 <p>
At the end of June, Choo wrote that she had taken a Class I diploma. She now stood
a good chance of winning the Queen’s scholarship to study in England. I was
optimistic. Towards the end of July came the best news of all, a cable from Choo
that she had been awarded the Queen’s scholarship. But the Colonial Office could
find no place for her in any university for the academic year beginning
October 1947. She would have to wait until 1948. Stirred to action, I puzzled over
how to get her into Cambridge
</p>

 <p>
I looked up Mr Barret, the chief clerk at Fitzwilliam. He was a tubby, competent
and experienced man in his late 40s. He had seen hundreds of young students come
and go. He knew that the censor liked me. I told him of a lady friend in Singapore,
very bright, who had won the top scholarship to study in England. She wanted to
read law. How could she get into Cambridge in time for the Michaelmas term? With a
twinkle in his eyes he said, “You know the censor knows Miss Butler, the mistress
of Girton, very well. Now, if you could get him to speak to the mistress of Girton,
that could make a difference.” I was excited at this possibility.
</p>

 <p>
There were only two months to go before the new academic year began. I asked to see
the censor. Not only did he see me, he was also willing to help. On 1 August, he
wrote to Miss Butler, and for good measure to the principal of Newnham, the other
women’s college in Cambridge. Both replied immediately. Newnham offered a place
in 1948. Miss Butler was more positive. She was willing to offer a vacancy in
October 1947 that Girton kept for special cases, provided Choo had the
qualifications for admission. Thatcher wrote sending me both replies. I dashed off
to the Examinations Syndicate near Silver Street along the river Cam. I gave them
the year Choo had taken her Senior Cambridge – 1936. They traced her results and
gave me a certified copy – she was the top student of her year.
</p>

 <p>
I then wrote and asked to see Miss Butler at Girton. She was willing to see me, and
I turned up at the appointed time on the morning of 6 August. I told her that my
friend, Miss Kwa, was a very bright girl, brighter than I was, and that she had
come top of the list, ahead of me in Raffles College on many occasions. I added
that I had come up to Cambridge one term late and taken a First in my Qualifying
One examination, and I had no doubt that she would do likewise. Miss Butler was a
friendly, white-haired lady with glasses, somewhat plump and benign-looking. She
was amused at this young Chinese boy talking in glowing terms of his lady friend
being a better student than he was, and intrigued by the idea that perhaps the girl
was exceptional. That same day I cabled Choo: “Girton accepts. Official
correspondence following. Get cracking.”
</p>

 <p>
She boarded a troopship in Singapore in late August. I was waiting impatiently at
the docks when she finally arrived in Liverpool in early October, and was overjoyed
to see her after a long year of separation. We went off at once to London by train
and after five days there we went on to Cambridge.
</p>

 <p>
By now, I had got myself organised and knew my way around. But there were new
problems. Mr Pounds, the junior tutor and bursar of Fitzwilliam, had given me rooms
some three miles to the south of Cambridge. I was aghast. Girton was to the north
of town. I tried hard to get a room nearer to Choo but to no avail. Mr Pounds was
unrelenting. I appealed to the censor. His reply was fatherly, but spiced with a
touch of dry humour:
</p>

 <p>
“My dear Lee,
</p>

 <p>
“… You plead that it is a long way to go to see your fiancée, or your wife as
apparently you hope she will become. Not really so far as you make out, especially
if love supplies the motive power. I don’t know whether you read the great myths,
but you will remember the gentleman who swam the Bosphorus every night to see his
lady love. Going to Girton is a slight thing compared with that. Unhappily, the
gentleman got drowned in the doing it (sic) one fine evening, but I doubt whether
you need die of exhaustion on the road. If, however, you can find rooms near
Girton, we will do our utmost to cooperate with you and get them licensed, so if
you like to come up and look round, do so. “By the way, I am not sure that Girton
will appreciate you marrying the young lady so quickly, as they will very naturally
and properly assume that in the first light of love there will be very little work
done. But I am too old to offer advice between a man and the light of his eyes.
Yours sincerely, W.S.Thatcher”
</p>

 <p>
A week later, I found a room near Fitzwilliam at Captain Harris’ Stables. Captain
Harris kept horses and foxhounds. I was his one student boarder. He charged an
exorbitant price, some £9 a week just for bed and breakfast, with baths and
everything else extra. I had no choice. It was convenient. I was to stay there for
the next two years until I came down from Cambridge in the summer of 1949.
</p>
</blockquote>

 <blockquote>
 <p>
Meanwhile, Choo and I discussed our life in Britain with an eye to the future. We
decided that it would be best if we got married quietly in December during the
Christmas vacation, and kept it a secret. Choo’s parents would have been most upset
had they been asked; Girton College might not have approved, as the censor had
reminded me in his letter; and the Queen’s scholarship authorities might have
raised difficulties. We were already mature, in our mid-20s, and we had made up our
minds. Unaware of our true motive, a friend who came from that part of England
recommended an inn at Stratford-on-Avon as a place to spend Christmas and to visit
the renowned Shakespeare theatre. Once we arrived, we notified the local Registrar
of Marriages of our intention, and after two weeks of residence were duly married.
On the way to Stratford-on-Avon we had stopped in London, where I bought Choo a
platinum wedding ring from a jeweller in Regent Street. But when we went back to
Cambridge, she wore the ring on a chain around her neck.
</p>

 <p>
Despite this change in our lives, we worked systematically and hard at our studies.
I wanted to make sure that I kept up the standard I had set for Tripos I. But Choo
had a difficult time coping with a second-year course. The examinations came around
again in May 1948, and in June the results were posted at the Senate House. I had
made my Class I on the Tripos I honours list. Choo was placed in Class II in Law
Qualifying Two. She was disappointed. But it was not a Tripos and did not really
count. I consoled her, and we decided to take a two-week holiday on the Continent.
Avoiding tour groups, we arranged to spend five days in Paris, then a week in
Switzerland.
</p>
</blockquote>

 <blockquote>
 <p>
In October, we were back in Cambridge for our final year. We attended lectures,
wrote essays and assignments for supervisors, and read in the library or in my room
at Captain Harris’ Stables. But life was not all work. At weekends and on some
evenings I would cycle to Girton, and Choo would cook Singapore dishes on the one
gas ring in the gyp wing. I would invite Yong Pung How and Eddie Barker, also a
Queen’s scholar from Raffles College and reading law. Sometimes, my whole week’s
ration of meat went into a curry, or Choo would make marvellous fried kway teow,
using fettucine, chicken in place of pork, and paprika in place of chillies.
</p>
</blockquote>

 <blockquote>
 <p>
We took our final law examinations in May 1949, and when the results came out in
June, I was satisfied. I had made a First and won the only star for Distinction on
the final Law Tripos II honours list. Choo also made a First, and we cabled the
good news to our parents. It was a good cachet for the next stage of my life.
Before an undergraduate can take his degree, university rules require him to “keep”
at least nine terms, in other words to stay in residence in college or in approved
digs for about eight weeks in a term. Choo had been in Cambridge for only six
terms; I for only eight. Special dispensations must have been granted because we
were both allowed to take our degrees that midsummer day, 21 June. Otherwise I
would have had to remain in Cambridge for another term, and Choo for another three
before we could graduate.
</p>
</blockquote>

 <blockquote>
 <p>
We then adjourned to Trevor Thomas’ rooms in Trinity Hall to celebrate the occasion
with champagne. Another lecturer, Dr T. Ellis Lewis, affectionately called TEL, who
had taught both of us, joined us. He was Welsh, with a delightful quizzical face,
bald, wispy white hair at the sides and rimless glasses. He said to Choo and me,
“If it’s a boy, send him to us in Trinity Hall.” When Loong, our first child, was
born in 1952, I did write to the senior tutor to book a place for him. But 19 years
later, when he went up to Cambridge, Loong decided to go instead to Trinity
College, which Isaac Newton had established as the premier school of mathematics.
Good tutors in Trinity helped him become a wrangler (a student with first class
honours in mathematics) in two years instead of the usual three.
</p>
</blockquote>

 <blockquote>
 <p>
The photograph of our graduation that I treasure most is one of Billy Thatcher
standing between Choo and me. I had not let him down. Nor had my “lady friend”.
Thatcher left a deep impression on me. He was a wise, perceptive man who had a lot
of time for the students in his charge. One day, when I was having tea with him in
his room, he pointed to the road workers who had been digging up Trumpington
Street, and said that in the previous three hours they had had two tea breaks. They
had been different before and during the war. Now they were not willing to work as
hard, and the country would not progress. I thought him a reactionary old man, but
he taught economics, and years later I concluded that he knew what made for growth.
On another occasion, he told me, “You are Chinese. You Chinese have a long
civilisation of several thousand years to back you up. That is a great advantage.”
Just before we went down from Cambridge in June 1949, he invited Choo and me for
morning coffee for the last time. He patted Choo’s hand and, looking at me, said,
“He is too impatient. Don’t let him be in such a hurry.” He had read my character
well, but he also knew that I had a serious purpose in life and was determined to
achieve it.
</p>
</blockquote>

 <blockquote>
 <p>
Having graduated, we took a 10-day holiday, this time touring England and Scotland
in a coach. But we were not finished with our law studies yet. To practise in
Singapore, even a degree from Cambridge University was not enough. We still had to
qualify as a solicitor or a barrister in England. So we had joined the Middle
Temple, which was one of the four Inns of Court that together taught and examined
students for admission to the Bar. When we came back from our trip, therefore, we
tried to live in London and for a while took a flat not far from my old digs on
Fitzjohn’s Avenue. But for Choo housekeeping and study did not mix well, so we
decided to skip lectures at the Inns of Court, and stay at Tintagel in Cornwall to
read up and prepare for the Bar finals by ourselves.
</p>

 <p>
We had already spent several vacations there, in an old manor house run by a Mrs
Mellor with the help of her three sons. She fed us well, and was reasonable and
helpful. We had the whole house to ourselves, except during the summer when there
were a few other guests. We took long walks along country lanes and enjoyed the
warm, moist southwesterly winds. Our only entertainment was to listen to the BBC
Home Service on a Pye radio I bought in Cambridge. It gave us many hours of
relaxation and pleasure. For exercise and recreation, I started to play golf, alone
most of the time, on a nine-hole course at King Arthur’s Castle Hotel that was
empty except during the holiday season. The course was hilly and windy, and
exciting for a duffer like me. It kept me fit. Choo and I spent much time looking
for my lost golf balls, often finding other, better ones. Choo would also pick wild
mushrooms, which Mrs Mellor cooked for us. They were delicious.
</p>
</blockquote>

 <blockquote>
 <p>
In February 1950, while I was still at Tintagel, David Widdicombe, one of my
Cambridge friends, stood as the Labour candidate for the rural seat of Totnes in
Devon, an hour and a half away by train. He needed a driver for his truck and a
general assistant. Choo and I spent a fortnight helping him until election night.
We were both put up with Labour supporters, I with a train driver, Choo with the
young wife and children of a man who was away training to be a solicitor.
</p>
</blockquote>

 <blockquote>
 <p>
A month or two later, I received a letter from the Singapore commissioner of
police, R.E. Foulger, who was home on leave. He knew my parents, had heard that I
was in Cornwall, and invited Choo and me to his house at Thurlstone in Devon. We
spent three days there. He wanted to size me up, and I was interested in making
contact and seeing what a post-war British colonial police chief was like. We
played golf. My golf was still bad, but it was a useful weekend. I knew by then
that I had drawn the attention of Singapore’s Special Branch and would be on their
watch list. I had made some anti-British, anti-colonial speeches at Malaya Hall.
They would know I was no dilettante. I thought it best if they also knew that I
acted above board, constitutionally, and that I had no communist ties or
sympathies. For we would soon be returning to Singapore.
</p>
</blockquote>

 <blockquote>
 <p>
In May 1950, we went down to London to take our Bar finals. We ran into a football
crowd that weekend, and they banged the doors of the hotel where we stayed day and
night, distracting us from our studies. But it would not have made much difference:
we were to pay the price for being out of London and failing to listen to the
lecturers who were also the examiners in the major subjects. They had set their
questions on new cases they had taught. No one got a First Class. I got a Second
Class and was listed in third place. Choo got a Third. But all was well. On 21 June
1950, wigged and robed as the pageantry demanded, we were both called to the Bar at
the Middle Temple dining hall. Life was about to enter a new phase.
</p>
</blockquote>

 <blockquote>
 <p>
Mrs Jackson was friendly to all the students. But from the very first she was
particularly kind to me. During my vacations, as I changed addresses from London to
Cambridge to London to Tintagel, 16 Gordon Square became my postbox. It was also a
repository for our spare bags and books. Choo and I frequented it because we had no
home in London, and at the China Institute we could wash off the grime of a capital
sooty from coal fires with hot water, soap and clean basins that cost us nothing.
All we needed were our own towels. And since the premises were rent-free, Mrs
Jackson was also able to provide good and substantial high teas for just one
shilling.
</p>

 <p>
Petty matters? No one who was not a foreign student in England in those years of
privation and shortages immediately after the war can imagine how difficult and
inconvenient life was for us in a London bedsitter. The landlady supplied only
breakfast, after which Choo and I would have to get out of our room to allow her to
clean it. We would go to the public library to study, and eat our lunches and
dinners in a restaurant. A clean and quiet place to rest and wash was an immense
luxury, especially when it was free.
</p>

 <p>
When I was in London in 1956 for the constitutional conference on the future of
Singapore, I went back to Gordon Square to visit Mrs Jackson. She was as pleased to
see me as I was to see her. But my association with the China Institute had
meanwhile produced an unexpected political backlash. Years later, I discovered old
reports in files of the Singapore Special Branch claiming that Choo and I had
frequented it in order to fraternise with pro-communists from China, where Mao
Zedong was then heading for victory in the civil war and on 1 October 1949
proclaimed the People’s Republic. One report even said that Choo was a more radical
left-winger than I was. My confidence in Special Branch reports was badly shaken.
</p>
</blockquote>

 <blockquote>
 <p>
It was against such a backdrop that Choo and I sailed home on a Dutch liner, the
Willem Ruys. It was the best ship plying between Southampton and Singapore – new,
air-conditioned, with excellent Indonesian and Dutch food, and wonderful service
provided by literally hundreds of djongos, or Javanese waiters, dressed in native
costume. It was a farewell fling. We travelled first class in adjoining cabins, and
had a wonderful time – except when I got seasick in the Bay of Biscay and again on
the Arabian Sea, and was reduced to a diet of dry toast and dried beef. Otherwise,
it was a memorable journey.
</p>
</blockquote>

 <blockquote>
 <p>
But there were other reports in their file on me to earn me the distinction of
being the last passenger on the Willem Ruys to be cleared. When I recorded my oral
history in 1981, a researcher showed me documents of a meeting on 28 June 1950 at
Government House at which Nigel Morris, the director of Special Branch, had
recommended that Choo and I be detained on our return from England. However, R.E.
Foulger, the commissioner of police who had earlier invited us to spend a weekend
with him in Devon, had disagreed. The minutes further recorded that the governor,
the general officer commanding and the colonial secretary had supported Foulger,
arguing that because we both came from respectable families, public reaction to our
arrest would be bad. Instead, they said, more could be gained if we were befriended
and won over. The commissioner general for Southeast Asia, Malcolm MacDonald, “was
suggested as an appropriate host since he frequently invited students to dinner”.
In fact Malcolm MacDonald did invite Choo and me a few months after our return.
</p>
</blockquote>

 <blockquote>
 <p>
While Mr Fox kept me waiting in the first class lounge of the Willem Ruys, I popped
out on deck to wave to my family – Father, Mother, Fred, Monica and Suan – on the
quay with some friends, including Hon Sui Sen. Choo’s family was also waiting for
her, but when we disembarked, we parted company. She went back with her parents to
Pasir Panjang, I to Oxley Road. We parted as friends, not giving away the secret of
our marriage in Britain.
</p>
</blockquote>

 <blockquote>
 <p>
Having found a job, my next task was to see Choo’s father, Kwa Siew Tee. He was a
tall, energetic, self-made man who had taught himself accountancy and banking
through correspondence courses and had risen to his present position in the
Oversea-Chinese Banking Corporation on his own merits, having neither relatives to
give him a push nor money to buy promotion. I asked him for his daughter’s hand and
when we could have the wedding. He was dumbfounded. He had expected the normal
ritual of a visit by my parents to broach the subject, but this brash young man had
turned up to settle the day himself, taking for granted that consent would be
given. However, he did not grumble as much to me as he later did to Choo. We agreed
to an engagement, to be followed by marriage at the end of September. Reading the
announcement in the newspaper, Laycock offered to take Choo as a pupil and pay her
$500 a month too. I told Choo about it, and she promptly accepted. It was most
convenient. We could go to work together, and see each other every day.
</p>
</blockquote>

 <blockquote>
 <p>
On 30 September 1950, after being married secretly for nearly three years, we went
through a second ceremony at the Registry of Marriages, which was then in the
Supreme Court building. The registrar, Mr Grosse, was 15 minutes late. I was
furious and told him off. An appointment had been made yet he kept all of us
waiting. Later that afternoon, our parents held a reception for relatives and
friends at the Raffles Hotel. Tom Silcock, professor of economics at the University
of Singapore who had taught both of us at Raffles College, proposed the toast to
the bride. He was not a witty, light-hearted speaker, but he did Choo proud. Choo
then moved into 38 Oxley Road. My mother had bought some new furniture for us, and
we started our official married life. But it was a difficult adjustment for Choo
because she had now to fit into the Lee family, consisting not only of my
grandmother, father, mother, sister, and three brothers, but several relatives from
Indonesia who were still boarding with us, supplementing my mother’s income.
</p>
</blockquote>

 <blockquote>
 <p>
I joined the Singapore Island Club to keep up the golf I had learnt to play at
Tintagel, and was so keen on the exercise that one wet afternoon I drove Choo there
despite the rain. On Thomson Road my Studebaker skidded, did a U-turn, and rolled
over onto a soft grass slope. I was stunned. So was she. We were lucky. We had
absolutely no injuries. Had we gone off the road a little further up, we would have
struck a large water pipe instead of wet ground, and that might have been the end.
</p>
</blockquote>

 <blockquote>
 <p>
On 7 August 1951, I completed my one year of pupillage. To be called to the Bar,
Choo and I dressed in sombre clothes and donned our barrister’s robes complete with
white tabs and, in my case, a stiff wing collar. It was an important occasion then,
for the entire Bar had 140 members, and only some 10 new lawyers were admitted each
year. René Eber, a respected old Eurasian lawyer, moved our petition for admission
with a gracious little speech. It was his crypto-communist son, John, who had been
arrested seven months before. Singapore is a small world.
</p>
</blockquote>

 <blockquote>
 <p>
…interpreters have other uses, and when our first child was born on Sunday, 10
February 1952, I consulted one of those at the Supreme Court who had helped many
lawyers find appropriate Chinese names for their children. The date of birth was
the most auspicious in the Chinese calendar, the 15th day of the first moon of the
Year of the Dragon. We therefore decided to name our son Hsien Loong – Illustrious
Dragon. He was a long baby, scrawny but weighing more than eight pounds, and he
gave us great joy.
</p>

 <p>
When I saw Choo in Kandang Kerbau (maternity) Hospital over the next few days, I
was able to tell her of my second piece of good fortune – my first union work. It
would bring me into the political spotlight and into a head-on clash with the
government.
</p>
</blockquote>

 <blockquote>
 <p>
Laycock had become increasingly unhappy about my political activities but never
complained to me directly. In 1954, after three years of service, he had given me a
partnership contract under which I was guaranteed a minimum that was more than what
Choo and I earned together. He did not want to continue to employ Choo, who was
happy to stay at home to look after Loong – and later Ling, when she was born in
January 1955. He knew I was doing my job in accordance with our agreement, and he
tolerated me.
</p>
</blockquote>

 <blockquote>
 <p>
In the five years since my return from England, I had built up something of a law
practice and also a base for political support in the trade unions. But I now had
two tasks ahead of me: to start my own law firm and to create a party organisation
for the PAP. There was no great urgency. I had four months before I would leave
Laycock & Ong, and four years in which to get the PAP into shape before the next
general election. Together with Choo and my brother Dennis, we set up the firm Lee
& Lee in Malacca Street, next to Laycock & Ong.
</p>
</blockquote>

 <blockquote>
 <p>
I had decided to get away from this madhouse and go on my annual vacation. With
Choo and Loong, age 3, I drove up to the Cameron Highlands on 1 June and stayed
there for three weeks. We left 5-month-old Ling at home as she was too young.
</p>

 <p>
I played golf at Tanah Rata every day, morning and afternoon. As I walked on the
pleasant and cool nine-hole Cameron Highlands course, 5,000 feet above sea level, I
soaked in the significance of the events of the previous few months. I felt in my
bones that to continue on the course Lim Chin Siong and Fong had embarked upon
would end in political disaster. The PAP and the Middle Road unions (named for the
location of their headquarters, not their policies) would be banned. But if
Marshall were to flinch from taking unpopular action, the whole economy and society
of Singapore would be in such a chaotic mess that the British government would have
to suspend the constitution.
</p>

 <p>
On 21 June, I drove back to Singapore with the family.
</p>
</blockquote>

 <blockquote>
 <p>
I was to pick up new impressions. When we stopped overnight at Colombo, I was
surprised to find it so well-developed. It had not suffered from Japanese
occupation and looked more prosperous than Singapore. Karachi, the other overnight
stop, was hot and dusty, and for the first time I saw camels working as beasts of
burden, trundling loaded carts and liberally dispensing enormous droppings as they
flip-flopped along the roads. But an evening outing in town gave me a chance to buy
Choo several sheer silk stoles that looked like organza interwoven with gold
thread. She still uses them occasionally. After Karachi, we had refuelling stops at
Cairo and Rome, and finally landed in London on 17 April.
</p>
</blockquote>

 <blockquote>
 <p>
The communists impressed me by the great importance they placed on the woman a prospective cadre was attached to. They knew a wife could make an enormous difference to a man’s reliability and commitment to the cause. They had objected to my political secretary Jek Yeun Thong’s steady girlfriend, whom they regarded as not politically suitable. He ignored this objection, and without his knowledge they dropped him from their cell network. They were right; she was not supportive of their cause.
</p>

 <p>
I was fortunate. Choo never had any doubts or hesitation about my going on with the fight, whatever the consequences. She told me she had absolute confidence in my judgement. She was a great source of strength and comfort. She has a keen intuition when judging people. While I make up my mind more on analysis and reason, she decides more on “feel” and has an uncanny knack of sensing the real feelings and positions of a person behind the smiles and friendly words. She was often right about who not to trust, although she could not quite explain why – maybe it was the expression on a person’s face, the way he smiled, the look in his eyes or his body language. Whatever it was, I learnt to take her reservations about people seriously. Early in 1962, when I was negotiating with the Tunku to join Malaysia, she expressed her reservations over whether we could work with the Tunku, Razak and the other UMNO and MCA leaders. She said they were different in temperament, character and social habits, that she could not see the PAP ministers getting along with them. I replied we simply had to work with them, because we needed to. We had to have merger and a broader base to build a nation. Within three years, by 1965, she was proved right. We were incompatible and they asked us to leave Malaysia.
</p>

 <p>
Meeting the wives of foreign leaders, she would give me a good reading of the husband’s friendliness or otherwise from the way the wife acted or talked to her. I never took her views as the last word, but I did not dismiss them.
</p>

 <p>
She saved me much time and tedious work, correcting the drafts of speeches that I dictated and the transcripts of what I said in Parliament and in interviews. She is familiar with my vocabulary and can guess my dictated words that my stenographers cannot make out. I made a point, however, not to discuss the formulation of policies with her, and she was scrupulous in not reading notes or faxes that were sensitive.
</p>

 <p>
For my part, the knowledge that she had her profession as a lawyer and if necessary could look after herself and bring up the children on her own freed me from worries about their future. The children were a source of joy and satisfaction. She brought them up well-mannered and self-disciplined, never throwing their weight around, although they had grown up as the prime minister’s children. Our home at Oxley Road was only a seven-minute drive from her office at Malacca Street. She hardly ever attended business lunches with clients. Instead she would return home to have lunch with the children and keep in touch. When she was away at the office she had reliable, long-serving “black-and-white” Cantonese maids, so named for their black pants and white blouses, to mind them. Choo used a cane when the children were particularly naughty or disobedient. I did not physically punish them; a stern rebuke was effective enough. Having a violent father turned me against using physical force.
</p>
</blockquote>
</div>
</div>

 <div id="outline-container-Indira-Gandhi" class="outline-3">
 <h3 id="Indira-Gandhi"> <span class="section-number-3">1.2.</span>  <a href="#Indira-Gandhi"> <span class="todo TODO">TODO</span> Indira Gandhi</a></h3>
 <div class="outline-text-3" id="text-Indira-Gandhi">
 <blockquote>
 <p>
Indira Gandhi was the toughest woman prime minister I have met.
She was feminine but there was nothing soft about her.
She was more determined and ruthless a political leader than Margaret Thatcher, Mrs Bandaranaike or Benazir Bhutto.
She had a handsome face with an aquiline nose and a smart hairstyle with a broad streak of white against a jet black mass of hair combed back from her forehead.
And she was always dressed elegantly in a sari.
She affected some feminine ways, smiling coquettishly at men during social conversation; but once into the flow of an argument, there was that steel in her that would match any Kremlin leader.
She was unlike her father.
Nehru was a man of ideas, concepts he had polished and repolished – secularism, multiculturalism, rapid industrialisation of the state by heavy industries in the fashion of the Soviet Union.
Right or wrong, he was a thinker.
</p>

 <p>
She was practical and pragmatic, concerned primarily with the mechanics of power, its acquisition and its exercise.
A sad chapter in her many years in office was when she moved away from secularism, and to win the Hindi-Hindu vote in North India, consciously or otherwise brought Hindu chauvinism to the surface and allowed it to become a legitimate force in Indian politics.
It was to lead to the recurrence of Hindu-Muslim riots, the burning and destruction of the ancient mosque at Ayodhya and the emergence of the Bharatiya Janata Party (BJP), a Hindu chauvinist party, as the single major party in Parliament in 1996 and again in 1998.
She was at her toughest when the unity of India was threatened.
There was outrage throughout the Sikh world when she ordered troops into the Sikh holy temple at Amritsar.
Watching how incensed the Sikhs in Singapore were, I thought it was politically disastrous: she was desecrating the innermost sanctuary of the Sikh religion.
But she was unsentimental and concerned only with the power of the state which she was determined to preserve.
She paid for it with her life in 1984, assassinated by her own Sikh bodyguards.
</p>
</blockquote>
</div>
</div>

 <div id="outline-container-Michel-Talagrand,-Mathematician." class="outline-3">
 <h3 id="Michel-Talagrand,-Mathematician."> <span class="section-number-3">1.3.</span>  <a href="#Michel-Talagrand,-Mathematician."> <span class="todo TODO">TODO</span> Michel Talagrand, Mathematician.</a></h3>
 <div class="outline-text-3" id="text-Michel-Talagrand,-Mathematician.">
</div>
</div>

 <div id="outline-container-Benjamin-Disraeli,-British-Prime-Minister." class="outline-3">
 <h3 id="Benjamin-Disraeli,-British-Prime-Minister."> <span class="section-number-3">1.4.</span>  <a href="#Benjamin-Disraeli,-British-Prime-Minister."> <span class="todo TODO">TODO</span> Benjamin Disraeli, British Prime Minister.</a></h3>
 <div class="outline-text-3" id="text-Benjamin-Disraeli,-British-Prime-Minister.">
</div>
</div>

 <div id="outline-container-Stendhal-(Marie-Henri-Beyle),-Writer-and-diplomat." class="outline-3">
 <h3 id="Stendhal-(Marie-Henri-Beyle),-Writer-and-diplomat."> <span class="section-number-3">1.5.</span>  <a href="#Stendhal-(Marie-Henri-Beyle),-Writer-and-diplomat."> <span class="todo TODO">TODO</span> Stendhal (Marie-Henri Beyle), Writer and diplomat.</a></h3>
 <div class="outline-text-3" id="text-Stendhal-(Marie-Henri-Beyle),-Writer-and-diplomat.">
</div>
</div>

 <div id="outline-container-Somerset-Maugham,-British-Writer-and-Spy." class="outline-3">
 <h3 id="Somerset-Maugham,-British-Writer-and-Spy."> <span class="section-number-3">1.6.</span>  <a href="#Somerset-Maugham,-British-Writer-and-Spy."> <span class="todo TODO">TODO</span> Somerset Maugham, British Writer and Spy.</a></h3>
 <div class="outline-text-3" id="text-Somerset-Maugham,-British-Writer-and-Spy.">
 <p>
Primarily homosexual, he attempted to conform to some extent with the norms of his day.
After a three-year affair with Syrie Wellcome which produced their daughter, Liza, they married in 1917.
The marriage lasted for twelve years, but before, during and after it, Maugham’s principal partner was a younger man, Gerald Haxton.
</p>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-05-16_How-nerds-love.d/index.html"/>
  <id>https://lockywolf.net/2025-05-16_How-nerds-love.d/index.html</id>
  <updated>2025-06-26T00:00:00+00:00</updated>
</entry>
<entry>
  <title>How to Read Books (English).</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How to Read Books (English).</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract">1. Abstract</a></li>
 <li> <a href="#Reading-setup">2. Reading setup</a>
 <ul> <li> <a href="#Print-out-the-book">2.1. Print out the book</a></li>
 <li> <a href="#Have-an-electronic-version-open-before-you">2.2. Have an electronic version open before you</a></li>
 <li> <a href="#Have-Google-prepared">2.3. Have Google prepared</a></li>
 <li> <a href="#Have-a-dictionary-open">2.4. Have a dictionary open</a></li>
 <li> <a href="#Pencil-and-eraser">2.5. Pencil and eraser</a></li>
 <li> <a href="#Ruler">2.6. Ruler</a></li>
 <li> <a href="#Smartphone-with-a-Chinese-character-input-method">2.7. Smartphone with a Chinese character input method</a></li>
</ul></li>
 <li> <a href="#Reading-practice">3. Reading practice</a>
 <ul> <li> <a href="#Timing">3.1. Timing</a></li>
 <li> <a href="#Notes-file">3.2. Notes file</a>
 <ul> <li> <a href="#Vocabulary-node">3.2.1. Vocabulary node</a></li>
 <li> <a href="#Citations-and-Remarks-node">3.2.2. Citations and Remarks node</a></li>
</ul></li>
 <li> <a href="#Reading-using-a-ruler">3.3. Reading using a ruler</a></li>
 <li> <a href="#Paper-annotation">3.4. Paper annotation</a></li>
 <li> <a href="#Googling">3.5. Googling</a></li>
</ul></li>
 <li> <a href="#Reading-tricks">4. Reading tricks</a>
 <ul> <li> <a href="#Read-the-table-of-contents-first">4.1. Read the table of contents first</a></li>
 <li> <a href="#Read-the-bibliography-before-reading-the-text">4.2. Read the bibliography before reading the text</a></li>
 <li> <a href="#Read-the-introduction">4.3. Read the introduction</a></li>
 <li> <a href="#Read-the-first-paragraph-of-very-chapter">4.4. Read the first paragraph of very chapter</a></li>
 <li> <a href="#Read-the-full-story-from-the-start-to-the-end">4.5. Read the full story from the start to the end</a></li>
 <li> <a href="#Re-read-the-most-interesting-pieces">4.6. Re-read the most interesting pieces</a></li>
 <li> <a href="#Write-a-short-review-for-yourself">4.7. Write a short review for yourself</a></li>
 <li> <a href="#Discuss-the-material-with-friends-or-random-people">4.8. Discuss the material with friends or random people</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Abstract" class="outline-2"> <h2 id="Abstract"> <span class="section-number-2">1.</span>  <a href="#Abstract">Abstract</a></h2>
 <div class="outline-text-2" id="text-Abstract">
 <p>
This document records some practices I found myself using while reading texts.
It is not at all exhaustive, complete or even sufficiently encompassing.
It does not claim to be efficient.
It is a work in progress.
It is open for discussion.
I intend to write down here some practices that I find useful, sometimes providing justification.
</p>
</div>
</section> <section id="outline-container-Reading-setup" class="outline-2"> <h2 id="Reading-setup"> <span class="section-number-2">2.</span>  <a href="#Reading-setup">Reading setup</a></h2>
 <div class="outline-text-2" id="text-Reading-setup">
 <p>
Reading is a thing that can be computer-assisted nowadays, and if it can be, it should be.
I try to do the following:
</p>
</div>

 <div id="outline-container-Print-out-the-book" class="outline-3">
 <h3 id="Print-out-the-book"> <span class="section-number-3">2.1.</span>  <a href="#Print-out-the-book">Print out the book</a></h3>
 <div class="outline-text-3" id="text-Print-out-the-book">
 <p>
Unless the book is about illustration or graphics, black-and-white is enough.
I print it a typographic shop, ask for paperback binding and manually write the name at the book spine.
</p>
</div>
</div>

 <div id="outline-container-Have-an-electronic-version-open-before-you" class="outline-3">
 <h3 id="Have-an-electronic-version-open-before-you"> <span class="section-number-3">2.2.</span>  <a href="#Have-an-electronic-version-open-before-you">Have an electronic version open before you</a></h3>
 <div class="outline-text-3" id="text-Have-an-electronic-version-open-before-you">
 <p>
I usually read PDF books, about 90%.
I have the PDF file open either in Evince, or in Emacs pdf-tools.
This simplifies searching.
In 10% of the cases this is either an HTML or an EPUB version, which I still usually convert to PDF, or try to open in Evince.
</p>
</div>
</div>

 <div id="outline-container-Have-Google-prepared" class="outline-3">
 <h3 id="Have-Google-prepared"> <span class="section-number-3">2.3.</span>  <a href="#Have-Google-prepared">Have Google prepared</a></h3>
 <div class="outline-text-3" id="text-Have-Google-prepared">
 <p>
I end up googling quite a lot, so I have Google open in the browser (Firefox) for quick access.
</p>
</div>
</div>

 <div id="outline-container-Have-a-dictionary-open" class="outline-3">
 <h3 id="Have-a-dictionary-open"> <span class="section-number-3">2.4.</span>  <a href="#Have-a-dictionary-open">Have a dictionary open</a></h3>
 <div class="outline-text-3" id="text-Have-a-dictionary-open">
 <p>
I usually use Google Translate, and it’s enough just about 90% of the time.
In the 10%, I use Wordreference, BKRS and mdbg.
</p>
</div>
</div>

 <div id="outline-container-Pencil-and-eraser" class="outline-3">
 <h3 id="Pencil-and-eraser"> <span class="section-number-3">2.5.</span>  <a href="#Pencil-and-eraser">Pencil and eraser</a></h3>
 <div class="outline-text-3" id="text-Pencil-and-eraser">
 <p>
I use a mechanical pencil (I do not like sharpening pencils), 0.9HB.
I have an eraser too, relatively hard.
I do not use coloured pens or pencils for annotation.
</p>
</div>
</div>

 <div id="outline-container-Ruler" class="outline-3">
 <h3 id="Ruler"> <span class="section-number-3">2.6.</span>  <a href="#Ruler">Ruler</a></h3>
 <div class="outline-text-3" id="text-Ruler">
 <p>
I use a ruler to focus on reading, and to sometimes demarcate important pieces of the text.
</p>
</div>
</div>

 <div id="outline-container-Smartphone-with-a-Chinese-character-input-method" class="outline-3">
 <h3 id="Smartphone-with-a-Chinese-character-input-method"> <span class="section-number-3">2.7.</span>  <a href="#Smartphone-with-a-Chinese-character-input-method">Smartphone with a Chinese character input method</a></h3>
 <div class="outline-text-3" id="text-Smartphone-with-a-Chinese-character-input-method">
 <p>
I use it when reading Chinese material.
Finding individual characters for input tends to be easier using handwritten recognition, than by radical search.
Using CangJie may be easier, but I do not know it yet.
</p>
</div>
</div>
</section> <section id="outline-container-Reading-practice" class="outline-2"> <h2 id="Reading-practice"> <span class="section-number-2">3.</span>  <a href="#Reading-practice">Reading practice</a></h2>
 <div class="outline-text-2" id="text-Reading-practice">
</div>

 <div id="outline-container-Timing" class="outline-3">
 <h3 id="Timing"> <span class="section-number-3">3.1.</span>  <a href="#Timing">Timing</a></h3>
 <div class="outline-text-3" id="text-Timing">
 <p>
I use Emacs org-mode’s time tracking capabilities for measuring how much time exactly a book takes.
It also helps me stay focused on reading, since I do not want to obscure time tracking data.
</p>
</div>
</div>

 <div id="outline-container-Notes-file" class="outline-3">
 <h3 id="Notes-file"> <span class="section-number-3">3.2.</span>  <a href="#Notes-file">Notes file</a></h3>
 <div class="outline-text-3" id="text-Notes-file">
 <p>
I try to have note files for books I read.
Emacs, and other special software has special functions for making notes, but I did not find a way to use them efficiently.
This only relates to humanities, light, or fiction literature. 
Scientific literature I process differently.
</p>

 <p>
The notes file is an org-file.
It consists of two root nodes: a node for vocabulary and a node for remarks.
</p>
</div>

 <div id="outline-container-Vocabulary-node" class="outline-4">
 <h4 id="Vocabulary-node"> <span class="section-number-4">3.2.1.</span>  <a href="#Vocabulary-node">Vocabulary node</a></h4>
 <div class="outline-text-4" id="text-Vocabulary-node">
 <p>
The vocabulary node is just called “vocabulary”.
It contains just a single table of the following format:
</p>

 <table> <colgroup> <col class="org-right"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-right">#</th>
 <th scope="col" class="org-left">unknown word or phrase</th>
 <th scope="col" class="org-left">translation</th>
</tr></thead> <tbody> <tr> <td class="org-right">0</td>
 <td class="org-left">sepulka</td>
 <td class="org-left">сепулька</td>
</tr></tbody></table> <p>
I usually do not fill in the dictionary at the moment of reading.
I consider this a separate task, to be done later.
(Maybe this should not be done like this?)
</p>
</div>
</div>

 <div id="outline-container-Citations-and-Remarks-node" class="outline-4">
 <h4 id="Citations-and-Remarks-node"> <span class="section-number-4">3.2.2.</span>  <a href="#Citations-and-Remarks-node">Citations and Remarks node</a></h4>
 <div class="outline-text-4" id="text-Citations-and-Remarks-node">
 <p>
In the Citations and Remarks node, every heading corresponds to a piece of the text that made me generate a non-trivial thought.
The thought is written in the body of the heading.
</p>

 <p>
This is where have both the digital and the paper copy comes in handy.
When I find an interesting piece of text, I can search it in the electronic copy and copy-paste into the notes file.
</p>
</div>
</div>
</div>

 <div id="outline-container-Reading-using-a-ruler" class="outline-3">
 <h3 id="Reading-using-a-ruler"> <span class="section-number-3">3.3.</span>  <a href="#Reading-using-a-ruler">Reading using a ruler</a></h3>
 <div class="outline-text-3" id="text-Reading-using-a-ruler">
 <p>
I heard that it is recommended to use a “sliding window” to read text.
I do not use it. 
However, I use a ruler to protect my eyes from wandering ahead of the narrative.
I put it right under the line I am reading an move down after the line has been read.
</p>
</div>
</div>

 <div id="outline-container-Paper-annotation" class="outline-3">
 <h3 id="Paper-annotation"> <span class="section-number-3">3.4.</span>  <a href="#Paper-annotation">Paper annotation</a></h3>
 <div class="outline-text-3" id="text-Paper-annotation">
 <p>
As mentioned above, I do not use colours for annotations, because I don’t know how to make them efficient.
(Suggestions welcome.)
</p>

 <p>
Apart from colours, there are the following markup tools:
</p>

 <ul class="org-ul"> <li>underline the text</li>
 <li>circle the text</li>
 <li>put an exclamation mark at the margins</li>
 <li>squeeze a remark between the lines</li>
</ul> <p>
I tend to underline words and phrases that attracted my attention.
If they seem noteworthy, I then copy them into the notes file remarks section.
I tend to circle the words that are unfamiliar or unknown.
I try to copy them to the notes file vocabulary section.
I sometimes use a ruler to mark some extremely important pieces of text.
</p>

 <p>
I sometimes circle “large sparse” pieces of text which make little sense and cross them out with several strokes to obscure.
</p>

 <p>
Sometimes I write remarks on the margins.
Sometimes I squeeze remarks in between the lines.
Both of the above are not very efficient.
</p>
</div>
</div>


 <div id="outline-container-Googling" class="outline-3">
 <h3 id="Googling"> <span class="section-number-3">3.5.</span>  <a href="#Googling">Googling</a></h3>
 <div class="outline-text-3" id="text-Googling">
 <p>
I tend to google work meanings if I don’t understand them on the spot, but do not write the meanings into the table.
This is because I want to visit the vocabulary again, and have some “context to remember”.
</p>

 <p>
I tend to google concepts that I do not know, but I do not write them anywhere.
(Shall I have the third section in the notes file?)
</p>
</div>
</div>
</section> <section id="outline-container-Reading-tricks" class="outline-2"> <h2 id="Reading-tricks"> <span class="section-number-2">4.</span>  <a href="#Reading-tricks">Reading tricks</a></h2>
 <div class="outline-text-2" id="text-Reading-tricks">
</div>

 <div id="outline-container-Read-the-table-of-contents-first" class="outline-3">
 <h3 id="Read-the-table-of-contents-first"> <span class="section-number-3">4.1.</span>  <a href="#Read-the-table-of-contents-first">Read the table of contents first</a></h3>
 <div class="outline-text-3" id="text-Read-the-table-of-contents-first">
</div>
</div>

 <div id="outline-container-Read-the-bibliography-before-reading-the-text" class="outline-3">
 <h3 id="Read-the-bibliography-before-reading-the-text"> <span class="section-number-3">4.2.</span>  <a href="#Read-the-bibliography-before-reading-the-text">Read the bibliography before reading the text</a></h3>
 <div class="outline-text-3" id="text-Read-the-bibliography-before-reading-the-text">
</div>
</div>

 <div id="outline-container-Read-the-introduction" class="outline-3">
 <h3 id="Read-the-introduction"> <span class="section-number-3">4.3.</span>  <a href="#Read-the-introduction">Read the introduction</a></h3>
 <div class="outline-text-3" id="text-Read-the-introduction">
</div>
</div>

 <div id="outline-container-Read-the-first-paragraph-of-very-chapter" class="outline-3">
 <h3 id="Read-the-first-paragraph-of-very-chapter"> <span class="section-number-3">4.4.</span>  <a href="#Read-the-first-paragraph-of-very-chapter">Read the first paragraph of very chapter</a></h3>
 <div class="outline-text-3" id="text-Read-the-first-paragraph-of-very-chapter">
</div>
</div>

 <div id="outline-container-Read-the-full-story-from-the-start-to-the-end" class="outline-3">
 <h3 id="Read-the-full-story-from-the-start-to-the-end"> <span class="section-number-3">4.5.</span>  <a href="#Read-the-full-story-from-the-start-to-the-end">Read the full story from the start to the end</a></h3>
 <div class="outline-text-3" id="text-Read-the-full-story-from-the-start-to-the-end">
</div>
</div>

 <div id="outline-container-Re-read-the-most-interesting-pieces" class="outline-3">
 <h3 id="Re-read-the-most-interesting-pieces"> <span class="section-number-3">4.6.</span>  <a href="#Re-read-the-most-interesting-pieces">Re-read the most interesting pieces</a></h3>
 <div class="outline-text-3" id="text-Re-read-the-most-interesting-pieces">
</div>
</div>

 <div id="outline-container-Write-a-short-review-for-yourself" class="outline-3">
 <h3 id="Write-a-short-review-for-yourself"> <span class="section-number-3">4.7.</span>  <a href="#Write-a-short-review-for-yourself">Write a short review for yourself</a></h3>
 <div class="outline-text-3" id="text-Write-a-short-review-for-yourself">
 <p>
Do not try to make it a full-scale university-level essay.
It would be a waste of time.
But try to reiterate all the thoughts that you found useful, well versed, or non-trivial.
</p>
</div>
</div>

 <div id="outline-container-Discuss-the-material-with-friends-or-random-people" class="outline-3">
 <h3 id="Discuss-the-material-with-friends-or-random-people"> <span class="section-number-3">4.8.</span>  <a href="#Discuss-the-material-with-friends-or-random-people">Discuss the material with friends or random people</a></h3>
 <div class="outline-text-3" id="text-Discuss-the-material-with-friends-or-random-people">
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-07-21_How-to-Read-Books/2020-07-21_How-to-Read-Books.html"/>
  <id>https://lockywolf.net/2020-07-21_How-to-Read-Books/2020-07-21_How-to-Read-Books.html</id>
  <updated>2025-06-07T00:00:00+00:00</updated>
</entry>
<entry>
  <title>如何阅读 (How to Read Books (Chinese))</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">如何阅读 (How to Read Books (Chinese))</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E5%A6%82%E4%BD%95%E9%98%85%E8%AF%BB%E4%B9%A6%E7%B1%8D">1. 如何阅读书籍</a>
 <ul> <li> <a href="#%E6%91%98%E8%A6%81">1.1. 摘要</a></li>
 <li> <a href="#%E9%98%85%E8%AF%BB%E8%AE%BE%E5%A4%87">1.2. 阅读设备</a>
 <ul> <li> <a href="#%E6%89%93%E5%8D%B0%E4%BD%A0%E6%89%80%E9%9C%80%E8%A6%81%E7%9A%84%E4%B9%A6%E7%B1%8D%E3%80%82">1.2.1. 打印你所需要的书籍。</a></li>
 <li> <a href="#%E4%BD%A0%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E6%89%93%E5%BC%80%E7%94%B5%E5%AD%90%E7%89%88%E5%92%8C%E7%BA%B8%E8%B4%A8%E7%89%88%E6%9D%A5%E9%98%85%E8%AF%BB">1.2.2. 你可以同时打开电子版和纸质版来阅读</a></li>
 <li> <a href="#%E5%87%86%E5%A4%87%E5%A5%BD%E8%B0%B7%E6%AD%8C%E7%BD%91%E9%A1%B5">1.2.3. 准备好谷歌网页</a></li>
 <li> <a href="#%E5%9C%A8%E6%A1%8C%E9%9D%A2%E4%B8%8A%E6%8B%A5%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E9%9A%8F%E6%97%B6%E6%9F%A5%E7%9C%8B%E7%9A%84%E5%AD%97%E5%85%B8">1.2.4. 在桌面上拥有一个可以随时查看的字典</a></li>
 <li> <a href="#%E9%93%85%E7%AC%94%E5%92%8C%E6%A9%A1%E7%9A%AE">1.2.5. 铅笔和橡皮</a></li>
 <li> <a href="#%E5%B0%BA%E5%AD%90">1.2.6. 尺子</a></li>
 <li> <a href="#%E4%BD%BF%E7%94%A8%E6%9C%89%E6%B1%89%E5%AD%97%E8%BE%93%E5%85%A5%E6%B3%95%E7%9A%84%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA">1.2.7. 使用有汉字输入法的智能手机</a></li>
</ul></li>
 <li> <a href="#%E9%98%85%E8%AF%BB%E5%AE%9E%E8%B7%B5">1.3. 阅读实践</a>
 <ul> <li> <a href="#%E6%97%B6%E9%97%B4%E6%8E%A7%E5%88%B6">1.3.1. 时间控制</a></li>
 <li> <a href="#%E5%A4%87%E6%B3%A8%E6%96%87%E4%BB%B6">1.3.2. 备注文件</a></li>
 <li> <a href="#%E4%BD%BF%E7%94%A8%E5%B0%BA%E5%AD%90">1.3.3. 使用尺子</a></li>
 <li> <a href="#%E7%BA%B8%E8%B4%A8%E5%A4%87%E6%B3%A8">1.3.4. 纸质备注</a></li>
 <li> <a href="#%E7%BD%91%E7%BB%9C%E6%90%9C%E7%B4%A2">1.3.5. 网络搜索</a></li>
</ul></li>
 <li> <a href="#%E9%98%85%E8%AF%BB%E6%8A%80%E5%B7%A7">1.4. 阅读技巧</a>
 <ul> <li> <a href="#%E9%A6%96%E5%85%88%E9%98%85%E8%AF%BB%E7%9B%AE%E5%BD%95">1.4.1. 首先阅读目录</a></li>
 <li> <a href="#%E9%98%85%E8%AF%BB%E6%96%87%E6%9C%AC%E4%B9%8B%E5%89%8D%E5%85%88%E9%98%85%E8%AF%BB%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE">1.4.2. 阅读文本之前先阅读参考书目</a></li>
 <li> <a href="#%E9%98%85%E8%AF%BB%E5%BA%8F%E8%A8%80">1.4.3. 阅读序言</a></li>
 <li> <a href="#%E4%BB%8E%E5%A4%B4%E5%88%B0%E5%B0%BE%E9%98%85%E8%AF%BB%E6%95%B4%E4%B8%AA%E6%95%85%E4%BA%8B">1.4.4. 从头到尾阅读整个故事</a></li>
 <li> <a href="#%E9%87%8D%E5%A4%8D%E9%98%85%E8%AF%BB%E6%9C%80%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84%E7%89%87%E6%AE%B5">1.4.5. 重复阅读最有意思的片段</a></li>
 <li> <a href="#%E4%B8%BA%E8%87%AA%E5%B7%B1%E5%86%99%E4%B8%80%E4%BA%9B%E5%B0%8F%E8%AF%84%E8%AE%BA">1.4.6. 为自己写一些小评论</a></li>
 <li> <a href="#%E6%AC%A2%E8%BF%8E%E8%B7%9F%E4%BD%A0%E7%9A%84%E6%9C%8B%E5%8F%8B%E4%BB%AC%E6%88%96%E8%80%85%E9%99%8C%E7%94%9F%E4%BA%BA%E4%B8%80%E8%B5%B7%E8%AE%A8%E8%AE%BA%E5%AF%B9%E8%BF%99%E7%AF%87%E6%96%87%E7%AB%A0%E7%9A%84%E7%9C%8B%E6%B3%95">1.4.7. 欢迎跟你的朋友们或者陌生人一起讨论对这篇文章的看法</a></li>
</ul></li>
</ul></li>
 <li> <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">2. 联系方式</a></li>
</ul></div>
</nav> <section id="outline-container-%E5%A6%82%E4%BD%95%E9%98%85%E8%AF%BB%E4%B9%A6%E7%B1%8D" class="outline-2"> <h2 id="%E5%A6%82%E4%BD%95%E9%98%85%E8%AF%BB%E4%B9%A6%E7%B1%8D"> <span class="section-number-2">1.</span>  <a href="#%E5%A6%82%E4%BD%95%E9%98%85%E8%AF%BB%E4%B9%A6%E7%B1%8D">如何阅读书籍</a></h2>
 <div class="outline-text-2" id="text-%E5%A6%82%E4%BD%95%E9%98%85%E8%AF%BB%E4%B9%A6%E7%B1%8D">
</div>



 <div id="outline-container-%E6%91%98%E8%A6%81" class="outline-3">
 <h3 id="%E6%91%98%E8%A6%81"> <span class="section-number-3">1.1.</span>  <a href="#%E6%91%98%E8%A6%81">摘要</a></h3>
 <div class="outline-text-3" id="text-%E6%91%98%E8%A6%81">
 <p>
这篇文章记录了几个我阅读的时候使用的技巧。
它并不详尽，也不完整.
这些方法可能并不是最有效率的.
我希望大家可以进行讨论并给出改善的建议.
我打算在这里写下一些我认为有用的方法和使用这些方法的理由.
</p>
</div>
</div>

 <div id="outline-container-%E9%98%85%E8%AF%BB%E8%AE%BE%E5%A4%87" class="outline-3">
 <h3 id="%E9%98%85%E8%AF%BB%E8%AE%BE%E5%A4%87"> <span class="section-number-3">1.2.</span>  <a href="#%E9%98%85%E8%AF%BB%E8%AE%BE%E5%A4%87">阅读设备</a></h3>
 <div class="outline-text-3" id="text-%E9%98%85%E8%AF%BB%E8%AE%BE%E5%A4%87">
 <p>
如果电脑能辅助我们更好地阅读，我们应该采取这些方法。
我平时会做以下尝试：
</p>
</div>

 <div id="outline-container-%E6%89%93%E5%8D%B0%E4%BD%A0%E6%89%80%E9%9C%80%E8%A6%81%E7%9A%84%E4%B9%A6%E7%B1%8D%E3%80%82" class="outline-4">
 <h4 id="%E6%89%93%E5%8D%B0%E4%BD%A0%E6%89%80%E9%9C%80%E8%A6%81%E7%9A%84%E4%B9%A6%E7%B1%8D%E3%80%82"> <span class="section-number-4">1.2.1.</span>  <a href="#%E6%89%93%E5%8D%B0%E4%BD%A0%E6%89%80%E9%9C%80%E8%A6%81%E7%9A%84%E4%B9%A6%E7%B1%8D%E3%80%82">打印你所需要的书籍。</a></h4>
 <div class="outline-text-4" id="text-%E6%89%93%E5%8D%B0%E4%BD%A0%E6%89%80%E9%9C%80%E8%A6%81%E7%9A%84%E4%B9%A6%E7%B1%8D%E3%80%82">
 <p>
除非是有插图的书籍，否则黑白打印就足够了。
</p>

 <p>
我在一家印刷店打印它，做纸质的封装，然后在书籍上用马克笔手写书名。
</p>
</div>
</div>

 <div id="outline-container-%E4%BD%A0%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E6%89%93%E5%BC%80%E7%94%B5%E5%AD%90%E7%89%88%E5%92%8C%E7%BA%B8%E8%B4%A8%E7%89%88%E6%9D%A5%E9%98%85%E8%AF%BB" class="outline-4">
 <h4 id="%E4%BD%A0%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E6%89%93%E5%BC%80%E7%94%B5%E5%AD%90%E7%89%88%E5%92%8C%E7%BA%B8%E8%B4%A8%E7%89%88%E6%9D%A5%E9%98%85%E8%AF%BB"> <span class="section-number-4">1.2.2.</span>  <a href="#%E4%BD%A0%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E6%89%93%E5%BC%80%E7%94%B5%E5%AD%90%E7%89%88%E5%92%8C%E7%BA%B8%E8%B4%A8%E7%89%88%E6%9D%A5%E9%98%85%E8%AF%BB">你可以同时打开电子版和纸质版来阅读</a></h4>
 <div class="outline-text-4" id="text-%E4%BD%A0%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E6%89%93%E5%BC%80%E7%94%B5%E5%AD%90%E7%89%88%E5%92%8C%E7%BA%B8%E8%B4%A8%E7%89%88%E6%9D%A5%E9%98%85%E8%AF%BB">
 <p>
我大概90%的书都是PDF
我把PDF在Evince或者Emacs-pdftools上打开。（你可以使用你最喜欢的软件）
至少这可以简化搜索。
剩下的10%书大部分是HTML或EPUB，所以我把他们转变为PDF，或者使用Evince直接打开。
</p>
</div>
</div>

 <div id="outline-container-%E5%87%86%E5%A4%87%E5%A5%BD%E8%B0%B7%E6%AD%8C%E7%BD%91%E9%A1%B5" class="outline-4">
 <h4 id="%E5%87%86%E5%A4%87%E5%A5%BD%E8%B0%B7%E6%AD%8C%E7%BD%91%E9%A1%B5"> <span class="section-number-4">1.2.3.</span>  <a href="#%E5%87%86%E5%A4%87%E5%A5%BD%E8%B0%B7%E6%AD%8C%E7%BD%91%E9%A1%B5">准备好谷歌网页</a></h4>
 <div class="outline-text-4" id="text-%E5%87%86%E5%A4%87%E5%A5%BD%E8%B0%B7%E6%AD%8C%E7%BD%91%E9%A1%B5">
 <p>
我发现我一般都会使用谷歌辅助我的阅读，所以为了保证快速访问，我会在浏览器上提前打开谷歌。
</p>
</div>
</div>

 <div id="outline-container-%E5%9C%A8%E6%A1%8C%E9%9D%A2%E4%B8%8A%E6%8B%A5%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E9%9A%8F%E6%97%B6%E6%9F%A5%E7%9C%8B%E7%9A%84%E5%AD%97%E5%85%B8" class="outline-4">
 <h4 id="%E5%9C%A8%E6%A1%8C%E9%9D%A2%E4%B8%8A%E6%8B%A5%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E9%9A%8F%E6%97%B6%E6%9F%A5%E7%9C%8B%E7%9A%84%E5%AD%97%E5%85%B8"> <span class="section-number-4">1.2.4.</span>  <a href="#%E5%9C%A8%E6%A1%8C%E9%9D%A2%E4%B8%8A%E6%8B%A5%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E9%9A%8F%E6%97%B6%E6%9F%A5%E7%9C%8B%E7%9A%84%E5%AD%97%E5%85%B8">在桌面上拥有一个可以随时查看的字典</a></h4>
 <div class="outline-text-4" id="text-%E5%9C%A8%E6%A1%8C%E9%9D%A2%E4%B8%8A%E6%8B%A5%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E9%9A%8F%E6%97%B6%E6%9F%A5%E7%9C%8B%E7%9A%84%E5%AD%97%E5%85%B8">
 <p>
大部分时间我使用谷歌翻译，它的功能可以满足我90%的需求。
剩下的10%我使用Wordreference,BRKS或者MDBG。
</p>
</div>
</div>

 <div id="outline-container-%E9%93%85%E7%AC%94%E5%92%8C%E6%A9%A1%E7%9A%AE" class="outline-4">
 <h4 id="%E9%93%85%E7%AC%94%E5%92%8C%E6%A9%A1%E7%9A%AE"> <span class="section-number-4">1.2.5.</span>  <a href="#%E9%93%85%E7%AC%94%E5%92%8C%E6%A9%A1%E7%9A%AE">铅笔和橡皮</a></h4>
 <div class="outline-text-4" id="text-%E9%93%85%E7%AC%94%E5%92%8C%E6%A9%A1%E7%9A%AE">
 <p>
我使用自动铅笔 （我不喜欢削尖铅笔），0.9mm,HB。
我也有一个橡皮，相对硬。
我不使用彩色铅笔做笔记。
</p>
</div>
</div>

 <div id="outline-container-%E5%B0%BA%E5%AD%90" class="outline-4">
 <h4 id="%E5%B0%BA%E5%AD%90"> <span class="section-number-4">1.2.6.</span>  <a href="#%E5%B0%BA%E5%AD%90">尺子</a></h4>
 <div class="outline-text-4" id="text-%E5%B0%BA%E5%AD%90">
 <p>
了更专注于阅读的文本，我使用尺子覆盖下文。
有时候我也使用它划定文本的重要部分。
</p>
</div>
</div>

 <div id="outline-container-%E4%BD%BF%E7%94%A8%E6%9C%89%E6%B1%89%E5%AD%97%E8%BE%93%E5%85%A5%E6%B3%95%E7%9A%84%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA" class="outline-4">
 <h4 id="%E4%BD%BF%E7%94%A8%E6%9C%89%E6%B1%89%E5%AD%97%E8%BE%93%E5%85%A5%E6%B3%95%E7%9A%84%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA"> <span class="section-number-4">1.2.7.</span>  <a href="#%E4%BD%BF%E7%94%A8%E6%9C%89%E6%B1%89%E5%AD%97%E8%BE%93%E5%85%A5%E6%B3%95%E7%9A%84%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA">使用有汉字输入法的智能手机</a></h4>
 <div class="outline-text-4" id="text-%E4%BD%BF%E7%94%A8%E6%9C%89%E6%B1%89%E5%AD%97%E8%BE%93%E5%85%A5%E6%B3%95%E7%9A%84%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA">
 <p>
阅读中文资料的时候我使用它。
如果需要在词典中查找不认识的字，使用手写输入法比使用偏旁部首更简单。
有可能使用仓颉输入法更简单，但是我还是不会。
</p>
</div>
</div>
</div>

 <div id="outline-container-%E9%98%85%E8%AF%BB%E5%AE%9E%E8%B7%B5" class="outline-3">
 <h3 id="%E9%98%85%E8%AF%BB%E5%AE%9E%E8%B7%B5"> <span class="section-number-3">1.3.</span>  <a href="#%E9%98%85%E8%AF%BB%E5%AE%9E%E8%B7%B5">阅读实践</a></h3>
 <div class="outline-text-3" id="text-%E9%98%85%E8%AF%BB%E5%AE%9E%E8%B7%B5">
</div>

 <div id="outline-container-%E6%97%B6%E9%97%B4%E6%8E%A7%E5%88%B6" class="outline-4">
 <h4 id="%E6%97%B6%E9%97%B4%E6%8E%A7%E5%88%B6"> <span class="section-number-4">1.3.1.</span>  <a href="#%E6%97%B6%E9%97%B4%E6%8E%A7%E5%88%B6">时间控制</a></h4>
 <div class="outline-text-4" id="text-%E6%97%B6%E9%97%B4%E6%8E%A7%E5%88%B6">
 <p>
我使用Emacs org-mode时间记录的功能计算读每一本书需要的时间。
所使用的功能也让我能更好地集中精力于阅读过程, 因为我需要精确记录我的阅读时间。
</p>
</div>
</div>

 <div id="outline-container-%E5%A4%87%E6%B3%A8%E6%96%87%E4%BB%B6" class="outline-4">
 <h4 id="%E5%A4%87%E6%B3%A8%E6%96%87%E4%BB%B6"> <span class="section-number-4">1.3.2.</span>  <a href="#%E5%A4%87%E6%B3%A8%E6%96%87%E4%BB%B6">备注文件</a></h4>
 <div class="outline-text-4" id="text-%E5%A4%87%E6%B3%A8%E6%96%87%E4%BB%B6">
 <p>
我力求为每个我阅读的书配一些备注文件。
Emacs以及其他专门软件拥有备注功能，但是我还不会高效地使用它们。
上述方法只适用于文学 、娱乐、或者虚构的小说。
阅读科学书的时候我使用别的方式。
上述的备注文件是org-mode文件。
它由两部分组成:词典和批注。
</p>
</div>

 <ol class="org-ol"> <li> <a id="%E8%AF%8D%E6%B1%87%E8%8A%82%E3%80%82"></a> <a href="#%E8%AF%8D%E6%B1%87%E8%8A%82%E3%80%82">词汇节。</a> <br></br> <div class="outline-text-5" id="text-%E8%AF%8D%E6%B1%87%E8%8A%82%E3%80%82">
 <p>
词汇这一章节就叫“词汇”。
它的内容只是一个表格：
</p>
 <table> <colgroup> <col class="org-right"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-right">*</th>
 <th scope="col" class="org-left">不认识的词 （生词）</th>
 <th scope="col" class="org-left">翻译</th>
</tr></thead> <tbody> <tr> <td class="org-right">0</td>
 <td class="org-left">sepulka</td>
 <td class="org-left">сепулька</td>
</tr></tbody></table> <p>
我阅读时会在词汇表上记录我遇到的生词.
我会把高难度的词汇列表在我的博客上发布.
</p>
</div>
</li>

 <li> <a id="%E5%BC%95%E7%94%A8%E5%92%8C%E5%A4%87%E6%B3%A8%E8%8A%82%E7%82%B9"></a> <a href="#%E5%BC%95%E7%94%A8%E5%92%8C%E5%A4%87%E6%B3%A8%E8%8A%82%E7%82%B9">引用和备注节点</a> <br></br> <div class="outline-text-5" id="text-%E5%BC%95%E7%94%A8%E5%92%8C%E5%A4%87%E6%B3%A8%E8%8A%82%E7%82%B9">
 <p>
我会选择文中重要的引发我思考的语句作为标题，在下面记录下我自己的想法.
我发现某些有意思的片段，就会把它在电子版中本搜索，然后添加到备注文档。
所以既有电子版又有纸质版非常方便.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-%E4%BD%BF%E7%94%A8%E5%B0%BA%E5%AD%90" class="outline-4">
 <h4 id="%E4%BD%BF%E7%94%A8%E5%B0%BA%E5%AD%90"> <span class="section-number-4">1.3.3.</span>  <a href="#%E4%BD%BF%E7%94%A8%E5%B0%BA%E5%AD%90">使用尺子</a></h4>
 <div class="outline-text-4" id="text-%E4%BD%BF%E7%94%A8%E5%B0%BA%E5%AD%90">
 <p>
有人推荐用尺子遮挡住部分文本来更专注地阅读的方法,加速度.
然而我使用尺子覆盖还没有读的文本，防止我注意力不集中.
我把尺子放在在我读的文本行.
读完一行，我把尺子移动到下一行。
</p>
</div>
</div>

 <div id="outline-container-%E7%BA%B8%E8%B4%A8%E5%A4%87%E6%B3%A8" class="outline-4">
 <h4 id="%E7%BA%B8%E8%B4%A8%E5%A4%87%E6%B3%A8"> <span class="section-number-4">1.3.4.</span>  <a href="#%E7%BA%B8%E8%B4%A8%E5%A4%87%E6%B3%A8">纸质备注</a></h4>
 <div class="outline-text-4" id="text-%E7%BA%B8%E8%B4%A8%E5%A4%87%E6%B3%A8">
 <p>
为上述，我不用彩色铅笔做备注，因为我不知道如何有效地使用它们。
（您的反馈可以帮助我变得更好。）
颜色以外，还有剩下的标注工具：
</p>

 <p>
颜色以外，还有剩下的标注工具：
</p>

 <ul class="org-ul"> <li>画下划线</li>
 <li>圈出重要文字</li>
 <li>在旁边标记感叹号</li>
 <li>在两行之间写备注</li>
</ul> <p>
我一般在重点词组下面画线.
如果反复阅读后我对他们仍然感兴趣，我会把它们拷贝到备注部分。
我会圈出不认识的词语。
然后把它们复制到词典节点。
有时候，如果我觉得有些较长的段落没有太大意义，我在框出这个部分，并在上面画叉。
有时候我在旁边增加备注。
有时候我在两行中增加备注.
上述的两个方法都不太有效。
</p>
</div>
</div>

 <div id="outline-container-%E7%BD%91%E7%BB%9C%E6%90%9C%E7%B4%A2" class="outline-4">
 <h4 id="%E7%BD%91%E7%BB%9C%E6%90%9C%E7%B4%A2"> <span class="section-number-4">1.3.5.</span>  <a href="#%E7%BD%91%E7%BB%9C%E6%90%9C%E7%B4%A2">网络搜索</a></h4>
 <div class="outline-text-4" id="text-%E7%BD%91%E7%BB%9C%E6%90%9C%E7%B4%A2">
 <p>
我平时遇到不认识的词组，我会在网上搜索，然后把它放进生词表里。
我也会搜索我不知道的概念，但是不一定会记下。
（是不是我得添加另一个备注文件的节点？）
</p>
</div>
</div>
</div>

 <div id="outline-container-%E9%98%85%E8%AF%BB%E6%8A%80%E5%B7%A7" class="outline-3">
 <h3 id="%E9%98%85%E8%AF%BB%E6%8A%80%E5%B7%A7"> <span class="section-number-3">1.4.</span>  <a href="#%E9%98%85%E8%AF%BB%E6%8A%80%E5%B7%A7">阅读技巧</a></h3>
 <div class="outline-text-3" id="text-%E9%98%85%E8%AF%BB%E6%8A%80%E5%B7%A7">
</div>

 <div id="outline-container-%E9%A6%96%E5%85%88%E9%98%85%E8%AF%BB%E7%9B%AE%E5%BD%95" class="outline-4">
 <h4 id="%E9%A6%96%E5%85%88%E9%98%85%E8%AF%BB%E7%9B%AE%E5%BD%95"> <span class="section-number-4">1.4.1.</span>  <a href="#%E9%A6%96%E5%85%88%E9%98%85%E8%AF%BB%E7%9B%AE%E5%BD%95">首先阅读目录</a></h4>
 <div class="outline-text-4" id="text-%E9%A6%96%E5%85%88%E9%98%85%E8%AF%BB%E7%9B%AE%E5%BD%95">
</div>
</div>

 <div id="outline-container-%E9%98%85%E8%AF%BB%E6%96%87%E6%9C%AC%E4%B9%8B%E5%89%8D%E5%85%88%E9%98%85%E8%AF%BB%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE" class="outline-4">
 <h4 id="%E9%98%85%E8%AF%BB%E6%96%87%E6%9C%AC%E4%B9%8B%E5%89%8D%E5%85%88%E9%98%85%E8%AF%BB%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE"> <span class="section-number-4">1.4.2.</span>  <a href="#%E9%98%85%E8%AF%BB%E6%96%87%E6%9C%AC%E4%B9%8B%E5%89%8D%E5%85%88%E9%98%85%E8%AF%BB%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE">阅读文本之前先阅读参考书目</a></h4>
 <div class="outline-text-4" id="text-%E9%98%85%E8%AF%BB%E6%96%87%E6%9C%AC%E4%B9%8B%E5%89%8D%E5%85%88%E9%98%85%E8%AF%BB%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE">
</div>
</div>

 <div id="outline-container-%E9%98%85%E8%AF%BB%E5%BA%8F%E8%A8%80" class="outline-4">
 <h4 id="%E9%98%85%E8%AF%BB%E5%BA%8F%E8%A8%80"> <span class="section-number-4">1.4.3.</span>  <a href="#%E9%98%85%E8%AF%BB%E5%BA%8F%E8%A8%80">阅读序言</a></h4>
 <div class="outline-text-4" id="text-%E9%98%85%E8%AF%BB%E5%BA%8F%E8%A8%80">
</div>
</div>

 <div id="outline-container-%E4%BB%8E%E5%A4%B4%E5%88%B0%E5%B0%BE%E9%98%85%E8%AF%BB%E6%95%B4%E4%B8%AA%E6%95%85%E4%BA%8B" class="outline-4">
 <h4 id="%E4%BB%8E%E5%A4%B4%E5%88%B0%E5%B0%BE%E9%98%85%E8%AF%BB%E6%95%B4%E4%B8%AA%E6%95%85%E4%BA%8B"> <span class="section-number-4">1.4.4.</span>  <a href="#%E4%BB%8E%E5%A4%B4%E5%88%B0%E5%B0%BE%E9%98%85%E8%AF%BB%E6%95%B4%E4%B8%AA%E6%95%85%E4%BA%8B">从头到尾阅读整个故事</a></h4>
 <div class="outline-text-4" id="text-%E4%BB%8E%E5%A4%B4%E5%88%B0%E5%B0%BE%E9%98%85%E8%AF%BB%E6%95%B4%E4%B8%AA%E6%95%85%E4%BA%8B">
</div>
</div>

 <div id="outline-container-%E9%87%8D%E5%A4%8D%E9%98%85%E8%AF%BB%E6%9C%80%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84%E7%89%87%E6%AE%B5" class="outline-4">
 <h4 id="%E9%87%8D%E5%A4%8D%E9%98%85%E8%AF%BB%E6%9C%80%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84%E7%89%87%E6%AE%B5"> <span class="section-number-4">1.4.5.</span>  <a href="#%E9%87%8D%E5%A4%8D%E9%98%85%E8%AF%BB%E6%9C%80%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84%E7%89%87%E6%AE%B5">重复阅读最有意思的片段</a></h4>
 <div class="outline-text-4" id="text-%E9%87%8D%E5%A4%8D%E9%98%85%E8%AF%BB%E6%9C%80%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84%E7%89%87%E6%AE%B5">
</div>
</div>

 <div id="outline-container-%E4%B8%BA%E8%87%AA%E5%B7%B1%E5%86%99%E4%B8%80%E4%BA%9B%E5%B0%8F%E8%AF%84%E8%AE%BA" class="outline-4">
 <h4 id="%E4%B8%BA%E8%87%AA%E5%B7%B1%E5%86%99%E4%B8%80%E4%BA%9B%E5%B0%8F%E8%AF%84%E8%AE%BA"> <span class="section-number-4">1.4.6.</span>  <a href="#%E4%B8%BA%E8%87%AA%E5%B7%B1%E5%86%99%E4%B8%80%E4%BA%9B%E5%B0%8F%E8%AF%84%E8%AE%BA">为自己写一些小评论</a></h4>
 <div class="outline-text-4" id="text-%E4%B8%BA%E8%87%AA%E5%B7%B1%E5%86%99%E4%B8%80%E4%BA%9B%E5%B0%8F%E8%AF%84%E8%AE%BA">
 <p>
没有必要像完成大学论文一样去写.
这样会浪费时间.
但是尝试记录好词好句和与众不同的思想.
</p>
</div>
</div>

 <div id="outline-container-%E6%AC%A2%E8%BF%8E%E8%B7%9F%E4%BD%A0%E7%9A%84%E6%9C%8B%E5%8F%8B%E4%BB%AC%E6%88%96%E8%80%85%E9%99%8C%E7%94%9F%E4%BA%BA%E4%B8%80%E8%B5%B7%E8%AE%A8%E8%AE%BA%E5%AF%B9%E8%BF%99%E7%AF%87%E6%96%87%E7%AB%A0%E7%9A%84%E7%9C%8B%E6%B3%95" class="outline-4">
 <h4 id="%E6%AC%A2%E8%BF%8E%E8%B7%9F%E4%BD%A0%E7%9A%84%E6%9C%8B%E5%8F%8B%E4%BB%AC%E6%88%96%E8%80%85%E9%99%8C%E7%94%9F%E4%BA%BA%E4%B8%80%E8%B5%B7%E8%AE%A8%E8%AE%BA%E5%AF%B9%E8%BF%99%E7%AF%87%E6%96%87%E7%AB%A0%E7%9A%84%E7%9C%8B%E6%B3%95"> <span class="section-number-4">1.4.7.</span>  <a href="#%E6%AC%A2%E8%BF%8E%E8%B7%9F%E4%BD%A0%E7%9A%84%E6%9C%8B%E5%8F%8B%E4%BB%AC%E6%88%96%E8%80%85%E9%99%8C%E7%94%9F%E4%BA%BA%E4%B8%80%E8%B5%B7%E8%AE%A8%E8%AE%BA%E5%AF%B9%E8%BF%99%E7%AF%87%E6%96%87%E7%AB%A0%E7%9A%84%E7%9C%8B%E6%B3%95">欢迎跟你的朋友们或者陌生人一起讨论对这篇文章的看法</a></h4>
 <div class="outline-text-4" id="text-%E6%AC%A2%E8%BF%8E%E8%B7%9F%E4%BD%A0%E7%9A%84%E6%9C%8B%E5%8F%8B%E4%BB%AC%E6%88%96%E8%80%85%E9%99%8C%E7%94%9F%E4%BA%BA%E4%B8%80%E8%B5%B7%E8%AE%A8%E8%AE%BA%E5%AF%B9%E8%BF%99%E7%AF%87%E6%96%87%E7%AB%A0%E7%9A%84%E7%9C%8B%E6%B3%95">
</div>
</div>
</div>
</section> <section id="outline-container-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F" class="outline-2"> <h2 id="%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F"> <span class="section-number-2">2.</span>  <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">联系方式</a></h2>
 <div class="outline-text-2" id="text-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">
 <p>
如果您在此博客或其他页面中发现任何有用的内容，请订阅并打赏。
请您转发、分享和讨论，您的反馈可以帮助我变得更好。
</p>

 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-07-21_How-to-Read-Books/2022-08-26_How-to-Read-Books-Chinese.html"/>
  <id>https://lockywolf.net/2020-07-21_How-to-Read-Books/2022-08-26_How-to-Read-Books-Chinese.html</id>
  <updated>2025-06-07T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Notes on using fonts in computers.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Notes on using fonts in computers.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#References">1. References</a></li>
 <li> <a href="#Terminology-and-basic-introduction">2. Terminology and basic introduction</a>
 <ul> <li> <a href="#Some-basic-terms">2.1. Some basic terms</a></li>
 <li> <a href="#What-is-a-*font*.">2.2. What is a  <b>font</b>.</a>
 <ul> <li> <a href="#Overlapping-fonts">2.2.1. Overlapping fonts</a></li>
 <li> <a href="#Font-variations">2.2.2. Font variations</a></li>
 <li> <a href="#Incomplete-fonts">2.2.3. Incomplete fonts</a></li>
 <li> <a href="#Dingbats-and-lying-fonts">2.2.4. Dingbats and lying fonts</a></li>
 <li> <a href="#Marketing-bullshit">2.2.5. Marketing bullshit</a></li>
 <li> <a href="#Character-widths">2.2.6. Character widths</a></li>
 <li> <a href="#Stroke-style">2.2.7. Stroke style</a></li>
 <li> <a href="#File-formats-and-symbol-encoding">2.2.8. File formats and symbol encoding</a></li>
</ul></li>
 <li> <a href="#Software-tools">2.3. Software tools</a>
 <ul> <li> <a href="#fontconfig">2.3.1. fontconfig</a></li>
 <li> <a href="#xlsfonts">2.3.2. xlsfonts</a></li>
</ul></li>
</ul></li>
 <li> <a href="#The-safest-font-choice-for-minimal-thinking.">3. The safest font choice for minimal thinking.</a>
 <ul> <li> <a href="#Target-software">3.1. Target software</a></li>
</ul></li>
 <li> <a href="#Different-font-projects">4. Different font projects</a></li>
 <li> <a href="#Fonts-for-work">5. Fonts for work</a>
 <ul> <li> <a href="#Sans">5.1. Sans</a>
 <ul> <li> <a href="#AvantGarde-%5C(%5Cleftrightarrow%5C)-URW-Gothic-L">5.1.1. AvantGarde \(\leftrightarrow\) URW Gothic L</a></li>
 <li> <a href="#Helvetica/Arial-%5C(%5Cleftrightarrow%5C)-URW++-Nimbus-Sans-L">5.1.2. Helvetica/Arial \(\leftrightarrow\) URW++ Nimbus Sans L</a></li>
 <li> <a href="#Helvetica/Arial-%5C(%5Cleftrightarrow%5C)-Roboto">5.1.3. Helvetica/Arial \(\leftrightarrow\) Roboto</a></li>
 <li> <a href="#Optima-%5C(%5Cleftrightarrow%5C)-Linux-Biolinum">5.1.4. Optima \(\leftrightarrow\) Linux Biolinum</a></li>
 <li> <a href="#Verdana-%5C(%5Cleftrightarrow%5C)-Webcore-Verdana">5.1.5. Verdana \(\leftrightarrow\) Webcore Verdana</a></li>
 <li> <a href="#Verdana-%5C(%5Cleftrightarrow%5C)-PT-Astra-Fact">5.1.6. Verdana \(\leftrightarrow\) PT Astra Fact</a></li>
 <li> <a href="#Impact-%5C(%5Cleftrightarrow%5C)-Webcore-Impact">5.1.7. Impact \(\leftrightarrow\) Webcore Impact</a></li>
 <li> <a href="#Trebuchet-%5C(%5Cleftrightarrow%5C)-Webcore-Trebuchet">5.1.8. Trebuchet \(\leftrightarrow\) Webcore Trebuchet</a></li>
 <li> <a href="#Tahoma-%5C(%5Cleftrightarrow%5C)-Webcore-Tahoma">5.1.9. Tahoma \(\leftrightarrow\) Webcore Tahoma</a></li>
 <li> <a href="#Lucida-Sans-%5C(%5Cleftrightarrow%5C)-Webcore-Lucida-Sans-Unicode">5.1.10. Lucida Sans \(\leftrightarrow\) Webcore Lucida Sans Unicode</a></li>
 <li> <a href="#Frutiger-Univers-%5C(%5Cleftrightarrow%5C)-Webcore-Corbel">5.1.11. Frutiger Univers \(\leftrightarrow\) Webcore Corbel</a></li>
 <li> <a href="#Calibri-%5C(%5Cleftrightarrow%5C)-Google-Carlito">5.1.12. Calibri \(\leftrightarrow\) Google Carlito</a></li>
 <li> <a href="#Franklin-%5C(%5Cleftrightarrow%5C)-LibreFranklin">5.1.13. Franklin \(\leftrightarrow\) LibreFranklin</a></li>
 <li> <a href="#Ubuntu-%5C(%5Cleftrightarrow%5C)-Ubuntu">5.1.14. Ubuntu \(\leftrightarrow\) Ubuntu</a></li>
 <li> <a href="#Cantarell-%5C(%5Cleftrightarrow%5C)-Petra-Sans">5.1.15. Cantarell \(\leftrightarrow\) Petra Sans</a></li>
 <li> <a href="#Inter-%5C(%5Cleftrightarrow%5C)-Apple-San-Francisco">5.1.16. Inter \(\leftrightarrow\) Apple San Francisco</a></li>
 <li> <a href="#Fira-Sans-%5C(%5Cleftrightarrow%5C)-Fira-Sans">5.1.17. Fira Sans \(\leftrightarrow\) Fira Sans</a></li>
 <li> <a href="#Noto-Sans-%5C(%5Cleftrightarrow%5C)-Noto-Sans">5.1.18. Noto Sans \(\leftrightarrow\) Noto Sans</a></li>
 <li> <a href="#PT-Sans-%5C(%5Cleftrightarrow%5C)-PT-Sans">5.1.19. PT Sans \(\leftrightarrow\) PT Sans</a></li>
 <li> <a href="#Sarasa-Gothic-%5C(%5Cleftrightarrow%5C)-Sarasa-Gothic">5.1.20. Sarasa Gothic \(\leftrightarrow\) Sarasa Gothic</a></li>
</ul></li>
 <li> <a href="#Serif">5.2. Serif</a>
 <ul> <li> <a href="#Bookman-%5C(%5Cleftrightarrow%5C)-URW-Bookman">5.2.1. Bookman \(\leftrightarrow\) URW Bookman</a></li>
 <li> <a href="#Century-Schoolbook-%5C(%5Cleftrightarrow%5C)-Old-Standard">5.2.2. Century Schoolbook \(\leftrightarrow\) Old Standard</a></li>
 <li> <a href="#Palatino-%5C(%5Cleftrightarrow%5C)-Domitian">5.2.3. Palatino \(\leftrightarrow\) Domitian</a></li>
 <li> <a href="#Times-New-Roman-%5C(%5Cleftrightarrow%5C)-Liberation-Serif">5.2.4. Times New Roman \(\leftrightarrow\) Liberation Serif</a></li>
 <li> <a href="#Times-New-Roman-%5C(%5Cleftrightarrow%5C)-PT-Astra-Serif">5.2.5. Times New Roman \(\leftrightarrow\) PT Astra Serif</a></li>
 <li> <a href="#ZapfChancery-%5C(%5Cleftrightarrow%5C)-URW-Chancery-L-(Z003)">5.2.6. ZapfChancery \(\leftrightarrow\) URW Chancery L (Z003)</a></li>
 <li> <a href="#Georgia-%5C(%5Cleftrightarrow%5C)-Webcore-Georgia">5.2.7. Georgia \(\leftrightarrow\) Webcore Georgia</a></li>
 <li> <a href="#Bitstream-Vera-Serif-%5C(%5Cleftrightarrow%5C)-DejaVu-Serif">5.2.8. Bitstream Vera Serif \(\leftrightarrow\) DejaVu Serif</a></li>
 <li> <a href="#Bitstream-Charter-%5C(%5Cleftrightarrow%5C)-Charis-SIL">5.2.9. Bitstream Charter \(\leftrightarrow\) Charis SIL</a></li>
 <li> <a href="#Gentium-Plus-%5C(%5Cleftrightarrow%5C)-Gentium-Plus">5.2.10. Gentium Plus \(\leftrightarrow\) Gentium Plus</a></li>
 <li> <a href="#Cambria-%5C(%5Cleftrightarrow%5C)-Webcore-Cambria">5.2.11. Cambria \(\leftrightarrow\) Webcore Cambria</a></li>
 <li> <a href="#Computer-Modern-Serif-%5C(%5Cleftrightarrow%5C)-CMU-Serif">5.2.12. Computer Modern Serif \(\leftrightarrow\) CMU Serif</a></li>
 <li> <a href="#Noto-Serif-%5C(%5Cleftrightarrow%5C)-Noto-Serif">5.2.13. Noto Serif \(\leftrightarrow\) Noto Serif</a></li>
 <li> <a href="#PT-Serif-%5C(%5Cleftrightarrow%5C)-PT-Serif">5.2.14. PT Serif \(\leftrightarrow\) PT Serif</a></li>
 <li> <a href="#Garamond-%5C(%5Cleftrightarrow%5C)-EB-Garamond">5.2.15. Garamond \(\leftrightarrow\) EB Garamond</a></li>
 <li> <a href="#Baskerville-%5C(%5Cleftrightarrow%5C)-Libre-Baskerville">5.2.16. Baskerville \(\leftrightarrow\) Libre Baskerville</a></li>
 <li> <a href="#Utopia-%5C(%5Cleftrightarrow%5C)-Linguistics-Pro">5.2.17. Utopia \(\leftrightarrow\) Linguistics Pro</a></li>
 <li> <a href="#Literata-%5C(%5Cleftrightarrow%5C)-Literata">5.2.18. Literata \(\leftrightarrow\) Literata</a></li>
 <li> <a href="#Sarasa-Slab-%5C(%5Cleftrightarrow%5C)-Sarasa-Mono-Slab-SC">5.2.19. Sarasa Slab \(\leftrightarrow\) Sarasa Mono Slab SC</a></li>
</ul></li>
 <li> <a href="#Terminal">5.3. Terminal</a>
 <ul> <li> <a href="#Courier-%5C(%5Cleftrightarrow%5C)-URW++-Nimbus-Mono-L">5.3.1. Courier \(\leftrightarrow\) URW++ Nimbus Mono L</a></li>
 <li> <a href="#Courier-(fake)-%5C(%5Cleftrightarrow%5C)-ChromeOS-Crosscore-Cousine">5.3.2. Courier (fake) \(\leftrightarrow\) ChromeOS Crosscore Cousine</a></li>
 <li> <a href="#Courier-(PT)-%5C(%5Cleftrightarrow%5C)-PT-Mono">5.3.3. Courier (PT) \(\leftrightarrow\) PT Mono</a></li>
 <li> <a href="#Andale-Mono-%5C(%5Cleftrightarrow%5C)-Webcore-Andale-Mono">5.3.4. Andale Mono \(\leftrightarrow\) Webcore Andale Mono</a></li>
 <li> <a href="#Lucida-Console-%5C(%5Cleftrightarrow%5C)-Webcore-Lucida-Console">5.3.5. Lucida Console \(\leftrightarrow\) Webcore Lucida Console</a></li>
 <li> <a href="#Terminus-%5C(%5Cleftrightarrow%5C)-Terminalia">5.3.6. Terminus \(\leftrightarrow\) Terminalia</a></li>
 <li> <a href="#Sarasa-Term-%5C(%5Cleftrightarrow%5C)-Sarasa-Term-SC">5.3.7. Sarasa Term \(\leftrightarrow\) Sarasa Term SC</a></li>
 <li> <a href="#Sarasa-Term-Slab-%5C(%5Cleftrightarrow%5C)-Sarasa-Term-Slab-SC">5.3.8. Sarasa Term Slab \(\leftrightarrow\) Sarasa Term Slab SC</a></li>
 <li> <a href="#Fira-Code-%5C(%5Cleftrightarrow%5C)-Fira-Code">5.3.9. Fira Code \(\leftrightarrow\) Fira Code</a></li>
 <li> <a href="#Adobe-Source-Code-%5C(%5Cleftrightarrow%5C)-Source-Code-Pro">5.3.10. Adobe Source Code \(\leftrightarrow\) Source Code Pro</a></li>
 <li> <a href="#Ubuntu-Mono-%5C(%5Cleftrightarrow%5C)-Ubuntu-Mono">5.3.11. Ubuntu Mono \(\leftrightarrow\) Ubuntu Mono</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Fonts-with-Han">6. Fonts with Han</a>
 <ul> <li> <a href="#LXGW-WenKai">6.1. LXGW WenKai</a></li>
 <li> <a href="#IBM-Plex-Sans">6.2. IBM Plex Sans</a></li>
 <li> <a href="#GNU-Unifont">6.3. GNU Unifont</a></li>
 <li> <a href="#Hanazono">6.4. Hanazono</a></li>
 <li> <a href="#Kurinto-Aria">6.5. Kurinto Aria</a></li>
 <li> <a href="#Kurinto-Arte">6.6. Kurinto Arte</a></li>
 <li> <a href="#Kurinto-Book">6.7. Kurinto Book</a></li>
 <li> <a href="#Kurinto-Cali">6.8. Kurinto Cali</a></li>
 <li> <a href="#Kurinto-Mono">6.9. Kurinto Mono</a></li>
 <li> <a href="#Kurinto-Sans">6.10. Kurinto Sans</a></li>
 <li> <a href="#Kurinto-Seri">6.11. Kurinto Seri</a></li>
 <li> <a href="#Kurinto-TMod">6.12. Kurinto TMod</a></li>
 <li> <a href="#Kurinto-Text">6.13. Kurinto Text</a></li>
 <li> <a href="#Noto-Sans-CJK">6.14. Noto Sans CJK</a></li>
 <li> <a href="#Noto-Serif-CJK">6.15. Noto Serif CJK</a></li>
 <li> <a href="#Sarasa-Gothic-(CJK-example)-%5C(%5Cleftrightarrow%5C)-Sarasa-Gothic">6.16. Sarasa Gothic (CJK example) \(\leftrightarrow\) Sarasa Gothic</a></li>
 <li> <a href="#Adobe-Source-Han-Sans-CJK">6.17. Adobe Source Han Sans CJK</a></li>
 <li> <a href="#CNS11643-TW-Kai">6.18. CNS11643 TW Kai</a></li>
 <li> <a href="#CNS11643-TW-Sung">6.19. CNS11643 TW Sung</a></li>
 <li> <a href="#WenQuanYi-Micro-Hei">6.20. WenQuanYi Micro Hei</a></li>
 <li> <a href="#WenQuanYi-Zen-Hei">6.21. WenQuanYi Zen Hei</a></li>
 <li> <a href="#Fandol-Hei">6.22. Fandol Hei</a></li>
 <li> <a href="#Fandol-Song">6.23. Fandol Song</a></li>
 <li> <a href="#Fandol-Fang-(fangsong)">6.24. Fandol Fang (fangsong)</a></li>
 <li> <a href="#Fandol-Kai">6.25. Fandol Kai</a></li>
 <li> <a href="#Microsoft-YaHei">6.26. Microsoft YaHei</a></li>
 <li> <a href="#Microsoft-SimSun">6.27. Microsoft SimSun</a></li>
 <li> <a href="#Microsoft-MingLiu">6.28. Microsoft MingLiu</a></li>
 <li> <a href="#Microsoft-DengXian">6.29. Microsoft DengXian</a></li>
 <li> <a href="#Microsoft-JhengHei-(%E6%AD%A3%E9%BB%91)">6.30. Microsoft JhengHei (正黑)</a></li>
</ul></li>
 <li> <a href="#Fonts-for-fun">7. Fonts for fun</a>
 <ul> <li> <a href="#Misc-Fixed">7.1. Misc Fixed</a></li>
 <li> <a href="#univga-VGA">7.2. univga VGA</a></li>
 <li> <a href="#oldschool-pc-fonts-https://int10h.org/oldschool-pc-fonts/">7.3. oldschool-pc-fonts https://int10h.org/oldschool-pc-fonts/</a></li>
 <li> <a href="#Comic-Sans">7.4. Comic Sans</a></li>
 <li> <a href="#Zapfino">7.5. Zapfino</a></li>
 <li> <a href="#Fraktur-%5Cleftrightarrow-Kurinto-Olde">7.6. Fraktur ↔ Kurinto Olde</a></li>
</ul></li>
</ul></div>
</nav> <p>
I am writing this file as a guide for using fonts.
Fonts have been disproportionately difficult to use because of two reasons:
</p>

 <ol class="org-ol"> <li>A lot of terminology is coming from the times of Gutenberg, and is also constantly changing and inconsistent.</li>
 <li>Computing is largely driven by Latin-writing companies and communities, which have no incentive to make sure that all fonts work across all alphabets.</li>
</ol> <p>
This file is not about the practice of using fonts for UI in computers, it is about using fonts with documents.
</p>

 <p>

</p>

 <section id="outline-container-References" class="outline-2"> <h2 id="References"> <span class="section-number-2">1.</span>  <a href="#References">References</a></h2>
 <div class="outline-text-2" id="text-References">
 <ol class="org-ol"> <li>Typeface features and legibility research, by Charles Bigelow ::   <a href="https://www.sciencedirect.com/science/article/pii/S0042698919301087">https://www.sciencedirect.com/science/article/pii/S0042698919301087</a></li>
 <li>Wikipedia</li>
 <li>The Ails of Typographic Anti-Aliasing ::  <a href="https://www.smashingmagazine.com/2009/11/the-ails-of-typographic-anti-aliasing/">https://www.smashingmagazine.com/2009/11/the-ails-of-typographic-anti-aliasing/</a></li>
 <li>Modern text rendering with Linux ::  <a href="https://mrandri19.github.io/2019/07/24/modern-text-rendering-linux-overview.html">https://mrandri19.github.io/2019/07/24/modern-text-rendering-linux-overview.html</a></li>
 <li>Higher Quality 2D Text Rendering ::  <a href="https://inria.hal.science/hal-00821839/document">https://inria.hal.science/hal-00821839/document</a></li>
 <li>Overleaf Font typefaces ::  <a href="https://www.overleaf.com/learn/latex/Font_typefaces">https://www.overleaf.com/learn/latex/Font_typefaces</a></li>
 <li>Fonts and TeX ::  <a href="https://tug.org/fonts/">https://tug.org/fonts/</a></li>
 <li>Recent additions to TEX’s font repertoire ::  <a href="https://tug.org/TUGboat/tb35-2/tb110sharpe.pdf">https://tug.org/TUGboat/tb35-2/tb110sharpe.pdf</a></li>
 <li>The STIX Project — From Unicode to fonts ::  <a href="https://tug.org/TUGboat/tb28-3/tb90beet.pdf">https://tug.org/TUGboat/tb28-3/tb90beet.pdf</a></li>
 <li>Microsoft’s ClearType Font Collection ::  <a href="https://typographica.org/on-typography/microsofts-cleartype-font-collection-a-fair-and-balanced-review/">https://typographica.org/on-typography/microsofts-cleartype-font-collection-a-fair-and-balanced-review/</a></li>
 <li>How do I identify a substituted font? ::  <a href="https://ask.libreoffice.org/t/how-do-i-identify-a-substituted-font/32271">https://ask.libreoffice.org/t/how-do-i-identify-a-substituted-font/32271</a></li>
 <li>The LaTeX Font Catalogue ::  <a href="https://tug.org/FontCatalogue/">https://tug.org/FontCatalogue/</a></li>
 <li>Unicode fonts and tools for X11 ::  <a href="https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html">https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html</a></li>
</ol></div>
</section> <section id="outline-container-Terminology-and-basic-introduction" class="outline-2"> <h2 id="Terminology-and-basic-introduction"> <span class="section-number-2">2.</span>  <a href="#Terminology-and-basic-introduction">Terminology and basic introduction</a></h2>
 <div class="outline-text-2" id="text-Terminology-and-basic-introduction">
</div>

 <div id="outline-container-Some-basic-terms" class="outline-3">
 <h3 id="Some-basic-terms"> <span class="section-number-3">2.1.</span>  <a href="#Some-basic-terms">Some basic terms</a></h3>
 <div class="outline-text-3" id="text-Some-basic-terms">
 <ol class="org-ol"> <li>Character :: ?</li>
 <li>Symbol :: ?</li>
 <li>Glyph :: ?</li>
 <li>Grapheme :: ?</li>
 <li>Typeface :: ? The way the letters look like?</li>
 <li>Script :: A font imitating handwriting.</li>
 <li>Orthography :: A subset of writing system. Say, "writing system"=Han, orthographies: Simplified Chinese, Traditional Chinese, Japanese</li>
 <li>Shape :: ?</li>
 <li>Hinting :: Making character pixels fit the monitor grid.</li>
 <li>Anti-aliasing :: Interpolating diagonal lines to avoid "stairs" effects.</li>
 <li>Kerning :: Moving characters left-right to remove excessive space?</li>
 <li>Serif :: Font with triangular marks which indicate ends of strokes.</li>
 <li>Sans/Sans-Serif :: Font without marks which indicate ends of strokes.</li>
 <li>Slab :: Font with rectangular marks.</li>
 <li>Mono (monospace) :: Font which has all characters of the same width. In reality not actually so, because Han characters are usually 2x wide.</li>
 <li>Half-width :: the width of normal characters in a text, especially when intermingled with wide Asian characters.</li>
 <li>Full-width :: when normal characters are made 2x wide, the same size as Asian characters.</li>
 <li>Term :: Monospace, and also without ligatures and other "helpful" features, text on a grid. Usually Sans.</li>
 <li>Typewriter :: Usually the same as Term, but also often with Slab-Serif.</li>
 <li>Font Set :: When many fonts are combined to make a single set of characters which covers all of Unicode.</li>
 <li>Latin :: Not what you think. Latin usually means "ASCII+diacritical marks", that is, a Latin alphabet combined with é, è, and similar characters for French, Czech, Vietnamese, Latin languages beyond English.</li>
 <li>Roman :: Upright.</li>
 <li>Italic :: Slanted like rotated.</li>
 <li>Oblique :: Slanted like distorted.</li>
 <li>Sample :: Means nothing.</li>
 <li>Fallback :: Also means nothing.</li>
 <li>Regular :: Medium thickness.</li>
 <li>Medium :: ? no idea, but not "medium thickness".</li>
 <li>Normal :: ?</li>
 <li>Light :: Lighter than Regular.</li>
 <li>Bold :: Bold.</li>
 <li>Heavy :: Bolder than bold.</li>
 <li>Black :: Very bold.</li>
 <li>Vector font :: Font drawn using special micro programs, mathematical expressions.  <span class="underline">May</span> also include pixel fields, if people draw them intentionally.</li>
 <li>Raster font :: Font consisting from pixel fields (which may be generated from a vector-drawing program).</li>
 <li>Hēitǐ (黑体) :: Font in which beginnings and ends of strokes are indistinguishable.</li>
 <li>Sòngtǐ (宋体) :: Font which has beginnings and ends of strokes marked with "fish scale".</li>
 <li>FǎngSòngTǐ (仿宋体) :: No idea.</li>
 <li>MíngTǐ (明体) :: Sòngtǐ.</li>
 <li>KǎiTǐ (楷体) :: Font in which beginnings and ends of strokes differ by width.</li>
 <li>PostScript :: A programming language for drawing vector graphics.</li>
 <li>PDF ::  A programming language for drawing vector graphics, incompatible with PostScript.</li>
 <li>TTF (TrueType) :: Vector font format.</li>
 <li>OTF (OpenType) :: Vector font format.</li>
 <li>OTB (OpenType Bitmap) :: Vector fonts format consisting entirely of bitmaps.</li>
 <li>bdf :: Raster font format.</li>
 <li>pcf :: Raster font format.</li>
 <li>psf :: Raster font format.</li>
</ol></div>
</div>

 <div id="outline-container-What-is-a-*font*." class="outline-3">
 <h3 id="What-is-a-*font*."> <span class="section-number-3">2.2.</span>  <a href="#What-is-a-*font*.">What is a  <b>font</b>.</a></h3>
 <div class="outline-text-3" id="text-What-is-a-*font*.">
 <ol class="org-ol"> <li>In a common human understanding, a  <b>font</b> is a mapping from characters to character shapes.</li>
 <li>In a common programmer understanding, a  <b>font</b> is a file which has a mapping from a codepage entry (say, unicode 263A, ☺) to a raster image.</li>
 <li>In a typographer's understanding, a  <b>font</b> can be any sort of confusing, weird, unclear and mystical stuff.</li>
</ol> <p>
This creates a lot of confusion, because everyone sees things differently, and because common intuition always fails.
</p>
</div>

 <div id="outline-container-Overlapping-fonts" class="outline-4">
 <h4 id="Overlapping-fonts"> <span class="section-number-4">2.2.1.</span>  <a href="#Overlapping-fonts">Overlapping fonts</a></h4>
 <div class="outline-text-4" id="text-Overlapping-fonts">
 <p>
Fonts may have different  <span class="underline">NAMES</span> but have identical  <span class="underline">SHAPES</span>.
</p>

 <p>
For example the  <b>Sarasa</b> font claims to combine the shapes from the  <b>Iosevka</b> font and the shapes from the  <b>Adobe Source Han</b> font.
</p>

 <p>
 <img src="Terminology_and_basic_introduction/2025-05-08_07-55-10_screenshot.png" alt="2025-05-08_07-55-10_screenshot.png"></img>
Hmmm… it seems that somebody is lying here.
Sarasa Mono CL and Iosevka are, indeed, identical (although I did not do a pixel-to-pixel verification), but Source Han Sans is clearly different.
</p>

 <p>
Alas, font people are lying all the time.
I can only guess that Sarasa's authors did not really take the  <span class="underline">latin</span> part of the font, they only took the Han (Chinese) part.
</p>
</div>
</div>

 <div id="outline-container-Font-variations" class="outline-4">
 <h4 id="Font-variations"> <span class="section-number-4">2.2.2.</span>  <a href="#Font-variations">Font variations</a></h4>
 <div class="outline-text-4" id="text-Font-variations">
 <p>
 <b>Very</b>  <i>naturally</i>,  <span class="underline">people</span>  <code>often</code> want to add emphasis to their words, without radically changing the shape of the characters.
Sometimes they also want to create titles or footnotes, for which they need bigger or smaller characters.
</p>

 <p>
Now,  <span class="underline">normal</span> people naturally call these small augmentations "font variations", and naturally assume that they are  <span class="underline">algorithmically generated</span>.
It is such an obvious allegation, since it is very natural to imagine those variations to be  <span class="underline">systematic changes</span>.
</p>

 <p>
Especially since Microsoft Word, LibreOffice, HTML, and other text processing packages pretend as if it is so, and let you apply those variations as if they are systematic programmatic alterations, and that they are  <span class="underline">independent</span> of each other.
</p>



 <figure id="orgb93aaa1"> <img src="Terminology_and_basic_introduction/2025-05-08_09-06-25_screenshot.png" alt="2025-05-08_09-06-25_screenshot.png"></img></figure> <p>
 <b> <span class="underline">NOT SO</span></b>.
In reality they are  <span class="underline">NOT</span> programmatic or systematic.
Let us have a look at the font-manager presentation.
</p>



 <figure id="orgee8664d"> <img src="Terminology_and_basic_introduction/2025-05-08_09-14-26_screenshot.png" alt="2025-05-08_09-14-26_screenshot.png"></img></figure> <p>
You can see the distribution of fonts between  <b>weights</b>.
These weights are  <span class="underline">built into</span> fonts, and are not programmatic augmentations.
</p>

 <p>
Let us look at  <i>italics</i>:
</p>



 <figure id="orga0efd15"> <img src="Terminology_and_basic_introduction/2025-05-08_09-16-35_screenshot.png" alt="2025-05-08_09-16-35_screenshot.png"></img></figure> <p>
The randomly chosen font on the screenshot actually exists in an italic shape, but the list on the left shows that only 287 out of 1415 fonts available on my machine support this shape.
As you have guessed "Bold Italic" is a variation which has both weight and slant changed, and this is done by hand when designing the font.
</p>


 <ol class="org-ol"> <li>Weight ::  <b>bold</b>, but can also be written as a degree (Extra Light, Light, Semi-Light, Thin, Medium, Normal, Regular, Thick, Extra Thick, Semi-Bold, Bold, Ultra-Bold, Black, Heavy, Ultra-Heavy). I have  <span class="underline">NO IDEA</span> what those mean, and no, Black is not a colour.</li>
 <li> <i>Italic</i> :: the angle of the letters with respect to the vertical axis. Can be italic or oblique, and I have not managed to spot the difference.</li>
 <li>Interline spacing :: in many text processors interline spacing can be adjusted, but most fonts do not produce characters which are strictly limited to the bounding box, and have a certain empty margin between the bounding box and the character boundary. This matters in practice.</li>
</ol> <p>
 <b>But LibreOffice manages to give me Bold Italic characters regardless of the font!</b>
Yes, but I have NO idea how.
</p>

 <p>
Moreover, the text rendering engine "pango" lets you explicitly select font size, without specifying the font!
</p>

 <div class="org-src-container">
 <pre class="src src-pango"><span weight="ultralight">Hello, world</span>
</pre>
</div>

 <p>
Emacs allows specifying font parameters inside the font name:
</p>

 <div class="org-src-container">
 <pre class="src src-elisp">(set-face-font 'shr-text  <span style="font-style: italic;">"Liberation Serif-30:weight=light"</span>)
</pre>
</div>

 <p>
I have no idea how this works.
Does it transform the symbols automatically or tries to substitute something?
</p>
</div>
</div>

 <div id="outline-container-Incomplete-fonts" class="outline-4">
 <h4 id="Incomplete-fonts"> <span class="section-number-4">2.2.3.</span>  <a href="#Incomplete-fonts">Incomplete fonts</a></h4>
 <div class="outline-text-4" id="text-Incomplete-fonts">
 <p>
You might be baffled by this, but publishing fonts which do not cover all of Unicode is not a capital offence.
</p>

 <p>
Indeed, some fonts only support Latin, and some fonts do not even support Latin!
</p>

 <p>
Moreover, some fonts only support  <span class="underline">a part</span> of a writing system.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Versioned-fonts"></a> <a href="#Versioned-fonts">Versioned fonts</a> <br></br> <div class="outline-text-5" id="text-Versioned-fonts">
 <p>
In the old times, a font required working with liquid metal and casting character shapes in iron.
This made fonts relatively stable.
</p>

 <p>
But in the time of computing, everything changes every year, and new "versions" of fonts are released.
So, before lambasting your font as ugly and not supporting the characters you need, first check if you have the most recent version.
</p>
</div>
</li>


 <li> <a id="Tofu"></a> <a href="#Tofu">Tofu</a> <br></br> <div class="outline-text-5" id="text-Tofu">
 <p>
Tofu happens when a font does not support a character, but the program tries to behave somehow user-friendly, and at least shows the number of the character in a tiny box, so that a user can find a font with those characters present, and install it.
</p>

 <p>
However, some "too user-friendly" fonts actually  <span class="underline">contain the tofu symbols inside of it</span>.
Which means that even if a program is capable of using some other font, which has all the required symbols, it wouldn't know that the current one does not support them.
</p>

 <p>
This is evil, and unless you have to, do not use such fonts.
</p>


 <figure id="org6e4d47f"> <img src="Terminology_and_basic_introduction/2025-05-08_09-33-30_screenshot.png" alt="2025-05-08_09-33-30_screenshot.png"></img></figure> <p>
The screenshot above only has 4-tofu, but there are also 6-tofu for characters with more letters.
</p>


 <figure id="org6b1750d"> <img src="Terminology_and_basic_introduction/2025-05-08_10-06-48_screenshot.png" alt="2025-05-08_10-06-48_screenshot.png"></img></figure></div>
</li>



 <li> <a id="White-squares"></a> <a href="#White-squares">White squares</a> <br></br> <div class="outline-text-5" id="text-White-squares">
 <p>
This case is even more sinister.
The missing characters are represented as empty boxes.
</p>

 <p>
Again, I have no idea whether this is a property of the font, or the property of the rendering system, but overall it is disgusting.
</p>


 <figure id="org45f893f"> <img src="Terminology_and_basic_introduction/2025-05-08_09-32-27_screenshot.png" alt="2025-05-08_09-32-27_screenshot.png"></img></figure></div>
</li>

 <li> <a id="Completely-empty-fonts"></a> <a href="#Completely-empty-fonts">Completely empty fonts</a> <br></br> <div class="outline-text-5" id="text-Completely-empty-fonts">

 <figure id="org3995847"> <img src="Terminology_and_basic_introduction/2025-05-08_09-39-00_screenshot.png" alt="2025-05-08_09-39-00_screenshot.png"></img></figure> <p>
No, this is not a joke.
The complete piece of shit called "Adobe Blank"  <span class="underline">pretends</span> that it has all of the Unicode symbols, but in reality all of those symbols have not paint at all.
You will not even know that something is written on your screen.
</p>

 <ol class="org-ol"> <li>Adobe Blank</li>
</ol></div>
</li>

 <li> <a id="Character-substitution"></a> <a href="#Character-substitution">Character substitution</a> <br></br> <div class="outline-text-5" id="text-Character-substitution">
 <p>
Some programs are clever enough to substitute missing symbols with symbols taken from another font.
Microsoft Word and similar text processing suites like doing this, without even letting the typesetter choose the font from which the substituting characters are taken.
</p>

 <p>
But the most amazing surprises happen when this software opaquely chooses Adobe Blank as the substitution font.
Then it  <span class="underline">believes</span> that it has substituted everything correctly, but the only thing you see is the background.
</p>
</div>
</li>

 <li> <a id="Font-set"></a> <a href="#Font-set">Font set</a> <br></br> <div class="outline-text-5" id="text-Font-set">
 <p>
Font sets are the true programmer's way of dealing with missing characters.
</p>

 <p>
This concept expects  <i>somebody</i> to explicitly write which character (or, rather, character group, for example "Latin Letters") should be coming from which font.
</p>

 <p>
Theoretically, this solves the problem of incomplete coverage completely, except nobody in their sane mind would be writing a font set, unless he is a programmer.
</p>

 <p>
Moreover, the only program using font sets which I am aware of is Emacs.
</p>

 <p>
Well, TeX has some concept of using different fonts for different purposes, but it is, by itself, very hard to grasp.
</p>
</div>
</li>

 <li> <a id="Giant-disorganized-fonts"></a> <a href="#Giant-disorganized-fonts">Giant disorganized fonts</a> <br></br> <div class="outline-text-5" id="text-Giant-disorganized-fonts">
 <p>
Of course, nobody in their sane mind, beyond Emacs fanboys and text processor developers would care about font sets.
</p>

 <p>
Most people just throw all the possible glyphs into a single font file, and call it a day.
This produces files which have a colossal size, up to 100 megabytes, but modern computers are strong and are expected to withstand that.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Dingbats-and-lying-fonts" class="outline-4">
 <h4 id="Dingbats-and-lying-fonts"> <span class="section-number-4">2.2.4.</span>  <a href="#Dingbats-and-lying-fonts">Dingbats and lying fonts</a></h4>
 <div class="outline-text-4" id="text-Dingbats-and-lying-fonts">
</div>

 <ol class="org-ol"> <li> <a id="Dingbats"></a> <a href="#Dingbats">Dingbats</a> <br></br> <div class="outline-text-5" id="text-Dingbats">
 <p>
Dingbats are not really fonts, they just contain funny symbols in place of normal characters:
</p>


 <figure id="org753850a"> <img src="Terminology_and_basic_introduction/2025-05-08_10-00-31_screenshot.png" alt="2025-05-08_10-00-31_screenshot.png"></img></figure> <p>
They are relatively benign, are mostly used with text processors, but do not try to write anything useful out of them.
What is more important, do not try to send them instead of smileys to your friends, because they likely have a different font, and will not see the smiley copied from a dingbat font.
</p>

 <p>
Dingbat fonts:
</p>

 <ol class="org-ol"> <li>Wingdings {1,2,3}</li>
 <li>Webdings</li>
</ol></div>
</li>

 <li> <a id="Intentional-substitutions"></a> <a href="#Intentional-substitutions">Intentional substitutions</a> <br></br> <div class="outline-text-5" id="text-Intentional-substitutions">
</div>

 <ol class="org-ol"> <li> <a id="Fake-ruby-script"></a> <a href="#Fake-ruby-script">Fake ruby-script</a> <br></br> <div class="outline-text-6" id="text-Fake-ruby-script">

 <figure id="orge2c1a44"> <img src="Terminology_and_basic_introduction/2025-05-08_10-24-32_screenshot.png" alt="2025-05-08_10-24-32_screenshot.png"></img></figure> <p>
The font does not contain many Simplified Chinese characters, so the first line has tofu, but the second line is more interesting.
The built-in shapes of the characters have phonetics (in ZhuYin) attached to them.
This is not some magical trick from the rendering engine, it just has the characters drawn like this.
</p>

 <p>
This is not as crazy as it sounds, if you are learning Chinese, it lets you automatically have phonetics attached, letting you read the text as if it was an Indo-European text, and it needs  <span class="underline">NO</span> support from the program beyond the ability to switch fonts.
</p>

 <p>
Well, sort of.
It does not deal with characters with multiple readings, such as 行 (xíng/háng).
</p>

 <ol class="org-ol"> <li>Han Wang Ming Medium Chu In</li>
 <li>Han Wang Kai Medium Chu In</li>
</ol></div>
</li>

 <li> <a id="Fake-Traditional-Simplified-transformations"></a> <a href="#Fake-Traditional-Simplified-transformations">Fake Traditional-Simplified transformations</a> <br></br> <div class="outline-text-6" id="text-Fake-Traditional-Simplified-transformations">

 <figure id="org2d3b5bb"> <img src="Terminology_and_basic_introduction/2025-05-08_10-32-08_screenshot.png" alt="2025-05-08_10-32-08_screenshot.png"></img></figure> <p>
Make no mistake, the characters didn't change from the previous section.
The first line is  <span class="underline">still</span> missing the symbols attributed to "Simplified Chinese", and the second line is still written in "Traditional Chinese".
But character shapes in the second line are, in fact, from the Simplified shapes.
</p>

 <p>
You can do a "poor man's" Traditional-to-Simplified conversion like this, or get horribly confused if you are doing a Chinese class online, and the program picks up the wrong font.
</p>

 <ol class="org-ol"> <li>HanWang Wei Bei</li>
 <li>HanWang Sin Song</li>
 <li>HanWang Kai</li>
 <li>HanWang FangSong</li>
</ol> <p>
Unfortunately, I have not found a font doing the opposite conversion, Simplified-to-Traditional.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-Marketing-bullshit" class="outline-4">
 <h4 id="Marketing-bullshit"> <span class="section-number-4">2.2.5.</span>  <a href="#Marketing-bullshit">Marketing bullshit</a></h4>
 <div class="outline-text-4" id="text-Marketing-bullshit">
 <p>
This is an excerpt from the official website of "Google Roboto".
</p>

 <blockquote>
 <p>
Roboto has a dual nature.
It has a mechanical skeleton and the forms are largely geometric.
At the same time, the font features friendly and open curves.
</p>
</blockquote>

 <p>
Have you understood anything?
I understood nothing.
</p>

 <p>
This is very typical of the font jargon to bury you in a mixture of terms and marketing.
</p>
</div>
</div>

 <div id="outline-container-Character-widths" class="outline-4">
 <h4 id="Character-widths"> <span class="section-number-4">2.2.6.</span>  <a href="#Character-widths">Character widths</a></h4>
 <div class="outline-text-4" id="text-Character-widths">
 <p>
There is a big issue with character widths.
It is not at all clear whether characters should all have the same width, or whether they should have a width proportional to the way they are typically written.
Both conventions might be more fit for some cases and unfit for others.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Mono-fonts"></a> <a href="#Mono-fonts">Mono fonts</a> <br></br> <div class="outline-text-5" id="text-Mono-fonts">
 <p>
Fonts in which all characters have the same width generally look uglier, but they have a nice property: words with an identical number of characters have identical length, which makes lists automatically aligned.
</p>


 <figure id="orgdd1153a"> <img src="Terminology_and_basic_introduction/2025-05-08_10-50-55_screenshot.png" alt="2025-05-08_10-50-55_screenshot.png"></img></figure> <p>
Chinese fonts are naturally having identical widths, so the first two lines are aligned.
Having the Cyrillic and the Latin (Translit) lines have identical lengths is also nice, even though the spaces are clearly ugly.
</p>

 <p>
But the bottom two likes are funnier: you see, there are no spaces around the bottom parenthesised "Privet".
The spaces are coming from the parentheses themselves, because "monospace" in the case of Latin-Chinese punctuation was solved in a bizarre way, by creating "Latin" parentheses and "Asian" parentheses, with different widths.
So, Sarasa, even though it is claiming to be "monospace", that is that its characters are all of the same width, but in reality its Latin and its Han characters have different widths.
</p>



 <figure id="org9967b07"> <img src="Terminology_and_basic_introduction/2025-05-08_10-57-22_screenshot.png" alt="2025-05-08_10-57-22_screenshot.png"></img></figure> <p>
Sarasa is fairly accurate, and is solving it in the way: making Han characters twice wider than Latin ones, and keeping the whitespace a single-width Latin.
However, a full-width space also exists, and full-width punctuation exists.
Cyrillic does not exist in full-width, Japanese Kana and Korean Hangul exist in both sizes, but in Sarasa, half-width (Latin-sized) Hangul is rendered full-width. :(
</p>



 <figure id="orgd3cbb45"> <img src="Terminology_and_basic_introduction/2025-05-08_11-07-22_screenshot.png" alt="2025-05-08_11-07-22_screenshot.png"></img></figure> <p>
But not all fonts which claim to be monospace are actually monospace:
</p>


 <figure id="org0496ac2"> <img src="Terminology_and_basic_introduction/2025-05-08_11-11-09_screenshot.png" alt="2025-05-08_11-11-09_screenshot.png"></img></figure> <p>
Noto Mono clearly does not enforce full (double) width of the tofu characters.
</p>



 <figure id="orgbb05518"> <img src="Terminology_and_basic_introduction/2025-05-08_11-13-03_screenshot.png" alt="2025-05-08_11-13-03_screenshot.png"></img></figure> <p>
WenQuanYi Micro Hei Mono is not actually mono with respect to punctuation.
</p>
</div>
</li>

 <li> <a id="Proportional-fonts,-kerning."></a> <a href="#Proportional-fonts,-kerning.">Proportional fonts, kerning.</a> <br></br> <div class="outline-text-5" id="text-Proportional-fonts,-kerning.">
 <p>
I do not like proportional fonts and I use them less than mono.
However, as has already been mentioned, not all features are available for all fonts.
</p>

 <p>
When I need to have a text printed in a font with "Serifs" (see the next section), I am out of choice, because I have not found a monospace font with serifs.
</p>

 <p>
With proportional fonts, kerning starts to matter.
</p>

 <p>
Kerning is when the system algorithmically adjusts how close together are symbols.
</p>


 <figure id="org7b2faa1"> <img src="Terminology_and_basic_introduction/2025-05-08_11-30-12_screenshot.png" alt="2025-05-08_11-30-12_screenshot.png"></img></figure></div>
</li>
</ol></div>


 <div id="outline-container-Stroke-style" class="outline-4">
 <h4 id="Stroke-style"> <span class="section-number-4">2.2.7.</span>  <a href="#Stroke-style">Stroke style</a></h4>
 <div class="outline-text-4" id="text-Stroke-style">
 <p>
Some font drawing details are so prominent that we cannot avoid noticing them.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Serifs"></a> <a href="#Serifs">Serifs</a> <br></br> <div class="outline-text-5" id="text-Serifs">
 <p>
In particular, most Latin fonts are either Serif or Sans Serif.
(Sans is French for "without".)
</p>

 <p>
What are "serifs"?
Serifs are those tiny marks/strokes at the ends of most of the character strokes, which are supposed to make it more readable.
</p>


 <p>
 <img src="Terminology_and_basic_introduction/2025-05-08_12-05-41_screenshot.png" alt="2025-05-08_12-05-41_screenshot.png"></img>
Times New Roman has serifs.
</p>


 <p>
 <img src="Terminology_and_basic_introduction/2025-05-08_12-06-49_screenshot.png" alt="2025-05-08_12-06-49_screenshot.png"></img>
Arial does not have serifs.
</p>

 <p>
It is believed that Sans Serif fonts are better for computer screens, and that Serif fonts are better for printed books and articles, but studies do not really support this claim.
I prefer using Sans-Serif everywhere.
</p>

 <p>
 <b>Slab</b> fonts are like serif, but the serifs are not pointy, but blunt.
</p>



 <figure id="org2d6e330"> <img src="Terminology_and_basic_introduction/2025-05-08_12-31-10_screenshot.png" alt="2025-05-08_12-31-10_screenshot.png"></img></figure> <p>
Standard Sarasa does not have slabs.
</p>


 <figure id="org5d28da4"> <img src="Terminology_and_basic_introduction/2025-05-08_12-31-53_screenshot.png" alt="2025-05-08_12-31-53_screenshot.png"></img></figure> <ol class="org-ol"> <li>Sarasa Slab has slabs for Cyrillic.</li>
</ol></div>
</li>


 <li> <a id="Stroke-direction"></a> <a href="#Stroke-direction">Stroke direction</a> <br></br> <div class="outline-text-5" id="text-Stroke-direction">
</div>

 <ol class="org-ol"> <li> <a id="European-fonts"></a> <a href="#European-fonts">European fonts</a> <br></br> <div class="outline-text-6" id="text-European-fonts">
 <p>
In Latin fonts, the issue of stroke direction only appears in fonts which imitate handwriting, and this is a seldom-happening thing.
</p>



 <figure id="org0580695"> <img src="Terminology_and_basic_introduction/2025-05-08_12-08-59_screenshot.png" alt="2025-05-08_12-08-59_screenshot.png"></img></figure> <p>
Even for the example above, stroke direction is only really visible for "в", "т", "i".
</p>
 <ol class="org-ol"> <li>The font is called "Bad script".</li>
</ol> <figure id="org4374507"> <img src="Terminology_and_basic_introduction/2025-05-08_12-34-28_screenshot.png" alt="2025-05-08_12-34-28_screenshot.png"></img></figure> <ol class="org-ol"> <li>Marck Script.</li>
</ol> <p>
The stroke direction is more visible, but still less prominent than in Han.
</p>

 <p>
But for Han fonts this is much more frequent.
</p>
</div>
</li>

 <li> <a id="KaiTi"></a> <a href="#KaiTi">KaiTi</a> <br></br> <div class="outline-text-6" id="text-KaiTi">
 <p>
 <b>Kaiti</b> (also known as  <b>KaiShu</b>,  <b>ZhengTi</b>,  <b>ZhengKai</b>,  <b>ZhengShu</b>) is a style of writing in which stroke direction is visible
But make no mistake the strokes do not necessarily start thick and end pointy, often they do not.
</p>



 <figure id="org0a14a82"> <img src="Terminology_and_basic_introduction/2025-05-08_12-41-17_screenshot.png" alt="2025-05-08_12-41-17_screenshot.png"></img></figure> <ol class="org-ol"> <li>HanWang Kai is honestly doing its job for Han, but for Latin it just adds serifs instead of stroke ends.</li>
</ol> <figure id="orged33455"> <img src="Terminology_and_basic_introduction/2025-05-08_12-43-58_screenshot.png" alt="2025-05-08_12-43-58_screenshot.png"></img></figure> <ol class="org-ol"> <li>LXGW WenKai does it much more faithfully.</li>
</ol> <p>
The Han script is clear Kai, but even Latin and Cyrillic have stroke endings marked a bit.
</p>



 <figure id="orgcb57770"> <img src="Terminology_and_basic_introduction/2025-05-08_12-45-33_screenshot.png" alt="2025-05-08_12-45-33_screenshot.png"></img></figure> <ol class="org-ol"> <li>TW-Kai does not even care about Cyrillic whatsoever, it seems that the Cyrillic characters are added just out of greediness.</li>
</ol> <p>
However, the fact that Cyrillic characters are rendered as wide as Han characters, amuses me.
</p>
</div>
</li>

 <li> <a id="MingTi-SongTi"></a> <a href="#MingTi-SongTi">MingTi-SongTi</a> <br></br> <div class="outline-text-6" id="text-MingTi-SongTi">
 <p>
 <b>MingTi</b> (also called  <b>SongTi</b>)script is like Kai in that beginnings and ends are visible, but they are marked explicitly (the marks are called "fish scales", "lín"), instead of being represented by widths.
</p>


 <figure id="org270d4a3"> <img src="Terminology_and_basic_introduction/2025-05-08_12-49-56_screenshot.png" alt="2025-05-08_12-49-56_screenshot.png"></img></figure> <ol class="org-ol"> <li>cwTeX Q Ming</li>
</ol> <p>
Traditional Chinese has end marks, but Latin and Cyrillic are just serifs.
But the rest of the fonts on my machine are even worse.
</p>



 <figure id="orgb420771"> <img src="Terminology_and_basic_introduction/2025-05-08_19-34-57_screenshot.png" alt="2025-05-08_19-34-57_screenshot.png"></img></figure> <ol class="org-ol"> <li>TW-Sung, has at least some of Simplified Han, Traditional Han.</li>
</ol> <p>
Serifs in Latin even look a little bit like "fish scales", but Cyrillic is just some bizarre font with Serifs, and Cyrillic letters to be "like full-width".
</p>

 <p>
There is also a version of Song/Ming called FangSong, but the fonts I have which claim to implement it are inconsistent.
</p>
</div>
</li>

 <li> <a id="Asian-Gothic,-HeiTi"></a> <a href="#Asian-Gothic,-HeiTi">Asian Gothic, HeiTi</a> <br></br> <div class="outline-text-6" id="text-Asian-Gothic,-HeiTi">
 <p>
HēiTǐ, 黑体, literally means "black body", but this "black" is unrelated to the font weight.
HeiTi differes from Ming/Song/Kai in that the beginnings/ends of the strokes are  <span class="underline">not</span> marked.
Sometimes it is also called "Gothic", but this makes no sense.
</p>

 <p>
They can be with square ends or rounded ends.
</p>



 <figure id="org25dd40f"> <img src="Terminology_and_basic_introduction/2025-05-08_19-52-45_screenshot.png" alt="2025-05-08_19-52-45_screenshot.png"></img></figure> <ol class="org-ol"> <li>WenQuanYi Micro Hei.</li>
</ol> <p>
It has square ends.
This version is proportional and tries to be faithful with Cyrillic and Latin.
</p>



 <figure id="org9cab34a"> <img src="Terminology_and_basic_introduction/2025-05-08_19-54-46_screenshot.png" alt="2025-05-08_19-54-46_screenshot.png"></img></figure> <ol class="org-ol"> <li>HanWang Hei has rounded endings, and also tries to be faithful to Latin, but has tofu instead of Cyrillic.</li>
</ol> <p>
 <b>Rounded Simplified Chinese Hei Font</b> does not exist, or I have not found it.
</p>
</div>
</li>
</ol></li>
</ol></div>


 <div id="outline-container-File-formats-and-symbol-encoding" class="outline-4">
 <h4 id="File-formats-and-symbol-encoding"> <span class="section-number-4">2.2.8.</span>  <a href="#File-formats-and-symbol-encoding">File formats and symbol encoding</a></h4>
 <div class="outline-text-4" id="text-File-formats-and-symbol-encoding">
</div>

 <ol class="org-ol"> <li> <a id="Rendering-details"></a> <a href="#Rendering-details">Rendering details</a> <br></br> <div class="outline-text-5" id="text-Rendering-details">
 <p>
We all know that graphics can be raster and vector.
</p>

 <p>
 <b>Raster</b> images are encoded as a two-dimensional array or field or numbers, each number representing a colour.
Raster images are "easy" to make for a photo camera, and for a digital artist, essentially every piece of software allows exporting into raster images.
</p>

 <p>
 <b>Vector</b> images are not even images, they are tiny (and sometimes not at all tiny) programs that "draw" an image as they are executed.
In the simplest case the "program" is a mathematical function, and usually executed by a state machine not by a full-fledged Turing machine.
In more malignant cases the program is executed by a true programming language.
</p>

 <p>
Consequently,  <b>raster</b> images are easy to create, but are inflexible:
</p>

 <ol class="org-ol"> <li>You cannot scale them, as they become distorted when enlarged.</li>
 <li>If the original DPI of the computer where the picture was created, does not match the DPI of the target machine, expect bad rendering.</li>
</ol> <p>
All of that did not particularly matter in the 90s, when almost all displays had the DPI of 72 pixels per inch.
I am not sure there was any agreement on that, it has just happened by itself.
</p>

 <p>
But in the 2000s already things started to change.
90 dots per inch became a more prevalent resolution, and more and more often we started to see irregular resolutions: 120, 200, and all the way up to 600.
</p>

 <p>
( <b>Presumably, people do not need anything more than 600 DPI</b>, because most printers, printing on paper, have a physical DPI of 600, and nobody complains.
 <b>Scanning</b> with a higher DPI does make sense, when you are scanning film.)
</p>

 <p>
To avoid the issues with raster fonts, where each character is represented by a raster image, people started to create vector fonts.
Vector fonts are better than raster in that you can scale them indefinitely, but they have a different problem: fitting mathematical functions to the display grid of pixels.
You see, most functions are continuous, not discreet, and most designers who are creating vector images (tiny programs), are drawing the characters with something similar to  <b>Bezier curves</b> (which are models of how people draw strokes), which are continuous, and know nothing about pixels and grids.
If your DPI is exorbitant, this is not a problem, because a fine DPI approximates a continuous function well enough, but if the DPI is somewhere between 72 and 250, expect rendering artefacts.
</p>

 <p>
The process of bashing continuous functions into a crude grid is called "hinting".
Here the word "hint" comes from the idea that you give hints to the renderer on how to behave in less-than-ideal situations.
</p>

 <p>
There are two ways to "hint" – manual and automatic, so-called "auto-hinting".
Hinting can also  <span class="underline">negatively</span> affect rendering on high DPI displays.
</p>

 <p>
 <b>Integer</b> hinting is about making font strokes fit the grid of whole pixels, whereas  <b>sub-pixel</b> hinting exploits the fact that in real life display pixels are not actually white, and consist of several smaller colourful sub-pixels (red, green, blue).
Microsoft Windows "ClearType" is an algorithm of sub-pixel auto-hinting.
</p>


 <p>
 <img src="Terminology_and_basic_introduction/2025-05-09_08-20-40_screenshot.png" alt="2025-05-09_08-20-40_screenshot.png"></img>
Integer hinting.
</p>


 <p>
 <img src="Terminology_and_basic_introduction/2025-05-09_08-21-01_screenshot.png" alt="2025-05-09_08-21-01_screenshot.png"></img>
Sub-pixel hinting.
</p>

 <p>
 <b>Anti-aliasing</b> is, in some sense, one of auto-hinting algorithms, which is usually applied  <span class="underline">after</span> normal hinting, to avoid characters having a "stairs" effect.
It is not unequivocally good.
Insufficient anti-aliasing makes shapes look crude, whereas excessive anti-aliasing makes them look blurry.
</p>



 <figure id="orgc1bca1e"> <img src="Terminology_and_basic_introduction/2025-05-09_08-19-06_screenshot.png" alt="2025-05-09_08-19-06_screenshot.png"></img></figure> <p>
Having three parameters already make very hard to find a point of good-looking fonts.
</p>
</div>
</li>

 <li> <a id="File-formats"></a> <a href="#File-formats">File formats</a> <br></br> <div class="outline-text-5" id="text-File-formats">
 <p>
Naturally, since there are raster and vector fonts, there should be file formats for raster and vector fonts.
</p>

 <ol class="org-ol"> <li>BDF (.bdf) :: Raster font, black-white, not grey-scale.  <a href="https://en.wikipedia.org/wiki/Glyph_Bitmap_Distribution_Format">https://en.wikipedia.org/wiki/Glyph_Bitmap_Distribution_Format</a>
 <ol class="org-ol"> <li>X11 and system storage on my machine do not have bdf fonts</li>
 <li>The GNU "intlfonts" package ships a lot of bdf fonts for different writing systems, seemingly, most of them pre-unicode, which means that there is a need for KOI<->Unicode translation to use them. They are most often used as a part of GNU Emacs, when system-wide fonts are not available.</li>
 <li>TeX 2023 is shipping bdf files as a part of the  <code>babelbib</code> package, but they are not actual  <code>bdf</code> fonts.</li>
 <li>In short, you can forget about  <code>bdf</code>.</li>
</ol></li>
 <li>PCF (.pcf) :: Raster font, considered to be slightly better than  <code>bdf</code>.
 <ol class="org-ol"> <li>GNU intlfonts is shipping a lot of  <code>pcf</code> files for Emacs.</li>
 <li>x11 by default has quite a few  <code>pcf</code> fonts, and they are broken into many files.</li>
</ol></li>
 <li>PSF (.psf, .psfu, .psf.gz, .psfu.hz) PC Screen Fonts ::  <a href="https://en.wikipedia.org/wiki/PC_Screen_Font">https://en.wikipedia.org/wiki/PC_Screen_Font</a>
 <ol class="org-ol"> <li>Font used by Linux Kernel for console fonts.</li>
 <li>Shipped by consolefonts, kbd, psftools, and univga-font</li>
 <li>Unless you care about Linux console, you can forget about PSF fonts</li>
</ol></li>
 <li>Type1 (.pfa (ascii), .pfb (binary)) :: Fonts that draw characters with a limited set of PostScript commands.
 <ol class="org-ol"> <li>Older Adobe fonts</li>
 <li>Fonts actively used by the TeX project, with a log of stock fonts being distributed as Type1 files.</li>
</ol></li>
 <li>Type3 (.t3) :: Fonts that draw characters with a full set of PostScript commands.
 <ol class="org-ol"> <li>I have only ever seen TeX using Type3.</li>
</ol></li>
 <li>TrueType (.ttf) :: The most popular format of vector fonts.</li>
 <li>OpenType (.otf) :: A newer than TrueType format of vector fonts.</li>
 <li>Metafont (.mf) :: A vector format for generating raster fonts, only used in TeX and not fully compatible with Type1.</li>
</ol> <p>
The section  <a href="#Rendering-details">2.2.8.1</a> mentioned that fonts can be raster or vector.
However, the boundary always becomes blurry, for two reasons:
</p>

 <ol class="org-ol"> <li>Raster fonts are often generated from vector sources, for example, with Metafont.</li>
 <li>Advanced vector font files (otf,ttf), may include pre-rendered, or even completely unrelated pictures for some specific sizes or shapes (usually small scales).</li>
</ol></div>
</li>
</ol></div>
</div>

 <div id="outline-container-Software-tools" class="outline-3">
 <h3 id="Software-tools"> <span class="section-number-3">2.3.</span>  <a href="#Software-tools">Software tools</a></h3>
 <div class="outline-text-3" id="text-Software-tools">
 <ol class="org-ol"> <li>Fontconfig :: Transform a "font request" into a font file and parameters.</li>
 <li>Freetype :: Render characters on screen on paper.</li>
 <li>Xft :: A library to make X11 use Freetype.</li>
 <li>Harfbuzz :: Some ligature-related mumbo-jumbo, but</li>
 <li>Font-manager :: A powerful font browser, in some respects better than gucharmap.  <a href="https://github.com/FontManager/font-manager">https://github.com/FontManager/font-manager</a> .</li>
 <li>Gucharmap :: A GUI for fonts and characters browsing.</li>
 <li>Fontforge :: A font-creation multi-tool.</li>
 <li>xgridfit :: A tool to write hinting scripts for fonts.</li>
 <li>Metafont :: A TeX-related tool to create fonts programmatically.</li>
 <li>Fontaine ::  <a href="https://www.unifont.org/fontaine/">https://www.unifont.org/fontaine/</a></li>
 <li>xlsfonts :: lists fonts available from an X server.</li>
</ol></div>

 <div id="outline-container-fontconfig" class="outline-4">
 <h4 id="fontconfig"> <span class="section-number-4">2.3.1.</span>  <a href="#fontconfig">fontconfig</a></h4>
 <div class="outline-text-4" id="text-fontconfig">
 <p>
Fontconfig contains utilities for working with font files and properties.
It is most often used for translating a font "request", written in an ill-defined format, into a file name and, possibly, a few variation indications, allowing to choose a font from within a file (if a file contains several fonts).
</p>

 <p>
 <code>fc-query <filename></code> will list font details found in the file.
 <code>fc-match <Font Name></code> will show file name where a font will be loaded.
You can actually feed a kinds of weird crap there:
</p>
 <div class="org-src-container">
 <pre class="src src-shell">fc-match badgfsafsdfds
</pre>
</div>
 <p>
 <code>fc-pattern <request></code> will show how the request is parsed.
 <code>fc-list</code> shows installed fonts.
 <code>fc-configlist</code> will show parameters from  <code>/etc/fonts/</code>.
 <code>fc-scan</code> will parse all font files from a directory.
 <code>fc-list</code> has a nice way to display only fonts which have certain characters.
 <code>fc-query</code> prints a lot of useful information about a font, in particular, it lists sub-fonts in a big file with many fonts, it is extremely useful.
 <code>fc-cache</code> caches font info, run it after installing each font.
</p>
</div>
</div>

 <div id="outline-container-xlsfonts" class="outline-4">
 <h4 id="xlsfonts"> <span class="section-number-4">2.3.2.</span>  <a href="#xlsfonts">xlsfonts</a></h4>
 <div class="outline-text-4" id="text-xlsfonts">
 <p>
 <code>xlsfonts</code> lists fonts.
 <code>mkfontdir</code> creates font cache files (fonts.dir) in font directories.
</p>
</div>
</div>
</div>
</section> <section id="outline-container-The-safest-font-choice-for-minimal-thinking." class="outline-2"> <h2 id="The-safest-font-choice-for-minimal-thinking."> <span class="section-number-2">3.</span>  <a href="#The-safest-font-choice-for-minimal-thinking.">The safest font choice for minimal thinking.</a></h2>
 <div class="outline-text-2" id="text-The-safest-font-choice-for-minimal-thinking.">
 <p>
 <code>fc-list</code> has a nice way to display only fonts which have certain characters:
</p>
 <div class="org-src-container">
 <pre class="src src-shell"> <span style="font-weight: bold; font-style: italic;">characters</span>= <span style="font-style: italic;">"abcdefghijklomnopqrstyvwABCDEFGHIJKLOMNOPQRSTYVWабвгдеёжзиклмнопрстуфхцчшщъыьэюя甲乙丙丁機會東紅东方红太阳升"</span>
 <span style="font-weight: bold; font-style: italic;">request_string</span>= <span style="font-style: italic;">""</span>
 <span style="font-weight: bold;">for</span> ((  <span style="font-weight: bold; font-style: italic;">i</span>=0; i<${# <span style="font-weight: bold; font-style: italic;">characters</span>}; i++ ));  <span style="font-weight: bold;">do</span>
   <span style="font-weight: bold; font-style: italic;">char</span>=${ <span style="font-weight: bold; font-style: italic;">characters</span>:i:1}
   <span style="font-weight: bold; font-style: italic;">request_string</span>= <span style="font-style: italic;">"${request_string}"</span>$(printf  <span style="font-style: italic;">'%x'</span>  <span style="font-style: italic;">\'"$char"</span>) <span style="font-style: italic;">","</span>
 <span style="font-weight: bold;">done</span>
fc-list  <span style="font-style: italic;">":charset=$request_string"</span> | awk  <span style="font-style: italic;">'{print $1;}'</span> | sort -V | uniq | grep -v -E  <span style="font-style: italic;">'(Bold|Light|Medium|Thin)'</span>
</pre>
</div>

 <p>
Ignoring the variations, it seems that the variety of available fonts is very small:
</p>

 <ol class="org-ol"> <li>Unifont :: Bitmap and ugly</li>
 <li>IBM Plex Sans :: Propotional, Sans, Hei-Square</li>
 <li>Hanazono ::  Mono, Serif, Ming</li>
 <li>LXGW WenKai :: Proportion, Sans-Ming, Kai</li>
 <li>LXGW WenKai Mono :: Mono, Sans-Ming, Kai</li>
 <li>Google Noto Sans CJK :: Proportiondal, Sans, Hei-Square</li>
 <li>Google Noto Sans Mono CJK :: Lying Proportional, Sans, Hei-Square</li>
 <li>Google Noto Serif :: Proportional, Serif, Ming</li>
 <li>Sarasa Gothic :: Proportional, Sans, Hei-Square</li>
 <li>Sarasa Mono :: Mono, Sans, Hei-Square</li>
 <li>Sarasa Mono Slab :: Mono, Slab-Serif, Hei-Square</li>
 <li>Adobe Source Han Sans :: Lying Proportional, Sans, Hei-Squared</li>
 <li>TW Kai :: Proportional, Serif, Kai, Full-width Cyrillic (ugly)</li>
 <li>TW Sung :: Proportional, Serif, Ming, Full-width Cyrillic (ugly)</li>
 <li>WenQuanYi Micro Hei :: Proportional, Sans, Hei-Square, broken Korean</li>
 <li>WenQuanYi Micro Hei Mono :: Mono, Sans, Hei-Square</li>
 <li>WenQuanYi Zen Hei :: Proportional, Sans, Hei-Square</li>
 <li>WenQuanYi Zen Hei Mono :: Lying Proportional, Sans, Hei-Square</li>
 <li>Kurinto TMod (Times) :: Proportional, Serif</li>
 <li>Kurinto Seri :: Proportional, Sans, Hei</li>
 <li>Kurinto Book :: Proprtional, Sans, Ming</li>
 <li>Kurinto Arte :: Proportional, Serif, Ming</li>
 <li>Kurinto Mono :: Mono, Sans, Hei</li>
 <li>Kurinto Cali :: Proportional, Sans, Hei</li>
 <li>Kurinto Text :: Proportional, Serif, Ming</li>
</ol> <p>
With respect to "looking differently" and being practical:
</p>

 <ol class="org-ol"> <li>Hanazono :: Ming+Serif</li>
 <li>LXGW :: Kai+Sans</li>
 <li>Plex</li>
 <li>Noto :: Ming+Serif</li>
 <li>Sarasa :: Hei+Sans</li>
 <li>Source :: Hei+Sans</li>
 <li>WenQuanYi Micro :: Hei+Sans (broken Korean)</li>
 <li>WenQuanyi Zen :: Hei+Sans (a bit ugly)</li>
 <li>Kurinto :: I discovered it later. Seems a decent choice.</li>
</ol> <p>
Of those, most look almost identical.
(There was some governmental project to standardise Simplified character shapes, most fonts come from there.)
</p>

 <p>
For printing, Kai+Sans looks okay, and thus LXGW wins.
For displays, Hei+Sans is a win, and Sarasa wins.
Sarasa has Hei+Slab-Serif, but it is mono, print with it, if you dare, it's not too bad, just spaces are a bit wide.
</p>

 <p>
The choices Hei+Serif and Hei-Round are nonexistent. :(
</p>

 <p>
Check for Kurinto again.
</p>
</div>

 <div id="outline-container-Target-software" class="outline-3">
 <h3 id="Target-software"> <span class="section-number-3">3.1.</span>  <a href="#Target-software">Target software</a></h3>
 <div class="outline-text-3" id="text-Target-software">
 <ol class="org-ol"> <li>LibreOffice</li>
 <li>TeX</li>
 <li>Firefox</li>
 <li>Emacs</li>
 <li>X11/Fontconfig</li>
</ol> <p>
LibreOffice, Firefox, Emacs, and Fontconfig can use system-wide fonts in  <code>/usr/share/fonts</code>.
</p>

 <p>
 <b>LibreOffice</b> does not support Type1 fonts.
</p>

 <p>
 <b>Emacs</b> can also use its own fonts.
</p>

 <p>
 <b>TeX</b> can use system-wide fonts if called via  <b>LuaLaTeX</b>.
</p>

 <div class="org-src-container">
 <pre class="src src-latex"> <span style="font-weight: bold;">\usepackage</span>{ <span style="font-weight: bold;">fontspec</span>}
 <span style="font-weight: bold;">\begin</span>{ <span style="font-weight: bold;">document</span>}
{  <span style="font-weight: bold;">\setmainfont</span>{URWGothic-Book.otf}[Path=/usr/share/fonts/OTF/] Your Text! }
 <span style="font-weight: bold;">\end</span>{ <span style="font-weight: bold;">document</span>}
</pre>
</div>
</div>
</div>
</section> <section id="outline-container-Different-font-projects" class="outline-2"> <h2 id="Different-font-projects"> <span class="section-number-2">4.</span>  <a href="#Different-font-projects">Different font projects</a></h2>
 <div class="outline-text-2" id="text-Different-font-projects">
 <p>
Even though the following projects claim to be making fonts, they are not making fonts in conventional sense.
They are rewriting the same fonts using different generating methods, and often "improving" them.
</p>

 <ol class="org-ol"> <li>Knuth and Computer Modern</li>
 <li>GUST :: TeX Gyre  ( <a href="https://www.gust.org.pl/projects/e-foundry/tex-gyre">https://www.gust.org.pl/projects/e-foundry/tex-gyre</a>) and Latin Modern</li>
 <li>STIX ::  <a href="https://en.wikipedia.org/wiki/STIX_Fonts_project">https://en.wikipedia.org/wiki/STIX_Fonts_project</a></li>
 <li>Sarasa ::  <a href="https://picaq.github.io/sarasa/">https://picaq.github.io/sarasa/</a></li>
 <li>Microsoft Webcore Fonts</li>
 <li>Microsoft Asian Fonts Pack</li>
 <li>Droid</li>
 <li>Roboto</li>
 <li>Noto</li>
 <li>ParaType PT Fonts</li>
 <li>Adobe Source</li>
 <li>Adobe PostScript Type 1 Fonts</li>
 <li>Liberation
 <ol class="org-ol"> <li>RedHat Liberation</li>
 <li>Libertine</li>
 <li>Libertinus</li>
 <li>Liberastika</li>
</ol></li>
 <li>Firefox OS (Fira Sans)</li>
 <li>Gnome Cantarell</li>
 <li>ChromeOS Core Fonts</li>
 <li>Ubuntu</li>
 <li>EB (Garamond)</li>
 <li>DejaVu</li>
 <li>URW</li>
 <li>Bitstream (Vera+Charter)</li>
 <li>Kurinto ::  <a href="https://kurinto.com/">https://kurinto.com/</a></li>
 <li>GNU FreeFont</li>
 <li>Hanazono</li>
 <li>BabelStone</li>
 <li>Iosevka</li>
 <li>ShangGu ::  <a href="https://github.com/GuiWonder/Shanggu">https://github.com/GuiWonder/Shanggu</a></li>
 <li>Terminus</li>
 <li>LOCALFONTS</li>
</ol></div>
</section> <section id="outline-container-Fonts-for-work" class="outline-2"> <h2 id="Fonts-for-work"> <span class="section-number-2">5.</span>  <a href="#Fonts-for-work">Fonts for work</a></h2>
 <div class="outline-text-2" id="text-Fonts-for-work">
 <p>
Most of these fonts only support Latin, some support Cyrillic, and only, if any, a few support Han.
</p>

 <p>
Here is the list of commonly encountered fonts:
</p>

 <ol class="org-ol"> <li>AvantGarde :: Sans, Latin-only
 <ol class="org-ol"> <li>MS Century Gothic</li>
 <li>TeX Gyre Adventor :: No Cyrillic</li>
 <li>URW Gothic L :: Has Cyrillic</li>
 <li>Bauer Futura</li>
</ol></li>
 <li>Bookman :: Serif
 <ol class="org-ol"> <li>URW Bookman :: Has Cyrillic</li>
 <li>TeX Gyre Bonum :: No Cyrillic</li>
</ol></li>
 <li>Courier :: Slab-Serif, Mono
 <ol class="org-ol"> <li>Microsoft Courier New</li>
 <li>FreeMono :: Has Cyrillic</li>
 <li>URW++ Nimbus Mono L :: Has Cyrillic</li>
 <li>TeX Gyre Cursor :: No Cyrillic</li>
 <li>ChromeOS Crosscore Cousine :: Sans, compatible, actually very different</li>
 <li>PT Mono :: Compatible but actually very different, Has Cyrillic</li>
 <li>Kurinto CMod :: Sans</li>
 <li>Kurinto CNew :: Slab-Serif</li>
</ol></li>
 <li>Helvetica/Arial :: Sans , default font in Windows 3-ME
 <ol class="org-ol"> <li>Microsoft Arial (almost)</li>
 <li>ChromeOS Crosscore Arimo</li>
 <li>FreeSans</li>
 <li>URW++ Nimbus Sans L :: Has Cyrillic</li>
 <li>Tex Gyre Heros :: No Cyrillic</li>
 <li>MS Sans Serif</li>
 <li>Google Android Roboto (old)</li>
 <li>Kurinto Aria</li>
</ol></li>
 <li>Century Schoolbook :: Serif
 <ol class="org-ol"> <li>MS Century</li>
 <li>Tex Gyre Schola :: No Cyrillic</li>
 <li>Old Standard :: Has Cyrillic, minor variations</li>
 <li>URW C059</li>
</ol></li>
 <li>Palatino :: Serif
 <ol class="org-ol"> <li>MS Palatino Linotype</li>
 <li>URW Palladio (P052) :: Has Cyrillic</li>
 <li>TeX Gyre Pagella :: No Cyrillic</li>
 <li>MS Book Antiqua :: Has Cyrillic</li>
 <li>Domitian</li>
</ol></li>
 <li>Times New Roman :: Serif
 <ol class="org-ol"> <li>Liberation Serif</li>
 <li>Linux Libertine Serif</li>
 <li>Libertinus Serif</li>
 <li>Localfonts Common-Serif</li>
 <li>ChromeOS Crosscore Tinos</li>
 <li>FreeSerif</li>
 <li>URW++ Nimbus Roman No. 9 L</li>
 <li>STIX</li>
 <li>XITS</li>
 <li>TeX Gyre Termes :: No Cyrillic</li>
 <li>PT Astra Serif</li>
 <li>PT Astra Sans :: compatible</li>
 <li>Kurinto TMod</li>
 <li>Kurinto TRom</li>
</ol></li>
 <li>ZapfChancery :: Serif
 <ol class="org-ol"> <li>TeX Gyre Chorus :: No Cyrillic</li>
 <li>URW Chancery L (Z003) :: Has Cyrillic</li>
 <li>Monotype Corsiva</li>
</ol></li>
 <li>Optima :: Sans
 <ol class="org-ol"> <li>Linux Biolinum</li>
 <li>Libertinus Sans</li>
 <li>Liberastika</li>
</ol></li>
 <li>Andale Mono/Sans :: Sans
 <ol class="org-ol"> <li>Droid Sans Mono</li>
 <li>Webcore Andale Mono</li>
</ol></li>
 <li>MS Georgia :: Serif
 <ol class="org-ol"> <li>Webcore Georgia</li>
 <li>Kurinto Grga</li>
</ol></li>
 <li>MS Verdana :: Sans
 <ol class="org-ol"> <li>Bitstream Vera Sans</li>
 <li>DejaVu Sans</li>
 <li>PT Astra Fact</li>
 <li>Webcore Verdana</li>
</ol></li>
 <li>Impact :: Sans, Heavy
 <ol class="org-ol"> <li>Webcore Impact</li>
</ol></li>
 <li>MS Trebuchet :: Sans, default font in Windows XP
 <ol class="org-ol"> <li>Webcore Trebuchet</li>
</ol></li>
 <li>MS Tahoma :: Sans, default font in Window 2000, 2003
 <ol class="org-ol"> <li>Wine Tahoma</li>
 <li>Webcore Tahoma</li>
</ol></li>
 <li>Lucida Console :: Sans, Mono
 <ol class="org-ol"> <li>MS Consolas (slightly different i, l, g)</li>
 <li>Inconsolata</li>
 <li>Computer Modern typewriter</li>
 <li>Bitstream Vera Sans Mono :: No Cyrillic</li>
</ol></li>
 <li>Lucida Sans/Lucida Grande :: Sans
 <ol class="org-ol"> <li>Webcore Lucida Sans Unicode</li>
</ol></li>
 <li>Frutiger Univers :: Sans
 <ol class="org-ol"> <li>URW Classic Sans</li>
 <li>MS Corbel :: Has Cyrillic</li>
 <li>Bitstream Vera Sans :: No Cyrillic</li>
 <li>Bera Sans :: No Cyrillic</li>
 <li>MS Segoe UI :: Sans, default font in Windows 7,8,2008 (technically different)</li>
 <li>MS Selawik (technically different)</li>
 <li>MS YaHei (Chinese)</li>
 <li>Open Sans</li>
</ol></li>
 <li>Bitstream Vera Serif :: Serif
 <ol class="org-ol"> <li>DejaVu Serif :: Has Cyrillic</li>
 <li>TeX Bera Serif :: No Cyrillic</li>
 <li>arev</li>
</ol></li>
 <li>Bitstream Charter :: Slab-Serif
 <ol class="org-ol"> <li>Charis SIL</li>
</ol></li>
 <li>Gentium Plus :: Serif</li>
 <li>MS Calibri :: Sans, default font in MS Office > 2007
 <ol class="org-ol"> <li>Google Carlito</li>
 <li>Lato</li>
 <li>Computer Modern Unicode Sans</li>
 <li>Kurinto Cali</li>
</ol></li>
 <li>MS Cambria :: Serif
 <ol class="org-ol"> <li>Google Chrome Caladea</li>
 <li>Kurinto Bria</li>
</ol></li>
 <li>[missing] Janson :: Serif, Random House font
 <ol class="org-ol"> <li><Available implementation missing></li>
</ol></li>
 <li>Franklin :: Sans
 <ol class="org-ol"> <li>Libre Franklin :: Has Cyrillic</li>
</ol></li>
 <li>Knuth Computer Modern :: Serif, Default TeX font
 <ol class="org-ol"> <li>CMU (Computer Modern Unicode)</li>
 <li>GUST Latin Modern</li>
 <li>New Computer Modern</li>
 <li>ML Modern</li>
 <li>CM-Super</li>
</ol></li>
 <li>Clarendon :: Slab-Serif, Wild-West poster font
 <ol class="org-ol"> <li>Montagu Slab :: No Cyrillic</li>
 <li>Libre Clarendon :: ?</li>
 <li>Kurinto Roma</li>
</ol></li>
 <li>Ubuntu :: Sans, default Ubuntu font after 10.10</li>
 <li>Ubuntu Titling :: Sans, default Ubuntu before 10.10</li>
 <li>Cantarell :: Sans, default GNOME 3.0-47
 <ol class="org-ol"> <li>Cambay</li>
 <li>Petra Sans</li>
</ol></li>
 <li>Inter :: Sans
 <ol class="org-ol"> <li>Adwaita Sans :: default GNOME 48</li>
 <li>Apple San Francisco :: default MacOS 2015+</li>
 <li>New Roboto</li>
</ol></li>
 <li>Fira :: Sans, default Firefox OS, Iceland government, Deutsche Post
 <ol class="org-ol"> <li>FF Meta</li>
</ol></li>
 <li>Noto Sans :: Sans
 <ol class="org-ol"> <li>Droid Sans :: Sans, early Android, "low-resolution" font</li>
</ol></li>
 <li>Noto Serif :: Serif
 <ol class="org-ol"> <li>Droid Serif</li>
</ol></li>
 <li>PT Sans :: Sans</li>
 <li>PT Serif :: Serif</li>
 <li>Garamond :: Serif
 <ol class="org-ol"> <li>EB Garamond</li>
 <li>TeX garamondx</li>
 <li>Adobe Garamond</li>
 <li>Monotype Garamond</li>
 <li>URW++ Garamond No. 8 :: APL</li>
 <li>Apple Garamond :: No Cyrillic</li>
 <li>Cormorant</li>
 <li>Kurinto Gara</li>
</ol></li>
 <li>Baskerville :: Serif
 <ol class="org-ol"> <li>Baskervville :: No Cyrillic</li>
 <li>Libre Baskerville :: No Cyrillic</li>
 <li>Baskerville PT :: Proprietary</li>
 <li>TeX Baskervaldx :: TeX only</li>
 <li>Cyrillic Version unavailable</li>
</ol></li>
 <li>Utopia :: Serif
 <ol class="org-ol"> <li>TeX Heuristica :: No Cyrillic</li>
 <li>Linguistics Pro :: Has Cyrillic</li>
 <li>Localfonts Ezerovo :: Has Cyrillic</li>
</ol></li>
 <li>Sarasa Gothic :: Sans
 <ol class="org-ol"> <li>Iosevka :: Has Cyrillic</li>
</ol></li>
 <li>Sarasa Slab :: Slab-Serif
 <ol class="org-ol"> <li>Iosevka Slab/Iosevka Etoile :: Has Cyrillic</li>
</ol></li>
 <li>Terminus :: Sans, Mono
 <ol class="org-ol"> <li>ax86 Terminus raster</li>
 <li>Terminalia vector :: Has Cyrillic</li>
</ol></li>
 <li>[not demoed] Swiss Type :: Sans
 <ol class="org-ol"> <li>Localfonts Common-Sans</li>
</ol></li>
 <li>Google Literata :: Serif (specially for ebooks)</li>
</ol> <p>
In total it is 44 fonts that anybody realistically has a chance of seeing.
Frankly speaking, Sarasa is an obscure font, I have added it here for the sole reason of my personal affinity.
</p>
</div>

 <div id="outline-container-Sans" class="outline-3">
 <h3 id="Sans"> <span class="section-number-3">5.1.</span>  <a href="#Sans">Sans</a></h3>
 <div class="outline-text-3" id="text-Sans">
</div>

 <div id="outline-container-AvantGarde-%5C(%5Cleftrightarrow%5C)-URW-Gothic-L" class="outline-4">
 <h4 id="AvantGarde-%5C(%5Cleftrightarrow%5C)-URW-Gothic-L"> <span class="section-number-4">5.1.1.</span>  <a href="#AvantGarde-%5C(%5Cleftrightarrow%5C)-URW-Gothic-L">AvantGarde \(\leftrightarrow\) URW Gothic L</a></h4>
 <div class="outline-text-4" id="text-AvantGarde-%5C(%5Cleftrightarrow%5C)-URW-Gothic-L">

 <figure id="org0fd21cf"> <img src="Fonts_for_work/AvantGarde.png" alt="AvantGarde.png"></img></figure></div>
</div>

 <div id="outline-container-Helvetica/Arial-%5C(%5Cleftrightarrow%5C)-URW++-Nimbus-Sans-L" class="outline-4">
 <h4 id="Helvetica/Arial-%5C(%5Cleftrightarrow%5C)-URW++-Nimbus-Sans-L"> <span class="section-number-4">5.1.2.</span>  <a href="#Helvetica/Arial-%5C(%5Cleftrightarrow%5C)-URW++-Nimbus-Sans-L">Helvetica/Arial \(\leftrightarrow\) URW++ Nimbus Sans L</a></h4>
 <div class="outline-text-4" id="text-Helvetica/Arial-%5C(%5Cleftrightarrow%5C)-URW++-Nimbus-Sans-L">

 <figure id="org72063ad"> <img src="Fonts_for_work/Helvetica_Arial.png" alt="Helvetica_Arial.png"></img></figure></div>
</div>

 <div id="outline-container-Helvetica/Arial-%5C(%5Cleftrightarrow%5C)-Roboto" class="outline-4">
 <h4 id="Helvetica/Arial-%5C(%5Cleftrightarrow%5C)-Roboto"> <span class="section-number-4">5.1.3.</span>  <a href="#Helvetica/Arial-%5C(%5Cleftrightarrow%5C)-Roboto">Helvetica/Arial \(\leftrightarrow\) Roboto</a></h4>
 <div class="outline-text-4" id="text-Helvetica/Arial-%5C(%5Cleftrightarrow%5C)-Roboto">

 <figure id="orgc78eeee"> <img src="Fonts_for_work/Helvetica_Arial_Roboto.png" alt="Helvetica_Arial_Roboto.png"></img></figure></div>
</div>

 <div id="outline-container-Optima-%5C(%5Cleftrightarrow%5C)-Linux-Biolinum" class="outline-4">
 <h4 id="Optima-%5C(%5Cleftrightarrow%5C)-Linux-Biolinum"> <span class="section-number-4">5.1.4.</span>  <a href="#Optima-%5C(%5Cleftrightarrow%5C)-Linux-Biolinum">Optima \(\leftrightarrow\) Linux Biolinum</a></h4>
 <div class="outline-text-4" id="text-Optima-%5C(%5Cleftrightarrow%5C)-Linux-Biolinum">

 <figure id="org793f73f"> <img src="Fonts_for_work/Optima.png" alt="Optima.png"></img></figure></div>
</div>

 <div id="outline-container-Verdana-%5C(%5Cleftrightarrow%5C)-Webcore-Verdana" class="outline-4">
 <h4 id="Verdana-%5C(%5Cleftrightarrow%5C)-Webcore-Verdana"> <span class="section-number-4">5.1.5.</span>  <a href="#Verdana-%5C(%5Cleftrightarrow%5C)-Webcore-Verdana">Verdana \(\leftrightarrow\) Webcore Verdana</a></h4>
 <div class="outline-text-4" id="text-Verdana-%5C(%5Cleftrightarrow%5C)-Webcore-Verdana">

 <figure id="org270d957"> <img src="Fonts_for_work/Verdana_Webcore.png" alt="Verdana_Webcore.png"></img></figure></div>
</div>

 <div id="outline-container-Verdana-%5C(%5Cleftrightarrow%5C)-PT-Astra-Fact" class="outline-4">
 <h4 id="Verdana-%5C(%5Cleftrightarrow%5C)-PT-Astra-Fact"> <span class="section-number-4">5.1.6.</span>  <a href="#Verdana-%5C(%5Cleftrightarrow%5C)-PT-Astra-Fact">Verdana \(\leftrightarrow\) PT Astra Fact</a></h4>
 <div class="outline-text-4" id="text-Verdana-%5C(%5Cleftrightarrow%5C)-PT-Astra-Fact">

 <figure id="org1a523be"> <img src="Fonts_for_work/Verdana_Astra_Fact.png" alt="Verdana_Astra_Fact.png"></img></figure></div>
</div>

 <div id="outline-container-Impact-%5C(%5Cleftrightarrow%5C)-Webcore-Impact" class="outline-4">
 <h4 id="Impact-%5C(%5Cleftrightarrow%5C)-Webcore-Impact"> <span class="section-number-4">5.1.7.</span>  <a href="#Impact-%5C(%5Cleftrightarrow%5C)-Webcore-Impact">Impact \(\leftrightarrow\) Webcore Impact</a></h4>
 <div class="outline-text-4" id="text-Impact-%5C(%5Cleftrightarrow%5C)-Webcore-Impact">

 <figure id="org18e6ec1"> <img src="Fonts_for_work/Impact.png" alt="Impact.png"></img></figure></div>
</div>

 <div id="outline-container-Trebuchet-%5C(%5Cleftrightarrow%5C)-Webcore-Trebuchet" class="outline-4">
 <h4 id="Trebuchet-%5C(%5Cleftrightarrow%5C)-Webcore-Trebuchet"> <span class="section-number-4">5.1.8.</span>  <a href="#Trebuchet-%5C(%5Cleftrightarrow%5C)-Webcore-Trebuchet">Trebuchet \(\leftrightarrow\) Webcore Trebuchet</a></h4>
 <div class="outline-text-4" id="text-Trebuchet-%5C(%5Cleftrightarrow%5C)-Webcore-Trebuchet">

 <figure id="org87df008"> <img src="Fonts_for_work/Trebuchet.png" alt="Trebuchet.png"></img></figure></div>
</div>

 <div id="outline-container-Tahoma-%5C(%5Cleftrightarrow%5C)-Webcore-Tahoma" class="outline-4">
 <h4 id="Tahoma-%5C(%5Cleftrightarrow%5C)-Webcore-Tahoma"> <span class="section-number-4">5.1.9.</span>  <a href="#Tahoma-%5C(%5Cleftrightarrow%5C)-Webcore-Tahoma">Tahoma \(\leftrightarrow\) Webcore Tahoma</a></h4>
 <div class="outline-text-4" id="text-Tahoma-%5C(%5Cleftrightarrow%5C)-Webcore-Tahoma">

 <figure id="org3473067"> <img src="Fonts_for_work/Tahoma.png" alt="Tahoma.png"></img></figure></div>
</div>

 <div id="outline-container-Lucida-Sans-%5C(%5Cleftrightarrow%5C)-Webcore-Lucida-Sans-Unicode" class="outline-4">
 <h4 id="Lucida-Sans-%5C(%5Cleftrightarrow%5C)-Webcore-Lucida-Sans-Unicode"> <span class="section-number-4">5.1.10.</span>  <a href="#Lucida-Sans-%5C(%5Cleftrightarrow%5C)-Webcore-Lucida-Sans-Unicode">Lucida Sans \(\leftrightarrow\) Webcore Lucida Sans Unicode</a></h4>
 <div class="outline-text-4" id="text-Lucida-Sans-%5C(%5Cleftrightarrow%5C)-Webcore-Lucida-Sans-Unicode">

 <figure id="org8f75d12"> <img src="Fonts_for_work/Lucida_Sans.png" alt="Lucida_Sans.png"></img></figure></div>
</div>

 <div id="outline-container-Frutiger-Univers-%5C(%5Cleftrightarrow%5C)-Webcore-Corbel" class="outline-4">
 <h4 id="Frutiger-Univers-%5C(%5Cleftrightarrow%5C)-Webcore-Corbel"> <span class="section-number-4">5.1.11.</span>  <a href="#Frutiger-Univers-%5C(%5Cleftrightarrow%5C)-Webcore-Corbel">Frutiger Univers \(\leftrightarrow\) Webcore Corbel</a></h4>
 <div class="outline-text-4" id="text-Frutiger-Univers-%5C(%5Cleftrightarrow%5C)-Webcore-Corbel">

 <figure id="org04266ca"> <img src="Fonts_for_work/Frutiger_Corbel.png" alt="Frutiger_Corbel.png"></img></figure></div>
</div>

 <div id="outline-container-Calibri-%5C(%5Cleftrightarrow%5C)-Google-Carlito" class="outline-4">
 <h4 id="Calibri-%5C(%5Cleftrightarrow%5C)-Google-Carlito"> <span class="section-number-4">5.1.12.</span>  <a href="#Calibri-%5C(%5Cleftrightarrow%5C)-Google-Carlito">Calibri \(\leftrightarrow\) Google Carlito</a></h4>
 <div class="outline-text-4" id="text-Calibri-%5C(%5Cleftrightarrow%5C)-Google-Carlito">

 <figure id="orgb1eb339"> <img src="Fonts_for_work/Calibri.png" alt="Calibri.png"></img></figure></div>
</div>

 <div id="outline-container-Franklin-%5C(%5Cleftrightarrow%5C)-LibreFranklin" class="outline-4">
 <h4 id="Franklin-%5C(%5Cleftrightarrow%5C)-LibreFranklin"> <span class="section-number-4">5.1.13.</span>  <a href="#Franklin-%5C(%5Cleftrightarrow%5C)-LibreFranklin">Franklin \(\leftrightarrow\) LibreFranklin</a></h4>
 <div class="outline-text-4" id="text-Franklin-%5C(%5Cleftrightarrow%5C)-LibreFranklin">

 <figure id="org4670eaf"> <img src="Fonts_for_work/Franklin.png" alt="Franklin.png"></img></figure></div>
</div>

 <div id="outline-container-Ubuntu-%5C(%5Cleftrightarrow%5C)-Ubuntu" class="outline-4">
 <h4 id="Ubuntu-%5C(%5Cleftrightarrow%5C)-Ubuntu"> <span class="section-number-4">5.1.14.</span>  <a href="#Ubuntu-%5C(%5Cleftrightarrow%5C)-Ubuntu">Ubuntu \(\leftrightarrow\) Ubuntu</a></h4>
 <div class="outline-text-4" id="text-Ubuntu-%5C(%5Cleftrightarrow%5C)-Ubuntu">

 <figure id="org01faa95"> <img src="Fonts_for_work/Ubuntu.png" alt="Ubuntu.png"></img></figure></div>
</div>

 <div id="outline-container-Cantarell-%5C(%5Cleftrightarrow%5C)-Petra-Sans" class="outline-4">
 <h4 id="Cantarell-%5C(%5Cleftrightarrow%5C)-Petra-Sans"> <span class="section-number-4">5.1.15.</span>  <a href="#Cantarell-%5C(%5Cleftrightarrow%5C)-Petra-Sans">Cantarell \(\leftrightarrow\) Petra Sans</a></h4>
 <div class="outline-text-4" id="text-Cantarell-%5C(%5Cleftrightarrow%5C)-Petra-Sans">

 <figure id="org62da24d"> <img src="Fonts_for_work/Cantarell.png" alt="Cantarell.png"></img></figure></div>
</div>

 <div id="outline-container-Inter-%5C(%5Cleftrightarrow%5C)-Apple-San-Francisco" class="outline-4">
 <h4 id="Inter-%5C(%5Cleftrightarrow%5C)-Apple-San-Francisco"> <span class="section-number-4">5.1.16.</span>  <a href="#Inter-%5C(%5Cleftrightarrow%5C)-Apple-San-Francisco">Inter \(\leftrightarrow\) Apple San Francisco</a></h4>
 <div class="outline-text-4" id="text-Inter-%5C(%5Cleftrightarrow%5C)-Apple-San-Francisco">

 <figure id="org99d3faa"> <img src="Fonts_for_work/Inter.png" alt="Inter.png"></img></figure></div>
</div>

 <div id="outline-container-Fira-Sans-%5C(%5Cleftrightarrow%5C)-Fira-Sans" class="outline-4">
 <h4 id="Fira-Sans-%5C(%5Cleftrightarrow%5C)-Fira-Sans"> <span class="section-number-4">5.1.17.</span>  <a href="#Fira-Sans-%5C(%5Cleftrightarrow%5C)-Fira-Sans">Fira Sans \(\leftrightarrow\) Fira Sans</a></h4>
 <div class="outline-text-4" id="text-Fira-Sans-%5C(%5Cleftrightarrow%5C)-Fira-Sans">

 <figure id="orgdf8d36f"> <img src="Fonts_for_work/Fira_Sans.png" alt="Fira_Sans.png"></img></figure></div>
</div>

 <div id="outline-container-Noto-Sans-%5C(%5Cleftrightarrow%5C)-Noto-Sans" class="outline-4">
 <h4 id="Noto-Sans-%5C(%5Cleftrightarrow%5C)-Noto-Sans"> <span class="section-number-4">5.1.18.</span>  <a href="#Noto-Sans-%5C(%5Cleftrightarrow%5C)-Noto-Sans">Noto Sans \(\leftrightarrow\) Noto Sans</a></h4>
 <div class="outline-text-4" id="text-Noto-Sans-%5C(%5Cleftrightarrow%5C)-Noto-Sans">

 <figure id="orgb2a78e2"> <img src="Fonts_for_work/Noto_Sans.png" alt="Noto_Sans.png"></img></figure></div>
</div>

 <div id="outline-container-PT-Sans-%5C(%5Cleftrightarrow%5C)-PT-Sans" class="outline-4">
 <h4 id="PT-Sans-%5C(%5Cleftrightarrow%5C)-PT-Sans"> <span class="section-number-4">5.1.19.</span>  <a href="#PT-Sans-%5C(%5Cleftrightarrow%5C)-PT-Sans">PT Sans \(\leftrightarrow\) PT Sans</a></h4>
 <div class="outline-text-4" id="text-PT-Sans-%5C(%5Cleftrightarrow%5C)-PT-Sans">

 <figure id="org08553ef"> <img src="Fonts_for_work/PT_Sans.png" alt="PT_Sans.png"></img></figure></div>
</div>

 <div id="outline-container-Sarasa-Gothic-%5C(%5Cleftrightarrow%5C)-Sarasa-Gothic" class="outline-4">
 <h4 id="Sarasa-Gothic-%5C(%5Cleftrightarrow%5C)-Sarasa-Gothic"> <span class="section-number-4">5.1.20.</span>  <a href="#Sarasa-Gothic-%5C(%5Cleftrightarrow%5C)-Sarasa-Gothic">Sarasa Gothic \(\leftrightarrow\) Sarasa Gothic</a></h4>
 <div class="outline-text-4" id="text-Sarasa-Gothic-%5C(%5Cleftrightarrow%5C)-Sarasa-Gothic">

 <figure id="org1c7b9d4"> <img src="Fonts_for_work/Sarasa_Gothic.png" alt="Sarasa_Gothic.png"></img></figure></div>
</div>
</div>

 <div id="outline-container-Serif" class="outline-3">
 <h3 id="Serif"> <span class="section-number-3">5.2.</span>  <a href="#Serif">Serif</a></h3>
 <div class="outline-text-3" id="text-Serif">
</div>

 <div id="outline-container-Bookman-%5C(%5Cleftrightarrow%5C)-URW-Bookman" class="outline-4">
 <h4 id="Bookman-%5C(%5Cleftrightarrow%5C)-URW-Bookman"> <span class="section-number-4">5.2.1.</span>  <a href="#Bookman-%5C(%5Cleftrightarrow%5C)-URW-Bookman">Bookman \(\leftrightarrow\) URW Bookman</a></h4>
 <div class="outline-text-4" id="text-Bookman-%5C(%5Cleftrightarrow%5C)-URW-Bookman">

 <figure id="orgcb14aaf"> <img src="Fonts_for_work/Bookman.png" alt="Bookman.png"></img></figure></div>
</div>

 <div id="outline-container-Century-Schoolbook-%5C(%5Cleftrightarrow%5C)-Old-Standard" class="outline-4">
 <h4 id="Century-Schoolbook-%5C(%5Cleftrightarrow%5C)-Old-Standard"> <span class="section-number-4">5.2.2.</span>  <a href="#Century-Schoolbook-%5C(%5Cleftrightarrow%5C)-Old-Standard">Century Schoolbook \(\leftrightarrow\) Old Standard</a></h4>
 <div class="outline-text-4" id="text-Century-Schoolbook-%5C(%5Cleftrightarrow%5C)-Old-Standard">

 <figure id="org8e64dcc"> <img src="Fonts_for_work/Century_Schoolbook.png" alt="Century_Schoolbook.png"></img></figure></div>
</div>

 <div id="outline-container-Palatino-%5C(%5Cleftrightarrow%5C)-Domitian" class="outline-4">
 <h4 id="Palatino-%5C(%5Cleftrightarrow%5C)-Domitian"> <span class="section-number-4">5.2.3.</span>  <a href="#Palatino-%5C(%5Cleftrightarrow%5C)-Domitian">Palatino \(\leftrightarrow\) Domitian</a></h4>
 <div class="outline-text-4" id="text-Palatino-%5C(%5Cleftrightarrow%5C)-Domitian">

 <figure id="orgded9997"> <img src="Fonts_for_work/Palatino.png" alt="Palatino.png"></img></figure></div>
</div>

 <div id="outline-container-Times-New-Roman-%5C(%5Cleftrightarrow%5C)-Liberation-Serif" class="outline-4">
 <h4 id="Times-New-Roman-%5C(%5Cleftrightarrow%5C)-Liberation-Serif"> <span class="section-number-4">5.2.4.</span>  <a href="#Times-New-Roman-%5C(%5Cleftrightarrow%5C)-Liberation-Serif">Times New Roman \(\leftrightarrow\) Liberation Serif</a></h4>
 <div class="outline-text-4" id="text-Times-New-Roman-%5C(%5Cleftrightarrow%5C)-Liberation-Serif">

 <figure id="org6369e67"> <img src="Fonts_for_work/Times_Liberation_Serif.png" alt="Times_Liberation_Serif.png"></img></figure></div>
</div>

 <div id="outline-container-Times-New-Roman-%5C(%5Cleftrightarrow%5C)-PT-Astra-Serif" class="outline-4">
 <h4 id="Times-New-Roman-%5C(%5Cleftrightarrow%5C)-PT-Astra-Serif"> <span class="section-number-4">5.2.5.</span>  <a href="#Times-New-Roman-%5C(%5Cleftrightarrow%5C)-PT-Astra-Serif">Times New Roman \(\leftrightarrow\) PT Astra Serif</a></h4>
 <div class="outline-text-4" id="text-Times-New-Roman-%5C(%5Cleftrightarrow%5C)-PT-Astra-Serif">

 <figure id="org40967c2"> <img src="Fonts_for_work/Times_PT_Astra_Serif.png" alt="Times_PT_Astra_Serif.png"></img></figure></div>
</div>

 <div id="outline-container-ZapfChancery-%5C(%5Cleftrightarrow%5C)-URW-Chancery-L-(Z003)" class="outline-4">
 <h4 id="ZapfChancery-%5C(%5Cleftrightarrow%5C)-URW-Chancery-L-(Z003)"> <span class="section-number-4">5.2.6.</span>  <a href="#ZapfChancery-%5C(%5Cleftrightarrow%5C)-URW-Chancery-L-(Z003)">ZapfChancery \(\leftrightarrow\) URW Chancery L (Z003)</a></h4>
 <div class="outline-text-4" id="text-ZapfChancery-%5C(%5Cleftrightarrow%5C)-URW-Chancery-L-(Z003)">

 <figure id="org2259461"> <img src="Fonts_for_work/ZapfChancery.png" alt="ZapfChancery.png"></img></figure></div>
</div>

 <div id="outline-container-Georgia-%5C(%5Cleftrightarrow%5C)-Webcore-Georgia" class="outline-4">
 <h4 id="Georgia-%5C(%5Cleftrightarrow%5C)-Webcore-Georgia"> <span class="section-number-4">5.2.7.</span>  <a href="#Georgia-%5C(%5Cleftrightarrow%5C)-Webcore-Georgia">Georgia \(\leftrightarrow\) Webcore Georgia</a></h4>
 <div class="outline-text-4" id="text-Georgia-%5C(%5Cleftrightarrow%5C)-Webcore-Georgia">

 <figure id="org2120337"> <img src="Fonts_for_work/Georgia.png" alt="Georgia.png"></img></figure></div>
</div>

 <div id="outline-container-Bitstream-Vera-Serif-%5C(%5Cleftrightarrow%5C)-DejaVu-Serif" class="outline-4">
 <h4 id="Bitstream-Vera-Serif-%5C(%5Cleftrightarrow%5C)-DejaVu-Serif"> <span class="section-number-4">5.2.8.</span>  <a href="#Bitstream-Vera-Serif-%5C(%5Cleftrightarrow%5C)-DejaVu-Serif">Bitstream Vera Serif \(\leftrightarrow\) DejaVu Serif</a></h4>
 <div class="outline-text-4" id="text-Bitstream-Vera-Serif-%5C(%5Cleftrightarrow%5C)-DejaVu-Serif">

 <figure id="orgc87de49"> <img src="Fonts_for_work/Bitstream_Vera_Serif_DejaVu_Serif.png" alt="Bitstream_Vera_Serif_DejaVu_Serif.png"></img></figure></div>
</div>

 <div id="outline-container-Bitstream-Charter-%5C(%5Cleftrightarrow%5C)-Charis-SIL" class="outline-4">
 <h4 id="Bitstream-Charter-%5C(%5Cleftrightarrow%5C)-Charis-SIL"> <span class="section-number-4">5.2.9.</span>  <a href="#Bitstream-Charter-%5C(%5Cleftrightarrow%5C)-Charis-SIL">Bitstream Charter \(\leftrightarrow\) Charis SIL</a></h4>
 <div class="outline-text-4" id="text-Bitstream-Charter-%5C(%5Cleftrightarrow%5C)-Charis-SIL">

 <figure id="orgda5854c"> <img src="Fonts_for_work/Bitstream_Charter_Charis_SIL.png" alt="Bitstream_Charter_Charis_SIL.png"></img></figure></div>
</div>

 <div id="outline-container-Gentium-Plus-%5C(%5Cleftrightarrow%5C)-Gentium-Plus" class="outline-4">
 <h4 id="Gentium-Plus-%5C(%5Cleftrightarrow%5C)-Gentium-Plus"> <span class="section-number-4">5.2.10.</span>  <a href="#Gentium-Plus-%5C(%5Cleftrightarrow%5C)-Gentium-Plus">Gentium Plus \(\leftrightarrow\) Gentium Plus</a></h4>
 <div class="outline-text-4" id="text-Gentium-Plus-%5C(%5Cleftrightarrow%5C)-Gentium-Plus">

 <figure id="org39b255f"> <img src="Fonts_for_work/Gentium.png" alt="Gentium.png"></img></figure></div>
</div>

 <div id="outline-container-Cambria-%5C(%5Cleftrightarrow%5C)-Webcore-Cambria" class="outline-4">
 <h4 id="Cambria-%5C(%5Cleftrightarrow%5C)-Webcore-Cambria"> <span class="section-number-4">5.2.11.</span>  <a href="#Cambria-%5C(%5Cleftrightarrow%5C)-Webcore-Cambria">Cambria \(\leftrightarrow\) Webcore Cambria</a></h4>
 <div class="outline-text-4" id="text-Cambria-%5C(%5Cleftrightarrow%5C)-Webcore-Cambria">

 <figure id="org56570d9"> <img src="Fonts_for_work/Cambria.png" alt="Cambria.png"></img></figure></div>
</div>

 <div id="outline-container-Computer-Modern-Serif-%5C(%5Cleftrightarrow%5C)-CMU-Serif" class="outline-4">
 <h4 id="Computer-Modern-Serif-%5C(%5Cleftrightarrow%5C)-CMU-Serif"> <span class="section-number-4">5.2.12.</span>  <a href="#Computer-Modern-Serif-%5C(%5Cleftrightarrow%5C)-CMU-Serif">Computer Modern Serif \(\leftrightarrow\) CMU Serif</a></h4>
 <div class="outline-text-4" id="text-Computer-Modern-Serif-%5C(%5Cleftrightarrow%5C)-CMU-Serif">

 <figure id="org11668fe"> <img src="Fonts_for_work/Computer_Modern_Serif.png" alt="Computer_Modern_Serif.png"></img></figure></div>
</div>

 <div id="outline-container-Noto-Serif-%5C(%5Cleftrightarrow%5C)-Noto-Serif" class="outline-4">
 <h4 id="Noto-Serif-%5C(%5Cleftrightarrow%5C)-Noto-Serif"> <span class="section-number-4">5.2.13.</span>  <a href="#Noto-Serif-%5C(%5Cleftrightarrow%5C)-Noto-Serif">Noto Serif \(\leftrightarrow\) Noto Serif</a></h4>
 <div class="outline-text-4" id="text-Noto-Serif-%5C(%5Cleftrightarrow%5C)-Noto-Serif">

 <figure id="org87c56fc"> <img src="Fonts_for_work/Noto_Serif.png" alt="Noto_Serif.png"></img></figure></div>
</div>

 <div id="outline-container-PT-Serif-%5C(%5Cleftrightarrow%5C)-PT-Serif" class="outline-4">
 <h4 id="PT-Serif-%5C(%5Cleftrightarrow%5C)-PT-Serif"> <span class="section-number-4">5.2.14.</span>  <a href="#PT-Serif-%5C(%5Cleftrightarrow%5C)-PT-Serif">PT Serif \(\leftrightarrow\) PT Serif</a></h4>
 <div class="outline-text-4" id="text-PT-Serif-%5C(%5Cleftrightarrow%5C)-PT-Serif">

 <figure id="orgf94c0cf"> <img src="Fonts_for_work/PT_Serif.png" alt="PT_Serif.png"></img></figure></div>
</div>

 <div id="outline-container-Garamond-%5C(%5Cleftrightarrow%5C)-EB-Garamond" class="outline-4">
 <h4 id="Garamond-%5C(%5Cleftrightarrow%5C)-EB-Garamond"> <span class="section-number-4">5.2.15.</span>  <a href="#Garamond-%5C(%5Cleftrightarrow%5C)-EB-Garamond">Garamond \(\leftrightarrow\) EB Garamond</a></h4>
 <div class="outline-text-4" id="text-Garamond-%5C(%5Cleftrightarrow%5C)-EB-Garamond">

 <figure id="orgaa894e5"> <img src="Fonts_for_work/Garamond.png" alt="Garamond.png"></img></figure></div>
</div>

 <div id="outline-container-Baskerville-%5C(%5Cleftrightarrow%5C)-Libre-Baskerville" class="outline-4">
 <h4 id="Baskerville-%5C(%5Cleftrightarrow%5C)-Libre-Baskerville"> <span class="section-number-4">5.2.16.</span>  <a href="#Baskerville-%5C(%5Cleftrightarrow%5C)-Libre-Baskerville">Baskerville \(\leftrightarrow\) Libre Baskerville</a></h4>
 <div class="outline-text-4" id="text-Baskerville-%5C(%5Cleftrightarrow%5C)-Libre-Baskerville">

 <figure id="org9f76226"> <img src="Fonts_for_work/Baskerville.png" alt="Baskerville.png"></img></figure></div>
</div>

 <div id="outline-container-Utopia-%5C(%5Cleftrightarrow%5C)-Linguistics-Pro" class="outline-4">
 <h4 id="Utopia-%5C(%5Cleftrightarrow%5C)-Linguistics-Pro"> <span class="section-number-4">5.2.17.</span>  <a href="#Utopia-%5C(%5Cleftrightarrow%5C)-Linguistics-Pro">Utopia \(\leftrightarrow\) Linguistics Pro</a></h4>
 <div class="outline-text-4" id="text-Utopia-%5C(%5Cleftrightarrow%5C)-Linguistics-Pro">

 <figure id="orgdbe331a"> <img src="Fonts_for_work/Utopia.png" alt="Utopia.png"></img></figure></div>
</div>

 <div id="outline-container-Literata-%5C(%5Cleftrightarrow%5C)-Literata" class="outline-4">
 <h4 id="Literata-%5C(%5Cleftrightarrow%5C)-Literata"> <span class="section-number-4">5.2.18.</span>  <a href="#Literata-%5C(%5Cleftrightarrow%5C)-Literata">Literata \(\leftrightarrow\) Literata</a></h4>
 <div class="outline-text-4" id="text-Literata-%5C(%5Cleftrightarrow%5C)-Literata">

 <figure id="org29f4472"> <img src="Fonts_for_work/Literata.png" alt="Literata.png"></img></figure></div>
</div>

 <div id="outline-container-Sarasa-Slab-%5C(%5Cleftrightarrow%5C)-Sarasa-Mono-Slab-SC" class="outline-4">
 <h4 id="Sarasa-Slab-%5C(%5Cleftrightarrow%5C)-Sarasa-Mono-Slab-SC"> <span class="section-number-4">5.2.19.</span>  <a href="#Sarasa-Slab-%5C(%5Cleftrightarrow%5C)-Sarasa-Mono-Slab-SC">Sarasa Slab \(\leftrightarrow\) Sarasa Mono Slab SC</a></h4>
 <div class="outline-text-4" id="text-Sarasa-Slab-%5C(%5Cleftrightarrow%5C)-Sarasa-Mono-Slab-SC">

 <figure id="org1a486b5"> <img src="Fonts_for_work/Sarasa_Mono_Slab_SC.png" alt="Sarasa_Mono_Slab_SC.png"></img></figure></div>
</div>
</div>

 <div id="outline-container-Terminal" class="outline-3">
 <h3 id="Terminal"> <span class="section-number-3">5.3.</span>  <a href="#Terminal">Terminal</a></h3>
 <div class="outline-text-3" id="text-Terminal">
</div>
 <div id="outline-container-Courier-%5C(%5Cleftrightarrow%5C)-URW++-Nimbus-Mono-L" class="outline-4">
 <h4 id="Courier-%5C(%5Cleftrightarrow%5C)-URW++-Nimbus-Mono-L"> <span class="section-number-4">5.3.1.</span>  <a href="#Courier-%5C(%5Cleftrightarrow%5C)-URW++-Nimbus-Mono-L">Courier \(\leftrightarrow\) URW++ Nimbus Mono L</a></h4>
 <div class="outline-text-4" id="text-Courier-%5C(%5Cleftrightarrow%5C)-URW++-Nimbus-Mono-L">

 <figure id="org50a3690"> <img src="Fonts_for_work/Courier_Numbus_Mono.png" alt="Courier_Numbus_Mono.png"></img></figure></div>
</div>

 <div id="outline-container-Courier-(fake)-%5C(%5Cleftrightarrow%5C)-ChromeOS-Crosscore-Cousine" class="outline-4">
 <h4 id="Courier-(fake)-%5C(%5Cleftrightarrow%5C)-ChromeOS-Crosscore-Cousine"> <span class="section-number-4">5.3.2.</span>  <a href="#Courier-(fake)-%5C(%5Cleftrightarrow%5C)-ChromeOS-Crosscore-Cousine">Courier (fake) \(\leftrightarrow\) ChromeOS Crosscore Cousine</a></h4>
 <div class="outline-text-4" id="text-Courier-(fake)-%5C(%5Cleftrightarrow%5C)-ChromeOS-Crosscore-Cousine">

 <figure id="org76be41f"> <img src="Fonts_for_work/Courier_Cousine.png" alt="Courier_Cousine.png"></img></figure></div>
</div>

 <div id="outline-container-Courier-(PT)-%5C(%5Cleftrightarrow%5C)-PT-Mono" class="outline-4">
 <h4 id="Courier-(PT)-%5C(%5Cleftrightarrow%5C)-PT-Mono"> <span class="section-number-4">5.3.3.</span>  <a href="#Courier-(PT)-%5C(%5Cleftrightarrow%5C)-PT-Mono">Courier (PT) \(\leftrightarrow\) PT Mono</a></h4>
 <div class="outline-text-4" id="text-Courier-(PT)-%5C(%5Cleftrightarrow%5C)-PT-Mono">

 <figure id="org957ecc8"> <img src="Fonts_for_work/Courier_PT_Mono.png" alt="Courier_PT_Mono.png"></img></figure></div>
</div>

 <div id="outline-container-Andale-Mono-%5C(%5Cleftrightarrow%5C)-Webcore-Andale-Mono" class="outline-4">
 <h4 id="Andale-Mono-%5C(%5Cleftrightarrow%5C)-Webcore-Andale-Mono"> <span class="section-number-4">5.3.4.</span>  <a href="#Andale-Mono-%5C(%5Cleftrightarrow%5C)-Webcore-Andale-Mono">Andale Mono \(\leftrightarrow\) Webcore Andale Mono</a></h4>
 <div class="outline-text-4" id="text-Andale-Mono-%5C(%5Cleftrightarrow%5C)-Webcore-Andale-Mono">

 <figure id="org0331039"> <img src="Fonts_for_work/Andale_Mono.png" alt="Andale_Mono.png"></img></figure></div>
</div>

 <div id="outline-container-Lucida-Console-%5C(%5Cleftrightarrow%5C)-Webcore-Lucida-Console" class="outline-4">
 <h4 id="Lucida-Console-%5C(%5Cleftrightarrow%5C)-Webcore-Lucida-Console"> <span class="section-number-4">5.3.5.</span>  <a href="#Lucida-Console-%5C(%5Cleftrightarrow%5C)-Webcore-Lucida-Console">Lucida Console \(\leftrightarrow\) Webcore Lucida Console</a></h4>
 <div class="outline-text-4" id="text-Lucida-Console-%5C(%5Cleftrightarrow%5C)-Webcore-Lucida-Console">

 <figure id="org6e1b4bc"> <img src="Fonts_for_work/Lucida_Console.png" alt="Lucida_Console.png"></img></figure></div>
</div>

 <div id="outline-container-Terminus-%5C(%5Cleftrightarrow%5C)-Terminalia" class="outline-4">
 <h4 id="Terminus-%5C(%5Cleftrightarrow%5C)-Terminalia"> <span class="section-number-4">5.3.6.</span>  <a href="#Terminus-%5C(%5Cleftrightarrow%5C)-Terminalia">Terminus \(\leftrightarrow\) Terminalia</a></h4>
 <div class="outline-text-4" id="text-Terminus-%5C(%5Cleftrightarrow%5C)-Terminalia">

 <figure id="org057fac9"> <img src="Fonts_for_work/Terminus.png" alt="Terminus.png"></img></figure></div>
</div>

 <div id="outline-container-Sarasa-Term-%5C(%5Cleftrightarrow%5C)-Sarasa-Term-SC" class="outline-4">
 <h4 id="Sarasa-Term-%5C(%5Cleftrightarrow%5C)-Sarasa-Term-SC"> <span class="section-number-4">5.3.7.</span>  <a href="#Sarasa-Term-%5C(%5Cleftrightarrow%5C)-Sarasa-Term-SC">Sarasa Term \(\leftrightarrow\) Sarasa Term SC</a></h4>
 <div class="outline-text-4" id="text-Sarasa-Term-%5C(%5Cleftrightarrow%5C)-Sarasa-Term-SC">

 <figure id="org1556bd4"> <img src="Fonts_for_work/Sarasa_Term.png" alt="Sarasa_Term.png"></img></figure></div>
</div>

 <div id="outline-container-Sarasa-Term-Slab-%5C(%5Cleftrightarrow%5C)-Sarasa-Term-Slab-SC" class="outline-4">
 <h4 id="Sarasa-Term-Slab-%5C(%5Cleftrightarrow%5C)-Sarasa-Term-Slab-SC"> <span class="section-number-4">5.3.8.</span>  <a href="#Sarasa-Term-Slab-%5C(%5Cleftrightarrow%5C)-Sarasa-Term-Slab-SC">Sarasa Term Slab \(\leftrightarrow\) Sarasa Term Slab SC</a></h4>
 <div class="outline-text-4" id="text-Sarasa-Term-Slab-%5C(%5Cleftrightarrow%5C)-Sarasa-Term-Slab-SC">

 <figure id="org74d6998"> <img src="Fonts_for_work/Sarasa_Term_Slab.png" alt="Sarasa_Term_Slab.png"></img></figure></div>
</div>

 <div id="outline-container-Fira-Code-%5C(%5Cleftrightarrow%5C)-Fira-Code" class="outline-4">
 <h4 id="Fira-Code-%5C(%5Cleftrightarrow%5C)-Fira-Code"> <span class="section-number-4">5.3.9.</span>  <a href="#Fira-Code-%5C(%5Cleftrightarrow%5C)-Fira-Code">Fira Code \(\leftrightarrow\) Fira Code</a></h4>
 <div class="outline-text-4" id="text-Fira-Code-%5C(%5Cleftrightarrow%5C)-Fira-Code">

 <figure id="org2618f80"> <img src="Fonts_for_work/Fira_Code.png" alt="Fira_Code.png"></img></figure></div>
</div>

 <div id="outline-container-Adobe-Source-Code-%5C(%5Cleftrightarrow%5C)-Source-Code-Pro" class="outline-4">
 <h4 id="Adobe-Source-Code-%5C(%5Cleftrightarrow%5C)-Source-Code-Pro"> <span class="section-number-4">5.3.10.</span>  <a href="#Adobe-Source-Code-%5C(%5Cleftrightarrow%5C)-Source-Code-Pro">Adobe Source Code \(\leftrightarrow\) Source Code Pro</a></h4>
 <div class="outline-text-4" id="text-Adobe-Source-Code-%5C(%5Cleftrightarrow%5C)-Source-Code-Pro">

 <figure id="org856b0a6"> <img src="Fonts_for_work/Source_Code_Pro.png" alt="Source_Code_Pro.png"></img></figure></div>
</div>

 <div id="outline-container-Ubuntu-Mono-%5C(%5Cleftrightarrow%5C)-Ubuntu-Mono" class="outline-4">
 <h4 id="Ubuntu-Mono-%5C(%5Cleftrightarrow%5C)-Ubuntu-Mono"> <span class="section-number-4">5.3.11.</span>  <a href="#Ubuntu-Mono-%5C(%5Cleftrightarrow%5C)-Ubuntu-Mono">Ubuntu Mono \(\leftrightarrow\) Ubuntu Mono</a></h4>
 <div class="outline-text-4" id="text-Ubuntu-Mono-%5C(%5Cleftrightarrow%5C)-Ubuntu-Mono">

 <figure id="orgadac364"> <img src="Fonts_for_work/Ubuntu_Mono.png" alt="Ubuntu_Mono.png"></img></figure></div>
</div>
</div>
</section> <section id="outline-container-Fonts-with-Han" class="outline-2"> <h2 id="Fonts-with-Han"> <span class="section-number-2">6.</span>  <a href="#Fonts-with-Han">Fonts with Han</a></h2>
 <div class="outline-text-2" id="text-Fonts-with-Han">
 <p>
I am not qualified enough to find out which Chinese fonts are equivalent to which, so I will just write down them all.
In real life you would be only choosing from among these fonts, because it is the safest choice.
</p>
</div>

 <div id="outline-container-LXGW-WenKai" class="outline-3">
 <h3 id="LXGW-WenKai"> <span class="section-number-3">6.1.</span>  <a href="#LXGW-WenKai">LXGW WenKai</a></h3>
 <div class="outline-text-3" id="text-LXGW-WenKai">

 <figure id="org1cfb4b3"> <img src="Fonts_with_Han/LXGW_WenKai.png" alt="LXGW_WenKai.png"></img></figure></div>
</div>

 <div id="outline-container-IBM-Plex-Sans" class="outline-3">
 <h3 id="IBM-Plex-Sans"> <span class="section-number-3">6.2.</span>  <a href="#IBM-Plex-Sans">IBM Plex Sans</a></h3>
 <div class="outline-text-3" id="text-IBM-Plex-Sans">

 <figure id="org2dbb149"> <img src="Fonts_with_Han/IBM_Plex_Sans.png" alt="IBM_Plex_Sans.png"></img></figure></div>
</div>

 <div id="outline-container-GNU-Unifont" class="outline-3">
 <h3 id="GNU-Unifont"> <span class="section-number-3">6.3.</span>  <a href="#GNU-Unifont">GNU Unifont</a></h3>
 <div class="outline-text-3" id="text-GNU-Unifont">

 <figure id="org5d24db7"> <img src="Fonts_with_Han/GNU_Unifont.png" alt="GNU_Unifont.png"></img></figure></div>
</div>

 <div id="outline-container-Hanazono" class="outline-3">
 <h3 id="Hanazono"> <span class="section-number-3">6.4.</span>  <a href="#Hanazono">Hanazono</a></h3>
 <div class="outline-text-3" id="text-Hanazono">

 <figure id="org37de4af"> <img src="Fonts_with_Han/Hanazono.png" alt="Hanazono.png"></img></figure></div>
</div>

 <div id="outline-container-Kurinto-Aria" class="outline-3">
 <h3 id="Kurinto-Aria"> <span class="section-number-3">6.5.</span>  <a href="#Kurinto-Aria">Kurinto Aria</a></h3>
 <div class="outline-text-3" id="text-Kurinto-Aria">

 <figure id="org08dadd7"> <img src="Fonts_with_Han/Kurinto_Aria.png" alt="Kurinto_Aria.png"></img></figure></div>
</div>

 <div id="outline-container-Kurinto-Arte" class="outline-3">
 <h3 id="Kurinto-Arte"> <span class="section-number-3">6.6.</span>  <a href="#Kurinto-Arte">Kurinto Arte</a></h3>
 <div class="outline-text-3" id="text-Kurinto-Arte">

 <figure id="org02e26f8"> <img src="Fonts_with_Han/Kurinto_Arte.png" alt="Kurinto_Arte.png"></img></figure></div>
</div>

 <div id="outline-container-Kurinto-Book" class="outline-3">
 <h3 id="Kurinto-Book"> <span class="section-number-3">6.7.</span>  <a href="#Kurinto-Book">Kurinto Book</a></h3>
 <div class="outline-text-3" id="text-Kurinto-Book">

 <figure id="org74783d8"> <img src="Fonts_with_Han/Kurinto_Book.png" alt="Kurinto_Book.png"></img></figure></div>
</div>

 <div id="outline-container-Kurinto-Cali" class="outline-3">
 <h3 id="Kurinto-Cali"> <span class="section-number-3">6.8.</span>  <a href="#Kurinto-Cali">Kurinto Cali</a></h3>
 <div class="outline-text-3" id="text-Kurinto-Cali">

 <figure id="org4245d5d"> <img src="Fonts_with_Han/Kurinto_Cali.png" alt="Kurinto_Cali.png"></img></figure></div>
</div>

 <div id="outline-container-Kurinto-Mono" class="outline-3">
 <h3 id="Kurinto-Mono"> <span class="section-number-3">6.9.</span>  <a href="#Kurinto-Mono">Kurinto Mono</a></h3>
 <div class="outline-text-3" id="text-Kurinto-Mono">

 <figure id="orgf39fd16"> <img src="Fonts_with_Han/Kurinto_Mono.png" alt="Kurinto_Mono.png"></img></figure></div>
</div>

 <div id="outline-container-Kurinto-Sans" class="outline-3">
 <h3 id="Kurinto-Sans"> <span class="section-number-3">6.10.</span>  <a href="#Kurinto-Sans">Kurinto Sans</a></h3>
 <div class="outline-text-3" id="text-Kurinto-Sans">

 <figure id="org18423ea"> <img src="Fonts_with_Han/Kurinto_Sans.png" alt="Kurinto_Sans.png"></img></figure></div>
</div>

 <div id="outline-container-Kurinto-Seri" class="outline-3">
 <h3 id="Kurinto-Seri"> <span class="section-number-3">6.11.</span>  <a href="#Kurinto-Seri">Kurinto Seri</a></h3>
 <div class="outline-text-3" id="text-Kurinto-Seri">

 <figure id="orge103971"> <img src="Fonts_with_Han/Kurinto_Seri.png" alt="Kurinto_Seri.png"></img></figure></div>
</div>

 <div id="outline-container-Kurinto-TMod" class="outline-3">
 <h3 id="Kurinto-TMod"> <span class="section-number-3">6.12.</span>  <a href="#Kurinto-TMod">Kurinto TMod</a></h3>
 <div class="outline-text-3" id="text-Kurinto-TMod">

 <figure id="org0107e2b"> <img src="Fonts_with_Han/Kurinto_TMod.png" alt="Kurinto_TMod.png"></img></figure></div>
</div>

 <div id="outline-container-Kurinto-Text" class="outline-3">
 <h3 id="Kurinto-Text"> <span class="section-number-3">6.13.</span>  <a href="#Kurinto-Text">Kurinto Text</a></h3>
 <div class="outline-text-3" id="text-Kurinto-Text">

 <figure id="org5194ab8"> <img src="Fonts_with_Han/Kurinto_Text.png" alt="Kurinto_Text.png"></img></figure></div>
</div>

 <div id="outline-container-Noto-Sans-CJK" class="outline-3">
 <h3 id="Noto-Sans-CJK"> <span class="section-number-3">6.14.</span>  <a href="#Noto-Sans-CJK">Noto Sans CJK</a></h3>
 <div class="outline-text-3" id="text-Noto-Sans-CJK">

 <figure id="org5666837"> <img src="Fonts_with_Han/Noto_Sans_CJK.png" alt="Noto_Sans_CJK.png"></img></figure></div>
</div>

 <div id="outline-container-Noto-Serif-CJK" class="outline-3">
 <h3 id="Noto-Serif-CJK"> <span class="section-number-3">6.15.</span>  <a href="#Noto-Serif-CJK">Noto Serif CJK</a></h3>
 <div class="outline-text-3" id="text-Noto-Serif-CJK">

 <figure id="orgda489bb"> <img src="Fonts_with_Han/Noto_Serif_CJK.png" alt="Noto_Serif_CJK.png"></img></figure></div>
</div>

 <div id="outline-container-Sarasa-Gothic-(CJK-example)-%5C(%5Cleftrightarrow%5C)-Sarasa-Gothic" class="outline-3">
 <h3 id="Sarasa-Gothic-(CJK-example)-%5C(%5Cleftrightarrow%5C)-Sarasa-Gothic"> <span class="section-number-3">6.16.</span>  <a href="#Sarasa-Gothic-(CJK-example)-%5C(%5Cleftrightarrow%5C)-Sarasa-Gothic">Sarasa Gothic (CJK example) \(\leftrightarrow\) Sarasa Gothic</a></h3>
 <div class="outline-text-3" id="text-Sarasa-Gothic-(CJK-example)-%5C(%5Cleftrightarrow%5C)-Sarasa-Gothic">

 <figure id="orgcfda6ba"> <img src="Fonts_with_Han/Sarasa_Gothic_CJK.png" alt="Sarasa_Gothic_CJK.png"></img></figure></div>
</div>

 <div id="outline-container-Adobe-Source-Han-Sans-CJK" class="outline-3">
 <h3 id="Adobe-Source-Han-Sans-CJK"> <span class="section-number-3">6.17.</span>  <a href="#Adobe-Source-Han-Sans-CJK">Adobe Source Han Sans CJK</a></h3>
 <div class="outline-text-3" id="text-Adobe-Source-Han-Sans-CJK">

 <figure id="org153732c"> <img src="Fonts_with_Han/Adobe_Source_Han_Sans_CJK.png" alt="Adobe_Source_Han_Sans_CJK.png"></img></figure></div>
</div>

 <div id="outline-container-CNS11643-TW-Kai" class="outline-3">
 <h3 id="CNS11643-TW-Kai"> <span class="section-number-3">6.18.</span>  <a href="#CNS11643-TW-Kai">CNS11643 TW Kai</a></h3>
 <div class="outline-text-3" id="text-CNS11643-TW-Kai">

 <figure id="orgfd806f8"> <img src="Fonts_with_Han/TW_Kai.png" alt="TW_Kai.png"></img></figure></div>
</div>

 <div id="outline-container-CNS11643-TW-Sung" class="outline-3">
 <h3 id="CNS11643-TW-Sung"> <span class="section-number-3">6.19.</span>  <a href="#CNS11643-TW-Sung">CNS11643 TW Sung</a></h3>
 <div class="outline-text-3" id="text-CNS11643-TW-Sung">

 <figure id="orgd05085b"> <img src="Fonts_with_Han/TW_Sung.png" alt="TW_Sung.png"></img></figure></div>
</div>

 <div id="outline-container-WenQuanYi-Micro-Hei" class="outline-3">
 <h3 id="WenQuanYi-Micro-Hei"> <span class="section-number-3">6.20.</span>  <a href="#WenQuanYi-Micro-Hei">WenQuanYi Micro Hei</a></h3>
 <div class="outline-text-3" id="text-WenQuanYi-Micro-Hei">

 <figure id="orgb5361eb"> <img src="Fonts_with_Han/WQY_Micro_Hei.png" alt="WQY_Micro_Hei.png"></img></figure></div>
</div>

 <div id="outline-container-WenQuanYi-Zen-Hei" class="outline-3">
 <h3 id="WenQuanYi-Zen-Hei"> <span class="section-number-3">6.21.</span>  <a href="#WenQuanYi-Zen-Hei">WenQuanYi Zen Hei</a></h3>
 <div class="outline-text-3" id="text-WenQuanYi-Zen-Hei">

 <figure id="org326e737"> <img src="Fonts_with_Han/WQY_Zen_Hei.png" alt="WQY_Zen_Hei.png"></img></figure></div>
</div>

 <div id="outline-container-Fandol-Hei" class="outline-3">
 <h3 id="Fandol-Hei"> <span class="section-number-3">6.22.</span>  <a href="#Fandol-Hei">Fandol Hei</a></h3>
 <div class="outline-text-3" id="text-Fandol-Hei">

 <figure id="org3ce54b4"> <img src="Fonts_with_Han/Fandol_Hei.png" alt="Fandol_Hei.png"></img></figure></div>
</div>

 <div id="outline-container-Fandol-Song" class="outline-3">
 <h3 id="Fandol-Song"> <span class="section-number-3">6.23.</span>  <a href="#Fandol-Song">Fandol Song</a></h3>
 <div class="outline-text-3" id="text-Fandol-Song">
 <p>
Fandol Song works if you only have a TeX installation, and quickly need to have something done, and do not need diacritics.
</p>


 <figure id="orge463125"> <img src="Fonts_with_Han/Fandol_Song.png" alt="Fandol_Song.png"></img></figure></div>
</div>

 <div id="outline-container-Fandol-Fang-(fangsong)" class="outline-3">
 <h3 id="Fandol-Fang-(fangsong)"> <span class="section-number-3">6.24.</span>  <a href="#Fandol-Fang-(fangsong)">Fandol Fang (fangsong)</a></h3>
 <div class="outline-text-3" id="text-Fandol-Fang-(fangsong)">

 <figure id="orgd30d4be"> <img src="Fonts_with_Han/Fandol_Fang.png" alt="Fandol_Fang.png"></img></figure></div>
</div>

 <div id="outline-container-Fandol-Kai" class="outline-3">
 <h3 id="Fandol-Kai"> <span class="section-number-3">6.25.</span>  <a href="#Fandol-Kai">Fandol Kai</a></h3>
 <div class="outline-text-3" id="text-Fandol-Kai">

 <figure id="orgcaa3941"> <img src="Fonts_with_Han/Fandol_Kai.png" alt="Fandol_Kai.png"></img></figure></div>
</div>

 <div id="outline-container-Microsoft-YaHei" class="outline-3">
 <h3 id="Microsoft-YaHei"> <span class="section-number-3">6.26.</span>  <a href="#Microsoft-YaHei">Microsoft YaHei</a></h3>
 <div class="outline-text-3" id="text-Microsoft-YaHei">

 <figure id="orgb8231c0"> <img src="Fonts_with_Han/Microsoft_YaHei.png" alt="Microsoft_YaHei.png"></img></figure></div>
</div>

 <div id="outline-container-Microsoft-SimSun" class="outline-3">
 <h3 id="Microsoft-SimSun"> <span class="section-number-3">6.27.</span>  <a href="#Microsoft-SimSun">Microsoft SimSun</a></h3>
 <div class="outline-text-3" id="text-Microsoft-SimSun">

 <figure id="org99bff3d"> <img src="Fonts_with_Han/Microsoft_SimSun.png" alt="Microsoft_SimSun.png"></img></figure></div>
</div>

 <div id="outline-container-Microsoft-MingLiu" class="outline-3">
 <h3 id="Microsoft-MingLiu"> <span class="section-number-3">6.28.</span>  <a href="#Microsoft-MingLiu">Microsoft MingLiu</a></h3>
 <div class="outline-text-3" id="text-Microsoft-MingLiu">

 <figure id="org57123da"> <img src="Fonts_with_Han/Microsoft_MingLiu.png" alt="Microsoft_MingLiu.png"></img></figure></div>
</div>

 <div id="outline-container-Microsoft-DengXian" class="outline-3">
 <h3 id="Microsoft-DengXian"> <span class="section-number-3">6.29.</span>  <a href="#Microsoft-DengXian">Microsoft DengXian</a></h3>
 <div class="outline-text-3" id="text-Microsoft-DengXian">

 <figure id="orga865897"> <img src="Fonts_with_Han/Microsoft_DengXian.png" alt="Microsoft_DengXian.png"></img></figure></div>
</div>

 <div id="outline-container-Microsoft-JhengHei-(%E6%AD%A3%E9%BB%91)" class="outline-3">
 <h3 id="Microsoft-JhengHei-(%E6%AD%A3%E9%BB%91)"> <span class="section-number-3">6.30.</span>  <a href="#Microsoft-JhengHei-(%E6%AD%A3%E9%BB%91)">Microsoft JhengHei (正黑)</a></h3>
 <div class="outline-text-3" id="text-Microsoft-JhengHei-(%E6%AD%A3%E9%BB%91)">

 <figure id="orgdf19aff"> <img src="Fonts_with_Han/Microsoft_Zhenghei.png" alt="Microsoft_Zhenghei.png"></img></figure></div>
</div>
</section> <section id="outline-container-Fonts-for-fun" class="outline-2"> <h2 id="Fonts-for-fun"> <span class="section-number-2">7.</span>  <a href="#Fonts-for-fun">Fonts for fun</a></h2>
 <div class="outline-text-2" id="text-Fonts-for-fun">
 <ol class="org-ol"> <li>Misc Fixed, X11, XFree86</li>
 <li>VGA/DOS</li>
 <li>oldschools fonts collection</li>
 <li>MS Comic Sans
 <ol class="org-ol"> <li>Webcore Comic Sans</li>
</ol></li>
 <li>Script/Bad Script
 <ol class="org-ol"> <li>Google Bad Script</li>
</ol></li>
 <li>Zapfino</li>
 <li>Blackletter
 <ol class="org-ol"> <li>Fraktur</li>
 <li>Kurinto Olde</li>
</ol></li>
</ol></div>

 <div id="outline-container-Misc-Fixed" class="outline-3">
 <h3 id="Misc-Fixed"> <span class="section-number-3">7.1.</span>  <a href="#Misc-Fixed">Misc Fixed</a></h3>
 <div class="outline-text-3" id="text-Misc-Fixed">
 <p>
This is the default font of X11, XFree86, X.Org.
</p>

 <p>
I have not found how to load an otb file in LuaLaTeX, message me if you have.
</p>


 <figure id="org44cd2fd"> <img src="./Fonts_for_fun/2025-05-12_12-05-51_screenshot.png" alt="2025-05-12_12-05-51_screenshot.png"></img></figure></div>
</div>

 <div id="outline-container-univga-VGA" class="outline-3">
 <h3 id="univga-VGA"> <span class="section-number-3">7.2.</span>  <a href="#univga-VGA">univga VGA</a></h3>
 <div class="outline-text-3" id="text-univga-VGA">
 <p>
Standard VGA and DOS font.
</p>


 <figure id="org689ba53"> <img src="Fonts_for_fun/2025-05-12_12-06-33_screenshot.png" alt="2025-05-12_12-06-33_screenshot.png"></img></figure></div>
</div>


 <div id="outline-container-oldschool-pc-fonts-https://int10h.org/oldschool-pc-fonts/" class="outline-3">
 <h3 id="oldschool-pc-fonts-https://int10h.org/oldschool-pc-fonts/"> <span class="section-number-3">7.3.</span>  <a href="#oldschool-pc-fonts-https://int10h.org/oldschool-pc-fonts/">oldschool-pc-fonts </a> <a href="https://int10h.org/oldschool-pc-fonts/">https://int10h.org/oldschool-pc-fonts/</a></h3>
 <div class="outline-text-3" id="text-oldschool-pc-fonts-https://int10h.org/oldschool-pc-fonts/">
 <p>
 <a href="https://int10h.org/oldschool-pc-fonts/showcase/">https://int10h.org/oldschool-pc-fonts/showcase/</a>
</p>
</div>
</div>

 <div id="outline-container-Comic-Sans" class="outline-3">
 <h3 id="Comic-Sans"> <span class="section-number-3">7.4.</span>  <a href="#Comic-Sans">Comic Sans</a></h3>
 <div class="outline-text-3" id="text-Comic-Sans">

 <figure id="orgc8e64e8"> <img src="Fonts_for_fun/Comic_Sans.png" alt="Comic_Sans.png"></img></figure></div>
</div>

 <div id="outline-container-Zapfino" class="outline-3">
 <h3 id="Zapfino"> <span class="section-number-3">7.5.</span>  <a href="#Zapfino">Zapfino</a></h3>
 <div class="outline-text-3" id="text-Zapfino">
 <p>
 <a href="https://ilovetypography.com/2015/02/22/making-arabic-fonts-climbing-everest/">https://ilovetypography.com/2015/02/22/making-arabic-fonts-climbing-everest/</a>
</p>
</div>
</div>

 <div id="outline-container-Fraktur-%5Cleftrightarrow-Kurinto-Olde" class="outline-3">
 <h3 id="Fraktur-%5Cleftrightarrow-Kurinto-Olde"> <span class="section-number-3">7.6.</span>  <a href="#Fraktur-%5Cleftrightarrow-Kurinto-Olde">Fraktur ↔ Kurinto Olde</a></h3>
 <div class="outline-text-3" id="text-Fraktur-%5Cleftrightarrow-Kurinto-Olde">
 <p>
This is the font the King James Bible is published in.
</p>


 <figure id="org7f42b60"> <img src="Fonts_for_fun/Kurinto_Olde.png" alt="Kurinto_Olde.png"></img></figure></div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-04-15_fonts-guide-for-2025.d/index.html"/>
  <id>https://lockywolf.net/2025-04-15_fonts-guide-for-2025.d/index.html</id>
  <updated>2025-05-31T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;TLS Mastery&quot; by Michael W Lucas.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading "TLS Mastery" by Michael W Lucas.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a></li>
 <li> <a href="#Notes">2. Notes</a>
 <ul> <li> <a href="#References">2.1. References</a></li>
 <li> <a href="#Simple-request">2.2. Simple request</a></li>
 <li> <a href="#Understanding-the-crypto-system">2.3. Understanding the crypto system</a>
 <ul> <li> <a href="#HMAC">2.3.1. HMAC</a></li>
 <li> <a href="#Algorithms">2.3.2. Algorithms</a></li>
 <li> <a href="#Perfect-Forward-Secrecy">2.3.3. Perfect Forward Secrecy</a></li>
</ul></li>
 <li> <a href="#File-formats">2.4. File formats</a>
 <ul> <li> <a href="#Serialisation">2.4.1. Serialisation</a></li>
 <li> <a href="#Working-with-keys">2.4.2. Working with keys</a></li>
</ul></li>
 <li> <a href="#Signing-and-Encryption">2.5. Signing and Encryption</a></li>
 <li> <a href="#Revocation">2.6. Revocation</a></li>
 <li> <a href="#Negotiation">2.7. Negotiation</a></li>
 <li> <a href="#Making-CSR">2.8. Making CSR</a></li>
 <li> <a href="#Making-an-CA">2.9. Making an CA</a>
 <ul> <li> <a href="#RSA-version">2.9.1.  <span class="todo TODO">TODO</span> RSA version</a></li>
 <li> <a href="#A-simpler-RSA-version">2.9.2. A simpler RSA version</a></li>
 <li> <a href="#CA-using-ECDSA">2.9.3. CA using ECDSA</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Words">3.  <span class="todo TODO">TODO</span> Words</a></li>
 <li> <a href="#Contacts">4.  <span class="todo TODO">TODO</span> Contacts</a></li>
</ul></div>
</nav> <p>
I have read "TLS Mastery" by Michael W Lucas.
</p>

 <p>
It is not a bad introduction into openssl and TLS, but I feel that his book on SSH is better.
</p>


 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
 <p>
So, I found that I had to read an introduction into TLS when I failed to generate a self-signed certificate for a simple setup at work, which needed a few TLS certificates to place a stupid piece of software which refused to work without them.
</p>

 <p>
The system was completely closed-circuit, none of that stuff was required or even beneficial for my use-case, but since Open Source is obsessed with cryptomania and is extremely keen on embedding it into everything which falls into their hands, I thought that it is worth learning a few bits.
</p>

 <p>
I had already known that Lucas is good at reading man pages aloud (or rather rewriting their dry and terse language into something much more palatable, having a structure and a narrative), I resorted to reading his book "TLS Mastery".
</p>

 <p>
What can I say? 
It is not a bad book, but I am feeling that it over-complicates things.
</p>

 <p>
It is true that TLS  <span class="underline">is</span> over-complicated by design, and Lucas actually does a decent job introducing the needless but unavoidable complexities, I am feeling that he buys into the TLS complexity too much, taking it at face value and not simplifying where it is possible to simplify things.
</p>

 <p>
On the other hand, I am writing this from a position of someone who has already spent time on fighting with TLS certificates for some time.
</p>

 <p>
The books essentially consists of four parts:
</p>

 <ol class="org-ol"> <li>Introducing TLS, vocabulary, and notation.</li>
 <li>Describing keypair generation and those few cryptography parameters which might be of use for a practitioner.</li>
 <li>Getting certificates signed by an automated service like Let's Encrypt.</li>
 <li>Running one's own Certificate Authority, which is not an organisation, but a set of scripts.</li>
</ol> <p>
The last part is introduced in great detail, and describes every step of this potentially overbearing process, but does not give a few "simple and straightforward" commands to plug into your script and placate the pesky software which just needs encryption for whatever reason.
</p>

 <p>
Anyway, the last part of  <a href="#Notes">2</a> in this file gives one for you.
</p>

 <p>
In any case, the book is short, the language is lively and rich with metaphors, so it is a fun read anyway.
</p>

 <p>
The language is, maybe, even a little bit  <span class="underline">too</span> simple and approachable, for me, but this is not necessarily bad, because nowadays everyone has to be a little bit of a sysadmin, even though for most of us it is not an activity of choice but an unfortunate necessity, and therefore treating us all as ignorant newbies is a good thing, not  bad.
</p>
</div>
</section> <section id="outline-container-Notes" class="outline-2"> <h2 id="Notes"> <span class="section-number-2">2.</span>  <a href="#Notes">Notes</a></h2>
 <div class="outline-text-2" id="text-Notes">
</div>

 <div id="outline-container-References" class="outline-3">
 <h3 id="References"> <span class="section-number-3">2.1.</span>  <a href="#References">References</a></h3>
 <div class="outline-text-3" id="text-References">
 <ol class="org-ol"> <li> <a href="https://blog.cloudflare.com/rfc-8446-aka-tls-1-3/">https://blog.cloudflare.com/rfc-8446-aka-tls-1-3/</a></li>
 <li> <a href="https://crypto.stackexchange.com/questions/102626/how-does-tls-1-3-provide-authentication-without-using-the-public-key-to-verify-t">https://crypto.stackexchange.com/questions/102626/how-does-tls-1-3-provide-authentication-without-using-the-public-key-to-verify-t</a></li>
 <li> <a href="https://www.yubico.com/product/yubihsm-2-series/yubihsm-2-fips/">https://www.yubico.com/product/yubihsm-2-series/yubihsm-2-fips/</a></li>
</ol></div>
</div>

 <div id="outline-container-Simple-request" class="outline-3">
 <h3 id="Simple-request"> <span class="section-number-3">2.2.</span>  <a href="#Simple-request">Simple request</a></h3>
 <div class="outline-text-3" id="text-Simple-request">
 <p>
 <code>openssh s_client</code> is a TLS-aware telnet/netcat, similar to stunnel
</p>

 <div class="org-src-container">
 <pre class="src src-shell">openssl s_client -showcerts -connect www.baidu.com:443 <<EOF <span style="font-weight: bold;">
GET / HTTP/1.1
EOF</span>
</pre>
</div>
</div>
</div>

 <div id="outline-container-Understanding-the-crypto-system" class="outline-3">
 <h3 id="Understanding-the-crypto-system"> <span class="section-number-3">2.3.</span>  <a href="#Understanding-the-crypto-system">Understanding the crypto system</a></h3>
 <div class="outline-text-3" id="text-Understanding-the-crypto-system">
</div>

 <div id="outline-container-HMAC" class="outline-4">
 <h4 id="HMAC"> <span class="section-number-4">2.3.1.</span>  <a href="#HMAC">HMAC</a></h4>
 <div class="outline-text-4" id="text-HMAC">
 <p>
HMAC is essentially a signature.
Hash-based Message Authentication Code.
Message -> hash(message) -> privkey_enc(hash(message)) -> short signature/hmac
</p>

 <p>
check correct if hash(message)==pubkey_dec(hmac)
</p>

 <p>
But there may be other methods to generate the HMAC
</p>

 <p>
Again, they are used  <span class="underline">during</span> stream exchange to encrypt every block, not during key exchange (even though key exchange needs a signature too).
</p>
</div>
</div>

 <div id="outline-container-Algorithms" class="outline-4">
 <h4 id="Algorithms"> <span class="section-number-4">2.3.2.</span>  <a href="#Algorithms">Algorithms</a></h4>
 <div class="outline-text-4" id="text-Algorithms">
</div>

 <ol class="org-ol"> <li> <a id="Key-Exchange"></a> <a href="#Key-Exchange">Key Exchange</a> <br></br> <div class="outline-text-5" id="text-Key-Exchange">
 <div class="org-src-container">
 <pre class="src src-bash">openssl ciphers -v  <span style="font-style: italic;">'ALL:COMPLEMENTOFALL'</span> | awk  <span style="font-style: italic;">'{print $3;}'</span> | sort | uniq
</pre>
</div>

 <div class="verbatim" id="orga03b31e">
 <p>
Kx=DH
Kx=DHEPSK
Kx=ECDH
Kx=ECDHEPSK
Kx=PSK
Kx=RSA
Kx=RSAPSK
Kx=any
Kx=SRP
</p>

</div>

 <p>
 <a href="https://openssl-users.openssl.narkive.com/N0eGKnwY/ecdh-vs-ecdhe">https://openssl-users.openssl.narkive.com/N0eGKnwY/ecdh-vs-ecdhe</a>
</p>

 <ol class="org-ol"> <li>ECDHE :: Elliptic Curve Diffie Hellman Ephemeral (no, the last E is  <span class="underline">NOT</span> "Exchange")</li>
 <li>ECDHEPSK :: Not sure, I think it is ECDHE, but with some unfair optimisations</li>
 <li>ECDH :: Elliptic Curve Diffie Hellman (same key persists over the session)</li>
 <li>RSA :: Rivest Shamir Adleman</li>
 <li>RSAPSK :: -//-</li>
 <li>DH :: Diffie Hellman (not Elliptic)</li>
 <li>DHE :: Diffie Hellman Ephemeral</li>
 <li>DHEPSK :: -//-</li>
 <li>SRP :: Some obscure stuff from 1997 "Secure Remote Password protocol (SRP) is an augmented password-authenticated key exchange (PAKE) protocol"</li>
</ol> <p>
Surprisingly, Curve25519 is missing.
</p>
</div>
</li>

 <li> <a id="Authentication"></a> <a href="#Authentication">Authentication</a> <br></br> <div class="outline-text-5" id="text-Authentication">
 <div class="org-src-container">
 <pre class="src src-shell">openssl ciphers -v  <span style="font-style: italic;">'ALL:COMPLEMENTOFALL'</span> | awk  <span style="font-style: italic;">'{print $4;}'</span> | sort | uniq
</pre>
</div>

 <div class="verbatim" id="orgb873c7c">
 <p>
Au=DSS
Au=ECDSA
Au=None
Au=PSK
Au=RSA
Au=any
</p>

</div>

 <ol class="org-ol"> <li>ECDSA :: Elliptic Curve Digital Signature Algorithm</li>
 <li>RSA :: -//-</li>
 <li>DSA :: -//-, 1991</li>
</ol> <p>
Missing ciphers o_O?
</p>

 <ol class="org-ol"> <li>EdDSA :: Edwards' DSA, why is it missing?</li>
</ol></div>
</li>



 <li> <a id="Symmetric-Encryption-with-Method"></a> <a href="#Symmetric-Encryption-with-Method">Symmetric Encryption with Method</a> <br></br> <div class="outline-text-5" id="text-Symmetric-Encryption-with-Method">
 <div class="org-src-container">
 <pre class="src src-shell">openssl ciphers -v  <span style="font-style: italic;">'ALL:COMPLEMENTOFALL'</span> | awk  <span style="font-style: italic;">'{print $5;}'</span> | sort | uniq
</pre>
</div>

 <div class="verbatim" id="org958757c">
 <p>
Enc=AES(128)
Enc=AES(256)
Enc=AESCCM(128)
Enc=AESCCM(256)
Enc=AESCCM8(128)
Enc=AESCCM8(256)
Enc=AESGCM(128)
Enc=AESGCM(256)
Enc=ARIAGCM(128)
Enc=ARIAGCM(256)
Enc=CHACHA20/POLY1305(256)
Enc=Camellia(128)
Enc=Camellia(256)
Enc=IDEA(128)
Enc=None
Enc=SEED(128)
</p>

</div>

 <ol class="org-ol"> <li>AES :: Rijndael 2002, a "new" standard when DES was broken.</li>
 <li>ARIA :: South Korean AES 2003</li>
 <li>ChaCha20-Poly1305 :: Bernstein's cipher from 2005/2008, ChaCha20 works only in AEAD with Poly1305, I don't know why</li>
 <li>Camellia :: NTT/Mitsubishi candidate for AES, 2000</li>
 <li>IDEA :: 1991, First replacement for DES</li>
 <li>SEED :: South Korean cipher from 1998</li>
</ol> <p>
 <b>Missing</b>
</p>

 <ol class="org-ol"> <li>Deprecated DES/3DES :: Digital Encryption Standard, 56 bit</li>
 <li>Deprecated RC2 :: 1987, Rivest Cipher 2</li>
 <li>Deprecated RC4 :: 1987, Rivest Cipher 4 40-2048 bits, nowadays seldom used</li>
 <li>Salsa20</li>
 <li>XChaCha20</li>
</ol> <p>
Methods are extensively covered in Bruce Schneier's book.
</p>


 <figure id="orga17a3c7"> <img src="./BlockCipherModesofOperation.svg" alt="BlockCipherModesofOperation.svg" class="org-svg"></img></figure> <ol class="org-ol"> <li>CBC :: Cipher block chaining  <a href="https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#CBC">https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#CBC</a></li>
 <li>CCM :: Counter with cipher block chaining message authentication code</li>
 <li>CCM_8 :: CCM with different authentication tag, 8 bytes (not bits)</li>
 <li>GCM :: Galois Counter Mode</li>
</ol></div>
</li>

 <li> <a id="Message-Authentication-Code-(MAC,-Hash-based-MAC-(HMAC))"></a> <a href="#Message-Authentication-Code-(MAC,-Hash-based-MAC-(HMAC))">Message Authentication Code (MAC, Hash-based MAC (HMAC))</a> <br></br> <div class="outline-text-5" id="text-Message-Authentication-Code-(MAC,-Hash-based-MAC-(HMAC))">
 <div class="org-src-container">
 <pre class="src src-shell">openssl ciphers -v  <span style="font-style: italic;">'ALL:COMPLEMENTOFALL'</span> | awk  <span style="font-style: italic;">'{print $6;}'</span> | sort | uniq
</pre>
</div>

 <div class="verbatim" id="org9639a35">
 <p>
Mac=AEAD
Mac=MD5
Mac=SHA1
Mac=SHA256
Mac=SHA384
</p>

</div>

 <p>
AEAD is not a separate algorithm, it means that Message Authentication is built into encryption.
</p>

 <div class="org-src-container">
 <pre class="src src-shell">openssl ciphers -v  | grep -F 1.3
</pre>
</div>

 <div class="verbatim" id="org0323f36">
 <p>
TLS_AES_256_GCM_SHA384  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(128) Mac=AEAD
</p>

</div>

 <p>
The suffix is SHA256, but Mac=AEAD.
 <b>facepalm</b>
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Perfect-Forward-Secrecy" class="outline-4">
 <h4 id="Perfect-Forward-Secrecy"> <span class="section-number-4">2.3.3.</span>  <a href="#Perfect-Forward-Secrecy">Perfect Forward Secrecy</a></h4>
 <div class="outline-text-4" id="text-Perfect-Forward-Secrecy">
 <p>
Inability to decrypt a full session dump even if a key is recovered later.
</p>
</div>
</div>
</div>

 <div id="outline-container-File-formats" class="outline-3">
 <h3 id="File-formats"> <span class="section-number-3">2.4.</span>  <a href="#File-formats">File formats</a></h3>
 <div class="outline-text-3" id="text-File-formats">
</div>
 <div id="outline-container-Serialisation" class="outline-4">
 <h4 id="Serialisation"> <span class="section-number-4">2.4.1.</span>  <a href="#Serialisation">Serialisation</a></h4>
 <div class="outline-text-4" id="text-Serialisation">
 <p>
ASN.1 and OID.
</p>

 <p>
ASN.1 is used for encoding:
</p>

 <ol class="org-ol"> <li>X.500 directory structure</li>
 <li>X.509 (TLS and similar) certificates</li>
 <li>LDAP</li>
 <li>SNMP</li>
</ol> <p>
Not sure if it is much better than protobuf, but this is a decision taken years ago.   
</p>

 <p>
ASN.1 is a syntactic notation, and needs a "lexical syntax"  <i>encoding</i>.
</p>

 <ol class="org-ol"> <li>DER :: Distinguished Encoding Rules, a binary format for ASN.1</li>
 <li>PEM :: Privacy-Enanced Mail, a text format for ASN.1, headers+base64(der)</li>
 <li>pkcs12 :: usually cert+key+chain in one file, with .p12 ext</li>
</ol></div>
</div>

 <div id="outline-container-Working-with-keys" class="outline-4">
 <h4 id="Working-with-keys"> <span class="section-number-4">2.4.2.</span>  <a href="#Working-with-keys">Working with keys</a></h4>
 <div class="outline-text-4" id="text-Working-with-keys">
 <ol class="org-ol"> <li>openssl rsa :: working with rsa keys</li>
 <li>openssl ec  :: working with elliptic curves, dsa keys</li>
 <li>openssl x509 :: working with x509 certs</li>
 <li>openssl pkcs12 :: working with pkcs12 cert archives</li>
</ol> <p>
Funny, if you give openssl a "bundle", a lump of certificates, it only processes the first one, but gnutls (certtool) processes all of them.
</p>

 <p>
 <b>How to save a website cert and chain into a file?</b>
</p>

 <div class="org-src-container">
 <pre class="src src-shell">openssl s_client -connect www.baidu.com:443 -showcerts </dev/null 2>/dev/null | openssl x509 -outform PEM > file.pem
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-shell">openssl s_client -showcerts -connect www.rabobank.nl:443 </dev/null 2>/dev/null | openssl x509 -noout -text
</pre>
</div>

 <pre class="example" id="orga4ed417">
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            39:0f:97:a1:9b:b1:9a:2d:d6:10:b9:82:df:f7:23:b6
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo ECC Extended Validation Secure Server CA
        Validity
            Not Before: Apr  1 00:00:00 2025 GMT
            Not After : Apr  1 23:59:59 2026 GMT
        Subject: serialNumber = 30046259, jurisdictionC = NL, businessCategory = Private Organization, C = NL, ST = Utrecht, O = Cooperatieve Rabobank U.A., CN = rabobank.nl
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:fa:72:7e:f6:30:8f:ad:f4:5e:d7:47:05:35:5a:
                    ae:cf:63:4b:4e:4c:4b:8f:f6:e6:c2:93:6c:bf:61:
                    7e:4c:a1:71:2d:5a:c5:0d:49:bc:4d:c5:be:5b:33:
                    03:26:7c:de:b3:37:6b:bd:9b:47:be:65:94:df:bb:
                    9e:d1:e2:fb:b1
                ASN1 OID: prime256v1
                NIST CURVE: P-256
        X509v3 extensions:
            X509v3 Authority Key Identifier: 
                keyid:EF:C1:2A:95:0C:32:DA:FB:73:30:DC:8A:13:D8:15:4B:F7:13:E8:F8

            X509v3 Subject Key Identifier: 
                2A:F2:1C:C8:05:79:FA:45:42:12:5B:77:64:3A:21:15:A8:CC:32:A5
            X509v3 Key Usage: critical
                Digital Signature
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Certificate Policies: 
                Policy: 1.3.6.1.4.1.6449.1.2.1.5.1
                  CPS: https://sectigo.com/CPS
                Policy: 2.23.140.1.1

            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://crl.sectigo.com/SectigoECCExtendedValidationSecureServerCA.crl

            Authority Information Access: 
                CA Issuers - URI:http://crt.sectigo.com/SectigoECCExtendedValidationSecureServerCA.crt
                OCSP - URI:http://ocsp.sectigo.com

            CT Precertificate SCTs: 
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : 96:97:64:BF:55:58:97:AD:F7:43:87:68:37:08:42:77:
                                E9:F0:3A:D5:F6:A4:F3:36:6E:46:A4:3F:0F:CA:A9:C6
                    Timestamp : Apr  1 13:36:49.891 2025 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:44:02:20:2E:80:F4:58:61:1D:DF:B7:BB:0F:AA:B7:
                                4C:A3:B8:F7:4C:E2:F2:D1:73:CE:2A:26:42:F7:83:93:
                                42:35:72:F1:02:20:6E:A0:4B:FA:72:3D:EB:55:F3:8A:
                                F8:97:7C:B1:E4:A3:AD:33:9C:21:25:DA:14:48:A5:9B:
                                7D:C7:E4:78:9D:11
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : 19:86:D4:C7:28:AA:6F:FE:BA:03:6F:78:2A:4D:01:91:
                                AA:CE:2D:72:31:0F:AE:CE:5D:70:41:2D:25:4C:C7:D4
                    Timestamp : Apr  1 13:36:49.859 2025 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:45:02:20:2C:C5:F2:D4:94:D0:44:7D:48:BA:27:C0:
                                44:2E:6A:57:01:16:4F:5B:54:A7:65:B9:44:4F:D5:BA:
                                2B:78:03:9A:02:21:00:8E:EC:5C:3F:32:08:E2:0C:DC:
                                7C:FE:53:E1:F1:2F:1A:D4:78:18:40:83:4F:31:26:99:
                                D3:3B:2B:B6:68:31:FC
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : 0E:57:94:BC:F3:AE:A9:3E:33:1B:2C:99:07:B3:F7:90:
                                DF:9B:C2:3D:71:32:25:DD:21:A9:25:AC:61:C5:4E:21
                    Timestamp : Apr  1 13:36:49.889 2025 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:45:02:21:00:D1:3C:38:FB:A8:A4:21:72:36:92:C2:
                                D1:EA:14:98:94:FA:C1:79:67:60:CD:4C:95:77:AC:10:
                                4F:BB:C2:95:31:02:20:47:39:49:5E:C2:46:CB:BC:97:
                                FE:97:2F:B3:81:44:1C:D7:A8:1D:13:BE:2F:E4:6E:EF:
                                92:E4:53:1A:94:44:A2
            X509v3 Subject Alternative Name: 
                DNS:rabobank.nl, DNS:www.rabobank.nl
    Signature Algorithm: ecdsa-with-SHA256
         30:44:02:20:1e:00:23:53:80:75:3f:19:f4:38:8f:00:bb:6a:
         5f:f2:27:db:56:2e:ca:4c:d3:96:40:84:08:4d:11:aa:b0:f7:
         02:20:43:0e:64:a1:63:37:6b:14:26:ce:a5:91:14:36:72:50:
         3e:fe:35:8e:4f:d5:43:c0:fd:ae:b5:66:8c:ec:fa:72
</pre>

 <p>
The above is an  <b>Extended Validation</b> certificate, which has not just a domain name in the  <b>Subject</b>, but the country and the business name.
</p>
</div>
</div>
</div>

 <div id="outline-container-Signing-and-Encryption" class="outline-3">
 <h3 id="Signing-and-Encryption"> <span class="section-number-3">2.5.</span>  <a href="#Signing-and-Encryption">Signing and Encryption</a></h3>
 <div class="outline-text-3" id="text-Signing-and-Encryption">
 <p>
We do not use  <b>Public Key Encryption</b> any more.
</p>

 <p>
We use  <b>Public Key Signing</b>, and apply it to obtaining  <b>Symmetric Encryption Keys</b> using Diffie-Hellman.
</p>

 <p>
So even if your certificate is invalid for signing, it does not mean that the key is not good for organising an encrypted communication link.
(It probably does not work for asynchronous encryption, such as email or ordinary mail.)
</p>
</div>
</div>

 <div id="outline-container-Revocation" class="outline-3">
 <h3 id="Revocation"> <span class="section-number-3">2.6.</span>  <a href="#Revocation">Revocation</a></h3>
 <div class="outline-text-3" id="text-Revocation">
 <ol class="org-ol"> <li>openssl crl</li>
</ol> <div class="org-src-container">
 <pre class="src src-shell">curl  <span style="font-style: italic;">'http://crl.sectigo.com/SectigoECCExtendedValidationSecureServerCA.crl'</span> | openssl  crl -inform DER -noout -text
</pre>
</div>

 <pre class="example" id="orge58e798">
Certificate Revocation List (CRL):
        Version 2 (0x1)
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo ECC Extended Validation Secure Server CA
        Last Update: May 22 13:01:18 2025 GMT
        Next Update: May 29 13:01:18 2025 GMT
        CRL extensions:
            X509v3 Authority Key Identifier: 
                keyid:EF:C1:2A:95:0C:32:DA:FB:73:30:DC:8A:13:D8:15:4B:F7:13:E8:F8

            X509v3 CRL Number: 
                2461
Revoked Certificates:
    Serial Number: F68D62FBF1623665C9CCD6C71A5549DE
        Revocation Date: Jun 10 15:00:25 2024 GMT
    Serial Number: 054D37B37752D9AE48F5292AFB1AD799
        Revocation Date: Sep  9 12:52:04 2024 GMT
    Serial Number: 7FC8A4C765F72B86725390B2D79F4E5B
        Revocation Date: Sep 25 13:35:00 2024 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code: 
                Superseded
    Serial Number: 50E07CD40E1358AC8AA8EA336D365833
        Revocation Date: Oct  1 23:55:55 2024 GMT
    Serial Number: 7BD6D2B8666F79C9022CCDE3FA26839D
        Revocation Date: Oct  1 23:55:56 2024 GMT
    Serial Number: 9BC21C5B7E1D909B9E3F9ADFC4DA0DF3
        Revocation Date: Oct  4 13:37:30 2024 GMT
    Serial Number: B671F7363552EDAA2EC68D4A5852AD15
        Revocation Date: Oct 21 12:22:24 2024 GMT
    Serial Number: 5AB252C6DB13A335E40CA6E10985A7AB
        Revocation Date: Oct 22 09:24:52 2024 GMT
    Serial Number: 085A9DC7B48A82CB52BCFC2E99628979
        Revocation Date: Oct 23 11:43:24 2024 GMT
    Serial Number: B7321C7A2C5CCF8DE73E982BA44748C1
        Revocation Date: Feb 21 14:12:52 2025 GMT
    Serial Number: 35641F6F81DC2639A810DC1A53AF04F4
        Revocation Date: Mar  5 19:24:59 2025 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code: 
                Superseded
    Serial Number: 21927D6ADA83B7617F367BE59798976E
        Revocation Date: Mar  5 19:25:19 2025 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code: 
                Superseded
    Serial Number: 3606E08FFCAF6E809BAB0632C6722A73
        Revocation Date: Mar  5 19:25:43 2025 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code: 
                Superseded
    Serial Number: 6D305EA71C9749936EBE6082F0A7F555
        Revocation Date: Mar 27 09:48:55 2025 GMT
    Serial Number: B80F154F16A648C32F9D218B14A5724C
        Revocation Date: Mar 31 18:53:03 2025 GMT
    Serial Number: 9BE747179EA0A5898DA46AC68E89D2E4
        Revocation Date: Apr 16 13:23:21 2025 GMT
    Serial Number: 6E5BE0F63B29A51737DA8C1DD9F88D40
        Revocation Date: Apr 17 22:05:17 2025 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code: 
                Cessation Of Operation
    Serial Number: 6D2A42743E9A0BEAA26E227A550AB29C
        Revocation Date: Apr 28 14:41:52 2025 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code: 
                Cessation Of Operation
    Signature Algorithm: ecdsa-with-SHA256
         30:44:02:20:75:78:f1:55:ee:6b:5e:06:5c:cf:fd:1f:3b:ce:
         7e:c8:0a:bb:44:44:02:12:37:11:85:5d:9c:41:be:f2:65:ae:
         02:20:6d:13:bc:00:b4:58:31:85:9e:14:10:0f:e3:32:6e:62:
         85:6a:7f:57:6a:9d:b2:af:bd:96:86:fd:7b:4f:a1:1c
</pre>
</div>
</div>

 <div id="outline-container-Negotiation" class="outline-3">
 <h3 id="Negotiation"> <span class="section-number-3">2.7.</span>  <a href="#Negotiation">Negotiation</a></h3>
 <div class="outline-text-3" id="text-Negotiation">
 <div class="org-src-container">
 <pre class="src src-shell">openssl s_client -crlf -tls1_2 -connect baidu.com:443 </dev/null 2>&1
</pre>
</div>

 <pre class="example" id="org2d0651b">
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2
verify return:1
depth=1 C = US, O = "DigiCert, Inc.", CN = DigiCert Secure Site Pro G2 TLS CN RSA4096 SHA256 2022 CA1
verify return:1
depth=0 C = CN, ST = \E5\8C\97\E4\BA\AC\E5\B8\82, O = "BeiJing Baidu Netcom Science Technology Co., Ltd", CN = www.baidu.cn
verify return:1
CONNECTED(00000008)
---
Certificate chain
 0 s:C = CN, ST = \E5\8C\97\E4\BA\AC\E5\B8\82, O = "BeiJing Baidu Netcom Science Technology Co., Ltd", CN = www.baidu.cn
   i:C = US, O = "DigiCert, Inc.", CN = DigiCert Secure Site Pro G2 TLS CN RSA4096 SHA256 2022 CA1
 1 s:C = US, O = "DigiCert, Inc.", CN = DigiCert Secure Site Pro G2 TLS CN RSA4096 SHA256 2022 CA1
   i:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2
 2 s:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2
   i:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIIlzCCBn+gAwIBAgIQD41nR/OhQo95k3ouSXk0KDANBgkqhkiG9w0BAQsFADBr
MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQzBBBgNVBAMT
OkRpZ2lDZXJ0IFNlY3VyZSBTaXRlIFBybyBHMiBUTFMgQ04gUlNBNDA5NiBTSEEy
NTYgMjAyMiBDQTEwHhcNMjUwMjEyMDAwMDAwWhcNMjYwMzAzMjM1OTU5WjBzMQsw
CQYDVQQGEwJDTjESMBAGA1UECAwJ5YyX5Lqs5biCMTkwNwYDVQQKEzBCZWlKaW5n
IEJhaWR1IE5ldGNvbSBTY2llbmNlIFRlY2hub2xvZ3kgQ28uLCBMdGQxFTATBgNV
BAMTDHd3dy5iYWlkdS5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
ANugve9PaRllDOS4+X6lmki6d0pBR2xa5N5TY/2nU7asjQRoowyuD0c5d6lAoibl
z4KaeglV9yjTD/Z6kkbwmj/G5ckMdvZ1t2TH9zqrsvD4sHCJjdCfJhFm2zF4OyU3
7bnh7J0UpjcjzkIWV6ZqpYy68FNBhxYDzUwECABHzR8/x9GG8kfS2y0NDT6pu+Ky
/v+XLKbLj6OXWFdgstRKXgJ6G0fxpPhxyHjsLWLVpXMfTuGa0IvDuBAaWUpOyOp6
v2fpnNKP9VAfLpJMJsgBb7QVmYEscd0C76LPZ8QupvbtiWTKCH86UweOY0RWUh/2
L16CaKFckpz+4BgARtspVtUCAwEAAaOCBC0wggQpMB8GA1UdIwQYMBaAFOFsw5SF
b+dBL1V6M32PX7YgUDYVMB0GA1UdDgQWBBRRok2im6uS1qk+tBoyHaONJ14WKTCB
9AYDVR0RBIHsMIHpggx3d3cuYmFpZHUuY26CCGJhaWR1LmNuggliYWlkdS5jb22C
DGJhaWR1LmNvbS5jboILdy5iYWlkdS5jb22CDHd3LmJhaWR1LmNvbYIQd3d3LmJh
aWR1LmNvbS5jboIQd3d3LmJhaWR1LmNvbS5oa4IMd3d3LmJhaWR1LmhrghB3d3cu
YmFpZHUubmV0LmF1ghB3d3cuYmFpZHUubmV0LnBoghB3d3cuYmFpZHUubmV0LnR3
ghB3d3cuYmFpZHUubmV0LnZugg53d3d3LmJhaWR1LmNvbYIRd3d3dy5iYWlkdS5j
b20uY24wPgYDVR0gBDcwNTAzBgZngQwBAgIwKTAnBggrBgEFBQcCARYbaHR0cDov
L3d3dy5kaWdpY2VydC5jb20vQ1BTMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAU
BggrBgEFBQcDAQYIKwYBBQUHAwIwXAYDVR0fBFUwUzBRoE+gTYZLaHR0cDovL2Ny
bC5kaWdpY2VydC5jbi9EaWdpQ2VydFNlY3VyZVNpdGVQcm9HMlRMU0NOUlNBNDA5
NlNIQTI1NjIwMjJDQTEuY3JsMIGSBggrBgEFBQcBAQSBhTCBgjAjBggrBgEFBQcw
AYYXaHR0cDovL29jc3AuZGlnaWNlcnQuY24wWwYIKwYBBQUHMAKGT2h0dHA6Ly9j
YWNlcnRzLmRpZ2ljZXJ0LmNuL0RpZ2lDZXJ0U2VjdXJlU2l0ZVByb0cyVExTQ05S
U0E0MDk2U0hBMjU2MjAyMkNBMS5jcnQwDAYDVR0TAQH/BAIwADCCAX4GCisGAQQB
1nkCBAIEggFuBIIBagFoAHYADleUvPOuqT4zGyyZB7P3kN+bwj1xMiXdIaklrGHF
TiEAAAGU+RfM4wAABAMARzBFAiBBJjCKso+A6d+o0MMRnWEpYq5dMR2DuJo6mJk+
HDIFvAIhAMtz1Ix2SIlFew3WPahi1YnH5LhZjcfMmBtWxWeeq8FtAHYAZBHEbKQS
7KeJHKICLgC8q08oB9QeNSer6v7VA8l9zfAAAAGU+RfNIAAABAMARzBFAiB6FmgL
IFKV+n4Ook6Z7ngweREUpJhRVjQQ8d4Huss9OQIhAM+HihT8LiftaPkbNUaLkOO8
FkKMSOAFL1Fi82T53fEaAHYASZybad4dfOz8Nt7Nh2SmuFuvCoeAGdFVUvvp6ynd
+MMAAAGU+RfNOQAABAMARzBFAiBf0Fj9+VSVmJIvrjVeSa/Jppcrw52PvqWOQaRS
H9OnrAIhAJvSf8uTVrt5wJV9nCLXNM9lM7KzieAedSpt1Z/m8uqEMA0GCSqGSIb3
DQEBCwUAA4ICAQBmsknr6XATyiEkC9+l6Vd1rOIoZuNnyVUXgSNe4FIeIxRgV7yK
Nua2y94uQHB5CkbCh2NIupM5fftAKBdyeTlW1eqCLsNVXTxcaR/C+NDFIsRp98r7
Izv4fFcaa5HQc86GFD4yMI3sBea2BP0ceUnEXSUMPr5vM7+6VVi2vBrgDHRTxyfr
8ZzsvYutyL04lsQFsIIJ21luAvVRIpA9UMj43Y3KMOLsQnjsoicRmLbf1FWm5M/y
kl+Os7IWwqbaILjJr9dkgDUFYTifRcVdehxirb2lafvtTm6pSBZvfdAlADvVtdPO
DopU2AePbhtmOqI3xqNtzubtPFYmH/tA7ROZwtrAsZXh2+cgdo5DA5oK1zFCuv1X
QBdDvAOdxGyZDNI4qVxmSn1XnAj4344W8GpLW3qWc5GmS75Sl2jPzUcijqqHIsLg
PKU9vfPfItlnAVLEQUZLZ1VDWcCR/rzvYXdqNHfSF2XKzY0BO+SgZ16GPf75rDlC
Qa8ZjQcaG4l5pXDdHqfUobC0lXxOFlrUuL7VbQ9xdfszctPbRWjWcRchiu/+2b/0
6vSIZwGzlvHum1/fr0jzzb1NH7+0ripdYSZpr5bkH55FiYV+TfSWvzk3iXx+QHQH
79ciq5i7ls8IId2SNzcJ6r/SqN03ukj3oOUC0Y3r+whc7f28H5jK/uf/0g==
-----END CERTIFICATE-----
subject=C = CN, ST = \E5\8C\97\E4\BA\AC\E5\B8\82, O = "BeiJing Baidu Netcom Science Technology Co., Ltd", CN = www.baidu.cn

issuer=C = US, O = "DigiCert, Inc.", CN = DigiCert Secure Site Pro G2 TLS CN RSA4096 SHA256 2022 CA1

---
No client certificate CA names sent
Peer signing digest: SHA512
Peer signature type: RSA
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 5531 bytes and written 338 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: 8528DF68F938AD4BDFBB93769E99CB39D10D5F6052DD606D0C3C32BCA0152D45
    Session-ID-ctx: 
    Master-Key: BB69A85A7F9DB25C7C8FE1BB68D33D5987CE4F7BCBD321189485952B396E5994CE35DC49BD5A2E0CA19C5B1436499705
    PSK identity: None
    PSK identity hint: None
    TLS session ticket lifetime hint: 72000 (seconds)
    TLS session ticket:
    0000 - f3 5a 68 38 69 0a 42 7e-86 4a ba 21 56 60 9a 0e   .Zh8i.B~.J.!V`..
    0010 - 62 0c f2 2e e4 cb 47 98-2d 24 92 9f c0 a6 65 a2   b.....G.-$....e.
    0020 - b6 2b 0c cf bc c5 0b 58-d9 77 88 6e 84 f0 0e dd   .+.....X.w.n....
    0030 - 55 a0 3c 88 37 d2 af 93-aa e1 3a c6 74 0d 42 19   U.<.7.....:.t.B.
    0040 - e1 a8 11 29 85 47 82 d5-1b 2b 4d d1 98 50 fb e5   ...).G...+M..P..
    0050 - c3 b0 5a 6d f3 c2 eb 61-2e 77 05 e4 70 b6 53 66   ..Zm...a.w..p.Sf
    0060 - fd 6c 53 0e f0 56 a1 27-90 49 c0 ca 3a 3c 3e b5   .lS..V.'.I..:<>.
    0070 - b7 58 6a f6 ac 25 4b 97-82 28 6c d0 0b 8f 4f 85   .Xj..%K..(l...O.
    0080 - 4b be 10 76 f7 6e 32 4d-f3 0b 33 d9 8c 8b fd de   K..v.n2M..3.....
    0090 - a1 61 2e 76 8c 7f 49 e7-5b a2 cc 60 44 99 eb 02   .a.v..I.[..`D...
    00a0 - 43 4f fe b8 5d a1 5b 8c-27 fc 15 1f b9 af 4d 6a   CO..].[.'.....Mj

    Start Time: 1747984221
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---
DONE
</pre>

 <div class="org-src-container">
 <pre class="src src-shell">openssl s_client -crlf -connect microsoft.com:443 </dev/null 2>&1
</pre>
</div>

 <pre class="example" id="org6d5a8a3">
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2
verify return:1
depth=1 C = US, O = Microsoft Corporation, CN = Microsoft Azure RSA TLS Issuing CA 07
verify return:1
depth=0 C = US, ST = WA, L = Redmond, O = Microsoft Corporation, CN = microsoft.com
verify return:1
CONNECTED(00000008)
---
Certificate chain
 0 s:C = US, ST = WA, L = Redmond, O = Microsoft Corporation, CN = microsoft.com
   i:C = US, O = Microsoft Corporation, CN = Microsoft Azure RSA TLS Issuing CA 07
 1 s:C = US, O = Microsoft Corporation, CN = Microsoft Azure RSA TLS Issuing CA 07
   i:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIX/jCCFeagAwIBAgITMwHcJgjNfZPjbA8h7QAAAdwmCDANBgkqhkiG9w0BAQwF
ADBdMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
MS4wLAYDVQQDEyVNaWNyb3NvZnQgQXp1cmUgUlNBIFRMUyBJc3N1aW5nIENBIDA3
MB4XDTI1MDUxMjA1MDIyNVoXDTI1MTEwODA1MDIyNVowZDELMAkGA1UEBhMCVVMx
CzAJBgNVBAgTAldBMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
ZnQgQ29ycG9yYXRpb24xFjAUBgNVBAMTDW1pY3Jvc29mdC5jb20wggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmPRwEUpxujh+9TnkarQyW6a1gJWsNVHFa
vDX0Xhf0+7Hd+67bhGfGJHkx6h75E4tuFAX4eWDgrTV99RiSbheCKfBzkJFcrBxd
W9Ag30KfjmBimuNIIGSwaTu7RbBhkzSncR9G743xZR97ZrRv9AppKRp/ilvuRjwC
ai76GWNfATPjveWL9H6gGexDNgiyzaioYozykp11u94fJvTIHlExtfoVeMKkQYhH
iGZ5PWGEzYhj8YIXFlu/neT1tGjNzsdP6HAfR1l2G4RYI1Jd6F9hBR7W+HmpBxHO
o9Tio0rn7CwNcrj2zgxANRGVu07JLyCWvAo6ncSntLKLGI8luCIBAgMBAAGjghOu
MIITqjCCAX4GCisGAQQB1nkCBAIEggFuBIIBagFoAHYA3dzKNJXX4RYF55Uy+sef
+D0cUN/bADoUEnYKLKy7yCoAAAGWwuilLwAABAMARzBFAiEAvC6oatUhqBkjpW4Q
U4e3Y/e1fAhkT5H+NeHb3JgZu8ICICHV4M+ti4V8kZZd9MkBWeRibL3/5QFK+n2b
9UafMAFvAHYAfVkeEuF4KnscYWd8Xv340IdcFKBOlZ65Ay/ZDowuebgAAAGWwuil
oQAABAMARzBFAiEAv4ISi9QSpwj+z6Na5vlUMrKKLewAZaxxfcK4UUX7mOECIFSB
XJs6CF7txFWvx311RDs14PiK0/4Gp2hA0PRAU5/KAHYAEvFONL1TckyEBhnDjz96
E/jntWKHiJxtMAWE6+WGJjoAAAGWwuilCwAABAMARzBFAiEAzNMr40YnIDI36H7N
3oGbJfP2z6oPFBxPwGUMy4eiCkQCIADGUTflg/VNEXbkn5ca+ZIpK1G1FdtlBV4/
HjGlmwwkMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwIwCgYIKwYBBQUHAwEw
PAYJKwYBBAGCNxUHBC8wLQYlKwYBBAGCNxUIh73XG4Hn60aCgZ0ujtAMh/DaHV2C
q+cwh+3xHwIBZAIBLTCBtAYIKwYBBQUHAQEEgacwgaQwcwYIKwYBBQUHMAKGZ2h0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIw
QXp1cmUlMjBSU0ElMjBUTFMlMjBJc3N1aW5nJTIwQ0ElMjAwNyUyMC0lMjB4c2ln
bi5jcnQwLQYIKwYBBQUHMAGGIWh0dHA6Ly9vbmVvY3NwLm1pY3Jvc29mdC5jb20v
b2NzcDAdBgNVHQ4EFgQUUCq83upFRUuEEK81AUCWJKa+WzUwDgYDVR0PAQH/BAQD
AgWgMIIPtQYDVR0RBIIPrDCCD6iCDW1pY3Jvc29mdC5jb22CD3MubWljcm9zb2Z0
LmNvbYIQZ2EubWljcm9zb2Z0LmNvbYIRYWVwLm1pY3Jvc29mdC5jb22CEWFlci5t
aWNyb3NvZnQuY29tghFncnYubWljcm9zb2Z0LmNvbYIRaHVwLm1pY3Jvc29mdC5j
b22CEW1hYy5taWNyb3NvZnQuY29tghFta2IubWljcm9zb2Z0LmNvbYIRcG1lLm1p
Y3Jvc29mdC5jb22CEXBtaS5taWNyb3NvZnQuY29tghFyc3MubWljcm9zb2Z0LmNv
bYIRc2FyLm1pY3Jvc29mdC5jb22CEXRjby5taWNyb3NvZnQuY29tghJmdXNlLm1p
Y3Jvc29mdC5jb22CEmllYWsubWljcm9zb2Z0LmNvbYISbWFjMi5taWNyb3NvZnQu
Y29tghJtY3NwLm1pY3Jvc29mdC5jb22CEm9wZW4ubWljcm9zb2Z0LmNvbYISc2hv
cC5taWNyb3NvZnQuY29tghJzcHVyLm1pY3Jvc29mdC5jb22CE2l0cHJvLm1pY3Jv
c29mdC5jb22CE21hbmdvLm1pY3Jvc29mdC5jb22CE211c2ljLm1pY3Jvc29mdC5j
b22CE3B5bWVzLm1pY3Jvc29mdC5jb22CE3N0b3JlLm1pY3Jvc29mdC5jb22CFGFl
dGhlci5taWNyb3NvZnQuY29tghRhbGVydHMubWljcm9zb2Z0LmNvbYIUZGVzaWdu
Lm1pY3Jvc29mdC5jb22CFGdhcmFnZS5taWNyb3NvZnQuY29tghRnaWdqYW0ubWlj
cm9zb2Z0LmNvbYIUbXNjdGVjLm1pY3Jvc29mdC5jb22CFG9ubGluZS5taWNyb3Nv
ZnQuY29tghRzdHJlYW0ubWljcm9zb2Z0LmNvbYIVYWZmbGluay5taWNyb3NvZnQu
Y29tghVjb25uZWN0Lm1pY3Jvc29mdC5jb22CFWRldmVsb3AubWljcm9zb2Z0LmNv
bYIVZG9tYWlucy5taWNyb3NvZnQuY29tghVleGFtcGxlLm1pY3Jvc29mdC5jb22C
FW1hZGVpcmEubWljcm9zb2Z0LmNvbYIVbXNkbmlzdi5taWNyb3NvZnQuY29tghVt
c3ByZXNzLm1pY3Jvc29mdC5jb22CFXd3dy5hZXAubWljcm9zb2Z0LmNvbYIVd3d3
LmFlci5taWNyb3NvZnQuY29tghV3d3diZXRhLm1pY3Jvc29mdC5jb22CFmJ1c2lu
ZXNzLm1pY3Jvc29mdC5jb22CFmVtcHJlc2FzLm1pY3Jvc29mdC5jb22CFmxlYXJu
aW5nLm1pY3Jvc29mdC5jb22CFm1zZG53aWtpLm1pY3Jvc29mdC5jb22CFm9wZW5u
ZXNzLm1pY3Jvc29mdC5jb22CFnBpbnBvaW50Lm1pY3Jvc29mdC5jb22CFnNuYWNr
Ym94Lm1pY3Jvc29mdC5jb22CFnNwb25zb3JzLm1pY3Jvc29mdC5jb22CFnN0YXRp
b25xLm1pY3Jvc29mdC5jb22CF2Fpc3Rvcmllcy5taWNyb3NvZnQuY29tghdjb21t
dW5pdHkubWljcm9zb2Z0LmNvbYIXY3Jhd2xtc2RuLm1pY3Jvc29mdC5jb22CF2lv
dHNjaG9vbC5taWNyb3NvZnQuY29tghdtZXNzZW5nZXIubWljcm9zb2Z0LmNvbYIX
bWluZWNyYWZ0Lm1pY3Jvc29mdC5jb22CGGJhY2tvZmZpY2UubWljcm9zb2Z0LmNv
bYIYZW50ZXJwcmlzZS5taWNyb3NvZnQuY29tghhpb3RjZW50cmFsLm1pY3Jvc29m
dC5jb22CGHBpbnVuYmxvY2subWljcm9zb2Z0LmNvbYIYcmVyb3V0ZTQ0My5taWNy
b3NvZnQuY29tghljb21tdW5pdGllcy5taWNyb3NvZnQuY29tghlleHBsb3JlLXNt
Yi5taWNyb3NvZnQuY29tghlleHByZXNzaW9ucy5taWNyb3NvZnQuY29tghlvbmRl
cm5lbWVycy5taWNyb3NvZnQuY29tghl0ZWNoYWNhZGVteS5taWNyb3NvZnQuY29t
ghl0ZXJyYXNlcnZlci5taWNyb3NvZnQuY29tghpjb21tdW5pdGllczIubWljcm9z
b2Z0LmNvbYIaY29ubmVjdGV2ZW50Lm1pY3Jvc29mdC5jb22CGmRhdGFwbGF0Zm9y
bS5taWNyb3NvZnQuY29tghplbnRyZXByZW5ldXIubWljcm9zb2Z0LmNvbYIaaHhk
LnJlc2VhcmNoLm1pY3Jvc29mdC5jb22CGm1zcGFydG5lcmlyYS5taWNyb3NvZnQu
Y29tghpteWRhdGFoZWFsdGgubWljcm9zb2Z0LmNvbYIab2VtY29tbXVuaXR5Lm1p
Y3Jvc29mdC5jb22CGnJlYWwtc3Rvcmllcy5taWNyb3NvZnQuY29tghp3d3cuZm9y
bXNwcm8ubWljcm9zb2Z0LmNvbYIbZnV0dXJlZGVjb2RlZC5taWNyb3NvZnQuY29t
ght1cGdyYWRlY2VudGVyLm1pY3Jvc29mdC5jb22CHGxlYXJuYW5hbHl0aWNzLm1p
Y3Jvc29mdC5jb22CHG9ubGluZWxlYXJuaW5nLm1pY3Jvc29mdC5jb22CHWJ1c2lu
ZXNzY2VudHJhbC5taWNyb3NvZnQuY29tgh1jbG91ZC1pbW1lcnNpb24ubWljcm9z
b2Z0LmNvbYIdc3R1ZGVudHBhcnRuZXJzLm1pY3Jvc29mdC5jb22CHmFuYWx5dGlj
c3BhcnRuZXIubWljcm9zb2Z0LmNvbYIeYnVzaW5lc3NwbGF0Zm9ybS5taWNyb3Nv
ZnQuY29tgh5leHBsb3JlLXNlY3VyaXR5Lm1pY3Jvc29mdC5jb22CHmtsZWludW50
ZXJuZWhtZW4ubWljcm9zb2Z0LmNvbYIecGFydG5lcmNvbW11bml0eS5taWNyb3Nv
ZnQuY29tgh9leHBsb3JlLW1hcmtldGluZy5taWNyb3NvZnQuY29tgh9pbm5vdmF0
aW9uY29udGVzdC5taWNyb3NvZnQuY29tgh9wYXJ0bmVyaW5jZW50aXZlcy5taWNy
b3NvZnQuY29tgh9waG9lbml4Y2F0YWxvZ3VhdC5taWNyb3NvZnQuY29tgh9zemtv
bHlwcnp5c3psb3NjaS5taWNyb3NvZnQuY29tgh93d3cucG93ZXJhdXRvbWF0ZS5t
aWNyb3NvZnQuY29tgiBzdWNjZXNzaW9ucGxhbm5pbmcubWljcm9zb2Z0LmNvbYIi
bHVtaWFjb252ZXJzYXRpb25zdWsubWljcm9zb2Z0LmNvbYIjc3VjY2Vzc2lvbnBs
YW5uaW5ndWF0Lm1pY3Jvc29mdC5jb22CJGJ1c2luZXNzbW9iaWxpdHljZW50ZXIu
bWljcm9zb2Z0LmNvbYIlc2t5cGVhbmR0ZWFtcy5mYXN0dHJhY2subWljcm9zb2Z0
LmNvbYInd3d3Lm1pY3Jvc29mdGRsYXBhcnRuZXJvdy5taWNyb3NvZnQuY29tgihj
b21tZXJjaWFsYXBwY2VydGlmaWNhdGlvbi5taWNyb3NvZnQuY29tgil3d3cuc2t5
cGVhbmR0ZWFtcy5mYXN0dHJhY2subWljcm9zb2Z0LmNvbYIiY2VvY29ubmVjdGlv
bnMuZXZlbnQubWljcm9zb2Z0LmNvbYIYYml6NGFmcmlrYS5taWNyb3NvZnQuY29t
ghZjYXNoYmFjay5taWNyb3NvZnQuY29tghp3d3cuY2FzaGJhY2subWljcm9zb2Z0
LmNvbYITdmlzaW8ubWljcm9zb2Z0LmNvbYIXaW5zaWRlbXNyLm1pY3Jvc29mdC5j
b22CH2RldmVsb3BlcnZlbG9jaXR5YXNzZXNzbWVudC5jb22CI3d3dy5kZXZlbG9w
ZXJ2ZWxvY2l0eWFzc2Vzc21lbnQuY29tggpnZWFyczUuY29tgg53d3cuZ2VhcnM1
LmNvbYIUd3d3LmdlYXJzdGFjdGljcy5jb22CEGdlYXJzdGFjdGljcy5jb22CEW0x
Mi5taWNyb3NvZnQuY29tggxzZWVpbmdhaS5jb22CGHlvdXJjaG9pY2UubWljcm9z
b2Z0LmNvbYIZbXZ0ZC5ldmVudHMubWljcm9zb2Z0LmNvbYIVaW1hZ2luZS5taWNy
b3NvZnQuY29tghBtaWNyb3NvZnQuY29tLmF1ghR3d3cubWljcm9zb2Z0LmNvbS5h
dYIWZHluYW1pY3MubWljcm9zb2Z0LmNvbYIbcG93ZXJwbGF0Zm9ybS5taWNyb3Nv
ZnQuY29tghdwb3dlcmFwcHMubWljcm9zb2Z0LmNvbYIbcG93ZXJhdXRvbWF0ZS5t
aWNyb3NvZnQuY29tgiBwb3dlcnZpcnR1YWxhZ2VudHMubWljcm9zb2Z0LmNvbYIY
cG93ZXJwYWdlcy5taWNyb3NvZnQuY29tgh90ZXN0LmlkZWFzLmZhYnJpYy5taWNy
b3NvZnQuY29tghFzZHMubWljcm9zb2Z0LmNvbYIVcHBlLnNkcy5taWNyb3NvZnQu
Y29tght3d3cubWljcm9zb2Z0MzY1Y29waWxvdC5jb22CEHd3dy5qY2xhcml0eS5j
b22CG3RlY2hpbm5vdmF0b3Jzc3BvdGxpZ2h0LmNvbYIfd3d3LnRlY2hpbm5vdmF0
b3Jzc3BvdGxpZ2h0LmNvbYIKY29waWxvdC5haYIVZ2V0bGljZW5zaW5ncmVhZHku
Y29tghl3d3cuZ2V0bGljZW5zaW5ncmVhZHkuY29tghRqcG4uZGVsdmUub2ZmaWNl
LmNvbYIUYXVzLmRlbHZlLm9mZmljZS5jb22CFGluZC5kZWx2ZS5vZmZpY2UuY29t
ghRrb3IuZGVsdmUub2ZmaWNlLmNvbYIWY29icmEubWUubWljcm9zb2Z0LmNvbYIX
d3d3LmJ1c2luZXNzY2VudHJhbC5jb22CE2J1c2luZXNzY2VudHJhbC5jb22CHG1z
YWlkYXRhc3R1ZGlvLm9mZmljZXBwZS5uZXSCGmlkZWFzLmZhYnJpYy5taWNyb3Nv
ZnQuY29tggx3d3cuY3B0LmxpbmuCCGNwdC5saW5rggx5YXJwLmRvdC5uZXSCE21p
Y3Jvc29mdHN0cmVhbS5jb22CF3d3dy5taWNyb3NvZnRzdHJlYW0uY29tghd3ZWIu
bWljcm9zb2Z0c3RyZWFtLmNvbYITZGlzY292ZXIuY29waWxvdC5haYILY29waWxv
dC5jb22CD3d3dy5jb3BpbG90LmNvbYIUZGlzY292ZXIuY29waWxvdC5jb20wDAYD
VR0TAQH/BAIwADBqBgNVHR8EYzBhMF+gXaBbhllodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBBenVyZSUyMFJTQSUyMFRMUyUy
MElzc3VpbmclMjBDQSUyMDA3LmNybDBmBgNVHSAEXzBdMFEGDCsGAQQBgjdMg30B
ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz
L0RvY3MvUmVwb3NpdG9yeS5odG0wCAYGZ4EMAQICMB8GA1UdIwQYMBaAFM4VFjvq
AqOma9rZK/3ljFK+elCoMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAN
BgkqhkiG9w0BAQwFAAOCAgEAD8oUKPFC+F7mlKiS+ZiX/OpuhS9Uhy6fCrlN7avs
5AkeUsrZ9B7pgmunvmtHU0xwPHb+I9coX81VKBUsyz+z8hPfSE/6xEyhXSN8EW8q
+9DWT/n/icMFxKvoehMFU9zgmvpdg5oVa210nABLeGqL6k0ajZHXLBA1msYDdvUa
FVHP+JKVrvcxBaDSiD5f29KoU6bwRQ9+8MoTA5hFn2RzDVV+FZ+sCnYRoVTxYtvZ
Ecl7vAAWkJ4hVmLD9BoxwPzjPzuak3co7XMerwqAL6twuN3+6gynGol+U5azY4IR
2AtZ8zBxl01dyLisqhS3Pm4tm3VShyCUnNZ9fJ31nNUV9ygMgHpBWnoiEB6bCa9P
YvHeV1x8c+ig+9gQybTskY/BDw4hMbJJY0wB6/aRW08dWwxVN1u2abcGBX9msizR
eBRGeqDgHx/tJFUCmAqAPfhpgrzBXVz7LppaTJ8Go+eFrbBDklBzypiw7+11PsY4
rREajvXPQ/fpkW9fO4UaEbAlOK4Uzk4JdxmmKDJsurg94m0jm9/c3wkAV3ROJII8
Jyy/4cpWjl5bHy5a5qE/vW/2O+tvydWYhWmNw9oL+1PsBnyk4lU97z4Sz7doSpzw
Gi2ZlJ19JpKaPFFyqbk01sUx3drmWpEYtB5BkpiqJl187d7NoHBuLEyJtSbLz/ub
yOI=
-----END CERTIFICATE-----
subject=C = US, ST = WA, L = Redmond, O = Microsoft Corporation, CN = microsoft.com

issuer=C = US, O = Microsoft Corporation, CN = Microsoft Azure RSA TLS Issuing CA 07

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 8147 bytes and written 379 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
DONE
</pre>

 <p>
 <b>Master-Key</b> should be an AES key.
</p>

 <p>
TLS has a feature for PSK (pre-shared key), which is almost never used.
</p>

 <p>
TLS has a feature for passwords (SRP), and I have also not seen it being used.
</p>
</div>
</div>



 <div id="outline-container-Making-CSR" class="outline-3">
 <h3 id="Making-CSR"> <span class="section-number-3">2.8.</span>  <a href="#Making-CSR">Making CSR</a></h3>
 <div class="outline-text-3" id="text-Making-CSR">
 <pre class="example" id="orgd042be5">
[ req ] # necessary ?
prompt = no # no interactive
default_keyfile = my-server.net.key
distinguished_name = req_distinguished_name # refers to a section name
req_extensions = v3_req # also section name

[ req_distinguished_name ]
CN = my-server.net # legacy

[ v3_req ]
subjectAltName = @alt_names

[alt_names]
DNS.1 = my-server.net
DNS.3 = www.my-server.net
IP.1  = 127.0.0.1
</pre>

 <p>
 <b>List ecdsa parameters</b>
</p>

 <div class="org-src-container">
 <pre class="src src-shell">openssl ecparam -list_curves
</pre>
</div>

 <pre class="example" id="orgb7db361">
secp112r1 : SECG/WTLS curve over a 112 bit prime field
secp112r2 : SECG curve over a 112 bit prime field
secp128r1 : SECG curve over a 128 bit prime field
secp128r2 : SECG curve over a 128 bit prime field
secp160k1 : SECG curve over a 160 bit prime field
secp160r1 : SECG curve over a 160 bit prime field
secp160r2 : SECG/WTLS curve over a 160 bit prime field
secp192k1 : SECG curve over a 192 bit prime field
secp224k1 : SECG curve over a 224 bit prime field
secp224r1 : NIST/SECG curve over a 224 bit prime field
secp256k1 : SECG curve over a 256 bit prime field
secp384r1 : NIST/SECG curve over a 384 bit prime field
secp521r1 : NIST/SECG curve over a 521 bit prime field
prime192v1: NIST/X9.62/SECG curve over a 192 bit prime field
prime192v2: X9.62 curve over a 192 bit prime field
prime192v3: X9.62 curve over a 192 bit prime field
prime239v1: X9.62 curve over a 239 bit prime field
prime239v2: X9.62 curve over a 239 bit prime field
prime239v3: X9.62 curve over a 239 bit prime field
prime256v1: X9.62/SECG curve over a 256 bit prime field
sect113r1 : SECG curve over a 113 bit binary field
sect113r2 : SECG curve over a 113 bit binary field
sect131r1 : SECG/WTLS curve over a 131 bit binary field
sect131r2 : SECG curve over a 131 bit binary field
sect163k1 : NIST/SECG/WTLS curve over a 163 bit binary field
sect163r1 : SECG curve over a 163 bit binary field
sect163r2 : NIST/SECG curve over a 163 bit binary field
sect193r1 : SECG curve over a 193 bit binary field
sect193r2 : SECG curve over a 193 bit binary field
sect233k1 : NIST/SECG/WTLS curve over a 233 bit binary field
sect233r1 : NIST/SECG/WTLS curve over a 233 bit binary field
sect239k1 : SECG curve over a 239 bit binary field
sect283k1 : NIST/SECG curve over a 283 bit binary field
sect283r1 : NIST/SECG curve over a 283 bit binary field
sect409k1 : NIST/SECG curve over a 409 bit binary field
sect409r1 : NIST/SECG curve over a 409 bit binary field
sect571k1 : NIST/SECG curve over a 571 bit binary field
sect571r1 : NIST/SECG curve over a 571 bit binary field
c2pnb163v1: X9.62 curve over a 163 bit binary field
c2pnb163v2: X9.62 curve over a 163 bit binary field
c2pnb163v3: X9.62 curve over a 163 bit binary field
c2pnb176v1: X9.62 curve over a 176 bit binary field
c2tnb191v1: X9.62 curve over a 191 bit binary field
c2tnb191v2: X9.62 curve over a 191 bit binary field
c2tnb191v3: X9.62 curve over a 191 bit binary field
c2pnb208w1: X9.62 curve over a 208 bit binary field
c2tnb239v1: X9.62 curve over a 239 bit binary field
c2tnb239v2: X9.62 curve over a 239 bit binary field
c2tnb239v3: X9.62 curve over a 239 bit binary field
c2pnb272w1: X9.62 curve over a 272 bit binary field
c2pnb304w1: X9.62 curve over a 304 bit binary field
c2tnb359v1: X9.62 curve over a 359 bit binary field
c2pnb368w1: X9.62 curve over a 368 bit binary field
c2tnb431r1: X9.62 curve over a 431 bit binary field
wap-wsg-idm-ecid-wtls1: WTLS curve over a 113 bit binary field
wap-wsg-idm-ecid-wtls3: NIST/SECG/WTLS curve over a 163 bit binary field
wap-wsg-idm-ecid-wtls4: SECG curve over a 113 bit binary field
wap-wsg-idm-ecid-wtls5: X9.62 curve over a 163 bit binary field
wap-wsg-idm-ecid-wtls6: SECG/WTLS curve over a 112 bit prime field
wap-wsg-idm-ecid-wtls7: SECG/WTLS curve over a 160 bit prime field
wap-wsg-idm-ecid-wtls8: WTLS curve over a 112 bit prime field
wap-wsg-idm-ecid-wtls9: WTLS curve over a 160 bit prime field
wap-wsg-idm-ecid-wtls10: NIST/SECG/WTLS curve over a 233 bit binary field
wap-wsg-idm-ecid-wtls11: NIST/SECG/WTLS curve over a 233 bit binary field
wap-wsg-idm-ecid-wtls12: WTLS curve over a 224 bit prime field
Oakley-EC2N-3: 
      IPSec/IKE/Oakley curve #3 over a 155 bit binary field.
      Not suitable for ECDSA.
      Questionable extension field!
Oakley-EC2N-4: 
      IPSec/IKE/Oakley curve #4 over a 185 bit binary field.
      Not suitable for ECDSA.
      Questionable extension field!
brainpoolP160r1: RFC 5639 curve over a 160 bit prime field
brainpoolP160t1: RFC 5639 curve over a 160 bit prime field
brainpoolP192r1: RFC 5639 curve over a 192 bit prime field
brainpoolP192t1: RFC 5639 curve over a 192 bit prime field
brainpoolP224r1: RFC 5639 curve over a 224 bit prime field
brainpoolP224t1: RFC 5639 curve over a 224 bit prime field
brainpoolP256r1: RFC 5639 curve over a 256 bit prime field
brainpoolP256t1: RFC 5639 curve over a 256 bit prime field
brainpoolP320r1: RFC 5639 curve over a 320 bit prime field
brainpoolP320t1: RFC 5639 curve over a 320 bit prime field
brainpoolP384r1: RFC 5639 curve over a 384 bit prime field
brainpoolP384t1: RFC 5639 curve over a 384 bit prime field
brainpoolP512r1: RFC 5639 curve over a 512 bit prime field
brainpoolP512t1: RFC 5639 curve over a 512 bit prime field
SM2       : SM2 curve over a 256 bit prime field
</pre>
</div>
</div>


 <div id="outline-container-Making-an-CA" class="outline-3">
 <h3 id="Making-an-CA"> <span class="section-number-3">2.9.</span>  <a href="#Making-an-CA">Making an CA</a></h3>
 <div class="outline-text-3" id="text-Making-an-CA">
 <p>
When looking at the following code, pay a lot of attention to the  <code>-x509</code> switch to the  <code>req</code> command.
</p>

 <pre class="example" id="orge46feb7">
-x509

This option outputs a certificate instead of a certificate request. This is typically used to generate test certificates. It is
implied by the -CA option.

This option implies the -new flag if -in is not given.

If an existing request is specified with the -in option, it is converted to a certificate; otherwise a request is created from
scratch.

Unless specified using the -set_serial option, a large random number will be used for the serial number.

Unless the -copy_extensions option is used, X.509 extensions are not copied from any provided request input file.

X.509 extensions to be added can be specified in the configuration file, possibly using the -config and -extensions options, and/or
using the -addext option.

</pre>
</div>

 <div id="outline-container-RSA-version" class="outline-4">
 <h4 id="RSA-version"> <span class="section-number-4">2.9.1.</span>  <a href="#RSA-version"> <span class="todo TODO">TODO</span> RSA version</a></h4>
 <div class="outline-text-4" id="text-RSA-version">
 <p>
This section is unfinished and does not include client generation.
</p>

 <p>
This section is config-file based, which is in theory better than just parameters, but I do not care for private use.
</p>

 <p>
How to generate a root cert:
</p>
 <div class="org-src-container">
 <pre class="src src-bash"> <span style="font-weight: bold; font-style: italic;">#</span> <span style="font-weight: bold; font-style: italic;">!bash
</span>
printf  <span style="font-style: italic;">'Hello\n'</span>

printf  <span style="font-style: italic;">'Deleting CA directory\n'</span>

rm -rf  <span style="font-style: italic;">"CA_directory"</span>

mkdir -p CA_directory/root/{certs,newcerts,crl,private,csr}

 <span style="font-weight: bold;">echo</span> 1000 > CA_directory/root/serial
 <span style="font-weight: bold;">echo</span> 1000 > CA_directory/root/crlnumber
touch CA_directory/root/index.txt

 <span style="font-weight: bold;">cd</span> CA_directory/root/

openssl req -config <(printf  <span style="font-style: italic;">'%s'</span>  <span style="font-style: italic;">'
[ca]
default_ca = CA_default # Section redirection

[ CA_default ]
dir = ./CA_directory/root
certs = $dir/certs
crl_dir = $dir/crl
new_certs_dir = $dir/newcerts # how is it different from certs?
database = $dir/index.txt
private_keys = $dir/private/ca.key.pem
certificate = $dir/certs/ca.cert.pem
crlnumber = $dir/crlnumber
crl = $dir/crl/ca.crl.pem
crl_extensions = crl_ext
cefault_crl_days = 30

name_opt = ca_default # magic?
cert_opt = ca_default # magic?
default_days = 375 # how long standard certs signed _with_this_ca_ live
preserve = no # magic
policy = policy_strict # root CA gets its policy from a section called policy_strict
# I guess that for a simpleton certificate for a personal server none of this is needed?

[ policy_strict ] # which certs a CA root can sign
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional

[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
string_mask = utf8only
default_md = sha256
x509_extensions = v3_ca
prompt = no

[ req_distinguished_name ] 
C = TS
ST = TestProvince
L = TestCity
O = TestCompany
OU = TestCompanyDepartment
CN = My CA Root Certificate

[ v3_ca ]# man openssl-x509v3_config
subjectKeyIdentifier = hash # unique code, identifying certs, hash means use a hash of the cert
authorityKeyIdentifier = keyid:always,issuer # add signing key info when signing certificates
basicConstraints = critical, CA:true, pathlen:1 # must be a CA cert, can only sign non-further-signatures certs
keyUsage = critical, digitalSignature, cRLSign, keyCertSign 

'</span>) -newkey rsa -keyout private/ca.key.pem -x509 -days 7300  <span style="font-style: italic;">\</span>
        -extensions v3_ca -out certs/ca.cert.pem -nodes
</pre>
</div>
</div>
</div>

 <div id="outline-container-A-simpler-RSA-version" class="outline-4">
 <h4 id="A-simpler-RSA-version"> <span class="section-number-4">2.9.2.</span>  <a href="#A-simpler-RSA-version">A simpler RSA version</a></h4>
 <div class="outline-text-4" id="text-A-simpler-RSA-version">
 <div class="org-src-container">
 <pre class="src src-shell">openssl req
        -x509 <span style="font-style: italic;">\</span>
        -newkey rsa -keyout ca.key.pem -out ca.cert.pem  <span style="font-style: italic;">\</span>
         -days 7300  <span style="font-style: italic;">\</span>
         -nodes  <span style="font-style: italic;">\</span>
         -subj  <span style="font-style: italic;">"/C=NL/ST=Zuid Holland/L=Rotterdam/O=ACME Corp/OU=IT Dept/CN=localhost"</span>
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-shell"> <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">generate keypair
</span>openssl req  <span style="font-style: italic;">\</span>
        -new  <span style="font-style: italic;">\</span>
        -newkey rsa -keyout client0.key -out client0.csr.pem  <span style="font-style: italic;">\</span>
        -subj  <span style="font-style: italic;">"/C=NL/ST=Zuid Holland/L=Rotterdam/O=ACME Corp/OU=IT Dept/CN=localhost"</span>  <span style="font-style: italic;">\</span>
        -nodes
 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">sign
</span>openssl x509 -req  <span style="font-style: italic;">\</span>
        -extfile <(printf  <span style="font-style: italic;">'%s'</span>  <span style="font-style: italic;">'subjectAltName = DNS:localhost,DNS:blabla.org'</span>)  <span style="font-style: italic;">\</span>
        -CA ca.cert.pem -CAkey ca.key.pem -in client0.csr.pem -out client0.cert.pem -CAcreateserial
</pre>
</div>

 <p>
The important thing is that the SAN extension is added during  <span class="underline">signing</span>, not  <span class="underline">generating</span> a keypair.
</p>
</div>
</div>

 <div id="outline-container-CA-using-ECDSA" class="outline-4">
 <h4 id="CA-using-ECDSA"> <span class="section-number-4">2.9.3.</span>  <a href="#CA-using-ECDSA">CA using ECDSA</a></h4>
 <div class="outline-text-4" id="text-CA-using-ECDSA">
 <div class="org-src-container">
 <pre class="src src-shell"> <span style="font-weight: bold; font-style: italic;">PARAM</span>=$(openssl genpkey -genparam -algorithm ec  <span style="font-style: italic;">\</span>
     -pkeyopt ec_paramgen_curve:P-256)
printf  <span style="font-style: italic;">'%s\n'</span>  <span style="font-style: italic;">"$PARAM"</span>
 openssl req  <span style="font-style: italic;">\</span>
        -x509  <span style="font-style: italic;">\</span>
        -newkey ec:<(printf  <span style="font-style: italic;">'%s\n'</span>  <span style="font-style: italic;">"$PARAM"</span>) -keyout ca.key.pem -out ca.cert.pem  <span style="font-style: italic;">\</span>
         -days 7300  <span style="font-style: italic;">\</span>
         -nodes  <span style="font-style: italic;">\</span>
         -subj  <span style="font-style: italic;">"/C=NL/ST=Zuid Holland/L=Rotterdam/O=ACME Corp/OU=IT Dept/CN=localhost"</span>

 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">generate keypair
</span>openssl req  <span style="font-style: italic;">\</span>
        -new  <span style="font-style: italic;">\</span>
        -newkey ec:<(printf  <span style="font-style: italic;">'%s'</span>  <span style="font-style: italic;">"$PARAM"</span>) -keyout client0.key -out client0.csr.pem  <span style="font-style: italic;">\</span>
        -subj  <span style="font-style: italic;">"/C=NL/ST=Zuid Holland/L=Rotterdam/O=ACME Corp/OU=IT Dept/CN=localhost"</span>  <span style="font-style: italic;">\</span>
        -nodes
 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">sign
</span>openssl x509 -req  <span style="font-style: italic;">\</span>
        -extfile <(printf  <span style="font-style: italic;">'%s'</span>  <span style="font-style: italic;">'subjectAltName = DNS.1:localhost,DNS.2:blabla.org,IP.1:127.0.0.1'</span>)  <span style="font-style: italic;">\</span>
        -CA ca.cert.pem -CAkey ca.key.pem -in client0.csr.pem -CAcreateserial -out  client0.cert.pem
 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">check that it works
</span>openssl x509 -text -noout -in client0.cert.pem
</pre>
</div>
</div>
</div>
</div>
</section> <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">3.</span>  <a href="#Words"> <span class="todo TODO">TODO</span> Words</a></h2>
 <div class="outline-text-2" id="text-Words">
 <ol class="org-ol"> <li class="off"> <input type="checkbox"></input> wobble :: shaking unsystematically</li>
 <li class="off"> <input type="checkbox"></input> besotted :: enthralled, stupefied, intoxicated, befuddled</li>
 <li class="off"> <input type="checkbox"></input> snazzy :: cool and attractive</li>
 <li class="off"> <input type="checkbox"></input> fling :: throw something forcefully or carelessly</li>
 <li class="off"> <input type="checkbox"></input> willy-nilly :: without much organisation</li>
 <li class="off"> <input type="checkbox"></input> tally stick :: the ancient cryptography device – write a document on a piece of wood and cut it jigsaw-like in halves. faking a piece of wood is nearly impossible</li>
 <li class="off"> <input type="checkbox"></input> Canadian loonie :: a Canadian 1-dollar coin</li>
 <li class="off"> <input type="checkbox"></input> daft :: dumb, stupid</li>
 <li class="off"> <input type="checkbox"></input> detritus :: debris, literally pieces of rocks broken off by ice</li>
 <li class="off"> <input type="checkbox"></input> wad of paper :: not even and neat piece of paper, a clot, usually as in "wad of cash", "wad of money"</li>
 <li class="off"> <input type="checkbox"></input> pummel :: strike repeatedly with fists</li>
 <li class="off"> <input type="checkbox"></input> finagle :: obtain something by illegitimate and dishonest means</li>
</ol></div>
</section> <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">4.</span>  <a href="#Contacts"> <span class="todo TODO">TODO</span> Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-05-07_Reading-TLS-Mastery-by-Michael-W-Lucas.d/index.html"/>
  <id>https://lockywolf.net/2025-05-07_Reading-TLS-Mastery-by-Michael-W-Lucas.d/index.html</id>
  <updated>2025-05-26T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;Genetics of Genius&quot; by V.P.Efroimson.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “Genetics of Genius” by V.P.Efroimson.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a>
 <ul> <li> <a href="#Who-is-Efroimson-and-how-does-he-dare-to-discuss-whether-genius-is-genetic?">1.1. Who is Efroimson and how does he dare to discuss whether genius is genetic?</a></li>
 <li> <a href="#Genetics-of-the-social-behaviour.">1.2. Genetics of the social behaviour.</a></li>
 <li> <a href="#What-are-Efroimson's-argument-against-this-obvious-Anti-Utopian-conclusion?">1.3. What are Efroimson’s argument against this obvious Anti-Utopian conclusion?</a></li>
 <li> <a href="#What-are-geniuses?">1.4. What are geniuses?</a></li>
 <li> <a href="#How-do-geniuses-benefit-societies?">1.5. How do geniuses benefit societies?</a></li>
 <li> <a href="#What-kinds-of-geniuses-are-there?-How-to-spot-a-genius?">1.6. What kinds of geniuses are there? How to spot a genius?</a></li>
 <li> <a href="#Making-geniuses">1.7. Making geniuses</a></li>
 <li> <a href="#Conclusion">1.8. Conclusion</a></li>
</ul></li>
 <li> <a href="#Contacts-and-blurb">2. Contacts and blurb</a></li>
</ul></div>
</nav> <figure id="orgc902c26"> <img src="./001_book-cover-BOOK-35168-large.jpg" alt="001_book-cover-BOOK-35168-large.jpg"></img></figure> <p>
I have read “Genetics of Genius” by Vladimir Efroimson.
</p>

 <p>
This is a book has, seemingly, never been translated into any language other than Russian, so this review/summary might end up being interesting to the non-Russian audience.
</p>

 <p>
This book is about genetic factors which seem to be associated with highly-intense brain activity, which is the way Efroimson is defining genius.
</p>

 <p>
Throughout the book the is analysing an impressive amount of historic figures who are universally recognised to be geniuses or close to geniuses, building his own research on both the previously published genius surveys, and on his own studies of the biographies of insofar not closely examined historic figures.
</p>

 <p>
Thereupon he presents his theory of identifying, selecting, and nurturing geniuses in a society.
</p>

 <p>
Those interested are welcome under the cut.
</p>

 <p>

</p>

 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
</div>

 <div id="outline-container-Who-is-Efroimson-and-how-does-he-dare-to-discuss-whether-genius-is-genetic?" class="outline-3">
 <h3 id="Who-is-Efroimson-and-how-does-he-dare-to-discuss-whether-genius-is-genetic?"> <span class="section-number-3">1.1.</span>  <a href="#Who-is-Efroimson-and-how-does-he-dare-to-discuss-whether-genius-is-genetic?">Who is Efroimson and how does he dare to discuss whether genius is genetic?</a></h3>
 <div class="outline-text-3" id="text-Who-is-Efroimson-and-how-does-he-dare-to-discuss-whether-genius-is-genetic?">
 <p>
Even the people brought up in the West, who have never heard about Efroimson, have probably heard about Lysenkoism, that is an organised socio-scientific campaign to discredit and defund genetics.
Efroimson was one of the geneticist denounced and condemned during that campaign.
He was condemned to years of imprisonment in the GULAG, but survived, was later released, had his doctoral degree restored, and continued working until very old age.
</p>

 <p>
During his lifetime, the most inconspicuous of his results were published, and the main works of  life “Genetics of Genius”, “Genetics of Ethics and Aesthetics”, and “Pedagogical Genetics” were published much later than they were written, during the Perestroyka.
Even so, he managed to release more than a hundred scientific papers, dedicated to the application of genetics in agriculture.
</p>

 <p>
He also worked in the Research Institute for Vaccines and Serums in Moscow, and had obtained a doctoral and habilitation degrees.
</p>


 <figure id="org4069557"> <img src="./002_niivs-XXXL.jpg" alt="002_niivs-XXXL.jpg"></img></figure> <p>
(I have my own very tender relationship with NIIVS.)
</p>
</div>
</div>

 <div id="outline-container-Genetics-of-the-social-behaviour." class="outline-3">
 <h3 id="Genetics-of-the-social-behaviour."> <span class="section-number-3">1.2.</span>  <a href="#Genetics-of-the-social-behaviour.">Genetics of the social behaviour.</a></h3>
 <div class="outline-text-3" id="text-Genetics-of-the-social-behaviour.">
 <p>
When I was a kid, of course I had learnt in school that genetics had been denounced in the Soviet Union and that this denouncement had seriously impeded its development.
But I never pondered why exactly this was the case.
After all, certain areas of science were disapproved of by the government for no obvious reason whatsoever, for example, naval technologies were in a big decline in the 1960s, and aircraft carriers were only developed in the 1970 and never really got successful.
</p>

 <p>
But genetics was different in that its criticism since the very beginning was very political.
Marxist theory of development has always been premised on the idea that progress is driven by human reason alone, not on some innate characteristics.
From everyone according his abilities, to everyone according to his demands implies that those demands and abilities are not that much different among people.
</p>

 <p>
So, the Marxist promise is that everyone who works hard enough and uses the best social practices (developed through the Marxist dialectic theory, of course), has a reasonable chance to become a state ruler.
(See “Every cook should learn to govern”, by Vladimir Lenin.)
</p>


 <figure id="org07bf955"> <img src="./003_lenin-cook-state-431838.jpg" alt="003_lenin-cook-state-431838.jpg"></img></figure> <p>
Indeed, if Marxist premise of a strict domination of reason is to be combined with the laws of genetics, a totalitarian Utopia of a Kommunist state quickly starts looking like a totalitarian anti-utopia, where genes decide who is to occupy which position in a society.
</p>

 <p>
I can clearly see why Lysenko denounced genetics.
</p>
</div>
</div>

 <div id="outline-container-What-are-Efroimson's-argument-against-this-obvious-Anti-Utopian-conclusion?" class="outline-3">
 <h3 id="What-are-Efroimson's-argument-against-this-obvious-Anti-Utopian-conclusion?"> <span class="section-number-3">1.3.</span>  <a href="#What-are-Efroimson's-argument-against-this-obvious-Anti-Utopian-conclusion?">What are Efroimson’s argument against this obvious Anti-Utopian conclusion?</a></h3>
 <div class="outline-text-3" id="text-What-are-Efroimson's-argument-against-this-obvious-Anti-Utopian-conclusion?">
 <p>
Well, to me this dispute has been settled a long time ago.
Truth is truth, regardless of whether it is comfortable or not, whether it leaves a place for human conscience or not, and whether it even makes any sense.
</p>

 <p>
But Efroimson lived in the Soviet Union, and he clearly needed to add some politically correct language in order to placate the censors.
I cannot resist the pleasure of citing a few phrases:
</p>

 <blockquote>
 <p>
В «блистательно оправдавшемся» научном предвидении Маркса-Энгельса-Ленина о неизбежном абсолютном обнищании пролетариата и о «загнивании» и гибели капитализма все же не была учтена чрезвычайная гибкость этого самого капитализма, позволившая ему сквозь все кризисы проходить со всевозрастающим повышением производительности труда и ростом уровня жизни, в частности, и уровня жизни пролетариата.
</p>
</blockquote>

 <blockquote>
 <p>
В столь же «блестящем» научном предвидении Ленина о слиянии национально-освободительной борьбы с борьбой против мирового капитала не было предусмотрено то, что решительно все освободившиеся колониальные страны немедленно начнут войны гражданские, которые поглотят огромную долю накопленных национальных богатств и сотни миллионов жизней людей, а также войны «освободившихся от ига» молодых государств друг с другом. Не было предусмотрено, что большинство этих стран окажется под властью различных диктатур, «горилл» или олигархий, под властью продажного чиновничества, и что конфискация иностранных капиталовложений приведет к тому, что вместо развития собственной промышленности практически всем государствам «третьего мира» придется ввозить готовую продукцию из промышленных стран.
</p>
</blockquote>

 <p>
I am quite sure that the original text did not really have the quotation marks.
</p>

 <p>
Anyway, what does Efroimson suggest to placate communist censors?
</p>

 <p>
He effectively suggests nationalising geniuses.
Nurturing and educating geniuses is expected to provide a benefit to the society as a whole, so that, perhaps, not every cook would learn to govern a state, but every cook would benefit from a genius governing the said state.
</p>

 <p>
To his credit, he is not suggesting Eugenics, but rather carefully selecting and bringing up the geniuses which already managed to come into this life.
</p>


 <figure id="org3b356f1"> <img src="./004_glass-bead-game-91GBqSuvR1L._SL1500_.jpg" alt="004_glass-bead-game-91GBqSuvR1L._SL1500_.jpg"></img></figure></div>
</div>

 <div id="outline-container-What-are-geniuses?" class="outline-3">
 <h3 id="What-are-geniuses?"> <span class="section-number-3">1.4.</span>  <a href="#What-are-geniuses?">What are geniuses?</a></h3>
 <div class="outline-text-3" id="text-What-are-geniuses?">
 <p>
I would say that Efroimson’s definition of a genius is unconventional.
</p>

 <p>
I used to believe that a genius is a person of a highest talent, capable of creating masterpieces and great deeds.
But Efroimson reserves this description for the “talented” or “gifted”.
A genius for him is something different, even though a genius can be talented, and the most famous geniuses are talented.
</p>

 <p>
For him, a genius is someone who can spend all his efforts onto doing something professional, the one who never stops.
So being a genius is more about being industrious rather than about being clever.
</p>

 <p>
But is industriousness and inheritable genetic trait?
This is a great question!
</p>

 <p>
Even though most people would accept that talent is heritable, well, to a degree at least, most people would vehemently refuse the heritability of industriousness.
After all, aren’t we all told in school “order and structure defeat talent and chaos”, and “most of us are not prodigies, but if you work hard, you can be successful”, implying that orderliness and hard work are accessible to everyone?
</p>

 <p>
But Efroimson does not really discuss “success”.
He discusses a demonstrated ability to work beyond what a reasonable person can be expected to work and to dare to do.
</p>


 <figure id="org7a91603"> <img src="./005_thinker-Musee_Rodin_1.jpg" alt="005_thinker-Musee_Rodin_1.jpg"></img></figure></div>
</div>

 <div id="outline-container-How-do-geniuses-benefit-societies?" class="outline-3">
 <h3 id="How-do-geniuses-benefit-societies?"> <span class="section-number-3">1.5.</span>  <a href="#How-do-geniuses-benefit-societies?">How do geniuses benefit societies?</a></h3>
 <div class="outline-text-3" id="text-How-do-geniuses-benefit-societies?">
 <p>
He is claiming that societies who manage to successfully raise the percentage of geniuses to the lever permitted by the genes become vastly superior to their neighbours.
</p>

 <p>
As examples of those “genius-rich” societies he is giving: Pericles’s Greece, Carolingian Revival, Renaissance, English and German aristocracies of the 18th-19th centuries.
</p>

 <p>
He is claiming (with evidence) that in the societies which have no conditions for the growth of geniuses, geniuses also manage to emerge, and he gives plenty of examples of such geniuses, but his, perhaps, main point is that as a norm geniuses are  <span class="underline">not</span> adapted to grow in a society by themselves, and therefore need support.
Even when geniuses manage to emerge in an unfavourable society, they are usually political geniuses rather than scientific or cultural.
</p>

 <p>
 <b>What is a normal percentage of geniuses in a society?</b>
Presumably, the normal level of geniuses who manage to manifest themselves as geniuses in a society is about  <b>0.015%</b>, whereas in a society which is favourable to geniuses it is possible to increase their percentage to  <b>0.1%</b>, or even  <b>1%</b>.
Although, honestly, I am finding his argumentation dubious.
</p>


 <figure id="org6c37f86"> <img src="./006__The_School_of_Athens__by_Raffaello_Sanzio_da_Urbino.jpg" alt="006__The_School_of_Athens__by_Raffaello_Sanzio_da_Urbino.jpg"></img></figure></div>
</div>

 <div id="outline-container-What-kinds-of-geniuses-are-there?-How-to-spot-a-genius?" class="outline-3">
 <h3 id="What-kinds-of-geniuses-are-there?-How-to-spot-a-genius?"> <span class="section-number-3">1.6.</span>  <a href="#What-kinds-of-geniuses-are-there?-How-to-spot-a-genius?">What kinds of geniuses are there? How to spot a genius?</a></h3>
 <div class="outline-text-3" id="text-What-kinds-of-geniuses-are-there?-How-to-spot-a-genius?">
 <p>
He has done a colossal amount of research, surveyed lifes of hundreds of geniuses, and is basing his claims on this work.
</p>

 <p>
Most of the works is based on the pathography of historic figures, trying to find diseases, especially heritable disease, or other phylogenetic traits associated with increased intellectual activity.
</p>

 <p>
I would personally find this approach bizarre, but he does manage to find a large correlation.
</p>

 <p>
He roughly divides geniuses into 4 categories:
</p>

 <ol class="org-ol"> <li>Gout type (correlation about 15%).</li>
 <li>Bipolar type (correlation about 15%).</li>
 <li>Marfan type (some evidence).</li>
 <li>Androgenic type (indirect evidence).</li>
</ol> <p>
The first two types are the most prominent, whereas the last two types are less prominent, or, perhaps, less documented, because Marfan syndrome is fatal in many cases, and Androgenic abnormalities are hard to discern, with a sole exception of men who are “known to be extra sexually active”.
</p>

 <p>
 <b>Gout</b> geniuses “increased intellectual activity” is expected to be provoked by an increased amount of uric acid in blood.
High uric acid levels are expected to cause gout, which can sometimes be fatal, but usually is not, and is tormenting enough so that its manifestations would be documented since ancient times.
But uric acid has also been found to stimulate human activity, both physical and mental.
These people are not expected to be necessarily very smart, but they are expected to be hardworking, insistent, risking, and daring.
</p>

 <p>
He claims that a huge number of geniuses had gout, including Alexander the Great, Marcus Agrippa, Septimius Severus, Christopher Columbus, Benjamin Franklin, Alexander Hamilton, Louis XIV, Edward Gibbon, Albrecht Wallenstein, Benjamin Disraeli.
</p>

 <p>
Efroimson claims that in up to 15% of geniuses, symptoms of gout have been identified.
</p>

 <p>
 <b>Bipolar Disorder</b> manifests itself in geniuses in an atypical way.
Usually BAD (a bipolar-affective disorder) means that a person has extremely fast and strong mood swings.
In geniuses, however, BAD swings might be just as strong, but not fast at all, but rather very slow, lasting for months and even years.
The examples of BAD-type geniuses are Jonathan Swift and Nikolai Gogol, who seemed to have episodes of excessive creative activity, working without any rest, and periods of boredom and spleen, during which even their close friends considered them boring.
</p>

 <p>
As opposed to the gout-type geniuses, BAD-type geniuses are usually not military or political leaders, with the exceptions of Theodore Roosevelt and Winston Churchill, but rather are writers, scientists, composers, and painters.
</p>

 <p>
Interestingly enough, BAD-type geniuses seem to be universally sensitive to the change of seasons, being more active and productive in spring a autumn than in winter and summer.
</p>

 <p>
 <b>Mixed type</b> geniuses are those who have both gout and BAD.
To this kind of geniuses Efroimson attributes Alexander Pushkin, the pillar of Russian literature, Martin Luther, Rudolph Diesel, and a few others.
</p>

 <p>
This king of geniuses does not really deserve its own category, because it basically just combines the benefits of tireless work of hyper-uric geniuses with talents and giftedness of BAD-geniuses.
</p>

 <p>
 <b>Other kinds</b> of geniuses.
There a few other pathologies which seem to be associated with higher intellectual activity, but data are scanty: Marfanoid symptoms (long arm and legs, concave chest), Morris syndrome (XY women, in whom the SRY gene failed), and various unclear sexual hormone side-effects, and the overarching sign of “having a high forehead”.
</p>

 <p>
If his treatment of Marfanoid-type geniuses does deserve some credit (Lincoln, De Gaulle, Chukovsky) really seem to fit his description, and worth having attention to, especially since it is heritable, his treatment of genius sexuality I consider insufficient.
</p>

 <p>
Indeed, he does give some evidence that women with unusually high amount of male hormones exhibit higher intellectual activity (this is the place in the book where he is discussing women the most), and shows that “generally accepted geniuses” have sexual activity much higher than average, his treatment of men with effeminate behaviour is just nonexistent, and overall the whole chapter on sexual hormone stimulation of intellect should have deserved much more effort and attention.
</p>

 <p>
I should not be overly too critical though, human life is limited, and he spent a colossal effort on reviewing other kinds of geniuses, so perhaps this research direction should just be proclaimed open for further investigation.
</p>


 <figure id="org4bb06ae"> <img src="./007_Scherrer_jeanne_enters_orlean.jpg" alt="007_Scherrer_jeanne_enters_orlean.jpg"></img></figure></div>
</div>

 <div id="outline-container-Making-geniuses" class="outline-3">
 <h3 id="Making-geniuses"> <span class="section-number-3">1.7.</span>  <a href="#Making-geniuses">Making geniuses</a></h3>
 <div class="outline-text-3" id="text-Making-geniuses">
 <p>
Okay, if gout and BAD are making people geniuses, does it mean that you should genetically-edit your kids to have them?
Don’t answer, it is a provocative question.
Are they even a cause or an effect of being a genius?
</p>

 <p>
At the time of Efroimson, gene editing was not that widespread, I am not even sure that genetic sequencing existed.
</p>

 <p>
His ultimate goal was less ambitious technically, but more ambitious socially: raise the number of geniuses in the society to 1%.
And this can be done with no specific human programming, just with identifying geniuses (spotting the nature) and growing them up as geniuses (nurture).
</p>

 <p>
Indeed, he spends a lot of effort on discussing “genius families”: Pushkin-Tolstoy, Churchills, Ottoman sultans, Prussian kurfürsts, Bernoullis, and Medici.
They had to do both: be very accurate and picky at selecting spouses for themselves, and spend a lot of money and attention on bringing the children up, giving them the best education and exposure to the talented people around them.
</p>

 <p>
Well, sort of an unsurprising conclusion, isn’t it?
Promising genes, good upbringing, a lot of investment into education, and you have a stunning  <b>1%</b> chance of success.
Was it worth even starting to write this book?
</p>


 <figure id="org658c93e"> <img src="./007.5_dvoyka.jpg" alt="007.5_dvoyka.jpg"></img></figure></div>
</div>

 <div id="outline-container-Conclusion" class="outline-3">
 <h3 id="Conclusion"> <span class="section-number-3">1.8.</span>  <a href="#Conclusion">Conclusion</a></h3>
 <div class="outline-text-3" id="text-Conclusion">
 <p>
I cannot recommend it to just everyone to read.
The treatment of most historic figures is not actually that “genetic” in spirit, but rather feels like worshipping the historic tale formed around them during the ages.
It does feel that he loves those geniuses and feels an unfakeable attraction to them, and, well, I can understand him.
</p>

 <p>
But from scientific point of view, I am really finding the book weak-ish.
</p>

 <p>
Nevertheless, the conclusion is correct, nature and nurture are both required, and I have written down a ton of masterpieces to check on when I have time, since at least now I know that they were written by universally recognised geniuses.
</p>


 <figure id="org7ce071a"> <img src="./008_Meme-Brain.jpg" alt="008_Meme-Brain.jpg"></img></figure></div>
</div>
</section> <section id="outline-container-Contacts-and-blurb" class="outline-2"> <h2 id="Contacts-and-blurb"> <span class="section-number-2">2.</span>  <a href="#Contacts-and-blurb">Contacts and blurb</a></h2>
 <div class="outline-text-2" id="text-Contacts-and-blurb">
 <ol class="org-ol"> <li>Mail :: lockywolf at lockywolf.net</li>
 <li>Telegram ::  <a href="https://t.me/unobvious">https://t.me/unobvious</a></li>
 <li>Zhihu (cn) ::  <a href="https://www.zhihu.com/people/lockywolf">https://www.zhihu.com/people/lockywolf</a></li>
 <li>LiveJournal (ru) ::  <a href="https://dead-doomer.livejournal.com">https://dead-doomer.livejournal.com</a></li>
 <li>Wordpress (en) ::  <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></li>
 <li>Permalink ::  <a href="https://lockywolf.net/2025-05-14_Reading-Genetics-of-Genius-by-V.P.Efroimson.d/index.html">https://lockywolf.net/2025-05-14_Reading-Genetics-of-Genius-by-V.P.Efroimson.d/index.html</a></li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-05-14_Reading-Genetics-of-Genius-by-V.P.Efroimson.d/index.html"/>
  <id>https://lockywolf.net/2025-05-14_Reading-Genetics-of-Genius-by-V.P.Efroimson.d/index.html</id>
  <updated>2025-05-21T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;Bogleheads Guide to Investing&quot; by Taylor Larimore, Mel Lindauer, and Michael LeBoeuf</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “Bogleheads Guide to Investing” by Taylor Larimore, Mel Lindauer, and Michael LeBoeuf</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a>
 <ul> <li> <a href="#Where-is-the-author's-conflict-of-interest-and-what-do-they-want-you-to-believe?">1.1. Where is the author’s conflict of interest and what do they want you to believe?</a>
 <ul> <li> <a href="#Financial-conflict-of-interest">1.1.1. Financial conflict of interest</a></li>
 <li> <a href="#Ideological-conflict-of-interest">1.1.2. Ideological conflict of interest</a></li>
</ul></li>
 <li> <a href="#The-main-investment-strategy-they-suggest-and-what-it-is-good-for">1.2. The main investment strategy they suggest and what it is good for</a></li>
 <li> <a href="#Same-strategy-more-rigorously">1.3. Same strategy more rigorously</a>
 <ul> <li> <a href="#Money-enter-the-investing-system">1.3.1. Money enter the investing system</a></li>
 <li> <a href="#Taxes">1.3.2. Taxes</a></li>
 <li> <a href="#Investment-instruments">1.3.3. Investment instruments</a></li>
 <li> <a href="#Rebalancing">1.3.4. Rebalancing</a></li>
 <li> <a href="#Insurance-and-education">1.3.5. Insurance and education</a></li>
 <li> <a href="#Getting-the-money-back,-or-giving-them-to-your-children">1.3.6. Getting the money back, or giving them to your children</a></li>
</ul></li>
 <li> <a href="#Conclusion.-Where-the-book-is-inaccurate">1.4. Conclusion. Where the book is inaccurate</a></li>
</ul></li>
 <li> <a href="#Contacts-and-blurb">2. Contacts and blurb</a></li>
</ul></div>
</nav> <figure id="org41c22e9"> <img src="./000_cover.jpg" alt="000_cover.jpg"></img></figure> <p>
I have read the Bogleheads’ Guide to Investing, found it useful, and want to write down my own experience in this essay.
</p>

 <p>
Please, be aware that this review is  <span class="underline">NOT</span> an investment advice, that investing is a risky activity, and that no responsible person should trust anything written on the Internet.
</p>

 <p>
After this obligatory disclaimer, I would like to open the essay with a teaser quotation from the book:
</p>

 <blockquote>
 <p>
Through education and experience, most of us come to learn and practice certain life principles that serve us well.
</p>

 <ol class="org-ol"> <li>Don’t settle for average. Strive to be the best.</li>
 <li>Listen to your gut. What you feel in your heart is usually right.</li>
 <li>If you don’t know something, ask. Talk to an expert or hire one and let the expert handle it. This will save a lot of time and frustration.</li>
 <li>You get what you pay for. Good help is not cheap and cheap help is not good.</li>
 <li>If there is a crisis, take action. Do something to fix it.</li>
 <li>History repeats itself. The best possible predictor of future performance is past performance.</li>
</ol> <p>
Well, guess what?
Applying these principles to investing is destined to leave you poorer.
</p>
</blockquote>

 <p>
If you are feel intrigued by what these three old rich financiers have to offer you instead of those common sense truths, welcome under the cut.
</p>

 <p>

</p>

 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
</div>

 <div id="outline-container-Where-is-the-author's-conflict-of-interest-and-what-do-they-want-you-to-believe?" class="outline-3">
 <h3 id="Where-is-the-author's-conflict-of-interest-and-what-do-they-want-you-to-believe?"> <span class="section-number-3">1.1.</span>  <a href="#Where-is-the-author's-conflict-of-interest-and-what-do-they-want-you-to-believe?">Where is the author’s conflict of interest and what do they want you to believe?</a></h3>
 <div class="outline-text-3" id="text-Where-is-the-author's-conflict-of-interest-and-what-do-they-want-you-to-believe?">
 <p>
What does such a weird name “Bogleheads” mean?
Who is Bogle?
Why should I listen to his heads?
How is his strategy different from all the other investement strategies?
Why is this book called a “Guide”?
</p>

 <p>
So many questions, and none of answers them seem to be obvious enough to start reading this particular book on finance and not any other, as there is plenty.
</p>

 <p>
In fact, this book was recommended to me by a friend with a comment that it is possible to virtually ignore all the actual financial advice given in it, only look at the financial terms and the context in which the authors operate, and this would already be enough to find this book useful and understand what investing is about.
This is really the answer to the last question from the previous paragraph, why is this book called a “guide”.
It is even published by Wiley, which is a publishing house that most computer people consider to be most famous for publishing software manuals rather than financial books, even though they have a series dedicated to finance and economics.
</p>

 <p>
When reading a book, it is always a good idea to first spend a few minutes and consider which aim the author is pursuing.
Why?
Because there is a problem with literature – it affects the reader’s brain, and hence gives a disproportionate power over the reader to the author.
You see, people write books (and in general do any conscious activity) due to one of the two main reasons: they either want to brainwash you, or they want to  make money.
When reading fiction, it is unclear which case is worse, because if the author just wants to make money, he is interested in making you crave his works, and try to brainwash you into buying more of his books.
When reading non-fiction, the author is usually aiming at making you believe his cause, which may or may not be what you want, but it is usually easy to find your attitude after reading the first chapter or two.
Financial books combine the worst of both genres.
They want to both brainwash you,  <span class="underline">AND</span> make money.
And it is very tempting to brainwash you into a behaviour which brings money to the author somehow, in fact, so tempting that all of them do it.
</p>

 <p>
Does it mean that reading all financial books is worthless?
Well, alas, most of us are not inheritors of large estates, and we are children of poor fathers or uncles, who are the only people sincerely interested in our wealth, so, unfortunately, we have no option other than reading financial books.
This means, however, that we have to be very careful and very suspicious of everything the authors are claiming.
</p>
</div>

 <div id="outline-container-Financial-conflict-of-interest" class="outline-4">
 <h4 id="Financial-conflict-of-interest"> <span class="section-number-4">1.1.1.</span>  <a href="#Financial-conflict-of-interest">Financial conflict of interest</a></h4>
 <div class="outline-text-4" id="text-Financial-conflict-of-interest">
 <p>
They are partisan to the Vanguard investment company (the biggest investment company in the world), suggest using its services as the default method of implementing the proposed strategy, and are very revering the founder of the company, John C Bogle.
In fact, they are so loyal to Bogle, that they are prominent members of the investment club called “The Bogleheads”, which are generally investing in a manner proposed and advocated by the aforementioned Bogle, naturally, frequently using the products of the Bogle’s company.
</p>

 <p>
So, there  <span class="underline">IS</span> a clear conflict of interest in the book.
Does this make the book worthless?
Well, not as much as I would have expected.
In fact, most of the strict financial terms are introduced with no relationship to Vanguard whatsoever, the strategy presented has “more or less” solid mathematical foundation, to the degree possible in economics, and in most of the cases where questionable guidelines are proposed, they are supporting their claims with direct references to either Bogle, or some published research in financial economics.
</p>
</div>
</div>

 <div id="outline-container-Ideological-conflict-of-interest" class="outline-4">
 <h4 id="Ideological-conflict-of-interest"> <span class="section-number-4">1.1.2.</span>  <a href="#Ideological-conflict-of-interest">Ideological conflict of interest</a></h4>
 <div class="outline-text-4" id="text-Ideological-conflict-of-interest">
 <p>
Okay, we have dealt with their financial conflict of interest.
They are using Vanguard’s services, and they are interested in the fund having more volume, and henceforth being more stable and capable of providing more leverage.
But what is their ideological conflict of interest?
What do they want to make you to believe?
</p>

 <p>
The answer to this question is that they consider most of the financial services beyond index mutual fund investment to be akin to a scam or a gamble.
I have not yet introduced index mutual funds so far, and it is a complicated term (“index” in this case is an adjective, not a verb) , but I will speak about it later in more detail, and only mention here that an “index” funds (whatever it is) is a fairly recent invention, first introduced in 1975, one year earlier than Vanguard was founded, which naturally makes Bogle and his associates the pioneers of the “indexing” financial product, whereas the industry of financial services has a much longer history.
So, they are advocating for a “new” product to replace an “old” product, claiming that the new product is superior to the old products in a way in which a car is superior to a horse carriage.
(Even though something introduced in 1975 cannot be called sufficiently old, as for me.)
</p>

 <p>
Now, whether some tool is a necessary and sufficient tool for solving a task depends heavily on the task, and, indeed, the first disclaimer that the authors are making is that the Bogleheads strategy is  <span class="underline">NOT</span> going to make you rich overnight, and realistically is not going to make you rich ever.
Now, they are disparaging their “opponents”, the “big financial industry” by claiming that “becoming rich” is the main advertising claim of theirs.
I think that this is an overstatement, as at the moment, in my context, most of the financial industry ads, by far, are not about becoming rich, but rather about preserving current savings from being devalued by inflation.
However, I generally agree with the point that “financial industry” is akin to gambling in many respects, and that almost everyone who is proposing you to become rich overnight is a scammer.
</p>

 <p>
This alone already makes me ideologically biased with regards to this question, but hopefully I am disclosing my preferences early enough for you to see the rest of this essay through a suitable lens.
</p>

 <p>
So, while I take their proposed policy with a grain of salt, I do think that the book is a worthy read for a people who generally consider that saving is a more important part of financial industry than for getting rich quickly.
</p>
</div>
</div>
</div>

 <div id="outline-container-The-main-investment-strategy-they-suggest-and-what-it-is-good-for" class="outline-3">
 <h3 id="The-main-investment-strategy-they-suggest-and-what-it-is-good-for"> <span class="section-number-3">1.2.</span>  <a href="#The-main-investment-strategy-they-suggest-and-what-it-is-good-for">The main investment strategy they suggest and what it is good for</a></h3>
 <div class="outline-text-3" id="text-The-main-investment-strategy-they-suggest-and-what-it-is-good-for">
 <p>
The main strategy they are proposing is the following: buy an index mutual fund shares and hold them for a long time, with re-balancing of the portfolio usually not exceeding 1% per year.
</p>

 <p>
What it an “index mutual fund”?
It is a fund, sometimes traded on the stock market, sometimes not, which attempts to replicate the average behaviour of the market as a whole.
</p>

 <p>
You see why this idea makes sense?
Because the market “on average” seems to be growing.
Sometimes it grows better, sometimes grows worse, sometimes it falls, but on average it grows, and on average its growth exceeds inflation, so even if you do not earn much by holding the “shares of the whole market”, at least you do not lose.
Now it clearly starts to make sense why long-term holding is required – because the market only grows “on average”.
Certain crises do happen, and the market may fall quite a lot in a very short time.
But if your planning horizon is measured in decades, it is almost surely likely to grow back.
(This is called “Reversion To the Mean”.)
</p>

 <p>
In fact, if you live in a relatively stable country, this strategy might even make you rich, well, sort of, when you are already old, because even though on average the market does not grow that much, the money and the interest is still compounded over the years, so the growth is exponential.
</p>

 <p>
What is this strategy then good for?
What would you like to have a lot of money for when you are old?
Well, the answer is, obviously, your pension.
A-ha!
</p>

 <p>
We need to recall that Vanguard is a US company, the three authors are Americans, and the USA does not have a simple and straightforward general pension scheme akin to the ones used in the former Soviet Union.
Everyone is expected, at least in theory, save their money during lifetime, and live off their savings when old, or, in the worst case, rely on the descendants at a late age.
This is not entirely correct, as the USA has many retirement “schemes”, most of them very complicated, but overall this is true.
</p>

 <p>
So, if you were hoping that this essay would uncover certain mysteries of financial market which would open some new exciting opportunities for you, now it is the time to close the page.
This essay is really only about not having to starve to death when you are old and feeble.
</p>

 <p>
I do have, however, one argument which might make you bear with me for a little longer, which is more exciting than blunt promises of becoming rich quickly: exciting mathematics.
</p>

 <p>
Indeed, despite the fact that saying “follow the market” is easy to understand, and despite that the authors are claiming that the strategy is easy to implement, it is by far not obvious how to do this with limited capital in a fund and with low transaction costs.
Which financial products do the fund managers need to buy and when?
</p>

 <p>
You might tell me that this is the place I am lying to you.
After all, aren’t traditional stock market brokers proposing essentially the same strategy “buy low, sell high”, only differing in that they are suggesting to buy  <span class="underline">promising</span> stocks at right time, rather than trying to do some obtuse mathematical juggling in order to earn  <span class="underline">less</span>?
</p>

 <p>
Now unsurprising bit is that predicting  <span class="underline">promising</span> stocks is generally impossible, unless you really know what is happening inside the companies and the markets, which is impossible for a normal person.
The  <span class="underline">surprising</span> bit is that it  <span class="underline">IS</span> possible to emulate the market with a deterministic algorithm given a large enough fund.
This is a beautiful theorem from stochastic processes, and where there are mathematical theorems, things are usually starting to look very bleak for human performers.
</p>

 <p>
Now, there is a  <b>BIG</b> caveat here.
The “total market value” is, at the end of the day, still more or less a “stock” or a “bond” of the Planet Earth Inc.
And, just as the three Bogleheads are claiming, it is just as impossible to faithfully predict the evolution of the whole market as it is impossible to predict the evolution of a single financial instrument.
The answer to this valid opposition proposed in the book is, however, that if the whole stock market is consistently falling for so many years that it influences the final outcome of your investment, then you have bigger problems than just a failing investment plan.
</p>
</div>
</div>


 <div id="outline-container-Same-strategy-more-rigorously" class="outline-3">
 <h3 id="Same-strategy-more-rigorously"> <span class="section-number-3">1.3.</span>  <a href="#Same-strategy-more-rigorously">Same strategy more rigorously</a></h3>
 <div class="outline-text-3" id="text-Same-strategy-more-rigorously">
 <p>
The strategy when presented more formally amount to the following:
</p>

 <ol class="org-ol"> <li>Moving money into a savings account.</li>
 <li>Selecting index funds to invest into (there are many), and possibly something else.</li>
 <li>Keeping paying into the savings account each month.
 <ol class="org-ol"> <li>And take into account contingencies</li>
</ol></li>
 <li>Rebalancing the portfolio when needed.</li>
 <li>Moving the money out of the account:
 <ol class="org-ol"> <li>Lump sum (buying a flat)</li>
 <li>Early fixed-term payment (education fee)</li>
 <li>Late term-less payments (pension)</li>
</ol></li>
 <li>Leaving the rest of the money to your heirs.</li>
</ol> <p>
This plan, if you look at it from a bird’s eye, seems very simple, just amounting to saving money all your life and withdrawing some of it  when you need, but even such a simple plan has many nuances, and most the 300 pages of the book are dedicated to explaining them.
</p>
</div>

 <div id="outline-container-Money-enter-the-investing-system" class="outline-4">
 <h4 id="Money-enter-the-investing-system"> <span class="section-number-4">1.3.1.</span>  <a href="#Money-enter-the-investing-system">Money enter the investing system</a></h4>
 <div class="outline-text-4" id="text-Money-enter-the-investing-system">
 <p>
The first thing to consider (and if it is the only thing you remember out of this essay, it would be already enough for me to feel proud) is the following.
If you are not investing at all, you are still investing  <span class="underline">in cash</span>, with a negative interest rate of inflation.
</p>

 <p>
Technically, if you  <span class="underline">just</span> receive your salary every month and withdraw a bit from your current account for food and clothing, you are already investing, but your money are depreciating each month, with the rate of inflation.
So, each step of the scheme above is aimed at making you lose less (or even gain something) on each of the above 6 steps.
</p>

 <p>
The book does not mention it, but, in fact you can invest into anything, which you may consider worthy.
For example, having children who are going to feed you when you are old and incapacitated is already an investment, and, in fact, quite a good one, if you manage to maintain a good relationship with your children till old age.
Buying gold bullion is also an investment, even though it is probably a very impractical one, as it is often taxed (for example with VAT), and usually with a very high tax.
</p>
</div>
</div>

 <div id="outline-container-Taxes" class="outline-4">
 <h4 id="Taxes"> <span class="section-number-4">1.3.2.</span>  <a href="#Taxes">Taxes</a></h4>
 <div class="outline-text-4" id="text-Taxes">
 <p>
Since I mentioned taxes already, I need to talk about the first point: getting money into the account.
You might think that this is simple: usually your employer just pays the money to you.
However, if you are tax-savvy, this might not be so simple.
In the USA, there are several “programs” for pension savings, which are either tax-exempt, or tax-deferred.
Exemption means that taxes are not paid at all, as long as you keep the money invested until you retire, deferred means that taxes are paid, but when you withdraw the money, not when you receive them, which allows investing the additional tax money for those decades that you keep working.
This is, a characteristically American thing, making complex systems for simple matters, but some other countries follow their examples.
(I am afraid that trusting certain Eastern countries on this matter is not a smart choice.)
</p>

 <p>
The books is also conspicuously silent on the matter, but there are circumstances when it makes no sense to invest at all.
Again, this is quite a dire situation, but it might be that the market is not growing long-term, or falling all of your life, and fund management costs are making your investment incredibly lossy.
In this case it makes sense to consume all of your income right away.
</p>

 <p>
Taxes will be mentioned again later, when rebalancing the portfolio will be discussed.
</p>
</div>
</div>

 <div id="outline-container-Investment-instruments" class="outline-4">
 <h4 id="Investment-instruments"> <span class="section-number-4">1.3.3.</span>  <a href="#Investment-instruments">Investment instruments</a></h4>
 <div class="outline-text-4" id="text-Investment-instruments">
 <p>
But given that an investment machinery works at all, people usually have the following investment vehicles:
</p>

 <ol class="org-ol"> <li>Cash</li>
 <li>Stocks</li>
 <li>Bonds/TIPS</li>
 <li>Commodity futures</li>
 <li>Property</li>
</ol> <p>
Of those two, Bogleheads do not recommend investing in property or commodities at all, because these two markets are complex and complicated.
</p>

 <p>
Cash is really the worst possible investment, but you can make it just a tiny bit better by getting the bank to pay interest on your savings account.
</p>

 <p>
This leaves us with bonds and stocks.
</p>

 <p>
Stocks are shares in companies, bonds are basically loans to the government, and sometimes to big companies.
</p>

 <p>
For an investor, both of those behave like an asset of a changing value which grows with time on average, but not necessarily instantaneously.
Theoretically, a bond has a “maturation date”, when the government takes away that bond and pays the investor back the money, but in reality the money maybe turned into cash by selling the bond on the market.
</p>

 <p>
Both kinds of assets may pay some sums of money during ownership period, for stocks those payments are called “dividends”, and for bonds they are called “coupons”.
</p>

 <p>
In practice, there is very little sense in both of those, because usually cash value can be realised immediately by selling the instrument.
In some cases they difference may matter.
</p>

 <p>
In particular, it makes very little sense to pay dividends for a company which grows, because each pound re-invested into the company increases the value of the company and its stocks, and if stock owner wants some cash, it often makes sense to sell the stock.
The companies which pay dividends are usually companies which have no space to grow further, that is when re-investing the money is unlikely to bring any profit, stagnant businesses.
</p>

 <p>
Stocks also sometimes let the owner vote at shareholder meetings, but given that most investors are likely to own tiny shares of those stocks, this usually does not matter.
</p>

 <p>
What is good about stocks and bonds is that their price is usually not correlated much.
This allows diversifying the portfolio enough so that when stocks fall in price, bonds go up, and the portfolio remains worth about the same value.
</p>

 <p>
Do you remember that there is a theorem which claims that it is possible to replicate the index performace given individual stocks and bonds, and it is even not necessary to buy  <span class="underline">all</span> possible stocks and bonds.
This is true, but it is true  <span class="underline">on average</span>.
This “on average” is not as bad as an “almost fair” game in a casino, where it is possible to win an arbitrary amount of money if you double the bet every time and play long enough, but standard deviation still matters.
</p>

 <p>
That is, in addition to replicating the market  <span class="underline">on average</span> diversifying the portfolio tries to increase the rate of convergence of the random process of the portfolio to the random process of the index “by variance”.
</p>

 <p>
This property of the portfolio allows us to give a precise mathematical definition of a “risk”.
Or, more precisely, “relative risk”, that is the relative risk that a portfolio behaves differently than the index is the standard deviation of difference of the two processes.
</p>

 <p>
 <b>Math rulez!</b>
</p>

 <p>
Bonds are generally considered less risky than stocks, and inflation-protected securities (TIPS, effectively bonds) have a risk of zero.
Do not forget that this is a  <b>relative</b> risk of zero. If the USA has a revolution and the new regime refuses to pay the TIPS returns, the value of money becomes zero.
The probability of this event is small, but non-negligible.
</p>

 <p>
Property, gold bullion, commodities, and other exotic volatile investment instruments are generally frowned upon by Bogleheads, but I would not be that dismissive about them, but I would emphasise that using them required several orders of magnitude more knowledge of the market than an ordinary investor possesses.
</p>
</div>
</div>

 <div id="outline-container-Rebalancing" class="outline-4">
 <h4 id="Rebalancing"> <span class="section-number-4">1.3.4.</span>  <a href="#Rebalancing">Rebalancing</a></h4>
 <div class="outline-text-4" id="text-Rebalancing">
 <p>
A portfolio should consist, as Bogleheads suggest, effectively only of different funds of stocks (USA, international, small companies, large companies), and bonds (Federal, Municipal, TIPS).
</p>

 <p>
There are two main reasons for rebalancing.
</p>

 <ol class="org-ol"> <li>Some of the shares of the portfolio grows too far or falls too much.</li>
 <li>You are getting older and cannot tolerate as much risk.</li>
</ol> <p>
2 is usually easy to automate – you just sell a bit of stocks and buy a bit of bonds, but 1 is harder.
</p>

 <p>
There are two main sources of problems with 1:
</p>

 <ul class="org-ul"> <li>Fees</li>
 <li>Taxes</li>
</ul> <p>
Both of this topics require extensive study, and the book goes into details about them, but to keep the essay short, I will try to summarise the main idea.
</p>

 <p>
Fees should be as low as possible, and this is where different funds compete with each other.
However, it is not always possible to keep fees as low as possible, because in addition to the convergence in  <span class="underline">mean</span> (which is guaranteed to us by the theorem), in  <span class="underline">variance</span> (which depends on the diversification of the portfolio), there is also convergence in  <span class="underline">time</span> and  <span class="underline">trading volume</span>.
The last two parameters are really evil.
Sometimes to implement the theorem the algorithm would suggest selling a large number of a stock A and buying a large number of a stock B.
Mathematically this is sound, but the transaction would incur a brokerage fee which would make it useless.
</p>

 <p>
However,  <span class="underline">not</span> selling something to avoid the fee is a two-sided sword, because if a stock appreciates, the owner has to pay a sinister thing called “capital gains tax”.
After all, technically he became richer, didn’t he?
Except this “temporary richness” is not what the balanced portfolio pursues.
Sell a stock = pay fee ; hold a stock = pay tax.
</p>

 <p>
This is where it really might be worth finding a professional to do this for you, but the problem is really to find a trader which would be faithfully enforcing the portfolio.
You see, most traders are paid  <span class="underline">as a percentage of trades</span>.
No trades = trader is not paid, and he also has wife and kids.
</p>
</div>
</div>

 <div id="outline-container-Insurance-and-education" class="outline-4">
 <h4 id="Insurance-and-education"> <span class="section-number-4">1.3.5.</span>  <a href="#Insurance-and-education">Insurance and education</a></h4>
 <div class="outline-text-4" id="text-Insurance-and-education">
 <p>
In theory, the two previous sections exhaustively present the ready-to-use strategy.
However, this strategy is quite rigid in that it does not take into account various contingencies that may happen in life.
For example you might get pregnant, which would greatly decrease your ability to make monthly contributions to the investment account.
(Which may or may not be tax-free.)
</p>

 <p>
A worse thing might happen – you might lose the ability to make money due to health issues.
The main suggestion of the book is to buy insurance.
This is a complicated topic, but it really seems that the seldom-used insurance products, such as incapacitation insurance may make a lot of sense.
</p>

 <p>
This section also has Education in the title, because in some respect paying for a child’s education is similar to insurance – a monthly fee, which in the USA is so large that saving in advance is advised.
There are various ways in the USA to pay less tax on education and healthcare insurance.
</p>
</div>
</div>

 <div id="outline-container-Getting-the-money-back,-or-giving-them-to-your-children" class="outline-4">
 <h4 id="Getting-the-money-back,-or-giving-them-to-your-children"> <span class="section-number-4">1.3.6.</span>  <a href="#Getting-the-money-back,-or-giving-them-to-your-children">Getting the money back, or giving them to your children</a></h4>
 <div class="outline-text-4" id="text-Getting-the-money-back,-or-giving-them-to-your-children">
 <p>
As I said at the beginning of the essay, this book is not really about getting rich, it is about having some money when you are old.
</p>

 <p>
For specific advice on how to start withdrawing your pension from the savings account, it is worth checking the book itself, but the ubiquitous advice of having a plan, and possibly a few different plans, contingent on how long the investor could possibly continue working, is strongly recommended.
</p>

 <p>
It does not make much sense to die a rich person, but it does make sense to leave some inheritance to your children (which they will have to deal with as with a “windfall”, to which a whole chapter is dedicated in the book) does make sense.
There are different way to do it while paying as little tax as feasible.
</p>
</div>
</div>
</div>


 <div id="outline-container-Conclusion.-Where-the-book-is-inaccurate" class="outline-3">
 <h3 id="Conclusion.-Where-the-book-is-inaccurate"> <span class="section-number-3">1.4.</span>  <a href="#Conclusion.-Where-the-book-is-inaccurate">Conclusion. Where the book is inaccurate</a></h3>
 <div class="outline-text-3" id="text-Conclusion.-Where-the-book-is-inaccurate">
 <p>
I actually liked the book.
</p>

 <p>
It introduces the basics of investment, tells a consistent story in a simple, clear language.
It was easy to find out where the math is expected to kick in, which is important for me.
It also made me re-think some of my life choices, which is always a sign of a good book.
</p>

 <p>
There were some clear drawbacks:
</p>

 <p>
 <b>It is very USA-specific.</b> Many of the issues which the authors pay particular attention to do not exist outside of the USA, and many of the tricks used to circumvent problems are also not available.
</p>

 <p>
 <b>Inflation.</b> The authors seem to have a general consensus that a portfolio should grown an average of 8% per year, and that inflation would be about 2%.
These are not the numbers I am familiar with.
I would expect inflation to be about 16%, and growth to be about 5%.
Which means that  <i>on average</i> everyone is becoming poorer, but isn’t this what we are actually seeing right now?
</p>

 <p>
 <b>Market knowledge.</b> While a single person is certainly incapable of knowing all of the market enough to “actively manage” (a technical term) a comprehensive portfolio, I suspect that some people do have enough knowledge of a market niche to roughly understand how it is going to be developing in the next few years. This claim is not refuting the  <span class="underline">Efficient Market Hypothesis</span>, because people who have enough knowledge of a niche are probably proportionally ignorant about the other niches, and moreover, they are the actual people who push market equalisation by their trades.
</p>

 <p>
Do not take this as an advice to buy some unorthodox investment instruments.
</p>
</div>
</div>
</section> <section id="outline-container-Contacts-and-blurb" class="outline-2"> <h2 id="Contacts-and-blurb"> <span class="section-number-2">2.</span>  <a href="#Contacts-and-blurb">Contacts and blurb</a></h2>
 <div class="outline-text-2" id="text-Contacts-and-blurb">
 <ol class="org-ol"> <li>Mail :: lockywolf at lockywolf.net</li>
 <li>Telegram ::  <a href="https://t.me/unobvious">https://t.me/unobvious</a></li>
 <li>Zhihu (cn) ::  <a href="https://www.zhihu.com/people/lockywolf">https://www.zhihu.com/people/lockywolf</a></li>
 <li>LiveJournal (ru) ::  <a href="https://dead-doomer.livejournal.com">https://dead-doomer.livejournal.com</a></li>
 <li>Wordpress (en) ::  <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></li>
 <li>Permalink ::  <a href="https://lockywolf.net/2025-05-03_Reading-Bogleheads-Guide-to-Investing.d/index.html">https://lockywolf.net/2025-05-03_Reading-Bogleheads-Guide-to-Investing.d/index.html</a></li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-05-03_Reading-Bogleheads-Guide-to-Investing.d/index.html"/>
  <id>https://lockywolf.net/2025-05-03_Reading-Bogleheads-Guide-to-Investing.d/index.html</id>
  <updated>2025-05-09T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Using an eBook instead of a laptop for daily work.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Using an eBook instead of a laptop for daily work.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Download-the-installation-files">1. Download the installation files</a></li>
 <li> <a href="#Install-F-Droid.">2. Install F-Droid.</a></li>
 <li> <a href="#Install-Syncthing-(or-Syncthing-Fork).">3. Install Syncthing (or Syncthing-Fork).</a></li>
 <li> <a href="#Buy-a-keyboard-and-learn-input-methods.">4. Buy a keyboard and learn input methods.</a>
 <ul> <li> <a href="#Basic-input-method">4.1. Basic input method</a>
 <ul> <li> <a href="#If-someone-finds-out-how-to-use-the-%22Chinese%22-layout-of-%22Android-Keyboard%22,-tell-me-please.">4.1.1.  <span class="todo TODO">TODO</span> If someone finds out how to use the “Chinese” layout of “Android Keyboard”, tell me please.</a></li>
</ul></li>
 <li> <a href="#Install-fcitx5.">4.2. Install fcitx5.</a></li>
</ul></li>
 <li> <a href="#Install-Conversations-from-F-Droid.">5. Install Conversations from F-Droid.</a></li>
 <li> <a href="#Install-Termux,-Emacs,-and-Connectbot.">6. Install Termux, Emacs, and Connectbot.</a>
 <ul> <li>
 <ul> <li> <a href="#Dark/light-theme-in-termux.">6.0.1. Dark/light theme in termux.</a></li>
 <li> <a href="#Proper-fonts-in-Emacs">6.0.2. Proper fonts in Emacs</a></li>
</ul></li>
 <li> <a href="#doc-view-mode">6.1. doc-view mode</a></li>
 <li> <a href="#pdf-tools">6.2. pdf-tools</a>
 <ul> <li> <a href="#Fix-pdf-tools">6.2.1. Fix pdf-tools</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Fennec-from-F-Droid-and-other-Web-Browsing.">7. Fennec from F-Droid and other Web Browsing.</a></li>
 <li> <a href="#Learn-how-to-use-the-built-in-book-reader-and-notes-program.">8. Learn how to use the built-in book reader and notes program.</a>
 <ul> <li> <a href="#Shop">8.1. Shop</a></li>
 <li> <a href="#Library">8.2. Library</a></li>
 <li> <a href="#Neoreader">8.3. Neoreader</a>
 <ul> <li> <a href="#Fixing-font-display">8.3.1. Fixing font display</a></li>
 <li> <a href="#Installing-new-fonts.">8.3.2. Installing new fonts.</a></li>
 <li> <a href="#Reading-efficiently.">8.3.3. Reading efficiently.</a></li>
 <li> <a href="#Annotation-and-reading-side-by-side.">8.3.4. Annotation and reading side-by-side.</a></li>
</ul></li>
 <li> <a href="#Notes">8.4. Notes</a>
 <ul> <li> <a href="#Find-what-the-%22tags%22-setting-does.">8.4.1.  <span class="todo TODO">TODO</span> Find what the “tags” setting does.</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Certain-peculiarities-of-using-an-eBook">9. Certain peculiarities of using an eBook</a>
 <ul> <li> <a href="#Magical-directories">9.1. Magical directories</a>
 <ul> <li> <a href="#~/sdcard/Pictures/Screenshots~">9.1.1.  <code>/sdcard/Pictures/Screenshots</code></a></li>
 <li> <a href="#/sdcard/.dedao_bookstore">9.1.2.  <span class="todo TODO">TODO</span>  <i>sdcard</i>.dedao_bookstore</a></li>
 <li> <a href="#/sdcard/.ksync">9.1.3.  <span class="todo TODO">TODO</span>  <i>sdcard</i>.ksync</a></li>
 <li> <a href="#/sdcard/.noteCache">9.1.4.  <span class="todo TODO">TODO</span>  <i>sdcard</i>.noteCache</a></li>
 <li> <a href="#/sdcard/.noteResource">9.1.5.  <span class="todo TODO">TODO</span>  <i>sdcard</i>.noteResource</a></li>
 <li> <a href="#/sdcard/Books">9.1.6.  <span class="todo TODO">TODO</span> /sdcard/Books</a></li>
 <li> <a href="#/sdcard/Push">9.1.7.  <span class="todo TODO">TODO</span> /sdcard/Push</a></li>
 <li> <a href="#/sdcard/Shop">9.1.8.  <span class="todo TODO">TODO</span> /sdcard/Shop</a></li>
 <li> <a href="#/sdcard/VoiceRecord">9.1.9.  <span class="todo TODO">TODO</span> /sdcard/VoiceRecord</a></li>
 <li> <a href="#/sdcard/WifiTransfer">9.1.10.  <span class="todo TODO">TODO</span> /sdcard/WifiTransfer</a></li>
 <li> <a href="#/sdcard/baiduTTS">9.1.11.  <span class="todo TODO">TODO</span> /sdcard/baiduTTS</a></li>
 <li> <a href="#/sdcard/dicts">9.1.12.  <span class="todo TODO">TODO</span> /sdcard/dicts</a></li>
 <li> <a href="#/sdcard/fonts">9.1.13.  <span class="todo TODO">TODO</span> /sdcard/fonts</a></li>
 <li> <a href="#/sdcard/jd_jeb_fonts">9.1.14.  <span class="todo TODO">TODO</span> /sdcard/jd_jeb_fonts</a></li>
 <li> <a href="#/sdcard/note">9.1.15.  <span class="todo TODO">TODO</span> /sdcard/note</a></li>
 <li> <a href="#/sdcard/noteTemplate">9.1.16.  <span class="todo TODO">TODO</span> /sdcard/noteTemplate</a></li>
</ul></li>
 <li> <a href="#eInk-Center">9.2. eInk Center</a>
 <ul> <li> <a href="#Refresh-modes">9.2.1. Refresh modes</a></li>
 <li> <a href="#Dark-Color-Enhancement">9.2.2. Dark Color Enhancement</a></li>
 <li> <a href="#White-Color-Filter.">9.2.3. White Color Filter.</a></li>
</ul></li>
 <li> <a href="#App-optimisation">9.3. App optimisation</a>
 <ul> <li> <a href="#Master-switch">9.3.1. Master switch</a></li>
 <li> <a href="#Others-%3EScrolling-Buttons">9.3.2.  <span class="todo TODO">TODO</span> Others->Scrolling Buttons</a></li>
 <li> <a href="#Color">9.3.3.  <span class="todo TODO">TODO</span> Color</a></li>
 <li> <a href="#Other-colors-%3E%7Bcover,icon%7D-color">9.3.4. Other colors->{cover,icon} color</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Built-in-apps">10. Built-in apps</a>
 <ul> <li> <a href="#Screen-Cast">10.1. Screen Cast</a></li>
 <li> <a href="#BooxDrop">10.2. BooxDrop</a></li>
 <li> <a href="#Monitor">10.3. Monitor</a>
 <ul> <li> <a href="#Find-a-way-to-make-Boox-Max2-work-with-an-Android-phone-over-USB-C.">10.3.1.  <span class="todo TODO">TODO</span> Find a way to make Boox Max2 work with an Android phone over USB-C.</a></li>
</ul></li>
 <li> <a href="#Miracast-Player">10.4. Miracast Player</a></li>
 <li> <a href="#Calendar">10.5. Calendar</a></li>
 <li> <a href="#VLC">10.6. VLC</a></li>
</ul></li>
 <li> <a href="#Typical-Tasks">11. Typical Tasks</a>
 <ul> <li> <a href="#TeX">11.1. TeX</a>
 <ul> <li> <a href="#Updating-to-TeXLive-2024.">11.1.1. Updating to TeXLive 2024.</a></li>
</ul></li>
 <li> <a href="#Using-TeX-from-Emacs">11.2. Using TeX from Emacs</a></li>
</ul></li>
 <li> <a href="#Install-racket-for-Scheme">12. Install racket for Scheme</a></li>
 <li> <a href="#References">13. References</a></li>
</ul></div>
</nav> <p>
 <b>BIG WARNING</b> The screenshots on this page are colourful, even though the device which this article talks a lot about is black-and-white.
This might happen to be misleading, you have been warned.
However, bluntly converting colourful images into greyscale would be even more misleading, because I cannot guarantee that the most natural conversion which (say) imagemagick does is in any way similar to what the dislay does itself, so just take the screenshots with a grain of salt.
</p>

 <p>
This HOWTO needs a bit of a motivational introduction before transitioning to the body of the howto proper.
</p>

 <p>
My first computer was an Intel 80486 with 16 Megabytes of RAM, which could run Windows 3.11.
Of course, “could run” did not mean “ran”, because, even though Windows was fun, with all its folders and drawers, it did not support, in most cases, what I considered a computer to be most useful for – games.
Even though games could, in theory, run on Windows too, it would usually consume too much RAM, so it was a safer choice to exit into the underlying DOS command-line, and run games from there.
</p>

 <p>
I am not nostalgic about that time, but there was one point which was very clear to those who remember that era: fancy features of a program do not necessarily mean it is useful for what you need.
</p>

 <p>
Since that time my daily working environment has progressed immensely.
I had a desktop computer, I had a semi-roadwarrior setup with a desktop mothership, and a lightweight laptop serving as a terminal while I am not at home.
Then the age of CGNAT came, and this has become clunky, so I have moved to an ordinary laptop, and a weak fanless server needing very little attention.
Later I became frustrated with a weak laptop being unable to run demos that I had wanted to examine to improving working efficiency, and I bought a mobile powerhouse which was good in every respect except that it was heavy and easily overheating.
Also its battery time didn’t exceed 2 hours, which was not enough for company meetings, so I bought a huge laptop powerbank, weighing two more kilos, which increased my daily backpack load to about 15 kilograms.
</p>

 <p>
I used to carry all that to work every day, and even to coffee shops where I would work during weekends, for over a year, and I could have been doing this even longer, if another fatal blow didn’t land a finishing blow to my otherwise stable setup.
I started experimenting with lightbulbs in my home, and found that classic Edison’s lightbulbs emit light so incomparably more pleasant to the eyes than the crappy LED ones, that I just knew that if I want to fix my sleeping schedule in some way, I need to fix my working environment.
</p>

 <p>
I replaced all the crappy LEDs in my flat with classic lightbulbs, which added about an hour to my daily sleeping time.
But my laptop was still a problem.
The horrible blue LED light was shining me right into the eyes during most of the day, even though I have minimised its annoyance by setting up a dark theme on my desktop.
But that made working outside nearly impossible, since even when I was ready to bear the load of 15kg backpack when going for a walk, carrying that hellish laptop powerbank with a built-in fan, working with a dark theme is basically impossible in broad daylight.
</p>

 <p>
I turned up my brain, and started to invent.
</p>

 <p>
After iterating over a few unsuccessful attempts, I found a particular setup which rendered my quality of life an order of magnitude better than it used to be, and this file is about presenting it to the broad audience.
</p>

 <p>
I bought Onyx Boox Max 2.
</p>

 <p>
It is an A4 eBook with an incredibly high-resolution eInk display, which can display gray-scale, to some extent, and after some tweaking can be reliable and performant enough to let me perform about 80% of the tasks I need.
Its best property is that it does not emit light at all.
It’s black is actually black, and its white is actually so white that it can reflect sunlight, so working in a broad daylight is a bliss, and even at home one can use a desk lamp to provide artificial illumination for the display.
I bought it second-hand, because I was not sure it would satisfy my requirements, and fell in love with it so much that I am writing this essay.
</p>

 <p>
Its refresh rate is, let’s say, about 5 FPS, which is not enough to watch videos, but is enough to do coding, writing texts, reading ebooks, viewing PDFs, doing pretty much everything that my computer from 1994 could do.
</p>

 <p>
It has a touch-screen, and is sold with a stylus, which is incredibly precise. Since now I really care about weight, it is a big plus that I don’t have to carry a mouse.
</p>

 <p>
It has Android 6, which, well, requires some creativity to make it do useful things, but I just saw this as a challenge to overcome, rather than a dead-end.
New models by Onyx have not just keyboards, but new versions of Android, which should even make some of the tricks in this file useless, but perhaps not all.
Since I am definitely buying a new device on eInk after this one dies, I am partly writing this file for the common good, partly for my future self, to save time on setting up future devices.
</p>

 <p>
It has 2Gb of RAM, which is petty even by the standards of 2017, when this eBook was still new, but, think about it, my computer from 1994 had 16 Megabytes, and could still play music, run text processors, print, check email, do instant messaging, browse the web, and such.
We just need to learn how to unlock its creative potential.
</p>

 <p>
There is a bigger problem though, that is the devices uses a 32-bit ARM CPU, which is not really good, does not let Emacs run with big-int mode (or maybe I haven’t found how to make it).
</p>

 <p>
In this file I will write out some tweaks which I had to learn by trial and error, in order to make my life more palatable.
</p>

 <section id="outline-container-Download-the-installation-files" class="outline-2"> <h2 id="Download-the-installation-files"> <span class="section-number-2">1.</span>  <a href="#Download-the-installation-files">Download the installation files</a></h2>
 <div class="outline-text-2" id="text-Download-the-installation-files">
 <p>
 <a href="https://sourceforge.net/projects/android-ports-for-gnu-emacs/">https://sourceforge.net/projects/android-ports-for-gnu-emacs/</a>
</p>

 <p>
There is also a very useful README file, which is claimed to be binary by SourceForge, but do not believe them.
</p>
</div>
</section> <section id="outline-container-Install-F-Droid." class="outline-2"> <h2 id="Install-F-Droid."> <span class="section-number-2">2.</span>  <a href="#Install-F-Droid.">Install F-Droid.</a></h2>
 <div class="outline-text-2" id="text-Install-F-Droid.">
 <p>
F-Droid still works with Android 6, and this is how we will be getting most (but not all) of our software.
</p>


 <figure id="org85f5870"> <img src="002_F-droid.png" alt="002_F-droid.png"></img></figure></div>
</section> <section id="outline-container-Install-Syncthing-(or-Syncthing-Fork)." class="outline-2"> <h2 id="Install-Syncthing-(or-Syncthing-Fork)."> <span class="section-number-2">3.</span>  <a href="#Install-Syncthing-(or-Syncthing-Fork).">Install Syncthing (or Syncthing-Fork).</a></h2>
 <div class="outline-text-2" id="text-Install-Syncthing-(or-Syncthing-Fork).">
 <p>
Again, very curiously, but Syncthing works on Android.
The disk on the eBook is tiny, so I just share it entirely with the Laptop, so my question of sharing data with the eBook does not arise.
</p>

 <p>
You might want to play with “.stignore” files if you have some “directory shared with multiple devices”.
</p>
</div>
</section> <section id="outline-container-Buy-a-keyboard-and-learn-input-methods." class="outline-2"> <h2 id="Buy-a-keyboard-and-learn-input-methods."> <span class="section-number-2">4.</span>  <a href="#Buy-a-keyboard-and-learn-input-methods.">Buy a keyboard and learn input methods.</a></h2>
 <div class="outline-text-2" id="text-Buy-a-keyboard-and-learn-input-methods.">
 <p>
I have bought a Logitech “Ultrathin Keyboard Folio”, which fits into a stock case provided together with the eBook.
</p>

 <p>
The eBook works with Bluetooth just fine.
</p>

 <p>
Now Android has this weird concept of “Keyboard Apps”, which means that there is no way to input anything directly into the system, everything goes through an input method.
</p>

 <p>
Now learn the following keys:
</p>

 <ol class="org-ol"> <li>⬠ - return to home screen</li>
 <li>❒ - window list</li>
 <li>≣ - standard menu</li>
 <li>Fn - switches the feature of Escape, Backspace, Battery, and keys.</li>
 <li>Windows Logo - apparently does nothing</li>
 <li>🔍 - default search, on Emacs produces non-incremental search</li>
</ol> <p>
This is enough for most useful tasks.
Ctrl+C/Ctrl+V work for most Android tasks.
</p>


 <figure id="org0a4d242"> <img src="008_task-manager.png" alt="008_task-manager.png"></img></figure></div>

 <div id="outline-container-Basic-input-method" class="outline-3">
 <h3 id="Basic-input-method"> <span class="section-number-3">4.1.</span>  <a href="#Basic-input-method">Basic input method</a></h3>
 <div class="outline-text-3" id="text-Basic-input-method">
 <p>
The most basic input method we have on Onyx Boox Max 2 is “Android Keyboard”, and you can set it up to input Latin and Cyrillic, without ever showing the virtual keyboard.
</p>

 <p>
Layouts are switched with Ctrl+Space.
If you are used to “Russian-typewriter”, I have bad news for you, it’s not there, but many others are.
</p>

 <p>
“Android Keyboard” has something called “Chinese”, but I haven’t managed to make it input anything but Latin, and a single pinyin character, using Alt and a back-tick as a combining diacritic.
</p>
</div>

 <div id="outline-container-If-someone-finds-out-how-to-use-the-%22Chinese%22-layout-of-%22Android-Keyboard%22,-tell-me-please." class="outline-4">
 <h4 id="If-someone-finds-out-how-to-use-the-%22Chinese%22-layout-of-%22Android-Keyboard%22,-tell-me-please."> <span class="section-number-4">4.1.1.</span>  <a href="#If-someone-finds-out-how-to-use-the-%22Chinese%22-layout-of-%22Android-Keyboard%22,-tell-me-please."> <span class="todo TODO">TODO</span> If someone finds out how to use the “Chinese” layout of “Android Keyboard”, tell me please.</a></h4>
 <div class="outline-text-4" id="text-If-someone-finds-out-how-to-use-the-%22Chinese%22-layout-of-%22Android-Keyboard%22,-tell-me-please.">
</div>
</div>
</div>

 <div id="outline-container-Install-fcitx5." class="outline-3">
 <h3 id="Install-fcitx5."> <span class="section-number-3">4.2.</span>  <a href="#Install-fcitx5.">Install fcitx5.</a></h3>
 <div class="outline-text-3" id="text-Install-fcitx5.">
 <p>
Okay, I need Chinese input on my device, and I didn’t manage to make the stock Onyx Keyboard input what I wanted to input.
</p>

 <p>
So I installed fcitx5-android from F-Droid.
Fcitx5 is even recommended by Emacs developers.
</p>

 <p>
It only works for Chinese and English, and its English support is not good, but it does the job.
</p>

 <p>
 <del>I have set its virtual keyboard size to the minimal height, so that it would not occupy too much space, but I think there needs to be a way to hide the buttons completely, and only leave the suggestion line.</del>
</p>

 <p>
I have enabled “preedit” in fcitx5, and it just works, hiding the onscreen keyboard and offering me a candidates popup.
</p>

 <p>
You can switch between “Android Keyboard” languages with Ctrl+Space  <del>, but I have not found a way to switch between “Android Keyboard” and Fcitx5 with a keystroke</del>.
 <del>So far, since I seldom use Russian+Chinese, I end up tapping the persistent notification in the Android notification menu, and switching keyboards with a tap, but there must be a better way.</del>
</p>

 <p>
I found a way to make things convenient:
</p>

 <ol class="org-ol"> <li>Fcitx5->Advanced->Export Config->Save (the Save button is not visible on eink, but it’s on the right of the file name .zip in the bottom)</li>
 <li>Open the zip file with Emacs and find the file called “config”.</li>
 <li>There is a section there called  <code>[Hotkey/Toggle]</code>, which is not editable from the GUI.</li>
 <li>Replace some obscure Hangul keys with Ctrl+Alt+O. Only some keys work, for example, Ctrl+Alt+\ does not work. Save.</li>
 <li>Fcitx5->Advanced->Import Config->Select the edited .zip file.</li>
</ol> <p>
Now Ctrl+space switches between Russian and English, and Ctrl+Alt+O switches between English and Chinese.
Profit.
</p>
</div>
</div>
</section> <section id="outline-container-Install-Conversations-from-F-Droid." class="outline-2"> <h2 id="Install-Conversations-from-F-Droid."> <span class="section-number-2">5.</span>  <a href="#Install-Conversations-from-F-Droid.">Install Conversations from F-Droid.</a></h2>
 <div class="outline-text-2" id="text-Install-Conversations-from-F-Droid.">
 <p>
Okay, so Conversations is an xmpp client in mostly Java, and surprisingly it works on Android 6.
</p>

 <p>
You can use it not just to chat on XMPP, but to send messages between your own computer and the eBook, which is very handy. Just don’t forget to enable OMEMO.
</p>


 <figure id="orge218d30"> <img src="001_Conversations.png" alt="001_Conversations.png"></img></figure></div>
</section> <section id="outline-container-Install-Termux,-Emacs,-and-Connectbot." class="outline-2"> <h2 id="Install-Termux,-Emacs,-and-Connectbot."> <span class="section-number-2">6.</span>  <a href="#Install-Termux,-Emacs,-and-Connectbot.">Install Termux, Emacs, and Connectbot.</a></h2>
 <div class="outline-text-2" id="text-Install-Termux,-Emacs,-and-Connectbot.">
 <p>
Those guys will not come from F-Droid, because we need them to share the signature key.
</p>

 <p>
Okay, I digress, but I need to explain this crap:
</p>

 <p>
Android requires that apks be signed with a key.
The key does not actually provide anti-tampering features, but it ensures that “apps signed with different keys do not overwrite each other”.
Moreover, apps sharing a user-id can read each other’s data.
Emacs for Android 6 and Termux app do not share an ID, even though we really need this!
</p>

 <p>
So, download Emacs apk, and Termux-for-Android-6 apk, use apktool to unpack them both, add a shared user ID, and re-sign with a key.
Sign with any key, I just use jarsigner with the default Android developer key.
</p>

 <p>
Same thing works with Connectbot, except that you need to add an LD_LIBRARY_PATH in order to use termux apps.
You also need to do the same with Emacs in order to use termux apps from Emacs Shell.
</p>

 <p>
Here are the code snippets:
</p>

 <div class="org-src-container">
 <pre class="src src-shell" id="org317bc30">apktool d  <span style="font-style: italic;">"$CWD"</span>/source/termux-app_v0.118.0+2f40df9-apt-android-5-github-debug_armeabi-v7a.apk
apktool b termux-app_v0.118.0+2f40df9-apt-android-5-github-debug_armeabi-v7a -o  <span style="font-style: italic;">"$CWD"</span>/output/termux_for_emacs.apk
 <span style="font-weight: bold; font-style: italic;"># </span> <span style="font-weight: bold; font-style: italic;">password is android
</span>jarsigner -storepass  <span style="font-style: italic;">"android"</span> -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore  <span style="font-style: italic;">"$CWD"</span>/output/termux_for_emacs.apk androiddebugkey

apktool d $ <span style="font-weight: bold; font-style: italic;">CWD</span>/source/emacs-30.0.50-16-armeabi-v7a.apk
sed -i  <span style="font-style: italic;">'s|android:requestLegacyExternalStorage|android:sharedUserId="com.termux" android:sharedUserLabel="@string/shared_user_label" android:requestLegacyExternalStorage|g'</span> emacs-30.0.50-16-armeabi-v7a/AndroidManifest.xml
sed -i  <span style="font-style: italic;">'/shared_user_name/i<string name="shared_user_label">Termux user</string>'</span> emacs-30.0.50-16-armeabi-v7a/res/values/strings.xml
apktool b emacs-30.0.50-16-armeabi-v7a -o  <span style="font-style: italic;">"$CWD"</span>/output/emacs_for_termux.apk
jarsigner -storepass  <span style="font-style: italic;">"android"</span>  -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore  <span style="font-style: italic;">"$CWD"</span>/output/emacs_for_termux.apk androiddebugkey
</pre>
</div>

 <p>
Same thing works with Connectbot.
I like Connectbot, because it lets me run scripts from a menu, with a tap, just needing to set up a profile.
</p>

 <p>
 <b>Important</b> The GPG key termux packages has expired, you need to import it manually.
</p>

 <div class="org-src-container">
 <pre class="src src-shell">git clone https://github.com/termux/termux-packages/
adb push termux-packages/packages/termux-keyring/grimler.gpg /sdcard/Download
termux-setup-storage
cp /sdcard/Download/grimler.gpg /data/data/com.termux/files/usr/etc/apt/trusted.gpg.d
</pre>
</div>

 <p>
Now you can install stuff on termux, and use it from Emacs’s shell-mode.
</p>

 <p>
Things INSTANTLY become more fun.
</p>

 <p>
Now to make things simpler, at once install on termux:
</p>

 <ol class="org-ol"> <li>hunspell*,</li>
 <li>tmux,</li>
 <li>ssh,</li>
 <li>autossh,</li>
 <li>gpg*,</li>
 <li>git,</li>
 <li>gcc*</li>
 <li>ghostscript</li>
</ol> <p>
And on Emacs:
</p>

 <ol class="org-ol"> <li>magit</li>
 <li>pdf-tools</li>
</ol> <p>
On Emacs, open shell, and make “~/.ssh” a symlink to “ <i>data/data/com.termux/files/home</i>.ssh”.
Also, add tmux’s “usr” to Emacs’ PATH.
</p>

 <div class="org-src-container">
 <pre class="src src-elisp">( <span style="font-weight: bold;">when</span> (string-equal system-type  <span style="font-style: italic;">"android"</span>)
   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">Add Termux binaries to PATH environment
</span>  ( <span style="font-weight: bold;">let</span> ((termuxpath  <span style="font-style: italic;">"/data/data/com.termux/files/usr/bin"</span>))
    (setenv  <span style="font-style: italic;">"PATH"</span> (concat (getenv  <span style="font-style: italic;">"PATH"</span>)  <span style="font-style: italic;">":"</span> termuxpath))
    (setenv  <span style="font-style: italic;">"LD_LIBRARY_PATH"</span>  <span style="font-style: italic;">"/data/data/com.termux/files/usr/lib"</span>)
    ( <span style="font-weight: bold;">setq</span> exec-path (append exec-path (list termuxpath)))))
</pre>
</div>

 <p>
You can also input Chines using standard Emacs’ built-in input method, although it is not very swift.
</p>

 <p>
I also added my own tiny input method to input toneful pinyin:
</p>

 <div class="org-src-container">
 <pre class="src src-elisp">( <span style="font-weight: bold;">require</span> ' <span style="font-weight: bold; text-decoration: underline;">quail</span>)

(quail-define-package
  <span style="font-style: italic;">"pinyin-tone-marks"</span>  <span style="font-style: italic;">"UTF-8"</span>  <span style="font-style: italic;">"PY<"</span> t
  <span style="font-style: italic;">"Pinyin input method with tone marks."</span>
 nil t nil nil nil nil nil nil nil nil t)

 <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">Define rules for tone marks
</span>( <span style="font-weight: bold;">quail-define-rules</span>
 ( <span style="font-style: italic;">"a1"</span> ?ā) ( <span style="font-style: italic;">"a2"</span> ?á) ( <span style="font-style: italic;">"a3"</span> ?ǎ) ( <span style="font-style: italic;">"a4"</span> ?à)
 ( <span style="font-style: italic;">"e1"</span> ?ē) ( <span style="font-style: italic;">"e2"</span> ?é) ( <span style="font-style: italic;">"e3"</span> ?ě) ( <span style="font-style: italic;">"e4"</span> ?è)
 ( <span style="font-style: italic;">"i1"</span> ?ī) ( <span style="font-style: italic;">"i2"</span> ?í) ( <span style="font-style: italic;">"i3"</span> ?ǐ) ( <span style="font-style: italic;">"i4"</span> ?ì)
 ( <span style="font-style: italic;">"o1"</span> ?ō) ( <span style="font-style: italic;">"o2"</span> ?ó) ( <span style="font-style: italic;">"o3"</span> ?ǒ) ( <span style="font-style: italic;">"o4"</span> ?ò)
 ( <span style="font-style: italic;">"u1"</span> ?ū) ( <span style="font-style: italic;">"u2"</span> ?ú) ( <span style="font-style: italic;">"u3"</span> ?ǔ) ( <span style="font-style: italic;">"u4"</span> ?ù)
 ( <span style="font-style: italic;">"v1"</span> ?ǖ) ( <span style="font-style: italic;">"v2"</span> ?ǘ) ( <span style="font-style: italic;">"v3"</span> ?ǚ) ( <span style="font-style: italic;">"v4"</span> ?ǜ)
 ( <span style="font-style: italic;">"1"</span>  <span style="font-style: italic;">"1"</span>) ( <span style="font-style: italic;">"2"</span>  <span style="font-style: italic;">"2"</span>) ( <span style="font-style: italic;">"3"</span>  <span style="font-style: italic;">"3"</span>) ( <span style="font-style: italic;">"4"</span>  <span style="font-style: italic;">"4"</span>))

( <span style="font-weight: bold;">defun</span>  <span style="font-weight: bold;">lockywolf/turn-on-pinyin</span> ()
  ( <span style="font-weight: bold;">interactive</span>)
  (set-input-method  <span style="font-style: italic;">"pinyin-tone-marks"</span>))
( <span style="font-weight: bold;">defun</span>  <span style="font-weight: bold;">lockywolf/turn-on-chinese-simplified</span> ()
  ( <span style="font-weight: bold;">interactive</span>)
  (set-input-method  <span style="font-style: italic;">"chinese-py"</span>))
( <span style="font-weight: bold;">defun</span>  <span style="font-weight: bold;">lockywolf/turn-on-chinese-traditional</span> ()
  ( <span style="font-weight: bold;">interactive</span>)
  (set-input-method  <span style="font-style: italic;">"chinese-py-b5"</span>))

(global-set-key (kbd  <span style="font-style: italic;">"C-` 1"</span>) 'lockywolf/turn-on-pinyin)
(global-set-key (kbd  <span style="font-style: italic;">"C-` 2"</span>) 'lockywolf/turn-on-chinese-simplified)
(global-set-key (kbd  <span style="font-style: italic;">"C-` 3"</span>) 'lockywolf/turn-on-chinese-traditional)
</pre>
</div>

 <p>
It is better to have this input as a part of Emacs.
I am not sure whether it is easy to input pinyin with fcitx or other Android input methods.
</p>

 <p>
Okay, now we have GCC 9, clang 9, and ssh 8.1
</p>

 <p>
This is not really fresh, but not bad either.
</p>

 <p>
This howto is not about using UNIX command-line and Emacs, but you must be see where I am getting. It should be now possible to use tmux to bootstrap a lot of useful stuff.
</p>

 <p>
But in any case, if you configure ssh’s config to reach you home laptop, you can basically do whatever you want on your home laptop in console. This already makes it workable.
</p>

 <p>
You can use my own lwf_rtmux ( <a href="https://gitlab.com/Lockywolf/linuxbugs-lwf/-/blob/master/scripts/2021-06-18_lwf-rtmux.bash">https://gitlab.com/Lockywolf/linuxbugs-lwf/-/blob/master/scripts/2021-06-18_lwf-rtmux.bash</a>), to make your connections persistent, although the XPRA part does not work. Also, since Android’s ksh is a bit stupid and has no /dev/stderr, error messages are a little worse.
</p>

 <p>
Some screenshots:
</p>


 <figure id="org6ec77ea"> <img src="010_Emacs-welcome.png" alt="010_Emacs-welcome.png"></img></figure> <figure id="org3164081"> <img src="003_Emacs.png" alt="003_Emacs.png"></img></figure> <figure id="orged46c6a"> <img src="004_termux+tmux.png" alt="004_termux+tmux.png"></img></figure></div>



 <div id="outline-container-Dark/light-theme-in-termux." class="outline-4">
 <h4 id="Dark/light-theme-in-termux."> <span class="section-number-4">6.0.1.</span>  <a href="#Dark/light-theme-in-termux.">Dark/light theme in termux.</a></h4>
 <div class="outline-text-4" id="text-Dark/light-theme-in-termux.">
 <p>
By default termux works in dark mode, which is a real pain with an eInk display.
</p>

 <p>
I used adi1090/termux-style, but you can do it with Termux:Style, if you find how to install build it.
</p>

 <p>
Of you can tweak ~/.termux/colors.properties
</p>

 <p>
and maybe also ~/.termux/.current_color
</p>

 <p>
 <a href="https://reddit.com/r/termux/comments/tu1aq8/customizing_termux_colors/">https://reddit.com/r/termux/comments/tu1aq8/customizing_termux_colors/</a>
</p>

 <div class="org-src-container">
 <pre class="src src-shell"> <span style="font-weight: bold;">echo</span>  <span style="font-style: italic;">'gruvbox-light.properties'</span> > /data/data/com.termux/.termux/.current_color
</pre>
</div>

 <pre class="example" id="orgf45fe6b">
! hard contrast: background: #f9f5d7
background: #f9f5d7
! background: #fbf1c7
! soft contrast: background: #f2e5bc
foreground: #3c3836
! Black + DarkGrey
color0:  #fdf4c1
color8:  #928374
! DarkRed + Red
color1:  #cc241d
color9:  #9d0006
! DarkGreen + Green
color2:  #98971a
color10: #79740e
! DarkYellow + Yellow
color3:  #d79921
color11: #b57614
! DarkBlue + Blue
color4:  #458588
color12: #076678
! DarkMagenta + Magenta
color5:  #b16286
color13: #8f3f71
! DarkCyan + Cyan
color6:  #689d6a
color14: #427b58
! LightGrey + White
color7:  #7c6f64
color15: #3c3836
</pre>
</div>
</div>

 <div id="outline-container-Proper-fonts-in-Emacs" class="outline-4">
 <h4 id="Proper-fonts-in-Emacs"> <span class="section-number-4">6.0.2.</span>  <a href="#Proper-fonts-in-Emacs">Proper fonts in Emacs</a></h4>
 <div class="outline-text-4" id="text-Proper-fonts-in-Emacs">
 <p>
But default Emacs will use whichever fonts it will find on your Android.
In my case font coverage ended up being decent, in that it had:
</p>

 <ol class="org-ol"> <li>Chinese</li>
 <li>English</li>
 <li>Cyrillic</li>
</ol> <p>
But it did not have nice Unicode pictogramms, and no obscure scripts, such as the Book of Change symbols, which were used in some books I was reading.
</p>

 <p>
So here is how to add them back: copy files
</p>

 <ol class="org-ol"> <li>Symbola.ttf</li>
 <li>霞鹜文楷-Regular.ttf</li>
</ol> <p>
into ~/.emacs.d/fonts
</p>

 <p>
Emacs font system is not that straightforward, see  <a href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Android-Fonts">emacs#Android Fonts</a> .
</p>
</div>
</div>

 <div id="outline-container-doc-view-mode" class="outline-3">
 <h3 id="doc-view-mode"> <span class="section-number-3">6.1.</span>  <a href="#doc-view-mode">doc-view mode</a></h3>
 <div class="outline-text-3" id="text-doc-view-mode">
 <p>
If you install ghostscript, doc-view mode works, and even is quite fast.
</p>

 <p>
I fact I wrote the section on  <a href="#Neoreader">8.3</a> before making doc-view mode work, otherwise I might avoid learning Neoreader entirely.
(Not really, since it’s Onyx’ flagship product, so deserves attention anyway.)
</p>
</div>
</div>

 <div id="outline-container-pdf-tools" class="outline-3">
 <h3 id="pdf-tools"> <span class="section-number-3">6.2.</span>  <a href="#pdf-tools">pdf-tools</a></h3>
 <div class="outline-text-3" id="text-pdf-tools">
 <p>
pdf-tools can compile and run on Boox Max, but the efficiency is poor: Emacs runs out of memory and starts to misbehave.
(You would need to compile epdfinfo from termux, and not from Emacs’ shell, because the autobuild script uses the default shell, which is ksh on Emacs, and does not support some shell features that autobuild needs.)
</p>


 <figure id="org7cb8846"> <img src="014_doc-view-mode.png" alt="014_doc-view-mode.png"></img></figure></div>

 <div id="outline-container-Fix-pdf-tools" class="outline-4">
 <h4 id="Fix-pdf-tools"> <span class="section-number-4">6.2.1.</span>  <a href="#Fix-pdf-tools">Fix pdf-tools</a></h4>
 <div class="outline-text-4" id="text-Fix-pdf-tools">
 <p>
I still do not recommend using pdf-tools for reading books in Emacs, because even though I have managed to make pdf-tools work fairly decently, I have not managed to make annotations work.
But I have also never used annotations properly on the desktop Emacs, and overall consider pdf annotations to be an ill practice, because modifying the source is clearly more practical than making some sort of a weird overlay.
</p>

 <p>
Below is the snippet which I have added to the  <code>init.el</code>, which makes pdf-view-mode a bit slower, but still good enough for viewing pdfs compiled with auctex/termux.
</p>

 <div class="org-src-container">
 <pre class="src src-elisp">(pdf-tools-install)
( <span style="font-weight: bold;">setf</span> pdf-cache-image-limit 0)
( <span style="font-weight: bold;">setq-default</span> pdf-view-display-size 'fit-height)
( <span style="font-weight: bold;">setq-default</span> pdf-view-max-image-width 2000)
( <span style="font-weight: bold;">setq-default</span> pdf-cache-image-inihibit t)
(advice-add 'pdf-view-redisplay  <span style="font-weight: bold;">:before</span> #'clear-image-cache)
(advice-add 'pdf-view-redisplay  <span style="font-weight: bold;">:after</span> #'clear-image-cache)
</pre>
</div>
</div>
</div>
</div>
</section> <section id="outline-container-Fennec-from-F-Droid-and-other-Web-Browsing." class="outline-2"> <h2 id="Fennec-from-F-Droid-and-other-Web-Browsing."> <span class="section-number-2">7.</span>  <a href="#Fennec-from-F-Droid-and-other-Web-Browsing.">Fennec from F-Droid and other Web Browsing.</a></h2>
 <div class="outline-text-2" id="text-Fennec-from-F-Droid-and-other-Web-Browsing.">
 <p>
Fenned is an unofficial build of Firefox, and it supports 99% of modern websites, even though on an eBook it runs painfully slow, so it is advised to avoid using it.
But sometimes you “just need” to visit a modern website, and then Fennec is your only option.
</p>

 <p>
Otherwise, browser options are the following:
</p>

 <ol class="org-ol"> <li>Built-in browser, based on Chromium 88. Moderate speed, mostly compatible, but does not support extensions and has weird hotkeys.</li>
 <li>Fennec. Slow, 99% compatible, also has weird hotkeys, extensible.</li>
 <li>Emacs+EWW. Fast, customizable, has nice hotkeys, but supports only about 60% websits.</li>
 <li>Emacs+W3M (termux). Moderate speed. Did not use it a lot.</li>
</ol> <p>
The main problem with EWW and W3M is not that they are ugly, but that they are largely blocked-out by Yandex and Google Javascript-only captcha.
</p>

 <p>
Some screenshots:
</p>

 <p>
Default browser showing Gitlab:
</p>


 <figure id="orgd31a160"> <img src="005_default-browser.png" alt="005_default-browser.png"></img></figure> <p>
Fennec:
</p>


 <figure id="orgac4aecd"> <img src="006_Fennec.png" alt="006_Fennec.png"></img></figure> <p>
EWW showing Bing:
</p>


 <figure id="org86f3ce4"> <img src="007_Eww.png" alt="007_Eww.png"></img></figure></div>
</section> <section id="outline-container-Learn-how-to-use-the-built-in-book-reader-and-notes-program." class="outline-2"> <h2 id="Learn-how-to-use-the-built-in-book-reader-and-notes-program."> <span class="section-number-2">8.</span>  <a href="#Learn-how-to-use-the-built-in-book-reader-and-notes-program.">Learn how to use the built-in book reader and notes program.</a></h2>
 <div class="outline-text-2" id="text-Learn-how-to-use-the-built-in-book-reader-and-notes-program.">
 <p>
Reading material, making notes, and talking to other people constitutes 80% of an intellectual office worker job.
</p>

 <p>
While it is generally possible to do a lot of that with generic Android tools, in this subsection I want to mention some eBook specifics.
</p>
</div>

 <div id="outline-container-Shop" class="outline-3">
 <h3 id="Shop"> <span class="section-number-3">8.1.</span>  <a href="#Shop">Shop</a></h3>
 <div class="outline-text-3" id="text-Shop">
 <p>
The “Shop” is a “book shop”, not app shop.
It does not download for free even “free” books, requires a signup, so I could not check where it downloads them.
</p>
</div>
</div>


 <div id="outline-container-Library" class="outline-3">
 <h3 id="Library"> <span class="section-number-3">8.2.</span>  <a href="#Library">Library</a></h3>
 <div class="outline-text-3" id="text-Library">
 <p>
Library acts in a “scan mode” or a “directory mode”.
Scan is a total obscurity, whereas directory is only semi-obscure.
It only displays “some” directories on the storage, I am not sure which, but for sure it does show things under Download, which I recommend everyone to use.
</p>

 <p>
Library collects reading statistics, which is fun, but hard to extract from the app, so the data are pretty useless.
</p>

 <p>
You can setup different “Cloud” services to sync your books.
I prefer just using Syncthing, but you can opt-in Onyx Cloud (costless 10G), or setup NextCloud or WebDAV, which might be convenient for you.
</p>
</div>
</div>

 <div id="outline-container-Neoreader" class="outline-3">
 <h3 id="Neoreader"> <span class="section-number-3">8.3.</span>  <a href="#Neoreader">Neoreader</a></h3>
 <div class="outline-text-3" id="text-Neoreader">
 <p>
Neoreader is the default app for reading books on Boox Max 2.
</p>

 <p>
Even though it is probably better to avoid it, I don’t think it is realistic.
</p>

 <p>
You can try reading with KOReader (optimised for eInk), and “Book Reader” (com.github.axet.reader), but so far the only way to open two programs side-by side on Max 2 I have found is Neoreader+Notes.
</p>

 <p>
Of course, you can also run two Emacs programs side-by-side, and if you fancy reading epubs using Wasamasa’s nov.el, you can do your reading conveniently.
</p>

 <p>
I managed to display pdfs in Emacs, both in doc-view-mode, and in pdf-view-mode, but I still do not recommend reading PDFs in it because annotations do not work and because Emacs is still not exactly swift when working with the touch-screen.
</p>

 <p>
Let us delve a bit more into the NeoReader features.
</p>

 <p>
NeoReader can view and annotate PDFs, epub, mobi, txt files.
</p>

 <p>
The main interface is opened by tapping the middle of the screen.
</p>
</div>

 <div id="outline-container-Fixing-font-display" class="outline-4">
 <h4 id="Fixing-font-display"> <span class="section-number-4">8.3.1.</span>  <a href="#Fixing-font-display">Fixing font display</a></h4>
 <div class="outline-text-4" id="text-Fixing-font-display">
 <p>
Some characters are missing from the default fonts available on Boox Max 2.
</p>

 <ol class="org-ol"> <li>Open any document</li>
 <li>Tap page center</li>
 <li>At the bottom: Format->Fonts->CJK->LXGW WenKai (You may need to download it)</li>
</ol> <p>
LXGW WenKai is not beautiful, it looks like Comic Sans, but it can display every character I need.
</p>
</div>
</div>

 <div id="outline-container-Installing-new-fonts." class="outline-4">
 <h4 id="Installing-new-fonts."> <span class="section-number-4">8.3.2.</span>  <a href="#Installing-new-fonts.">Installing new fonts.</a></h4>
 <div class="outline-text-4" id="text-Installing-new-fonts.">
 <p>
Okay, you certainly can download new fonts via the Neoreader app.
I think there was some other way as well, but I forgot.
</p>

 <p>
There are directories:
</p>
 <ol class="org-ol"> <li> <i>sdcard/fonts</i></li>
 <li> <i>sdcard/jd_jeb_fonts</i></li>
</ol> <p>
Maybe fonts are copied there?
</p>
</div>
</div>

 <div id="outline-container-Reading-efficiently." class="outline-4">
 <h4 id="Reading-efficiently."> <span class="section-number-4">8.3.3.</span>  <a href="#Reading-efficiently.">Reading efficiently.</a></h4>
 <div class="outline-text-4" id="text-Reading-efficiently.">
 <p>
People have different manners of reading documents.
</p>

 <p>
The two most common difficulties are the lack of context on a page, and too much irrelevant content on the page.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Lack-of-context-can-be-fixed-by-using-the-RTL-and-LTR-modes."></a> <a href="#Lack-of-context-can-be-fixed-by-using-the-RTL-and-LTR-modes.">Lack of context can be fixed by using the RTL and LTR modes.</a> <br></br> <div class="outline-text-5" id="text-Lack-of-context-can-be-fixed-by-using-the-RTL-and-LTR-modes.">
 <p>
This is what it looks like:
</p>


 <figure id="orgea09a6e"> <img src="007_z1_rtl-ltr-side-by-side.png" alt="007_z1_rtl-ltr-side-by-side.png"></img></figure></div>
</li>

 <li> <a id="Too-much-context-can-be-fixed-by-re-formatting-a-page-using-a-process-called-%22reflow%22."></a> <a href="#Too-much-context-can-be-fixed-by-re-formatting-a-page-using-a-process-called-%22reflow%22.">Too much context can be fixed by re-formatting a page using a process called “reflow”.</a> <br></br> <div class="outline-text-5" id="text-Too-much-context-can-be-fixed-by-re-formatting-a-page-using-a-process-called-%22reflow%22.">
 <p>
Reflow in Neoreader is fairly straightforward, but the interesting thing is that it should not be confused with “Navigation”.
</p>

 <p>
“Reflow” algorithmically transforms the page, “Navigation” just jumps over the original page.
However, for some obscure reason, “Reflow” is under the navigation tab at the bottom of the screen.
</p>

 <p>
The confusing “More” button on the same tab does “Navigation”, not “reflow”.
</p>

 <p>
There is also “text-based reflow”, which can totaly transform the page based on text-based PDFs, but I am not sure how well formulas are preserved.
</p>
</div>
</li>
</ol></div>


 <div id="outline-container-Annotation-and-reading-side-by-side." class="outline-4">
 <h4 id="Annotation-and-reading-side-by-side."> <span class="section-number-4">8.3.4.</span>  <a href="#Annotation-and-reading-side-by-side.">Annotation and reading side-by-side.</a></h4>
 <div class="outline-text-4" id="text-Annotation-and-reading-side-by-side.">
 <p>
As already mentioned, Emacs’ nov.el can read epub files, which is mostly what you need.
Then you can annotate them in any way you want.
</p>

 <p>
So this section is only of interest to those reading PDFs.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Floating-bar"></a> <a href="#Floating-bar">Floating bar</a> <br></br> <div class="outline-text-5" id="text-Floating-bar">
 <p>
Floating bar has extremely confusing item names.
However, from what I can tell, it is not really needed for anything exclusively.
You can tweak it if you find yourself missing “quick access” to certain features, but, as far as I can tell, most features can be accessed from the “tap the middle of the page” interface.
</p>

 <p>
Do not, however, confuse the “Floating bar” with the “Handwriting floating bar”.
</p>

 <p>
The second one is triggered by tapping “Notes” in the MiddleTap->Top-right-corner, or (to increase confusion), the pencil icon in the “normal” “floating bar”.
</p>
</div>
</li>

 <li> <a id="Writing-on-top,-and-side-notes."></a> <a href="#Writing-on-top,-and-side-notes.">Writing on-top, and side-notes.</a> <br></br> <div class="outline-text-5" id="text-Writing-on-top,-and-side-notes.">
 <p>
Okay, so, the “pen” icon on the “floating toolbar” activates the “handwritten annotation” for a pdf.
</p>

 <p>
“Handwritten annotations” should  <span class="underline">not</span> be confused with “Handwritten notes”, which is an absolutely unrelated beast.
</p>

 <p>
Handwritten annotations are saved in some internal metadata for the Neoreader, and cannot be exported on their own, they are exported “within the PDF” or as a png file.
</p>


 <figure id="org51aa1a0"> <img src="007_z2_handwritten-annotations.png" alt="007_z2_handwritten-annotations.png"></img></figure> <p>
The strange pen icon on the “handwriting toolbar” triggers the “side note”.
</p>

 <p>
Side notes allow you to write “sketch on the margins” of a document.
Each “side-note” is associated with a page of the document.
There are two problems with this thing:
</p>

 <ol class="org-ol"> <li>On export, all inserted pages are exported between the first and the second pages of the old document, which is stupid.</li>
 <li>You cannot add text notes in the “inserted pages”.</li>
</ol> <p>
What is this method of annotation good for?
</p>

 <p>
In theory, it can be good for reading mathematical papers.
You can underline some formulations, circle them, add text notes with clarifying questions, and even do your own derivations on the “side-notes”, and, perhaps, plot some graphs “by hand”.
</p>


 <figure id="orge09a4d2"> <img src="011_Side-notes-and-overnotes.png" alt="011_Side-notes-and-overnotes.png"></img></figure> <p>
Unfortunately, exporting is broken, and a pen is not even remotely precise enough for drawing anything meaningful.
</p>

 <p>
You can export them page-by-page, and insert into your Emacs, I guess?
</p>


 <figure id="orgbc87a82"> <img src="011_z1_sidenotes.png" alt="011_z1_sidenotes.png"></img></figure> <p>
I suspect that nobody actually uses this feature, an this is why it keeps being broken 7 years after the device’s release.
</p>

 <p>
There is, however, a quite useful feature: PDF highlights.
You can trigger them by long-pressing on a word and dragging to select a sub-phrase.
</p>

 <p>
The exported PDFs seem to go into the same directory where the original file was, in the form of a directory named as the source file without “.pdf” extension.
It includes:
</p>
 <ol class="org-ol"> <li>“Handwriting”</li>
 <li>“Side-notes”</li>
 <li>PDF Highlights</li>
</ol> <p>
“Handwriting”, “Side-notes”, and “PDF Highlights” can be also exported individually, from the “TOC” panel, which makes them slightly more useful.
They all go into a directory near the original file location.
</p>

 <p>
“PDF Highlights” are exported into a text file, which, if you annotate extensively, can serve as lecture notes for the book, for your own reference later.
</p>


 <figure id="orga6efc5d"> <img src="012_text-highlights.png" alt="012_text-highlights.png"></img></figure></div>


 <ol class="org-ol"> <li> <a id="Write-a-converter-between-Neoreader's-%22txt%22-and-org-mode-or-pdf-view-mode-anotations."></a> <a href="#Write-a-converter-between-Neoreader's-%22txt%22-and-org-mode-or-pdf-view-mode-anotations."> <span class="todo TODO">TODO</span> Write a converter between Neoreader’s “txt” and org-mode or pdf-view-mode anotations.</a> <br></br> <div class="outline-text-6" id="text-Write-a-converter-between-Neoreader's-%22txt%22-and-org-mode-or-pdf-view-mode-anotations.">
</div>
</li>
</ol></li>

 <li> <a id="Using-the-standard-%22Notes%22-app-in-a-split-screen-mode."></a> <a href="#Using-the-standard-%22Notes%22-app-in-a-split-screen-mode.">Using the standard “Notes” app in a split-screen mode.</a> <br></br> <div class="outline-text-5" id="text-Using-the-standard-%22Notes%22-app-in-a-split-screen-mode.">
 <p>
This is what I am finding the most useful actually.
</p>

 <p>
The default “notes” app is modelled after OneNote, or something like that.
It is surprisingly similar to org-mode, except, obviously, far less functional.
</p>

 <p>
WARNING: When run in split-screen it sometimes loses data.
This is very bad, so  <span class="underline">always</span>,  <span class="underline">always</span> export your data before exiting.
</p>

 <p>
The “Notes” app supports “handwritten” and “text-based” modes.
</p>

 <p>
Each book seems to allow one text-note, and one handwritten note.
You can create as may notes from the Launcher interface as you want, but you cannot see them in split-screen with a book opened in NeoReader.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Text-based-notes"></a> <a href="#Text-based-notes">Text-based notes</a> <br></br> <div class="outline-text-6" id="text-Text-based-notes">
 <p>
“Text-based notes” are essentially Markdown, and they can be exported either into a “txt” file, or into a “.notes” file.
</p>

 <p>
The biggest stupidity is that in the text-based notes you cannot add handwritten sketches, whereas in “handwritten notes” you can add text-based fragments.
One more stupidity is that you cannot make partial screenshots, “snips”, like what “Snipping tool” from Windows XP could do 20 years ago.
</p>

 <p>
But I will give you a workaround, in case you need one.
</p>

 <ol class="org-ol"> <li>Zoom to the fragment you are interested in.</li>
 <li>Do a screenshot.</li>
 <li>Attach it to a “text note” as a “link”.</li>
</ol> <p>
This trick also allows you to attach handdrawn sketches, albeit in a crutchy way.
</p>

 <ol class="org-ol"> <li>Use “side-notes” to add an empty sheet as a second page in a pdf.</li>
 <li>Open the new “exported pdf”.</li>
 <li>Draw your sketch on that empty second sheet.</li>
 <li>Zoom to it and make a screenshot.</li>
 <li>Attach the screenshot to the “text note”.</li>
</ol> <p>
Overall, most of the notes one might want to take with NeoReader would be text notes, I believe.
The text editor is passable, and supports simple markup.
</p>

 <p>
Of course, generally you would want to use Emacs and epub, but when you have PDF, I suspect that NeoReader is your best choice.
By all means, feel free to comment and suggest a better setup or at least a better tool.
Maybe you had particular luck with KOReader?
Share your thoughts.
</p>
</div>
</li>

 <li> <a id="Handwritten-notes."></a> <a href="#Handwritten-notes.">Handwritten notes.</a> <br></br> <div class="outline-text-6" id="text-Handwritten-notes.">
 <p>
Handwritten notes seem to imitate OneNote, or something like that.
</p>

 <p>
I found very little use for them, unless one is particularly interested in writing a lot of text with a pen, and then recognising is with the built-in “AI”.
</p>

 <p>
Handwritten notes can be exported as a vector “.note” file, which I am not sure how to open, but if you really need it, it might work for you.
</p>

 <ol class="org-ol"> <li>“AI” recognition.</li>
 <li>Vector drawings.</li>
</ol> <p>
You might want to use them on meetings, when carrying a keyboard in inconvenient,  <span class="underline">and</span> you want to see the “meeting minutes” or a presentation file, and when reading a tutorial on drawing, when, I guess, vector “.notes” file is better than a vector PDF (created with a “side note”).
</p>
</div>
</li>
</ol></li>
</ol></div>
</div>

 <div id="outline-container-Notes" class="outline-3">
 <h3 id="Notes"> <span class="section-number-3">8.4.</span>  <a href="#Notes">Notes</a></h3>
 <div class="outline-text-3" id="text-Notes">
 <p>
I will not write much here, because most of the things written the the “NeoReader” section apply to to this section too.
</p>

 <p>
When you are doing mathematics, it is still usually better to have a reference paper by your side when writing formulae, and even so using Emacs to write TeX and skipping the handwritten formulae stage entirely is probably better.
</p>

 <p>
One useful thing in the dedicated “Notes” interface is the “backup” option, callable from the menu.
It exports everything into a database directory under “/sdcard/notes/backup”, so if you cannot find something your want to find, you can “backup everything” and reverse-engineer their binary stuff.
</p>

 <p>
There is some setting in the options menu called “Tags”, but I don’t know what it means.
</p>

 <p>
Here is a nice screenshot of using “Notes”, but don’t be misled by its nice appearance:
</p>


 <figure id="org5d00126"> <img src="013_handwritten-notes.png" alt="013_handwritten-notes.png"></img></figure></div>

 <div id="outline-container-Find-what-the-%22tags%22-setting-does." class="outline-4">
 <h4 id="Find-what-the-%22tags%22-setting-does."> <span class="section-number-4">8.4.1.</span>  <a href="#Find-what-the-%22tags%22-setting-does."> <span class="todo TODO">TODO</span> Find what the “tags” setting does.</a></h4>
 <div class="outline-text-4" id="text-Find-what-the-%22tags%22-setting-does.">
</div>
</div>
</div>
</section> <section id="outline-container-Certain-peculiarities-of-using-an-eBook" class="outline-2"> <h2 id="Certain-peculiarities-of-using-an-eBook"> <span class="section-number-2">9.</span>  <a href="#Certain-peculiarities-of-using-an-eBook">Certain peculiarities of using an eBook</a></h2>
 <div class="outline-text-2" id="text-Certain-peculiarities-of-using-an-eBook">
 <p>
The GUI of the eBook is extremely obscure, therefor I have to write an explanation for my future self here.
</p>
</div>

 <div id="outline-container-Magical-directories" class="outline-3">
 <h3 id="Magical-directories"> <span class="section-number-3">9.1.</span>  <a href="#Magical-directories">Magical directories</a></h3>
 <div class="outline-text-3" id="text-Magical-directories">
</div>

 <div id="outline-container-~/sdcard/Pictures/Screenshots~" class="outline-4">
 <h4 id="~/sdcard/Pictures/Screenshots~"> <span class="section-number-4">9.1.1.</span>  <a href="#~/sdcard/Pictures/Screenshots~"> <code>/sdcard/Pictures/Screenshots</code></a></h4>
 <div class="outline-text-4" id="text-~/sdcard/Pictures/Screenshots~">
 <p>
This is the directory where screenshots go.
Be very careful – if this directory is missing, the system will  <span class="underline">NOT</span> create it by itself and the screenshots will disappear.
</p>
</div>
</div>

 <div id="outline-container-/sdcard/.dedao_bookstore" class="outline-4">
 <h4 id="/sdcard/.dedao_bookstore"> <span class="section-number-4">9.1.2.</span>  <a href="#/sdcard/.dedao_bookstore"> <span class="todo TODO">TODO</span>  <i>sdcard</i>.dedao_bookstore</a></h4>
 <div class="outline-text-4" id="text-/sdcard/.dedao_bookstore">
</div>
</div>

 <div id="outline-container-/sdcard/.ksync" class="outline-4">
 <h4 id="/sdcard/.ksync"> <span class="section-number-4">9.1.3.</span>  <a href="#/sdcard/.ksync"> <span class="todo TODO">TODO</span>  <i>sdcard</i>.ksync</a></h4>
 <div class="outline-text-4" id="text-/sdcard/.ksync">
</div>
</div>

 <div id="outline-container-/sdcard/.noteCache" class="outline-4">
 <h4 id="/sdcard/.noteCache"> <span class="section-number-4">9.1.4.</span>  <a href="#/sdcard/.noteCache"> <span class="todo TODO">TODO</span>  <i>sdcard</i>.noteCache</a></h4>
 <div class="outline-text-4" id="text-/sdcard/.noteCache">
</div>
</div>

 <div id="outline-container-/sdcard/.noteResource" class="outline-4">
 <h4 id="/sdcard/.noteResource"> <span class="section-number-4">9.1.5.</span>  <a href="#/sdcard/.noteResource"> <span class="todo TODO">TODO</span>  <i>sdcard</i>.noteResource</a></h4>
 <div class="outline-text-4" id="text-/sdcard/.noteResource">
</div>
</div>

 <div id="outline-container-/sdcard/Books" class="outline-4">
 <h4 id="/sdcard/Books"> <span class="section-number-4">9.1.6.</span>  <a href="#/sdcard/Books"> <span class="todo TODO">TODO</span> /sdcard/Books</a></h4>
 <div class="outline-text-4" id="text-/sdcard/Books">
</div>
</div>

 <div id="outline-container-/sdcard/Push" class="outline-4">
 <h4 id="/sdcard/Push"> <span class="section-number-4">9.1.7.</span>  <a href="#/sdcard/Push"> <span class="todo TODO">TODO</span> /sdcard/Push</a></h4>
 <div class="outline-text-4" id="text-/sdcard/Push">
</div>
</div>

 <div id="outline-container-/sdcard/Shop" class="outline-4">
 <h4 id="/sdcard/Shop"> <span class="section-number-4">9.1.8.</span>  <a href="#/sdcard/Shop"> <span class="todo TODO">TODO</span> /sdcard/Shop</a></h4>
 <div class="outline-text-4" id="text-/sdcard/Shop">
</div>
</div>

 <div id="outline-container-/sdcard/VoiceRecord" class="outline-4">
 <h4 id="/sdcard/VoiceRecord"> <span class="section-number-4">9.1.9.</span>  <a href="#/sdcard/VoiceRecord"> <span class="todo TODO">TODO</span> /sdcard/VoiceRecord</a></h4>
 <div class="outline-text-4" id="text-/sdcard/VoiceRecord">
</div>
</div>

 <div id="outline-container-/sdcard/WifiTransfer" class="outline-4">
 <h4 id="/sdcard/WifiTransfer"> <span class="section-number-4">9.1.10.</span>  <a href="#/sdcard/WifiTransfer"> <span class="todo TODO">TODO</span> /sdcard/WifiTransfer</a></h4>
 <div class="outline-text-4" id="text-/sdcard/WifiTransfer">
</div>
</div>

 <div id="outline-container-/sdcard/baiduTTS" class="outline-4">
 <h4 id="/sdcard/baiduTTS"> <span class="section-number-4">9.1.11.</span>  <a href="#/sdcard/baiduTTS"> <span class="todo TODO">TODO</span> /sdcard/baiduTTS</a></h4>
 <div class="outline-text-4" id="text-/sdcard/baiduTTS">
</div>
</div>

 <div id="outline-container-/sdcard/dicts" class="outline-4">
 <h4 id="/sdcard/dicts"> <span class="section-number-4">9.1.12.</span>  <a href="#/sdcard/dicts"> <span class="todo TODO">TODO</span> /sdcard/dicts</a></h4>
 <div class="outline-text-4" id="text-/sdcard/dicts">
</div>
</div>

 <div id="outline-container-/sdcard/fonts" class="outline-4">
 <h4 id="/sdcard/fonts"> <span class="section-number-4">9.1.13.</span>  <a href="#/sdcard/fonts"> <span class="todo TODO">TODO</span> /sdcard/fonts</a></h4>
 <div class="outline-text-4" id="text-/sdcard/fonts">
</div>
</div>

 <div id="outline-container-/sdcard/jd_jeb_fonts" class="outline-4">
 <h4 id="/sdcard/jd_jeb_fonts"> <span class="section-number-4">9.1.14.</span>  <a href="#/sdcard/jd_jeb_fonts"> <span class="todo TODO">TODO</span> /sdcard/jd_jeb_fonts</a></h4>
 <div class="outline-text-4" id="text-/sdcard/jd_jeb_fonts">
</div>
</div>

 <div id="outline-container-/sdcard/note" class="outline-4">
 <h4 id="/sdcard/note"> <span class="section-number-4">9.1.15.</span>  <a href="#/sdcard/note"> <span class="todo TODO">TODO</span> /sdcard/note</a></h4>
 <div class="outline-text-4" id="text-/sdcard/note">
</div>
</div>

 <div id="outline-container-/sdcard/noteTemplate" class="outline-4">
 <h4 id="/sdcard/noteTemplate"> <span class="section-number-4">9.1.16.</span>  <a href="#/sdcard/noteTemplate"> <span class="todo TODO">TODO</span> /sdcard/noteTemplate</a></h4>
 <div class="outline-text-4" id="text-/sdcard/noteTemplate">
</div>
</div>
</div>

 <div id="outline-container-eInk-Center" class="outline-3">
 <h3 id="eInk-Center"> <span class="section-number-3">9.2.</span>  <a href="#eInk-Center">eInk Center</a></h3>
 <div class="outline-text-3" id="text-eInk-Center">
</div>

 <div id="outline-container-Refresh-modes" class="outline-4">
 <h4 id="Refresh-modes"> <span class="section-number-4">9.2.1.</span>  <a href="#Refresh-modes">Refresh modes</a></h4>
 <div class="outline-text-4" id="text-Refresh-modes">
 <p>
The eInk screen is very slow to refresh.
It is possible to sacrifice some quality in the name of speed, using the “E Ink Center” in the drop-down menu.
</p>

 <p>
Onyx Boox Max 2 supports 4 modes, called, for whatever reason, “Normal”, “Speed”, “A2” and “X”.
All four seem to work for me, but I have seen no speed difference between “A2” and “X”, and X seriously loses detail.
</p>
</div>
</div>

 <div id="outline-container-Dark-Color-Enhancement" class="outline-4">
 <h4 id="Dark-Color-Enhancement"> <span class="section-number-4">9.2.2.</span>  <a href="#Dark-Color-Enhancement">Dark Color Enhancement</a></h4>
 <div class="outline-text-4" id="text-Dark-Color-Enhancement">
 <p>
Turns grey into black.
</p>

 <p>
Why exactly this setting is not in “App optimisation”?
I have no clue.
</p>
</div>
</div>

 <div id="outline-container-White-Color-Filter." class="outline-4">
 <h4 id="White-Color-Filter."> <span class="section-number-4">9.2.3.</span>  <a href="#White-Color-Filter.">White Color Filter.</a></h4>
 <div class="outline-text-4" id="text-White-Color-Filter.">
 <p>
Turns grey into white.
</p>

 <p>
Why exactly this setting is not in “App optimisation”?
I have no clue.
</p>
</div>
</div>
</div>


 <div id="outline-container-App-optimisation" class="outline-3">
 <h3 id="App-optimisation"> <span class="section-number-3">9.3.</span>  <a href="#App-optimisation">App optimisation</a></h3>
 <div class="outline-text-3" id="text-App-optimisation">
 <p>
App optimisation is spawned by long-tapping on an app icon.
I am not sure whether those optimizations make an app run faster, but for completeness, and because default descriptions of optimization components are very confusing, I will try to comment on the myself here.
</p>
</div>

 <div id="outline-container-Master-switch" class="outline-4">
 <h4 id="Master-switch"> <span class="section-number-4">9.3.1.</span>  <a href="#Master-switch">Master switch</a></h4>
 <div class="outline-text-4" id="text-Master-switch">
 <p>
Turn on or off optimisations entirely.
Does it do anything when the switch is on, but none of the features are enable, I am not sure.
</p>
</div>
</div>

 <div id="outline-container-Others-%3EScrolling-Buttons" class="outline-4">
 <h4 id="Others-%3EScrolling-Buttons"> <span class="section-number-4">9.3.2.</span>  <a href="#Others-%3EScrolling-Buttons"> <span class="todo TODO">TODO</span> Others->Scrolling Buttons</a></h4>
 <div class="outline-text-4" id="text-Others-%3EScrolling-Buttons">
 <p>
No clue. TODO.
</p>
</div>
</div>

 <div id="outline-container-Color" class="outline-4">
 <h4 id="Color"> <span class="section-number-4">9.3.3.</span>  <a href="#Color"> <span class="todo TODO">TODO</span> Color</a></h4>
 <div class="outline-text-4" id="text-Color">
 <p>
I do not really understand a lot of these settings.
Help me if you can.
</p>
</div>

 <ol class="org-ol"> <li> <a id="Background-color."></a> <a href="#Background-color.">Background color.</a> <br></br> <div class="outline-text-5" id="text-Background-color.">
 <p>
This setting is confusing.
</p>

 <p>
So the eBook software assumes that you  <span class="underline">want</span> to have white background.
</p>

 <p>
So, this “Background color” setting will be  <span class="underline">subracted</span> from the app background in order to make it white.
The greater is the setting, the more colour will be subtracted from the background, eventually making it completely white.
</p>

 <p>
Since text is sort of white-ish in dark-themed apps, you may want to “add strokes to text” .
The added strokes are not bleached-out.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Other-colors-%3E%7Bcover,icon%7D-color" class="outline-4">
 <h4 id="Other-colors-%3E%7Bcover,icon%7D-color"> <span class="section-number-4">9.3.4.</span>  <a href="#Other-colors-%3E%7Bcover,icon%7D-color">Other colors->{cover,icon} color</a></h4>
 <div class="outline-text-4" id="text-Other-colors-%3E%7Bcover,icon%7D-color">
 <p>
Unclear, I have not seen them to be useful.
</p>
</div>
</div>
</div>
</section> <section id="outline-container-Built-in-apps" class="outline-2"> <h2 id="Built-in-apps"> <span class="section-number-2">10.</span>  <a href="#Built-in-apps">Built-in apps</a></h2>
 <div class="outline-text-2" id="text-Built-in-apps">
</div>

 <div id="outline-container-Screen-Cast" class="outline-3">
 <h3 id="Screen-Cast"> <span class="section-number-3">10.1.</span>  <a href="#Screen-Cast">Screen Cast</a></h3>
 <div class="outline-text-3" id="text-Screen-Cast">
 <p>
This seems to be Miracast.
</p>

 <p>
I have never actually found Miracast useful.
</p>
</div>
</div>

 <div id="outline-container-BooxDrop" class="outline-3">
 <h3 id="BooxDrop"> <span class="section-number-3">10.2.</span>  <a href="#BooxDrop">BooxDrop</a></h3>
 <div class="outline-text-3" id="text-BooxDrop">
 <p>
This a tool to transfer books to the eBook over http.
</p>

 <p>
Funnily, it is 2024, but the problem of file transfer/sharing is not solved.
Yes, we have Windows CIFS, Linux NFS, and many other things, but since it is much sweeter to have a naive user uploading his data to your computer than providing him with a tool to do everything locally, file transfer problem is still a problem in 2024.
</p>

 <p>
BooxDrop starts a web server, which you can visit from your laptop or phone, and transfer some files with HTTP PUT.
</p>

 <p>
No security, nothing confusing.
Very light and very useful, if transfer via adb, syncthing, conversations, or something like that does not work.
</p>

 <p>
HTTP screen casting (boox drop cast) does not work on Max 2.
</p>

 <p>
BooxDrop is trying to be smart when receiving files, and tries to classify them.
</p>

 <ol class="org-ol"> <li>epub and mobi files go to  <i>sdcard/Books</i></li>
 <li>jpg and other image files go to /sdcard/Pictures</li>
 <li>apk, and probably other files go to /sdcard/Download</li>
</ol> <p>
Where do other files go I do not know.
</p>

 <p>
It can also download things automatically from Onyx cloud, I think, but I do not have an account.
</p>
</div>
</div>

 <div id="outline-container-Monitor" class="outline-3">
 <h3 id="Monitor"> <span class="section-number-3">10.3.</span>  <a href="#Monitor">Monitor</a></h3>
 <div class="outline-text-3" id="text-Monitor">
 <p>
This is stock app to display HDMI input.
Can be very useful if you want to connect the eBook as a second monitor to your heavy laptop.
</p>

 <p>
I did not, however, managed to make it work with an Android phone.
</p>
</div>

 <div id="outline-container-Find-a-way-to-make-Boox-Max2-work-with-an-Android-phone-over-USB-C." class="outline-4">
 <h4 id="Find-a-way-to-make-Boox-Max2-work-with-an-Android-phone-over-USB-C."> <span class="section-number-4">10.3.1.</span>  <a href="#Find-a-way-to-make-Boox-Max2-work-with-an-Android-phone-over-USB-C."> <span class="todo TODO">TODO</span> Find a way to make Boox Max2 work with an Android phone over USB-C.</a></h4>
 <div class="outline-text-4" id="text-Find-a-way-to-make-Boox-Max2-work-with-an-Android-phone-over-USB-C.">
 <p>
This is my question on Reddit:
</p>

 <p>
 <a href="https://www.reddit.com/r/Onyx_Boox/comments/1eqetwp/">https://www.reddit.com/r/Onyx_Boox/comments/1eqetwp/</a>
</p>
</div>
</div>
</div>

 <div id="outline-container-Miracast-Player" class="outline-3">
 <h3 id="Miracast-Player"> <span class="section-number-3">10.4.</span>  <a href="#Miracast-Player">Miracast Player</a></h3>
 <div class="outline-text-3" id="text-Miracast-Player">
 <p>
This is not a stock program, but you might want to use it still.
</p>

 <p>
It’s Android ID is com.playfwd.miracastplayer
</p>

 <p>
It is incredibly slow, and I did not manage to make it work in a supposedly fast VLC mode, but if you are only interested in making the eBook work as a digital photoframe… well, you are still better off using Emacs for that.
</p>
</div>
</div>

 <div id="outline-container-Calendar" class="outline-3">
 <h3 id="Calendar"> <span class="section-number-3">10.5.</span>  <a href="#Calendar">Calendar</a></h3>
 <div class="outline-text-3" id="text-Calendar">
 <p>
This is a stock app, which is otherwise not even worth mentioning, but you can add handwritten notes to calendar events.
I have no idea why you might want to do that, but you can.
</p>
</div>
</div>

 <div id="outline-container-VLC" class="outline-3">
 <h3 id="VLC"> <span class="section-number-3">10.6.</span>  <a href="#VLC">VLC</a></h3>
 <div class="outline-text-3" id="text-VLC">
 <p>
VLC installs and runs on this device.
Not sure if it is good enough for playing anything, and you are probably better off watching videos and listening to music on your phone.
One valid reason for using it though is playing PDE solution animations.
</p>
</div>
</div>
</section> <section id="outline-container-Typical-Tasks" class="outline-2"> <h2 id="Typical-Tasks"> <span class="section-number-2">11.</span>  <a href="#Typical-Tasks">Typical Tasks</a></h2>
 <div class="outline-text-2" id="text-Typical-Tasks">
</div>

 <div id="outline-container-TeX" class="outline-3">
 <h3 id="TeX"> <span class="section-number-3">11.1.</span>  <a href="#TeX">TeX</a></h3>
 <div class="outline-text-3" id="text-TeX">
 <p>
I will not delve into this question deeper, but you have two options for TeXing: you can tramp onto your laptop in Emacs, open a tex file and doc-view-mode.
The only difficulty here is running TeX commands on the remote device.
The upside is not having to sync anything, and that on your laptop you can customize TeX any way you want.
</p>

 <p>
Or, if TeXLive 2019 is enough for you, you can run it right on the device itself.
</p>

 <p>
 <b>Remote:</b>
</p>


 <figure id="org2ef465f"> <img src="015_running-tex.png" alt="015_running-tex.png"></img></figure> <p>
 <b>Local</b>
</p>


 <figure id="orgefc9939"> <img src="016_local-tex.png" alt="016_local-tex.png"></img></figure></div>

 <div id="outline-container-Updating-to-TeXLive-2024." class="outline-4">
 <h4 id="Updating-to-TeXLive-2024."> <span class="section-number-4">11.1.1.</span>  <a href="#Updating-to-TeXLive-2024.">Updating to TeXLive 2024.</a></h4>
 <div class="outline-text-4" id="text-Updating-to-TeXLive-2024.">
 <p>
So, I had issues with using Texlive 2019, I suspect because of installing some packages, or something like that, I broke my installation.
</p>

 <p>
But no problem, I managed to update to Texlive 2024 from termux-current, and now everything works.
</p>

 <ol class="org-ol"> <li>pull termux packages from  <a href="https://github.com/termux/termux-packages">https://github.com/termux/termux-packages</a></li>
 <li>checkout an android-5 branch into a worktree git worktree add ../termux-packages-android5</li>
 <li>copy packages/{zziplib,libpaper} into the android6 tree</li>
 <li>cd termux-packages-android5 ; ./build-package.sh -I libpaper ; ./build-package.sh -I zzliplib</li>
 <li>There is some issue with the installed zziplib, you need to make a softlink libzzip.so to a correct libzzip-0.so.12.bla</li>
 <li>copy texlive-bin and texlive-installed into android6 tree</li>
 <li>./build-package.sh -I texlive-bin ; ./build-package.sh -I texlive-installer</li>
 <li>termux-install-texlive</li>
 <li>wait 3 hours</li>
 <li>Profit</li>
</ol></div>
</div>
</div>

 <div id="outline-container-Using-TeX-from-Emacs" class="outline-3">
 <h3 id="Using-TeX-from-Emacs"> <span class="section-number-3">11.2.</span>  <a href="#Using-TeX-from-Emacs">Using TeX from Emacs</a></h3>
 <div class="outline-text-3" id="text-Using-TeX-from-Emacs">
 <p>
Okay, so, you have TeXLive 2024 installed and would like to write books using Emacs, and compile them semi-automatically, using Emacs’ ugly and buggy TeX support, such as AUCTeX.
</p>

 <p>
Soon you find out that even though Emacs can “call” lualatex, there are some issues preventing it from running correctly under Emacs “android user”.
What to do?
</p>

 <p>
You might want to open an Emacs shell or an Emacs Term, and run  <code>lualatex</code> from there, but soon you find out that Emacs shell inherits all the issues of bare Emacs: it cannot run  <code>lualatex</code> successfully, just as it cannot run  <code>pkg</code> from Termux. 
</p>

 <p>
This problem  <span class="underline">may</span> be solvable using some clever trickery, but I found a fun and easy way of solving it –  <code>tmux</code>.
</p>

 <p>
So, I run  <code>tmux</code> in the  <code>termux</code> session, and from Emacs’ Term-mode I run  <code>termux attach</code>.
Then the shell running in the Emacs terminal is Termux’ shell, and  <code>pkg</code> and  <code>lualatex</code> both work.
</p>
</div>
</div>
</section> <section id="outline-container-Install-racket-for-Scheme" class="outline-2"> <h2 id="Install-racket-for-Scheme"> <span class="section-number-2">12.</span>  <a href="#Install-racket-for-Scheme">Install racket for Scheme</a></h2>
 <div class="outline-text-2" id="text-Install-racket-for-Scheme">
 <ol class="org-ol"> <li>Racket in android5 is too old, install it from -master</li>
 <li>raco pkg install –scope installation rackunit</li>
 <li>Open emacs and install racket-mode</li>
</ol> <p>
rackunit is needed by racket-mode, but you  <span class="underline">MUST</span> install it with –scope installation, because termux has a different profile to Emacs, and racket-mode would not find it.
</p>
</div>
</section> <section id="outline-container-References" class="outline-2"> <h2 id="References"> <span class="section-number-2">13.</span>  <a href="#References">References</a></h2>
 <div class="outline-text-2" id="text-References">
 <ol class="org-ol"> <li> <a href="https://marek-g.github.io/posts/tips_and_tricks/emacs_on_android/">https://marek-g.github.io/posts/tips_and_tricks/emacs_on_android/</a></li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-08-07_Using-an-ebook-instead-of-a-laptop.d/index.html"/>
  <id>https://lockywolf.net/2024-08-07_Using-an-ebook-instead-of-a-laptop.d/index.html</id>
  <updated>2025-05-06T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;Democracy: The God That Failed&quot; by Hans-Hermann Hoppe.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “Democracy: The God That Failed” by Hans-Hermann Hoppe.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Body">1. Body</a>
 <ul> <li> <a href="#What-is-%22Austrian-Economics%22">1.1. What is “Austrian Economics”</a></li>
 <li> <a href="#What-is-the-book-about">1.2. What is the book about</a></li>
 <li> <a href="#What-are-%22democracy%22,-%22monarchy%22,-and-%22natural-order%22">1.3. What are “democracy”, “monarchy”, and “natural order”</a>
 <ul> <li> <a href="#Natural-Order">1.3.1. Natural Order</a></li>
 <li> <a href="#Democracy-versus-Monarchy">1.3.2. Democracy versus Monarchy</a></li>
</ul></li>
 <li> <a href="#Relationship-of-an-capists-to-liberals,-minarchists,-and-conservatives">1.4. Relationship of an-capists to liberals, minarchists, and conservatives</a></li>
 <li> <a href="#How-to-reach-an-cap">1.5. How to reach an-cap</a></li>
 <li> <a href="#On-City,-Village,-and-how-they-work-with-An-Cap">1.6. On City, Village, and how they work with An-Cap</a></li>
 <li> <a href="#How-courts-will-work-with-An-Cap">1.7. How courts will work with An-Cap</a></li>
 <li> <a href="#Epilogue,-on-the-USA-and-Austria">1.8. Epilogue, on the USA and Austria</a></li>
</ul></li>
</ul></div>
</nav> <figure id="org3a7ade6"> <img src="./000_cover.jpg" alt="000_cover.jpg"></img></figure> <p>
I have read “Democracy: The God That Failed” by Hans-Hermann Hoppe.
</p>

 <p>
Initially, I thought that it would be deep, thoughtful reading, similar to that required to comprehend at least the “Managerial Revolution”, if not “The Capital” or “Wealth of Nations”.
In fact, the book is very light on mathematics and, even though it presents a general introduction into the Austrian economic school political stance, it does not even try to be scientifically rigorous.
</p>

 <p>
In this “review” I want to write down what I remember from the book, for my own future reference.
</p>

 <p>
I admit that I had had certain pre-conceptions before starting to read the book, and several of those happened to be false.
Of course I knew that the Austrian school stands in opposition to Marxism, but I did not know how exactly it does so.
I chose to read Hoppe’s “Democracy: The God That Failed” because I had a vague idea about the “school” development, with three main figures being well-known: Ludwig von Mises, Murray Rothbard, and Hans-Hermann Hoppe, each of them being a spiritual successor of the previous one, and Hoppe being the youngest of them, and still alive.
</p>

 <p>
If you are interested in what I managed to read out of it, you’re welcome under the cut.
</p>

 <p>

</p>

 <section id="outline-container-Body" class="outline-2"> <h2 id="Body"> <span class="section-number-2">1.</span>  <a href="#Body">Body</a></h2>
 <div class="outline-text-2" id="text-Body">
</div>

 <div id="outline-container-What-is-%22Austrian-Economics%22" class="outline-3">
 <h3 id="What-is-%22Austrian-Economics%22"> <span class="section-number-3">1.1.</span>  <a href="#What-is-%22Austrian-Economics%22">What is “Austrian Economics”</a></h3>
 <div class="outline-text-3" id="text-What-is-%22Austrian-Economics%22">

 <figure id="org0bb6d4f"> <img src="./001_austrian-economics.jpg" alt="001_austrian-economics.jpg"></img></figure> <ol class="org-ol"> <li>Marxism</li>
 <li>Data and evidence</li>
 <li>Axiomatic approach</li>
</ol> <p>
For those readers who care little about the book itself, and just came her looking for a layman summary of Austrian school of Economics, go no further, this section is the only one you need to read.
</p>

 <p>
Austrian School of Economics was founded, indeed, in Austria, but not by its most famous nowadays representative Ludwig von Mises, but by Carl Menger, to whose work “Principles of Economics” I probably should refer anyone willing to read the sources.
This work was released in 1871, 6 years after the first volume of “Das Kapital”, but before the last volume was published, and, of course, 23 years after the “Communist Manifesto” was published.
</p>

 <p>
Until then, the dominant theory of value in economics had been the “cost-of-production” theory of value.
This theory, created by Adam Smith around year 1760, can roughly be summarised in the following way: “the value of a product is the sum of values of its constituent parts”.
To be more precise, “labour”, invested in creation of the product, is also its constituent part.
What immediately follows from this “definition” is that the value of a batch of goods is the sum of the values of the individual goods contained in that batch.
(Hence if manufacturing a bigger batch has the same “fixed costs” as is manufacturing a small batch, then bigger batches are strictly better than smaller batches.)
The same theory was further developed by Karl Marx, who, despite being a strict opponent of Capitalism, already firmly associated with Smith, fundamentally supported the same basic definition of value.
</p>

 <p>
One important thing to mention here is that “value” is not the same thing as “price”.
While “price” is more or less a well-defined number, usually represented in money (but not always), “value” requires some a-priori psychological definition.
Smith was aware of this and this is why he actually started his economic studies from a theory of morality, not from the theory of capital, in the book “Theory of Moral Sentiments”.
(The book came out in 1776, when the USA was not yet independent from Great Britan.)
Marx and Engels, on the other had, are opposed to this view!
In some sense they are more Capitalist than Smith, as their moral theory of value comes  <span class="underline">after</span> their monetary theory of value.
(The book is called “On the Origins of Family, Private Property, and the State”, and was released in 1884.)
</p>

 <p>
Yet in 1871 a certain Carl Menger is not satisfied with the cost-of-production theory of value.
Stated informally, his objection rests in that this literally means that we are measuring produced work by tiredness of the labourers.
The two most obvious counter-examples to the cost-of-production theory are encapsulated into the phrases “you cannot load money into a gun” or “you cannot eat money”.
Indeed, Menger argued, “value” can be created just by selling a product by someone who does not need it to someone who does, since for the first one it is in some sense more of a liability than a value, and the second one really needs it.
Moreover, no matter how subjective value (or utility) is, it is clearly strongly non-linear, and moreover, not even strictly positive.
Imagine someone eating a vitamin: small amounts can be life-saving, like in the case of scurvy, whereas large amounts can be lethal.
</p>

 <p>
More radical strands of Austrian school (defined here as Menger’s followers) go even further in rejecting cost-of-production theory of value, they claim that it isn’t just not linear but also mathematically indescribable.
From here starts a long and painstaking struggle of Austrian school with objective measures, data, and mathematics.
</p>

 <p>
Some more vulgar interpretations of Austrian theses claim that Austrian economists totally reject any econometric methods in the study of economics, but this would be a gross overstatement.
The largest counter-example to this overly imprecise claim are the works of Abraham Wald, who was a PhD student of Menger himself, and likely most known to the readers of this blog for “Wald’s identity” in the theory of random processes, who introduced rigorous mathematics to economics.
</p>

 <p>
Not many people know that Wald is actually the person behind the meme picture of a bomber plane with pockmarked wings, illustrative of the “Survivorship bias”.
In the Russian context it is more known as an anecdote about dolphins pushing drowning swimmers toward the seashore, presumably helping them to survive; the problem is that those who were pushed in the opposite direction never survived and hence could not tell how dolphins (potentially) caused their demise.
This meme represents a fundamental stance of Austrian economic school with respect to data: “correlation is not causation”.
That is, data can be used to refute a cause-and-effect hypothesis, but not to prove it.
</p>

 <p>
How would value be determined then, if not on the basis of any solid model?
The answer is then: experimentally and politically, through the process of negotiation, bargaining, and trading.
From this basic premise, however, Austrian economists make quite an overarching conclusion that in order to determine the value of a good, the bargaining process must be as unrestricted as possible (the First Premise of Austrian economic school).
There is the Second Premise as well: private property is sacrosanct, because otherwise bargaining would not make much sense.
It is important to note that the theory of “bounded rationality”, as it is known in modern economics (especially the Institutionalist paradigm) and “computational complexity”, as it is known in Computer Science, would likely play a large role in trying to model at least roughly the value preferences of agents.
</p>

 <p>
Menger also had a theory of money where he discussed the relative advantages of gold and silver coins as a medium of exchange concluding that no other available medium of exchange can really compare with them, a premise that the Austrian economic school still holds until today.
</p>

 <p>
The Austrian school was growing in Austria after Carl Menger for many years.
The critique and the attempts to disprove Marx played a large role in their studies.
Curiously, it can be argued that they were Popperians before Popper, who unfolded his crusade against “historicism” in 1944.
Curiously, Popper is not traditionally attributed to the Austrian school, even though he studied in Vienna and was opposed to Marxism on, basically, the same premises: an unfalsifiable theory which cannot be verified or falsified on the basis of historical data.
</p>

 <p>
In the 1930s, Europe saw many transformations, in particular, Germany was building its empire, persecuting inconvenient scientists, and after Austria became a part of Germany, the same phenomena unfolded in Austria too.
At that time, one prominent member of the Austrian economic school was Ludwig von Mises.
Even people who know nothing about the economic and mathematics of the Austrian school have a chance of hearing surname “Mises”, either as a part of “Mises Institute” in political news, or as “Cramer-von-Mises test” in statistics.
The Mises of the Mises Institute is the same Mises, whereas Mises the statistician is not the same Mises the person, but it is the same Mises the surname, it is Ludwig von Mises’ brother, Richard von Mises.
By the way, Mises’s mother’ maternal name had been Landau.
</p>

 <p>
Mises is the second or third most prominent figure in the Austrian school, after Menger.
Mises is famous for formulating the “Action axiom”, that is, “an action will be taken if its expected utility will be positive”.
(What if our agent cannot compute that utility?)
Mises is also known for extensively working on the theory of money, continuing to support Menger in that silver and gold are still the best exchange methods, arisen through evolution, but he also spent effort describing why other exchange methods are inferior.
He taught at NYU.
</p>

 <p>
Since Ludwig von Mises the story of the Austrian school splits into two branches: the one symbolised by Friedrich von Hayek, a colleague of Mises in Vienna in the 1920s, and sometimes called the Chicago branch, because Hayek, after leaving his mark on the London School of Economics, later moved to Chicago; and the one associated with Murray Rothbard, who was the first prominent Austrian school economist born and educated in the USA.
Even though in the later part of the 20th century Hayek won the Nobel Prize and thus revived public interest to the Austrian school, in this introduction I do not have much to say about this branch due to space constraints and insufficient knowledge.
</p>

 <p>
Rothbard studied mathematics, later economics, and got acquainted with Ludwig von Mises in 1950, when Mises was already living in the USA.
Rather productive, he wrote more than 10 books, most of which deal with refuting mainstream economic theories as overfit models based on survivorship bias.
Instead of applying “scientific method” and econometrics to the study of human value-maximising actions (economy), he promoted the use of Mises’ “praxeology”, which is a mathematical in spirit (rather than physicalist in spirit, Marxist) approach to economics.
</p>

 <p>
Rothbard was active politically, which is a fairly logical consequence of rejecting “strict” academism, and where he surprisingly converges with the “New Left” academics such as Judith Butler, ironically.
As a result of his work, several journals, academic institutions, and political movements were founded or heavily influenced, including Centre for Libertarian Studies, Cato Institute, Mises Institute, Libertarian Party USA.
He was a friend, and at the same time a bitter rival of Ayn Rand whom he admired for the ability to promote Libertarianism among the common fork, but bitterly ridiculed for her economic misconceptions and vulgar understanding of “natural order”.
</p>

 <p>
There are much more Austrian school economists and economic theories to discuss, but I want to conclude this brief introduction with the author of the book I wanted to review in this essay, Hans-Hermann Hoppe.
Hoppe was born and educated in FRG, and to this day is, despite his extensive connection to the USA, a European economist.
He worked for the Mises institute, was on friendly terms with Rothbard, and is still considered a leading figure in the Mises branch of the Austrian school, even though nowadays he is developing his own social movement called “Property and Freedom Society” and is based primarily in Turkey.
</p>

 <p>
In a few words, Hoppe has developed and deepened the economic-political theory of Rothbard, leading it to its logical conclusion, a vaguely masqueraded  <span class="underline">monarchy</span>.
Admittedly, it’s not entirely a monarchy, it has certain unique traits, but roughly speaking, still a monarchy.
This is where he is different from Rothbard and all the previous Austrian school economists.
Even though they were already sceptical about democracy and universal suffrage, none of them had actual courage to proclaim that the whole paradigm of the world’s social evolution as “progress” is misleading.
He has wrote several works, but this one, “Democracy: The God that Failed”, is probably the most famous and aimed at the widest audience, ready to be used as an introductory reading.
</p>
</div>
</div>

 <div id="outline-container-What-is-the-book-about" class="outline-3">
 <h3 id="What-is-the-book-about"> <span class="section-number-3">1.2.</span>  <a href="#What-is-the-book-about">What is the book about</a></h3>
 <div class="outline-text-3" id="text-What-is-the-book-about">

 <figure id="orgc26391a"> <img src="./002_time-preference.jpg" alt="002_time-preference.jpg"></img></figure> <p>
Returning a little bit to the beginning of the review, and re-considering the Marxist theory of value, we can easily see how the idea of (social) progress has become one of the foundational, and, indeed, one of the most attractive properties of Marxism.
</p>

 <p>
If we believe in the cost-of-production theory of value, then the larger the production, the more “civilised” is the society, because with constant “fixed costs” the price of each individual “good” is reduced, and hence the “social progress”, the process of civilisation, naturally becomes a process of scaling production.
Hence the evolution of social stages: prehistoric society, slave-owner society, feudalism, capitalism, communism is largely the process of creating the more and more scale in production, and the more and more complex systems.
The theory of exploitation stems from the same basic premise: if the only “added value” introduced into a more complex product besides the values of its constituents is the labour cost, then the capitalist, who is owning the means of production, is not adding any value into the production process, is a parasite.
</p>

 <p>
The book does not mention it, and it is a big drawback of the narrative, that even most orthodox schools of economics do not disregard the fact that linear approximation of value from size is a rough approximation.
What the book does explain quite in detail is the fact that this “value function” depends not just on  <span class="underline">size</span>, but also on  <span class="underline">time</span>.
By time dependence they mean not just the actual dependence of the function on time, which can be naively constructed from instant snapshots, but the  <span class="underline">subjective</span> dependence of a value produced by a good on the time of “maturation” of this good.
The dependence of this function from time represents the “planning horizon” of an economic subject.
Naturally, most goods are better today than tomorrow (after all, I might not happen to live until tomorrow), but how exactly better?
The process of flattening of this curve, broadening the planning horizon and thus encouraging saving and investment is what the Austrian school calls the “civilisation”.
(Compare this to the Marxist definition of progress.)
</p>

 <p>
According to this measure, human progress does not at all increase (or decrease) linearly, at least there is nothing fundamental about it increasing.
(As we remember, the trajectory, which Mankind has been developing along, and which fits the Marxists definition of progress, the Austrians do not consider to be that progressive.)
Indeed, the Austrian school considers the recent 250 years to be exhibiting the process of  <span class="underline">de-civilisation</span>, that is the retreat of a more civilised monarchist society, where monarchs exercised private property ownership, toward the more primitive collectivist society, more fit to antiquity and the incessant 500 years of Roman republican warfare than to a modern “enlightened” era.
</p>
</div>
</div>

 <div id="outline-container-What-are-%22democracy%22,-%22monarchy%22,-and-%22natural-order%22" class="outline-3">
 <h3 id="What-are-%22democracy%22,-%22monarchy%22,-and-%22natural-order%22"> <span class="section-number-3">1.3.</span>  <a href="#What-are-%22democracy%22,-%22monarchy%22,-and-%22natural-order%22">What are “democracy”, “monarchy”, and “natural order”</a></h3>
 <div class="outline-text-3" id="text-What-are-%22democracy%22,-%22monarchy%22,-and-%22natural-order%22">

 <figure id="org0b4f2c3"> <img src="./003_diocletian.jpg" alt="003_diocletian.jpg"></img></figure> <p>
Before reading this book I had essentially two models of “social orders” in mind, the Aristotelian basic grouping into: Democracy (the power of the many), Oligarchy (the power of the few), and Monarchy (the power of the one), based on the concentration of power; and the Marxist one, based on the theory of the “ruling class”: Prehistoric, Slave-owner, Feudal, Capitalist (Bourgeois), and Communist (Socialist).
</p>

 <p>
Hoppe’s theory, I would say, is even more self-contradictory than the previously mentioned two, contains the following three: Democracy, Monarchy, and Anarchy, also called Anarcho-Capitalism or Natural Order.
I am saying “self-contradictory”, because, really, in spite of claiming that natural order is the superior system, maximising produced value, either I failed to fully grasp the true difference between Monarchy and Natural Order, or Hoppe failed to explain it in sufficient detail.
</p>
</div>

 <div id="outline-container-Natural-Order" class="outline-4">
 <h4 id="Natural-Order"> <span class="section-number-4">1.3.1.</span>  <a href="#Natural-Order">Natural Order</a></h4>
 <div class="outline-text-4" id="text-Natural-Order">
 <p>
I will start from presenting Natural Order, as the definition of it is likely to be the most novel thing for the readers, in spite of having the word “Natural” in it.
</p>

 <p>
I will try to present it here as faithfully as I understand, but bear in mind that I might be mistaken.
</p>

 <p>
So, as far as I understand, An-Cap is just like Monarchy, but the monopoly of violence on a certain territory is leased from a private military company (called an Insurance Company in the book) instead of being organised by the owner of territory himself.
That is, the monopoly of violence on a private property is still upheld, but the use and the provision of the said violence are separated into different legal entities.
That is, it is, seemingly, expected that the private property where the Insurance Company ordinarily stockpiles means of war, such as weapons and soldiers is relatively minor, unlike the area which countries, even monarchical, occupy, but private land-owners are expected to lease their, highly mobile, forces to provide protection on their own land.
The reason why an Insurance Company is unlikely to cease the land from the land-owners and employ it for personal use and extraction of wealth by the means of taxes is essentially that managing estates is more burdensome and less profitable than charging an agreed fee for services.
</p>

 <p>
It seems that Hoppe expects that fatal violence, that is people ending up dead in struggles is considered low, at least, he expects, most offenders will be expelled rather than killed in the process of reaffirming the rights of property owners.
However, since he expects that most of the nice land is going to be occupied by people unwilling to accept criminals, as far as I understand “expulsions” making people end up on a No-Man’s-Land in Antarctica or Western Sahara are likely to become fatal very quickly.
</p>

 <p>
It should be noted that many premises of the Natural Order are demanding a fairly high degree of consciousness from the people participating in it, but Hoppe is not at all discouraged by this fact, presumably because during the course of history people have been seen to believe in a broad variety of different things, ranging from self-evident to us nowadays to completely wild, so he is not finding it unnatural that at some point the “unnatural beliefs” may disappear, as being a meta-stable fluctuation of a stochastic system of human collective subconscious.
Indeed, throughout the books he repeatedly stresses the importance of “public opinion” to the stability and power of the Government, whether monarchical or republican, and generally projects a feeling that the formal procedures which accompany more or less every regime, whether ceremonies (crowning, anointment) in a monarchy, or bureaucratic processes (elections, constitutional conventions), are merely theatre, which exists to obscure the main mechanisms of power, and not to expose them.
“Indeed”, he says, “if elections do not exist, the natural way to remove a misbehaving politician from power is a coup or an uprising. No would you expect a politician considering ill policies to be more afraid of losing an election, or of getting killed?”
</p>

 <p>
He does not mention which regimes actually ever implemented “Natural Order”, but in his writings he is the most sympathetic to Switzerland and the 13 Colonies  <span class="underline">before</span> the Constitution (and perhaps even before the Declaration of Independence, but I am not very sure).
</p>
</div>
</div>

 <div id="outline-container-Democracy-versus-Monarchy" class="outline-4">
 <h4 id="Democracy-versus-Monarchy"> <span class="section-number-4">1.3.2.</span>  <a href="#Democracy-versus-Monarchy">Democracy versus Monarchy</a></h4>
 <div class="outline-text-4" id="text-Democracy-versus-Monarchy">
 <p>
He is admitting that “Natural Order” does not really exist in the world at the moment, but from among the regimes available to study empirically, he self-evidently prefers monarchies, and spends a great effort on illustrating why.
</p>

 <p>
He admits that not all monarchies and not all democracies are the same, but to him it is very self-evident that as the amount of democracy (collective ownership) in a country increases, all the negative effects of the government onto its people also increase
</p>

 <ol class="org-ol"> <li>Taxes</li>
 <li>Debts</li>
 <li>Inflation</li>
 <li>Crime and domestic violence</li>
 <li>Militarism abroad</li>
 <li>Tariffs</li>
</ol> <p>
The first two phenomena, without the negative connotation assigned to them by the Austrian school, are even more or less universally admitted by most economic schools.
Indeed, the amount of taxation imposed by monarchs onto the subjects was most often targeted rather than universal, such as “money required for a certain construction project” or “money required for conducting war”.
He does not mention either the Church tax, or the Feudal corvée labour, presumably assigning them to private agreements between voluntary participants?
But on the face of it, indeed, government’s taxes rarely exceeded 3% of GDP in monarchical societies, and of those 75% were spent on the army, this is a historic fact.
</p>

 <p>
The question of inflation is more nuanced.
The Austrian school is firmly opposed to fiat currencies and supports a gold/silver standard, arguing that gold is a nice and convenient way of conducting exchange, given that it is portable, infinitely divisible, has its intrinsic value used for the production of jewellery and fine machinery, so keeps being worth something even when overproduced.
He presents no opinion on Blockchain, and no opinion on a more interesting to me “petrol-backed monetary standard” or Pereslegin’s “kilowatt-hour-backed monetary standard”, but at least paper money for him are big no-no.
He does not mention the fact that the Romans before Diocletian were hugely suffering from inflation, while, faithfully to the Austrian economic school, maintaining the silver and gold cons as the main payment instrument.
It is also worth mentioning that, as most Russian readers of Yevheni Onegin know, corvée labour was only replaced by payments in cash in the 19th century, and I suspect that largely not that much due to the lack of banking, but due to the fact that most peasants could not count to ten, and very little produce was actually sold on the markets, but, again, for the Austrian school, correlation does not equal causation.
</p>

 <p>
Statistics on crime, policing, and social order are very hard to equalise for the societies in different historic periods, so I will not be discussing his logic in detail.
</p>

 <p>
With respect to militarism and foreign interventionism, most people agree that mass mobilisation armies of the 19th century were what made the rise of nationalism possible, and what transformed War from an aristocratic game into the total genocidal war of nations.
This seems to agree with the facts (even though correlation does not equal causation), however it should be noted that it is not clear how this relates to the spread of universal literacy and with devastating wars of the old times, such as the 30-years war, the War of Spanish Succession, and the genocide of Picts by Septimus Severus.
Presumably they will, as usual, say that the few fluctuations to not disprove a general rule in social sciences.
In any case, Hoppe’s references to the relative restraint found in monarchical warfare is reinforced by several books he refers the interested readers to.
Generally, the book is very well sourced with references and quotations, several chapters having as many as 50.
</p>

 <p>
But the most horrendous phenomenon exhibited by the democratic regimes compared to the monarchical ones the low planning horizon and the easy permeability of the government offices to riff-raff.
He is claiming that these two characteristics almost guarantee poor government, even if the government manages to stay in power as long as a monarch.
When a government shareholder, say, a president is in power, it is in his best interest to abuse power as quickly and as strongly as possible, to maximise his own wealth.
Even if he manages to get re-elected, the risk of losing the next election is always with him.
For the government employees and the common folk, the temptation is similar, although distinct.
While government employees are not usually laid off after an election, they are still infinitely tempted by promotion and getting access to greater riches, so are interested in maximising their career perspectives, and not in doing their job the best, and the common folk are always tempted to become a part of the government, and by the government allocating for them more and more wealth.
All these traits, argues Hoppe, are detrimental to the length of the planning horizon.
</p>

 <p>
While he admits that the nobility and the king in a monarchy are prone to all the same temptations, he believes that the degree is much lower, and moreover, since the ruling pyramid levels are impenetrable, the class interests (in Marxist terms) switch from becoming a ruling class to protecting their own rights.
He says that voluntary associations are much more likely to occur between cooperating people when in-voluntary associations (such as being attributed to a group or class according to the government’s law) are minimal.
</p>

 <p>
It seems to me that a lot of his arguments against democracy are very similar to Aristotle’s.
</p>
</div>
</div>
</div>

 <div id="outline-container-Relationship-of-an-capists-to-liberals,-minarchists,-and-conservatives" class="outline-3">
 <h3 id="Relationship-of-an-capists-to-liberals,-minarchists,-and-conservatives"> <span class="section-number-3">1.4.</span>  <a href="#Relationship-of-an-capists-to-liberals,-minarchists,-and-conservatives">Relationship of an-capists to liberals, minarchists, and conservatives</a></h3>
 <div class="outline-text-3" id="text-Relationship-of-an-capists-to-liberals,-minarchists,-and-conservatives">
 <p>
A noteworthy part of the book is dedicated to the discussion of the competing political groups and movements.
</p>

 <p>
He discusses:
</p>
 <ol class="org-ol"> <li>Liberal-Democrats,</li>
 <li>Conservatives,</li>
 <li>Libertarians.</li>
</ol> <p>
Curiously absent are the classical Soviet-style socialists, perhaps because by the time of writing of the book the Soviet union had been already dead for 10 years.
</p>

 <p>
With respect to  <b>Liberal-Democrats</b> (Democratic Socialists), Hoppe says that their main issue is that they are too shy of being true Communists.
In fact, he says that Liberalism as designed by Locke is an incomplete theory.
It is based on the premise that the State is a monopolistic provider of protection, and that protection is the only resource which is better when provided by a single supplier.
Both of those premises, says Hoppe, are false.
As I have already mentioned when describing Hoppe’s theory of Natural Order and Insurance Companies he does not see competitive provision of security services as impossible, whereas the main problem with Liberalism per se is that it is unclear what should be the limits of protection provided by the government.
</p>

 <p>
Clearly in the days of Locke it was protection against foreign military invasions, but this is just a historical coincidence and the result of the overall prevalence of monarchies in the world.
But ordinary untrained people are not just unfit for the production of protection from foreign armies, he says.
People are just as equally unfit to protect themselves against health issues, ageing, discrimination, and a lot of other things.
Hence people who are voting in an election, are expected for vote for more and more “protections” from the government, until the government bankrupts the country.
</p>

 <p>
With respect to  <b>Conservatives</b> he is saying that while conservatives are generally well intended, their main issues are that they still support a big government, even with less resources, still support democracy, and, frankly speaking, do not really know what they are exactly trying to “conserve” because none of them were alive when monarchies were omnipresent.
Overall, Conservatism is a reactive ideology, not pro-active, therefore is always expected to be on the losing side.
As to their “social conservatism”, he is fully on board it, except that it should be voluntarily accepted on private properties, not imposed by a law, however, he has little doubt that this will be the case, as most people are conservatives in the heart, and are corrupted by Socialism.
He is sarcastically derides the Conservative establishment though, calling them National-Socialists, so he is aiming more at cannibalising their movement rather than at making an alliance.
</p>

 <p>
With respect to  <b>Libertarians</b> he is even more derisive.
The Libertarian Party is still democratic in spirit, which has largely stood on the “socially liberal, economically liberal” position, and it is more often associated with the Cato Institute and “Minarchist” (that is, not An-Cap) libertarians.
While their intentions are good, says Hoppe, they fundamentally do not reject democracy, which to him is a major problem, and, from a practical perspective, they have become an attractor for asocial elements, freaks, people with pink hair, and similarly socially maladjusted people, and hence are unlikely to ever get successful in implementing their programme.
He is also  <span class="underline">very</span> sceptical about people promoting  <span class="underline">free movement of people</span> analogously to the  <span class="underline">free movement of goods</span>, but on this see later.
</p>
</div>
</div>

 <div id="outline-container-How-to-reach-an-cap" class="outline-3">
 <h3 id="How-to-reach-an-cap"> <span class="section-number-3">1.5.</span>  <a href="#How-to-reach-an-cap">How to reach an-cap</a></h3>
 <div class="outline-text-3" id="text-How-to-reach-an-cap">

 <figure id="org8a4991d"> <img src="./004_secession.jpg" alt="004_secession.jpg"></img></figure> <p>
Discussing how Anarcho-Capitalism can be established at least somewhere, we should recall that Hoppe and An-Cap Austrian economists highly value public opinion and disregard elections, democracy, and bureaucracy.
Therefore, there is no “political party” at whose numbers we can have a look and determine their success or failure.
</p>

 <p>
Moreover, since they are sceptical about “public debate” and “social mobility”, it is logical that these people would be very likely to try and participate in “non-public politics”, “politics with non-political means”, and hidden subversion.
In such a case it is not at all easy to assess their success from the outside.
</p>

 <p>
As to what Hoppe is saying openly about the political competition, it is as follows; the best examples of the “seeds of An-Cap” are micro-nations which already exist on Earth: Hong Kong (formerly), Singapore, Monaco, Luxembourg, Lichtenstein, San-Marino, Andorra, and to lesser extent, Switzerland and UAE.
He is generally saying that the most efficient way to invest one’s political resources is the local level, and the investment should be aimed at promoting cultural disunity and political secessionism.
</p>

 <p>
That is, rather than having a revolution in the whole country, what is desired is having those big countries be torn apart into myriads of tiny independent city-state, which would have to trade using gold as a medium of exchange, because they would not be able to agree on a single fiat currency, and would generally hate each other so much that migration would be unlikely.
</p>
</div>
</div>

 <div id="outline-container-On-City,-Village,-and-how-they-work-with-An-Cap" class="outline-3">
 <h3 id="On-City,-Village,-and-how-they-work-with-An-Cap"> <span class="section-number-3">1.6.</span>  <a href="#On-City,-Village,-and-how-they-work-with-An-Cap">On City, Village, and how they work with An-Cap</a></h3>
 <div class="outline-text-3" id="text-On-City,-Village,-and-how-they-work-with-An-Cap">

 <figure id="org90a9d4a"> <img src="./005_city-versus-village.jpg" alt="005_city-versus-village.jpg"></img></figure> <p>
It is fun that Hoppe seem quite sceptical Roman roads and bridges, because, even though they facilitate trade, they also incentivise invasions.
</p>

 <p>
Overall, he supports villages and towns in their opposition to big cities, claiming that big cities naturally promote collective ownership, which is evil.
</p>

 <p>
Overall, while he is a big proponent of trade of goods, he is very sceptical about human migration.
The point being that goods do not have their own willpower and decision-making (see the Action Axiom by Mises), while people do.
He considers letting people enter some territory without a unanimous agreement of all of the owners to be equal to an invasion.
(Again, private property on land.)
The only case for which he can make an exception is when somebody is inviting the person to come, and is fully responsible for every action of that person in all civil and criminal cases.
</p>

 <p>
This position sounds almost as if it supports slavery, but I do not think this is intentional, this serves rather as a reduction ad absurdum.
</p>

 <p>
He does not oppose migration by buying and selling land though.
That is, if someone sells a piece of land, and someone buys a piece of land, he can, obviously, come, as long as his neighbours would let him pass over their territory.
</p>

 <p>
Overall, Hoppe is very critical to the very idea of cities and large urban centres, which, in my opinion, is a great defect in his theory.
Perhaps, the libertarian theory of a City is still to be developed.
</p>

 <p>
If all this sounds anti-egalitarian, that is because it is anti-egalitarian.
Hoppe repeatedly emphasises the importance of distinctness between people, groups, clans, families, voluntary associations, being them religious, cultural, linguistic, or productive, stressing that fundamental distinction between sexes is the most fundamental basis for cooperation, and he extends this model further – the division of labour only makes sense if people are different, and the more different they are, the more varied tasks they can perform, and the more cooperation is needed.
To be honest, the way “cooperation” is justified is just completely wrong from the biological perspective, when speaking about non-human species.
In particular, he does not seem to be aware of symbiotic relationships, and disregards voluntary and coercive cooperation between high primates.
</p>

 <p>
Throughout all of the book, he stresses that the main de-civilising force is forced integration.
The term “forced integration” is even more prominent than the term “forced expropriation”, and presumably more sinister.
</p>
</div>
</div>


 <div id="outline-container-How-courts-will-work-with-An-Cap" class="outline-3">
 <h3 id="How-courts-will-work-with-An-Cap"> <span class="section-number-3">1.7.</span>  <a href="#How-courts-will-work-with-An-Cap">How courts will work with An-Cap</a></h3>
 <div class="outline-text-3" id="text-How-courts-will-work-with-An-Cap">
 <p>
This section is not really concerned with the book, but I had heard this question said in a sarcastic manner, so I started to wonder myself.
</p>

 <p>
So, answering this question we should first recall that An-Cap is essentially a Monarchy with minor tweaks.
</p>

 <p>
In a Monarchy, the supreme right to decide what is right and wrong on his private land belongs to a monarch, that is to the land owner.
So, if you are present on someone else’s land, you have to read in advance, how exactly that person organises justice.
Most likely, this person pays an Insurance Company for policing services, and this police look more or less like everyday private security firm employees you can see guarding office buildings, it is easy to recognise them.
Therefore, the laws on his land consist of his own demands and the demands of the Insurance Company.
If you misbehave or somebody else misbehave, probably the first place to raise concerns is that private police, which will likely either sort out the case according to the Insurance Company regulations, or bring you to the court, organised and funded by the property owner.
This court will likely be quick and simple, to save money and effort, and most likely not include the most in-depth investigation, however you are also unlikely to get a huge sentence there, you (or the perpetrator) will likely get an expulsion, and a huge fine.
This fine will be extracted via an Insurance Company to Insurance Company negotiation, which might happen to be violent, but unlikely to be so.
</p>

 <p>
This is the simplest case.
The jurisdiction might happen to be a Catholic or Muslim, or with some other unorthodox rules, but, as far as I understand, still would not imply capital punishment.
</p>

 <p>
Another story is what happens when two land owners have a conflict among them, each being physically present on their own land.
In this case, if they employ the same Insurance Company, the company probably has arbitration rules, and you have to follow them and cannot appeal.
If your Companies are different, they would have an arbitration mechanism among themselves, which would usually be simple, but would imply violence in the most severe case.
</p>
</div>
</div>


 <div id="outline-container-Epilogue,-on-the-USA-and-Austria" class="outline-3">
 <h3 id="Epilogue,-on-the-USA-and-Austria"> <span class="section-number-3">1.8.</span>  <a href="#Epilogue,-on-the-USA-and-Austria">Epilogue, on the USA and Austria</a></h3>
 <div class="outline-text-3" id="text-Epilogue,-on-the-USA-and-Austria">

 <figure id="orga065a02"> <img src="./009_vienna.jpg" alt="009_vienna.jpg"></img></figure> <p>
History is a sarcastic bitch.
The at the time Crown Price of Austria-Hungary was Rudolf von Hapsburg, who was a student of Carl Menger and could, potentially, reform Austria on the principles of Austrian economic school after ascension.
However, due to subjective theory of the value applied to his own life, Rudolf chose to commit suicide together with his lover, a lady 13 years younger, which made Franz Ferdinand the new Crown Prince of Austria, which was in turn killed in Sarajevo, igniting the World War I, and which destroyed Austria, created a lot of resentment in one Austrian painter, and made the USA the dominant world power.
</p>

 <p>
Hoppe speaks a lot about this symbolic competition of Austria and the USA before WWI, in which the USA emerged victorious, and Austria disappeared.
Austria was the only European empire with no overseas colonies, consisted out of a large number of not-at-all integrated regions, and was one of the world’s leading producers of culture.
Wittgenstein, mentioned on this website a few times, also emerged from that enlightened monarchy broth of ideas which constituted the Ancien Regime in Austria.
</p>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-04-22_Reading-Hans-Hermann-Hoppe-Democracy-The-God-That-Failed.d/index.html"/>
  <id>https://lockywolf.net/2025-04-22_Reading-Hans-Hermann-Hoppe-Democracy-The-God-That-Failed.d/index.html</id>
  <updated>2025-05-06T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;Blown to Bits&quot; by Harry Lewis, Ken Ledeen, Hal Abelson, and Wendy Seltzer.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “Blown to Bits” by Harry Lewis, Ken Ledeen, Hal Abelson, and Wendy Seltzer.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a>
 <ul> <li> <a href="#Who-are-the-authors-and-from-which-perspective-the-are-writing.">1.1. Who are the authors and from which perspective the are writing.</a></li>
 <li> <a href="#Which-subjects-are-touched-in-the-book">1.2. Which subjects are touched in the book</a>
 <ul> <li> <a href="#The-uniformity-of-bits.">1.2.1. The uniformity of bits.</a></li>
 <li> <a href="#The-abundance-of-bits.">1.2.2. The abundance of bits.</a></li>
 <li> <a href="#Longevity-of-bits.">1.2.3. Longevity of bits.</a></li>
 <li> <a href="#Speed-of-transmission.">1.2.4. Speed of transmission.</a></li>
 <li> <a href="#Defamation.">1.2.5. Defamation.</a></li>
 <li> <a href="#Privacy.">1.2.6. Privacy.</a></li>
 <li> <a href="#Copyright.">1.2.7. Copyright.</a></li>
 <li> <a href="#DRM">1.2.8. DRM</a></li>
 <li> <a href="#Fraud.">1.2.9. Fraud.</a></li>
 <li> <a href="#Algorithmic-biases.">1.2.10. Algorithmic biases.</a></li>
 <li> <a href="#AI">1.2.11. AI</a></li>
 <li> <a href="#Encryption">1.2.12. Encryption</a></li>
 <li> <a href="#Access-to-internet.">1.2.13. Access to internet.</a></li>
 <li> <a href="#Are-social-networks-publishers-or-newspapers?">1.2.14. Are social networks publishers or newspapers?</a></li>
 <li> <a href="#Obsolescent-legislation.">1.2.15. Obsolescent legislation.</a></li>
 <li> <a href="#Hierarchies-and-search.">1.2.16. Hierarchies and search.</a></li>
</ul></li>
 <li> <a href="#What-is-omitted-in-the-book">1.3. What is omitted in the book</a></li>
 <li> <a href="#The-book's-style-and-difficulty">1.4. The book’s style and difficulty</a></li>
</ul></li>
 <li> <a href="#Feedback">2. Feedback</a></li>
</ul></div>
</nav> <figure id="org221d30e"> <img src="./blown-to-bits.jpg" alt="blown-to-bits.jpg"></img></figure> <p>
I have read “Blown to Bits”, a book by four distinguished authors.
In this file I am writing which impression it has made on me, and what I learnt.
</p>

 <p>
Even though Hal Abelson is not the first in the list of authors, it is him who attracted me to this book.
You see, a long time ago I also read a few pages from another book by him, and I was impressed by the clarity of the narrative and the powerful ideas which challenged my mind.
</p>

 <p>
So, when I discovered that he has also written a book on “digital society” and the present state of the Internet, I knew that I have to read it.
I planned to read something on “digital law” and “digital society” for a long time, but I would not expect Abelson to be the person to turn to in order to achieve this.
</p>

 <p>
There are other books on the subject, some of them from renowned programmers:
</p>

 <ol class="org-ol"> <li>Brian Kernighan: D is for Digital</li>
 <li>Brian Kernighan: Understanding the Digital World</li>
 <li>Brian Kernighan: Millions, Billions, Zillions</li>
 <li>Erik Brynjolfsson and Andrew McAfee: The Second Machine Age</li>
 <li>Michael P Lynch: The Internet of Us</li>
</ol> <p>
If anyone reads them and wants to share the experience, please, message me.
This review, however, is dedicated to “Blown to Bits”.
</p>

 <p>

</p>

 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
</div>

 <div id="outline-container-Who-are-the-authors-and-from-which-perspective-the-are-writing." class="outline-3">
 <h3 id="Who-are-the-authors-and-from-which-perspective-the-are-writing."> <span class="section-number-3">1.1.</span>  <a href="#Who-are-the-authors-and-from-which-perspective-the-are-writing.">Who are the authors and from which perspective the are writing.</a></h3>
 <div class="outline-text-3" id="text-Who-are-the-authors-and-from-which-perspective-the-are-writing.">
 <p>
I grew up through Digital Transformation.
When I was a kid, the idea of photos being available instantly after taking seemed laughable, but after a photo was developed and printed, it could last many years.
Now we have photos available on the spot, but very few of us print them out in order to feel, touch, and preserve them.
</p>

 <p>
I got interested in this phenomenon, and wanted to find a book which would explore it and tell me more.
“Blown to Bits” came as a blessing.
</p>

 <p>
Before I get to the book’s contents, I need to think about who exactly wrote the book, because the perspective influences what is visible.
</p>

 <p>
The authors are USA university professors.
That is they are fairly rich people, living in urban areas, with modern conveniences available, and what is the most important, with a certain perception of justice.
The attitude to justice as something that shapes the life is that peculiar property of the USA life that is hard to find elsewhere, even though Common Law is not unique to the USA, and many other countries have it.
In the USA people think about litigation, courts, and case law all the time.
</p>

 <p>
Why am I mentioning this?
This book is not just a work of political philosophy or social theory, even though it has bits of both of those.
What is more attractive in it is that it mostly consists of  <span class="underline">real cases</span>.
Many people are capable of groundless theorising and predicting doom and gloom or moonshine and roses with little justification, but far less people are capable of accumulating a large amount of already happened cases to illustrate their theoretical derivations.
</p>

 <p>
This book is full of cases.
In fact, each chapter starts with an indicative case, which serves as the kindling for the narrative presented in it, describing a certain broadly defined aspect of the “digitalization” of society.
The narrative is then intentionally misleading the reader to come up with some interim conclusion on how an issue should be solved, only to present another case, which is likely to completely break down that tentative solution.
This really makes the reader think!
</p>

 <p>
I was quite surprised that, even though in many cases the evolution of regulation and legislation was driven by financial interests of mighty parties (such as the Internet commerce industry), there were cases when courts made decisions on the basis of public good.
I was impressed that such events still happen sometimes.
</p>
</div>
</div>

 <div id="outline-container-Which-subjects-are-touched-in-the-book" class="outline-3">
 <h3 id="Which-subjects-are-touched-in-the-book"> <span class="section-number-3">1.2.</span>  <a href="#Which-subjects-are-touched-in-the-book">Which subjects are touched in the book</a></h3>
 <div class="outline-text-3" id="text-Which-subjects-are-touched-in-the-book">
 <p>
Since the book discusses many controversial topics, I need to state them here clearly:
</p>

 <ol class="org-ol"> <li>The uniformity of bits.</li>
 <li>The abundance of bits.</li>
 <li>Longevity of bits.</li>
 <li>The speed of transmission.</li>
 <li>Privacy of bits.</li>
 <li>The copyright.</li>
 <li>DRM</li>
 <li>Defamation.</li>
 <li>Fraud.</li>
 <li>Algorithmic biases.</li>
 <li>AI black boxes.</li>
 <li>Encryption.</li>
 <li>Net neutrality and publishers versus newspapers.</li>
 <li>Organization of data: hierarchies and search.</li>
 <li>Obsolescence of regulation and outdated metaphors.</li>
 <li>Digital access limitations.</li>
</ol> <p>
I need to say a few words about each of those lest I forget.
</p>
</div>

 <div id="outline-container-The-uniformity-of-bits." class="outline-4">
 <h4 id="The-uniformity-of-bits."> <span class="section-number-4">1.2.1.</span>  <a href="#The-uniformity-of-bits.">The uniformity of bits.</a></h4>
 <div class="outline-text-4" id="text-The-uniformity-of-bits.">
 <p>
Everything we are discussing now consists of bits.
Bits are uniform, and for machines they make no sense, as machines do not have “sense”.
But people assign meaning to different forms of bits, and represent images, audio, sculpture, texts, and many other things.
</p>

 <p>
People are used to apply to those bits the reasoning originally aimed at various objects of the physical world, and have historically justified pre-suppositions fit for the objects, but not necessarily for bits.
</p>

 <p>
When the US government imposed restrictions on exporting of cryptographic algorithms from the USA, Phil Zimmerman printed his program as a book and published it internationally.
</p>
</div>
</div>

 <div id="outline-container-The-abundance-of-bits." class="outline-4">
 <h4 id="The-abundance-of-bits."> <span class="section-number-4">1.2.2.</span>  <a href="#The-abundance-of-bits.">The abundance of bits.</a></h4>
 <div class="outline-text-4" id="text-The-abundance-of-bits.">
 <p>
It looks very weird not just for people who discovered computers in the 1980s, but even for people used to the 56k modem links of the 1990s to see how cheap bits are nowadays.
Digitising the world is fun and profit, everything which can be digitised, will be.
Hard drives are big enough to fit everything one wants to fit, and will be kept for as long as someone wants to keep them.
Moreover, you do not necessarily know who collects the bits about you.
And even you do not want to have data collected about you, you probably have no option to say “no”.
</p>
</div>
</div>

 <div id="outline-container-Longevity-of-bits." class="outline-4">
 <h4 id="Longevity-of-bits."> <span class="section-number-4">1.2.3.</span>  <a href="#Longevity-of-bits.">Longevity of bits.</a></h4>
 <div class="outline-text-4" id="text-Longevity-of-bits.">
 <p>
Bits live a long time, if at least someone cares about them.
This is both good and bad.
Good in that making archives is very easy, bad because the amount of accumulated noise is also very big.
</p>
</div>
</div>

 <div id="outline-container-Speed-of-transmission." class="outline-4">
 <h4 id="Speed-of-transmission."> <span class="section-number-4">1.2.4.</span>  <a href="#Speed-of-transmission.">Speed of transmission.</a></h4>
 <div class="outline-text-4" id="text-Speed-of-transmission.">
 <p>
Bits can be transmitted very fast and very far.
Expect people to work from home, and your daughters falling in love with guys from Yemen.
</p>
</div>
</div>

 <div id="outline-container-Defamation." class="outline-4">
 <h4 id="Defamation."> <span class="section-number-4">1.2.5.</span>  <a href="#Defamation.">Defamation.</a></h4>
 <div class="outline-text-4" id="text-Defamation.">
 <p>
Since bits live long and can be accessible to everyone, what if someone publishes something bad about you on the internet?
If it is false, you can sue.
But what if it is true?
</p>

 <p>
Suppose you cheated on your wife, years ago, and want to forget that case, but somebody remembered, possibly copied your messages to took a photo.
</p>

 <p>
Do you really deserve the public hatred and bad fame after all those years?
</p>
</div>
</div>

 <div id="outline-container-Privacy." class="outline-4">
 <h4 id="Privacy."> <span class="section-number-4">1.2.6.</span>  <a href="#Privacy.">Privacy.</a></h4>
 <div class="outline-text-4" id="text-Privacy.">
 <p>
When I was young, people were much more privacy-loving than now.
Even today, if you ask people if they care about privacy, they usually say “yes”.
</p>

 <p>
But in reality, even if people care, they do not take action to assure that privacy, especially since it is very laborious and expensive.
People do not read “privacy policy”, and in many countries even consider them laughable.
</p>

 <p>
People are very ready to lose their personal data for a 1% discount at a shop or the convenience of ordering food over the phone.
</p>
</div>
</div>

 <div id="outline-container-Copyright." class="outline-4">
 <h4 id="Copyright."> <span class="section-number-4">1.2.7.</span>  <a href="#Copyright.">Copyright.</a></h4>
 <div class="outline-text-4" id="text-Copyright.">
 <p>
Copyright was invented to stimulate the production of knowledge when knowledge was scarce.
It gave an artificial monopoly over physical book production to reward authors and protect them from predatory competing publishers.
Since that time most “copyright violations” are by end users, and printing books is not really an investment.
</p>
</div>
</div>

 <div id="outline-container-DRM" class="outline-4">
 <h4 id="DRM"> <span class="section-number-4">1.2.8.</span>  <a href="#DRM">DRM</a></h4>
 <div class="outline-text-4" id="text-DRM">
 <p>
DRM refers to tools which artificially limit copying.
It is largely a failed effort, but the books discusses it thoroughly.
</p>
</div>
</div>

 <div id="outline-container-Fraud." class="outline-4">
 <h4 id="Fraud."> <span class="section-number-4">1.2.9.</span>  <a href="#Fraud.">Fraud.</a></h4>
 <div class="outline-text-4" id="text-Fraud.">
 <p>
Conducting fraud is much easier in the age of the Internet.
</p>
</div>
</div>

 <div id="outline-container-Algorithmic-biases." class="outline-4">
 <h4 id="Algorithmic-biases."> <span class="section-number-4">1.2.10.</span>  <a href="#Algorithmic-biases.">Algorithmic biases.</a></h4>
 <div class="outline-text-4" id="text-Algorithmic-biases.">
 <p>
For a few years I could not log into my bank app, because I am a Caucasian man living in a predominantly Mongoloid country, and the app just crashed on seeing my face.
This is not a bug, this is a feature.
</p>

 <p>
Algorithms have bias in them, because biases make sense.
If group A has crime rate 16%, and group B has crime rate 10%, by excluding group A the average crime rate will drop.
But this is not a solution people are happy with, we say that any particular member of group A is not responsible for all the group.
</p>
</div>
</div>

 <div id="outline-container-AI" class="outline-4">
 <h4 id="AI"> <span class="section-number-4">1.2.11.</span>  <a href="#AI">AI</a></h4>
 <div class="outline-text-4" id="text-AI">
 <p>
In the case of neural-networking AI the problem is even worse, because AI methods cannot explain why they make a decision.
You fail a job interview, because “AI considers you untrustworthy”.
(Real case.)
</p>
</div>
</div>

 <div id="outline-container-Encryption" class="outline-4">
 <h4 id="Encryption"> <span class="section-number-4">1.2.12.</span>  <a href="#Encryption">Encryption</a></h4>
 <div class="outline-text-4" id="text-Encryption">
 <p>
American law enforcment agencies once wanted to outlaw any uncontrolled encryption, and wanted to set up a “key escrow” system in order to wiretap all Internet communication.
They failed because the (1) public key algorithms, (2) Internet commerce industry.
</p>

 <p>
It is always better when the forces of Good are supported by large money.
</p>
</div>
</div>

 <div id="outline-container-Access-to-internet." class="outline-4">
 <h4 id="Access-to-internet."> <span class="section-number-4">1.2.13.</span>  <a href="#Access-to-internet.">Access to internet.</a></h4>
 <div class="outline-text-4" id="text-Access-to-internet.">
 <p>
Bits are only uniform if you can get access to them.
In the USA the ISP market is deregulated, but the “invisible hand of the market” did not lead to an increased competition, so internet is slow and expensive.
</p>
</div>
</div>

 <div id="outline-container-Are-social-networks-publishers-or-newspapers?" class="outline-4">
 <h4 id="Are-social-networks-publishers-or-newspapers?"> <span class="section-number-4">1.2.14.</span>  <a href="#Are-social-networks-publishers-or-newspapers?">Are social networks publishers or newspapers?</a></h4>
 <div class="outline-text-4" id="text-Are-social-networks-publishers-or-newspapers?">
 <p>
If they are publishers, then they should be  <span class="underline">liable</span> if some crappy content appears on their website.
</p>

 <p>
If they are newspapers, they  <span class="underline">cannot refuse</span> to publish true content, because “freedom of speech”.
</p>

 <p>
How do you solve this issue?
</p>
</div>
</div>

 <div id="outline-container-Obsolescent-legislation." class="outline-4">
 <h4 id="Obsolescent-legislation."> <span class="section-number-4">1.2.15.</span>  <a href="#Obsolescent-legislation.">Obsolescent legislation.</a></h4>
 <div class="outline-text-4" id="text-Obsolescent-legislation.">
 <p>
A lot of attention is paid to the fact that legislation of the new technologies uses metaphors and use-case from the past technologies.
The laws about Radio from 1920s used books, newspapers, and telegraph as analogies.
</p>

 <p>
New Internet laws referred to Radio and Television.
</p>
</div>
</div>

 <div id="outline-container-Hierarchies-and-search." class="outline-4">
 <h4 id="Hierarchies-and-search."> <span class="section-number-4">1.2.16.</span>  <a href="#Hierarchies-and-search.">Hierarchies and search.</a></h4>
 <div class="outline-text-4" id="text-Hierarchies-and-search.">
 <p>
Search is much more productive than hierarchies in finding good information, but it also makes Google a monopolist and a gate-keeper.
(I use Microsoft Bing, by the way.)
</p>
</div>
</div>
</div>

 <div id="outline-container-What-is-omitted-in-the-book" class="outline-3">
 <h3 id="What-is-omitted-in-the-book"> <span class="section-number-3">1.3.</span>  <a href="#What-is-omitted-in-the-book">What is omitted in the book</a></h3>
 <div class="outline-text-3" id="text-What-is-omitted-in-the-book">
 <p>
A topic which is not mentioned, even though it is clearly present in the new digital world is the “delegation of responsibility”.
I personally encountered the following situation:
In a coffee shop I had an issue with a machine-produced drink, and wanted to escalate the issue to the manager, only to find out that the only 20-y.o. girl in the coffee shop is the “shop manager”.
I found the phone of their “chief manager”, and tried to escalate over the phone, but with little success.
</p>

 <p>
This case is not huge, but recently I had the same story  <span class="underline">in the metro</span>.
A 20-y.o. girl called herself the “chief of the metro station”, although she clearly could not solve any issue.
She only was there to receive the blame for robots’ faults.
</p>

 <p>
Also, the instability of bits spoken of too little.
Bits live for a long time, if somebody cares to back up them.
</p>
</div>
</div>

 <div id="outline-container-The-book's-style-and-difficulty" class="outline-3">
 <h3 id="The-book's-style-and-difficulty"> <span class="section-number-3">1.4.</span>  <a href="#The-book's-style-and-difficulty">The book’s style and difficulty</a></h3>
 <div class="outline-text-3" id="text-The-book's-style-and-difficulty">
 <p>
The books is extremely easy.
The language is colourful and vivid, the few technical explanations are straightforward and done as if the reader is 5 years old.
</p>

 <p>
Care is taken for the narrative to be neutral and unbiased.
Every case is substantiated by an extensive list of supporting material.
</p>

 <p>
I certainly recommend it to everyone.
</p>
</div>
</div>
</section> <section id="outline-container-Feedback" class="outline-2"> <h2 id="Feedback"> <span class="section-number-2">2.</span>  <a href="#Feedback">Feedback</a></h2>
 <div class="outline-text-2" id="text-Feedback">
 <p>
Please, comment by emailing the special email address at the bottom of the page.
</p>

 <ol class="org-ol"> <li>Telegram  <a href="http://t.me/unobvious">http://t.me/unobvious</a></li>
 <li>GitLab:  <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></li>
 <li>PayPal:  <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></li>
 <li>The permanent link to this page is:  <a href="https://lockywolf.net/2025-04-19_Reading-Blown-to-Bits-by-Abelson-et-al.d/index.html">https://lockywolf.net/2025-04-19_Reading-Blown-to-Bits-by-Abelson-et-al.d/index.html</a></li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-04-19_Reading-Blown-to-Bits-by-Abelson-et-al.d/index.html"/>
  <id>https://lockywolf.net/2025-04-19_Reading-Blown-to-Bits-by-Abelson-et-al.d/index.html</id>
  <updated>2025-04-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;Quotations of Chairman Mao Zedong&quot;.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “Quotations of Chairman Mao Zedong”.</h1>
</header> <figure id="org8bc64c2"> <img src="./001_book-cover-quotations-mao-zedong.jpg" alt="001_book-cover-quotations-mao-zedong.jpg"></img></figure> <p>
I suspect that most readers of my notes have heard about the book called “Quotations of Chairman Mao Zedong”.
(It is often translated into English using the Wade-Giles latinization Mao Tse-Tung, because it was published during the times when PinYin had not yet become an indisputable standard.)
</p>

 <p>
It is one of the most published books in the world, and it is likely that if you have seen one of those little red pocket books, it has probably been one of the double-language editions, with odd pages bearing a Chinese text, and even pages loaded with English, Russian, French, or some other word language, depending on which target audience the book was aiming for.
</p>

 <p>
Curiously, you won’t really elicit the feeling of familiarity if you show this book to a Chinese person.
The Chinese are usually amazed by the fact that you are so interested in either China or Communism, and are genuinely fascinated by the fact that you have a pocket version of the book, as if you are that much of an aficionado that you just have to carry the source of truth close to yourself all the time.
However, native Chinese are much more familiar with “Selected Works of Chairman Mao” (dubbed Mao Xuan), or even “Complete Works of Chairman Mao”.
Nothing like the commonly imagined image of a young revolutionary holding the book close to the heart while storming the barricades.
Why so?
</p>

 <p>
It was published during the times when Chinese Communism was still aiming at strictly following the internationalist agenda of the original Marxist thought.
The “Little Red Book” is an export version, a tool designed for conquering foreign thought rather than for routing Chinese population.
</p>

 <p>
As a result, I would recommend reading the “Little Red Book” as a way of learning Chinese more than as a way of learning about China or Communism.
However, as a way of learning Chinese it is really an excellent book.
</p>

 <p>
It is really a book of quotations, or rather short passages of thought dedicated to certain topics, extracted from a set of canonical papers produced by Chairman Mao Zedong since 1920s, and until about 1965.
Most quotations are not pithy witty phrases, but rather small passages of several sentences, each dedicated to a certain thought, readable by a dedicated student in 10 minutes, and having a judicious amount of idioms, enough to prevent boredom, but not to overwhelm with metaphors.
</p>

 <p>
Quotations are grouped by topics, so can be consulted without reading the whole text.
Some of the quotations, no too many, end up being reprinted in several topics, which is actually better than one might think, because, again, it is best to see the books as a textbook on Chinese language, and repetition is the mother of learning.
</p>

 <p>
I have read the book with a pencil, circling difficult phrases and expressions, and working through them with my teacher on face-to-face classes, which ended up being a very efficient way of learning: I had a guide book, I had a way to resolve questions too difficult to get through myself, and the broad variety of topics allowed me to get distracted from the text when I got tired and interrogate my teacher about the words and phrases used in the context of the topics by ordinary Chinese people in daily life.
</p>

 <p>
I might be a little biased in this respect, as a Russian, because quite a few expressions from the books ended up being familiar to me just because of the childhood exposure to the Communist context, the expressions such as “dialectic materialism”, “democratic centralism”, “reactionary cliques” and “collective property rights”.
It might sound a bit outdated nowadays, but, at the end of the day, the works of political economists might get outdated, but they do so by being superseded by the works of newer philosophers and economists working in the same fields, so most of the language still ends up being very useful.
</p>

 <p>
Despite having a few outdated constructions, the language is vivid and thrilling, and really makes the reader imagine the events happening behind the scenes: Chairman Mao in the 20s, fighting a revolutionary war with the warlords, Chairman Mao in the 40s, fighting the Japanese, Chairman Mao in the 50s, now the leader of all of China, considering the internal and external political questions of China.
</p>

 <p>
A large part of the book is dedicated to building the Communist party as an organization, but if one uses a bunch of stickers to cover the word “party”, it would make a rich set of solid advice on building any set of social organizations: companies, teams, clubs, anything.
Chairman Mao is very savvy at building organizations, and very observant of the issues which definitely arise when doing it, so learning from his experience is a very useful tool of becoming socially skilled.
Not everything he is saying can be blindly applied nowadays, but his observations on the interaction of theory and practice certainly deserve a place on the bookshelf of a practical researcher.
</p>

 <p>
Overall, I do recommend reading the book, perhaps in translation, if you are not interested in learning Chinese, even though the books would lose a bit of its atmosphere in translation.
</p>
</main>]]></content>
  <link href="https://lockywolf.net/2025-01-08_Reading-Quotations-of-Chairman-Mao-Zedong/index.html"/>
  <id>https://lockywolf.net/2025-01-08_Reading-Quotations-of-Chairman-Mao-Zedong/index.html</id>
  <updated>2025-04-24T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Translating Potanya&apos;s &quot;Winter Rail&quot; into Chinese.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Translating Potanya's "Winter Rail" into Chinese.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#References">1. References</a></li>
 <li> <a href="#Translation">2. Translation</a></li>
</ul></div>
</nav> <p>
At some point I wanted to exercise my Chinese skills in an unexpected domain.
</p>

 <section id="outline-container-References" class="outline-2"> <h2 id="References"> <span class="section-number-2">1.</span>  <a href="#References">References</a></h2>
 <div class="outline-text-2" id="text-References">
 <ol class="org-ol"> <li>Original song :: Potanya (Svetlana Shenkar (Mylnikova, Panteleeva)) (Светлана Шенкарь (Мыльникова, Пантелеева))  <a href="http://www.taiellor.ru/autors/potanya.html">http://www.taiellor.ru/autors/potanya.html</a></li>
 <li>Original music :: Georgy Sviridov (Георгий Свиридов), "Winter Road" ("Зимняя дорога") (from "The Blizzard"("Метель")) ( <a href="https://en.m.wikipedia.org/wiki/Georgy_Sviridov">https://en.m.wikipedia.org/wiki/Georgy_Sviridov</a>)</li>
 <li>Russian video ::  <a href="https://m.youtube.com/watch?v=agl7D_FxyAY">https://m.youtube.com/watch?v=agl7D_FxyAY</a></li>
 <li>Russian audio ::  <a href="./potanja_-_zimnjaja_zheleznaja_doroga_muz_g_sviridova.mp3">./potanja_-_zimnjaja_zheleznaja_doroga_muz_g_sviridova.mp3</a></li>
</ol></div>
</section> <section id="outline-container-Translation" class="outline-2"> <h2 id="Translation"> <span class="section-number-2">2.</span>  <a href="#Translation">Translation</a></h2>
 <div class="outline-text-2" id="text-Translation">

 <table border="1"> <tr> <td align="left" valign="top">
      О том, что не сбылось, не грусти,       
    </td>
     <td align="left" valign="top">
      故事没实现？没问题                      
    </td>
  </tr> <tr> <td align="left" valign="top">
      По чистым листам твой поезд летит,      
    </td>
     <td align="left" valign="top">
      画纸上你的火车飞驰                      
    </td>
  </tr> <tr> <td align="left" valign="top">
      Ты снова выбрал верный маршрут,         
    </td>
     <td align="left" valign="top">
      你选择了准确的车次                      
    </td>
  </tr> <tr> <td align="left" valign="top">
      Спеши, ведь тебя там ждут.              
    </td>
     <td align="left" valign="top">
      快点，那里有人等你                      
    </td>
  </tr> <tr> <td align="left" valign="top">
                                              
    </td>
     <td align="left" valign="top">
                                              
    </td>
  </tr> <tr> <td align="left" valign="top">
      Припев.                                 
    </td>
     <td align="left" valign="top">
      副歌。                                  
    </td>
  </tr> <tr> <td align="left" valign="top">
                                              
    </td>
     <td align="left" valign="top">
                                              
    </td>
  </tr> <tr> <td align="left" valign="top">
      Вьётся снег над путями,                 
    </td>
     <td align="left" valign="top">
      雪花在铁轨之上回旋                      
    </td>
  </tr> <tr> <td align="left" valign="top">
      Тепловоз ревёт, электричка свистит,     
    </td>
     <td align="left" valign="top">
      火车头号，电车头叫                      
    </td>
  </tr> <tr> <td align="left" valign="top">
      Пускай вьюга унылую песню затянет:      
    </td>
     <td align="left" valign="top">
      别妨碍暴风雪悲号                        
    </td>
  </tr> <tr> <td align="left" valign="top">
      И леса, и города                        
    </td>
     <td align="left" valign="top">
      森林啊城市啊                            
    </td>
  </tr> <tr> <td align="left" valign="top">
      Нас дождутся всегда,                    
    </td>
     <td align="left" valign="top">
      永远会等到我们归来                      
    </td>
  </tr> <tr> <td align="left" valign="top">
      Ведь с дороги стальной не сойти.        
    </td>
     <td align="left" valign="top">
      列车不会偏离固有轨道                    
    </td>
  </tr> <tr> <td align="left" valign="top">
                                              
    </td>
     <td align="left" valign="top">
                                              
    </td>
  </tr> <tr> <td align="left" valign="top">
      Должно быть, ты и вправду готов         
    </td>
     <td align="left" valign="top">
      你应该已准备好，                        
    </td>
  </tr> <tr> <td align="left" valign="top">
      Снять новый аккорд со струн проводов,   
    </td>
     <td align="left" valign="top">
      奏响电线的和弦                          
    </td>
  </tr> <tr> <td align="left" valign="top">
      Узнать в железном ритме колёс           
    </td>
     <td align="left" valign="top">
      识别车轮哀乐里                          
    </td>
  </tr> <tr> <td align="left" valign="top">
      Ответ, а потом вопрос.                  
    </td>
     <td align="left" valign="top">
      你的问题和答案                          
    </td>
  </tr> <tr> <td align="left" valign="top">
                                              
    </td>
     <td align="left" valign="top">
                                              
    </td>
  </tr> <tr> <td align="left" valign="top">
      Припев.                                 
    </td>
     <td align="left" valign="top">
      副歌。                                  
    </td>
  </tr> <tr> <td align="left" valign="top">
                                              
    </td>
     <td align="left" valign="top">
                                              
    </td>
  </tr> <tr> <td align="left" valign="top">
      В железных жилах кровь, не вода,        
    </td>
     <td align="left" valign="top">
      铁血管流的不是水，                      
    </td>
  </tr> <tr> <td align="left" valign="top">
      Туда и обратно мчат поезда,             
    </td>
     <td align="left" valign="top">
      火车天天奔波不停                        
    </td>
  </tr> <tr> <td align="left" valign="top">
      Вокзалам день и ночь не до сна,         
    </td>
     <td align="left" valign="top">
      客站昼夜熙攘不眠                        
    </td>
  </tr> <tr> <td align="left" valign="top">
      В движении жизнь вечна.                 
    </td>
     <td align="left" valign="top">
      行动孕育生机盎然                        
    </td>
  </tr></table></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-02-28_Potanya-Sviridov-song-translation.d/index.html"/>
  <id>https://lockywolf.net/2025-02-28_Potanya-Sviridov-song-translation.d/index.html</id>
  <updated>2025-04-24T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Analysing ipv4 prices in real time.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Analysing ipv4 prices in real time.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Body">1. Body</a></li>
</ul></div>
</nav> <p>
This “howto” is not really a howto, it is a “registry” page which is referencing my improvised script on analyzing ipv4 prices on the aftermarket.
</p>

 <section id="outline-container-Body" class="outline-2"> <h2 id="Body"> <span class="section-number-2">1.</span>  <a href="#Body">Body</a></h2>
 <div class="outline-text-2" id="text-Body">
 <p>
The link to the page is  <a href="https://ipv4a-5539ad.gitlab.io">https://ipv4a-5539ad.gitlab.io</a>
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-04-15_Analysing-ipv4-prices-realtime.d/index.html"/>
  <id>https://lockywolf.net/2025-04-15_Analysing-ipv4-prices-realtime.d/index.html</id>
  <updated>2025-04-15T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Jabbertop.gitlab.io, a bootleg copy of OMEMO.top</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Jabbertop.gitlab.io, a bootleg copy of OMEMO.top</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Body">1. Body</a></li>
</ul></div>
</nav> <p>
XMPP is a moderately well-known protocol for instant messaging.
It is not as technologically advanced as many popular instant messaging tools, but it works if you want to just setup a small chat room for your friends, and it has low resource consumption.
</p>

 <p>
The problem with Jabber (that is a network of machines communicating over XMPP) is that there are so many incomplete clients, very few of which are capable of providing a wholesome experience.
</p>

 <p>
The well-known website serves as a dashboard for tracking one particular feature the authors are very fond of, however, I wanted to have a similar table for features I personally care of.
So I forked the website and sometimes even update it a bit.
</p>

 <p>
Pull requests welcome.
</p>

 <section id="outline-container-Body" class="outline-2"> <h2 id="Body"> <span class="section-number-2">1.</span>  <a href="#Body">Body</a></h2>
 <div class="outline-text-2" id="text-Body">
 <p>
 <a href="https://jabbertop.gitlab.io/website/">https://jabbertop.gitlab.io/website/</a>
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-04-16_omemo-top-bootleg.d/index.html"/>
  <id>https://lockywolf.net/2025-04-16_omemo-top-bootleg.d/index.html</id>
  <updated>2025-04-15T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A page for some CAD sketches.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A page for some CAD sketches.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Body">1.  <span class="todo TODO">TODO</span> Body</a>
 <ul> <li> <a href="#A-pen-sketch-%5B0/3%5D">1.1. A pen sketch  <code>[0/3]</code></a></li>
</ul></li>
</ul></div>
</nav> <p>
This page is not a page but just a web place for attachments.
</p>

 <section id="outline-container-Body" class="outline-2"> <h2 id="Body"> <span class="section-number-2">1.</span>  <a href="#Body"> <span class="todo TODO">TODO</span> Body</a></h2>
 <div class="outline-text-2" id="text-Body">
</div>

 <div id="outline-container-A-pen-sketch-%5B0/3%5D" class="outline-3">
 <h3 id="A-pen-sketch-%5B0/3%5D"> <span class="section-number-3">1.1.</span>  <a href="#A-pen-sketch-%5B0/3%5D">A pen sketch  <code>[0/3]</code></a></h3>
 <div class="outline-text-3" id="text-A-pen-sketch-%5B0/3%5D">
 <p>
 <a href="https://www.thingiverse.com/thing:6964071">https://www.thingiverse.com/thing:6964071</a>
</p>

 <p>
This is my first attempt at modelling stuff in 3D.
This has issues:
</p>

 <ol class="org-ol"> <li class="off"> <input type="checkbox"></input> The hook should be drawn using Bézier curves.</li>
 <li class="off"> <input type="checkbox"></input> The text should be rendered using triangulation and wrapping:  <a href="https://openhome.cc/eGossip/OpenSCAD/2DtoCylinder.html">https://openhome.cc/eGossip/OpenSCAD/2DtoCylinder.html</a></li>
 <li class="off"> <input type="checkbox"></input> It is not visible, but inside there are two screws, which at the moment are done with linear extrude, but this is a wrong approach, it is better to use BOSL2  <a href="https://github.com/BelfrySCAD/BOSL2">https://github.com/BelfrySCAD/BOSL2</a> .</li>
</ol> <p>
Preview with colours.
</p>


 <figure id="org5bdfa16"> <img src="./001_pen-preview-with-colors.png" alt="001_pen-preview-with-colors.png"></img></figure> <p>
And render without colours.
</p>


 <figure id="orge2b4007"> <img src="./002_pen-render-without-colors.png" alt="002_pen-render-without-colors.png"></img></figure></div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-02-28_some-CAD-exploration/index.html"/>
  <id>https://lockywolf.net/2025-02-28_some-CAD-exploration/index.html</id>
  <updated>2025-02-28T00:00:00+00:00</updated>
</entry>
<entry>
  <title>The AWK Programming Language (Chinese review)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">The AWK Programming Language (Chinese review)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a>
 <ul> <li> <a href="#%E4%BB%80%E4%B9%88%E6%98%AFAWK%E4%BB%A5%E5%8F%8A%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AE%83%E5%80%BC%E5%BE%97%E5%AD%A6%E4%B9%A0%EF%BC%9F">1.1. 什么是AWK以及为什么它值得学习？</a></li>
 <li> <a href="#AWK%E5%88%B0%E5%BA%95%E9%80%82%E5%90%88%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E8%BF%90%E7%94%A8%EF%BC%9F%E8%BF%99%E6%9C%AC%E4%B9%A6%E5%A6%82%E4%BD%95%E4%BB%8B%E7%BB%8D%E5%AE%83%EF%BC%9F">1.2. AWK到底适合什么样的运用？这本书如何介绍它？</a></li>
 <li> <a href="#%E7%BB%93%E8%AE%BA">1.3. 结论</a></li>
 <li> <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">1.4. 联系方式</a></li>
</ul></li>
</ul></div>
</nav> <figure id="org48252ea"> <img src="./001_awk2cover.png" alt="001_awk2cover.png"></img></figure> <p>
我读完了Aho和Kernighan和Wenberger著的经典书籍《The AWK Programming Language》.
在这篇文章我要分享我的感受。
为什么我突然决定学习AWK、为什么用这本书以及为什么我在这本书中除了AWK本身看到了更多知识。
</p>


 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
</div>

 <div id="outline-container-%E4%BB%80%E4%B9%88%E6%98%AFAWK%E4%BB%A5%E5%8F%8A%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AE%83%E5%80%BC%E5%BE%97%E5%AD%A6%E4%B9%A0%EF%BC%9F" class="outline-3">
 <h3 id="%E4%BB%80%E4%B9%88%E6%98%AFAWK%E4%BB%A5%E5%8F%8A%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AE%83%E5%80%BC%E5%BE%97%E5%AD%A6%E4%B9%A0%EF%BC%9F"> <span class="section-number-3">1.1.</span>  <a href="#%E4%BB%80%E4%B9%88%E6%98%AFAWK%E4%BB%A5%E5%8F%8A%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AE%83%E5%80%BC%E5%BE%97%E5%AD%A6%E4%B9%A0%EF%BC%9F">什么是AWK以及为什么它值得学习？</a></h3>
 <div class="outline-text-3" id="text-%E4%BB%80%E4%B9%88%E6%98%AFAWK%E4%BB%A5%E5%8F%8A%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AE%83%E5%80%BC%E5%BE%97%E5%AD%A6%E4%B9%A0%EF%BC%9F">
 <p>
AWK是一种专门用于处理文本的程序语言。
在这种语系中它不是唯一一个语言，比如还有Perl，但是因为大概每个服务器现在都有AWK，无论你对编程历史和哲学感不感兴趣，它还是值得学习皮毛。
但是我本身对电脑和赛博行业发展和文化很感兴趣，所以除了学习语言之外我也尽量尝试从字里行间领会上下文。
</p>

 <p>
这个上下文其实从作者们开始。
他们是谁？
Aho是全世界最有名的形式语法专家，他写了《紫龙书》（《编译原理》）。
Kernighan是UNIX和C语言的创造者，大概每个大一学生都看过他的《C程序语言》。
优秀的团队。
</p>

 <p>
实际上，看AWK的时候，我好几次重温《C语言》，因为想要对比它们的风格区别。
</p>

 <p>
AWK确实很像C。
它的条件结构(if)和循环结构(for/while)与C差不多。
突然我发现：我最讨厌的这种马马虎虎的编程口味（1/++n）其实不是来自于大一学生们逞能，而来自于Kernighan本身。
</p>

 <p>
那为什么Kernighan显示出那么懒散的风格？
对不起，懒散是太严重了。
重温《C语言》和阅读《AWK语言》都令我感觉它们好像有DIY的风味。
真的，他们并不重视可读性和严格性，每个程序很容易破坏。
但是也可以在什么都没有的系统上搭建可以开始工作的环境。
</p>

 <p>
思考一点之后我可以理解为什么这样。
那时电脑行业比现在小很多，每个计算机可以说是DIY的、定制的，而且没有环境标准和期待。
</p>

 <p>
现在我可以说清楚：AWK是我见过的程序语言之中最DIY的。
你用它什么都可以写，只需要几行代码，但是所写的程序只能有一个用户，就是你。
</p>
</div>
</div>

 <div id="outline-container-AWK%E5%88%B0%E5%BA%95%E9%80%82%E5%90%88%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E8%BF%90%E7%94%A8%EF%BC%9F%E8%BF%99%E6%9C%AC%E4%B9%A6%E5%A6%82%E4%BD%95%E4%BB%8B%E7%BB%8D%E5%AE%83%EF%BC%9F" class="outline-3">
 <h3 id="AWK%E5%88%B0%E5%BA%95%E9%80%82%E5%90%88%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E8%BF%90%E7%94%A8%EF%BC%9F%E8%BF%99%E6%9C%AC%E4%B9%A6%E5%A6%82%E4%BD%95%E4%BB%8B%E7%BB%8D%E5%AE%83%EF%BC%9F"> <span class="section-number-3">1.2.</span>  <a href="#AWK%E5%88%B0%E5%BA%95%E9%80%82%E5%90%88%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E8%BF%90%E7%94%A8%EF%BC%9F%E8%BF%99%E6%9C%AC%E4%B9%A6%E5%A6%82%E4%BD%95%E4%BB%8B%E7%BB%8D%E5%AE%83%EF%BC%9F">AWK到底适合什么样的运用？这本书如何介绍它？</a></h3>
 <div class="outline-text-3" id="text-AWK%E5%88%B0%E5%BA%95%E9%80%82%E5%90%88%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E8%BF%90%E7%94%A8%EF%BC%9F%E8%BF%99%E6%9C%AC%E4%B9%A6%E5%A6%82%E4%BD%95%E4%BB%8B%E7%BB%8D%E5%AE%83%EF%BC%9F">
 <p>
AWK非常适合做纯文本分析和生成报表。
如果你的数据只由被空格分割的元素组成，AWK只需要一行代码，就可以进行很多任务。
比如计算每一列的总数或者平均数。
</p>

 <p>
这本书的头三章介绍语言本身：常见的结构和最常用的例子。
如果你只想学会写AWK，就阅读头三章。
</p>

 <p>
但是第4到第8章真的可以教给你所谓“UNIX精神”以及示范如何滥用AWK做你想不到的它会做的事。
比如介绍随机文本生成器、简单的拟似汇编语言解释器以及简单的关系数据库。
AWK可以叫作“计算机专家的瑞士刀”。
</p>


 <figure id="orga2b90ec"> <img src="./003_swiss-army-knife.jpg" alt="003_swiss-army-knife.jpg"></img></figure> <p>
有一次我听过一句话：“1行bash代码包含比1000行C更多UNIX精神”。
现在我能理解为什么了。
对于有比较入门的编程经验的人，能感觉这句话有悖论。
归根结底，UNIX内核是使用C语言写的。
</p>

 <p>
但是一看到Kernighan的代码风味和他在AWK实践的原则，上述摘要就容易理解了。
比如：大家都知道写C的时候很容易搞错，遗留内存泄漏或者内存错误。
Kernighan貌似一点不注意这个问题，为什么？
答案是因为所有他预期的程序不超过500行代码。
在500行代码内找到缺点其实没问题。
那如何写相对大的程序？
答案是：使用bash把很多小快C程序粘贴在一起。
所以UNIX有那么多的进程之间交流方式。
Bash会自己控制内存消耗，所以那个臭名昭著的内存错误并不存在。
</p>
</div>
</div>

 <div id="outline-container-%E7%BB%93%E8%AE%BA" class="outline-3">
 <h3 id="%E7%BB%93%E8%AE%BA"> <span class="section-number-3">1.3.</span>  <a href="#%E7%BB%93%E8%AE%BA">结论</a></h3>
 <div class="outline-text-3" id="text-%E7%BB%93%E8%AE%BA">
 <p>
AWK是被解释的C语言版本。
它比C更C。
它长于流性数据处理，但也可以用以写很多小程序，辅助程序员的日常工作。
</p>

 <p>
如果不需要深刻学习AWK，阅读头三章就足够，或者做完任何比较完整的网络课程。
</p>

 <p>
尽量避免写大规模的C语言程序。
</p>
</div>
</div>


 <div id="outline-container-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F" class="outline-3">
 <h3 id="%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F"> <span class="section-number-3">1.4.</span>  <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">联系方式</a></h3>
 <div class="outline-text-3" id="text-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">
 <p>
如果您在此博客或其他页面中发现任何对您有用的内容，请订阅并打赏。 请您转发、分享和讨论，您的反馈可以帮助我变得更好。
</p>

 <ol class="org-ol"> <li>Telegram  <a href="http://t.me/unobvious">http://t.me/unobvious</a></li>
 <li>GitLab:  <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></li>
 <li>PayPal:  <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></li>
 <li>本次网页固定网址： <a href="https://lockywolf.net/2025-02-25_The-AWK-Programming-Language-by-Aho-Kernighan-Weinberger.d/index.html">https://lockywolf.net/2025-02-25_The-AWK-Programming-Language-by-Aho-Kernighan-Weinberger.d/index.html</a></li>
</ol></div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-02-25_The-AWK-Programming-Language-by-Aho-Kernighan-Weinberger.d/index.html"/>
  <id>https://lockywolf.net/2025-02-25_The-AWK-Programming-Language-by-Aho-Kernighan-Weinberger.d/index.html</id>
  <updated>2025-02-26T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A Review of LiShan Chan&apos;s Philosopher&apos;s Madness.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A Review of LiShan Chan’s Philosopher’s Madness.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Intro">1. Intro</a></li>
 <li> <a href="#Getting-back-to-the-book.">2. Getting back to the book.</a></li>
 <li> <a href="#Philosophy">3. Philosophy</a></li>
 <li> <a href="#The-author">4. The author</a></li>
 <li> <a href="#If-you-are-interested-in-a-professional-review">5. If you are interested in a professional review</a></li>
 <li> <a href="#Contacts">6. Contacts</a></li>
</ul></div>
</nav> <div class="abstract" id="org01fd6dd">
 <p>

</p>

 <p>
 <a href="001_a-philosophers-madness-book-cover.jpg">Book cover</a>
</p>

 <p>
I have read the “Philosopher’s Madness” by LiShan Chan.
It is a book about mental illness, British Education, academic careers, their successes and failures, Overseas Chinese, Singapore and Dubai, writing and reading.
</p>

 <p>
This review is  <span class="underline">not</span> a member of the technological book reviews series.
</p>

 <p>
If you are still interested, welcome under the cut.
</p>

</div>

 <p></p>

 <section id="outline-container-Intro" class="outline-2"> <h2 id="Intro"> <span class="section-number-2">1.</span>  <a href="#Intro">Intro</a></h2>
 <div class="outline-text-2" id="text-Intro">
 <p>
For an adult it is a little hard to find time to do reading. 
This is especially true for over-obsessed with work Asian peoples, such as the Russians and the Singaporeans.
Maybe that’s why the books that I found for sale in Singaporean bookstores are predominantly on the short side?
</p>

 <p>
I have been wanting to try out some Eastern Asian literature for quite a while, and the slight problem I have had with Shanghainese literature is that it is predominantly in Chinese. 
I believe I will get to it eventually, but too impatient to wait long enough, I decided to try out Singaporean literature first.
Even though Singapore is, perhaps, more famous for its poetic culture, rather than for prosaic, I ended up buying two non-fiction “Experience Reports”, one of which happened to be Ms. Chan’s. 
</p>

 <p>
Buying a book turned out to be surprisingly easy, the bookshop mailed it to me the same day, and I received it two days later.
I can’t over-praise myself, as I started reading almost the same week.
A big achievement for a person who had been spending almost all of his life at a computer screen for the past ten years.
(I still use a lot of paper literature though, for technical reading.
I haven’t read much paper-based leisure material for quite a while.)
</p>
</div>
</section> <section id="outline-container-Getting-back-to-the-book." class="outline-2"> <h2 id="Getting-back-to-the-book."> <span class="section-number-2">2.</span>  <a href="#Getting-back-to-the-book.">Getting back to the book.</a></h2>
 <div class="outline-text-2" id="text-Getting-back-to-the-book.">
 <p>
 <a href="002-review.jpg">Review Illustration</a>
</p>

 <p>
The book is short, an avid reader can probably devour it in a few hours.
I managed to spread it over a few evening, partialy trying to use it as an eye relaxant to make it easier to fall asleep.
(A lifehack of surprising utility in the age of LED screens.)
</p>

 <p>
The book tries to be a faithful representation of the author’s experience of a schizophrenic psychotic episode, starting from describing the sequence of events that immediately precided it, and completing the book with a few reflections on the matter of being mentally ill itself
The book features a list of references, which is not a common thing for a personal report, but I guess this is due to Ms. Chan’s previous academic experience.
</p>

 <p>
In short, I can’t say that this is a great book that everyone should read.
The language style is nothing out of ordinary. 
It is a nicely readable English that does feel a little bit Chinese, which is, I guess, expected from an author who grew up in a quadrilingual society.
The narrative is smooth, it doesn’t wander in loops, follows a rather sequential and straightforward plot.
</p>

 <p>
The story of a mental illness is probably worth showing to someone suffering from (or suspecting in himself) a mental illness, as it is a very down to Earth in this particular parts. 
The narrative literally speaks of “what I felt” and “what I did”.
To me at least, it felt very natural and uncontrived.
What the author is saying, that is that today there is a misconception in the society. 
It seems that people already understand the fact that a mental illness is not a death sentence.
People also seem to know that mentally ill people are harmless, and certainly know that their is not caused by some mystical phenomenon.
</p>

 <p>
However, people seem to still not know what to do with the situations when people they know seem to suffer from an illness that looks possible to control, but it is unclear how to approach them.
Many people respond well to treatments and get better eventually.
Moreover, in most cases mentally ill people are harmless and if they do make harm, most often they harm themselves.
This is all not new, but having yet another presentation of the same ideas, done through the eyes of someone who felt it herself and supported by cases from a personal experience, may be more persuasive.
</p>
</div>
</section> <section id="outline-container-Philosophy" class="outline-2"> <h2 id="Philosophy"> <span class="section-number-2">3.</span>  <a href="#Philosophy">Philosophy</a></h2>
 <div class="outline-text-2" id="text-Philosophy">
 <p>
 <a href="003-Philosophy-.jpg">Philosophy Illustration</a>
</p>

 <p>
What really bought me though, was not the part regarding the mental illness, but rather the sideline, speaking of an aspiring young scholar following the philosophical path.
To be honest, I didn’t see any philosophical originality in what Ms. Chan was writing.
Moreover, I could clearly see this not so uncommon vision of a person following a clearly outlined path.
In Ms. Chan’s case this was a path that partly coincided with mine: going to Eastern Asia after completing a British Higher Education degree.
This whole “Academic Path” makes you feel that life in general consists of jumping from an institution to an institution, prepared for you by some other people whose expertise is in making life meaningful for other people.
This problem, I believe, is by no means specific to Britain or Sinosphere, but the story of an aspiring philosopher makes it seem more pronounced.
</p>

 <p>
That is, to me at least, philosophers are the most prominent of those people who are to the least extent expected to follow a well-written path.
Well,  <span class="underline">some</span> of the recent philosophers did have a degree in philosophy, for example Jacques Derrida, however I always found the greatest value in the works of philosophers by doom rather than philosophers by profession.
Within the lines of the book I do see quite a lot of this contradiction of the explicit and the implicit, the connotation and the denotation, and the desire to be good and the desire to be successful.
</p>
</div>
</section> <section id="outline-container-The-author" class="outline-2"> <h2 id="The-author"> <span class="section-number-2">4.</span>  <a href="#The-author">The author</a></h2>
 <div class="outline-text-2" id="text-The-author">
 <p>
To check what she is doing at the moment (the book was released in 2012), you can check her website,  <a href="http://lishanchan.com">http://lishanchan.com</a>. 
Maybe this is how Asia is going to get its true voice?
It almost seems that she is enjoying what she is  doing now more than she would be enjoying being an institutionalised academic. 
</p>

 <p>
Anyway, unless you are interested in biographies, philosophers, or Asian literature, I can’t really recommend this book.
For the people who enjoy those, however, this may be a nice addition to the collection of niche books.
</p>
</div>
</section> <section id="outline-container-If-you-are-interested-in-a-professional-review" class="outline-2"> <h2 id="If-you-are-interested-in-a-professional-review"> <span class="section-number-2">5.</span>  <a href="#If-you-are-interested-in-a-professional-review">If you are interested in a professional review</a></h2>
 <div class="outline-text-2" id="text-If-you-are-interested-in-a-professional-review">
 <p>
 <a href="https://tsingapore.com/article/philosophy-and-logic-a-womans-descent-into-and-ascent-out-of-schizophrenia">https://tsingapore.com/article/philosophy-and-logic-a-womans-descent-into-and-ascent-out-of-schizophrenia</a>
</p>
</div>
</section> <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">6.</span>  <a href="#Contacts">Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
 <p>
I also have:
</p>
 <ul class="org-ul"> <li>Telegram:  <a href="https://t.me/unobvious">https://t.me/unobvious</a></li>
 <li>Facebook:  <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a></li>
 <li>GitLab  :  <a href="http://gitlab.com/Lockywolf">http://gitlab.com/Lockywolf</a></li>
</ul></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-07-10_Lishan-Chan-Philosophers-Madness_Review/2020-07-10_Lishan-Chan-Philosophers-Madness_Review.txt.html"/>
  <id>https://lockywolf.net/2020-07-10_Lishan-Chan-Philosophers-Madness_Review/2020-07-10_Lishan-Chan-Philosophers-Madness_Review.txt.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A short review on &quot;The Culture of Chinese Communism and the Secret Sources of its Power&quot; by Kerry Brown.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A short review on “The Culture of Chinese Communism and the Secret Sources of its Power” by Kerry Brown.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract">1. Abstract</a></li>
 <li> <a href="#The-scope">2. The scope</a></li>
 <li> <a href="#The-results">3. The results</a></li>
 <li> <a href="#References">4. References</a></li>
 <li> <a href="#Contacts">5. Contacts</a></li>
</ul></div>
</nav> <section id="outline-container-Abstract" class="outline-2"> <h2 id="Abstract"> <span class="section-number-2">1.</span>  <a href="#Abstract">Abstract</a></h2>
 <div class="outline-text-2" id="text-Abstract">
 <p>
Kerry Brown is a well-known scholar of Chinese culture.
The Communist Party of China could not have avoided his attention.
</p>

 <p>
I have read this book at a book club, and would like to share some of my impressions.
</p>


 <figure id="org600240e"> <img src="001-book-cover-9781509524563_FC.jpg" alt="001-book-cover-9781509524563_FC.jpg"></img></figure> <p></p>
</div>
</section> <section id="outline-container-The-scope" class="outline-2"> <h2 id="The-scope"> <span class="section-number-2">2.</span>  <a href="#The-scope">The scope</a></h2>
 <div class="outline-text-2" id="text-The-scope">
 <p>
Dr. Brown is a very well known and highly regarded scholar of China.
He is considered an expert both in China and overseas, up to a degree at which the Chinese government itself sometimes consults him over how China is seen in the foreigners’ view.
</p>

 <p>
What is this book about?
</p>

 <p>
This book is about the official attitude of the Communist Party to several of the major issues that every social institution has to consider at some point:
</p>

 <ul class="org-ul"> <li>History</li>
 <li>Ideology</li>
 <li>Ethics</li>
 <li>Aesthetics</li>
</ul> <p>
The views on these topics from within the Communist Party and from the outside are usually radically different.
Being a foreigner, Dr. Brown usually writes about China from an outsider point of view.
This is to be expected, as his audience is predominantly external.
Moreover, he seems to be a strong supporter of the “outsider” point of view, the one that he calls “rigorously justified” and “empirically supported”.
</p>

 <p>
This leads, however, to the conflict of visions with a large group the very object of his study.
In simple words, it becomes hard to discuss China with its own ruling party members, who seem to be even speaking a language different to the one the external scholars of China speak.
</p>

 <p>
One could simply say that the texts and ideas that the Communist Party speakers produce are just symptoms of being victims of the state propaganda, but dismissing such a large body of information would lead to a large loss of data.
Rather than dismissing all the material that the Chinese Government and the Communist Party produce as being propagandist, Dr Brown proposes to develop a certain skill of understanding what exactly is being written “between the lines”.
</p>

 <p>
This book is, in some sense, an attempt to write a field guide to understanding what the Chinese propaganda means when it says something.
</p>


 <figure id="orgd41df76"> <img src="002_Jiang-Zemin.jpg" alt="002_Jiang-Zemin.jpg"></img></figure></div>
</section> <section id="outline-container-The-results" class="outline-2"> <h2 id="The-results"> <span class="section-number-2">3.</span>  <a href="#The-results">The results</a></h2>
 <div class="outline-text-2" id="text-The-results">
 <p>
Can I say that the attempt is successful?
</p>

 <p>
I did write down several book titles and several other materials as a result of reading this book.
</p>

 <p>
I did learn that after the year 1978, not just the economic policy of China changed, but also the government’s attitude to almost every aspect of a society from the list above.
</p>

 <p>
I did find out that the Chinese Communist Party considers the broadly understood “Culture” an important tool in shaping the society and attempts to use it in its policymaking with more and more effort each year.
</p>

 <p>
I did understand that the presidency of Chairman Xi is facing a challenge that is just as huge, or even more huge than the challenges encountered by its predecessors.
On this issue there seems to be a consensus of both the external and internal scholars.
</p>

 <p>
But have I understood what the Communist Party of China actually is?
Not really.
Apart from the fact that it considers itself an entity that is different from just “a party” in the Western sense of the word “party”, I did not really understand much.
One analogy that is made in the book, that is intended to give a better understanding of the Party is the one of the Catholic Church, which also a grand structure that considers itself responsible for all aspects of the social life of its members.
However, this analogy is not really illuminating. (Pun intended.)
</p>

 <p>
Almost every aspect of the “uniqueness” of the Communist Party of China seems to have been tried by some other guys in this world.
And even the “totalitarian” property is being just as successfully replicated by the Vietnamese right across the border to the South.
Moreover, almost all properties of the CPC were already tried and tested by the Communist Party of the Soviet Union, and we all know how this party ingloriously terminated.
The Chinese Party has obviously learned on the Soviet lessons, but whether this makes this social structure unique, I am not very sure.
</p>

 <p>
On the positive side, now I understand that the Chinese Government will be paying more attention to the cultural side of life.
It is going to be a hard job, as the “classical” art is all already redistributed in the nineteenth century, and is unlikely to be bought-out from the countries which already possess it.
However, Chinese modern art is growing in price and is likely to become more and more interesting as it is given more attention, so “hard” does not mean “impossible”.
</p>

 <p>
The natural Chinese seem to say that the book is largely repeating what they are taught at school on the politics course, so this book does not seem hugely critical.
The author does cite a few dissidents from within China, but frankly speaking, their views did not do much to enlighten me either.
</p>


 <figure id="org4f3c206"> <img src="003_propaganda.jpg" alt="003_propaganda.jpg"></img></figure></div>
</section> <section id="outline-container-References" class="outline-2"> <h2 id="References"> <span class="section-number-2">4.</span>  <a href="#References">References</a></h2>
 <div class="outline-text-2" id="text-References">
 <p>
I cannot even make a comprehensive list of things that I would be willing consult in order to understand China better. 
Below is a poor attempt.
</p>

 <ul class="org-ul"> <li>How to be a good communist by Liu ShaoQi</li>
 <li>Speeches of the Chinese Communist party leaders</li>
 <li>Modern art exhibitions all over China</li>
 <li>The Dream of the Red Chamber (an old classic)</li>
 <li>Xi JinPing tells stories</li>
 <li>Records of the speeches by Jiang ZeMin on YouTube/YouKu</li>
 <li>Party learning materials/apps</li>
 <li>Deep China by Arthur Kleinman et al.</li>
</ul></div>
</section> <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">5.</span>  <a href="#Contacts">Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
 <p>
If you find this review useful, share, like, comment, re-post.
</p>

 <p>
I can be followed at:
</p>

 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="https://t.me/unobvious">https://t.me/unobvious</a></dd>
 <dt>Facebook</dt> <dd> <a href="https://mbasic.facebook.com/vladimir.nikishkin">https://mbasic.facebook.com/vladimir.nikishkin</a></dd>
 <dt>GitLab  </dt> <dd> <a href="https://gitlab.com/Lockywolf/">https://gitlab.com/Lockywolf/</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-07-29_Kerry-Brown_The-Culture-of-Chinese-Communism-and-the-secret-sources-of-its-power/2020-07-29_Kerry-Brown_The-Culture-of-Chinese-Communism.blog-post.txt.html"/>
  <id>https://lockywolf.net/2020-07-29_Kerry-Brown_The-Culture-of-Chinese-Communism-and-the-secret-sources-of-its-power/2020-07-29_Kerry-Brown_The-Culture-of-Chinese-Communism.blog-post.txt.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Musings on &quot;The Force of Non-Violence&quot; by Judith Butler (2020).</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Musings on “The Force of Non-Violence” by Judith Butler (2020).</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#The-Force-of-Non-Violence-by-Judith-Butler-(2020)">1. The Force of Non-Violence by Judith Butler (2020)</a>
 <ul> <li> <a href="#The-book.">1.1. The book.</a></li>
 <li> <a href="#Useful-thoughts.">1.2. Useful thoughts.</a></li>
 <li> <a href="#Living">1.3. Living</a></li>
 <li> <a href="#Imagination">1.4. Imagination</a></li>
 <li> <a href="#Saving-and-killing.">1.5. Saving and killing.</a></li>
 <li> <a href="#Some-thoughts-on-basic-instincts.">1.6. Some thoughts on basic instincts.</a></li>
 <li> <a href="#Some-thoughts-on-the-writers-she-cites.">1.7. Some thoughts on the writers she cites.</a></li>
 <li> <a href="#The-actual-force-of-the-non-violent-action.">1.8. The actual force of the non-violent action.</a></li>
 <li> <a href="#Conclusion">1.9. Conclusion</a></li>
</ul></li>
 <li> <a href="#Contacts">2. Contacts</a></li>
</ul></div>
</nav> <section id="outline-container-The-Force-of-Non-Violence-by-Judith-Butler-(2020)" class="outline-2"> <h2 id="The-Force-of-Non-Violence-by-Judith-Butler-(2020)"> <span class="section-number-2">1.</span>  <a href="#The-Force-of-Non-Violence-by-Judith-Butler-(2020)">The Force of Non-Violence by Judith Butler (2020)</a></h2>
 <div class="outline-text-2" id="text-The-Force-of-Non-Violence-by-Judith-Butler-(2020)">

 <figure id="orgb90f43b"> <img src="0001_cover_The-force-of-Non-violence-e1583843807795.png" alt="0001_cover_The-force-of-Non-violence-e1583843807795.png"></img></figure> <p>
A long, confusing, self-inconsistent and contradictory “review” is following.
</p>

 <p>

</p>
</div>

 <div id="outline-container-The-book." class="outline-3">
 <h3 id="The-book."> <span class="section-number-3">1.1.</span>  <a href="#The-book.">The book.</a></h3>
 <div class="outline-text-3" id="text-The-book.">

 <figure id="orgb0ad0b9"> <img src="0002_confusion_content-confusion.jpg" alt="0002_confusion_content-confusion.jpg"></img></figure> <p>
This book is very messy.
It uses a very obscure language, and it is missing supporting links for several critical statements.
(It does provide references to many other statements.)
Even the amount of words I had to write down into the “learn later” list was way smaller than similar texts give me, as the confusion was mainly coming from the misuse of easier words, rather than from using many complicated ones.
</p>

 <p>
As the book is badly written, and extracting the meaning from the text is very hard, this review would have to be in the form of “what thoughts the book made think”, rather than “what is the book about”.
</p>

 <p>
So, the whole book is based on the concept of “imaginary”.
This book is more about a Utopian fantasy than about anything existing.
Butler herself is supporting her right to do so with a weakest supporting argument of all times “would you like to live in a world in which no-one thinks about such a development perspective”.
Indeed, this can be rephrased as “you what, care too much about what I write?”.
It is basically an appellation to Freedom of Speech, that is a last resort.
</p>

 <p>
I do grant her that right, but then I would rather have to be using this text not as something describing anything working, but rather as an exercise in reading and extracting whatever meaningful thoughts there may be in a deliberately obscured text.
An exercise in philosophising rather than an exercise in philosophy. 
</p>
</div>
</div>

 <div id="outline-container-Useful-thoughts." class="outline-3">
 <h3 id="Useful-thoughts."> <span class="section-number-3">1.2.</span>  <a href="#Useful-thoughts.">Useful thoughts.</a></h3>
 <div class="outline-text-3" id="text-Useful-thoughts.">

 <figure id="orgbdb5328"> <img src="0003_useful-thoughts_freud.jpg" alt="0003_useful-thoughts_freud.jpg"></img></figure> <p>
The author seems to be determined that the human world in general can be described using essentially two main tools: politics and psychology.
Not digging very deeply, she seems to be using Freud and his theory as a source of psychological theory, and Hobbes as the source of political theory.
While both are very respectable founders of the fields, it staggered me she seems to be regarding them so highly even being aware (?) of the modern state of research.
The idea here, perhaps, is that politics describes human behaviour “en masse”, whereas psychology describes interpersonal (she uses the word “dyadic”, which is already strange enough) interactions.
But, it’s obvious, but someone has to say that: human societies are so much more complex than just one-to-one and one-to-many interactions!
</p>

 <p>
Butler seems to love Freud.
It is a little surprising, given that Freud is not, probably, the most advanced source of psychological knowledge nowadays.
Indeed, he was extremely instrumental in founding the field, but that was so long ago, and much more substantive research has been done since.
</p>

 <p>
She also seems to be focused mostly on Hobbes when looking at political theory.
She acknowledges the existence of Locke and Rousseau, but very superficially, and mostly with respect to the “state of nature”.
(Rousseau is mentioned twice less than Hobbes, and Locke’s theory is even completely ignored. Furthermore, why do we even need the “state of nature” in this discussion?)
And again, why are we focusing on the founders so much more than on the ones who attempted to improve the theory?
</p>

 <p>
She tries to “imagine” the world that is non-violent (which is a very confusing an convoluted term that she spends a lot of time describing).
This world, she argues, has to be based on the “ethics of interdependence”.
The value of life, she argues, is based on the “grievability” by other people, then.
</p>

 <p>
The argument she’s trying to build, jumps from the imaginary “freedom as independence” into the “freedom of total inter-dependence”.
It jumps as if there is no middle ground.
</p>

 <p>
She does not completely ignore the existence of groups, but entirely ignores the very concept of group dependence.
Indeed, people cannot be fully independent, but total dependence is also not how things work.
Freedom (the word she doesn’t use a lot) means that people  <span class="underline">choose</span> whom upon to depend.
</p>

 <p>
The groups that appear in her text are mostly the groups of similarity, and most often the groups of blood relatives.
She also speaks about the groups of grievability and groups of power, but almost entirely ignores the groups of friendship and cooperation.
Whereas those constitute those groups that are actually worth living for.
</p>
</div>
</div>

 <div id="outline-container-Living" class="outline-3">
 <h3 id="Living"> <span class="section-number-3">1.3.</span>  <a href="#Living">Living</a></h3>
 <div class="outline-text-3" id="text-Living">

 <figure id="org245f25c"> <img src="0004_life_what-is-life.jpg" alt="0004_life_what-is-life.jpg"></img></figure> <p>
The concept of “living” plays a large role in her argument, and she writes a lot of words to try and describe what it is to be alive, and how we regret the loss of life.
She even proposes to value lives according to how much we would regret the loss of those lives…
</p>

 <p>
But why would we even do that?
That’s very human and emotional to grieve  <span class="underline">after</span> the loss.
But that very notion has been long proven to be one of the least useful in the world.
As an English proverb says “There’s no sense crying over spilt milk.”
</p>

 <p>
The value of the life that is already lost is then known precisely, and equal to zero.
</p>

 <p>
The confusion is exacerbated by the fact that she dodges the urge to at least define what it is to be living.
I know that some mental gymnastics needs to be done in order to declare the “green” position life-preserving and the “pro-life” position non life-preserving, but hey, it doesn’t have to be that inconsistent.
(It is also discomfiting how much American politics is repeatedly influencing the world outside the U.S. in a way largely irrelevant to the outside world.)
</p>
</div>
</div>

 <div id="outline-container-Imagination" class="outline-3">
 <h3 id="Imagination"> <span class="section-number-3">1.4.</span>  <a href="#Imagination">Imagination</a></h3>
 <div class="outline-text-3" id="text-Imagination">

 <figure id="orgc20f2dc"> <img src="0005_imagination_o-MIND-IMAGINATION-facebook.jpg" alt="0005_imagination_o-MIND-IMAGINATION-facebook.jpg"></img></figure> <p>
The concept of imagination is used a lot in her treatise.
This is indeed a place where this book has proven to be useful.
Indeed the result of her imagination I consider to be worthless, but the way she self-reflects on imagining the world, and also tries to model the way other people imagine the world, made me think a lot.
</p>

 <p>
I have never really thought about the “imagination machinery” in the human brain.
And I really like the concept of phantasy, distinct from fantasy by the presence of subconscious component.
I really liked to think about different kinds of imagination as in: imagining scenes, imagining words, both written and spoken, imagining 2d objects, imagining feelings, and much more.
</p>

 <p>
I think that the “imagination software” in the brain is really worth exploring.
</p>
</div>
</div>

 <div id="outline-container-Saving-and-killing." class="outline-3">
 <h3 id="Saving-and-killing."> <span class="section-number-3">1.5.</span>  <a href="#Saving-and-killing.">Saving and killing.</a></h3>
 <div class="outline-text-3" id="text-Saving-and-killing.">

 <figure id="orgad8e205"> <img src="0006_rescue_inx960x640.jpg" alt="0006_rescue_inx960x640.jpg"></img></figure> <p>
The part of the treatise that is dedicated to saving and killing largely rotates about the desire to destroy and the desire to save as given by Freud.
I cannot say that I can distil any meaningful conclusion from her words.
Moreover, all the discussion seems very contrived and produced only in the name of deriving certain political slogans of the day.
That is, it looks (to me) as largely just fitting the argument to the answer that the author already believes to be true.
The very structure that is dedicated to preserving life, she considers to be a manifestation of a “dominance hierarchy” that is worth bringing down.
Indeed, often such structures become corrupt, but she produced no decent substituting concept, besides doing some mental gymnastics modelled after Kant and Freud.
</p>

 <p>
She does give a great account on the police in the USA killing people, especially black people.
The language of those parts of the book is much more lucid and provides a much more vivid image.
This makes me think that as a political professional (e.g. a political campaign mastermind) she could have had a role that would fit her much better than the one of a professional philosopher.
</p>
</div>
</div>

 <div id="outline-container-Some-thoughts-on-basic-instincts." class="outline-3">
 <h3 id="Some-thoughts-on-basic-instincts."> <span class="section-number-3">1.6.</span>  <a href="#Some-thoughts-on-basic-instincts.">Some thoughts on basic instincts.</a></h3>
 <div class="outline-text-3" id="text-Some-thoughts-on-basic-instincts.">

 <figure id="org05de8cd"> <img src="0007_instincts_the_three_laws_of_robotics.png" alt="0007_instincts_the_three_laws_of_robotics.png"></img></figure> <p>
This section will just list a few thoughts that I don’t think actually fit into any reasonable piece of argument, but are worth scavenging from the book.
</p>

 <ul class="org-ul"> <li>Empathy is done through reflection. We never really empathise with anyone, but only with ourselves imagined in the position of the one being empathised with.</li>
 <li>Treating others well, we compensate for ourselves not being loved enough. (Really?)</li>
 <li>“Make die” and “let die” both cause someone’s death, but the second one “let die” is generally much less morally discouraged.</li>
 <li>“Motivations” are actually neither conscious nor unconscious, but in between.</li>
</ul></div>
</div>

 <div id="outline-container-Some-thoughts-on-the-writers-she-cites." class="outline-3">
 <h3 id="Some-thoughts-on-the-writers-she-cites."> <span class="section-number-3">1.7.</span>  <a href="#Some-thoughts-on-the-writers-she-cites.">Some thoughts on the writers she cites.</a></h3>
 <div class="outline-text-3" id="text-Some-thoughts-on-the-writers-she-cites.">

 <figure id="org94640ab"> <img src="0008_bibliography_books.jpg" alt="0008_bibliography_books.jpg"></img></figure> <p>
Obviously, as mentioned previously, she mentions Freud and Hobbes.
As one of the Freud’s successors, she speaks about Anna Klein.
She cites almost all famous Marxists of the 21st century, starting from Althusser.
Laplanche and Derrida, obviously, creep into the narrative too, how could they have not.
Foucault and Fanon even get their own chapter.
</p>

 <p>
Melanie Klein seems to be the only psychologist that she seriously considers, besides Freud.
Perhaps, worth looking into.
</p>

 <p>
Unmentioned in the book, but seems related to me is the work of the late Sir Roger Scruton – Art and Imagination: A Study in the Philosophy of Mind. 
</p>
</div>
</div>

 <div id="outline-container-The-actual-force-of-the-non-violent-action." class="outline-3">
 <h3 id="The-actual-force-of-the-non-violent-action."> <span class="section-number-3">1.8.</span>  <a href="#The-actual-force-of-the-non-violent-action.">The actual force of the non-violent action.</a></h3>
 <div class="outline-text-3" id="text-The-actual-force-of-the-non-violent-action.">

 <figure id="org95eb66f"> <img src="0009_protests_Moscow_rally_at_the_Bolotnaya_square_10_Dec_2011_1.jpg" alt="0009_protests_Moscow_rally_at_the_Bolotnaya_square_10_Dec_2011_1.jpg"></img></figure> <p>
The most disappointing part of the book is that the actual analysis of the non-violent action is given as little attention as possibly can be given so long that the books still bears some relevance to the non-violent protest.
Apart from “using human bodies as a wall” and “coming to the shores of Europe in boats full of people”, not much is spoken about ethicality (or the absence thereof) of different kinds of peaceful protest.
Strategy, tactics, effectiveness – all of that is mostly ignored, apart from insisting that the structural violence itself would always try to present peaceful action as violent.
As if we wouldn’t know that.
A lot is said about self-defence, but very little about extralegal defence of the others. 
In particular, the subject of defending humans against dangerous forces of nature is completely ignored.
</p>
</div>
</div>

 <div id="outline-container-Conclusion" class="outline-3">
 <h3 id="Conclusion"> <span class="section-number-3">1.9.</span>  <a href="#Conclusion">Conclusion</a></h3>
 <div class="outline-text-3" id="text-Conclusion">

 <figure id="orgbe7a9f1"> <img src="0010_perplexity_ch01.gif" alt="0010_perplexity_ch01.gif"></img></figure> <p>
When you are approaching someone, who has been well-known as an adversary of the forces you generally sympathise with, there may be several expectations.
You may expect the text to be an outrageous demagoguery, aimed at appealing to emotions and ignoring any traces of rational.
This at least gives you the feeling of guilty pleasure by imagining a picture of a wild combat of ideas.
You may expect a cleverly twisted argument, that is crafted so well that you find it very hard to penetrate the logic and to find flaws.
Then it is upon you to sharpen your mind in order to have a proper duel with your opponent.
You can expect to be mistaken, and be exposed to the ideas that have not yet had a place in your mind, and that would be the best possible option.
Getting enlightened, after all, is one of the best feelings in the world.
</p>

 <p>
What you probably do not expect, although you should, is the book to be just lacking any sort of cohesive picture in it.
Is it of the aspects of the “banality of evil” that Hannah Arendt was writing about?
“The Force of Non-Violence” is from the last category.
Of course, I am not equating Butler with any of the horrible evil-doers of the world.
</p>

 <p>
But the book still leaves me with that creeping in feeling: 
“How can it be that someone who manages to take simple things and express them in a totally incomprehensible way happens to be one of the most prominent philosophers of our time?”
</p>

 <p>
It leaves you with a feeling that you have missed something.
Is that “something” ultimately incomprehensible to just that kind of people that you belong to?
</p>

 <p>
But no, over and over I keep seeing in this book only an exercise in philosophising and nothing else.
Chunks of not very consistent reasoning interspersed with literature reviews of various philosophers and journalists.
Attempts to make a well-structured text that keep failing over and over.
</p>

 <p>
On the other hand, at least it has made me produce the longest so far book review I have made.
At least that I should be grateful for.
</p>
</div>
</div>
</section> <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">2.</span>  <a href="#Contacts">Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
 <p>
Subscribe and donate if you find anything in this blog and/or other pages useful.
Repost, share and discuss, feedback helps me become better.
</p>

 <p>
I also have:
</p>
 <dl class="org-dl"> <dt>Facebook</dt> <dd> <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a></dd>
 <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>Twitter</dt> <dd> <a href="https://twitter.com/VANikishkin">https://twitter.com/VANikishkin</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-08-17_The-Force-of-Non-Violence-by-Judith-Butler_notes/2020-09-23_The-Force-of-Nonviolence-by-Judith-Butler_review.html"/>
  <id>https://lockywolf.net/2020-08-17_The-Force-of-Non-Violence-by-Judith-Butler_notes/2020-09-23_The-Force-of-Nonviolence-by-Judith-Butler_review.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A short review on &quot;The Madness of Crowds&quot; by Douglas Murray (2019).</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A short review on “The Madness of Crowds” by Douglas Murray (2019).</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Contacts">1. Contacts</a></li>
</ul></div>
</nav> <figure id="orgd50be4e"> <img src="2020-09-14_10-44-42_book-madness-of-crowds-cover-with-douglas-murray-author.png" alt="2020-09-14_10-44-42_book-madness-of-crowds-cover-with-douglas-murray-author.png"></img></figure> <p>
I have read the “Madness of Crowds”.
It is a book about several kinds of inequalities in the society, to which a lot of effort has been paid in order to compensate for them, and although up to a certain point a lot of this effort paid off, recently the effects became more controversial than working.
</p>

 <p>
Douglas discusses four big (in the amount of text dedicated to them) inequalities, and many more small ones.
</p>

 <p>
I think that the main point that should be taken away from the text is that much more thinking needs to be done before deciding on an important issue, even if this issue may seem perfectly obvious to the referential group.
If someone is offering you a “clear solution” to an issue, doubt it even if it is a direct extrapolation of the solution to the same issue as it used to be in the past.
Doubt it if is the same solution to a different issue, no matter how similar it may look.
Doubt it in any circumstances.
</p>

 <p>
Another thing that I take out of his book is: read the classics. 
Not the classical fiction, but the classical thought.
The older guys, like Democritus, Protagoras, Plato, Aristotle, Socrates, Confucius, Babylonians, they have been outdated and superseded… but it is astonishing to see how slowly the process of change goes in the human nature, compared to the human tools.
</p>

 <p>
There is also one thought that is not terribly new, at least I heard it several times from different people, but which, I tell myself, is worth repeating.
When listening to people giving advice, try to distinguish the people who are giving you good advice because they want you to become better from people who give you bad advice because they want you to fail.
</p>

 <p>
The book is not too long, a native speaker can probably get through it in a couple of evenings.
</p>

 <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">1.</span>  <a href="#Contacts">Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
 <p>
Subscribe and donate if you find anything in this blog and/or other pages useful.
Repost, share and discuss, feedback helps me become better.
</p>

 <p>
I also have:
</p>
 <dl class="org-dl"> <dt>Facebook</dt> <dd> <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a></dd>
 <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>Twitter</dt> <dd> <a href="https://twitter.com/VANikishkin">https://twitter.com/VANikishkin</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-09-11_The-Madness-of-Crowds-by-Douglas-Murray/2020-09-11_The-Madness-of-Crowds-by-Douglas-Murray_review.html"/>
  <id>https://lockywolf.net/2020-09-11_The-Madness-of-Crowds-by-Douglas-Murray/2020-09-11_The-Madness-of-Crowds-by-Douglas-Murray_review.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Let us discuss SRFI-216: SICP Prerequisites</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Let us discuss SRFI-216: SICP Prerequisites</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract">1. Abstract</a></li>
 <li> <a href="#What-is-SICP-and-why-is-it-good?">2. What is SICP and why is it good?</a></li>
 <li> <a href="#Which-technical-problems?">3. Which technical problems?</a></li>
 <li> <a href="#Why-would-I-even-want-to-solve-SICP-in-some-other-Scheme?">4. Why would I even want to solve SICP in some other Scheme?</a></li>
 <li> <a href="#My-contribution">5. My contribution</a></li>
 <li> <a href="#The-artefact">6. The artefact</a>
 <ul> <li> <a href="#Boolean-values.">6.1. Boolean values.</a></li>
 <li> <a href="#Time-queries.">6.2. Time queries.</a></li>
 <li> <a href="#Random-numbers.">6.3. Random numbers.</a></li>
 <li> <a href="#Multi-threading.">6.4. Multi-threading.</a></li>
 <li> <a href="#Streams.">6.5. Streams.</a></li>
</ul></li>
 <li> <a href="#How-can-I-help?">7. How can I help?</a></li>
 <li> <a href="#Conclusion">8. Conclusion</a></li>
 <li> <a href="#Contacts-and-Donations">9. Contacts and Donations</a></li>
</ul></div>
</nav> <section id="outline-container-Abstract" class="outline-2"> <h2 id="Abstract"> <span class="section-number-2">1.</span>  <a href="#Abstract">Abstract</a></h2>
 <div class="outline-text-2" id="text-Abstract">

 <figure id="orgd1943eb"> <img src="001-Sicp_js.png" alt="001-Sicp_js.png" width="50%" style="margin:1ex;float:left;"></img></figure> <p>
This post is a not-so-technical introduction to the  <a href="https://srfi.schemers.org/srfi-216/">Scheme Request for Implementation 216: SICP Prerequisites</a>, that I have written and made available for discussion. (Please, contribute!)
</p>

 <p>
SICP stands for the "Structure and Interpretation of Computer Programs", a world-famous introductory programming textbook.
</p>

 <p>
It's aim is to make the exercises and examples from the book be available for any Scheme system bothering to provide it, and not just MIT/GNU Scheme and Racket (which doesn't even consider itself a Scheme any more).
Before this SRFI an issue tracker request asking for SICP support would have been looking vaguely.
Now you can just write "Could you consider providing SRFI-216 (and 203)" in your implementation.
</p>

 <p>
In order to write this SRFI, I went through the whole book and solved all the exercises.
However, my experience is just mine, and to make a truly good common vocabulary, community feedback is required.
</p>

 <p>
For technical detail and more background, I am inviting you to read the whole article.
</p>

 <p>

</p>
</div>
</section> <section id="outline-container-What-is-SICP-and-why-is-it-good?" class="outline-2"> <h2 id="What-is-SICP-and-why-is-it-good?"> <span class="section-number-2">2.</span>  <a href="#What-is-SICP-and-why-is-it-good?">What is SICP and why is it good?</a></h2>
 <div class="outline-text-2" id="text-What-is-SICP-and-why-is-it-good?">

 <figure id="orgd2763e4"> <img src="002-800px-Massachusetts_Institute_of_Technology_logo.svg.png" alt="002-800px-Massachusetts_Institute_of_Technology_logo.svg.png" width="50%" style="margin:1ex;float:left;"></img></figure> <p>
SICP used to be an introductory course in programming in the Massachusetts Institute of Technology.
</p>

 <p>
Its aims are twofold.
</p>

 <p>
On one hand, it aims to provide sort of a bridge between the level of programming at which programmers reason about basic computational units, such as half-adders and XOR gates, and the level at we can reason about everyday things, such as "please highlight all misspelled words".
</p>

 <p>
On the other hand it tries to expose the students to as many software design/architectural patterns (that are actually thought out to add value rather than overcome the limitations of a language) as possible.
</p>

 <p>
Both of these goals are enormous, and the course is itself enormous in size.
</p>

 <p>
Still, passing it gives that (false) feeling of almightiness that is just so seductive that trying it once, the student is almost bound to pursuing it later on.
</p>

 <p>
And apart from the sheer difficulty of the course, there are technical problems too.
</p>
</div>
</section> <section id="outline-container-Which-technical-problems?" class="outline-2"> <h2 id="Which-technical-problems?"> <span class="section-number-2">3.</span>  <a href="#Which-technical-problems?">Which technical problems?</a></h2>
 <div class="outline-text-2" id="text-Which-technical-problems?">

 <figure id="orgbd95b22"> <img src="003-800px-MIT_GNU_Scheme_Logo.svg.png" alt="003-800px-MIT_GNU_Scheme_Logo.svg.png" width="50%" style="margin:1ex;float:left;"></img></figure> <p>
To keep the long story short, the Scheme world is not a place for the weak.
</p>

 <p>
SICP challenges the student extra hard in both the questions it asks, and in the questions it  <span class="underline">does not</span> ask. 
In particular, it speaks almost nothing about any particular implementation of Scheme, apart from a few words about MIT/GNU Scheme.
Recalling that MIT Scheme was initially conceived as a software simulator for a hardware chip will already give you a sketch of an emotion that a serious student tackling SICP is experiencing all the time.
</p>

 <p>
Implementations matter a lot for a language as high-level as Scheme. 
In C you can get by with a lot of things, because the language itself has direct memory access, so you are allowed to bend the rules for your own benefit pretty much in an unlimited fashion.
</p>

 <p>
However, Scheme is a high level language, and the developers paid a lot of effort to make sure that it remains as abstractly formulated, as possible, to avoid "designing themselves in the corner" from which it would be very hard to escape.
</p>

 <p>
But a side-effect of this is that a lot of features that modern programmers take for granted, such as  <b>random numbers</b> or  <b>time and date query</b> are unavailable to pure Scheme programmers.
</p>

 <p>
SICP uses several of those, as its aim as a programming language textbook is to introduce the student to as many programming concepts, as possible, even if they have not yet been as cleanly and abstractly formulated, as is desirable to be included into the Scheme standard.
</p>
</div>
</section> <section id="outline-container-Why-would-I-even-want-to-solve-SICP-in-some-other-Scheme?" class="outline-2"> <h2 id="Why-would-I-even-want-to-solve-SICP-in-some-other-Scheme?"> <span class="section-number-2">4.</span>  <a href="#Why-would-I-even-want-to-solve-SICP-in-some-other-Scheme?">Why would I even want to solve SICP in some other Scheme?</a></h2>
 <div class="outline-text-2" id="text-Why-would-I-even-want-to-solve-SICP-in-some-other-Scheme?">
 <p>
One of the main benefits of the SICP is that it teaches the readers how to build an "artificial intelligence system" (in this case, a high-level programming system) on almost any Turing-complete substrate.
</p>

 <p>
But the more frustrating then is to realise that completing it entirely is only possible on two systems, one of which is highly peculiar and does not support Windows (MIT, officially), and the other one doesn't even call itself Scheme.
</p>

 <p>
Moreover, nowadays the main strength of the SICP is not the strength of a general-purpose language (even though writing standalone programs is still completely possible, and Cisco still maintains its own implementation), but as an extension language that can be built into almost any software product imaginable, written in any language.
</p>

 <p>
There are Schemes working on top of JVM, CLR, Fortran, JavaScript.
Scheme is an extension language for GNU Debugger, GNU GIMP and GNU Guix.
</p>

 <p>
For an interested programmer, it's the most reasonable to choose the programming system for mastering SICP that is most like to fit well into the daily workflow.
</p>

 <p>
This is one of the main goals of this SRFI.
</p>
</div>
</section> <section id="outline-container-My-contribution" class="outline-2"> <h2 id="My-contribution"> <span class="section-number-2">5.</span>  <a href="#My-contribution">My contribution</a></h2>
 <div class="outline-text-2" id="text-My-contribution">
 <p>
Since may years has passed since the release of SICP, Second Ed., the language has evolved, and several widely accepted libraries have emerged, that now make it possible to pass the course without digging into the gory details of interpreter implementation, as was required years ago, if you wanted to use any Scheme other than MIT/GNU.
</p>

 <p>
Some of the features still remain a no man's land in the sense that no overwhelmingly acceptable abstraction has emerged to be included into the Scheme.
The most noticeable missing jigsaw bit is the graphics output. 
Frankly speaking, in the age of extra powerful HTML, it is unlikely that it will ever emerge.
</p>

 <p>
The author of this text, therefore, had to deal with the graphics separately, as described in  <a href="https://lockywolf.wordpress.com/2020/07/18/proposing-programming-language-features/">https://lockywolf.wordpress.com/2020/07/18/proposing-programming-language-features/</a> and the  <a href="https://srfi.schemers.org/srfi-203/srfi-203.html">SRFI-203</a>.
</p>

 <p>
This work, however, speaks about the features that either have been included into the standard, of have widely accepted abstractions.
</p>
</div>
</section> <section id="outline-container-The-artefact" class="outline-2"> <h2 id="The-artefact"> <span class="section-number-2">6.</span>  <a href="#The-artefact">The artefact</a></h2>
 <div class="outline-text-2" id="text-The-artefact">

 <figure id="orgcfb525e"> <img src="004-srfi.png" alt="004-srfi.png" width="50%" style="margin:1ex;float:left;"></img></figure> <p>
The result of my work is a Scheme Request For Implementation, a non-normative Scheme community standard.
</p>

 <p>
It includes two constants, five functions, and one syntactic extension to the core language.
</p>
</div>

 <div id="outline-container-Boolean-values." class="outline-3">
 <h3 id="Boolean-values."> <span class="section-number-3">6.1.</span>  <a href="#Boolean-values.">Boolean values.</a></h3>
 <div class="outline-text-3" id="text-Boolean-values.">
 <p>
Many people would remember that it took quite a while until the C language got a dedicated logical type.
Well, for Scheme it took even longer, and therefore SICP has to refer to the two variables  <code>true</code> and  <code>false</code>, that are an abstraction over some (unknown) logical types.
</p>

 <p>
Now that Scheme standard has  <code>#t</code> and  <code>#f</code>, it makes a lot of sense to bridge this gap by equating SICP values and standard values.
</p>
</div>
</div>

 <div id="outline-container-Time-queries." class="outline-3">
 <h3 id="Time-queries."> <span class="section-number-3">6.2.</span>  <a href="#Time-queries.">Time queries.</a></h3>
 <div class="outline-text-3" id="text-Time-queries.">
 <p>
Scheme hasn't had a standard function to find current time for quite a while.
Now it does have one, it is possible to implement the most basic tool for performance profiling (timer) portably. 
This way the  <code>runtime</code> function was implemented.
</p>
</div>
</div>

 <div id="outline-container-Random-numbers." class="outline-3">
 <h3 id="Random-numbers."> <span class="section-number-3">6.3.</span>  <a href="#Random-numbers.">Random numbers.</a></h3>
 <div class="outline-text-3" id="text-Random-numbers.">
 <p>
How would you implement random numbers on a machine that has not access to a clock, an entropy source, or a decaying atom?
It's actually a non-trivial question!
Therefore, the Scheme standard  <span class="underline">still</span> does not have a way to generate (pseudo-)random numbers.
</p>

 <p>
Luckily, the need in random numbers is so large that a widely accepted abstraction has appeared ages ago, and for me it was necessary to just repackage the code.
</p>

 <p>
This way the  <code>random</code> procedure was born.
</p>
</div>
</div>

 <div id="outline-container-Multi-threading." class="outline-3">
 <h3 id="Multi-threading."> <span class="section-number-3">6.4.</span>  <a href="#Multi-threading.">Multi-threading.</a></h3>
 <div class="outline-text-3" id="text-Multi-threading.">

 <figure id="org8851ab8"> <img src="005-1200px-Multithreaded_process.svg.png" alt="005-1200px-Multithreaded_process.svg.png" style="margin:1ex;float:left;width:50%!important;margin-left:0!important;"></img></figure> <p>
Multi-threading was a hot topic about ten years ago, when I was still at a university.
It has not yet been fully researched, deadlocks and race conditions still arise quite a lot, despite several languages that claim to be very fit for multi-threaded programming being available on the market.
</p>

 <p>
The two most basic tools that are required for properly understanding multi-threading are something that "allows programs to run in parallel" and something that "allows one program to make sure that it is not interfering with the some other one".
</p>

 <p>
Of course, there are numerous other tools, but the  <code>parallel-execute</code>, and  <code>test-and-set!</code> (also known as  <code>atomic-compare-and-swap</code>) are the basic foundation on which everything else can be built.
</p>

 <p>
I implemented them on top of the "SRFI-18", which itself borrows inspiration from Java.
It is funny to implement mutexes on top of other mutexes, but that's the price of two models not being completely corresponding.
</p>
</div>
</div>

 <div id="outline-container-Streams." class="outline-3">
 <h3 id="Streams."> <span class="section-number-3">6.5.</span>  <a href="#Streams.">Streams.</a></h3>
 <div class="outline-text-3" id="text-Streams.">
 <p>
Streams are infinite lists. 
They would not have appeared here at all, if SICP had spoken at least a tiny bit about native mechanisms for syntactic extension.
</p>

 <p>
Alas! SICP was written in the years when Scheme had so-called "non-hygienic" macros, but still says nothing about them.
</p>

 <p>
The most useful  <code>cons-stream</code> syntactic structure is, therefore, impossible to implement without writing your own Scheme, which by the Chapter 3 is still not possible.
</p>

 <p>
I had, therefore, implement it myself, on top of the last (R7RS) standard's  <code>syntax-rules</code>.
</p>
</div>
</div>
</section> <section id="outline-container-How-can-I-help?" class="outline-2"> <h2 id="How-can-I-help?"> <span class="section-number-2">7.</span>  <a href="#How-can-I-help?">How can I help?</a></h2>
 <div class="outline-text-2" id="text-How-can-I-help?">
 <p>
Firstly, no good standards appear unless a lot of people examine them.
Code and document review are extremely needed.
</p>

 <p>
Secondly, if you have a "favourite" Scheme implementation, you could try lobbying the provision of this SRFI, in order to both make the implementation more attractive to the users, and to promote SICP.
</p>

 <p>
Tell your friends, students, professors, and enthusiasts, that studying SICP does not have to be a process full of pain.
</p>

 <p>
If you are teaching programming, functional programming, or informatics (or your friends do), suggest that they have a look at the proposal, their feedback would be the most useful.
</p>
</div>
</section> <section id="outline-container-Conclusion" class="outline-2"> <h2 id="Conclusion"> <span class="section-number-2">8.</span>  <a href="#Conclusion">Conclusion</a></h2>
 <div class="outline-text-2" id="text-Conclusion">
 <p>
The SRFI-216, and the SRFI-203, combined, provide all the features that are required from a Scheme implementation to host the book.
</p>

 <p>
I'm hoping that this work may extend the period of relevance for Scheme, SICP, and help popularise such an in-depth and unorthodox course.
</p>

 <p>
The discussion is done through the mailing list. For details, please, consult  <a href="https://srfi.schemers.org/srfi-216/">https://srfi.schemers.org/srfi-216/</a>.
</p>
</div>
</section> <section id="outline-container-Contacts-and-Donations" class="outline-2"> <h2 id="Contacts-and-Donations"> <span class="section-number-2">9.</span>  <a href="#Contacts-and-Donations">Contacts and Donations</a></h2>
 <div class="outline-text-2" id="text-Contacts-and-Donations">
 <p>
This post was not funded by anyone, so if you liked it and/or find it useful, please consider donating or subscribing.
</p>

 <p>
 <b>Donate</b>
</p>
 <ul class="org-ul"> <li> <code>PayPal</code>  <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></li>
 <li> <code>LiberaPay</code>  <a href="https://liberapay.com/independentresearch/donate">https://liberapay.com/independentresearch/donate</a></li>
 <li> <code>Patreon</code>  <a href="https://www.patreon.com/bePatron?u=29080977">https://www.patreon.com/bePatron?u=29080977</a></li>
</ul> <p>
 <b>Subscribe</b>
</p>
 <ul class="org-ul"> <li> <code>Web 1.0</code>  <a href="https://lockywolf.net">https://lockywolf.net</a></li>
 <li> <code>Facebook</code>  <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a></li>
 <li> <code>Telegram</code>  <a href="http://t.me/unobvious">http://t.me/unobvious</a></li>
 <li> <code>GitLab</code>   <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></li>
 <li> <code>Twitter</code>  <a href="https://twitter.com/VANikishkin">https://twitter.com/VANikishkin</a></li>
</ul></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-11-04_BlogPost-Announcing-SRFI-216-SICP-Prerequisites-English/index.html"/>
  <id>https://lockywolf.net/2020-11-04_BlogPost-Announcing-SRFI-216-SICP-Prerequisites-English/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Unsystematic measurements of daily life.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Unsystematic measurements of daily life.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract">1. Abstract</a></li>
 <li> <a href="#Medicine">2. Medicine</a>
 <ul> <li> <a href="#Cut-finger-healing">2.1. Cut finger healing</a></li>
</ul></li>
 <li> <a href="#Weather">3. Weather</a>
 <ul> <li> <a href="#Autumn-coming-to-Shanghai-2020.">3.1. Autumn coming to Shanghai 2020.</a></li>
 <li> <a href="#Spring-coming-to-Shanghai-2021.">3.2. Spring coming to Shanghai 2021.</a></li>
 <li> <a href="#Autumn-coming-to-Wuhan-2021.">3.3. Autumn coming to Wuhan 2021.</a></li>
</ul></li>
 <li> <a href="#Tea">4. Tea</a>
 <ul> <li> <a href="#%E6%AD%A3%E5%B1%B1%E5%B0%8F%E7%A7%8D">4.1. 正山小种</a></li>
 <li> <a href="#%E5%85%B0%E8%B4%B5%E4%BA%BA">4.2. 兰贵人</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Abstract" class="outline-2"> <h2 id="Abstract"> <span class="section-number-2">1.</span>  <a href="#Abstract">Abstract</a></h2>
 <div class="outline-text-2" id="text-Abstract">
 <p>
This file is to record certain random observations that I would like to later return to.
</p>
</div>
</section> <section id="outline-container-Medicine" class="outline-2"> <h2 id="Medicine"> <span class="section-number-2">2.</span>  <a href="#Medicine">Medicine</a></h2>
 <div class="outline-text-2" id="text-Medicine">
</div>

 <div id="outline-container-Cut-finger-healing" class="outline-3">
 <h3 id="Cut-finger-healing"> <span class="section-number-3">2.1.</span>  <a href="#Cut-finger-healing">Cut finger healing</a></h3>
 <div class="outline-text-3" id="text-Cut-finger-healing">
 <p>
On  <span class="timestamp-wrapper"> <span class="timestamp"><2020-10-29 Thu 19:56> </span></span> I cut my finger at home, in the kitchen, while cooking.
Since I am a curious person, and since it is just interesting to study oneself, I have decided to record how much it would take for a finger to heal.
</p>

 <p>
I immediately stuck a bandage on a cut, hoping to prevent the loss of "meat".
I did not use any disinfectant, because the conditions were relatively clean, and I suspected that using a disinfectant on a wound would slow down the healing process.
(I do not know whether this is correct, but I did not have any inflammation, so I suspect I was at least not completely wrong.)
</p>

 <p>
It took roughly 11 days until the flap of "meat" grew back onto the rest of the finger.
It did not really look like the flap was growing back into the main body of the finger, for all 11 days.
Then, suddenly, the skin from on top of the flap has fallen away after ossifying.
And during just a single day the flap seemingly completely amalgamated with the rest of the meat.
</p>

 <p>
I will try to not forget to write down when exactly the area becomes completely as before, and all the traces of the cut disappear.
</p>

 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2020-11-20 Fri 12:13> </span></span> The reddish spot is still visible, but not painful any more.
</p>
</div>
</div>
</section> <section id="outline-container-Weather" class="outline-2"> <h2 id="Weather"> <span class="section-number-2">3.</span>  <a href="#Weather">Weather</a></h2>
 <div class="outline-text-2" id="text-Weather">
</div>

 <div id="outline-container-Autumn-coming-to-Shanghai-2020." class="outline-3">
 <h3 id="Autumn-coming-to-Shanghai-2020."> <span class="section-number-3">3.1.</span>  <a href="#Autumn-coming-to-Shanghai-2020.">Autumn coming to Shanghai 2020.</a></h3>
 <div class="outline-text-3" id="text-Autumn-coming-to-Shanghai-2020.">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2020-11-07 Sat> </span></span> In 2020, in Shanghai, autumn stated to get really felt into the air at the 7th of November.
This was the first day when it really felt required to wear a warm/winter coat.
</p>

 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2020-11-20 Fri> </span></span> Second time had to wear a warm coat. A very warm autumn.
</p>
</div>
</div>


 <div id="outline-container-Spring-coming-to-Shanghai-2021." class="outline-3">
 <h3 id="Spring-coming-to-Shanghai-2021."> <span class="section-number-3">3.2.</span>  <a href="#Spring-coming-to-Shanghai-2021.">Spring coming to Shanghai 2021.</a></h3>
 <div class="outline-text-3" id="text-Spring-coming-to-Shanghai-2021.">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2021-03-03 Wed> </span></span> We are still wearing warm clothes.
Shame I didn't write down the first time light clothing was enough.
A couple of weeks ago.
</p>

 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2021-03-17 Wed> </span></span> I think the winter coat will not be needed for this year any more.
</p>

 <p>
That makes it 4 months of cold weather. 
</p>
</div>
</div>

 <div id="outline-container-Autumn-coming-to-Wuhan-2021." class="outline-3">
 <h3 id="Autumn-coming-to-Wuhan-2021."> <span class="section-number-3">3.3.</span>  <a href="#Autumn-coming-to-Wuhan-2021.">Autumn coming to Wuhan 2021.</a></h3>
 <div class="outline-text-3" id="text-Autumn-coming-to-Wuhan-2021.">
 <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2021-11-22 Mon> </span></span> I think cold weather came to stay. It is 7° now.
</p>
</div>
</div>
</section> <section id="outline-container-Tea" class="outline-2"> <h2 id="Tea"> <span class="section-number-2">4.</span>  <a href="#Tea">Tea</a></h2>
 <div class="outline-text-2" id="text-Tea">
</div>

 <div id="outline-container-%E6%AD%A3%E5%B1%B1%E5%B0%8F%E7%A7%8D" class="outline-3">
 <h3 id="%E6%AD%A3%E5%B1%B1%E5%B0%8F%E7%A7%8D"> <span class="section-number-3">4.1.</span>  <a href="#%E6%AD%A3%E5%B1%B1%E5%B0%8F%E7%A7%8D">正山小种</a></h3>
 <div class="outline-text-3" id="text-%E6%AD%A3%E5%B1%B1%E5%B0%8F%E7%A7%8D">
 <p>
A nice black tea with an almost metallic taste that I really like.
</p>

 <p>
I ordered it in a tea house near my home in Wuhan.
</p>

 <p>
The first portion smells a bit like honey.
</p>

 <p>
The rest are weaker, but very refreshing.
</p>
</div>
</div>

 <div id="outline-container-%E5%85%B0%E8%B4%B5%E4%BA%BA" class="outline-3">
 <h3 id="%E5%85%B0%E8%B4%B5%E4%BA%BA"> <span class="section-number-3">4.2.</span>  <a href="#%E5%85%B0%E8%B4%B5%E4%BA%BA">兰贵人</a></h3>
 <div class="outline-text-3" id="text-%E5%85%B0%E8%B4%B5%E4%BA%BA">
 <p>
A really nice tea from Hainan.
</p>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-11-11_Unsystematics-Measurements/index.html"/>
  <id>https://lockywolf.net/2020-11-11_Unsystematics-Measurements/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Notes and words collected while reading &quot;Tractatus…&quot; by Ludwig Wittgenstein.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Notes and words collected while reading "Tractatus…" by Ludwig Wittgenstein.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract">1.  <span class="todo TODO">TODO</span> Abstract</a></li>
 <li> <a href="#Words">2. Words</a></li>
 <li> <a href="#Notes">3. Notes</a>
 <ul> <li> <a href="#he-is-concerned-with-the-conditions-which-would-have-to-be-fulfilled-by-a-logically-perfect-language----three-problems">3.1. he is concerned with the conditions which would have to be fulfilled by a logically perfect language – three problems</a>
 <ul> <li> <a href="#what-happens-in-our-brain-::-psychology-(syntax?)">3.1.1. What happens in our brain :: psychology (syntax?)</a></li>
 <li> <a href="#how-semantics-gets-into-sentences-::-epistemology-(semantics?)">3.1.2. How semantics gets into sentences :: epistemology (semantics?)</a></li>
 <li> <a href="#truth-vs-falsehood-::-?-(pragmatics?)">3.1.3. Truth-vs-falsehood :: ? (pragmatics?)</a></li>
 <li> <a href="#what-relation-must-one-fact-(such-as-a-sentence)-have-to-another-in-order-to-be-capable-of-being-a-symbol-for-that-other?-::-logic?-(??)">3.1.4. what relation must one fact (such as a sentence) have to another in order to be capable of being a symbol for that other? :: logic? (??)</a></li>
</ul></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Abstract" class="outline-2"> <h2 id="Abstract"> <span class="section-number-2">1.</span>  <a href="#Abstract"> <span class="todo TODO">TODO</span> Abstract</a></h2>
 <div class="outline-text-2" id="text-Abstract">
</div>
</section> <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">2.</span>  <a href="#Words">Words</a></h2>
 <div class="outline-text-2" id="text-Words">
 <table> <colgroup> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">Word</th>
 <th scope="col" class="org-left">Translation</th>
</tr></thead> <tbody> <tr> <td class="org-left"> </td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left"> </td>
 <td class="org-left"> </td>
</tr></tbody></table></div>
</section> <section id="outline-container-Notes" class="outline-2"> <h2 id="Notes"> <span class="section-number-2">3.</span>  <a href="#Notes">Notes</a></h2>
 <div class="outline-text-2" id="text-Notes">
</div>

 <div id="outline-container-he-is-concerned-with-the-conditions-which-would-have-to-be-fulfilled-by-a-logically-perfect-language----three-problems" class="outline-3">
 <h3 id="he-is-concerned-with-the-conditions-which-would-have-to-be-fulfilled-by-a-logically-perfect-language----three-problems"> <span class="section-number-3">3.1.</span>  <a href="#he-is-concerned-with-the-conditions-which-would-have-to-be-fulfilled-by-a-logically-perfect-language----three-problems">he is concerned with the conditions which would have to be fulfilled by a logically perfect language – three problems</a></h3>
 <div class="outline-text-3" id="text-he-is-concerned-with-the-conditions-which-would-have-to-be-fulfilled-by-a-logically-perfect-language----three-problems">
</div>

 <div id="outline-container-what-happens-in-our-brain-::-psychology-(syntax?)" class="outline-4">
 <h4 id="what-happens-in-our-brain-::-psychology-(syntax?)"> <span class="section-number-4">3.1.1.</span>  <a href="#what-happens-in-our-brain-::-psychology-(syntax?)">What happens in our brain :: psychology (syntax?)</a></h4>
 <div class="outline-text-4" id="text-what-happens-in-our-brain-::-psychology-(syntax?)">
</div>
</div>

 <div id="outline-container-how-semantics-gets-into-sentences-::-epistemology-(semantics?)" class="outline-4">
 <h4 id="how-semantics-gets-into-sentences-::-epistemology-(semantics?)"> <span class="section-number-4">3.1.2.</span>  <a href="#how-semantics-gets-into-sentences-::-epistemology-(semantics?)">How semantics gets into sentences :: epistemology (semantics?)</a></h4>
 <div class="outline-text-4" id="text-how-semantics-gets-into-sentences-::-epistemology-(semantics?)">
</div>
</div>

 <div id="outline-container-truth-vs-falsehood-::-?-(pragmatics?)" class="outline-4">
 <h4 id="truth-vs-falsehood-::-?-(pragmatics?)"> <span class="section-number-4">3.1.3.</span>  <a href="#truth-vs-falsehood-::-?-(pragmatics?)">Truth-vs-falsehood :: ? (pragmatics?)</a></h4>
 <div class="outline-text-4" id="text-truth-vs-falsehood-::-?-(pragmatics?)">
</div>
</div>

 <div id="outline-container-what-relation-must-one-fact-(such-as-a-sentence)-have-to-another-in-order-to-be-capable-of-being-a-symbol-for-that-other?-::-logic?-(??)" class="outline-4">
 <h4 id="what-relation-must-one-fact-(such-as-a-sentence)-have-to-another-in-order-to-be-capable-of-being-a-symbol-for-that-other?-::-logic?-(??)"> <span class="section-number-4">3.1.4.</span>  <a href="#what-relation-must-one-fact-(such-as-a-sentence)-have-to-another-in-order-to-be-capable-of-being-a-symbol-for-that-other?-::-logic?-(??)">what relation must one fact (such as a sentence) have to another in order to be capable of being a symbol for that other? :: logic? (??)</a></h4>
 <div class="outline-text-4" id="text-what-relation-must-one-fact-(such-as-a-sentence)-have-to-another-in-order-to-be-capable-of-being-a-symbol-for-that-other?-::-logic?-(??)">
 <p>
accurate Symbolism, i.e. for Symbolism in which a sentence ‘means’ something quite definite.
</p>
</div>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-11-18_Reading-Tractatuc-Logico-Philosophicus-by-Ludwig-Wittgenstein/2020-11-09_words-notes.html"/>
  <id>https://lockywolf.net/2020-11-18_Reading-Tractatuc-Logico-Philosophicus-by-Ludwig-Wittgenstein/2020-11-09_words-notes.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Finding correspondence between Wittgenstein&apos;s Tractatus and programming.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Finding correspondence between Wittgenstein's Tractatus and programming.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#1-The-world-is-all-that-is-the-case.">1. 1 The world is all that is the case.</a>
 <ul> <li> <a href="#1.1-The-world-is-the-totality-of-facts,-not-of-things.">1.1. 1.1 The world is the totality of facts, not of things.</a>
 <ul> <li> <a href="#1.11-The-world-is-determined-by-the-facts,-and-by-their-being-all-the-facts.">1.1.1. 1.11 The world is determined by the facts, and by their being all the facts.</a></li>
 <li> <a href="#1.12-For-the-totality-of-facts-determines-what-is-the-case,-and-also-whatever-is-not-the-case.">1.1.2. 1.12 For the totality of facts determines what is the case, and also whatever is not the case.</a></li>
 <li> <a href="#1.13-The-facts-in-logical-space-are-the-world.">1.1.3.  <span class="todo TODO">TODO</span> 1.13 The facts in logical space are the world.</a></li>
</ul></li>
 <li> <a href="#1.2-The-world-divides-into-facts.">1.2. 1.2 The world divides into facts.</a>
 <ul> <li> <a href="#1.21-Each-item-can-be-the-case-or-not-the-case-while-everything-else-remains-the-same.">1.2.1. 1.21 Each item can be the case or not the case while everything else remains the same.</a></li>
</ul></li>
</ul></li>
 <li> <a href="#2-What-is-the-case-%E2%80%94a-fact%E2%80%94-is-the-existence-of-states-of-affairs.">2. 2 What is the case —a fact— is the existence of states of affairs.</a>
 <ul> <li>
 <ul> <li> <a href="#2.01-A-state-of-affairs-(a-state-of-things)-is-a-combination-of-objects-(things).">2.0.1. 2.01 A state of affairs (a state of things) is a combination of objects (things).</a></li>
 <li> <a href="#2.02-Objects-are-simple.">2.0.2.  <span class="todo TODO">TODO</span> 2.02 Objects are simple.</a></li>
 <li> <a href="#2.03-In-a-state-of-affairs-objects-fit-into-one-another-like-the-links-of-a-chain.">2.0.3.  <span class="todo TODO">TODO</span> 2.03 In a state of affairs objects fit into one another like the links of a chain.</a></li>
 <li> <a href="#2.04-The-totality-of-existing-states-of-affairs-is-the-world.">2.0.4. 2.04 The totality of existing states of affairs is the world.</a></li>
 <li> <a href="#2.05-The-totality-of-existing-states-of-affairs-also-determines-which-states-of-affairs-do-not-exist.">2.0.5. 2.05 The totality of existing states of affairs also determines which states of affairs do not exist.</a></li>
 <li> <a href="#2.06-The-existence-and-non-existence-of-states-of-affairs-is-reality.-(We-also-call-the-existence-of-states-of-affairs-a-positive-fact,-and-their-non-existence-a-negative-fact.)">2.0.6.  <span class="todo TODO">TODO</span> 2.06 The existence and non-existence of states of affairs is reality. (We also call the existence of states of affairs a positive fact, and their non-existence a negative fact.)</a></li>
 <li> <a href="#2.061-States-of-affairs-are-independent-of-one-another.">2.0.7. 2.061 States of affairs are independent of one another.</a></li>
</ul></li>
 <li> <a href="#2.1-We-picture-facts-to-ourselves.">2.1. 2.1 We picture facts to ourselves.</a>
 <ul> <li> <a href="#2.11-A-picture-presents-a-situation-in-logical-space,-the-existence-and-non-existence-of-states-of-affairs.">2.1.1. 2.11 A picture presents a situation in logical space, the existence and non-existence of states of affairs.</a></li>
 <li> <a href="#2.12-A-picture-is-a-model-of-reality.">2.1.2. 2.12 A picture is a model of reality.</a></li>
 <li> <a href="#2.13-In-a-picture-objects-have-the-elements-of-the-picture-corresponding-to-them.">2.1.3. 2.13 In a picture objects have the elements of the picture corresponding to them.</a></li>
 <li> <a href="#2.14-What-constitutes-a-picture-is-that-its-elements-are-related-to-one-another-in-a-determinate-way.">2.1.4. 2.14 What constitutes a picture is that its elements are related to one another in a determinate way.</a></li>
 <li> <a href="#2.15-The-fact-that-the-elements-of-a-picture-are-related-to-one-another-in-a-determinate-way-represents-that-things-are-related-to-one-another-in-the-same-way.-Let-us-call-this-connexion-of-its-elements-the-structure-of-the-picture,-and-let-us-call-the-possibility-of-this-structure-the-pictorial-form-of-the-picture.">2.1.5.  <span class="todo TODO">TODO</span> 2.15 The fact that the elements of a picture are related to one another in a determinate way represents that things are related to one another in the same way. Let us call this connexion of its elements the structure of the picture, and let us call the possibility of this structure the pictorial form of the picture.</a></li>
 <li> <a href="#2.16-If-a-fact-is-to-be-a-picture,-it-must-have-something-in-common-with-what-it-depicts.">2.1.6. 2.16 If a fact is to be a picture, it must have something in common with what it depicts.</a></li>
 <li> <a href="#2.17-What-a-picture-must-have-in-common-with-reality,-in-order-to-be-able-to-depict-it-%E2%80%94correctly-or-incorrectly%E2%80%94-in-the-way-it-does,-is-its-pictorial-form.">2.1.7. 2.17 What a picture must have in common with reality, in order to be able to depict it —correctly or incorrectly— in the way it does, is its pictorial form.</a></li>
 <li> <a href="#2.18-What-any-picture,-of-whatever-form,-must-have-in-common-with-reality,-in-order-to-be-able-to-depict-it-%E2%80%94correctly-or-incorrectly%E2%80%94-in-any-way-at-all,-is-logical-form,-i.e.-the-form-of-reality.">2.1.8. 2.18 What any picture, of whatever form, must have in common with reality, in order to be able to depict it —correctly or incorrectly— in any way at all, is logical form, i.e. the form of reality.</a></li>
 <li> <a href="#2.19-Logical-pictures-can-depict-the-world.">2.1.9. 2.19 Logical pictures can depict the world.</a></li>
</ul></li>
 <li> <a href="#2.2-A-picture-has-logico-pictorial-form-in-common-with-what-it-depicts.">2.2. 2.2 A picture has logico-pictorial form in common with what it depicts.</a>
 <ul> <li> <a href="#2.21-A-picture-agrees-with-reality-or-fails-to-agree;-it-is-correct-or-incorrect,-true-or-false.">2.2.1. 2.21 A picture agrees with reality or fails to agree; it is correct or incorrect, true or false.</a></li>
 <li> <a href="#2.22-What-a-picture-represents-it-represents-independently-of-its-truth-or-falsity,-by-means-of-its-pictorial-form.">2.2.2. 2.22 What a picture represents it represents independently of its truth or falsity, by means of its pictorial form.</a></li>
</ul></li>
</ul></li>
 <li> <a href="#3-A-logical-picture-of-facts-is-a-thought.">3. 3 A logical picture of facts is a thought.</a>
 <ul> <li>
 <ul> <li> <a href="#3.01-The-totality-of-true-thoughts-is-a-picture-of-the-world.">3.0.1. 3.01 The totality of true thoughts is a picture of the world.</a></li>
 <li> <a href="#3.02-A-thought-contains-the-possibility-of-the-situation-of-which-it-is-the-thought.-What-is-thinkable-is-possible-too.">3.0.2. 3.02 A thought contains the possibility of the situation of which it is the thought. What is thinkable is possible too.</a></li>
 <li> <a href="#3.03-Thought-can-never-be-of-anything-illogical,-since,-if-it-were,-we-should-have-to-think-illogically.">3.0.3. 3.03 Thought can never be of anything illogical, since, if it were, we should have to think illogically.</a></li>
 <li> <a href="#3.04-If-a-thought-were-correct-a-priori,-it-would-be-a-thought-whose-possibility-ensured-its-truth.">3.0.4. 3.04 If a thought were correct a priori, it would be a thought whose possibility ensured its truth.</a></li>
 <li> <a href="#3.05-A-priori-knowledge-that-a-thought-was-true-would-be-possible-only-if-its-truth-were-recognizable-from-the-thought-itself-(without-anything-to-compare-it-with).">3.0.5. 3.05 A priori knowledge that a thought was true would be possible only if its truth were recognizable from the thought itself (without anything to compare it with).</a></li>
</ul></li>
 <li> <a href="#3.1-In-a-proposition-a-thought-finds-an-expression-that-can-be-perceived-by-the-senses.">3.1. 3.1 In a proposition a thought finds an expression that can be perceived by the senses.</a>
 <ul> <li> <a href="#3.11-We-use-the-perceptible-sign-of-a-proposition-(spoken-or-written,-etc.)-as-a-projection-of-a-possible-situation.-The-method-of-projection-is-to-think-of-the-sense-of-the-proposition.">3.1.1. 3.11 We use the perceptible sign of a proposition (spoken or written, etc.) as a projection of a possible situation. The method of projection is to think of the sense of the proposition.</a></li>
 <li> <a href="#3.12-I-call-the-sign-with-which-we-express-a-thought-a-propositional-sign.-%E2%80%94-And-a-proposition-is-a-propositional-sign-in-its-projective-relation-to-the-world.">3.1.2. 3.12 I call the sign with which we express a thought a propositional sign. — And a proposition is a propositional sign in its projective relation to the world.</a></li>
 <li> <a href="#3.13-A-proposition-includes-all-that-the-projection-includes,-but-not-what-is-projected.-Therefore,-though-what-is-projected-is-not-itself-included,-its-possibility-is.-A-proposition,-therefore,-does-not-actually-contain-its-sense,-but-does-contain-the-possibility-of-expressing-it.-(%E2%80%98The-content-of-a-proposition%E2%80%99-means-the-content-of-a-proposition-that-has-sense.)-A-proposition-contains-the-form,-but-not-the-content,-of-its-sense.">3.1.3. 3.13 A proposition includes all that the projection includes, but not what is projected. Therefore, though what is projected is not itself included, its possibility is. A proposition, therefore, does not actually contain its sense, but does contain the possibility of expressing it. (‘The content of a proposition’ means the content of a proposition that has sense.) A proposition contains the form, but not the content, of its sense.</a></li>
 <li> <a href="#3.14-What-constitutes-a-propositional-sign-is-that-in-it-its-elements-(the-words)-stand-in-a-determinate-relation-to-one-another.-A-propositional-sign-is-a-fact.">3.1.4. 3.14 What constitutes a propositional sign is that in it its elements (the words) stand in a determinate relation to one another. A propositional sign is a fact.</a></li>
</ul></li>
 <li> <a href="#3.2-In-a-proposition-a-thought-can-be-expressed-in-such-a-way-that-elements-of-the-propositional-sign-correspond-to-the-objects-of-the-thought.">3.2. 3.2 In a proposition a thought can be expressed in such a way that elements of the propositional sign correspond to the objects of the thought.</a>
 <ul> <li> <a href="#3.21-The-configuration-of-objects-in-a-situation-corresponds-to-the-configuration-of-simple-signs-in-the-propositional-sign.">3.2.1. 3.21 The configuration of objects in a situation corresponds to the configuration of simple signs in the propositional sign.</a></li>
 <li> <a href="#3.22-In-a-proposition-a-name-is-the-representative-of-an-object.">3.2.2. 3.22 In a proposition a name is the representative of an object.</a></li>
 <li> <a href="#3.23-The-requirement-that-simple-signs-be-possible-is-the-requirement-that-sense-be-determinate.">3.2.3. 3.23 The requirement that simple signs be possible is the requirement that sense be determinate.</a></li>
 <li> <a href="#3.24-A-proposition-about-a-complex-stands-in-an-internal-relation-to-a-proposition-about-a-constituent-of-the-complex.-A-complex-can-be-given-only-by-its-description,-which-will-be-right-or-wrong.-A-proposition-that-mentions-a-complex-will-not-be-nonsensical,-if-the-complex-does-not-exist,-but-simply-false.-When-a-propositional-element-signifies-a-complex,-this-can-be-seen-from-an-indeterminateness-in-the-propositions-in-which-it-occurs.-In-such-cases-we-know-that-the-proposition-leaves-something-undetermined.-(In-fact-the-notation-for-generality-contains-a-prototype.)-The-contraction-of-a-symbol-for-a-complex-into-a-simple-symbol-can-be-expressed-in-a-definition.">3.2.4. 3.24 A proposition about a complex stands in an internal relation to a proposition about a constituent of the complex. A complex can be given only by its description, which will be right or wrong. A proposition that mentions a complex will not be nonsensical, if the complex does not exist, but simply false. When a propositional element signifies a complex, this can be seen from an indeterminateness in the propositions in which it occurs. In such cases we know that the proposition leaves something undetermined. (In fact the notation for generality contains a prototype.) The contraction of a symbol for a complex into a simple symbol can be expressed in a definition.</a></li>
 <li> <a href="#3.25-A-proposition-has-one-and-only-one-complete-analysis.">3.2.5.  <span class="todo TODO">TODO</span> 3.25 A proposition has one and only one complete analysis.</a></li>
 <li> <a href="#3.26-A-name-cannot-be-dissected-any-further-by-means-of-a-definition:-it-is-a-primitive-sign.">3.2.6. 3.26 A name cannot be dissected any further by means of a definition: it is a primitive sign.</a></li>
</ul></li>
 <li> <a href="#3.3-Only-propositions-have-sense;-only-in-the-nexus-of-a-proposition-does-a-name-have-meaning.">3.3. 3.3 Only propositions have sense; only in the nexus of a proposition does a name have meaning.</a>
 <ul> <li> <a href="#3.31-I-call-any-part-of-a-proposition-that-characterizes-its-sense-an-expression-(or-a-symbol).-(A-proposition-is-itself-an-expression.)-Everything-essential-to-their-sense-that-propositions-can-have-in-common-with-one-another-is-an-expression.-An-expression-is-the-mark-of-a-form-and-a-content.">3.3.1. 3.31 I call any part of a proposition that characterizes its sense an expression (or a symbol). (A proposition is itself an expression.) Everything essential to their sense that propositions can have in common with one another is an expression. An expression is the mark of a form and a content.</a></li>
 <li> <a href="#3.32-A-sign-is-what-can-be-perceived-of-a-symbol.">3.3.2. 3.32 A sign is what can be perceived of a symbol.</a></li>
 <li> <a href="#3.33-In-logical-syntax-the-meaning-of-a-sign-should-never-play-a-r%C3%B4le.-It-must-be-possible-to-establish-logical-syntax-without-mentioning-the-meaning-of-a-sign:-only-the-description-of-expressions-may-be-presupposed.">3.3.3. 3.33 In logical syntax the meaning of a sign should never play a rôle. It must be possible to establish logical syntax without mentioning the meaning of a sign: only the description of expressions may be presupposed.</a></li>
 <li> <a href="#3.34-A-proposition-possesses-essential-and-accidental-features.-Accidental-features-are-those-that-result-from-the-particular-way-in-which-the-propositional-sign-is-produced.-Essential-features-are-those-without-which-the-proposition-could-not-express-its-sense.">3.3.4. 3.34 A proposition possesses essential and accidental features. Accidental features are those that result from the particular way in which the propositional sign is produced. Essential features are those without which the proposition could not express its sense.</a></li>
</ul></li>
 <li> <a href="#3.4-A-proposition-determines-a-place-in-logical-space.-The-existence-of-this-logical-place-is-guaranteed-by-the-mere-existence-of-the-constituents-%E2%80%94-by-the-existence-of-the-proposition-with-a-sense.">3.4. 3.4 A proposition determines a place in logical space. The existence of this logical place is guaranteed by the mere existence of the constituents — by the existence of the proposition with a sense.</a>
 <ul> <li> <a href="#3.41-The-propositional-sign-with-logical-co-ordinates-%E2%80%94-that-is-the-logical-place.">3.4.1. 3.41 The propositional sign with logical co-ordinates — that is the logical place.</a></li>
 <li> <a href="#3.42-A-proposition-can-determine-only-one-place-in-logical-space:-nevertheless-the-whole-of-logical-space-must-already-be-given-by-it.-(Otherwise-negation,-logical-sum,-logical-product,-etc.;-would-introduce-more-and-more-new-elements-%E2%80%94-in-co-ordination.)-(The-logical-scaffolding-surrounding-a-picture-determines-logical-space.-The-force-of-a-proposition-reaches-through-the-whole-of-logical-space.)">3.4.2. 3.42 A proposition can determine only one place in logical space: nevertheless the whole of logical space must already be given by it. (Otherwise negation, logical sum, logical product, etc.; would introduce more and more new elements — in co-ordination.) (The logical scaffolding surrounding a picture determines logical space. The force of a proposition reaches through the whole of logical space.)</a></li>
</ul></li>
 <li> <a href="#3.5-A-propositional-sign,-applied-and-thought-out,-is-a-thought.">3.5. 3.5 A propositional sign, applied and thought out, is a thought.</a></li>
</ul></li>
 <li> <a href="#4-A-thought-is-a-proposition-with-a-sense.">4. 4 A thought is a proposition with a sense.</a>
 <ul> <li>
 <ul> <li> <a href="#4.01-A-proposition-is-a-picture-of-reality.-A-proposition-is-a-model-of-reality-as-we-imagine-it.">4.0.1. 4.01 A proposition is a picture of reality. A proposition is a model of reality as we imagine it.</a></li>
 <li> <a href="#4.02-We-can-see-this-from-the-fact-that-we-understand-the-sense-of-a-propositional-sign-without-its-having-been-explained-to-us.">4.0.2. 4.02 We can see this from the fact that we understand the sense of a propositional sign without its having been explained to us.</a></li>
 <li> <a href="#4.03-A-proposition-must-use-old-expressions-to-communicate-a-new-sense.-A-proposition-communicates-a-situation-to-us,-and-so-it-must-be-essentially-connected-with-the-situation.-And-the-connexion-is-precisely-that-it-is-its-logical-picture.-A-proposition-states-something-only-in-so-far-as-it-is-a-picture.">4.0.3. 4.03 A proposition must use old expressions to communicate a new sense. A proposition communicates a situation to us, and so it must be essentially connected with the situation. And the connexion is precisely that it is its logical picture. A proposition states something only in so far as it is a picture.</a></li>
 <li> <a href="#4.04-In-a-proposition-there-must-be-exactly-as-many-distinguishable-parts-as-in-the-situation-that-it-represents.-The-two-must-possess-the-same-logical-(mathematical)-multiplicity.-(Compare-Hertz%E2%80%99s-Mechanics-on-dynamical-models.)">4.0.4. 4.04 In a proposition there must be exactly as many distinguishable parts as in the situation that it represents. The two must possess the same logical (mathematical) multiplicity. (Compare Hertz’s Mechanics on dynamical models.)</a></li>
 <li> <a href="#4.05-Reality-is-compared-with-propositions.">4.0.5. 4.05 Reality is compared with propositions.</a></li>
 <li> <a href="#4.06-A-proposition-can-be-true-or-false-only-in-virtue-of-being-a-picture-of-reality.">4.0.6. 4.06 A proposition can be true or false only in virtue of being a picture of reality.</a></li>
</ul></li>
 <li> <a href="#4.1-Propositions-represent-the-existence-and-non-existence-of-states-of-affairs.">4.1. 4.1 Propositions represent the existence and non-existence of states of affairs.</a>
 <ul> <li> <a href="#4.11-The-totality-of-true-propositions-is-the-whole-of-natural-science-(or-the-whole-corpus-of-the-natural-sciences).">4.1.1. 4.11 The totality of true propositions is the whole of natural science (or the whole corpus of the natural sciences).</a></li>
 <li> <a href="#4.12-Propositions-can-represent-the-whole-of-reality,-but-they-cannot-represent-what-they-must-have-in-common-with-reality-in-order-to-be-able-to-represent-it-%E2%80%94-logical-form.-In-order-to-be-able-to-represent-logical-form,-we-should-have-to-be-able-to-station-ourselves-with-propositions-somewhere-outside-logic,-that-is-to-say-outside-the-world.">4.1.2. 4.12 Propositions can represent the whole of reality, but they cannot represent what they must have in common with reality in order to be able to represent it — logical form. In order to be able to represent logical form, we should have to be able to station ourselves with propositions somewhere outside logic, that is to say outside the world.</a></li>
</ul></li>
 <li> <a href="#4.2-The-sense-of-a-proposition-is-its-agreement-and-disagreement-with-possibilities-of-existence-and-non-existence-of-states-of-affairs.">4.2. 4.2 The sense of a proposition is its agreement and disagreement with possibilities of existence and non-existence of states of affairs.</a>
 <ul> <li> <a href="#4.21-The-simplest-kind-of-proposition,-an-elementary-proposition,-asserts-the-existence-of-a-state-of-affairs.">4.2.1. 4.21 The simplest kind of proposition, an elementary proposition, asserts the existence of a state of affairs.</a></li>
 <li> <a href="#4.22-An-elementary-proposition-consists-of-names.-It-is-a-nexus,-a-concatenation,-of-names.">4.2.2. 4.22 An elementary proposition consists of names. It is a nexus, a concatenation, of names.</a></li>
 <li> <a href="#4.23-It-is-only-in-the-nexus-of-an-elementary-proposition-that-a-name-occurs-in-a-proposition.">4.2.3. 4.23 It is only in the nexus of an elementary proposition that a name occurs in a proposition.</a></li>
 <li> <a href="#4.24-Names-are-the-simple-symbols:-I-indicate-them-by-single-letters-(%E2%80%98x%E2%80%99,-%E2%80%98y%E2%80%99,-%E2%80%98z%E2%80%99).-I-write-elementary-propositions-as-functions-of-names,-so-that-they-have-the-form-%E2%80%98fx%E2%80%99,-%E2%80%98-%CF%86-(x,y)%E2%80%99,-etc.-Or-I-indicate-them-by-the-letters-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99.">4.2.4. 4.24 Names are the simple symbols: I indicate them by single letters (‘x’, ‘y’, ‘z’). I write elementary propositions as functions of names, so that they have the form ‘fx’, ‘ φ (x,y)’, etc. Or I indicate them by the letters ‘p’, ‘q’, ‘r’.</a></li>
 <li> <a href="#4.25-If-an-elementary-proposition-is-true,-the-state-of-affairs-exists:-if-an-elementary-proposition-is-false,-the-state-of-affairs-does-not-exist.">4.2.5. 4.25 If an elementary proposition is true, the state of affairs exists: if an elementary proposition is false, the state of affairs does not exist.</a></li>
 <li> <a href="#4.26-If-all-true-elementary-propositions-are-given,-the-result-is-a-complete-description-of-the-world.-The-world-is-completely-described-by-giving-all-elementary-propositions,-and-adding-which-of-them-are-true-and-which-false.">4.2.6. 4.26 If all true elementary propositions are given, the result is a complete description of the world. The world is completely described by giving all elementary propositions, and adding which of them are true and which false.</a></li>
 <li> <a href="#4.27-For-n-states-of-affairs,-there-are-%5C(K_n=%5Csum_%7Bv=0%7D%5En-%5Cbinom%7Bn%7D%7Bv%7D%5C)-possibilities-of-existence-and-non-existence.-Of-these-states-of-affairs-any-combination-can-exist-and-the-remainder-not-exist.">4.2.7. 4.27 For n states of affairs, there are \(K_n=\sum_{v=0}^n \binom{n}{v}\) possibilities of existence and non-existence. Of these states of affairs any combination can exist and the remainder not exist.</a></li>
 <li> <a href="#4.28-There-correspond-to-these-combinations-the-same-number-of-possibilities-of-truth%E2%80%94and-falsity%E2%80%94for-n-elementary-propositions.">4.2.8. 4.28 There correspond to these combinations the same number of possibilities of truth—and falsity—for n elementary propositions.</a></li>
</ul></li>
 <li> <a href="#4.3-Truth-possibilities-of-elementary-propositions-mean-possibilities-of-existence-and-non-existence-of-states-of-affairs.">4.3. 4.3 Truth-possibilities of elementary propositions mean possibilities of existence and non-existence of states of affairs.</a>
 <ul> <li> <a href="#4.31-We-can-represent-truth-possibilities-by-schemata-of-the-following-kind-(%E2%80%98T%E2%80%99-means-%E2%80%98true%E2%80%99,-%E2%80%98F%E2%80%99-means-%E2%80%98false%E2%80%99;-the-rows-of-%E2%80%98T%E2%80%99s%E2%80%99-and-%E2%80%98F%E2%80%99s%E2%80%99-under-the-row-of-elementary-propositions-symbolize-their-truth-possibilities-in-a-way-that-can-easily-be-understood):">4.3.1. 4.31 We can represent truth-possibilities by schemata of the following kind (‘T’ means ‘true’, ‘F’ means ‘false’; the rows of ‘T’s’ and ‘F’s’ under the row of elementary propositions symbolize their truth-possibilities in a way that can easily be understood):</a></li>
</ul></li>
 <li> <a href="#4.4-A-proposition-is-an-expression-of-agreement-and-disagreement-with-truth-possibilities-of-elementary-propositions.">4.4. 4.4 A proposition is an expression of agreement and disagreement with truth-possibilities of elementary propositions.</a>
 <ul> <li> <a href="#4.41-Truth-possibilities-of-elementary-propositions-are-the-conditions-of-the-truth-and-falsity-of-propositions.">4.4.1. 4.41 Truth-possibilities of elementary propositions are the conditions of the truth and falsity of propositions.</a></li>
 <li> <a href="#4.42-For-n-elementary-propositions-there-are-%5C(%5Csum_%7Bk=0%7D%5E%7BK_n%7D%5Cleft(%5Cfrac%7BK_n%7D%7Bk%7D%5Cright)=L_n%5C)-ways-in-which-a-proposition-can-agree-and-disagree-with-their-truth-possibilities">4.4.2.  <span class="todo TODO">TODO</span> 4.42 For n elementary propositions there are \(\sum_{k=0}^{K_n}\left(\frac{K_n}{k}\right)=L_n\) ways in which a proposition can agree and disagree with their truth-possibilities</a></li>
 <li> <a href="#4.43-We-can-express-agreement-with-truth-possibilities-by-correlating-the-mark-%E2%80%98T%E2%80%99-(true)-with-them-in-the-schema.-The-absence-of-this-mark-means-disagreement.">4.4.3. 4.43 We can express agreement with truth-possibilities by correlating the mark ‘T’ (true) with them in the schema. The absence of this mark means disagreement.</a></li>
 <li> <a href="#4.44-The-sign-that-results-from-correlating-the-mark-%E2%80%98T%E2%80%99-with-truth-possibilities-is-a-propositional-sign.">4.4.4. 4.44 The sign that results from correlating the mark ‘T’ with truth-possibilities is a propositional sign.</a></li>
 <li> <a href="#4.45-For-n-elementary-propositions-there-are-L-n-possible-groups-of-truth-conditions.-The-groups-of-truth-conditions-that-are-obtainable-from-the-truth-possibilities-of-a-given-number-of-elementary-propositions-can-be-arranged-in-a-series.">4.4.5. 4.45 For n elementary propositions there are L n possible groups of truth-conditions. The groups of truth-conditions that are obtainable from the truth-possibilities of a given number of elementary propositions can be arranged in a series.</a></li>
 <li> <a href="#4.46-Among-the-possible-groups-of-truth-conditions-there-are-two-extreme-cases.-In-one-of-these-cases-the-proposition-is-true-for-all-the-truth-possibilities-of-the-elementary-propositions.-We-say-that-the-truth-conditions-are-~tautological~.-In-the-second-case-the-proposition-is-false-for-all-the-truth-possibilities:-the-truth-conditions-are-~contradictory~.-In-the-first-case-we-call-the-proposition-a-tautology;-in-the-second,-a-contradiction.">4.4.6. 4.46 Among the possible groups of truth-conditions there are two extreme cases. In one of these cases the proposition is true for all the truth-possibilities of the elementary propositions. We say that the truth-conditions are  <code>tautological</code>. In the second case the proposition is false for all the truth-possibilities: the truth-conditions are  <code>contradictory</code>. In the first case we call the proposition a tautology; in the second, a contradiction.</a></li>
</ul></li>
 <li> <a href="#4.5-It-now-seems-possible-to-give-the-most-general-propositional-form:-that-is,-to-give-a-description-of-the-propositions-of-~any~-sign-language-~whatsoever~-in-such-a-way-that-every-possible-sense-can-be-expressed-by-a-symbol-satisfying-the-description,-and-every-symbol-satisfying-the-description-can-express-a-sense,-provided-that-the-meanings-of-the-names-are-suitably-chosen.-It-is-clear-that-~only~-what-is-essential-to-the-most-general-propositional-form-may-be-included-in-its-description-%E2%80%94-for-otherwise-it-would-not-be-the-most-general-form.-The-existence-of-a-general-propositional-form-is-proved-by-the-fact-that-there-cannot-be-a-proposition-whose-form-could-not-have-been-foreseen-(i.e.-constructed).-The-general-form-of-a-proposition-is:-This-is-how-things-stand.">4.5. 4.5 It now seems possible to give the most general propositional form: that is, to give a description of the propositions of  <code>any</code> sign-language  <code>whatsoever</code> in such a way that every possible sense can be expressed by a symbol satisfying the description, and every symbol satisfying the description can express a sense, provided that the meanings of the names are suitably chosen. It is clear that  <code>only</code> what is essential to the most general propositional form may be included in its description — for otherwise it would not be the most general form. The existence of a general propositional form is proved by the fact that there cannot be a proposition whose form could not have been foreseen (i.e. constructed). The general form of a proposition is: This is how things stand.</a>
 <ul> <li> <a href="#4.51-Suppose-that-I-am-given-~all~-elementary-propositions:-then-I-can-simply-ask-what-propositions-I-can-construct-out-of-them.-And-there-I-have-~all~-propositions,-and-that-fixes-their-limits.">4.5.1. 4.51 Suppose that I am given  <code>all</code> elementary propositions: then I can simply ask what propositions I can construct out of them. And there I have  <code>all</code> propositions, and that fixes their limits.</a></li>
 <li> <a href="#4.52-Propositions-comprise-all-that-follows-from-the-totality-of-all-elementary-propositions-(and,-of-course,-from-its-being-the-~totality~-of-them-~all~).-(Thus,-in-a-certain-sense,-it-could-be-said-that-all-propositions-were-generalizations-of-elementary-propositions.)">4.5.2. 4.52 Propositions comprise all that follows from the totality of all elementary propositions (and, of course, from its being the  <code>totality</code> of them  <code>all</code>). (Thus, in a certain sense, it could be said that all propositions were generalizations of elementary propositions.)</a></li>
 <li> <a href="#4.53-The-general-propositional-form-is-a-variable.">4.5.3. 4.53 The general propositional form is a variable.</a></li>
</ul></li>
</ul></li>
 <li> <a href="#5-A-proposition-is-a-truth-function-of-elementary-propositions.-(An-elementary-proposition-is-a-truth-function-of-itself.)">5. 5 A proposition is a truth-function of elementary propositions. (An elementary proposition is a truth-function of itself.)</a>
 <ul> <li>
 <ul> <li> <a href="#5.01-Elementary-propositions-are-the-truth-arguments-of-propositions.">5.0.1. 5.01 Elementary propositions are the truth-arguments of propositions.</a></li>
 <li> <a href="#5.02-The-arguments-of-functions-are-readily-confused-with-the-affixes-of-names.-For-both-arguments-and-affixes-enable-me-to-recognize-the-meaning-of-the-signs-containing-them.-For-example,-when-Russell-writes-%E2%80%98%5C(+_%7B_c%7D%5C)%E2%80%99,-the-%E2%80%98-%5C(%5Cmbox%7B-%7D_c%5C)-%E2%80%99-is-an-affix-which-indicates-that-the-sign-as-a-whole-is-the-addition-sign-for-cardinal-numbers.-But-the-use-of-this-sign-is-the-result-of-arbitrary-convention-and-it-would-be-quite-possible-to-choose-a-simple-sign-instead-of-%E2%80%98%5C(+_c%5C)%E2%80%99;-in-%E2%80%98~p%E2%80%99,-however,-%E2%80%98p%E2%80%99-is-not-an-affix-but-an-argument:-the-sense-of-%E2%80%98~p%E2%80%99-~cannot~-be-understood-unless-the-sense-of-%E2%80%98p%E2%80%99-has-been-understood-already.-(In-the-name-Julius-Caesar-%E2%80%98Julius%E2%80%99-is-an-affix.-An-affix-is-always-part-of-a-description-of-the-object-to-whose-name-we-attach-it:-e.g.-~the~-Caesar-of-the-Julian-gens.)-If-I-am-not-mistaken,-Frege%E2%80%99s-theory-about-the-meaning-of-propositions-and-functions-is-based-on-the-confusion-between-an-argument-and-an-affix.-Frege-regarded-the-propositions-of-logic-as-names,-and-their-arguments-as-the-affixes-of-those-names.">5.0.2. 5.02 The arguments of functions are readily confused with the affixes of names. For both arguments and affixes enable me to recognize the meaning of the signs containing them. For example, when Russell writes ‘\(+_{_c}\)’, the ‘ \(\mbox{ }_c\) ’ is an affix which indicates that the sign as a whole is the addition-sign for cardinal numbers. But the use of this sign is the result of arbitrary convention and it would be quite possible to choose a simple sign instead of ‘\(+_c\)’; in ‘~p’, however, ‘p’ is not an affix but an argument: the sense of ‘~p’  <code>cannot</code> be understood unless the sense of ‘p’ has been understood already. (In the name Julius Caesar ‘Julius’ is an affix. An affix is always part of a description of the object to whose name we attach it: e.g.  <code>the</code> Caesar of the Julian gens.) If I am not mistaken, Frege’s theory about the meaning of propositions and functions is based on the confusion between an argument and an affix. Frege regarded the propositions of logic as names, and their arguments as the affixes of those names.</a></li>
</ul></li>
 <li> <a href="#5.1-Truth-functions-can-be-arranged-in-series.-That-is-the-foundation-of-the-theory-of-probability.">5.1. 5.1 Truth-functions can be arranged in series. That is the foundation of the theory of probability.</a>
 <ul> <li> <a href="#5.11-If-all-the-truth-grounds-that-are-common-to-a-number-of-propositions-are-at-the-same-time-truth-grounds-of-a-certain-proposition,-then-we-say-that-the-truth-of-that-proposition-follows-from-the-truth-of-the-others.">5.1.1. 5.11 If all the truth-grounds that are common to a number of propositions are at the same time truth-grounds of a certain proposition, then we say that the truth of that proposition follows from the truth of the others.</a></li>
 <li> <a href="#5.12-In-particular,-the-truth-of-a-proposition-%E2%80%98p%E2%80%99-follows-from-the-truth-of-another-proposition-%E2%80%98q%E2%80%99-if-all-the-truth-grounds-of-the-latter-are-truth-grounds-of-the-former.">5.1.2. 5.12 In particular, the truth of a proposition ‘p’ follows from the truth of another proposition ‘q’ if all the truth-grounds of the latter are truth-grounds of the former.</a></li>
 <li> <a href="#5.13-When-the-truth-of-one-proposition-follows-from-the-truth-of-others,-we-can-see-this-from-the-structure-of-the-propositions.">5.1.3. 5.13 When the truth of one proposition follows from the truth of others, we can see this from the structure of the propositions.</a></li>
 <li> <a href="#5.14-If-one-proposition-follows-from-another,-then-the-latter-says-more-than-the-former,-and-the-former-less-than-the-latter.">5.1.4. 5.14 If one proposition follows from another, then the latter says more than the former, and the former less than the latter.</a></li>
 <li> <a href="#5.15-If-%5C(T_r%5C)-is-the-number-of-the-truth-grounds-of-a-proposition-%E2%80%98r%E2%80%99,-and-if-%5C(T_%7Brs%7D%5C)-is-the-number-of-the-truth-grounds-of-a-proposition-%E2%80%98s%E2%80%99-that-are-at-the-same-time-truth-grounds-of-%E2%80%98r%E2%80%99,-then-we-call-the-ratio-%5C(T_%7Brs%7D-:-T_%7Br%7D%5C)-the-degree-of-probability-that-the-proposition-%E2%80%98r%E2%80%99-gives-to-the-proposition-%E2%80%98s%E2%80%99.">5.1.5. 5.15 If \(T_r\) is the number of the truth-grounds of a proposition ‘r’, and if \(T_{rs}\) is the number of the truth-grounds of a proposition ‘s’ that are at the same time truth-grounds of ‘r’, then we call the ratio \(T_{rs} : T_{r}\) the degree of probability that the proposition ‘r’ gives to the proposition ‘s’.</a></li>
</ul></li>
 <li> <a href="#5.2-The-structures-of-propositions-stand-in-internal-relations-to-one-another.">5.2. 5.2 The structures of propositions stand in internal relations to one another.</a>
 <ul> <li> <a href="#5.21-In-order-to-give-prominence-to-these-internal-relations-we-can-adopt-the-following-mode-of-expression:-we-can-represent-a-proposition-as-the-result-of-an-operation-that-produces-it-out-of-other-propositions-(which-are-the-bases-of-the-operation).">5.2.1. 5.21 In order to give prominence to these internal relations we can adopt the following mode of expression: we can represent a proposition as the result of an operation that produces it out of other propositions (which are the bases of the operation).</a></li>
 <li> <a href="#5.22-An-operation-is-the-expression-of-a-relation-between-the-structures-of-its-result-and-of-its-bases.">5.2.2. 5.22 An operation is the expression of a relation between the structures of its result and of its bases.</a></li>
 <li> <a href="#5.23-The-operation-is-what-has-to-be-done-to-the-one-proposition-in-order-to-make-the-other-out-of-it.">5.2.3. 5.23 The operation is what has to be done to the one proposition in order to make the other out of it.</a></li>
 <li> <a href="#5.24-An-operation-manifests-itself-in-a-variable;-it-shows-how-we-can-get-from-one-form-of-proposition-to-another.-It-gives-expression-to-the-difference-between-the-forms.-(And-what-the-bases-of-an-operation-and-its-result-have-in-common-is-just-the-bases-themselves.)">5.2.4. 5.24 An operation manifests itself in a variable; it shows how we can get from one form of proposition to another. It gives expression to the difference between the forms. (And what the bases of an operation and its result have in common is just the bases themselves.)</a></li>
 <li> <a href="#5.25-The-occurrence-of-an-operation-does-not-characterize-the-sense-of-a-proposition.-Indeed,-no-statement-is-made-by-an-operation,-but-only-by-its-result,-and-this-depends-on-the-bases-of-the-operation.-(Operations-and-functions-must-not-be-confused-with-each-other.)">5.2.5. 5.25 The occurrence of an operation does not characterize the sense of a proposition. Indeed, no statement is made by an operation, but only by its result, and this depends on the bases of the operation. (Operations and functions must not be confused with each other.)</a></li>
</ul></li>
 <li> <a href="#5.3-All-propositions-are-results-of-truth-operations-on-elementary-propositions.-A-truth-operation-is-the-way-in-which-a-truth-function-is-produced-out-of-elementary-propositions.-It-is-of-the-essence-of-truth-operations-that,-just-as-elementary-propositions-yield-a-truth-function-of-themselves,-so-too-in-the-same-way-truth-functions-yield-a-further-truth-function.-When-a-truth-operation-is-applied-to-truth-functions-of-elementary-propositions,-it-always-generates-another-truth-function-of-elementary-propositions,-another-proposition.-When-a-truth-operation-is-applied-to-the-results-of-truth-operations-on-elementary-propositions,-there-is-always-a-single-operation-on-elementary-propositions-that-has-the-same-result.-Every-proposition-is-the-result-of-truth-operations-on-elementary-propositions.">5.3. 5.3 All propositions are results of truth-operations on elementary propositions. A truth-operation is the way in which a truth-function is produced out of elementary propositions. It is of the essence of truth-operations that, just as elementary propositions yield a truth-function of themselves, so too in the same way truth-functions yield a further truth-function. When a truth-operation is applied to truth-functions of elementary propositions, it always generates another truth-function of elementary propositions, another proposition. When a truth-operation is applied to the results of truth-operations on elementary propositions, there is always a single operation on elementary propositions that has the same result. Every proposition is the result of truth-operations on elementary propositions.</a>
 <ul> <li> <a href="#5.31-The-schemata-in-4.31-have-a-meaning-even-when-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99,-etc.-are-not-elementary-propositions.-And-it-is-easy-to-see-that-the-propositional-sign-in-4.442-expresses-a-single-truth-function-of-elementary-propositions-even-when-%E2%80%98p%E2%80%99-and-%E2%80%98q%E2%80%99-are-truth-functions-of-elementary-propositions.">5.3.1. 5.31 The schemata in 4.31 have a meaning even when ‘p’, ‘q’, ‘r’, etc. are not elementary propositions. And it is easy to see that the propositional sign in 4.442 expresses a single truth-function of elementary propositions even when ‘p’ and ‘q’ are truth-functions of elementary propositions.</a></li>
 <li> <a href="#5.32-All-truth-functions-are-results-of-successive-applications-to-elementary-propositions-of-a-finite-number-of-truth-operations.">5.3.2. 5.32 All truth-functions are results of successive applications to elementary propositions of a finite number of truth-operations.</a></li>
</ul></li>
 <li> <a href="#5.4-At-this-point-it-becomes-manifest-that-there-are-no-%E2%80%98logical-objects%E2%80%99-or-%E2%80%98logical-constants%E2%80%99-(in-Frege%E2%80%99s-and-Russell%E2%80%99s-sense).">5.4. 5.4 At this point it becomes manifest that there are no ‘logical objects’ or ‘logical constants’ (in Frege’s and Russell’s sense).</a>
 <ul> <li> <a href="#5.41-The-reason-is-that-the-results-of-truth-operations-on-truth-functions-are-always-identical-whenever-they-are-one-and-the-same-truth-function-of-elementary-propositions.">5.4.1. 5.41 The reason is that the results of truth-operations on truth-functions are always identical whenever they are one and the same truth-function of elementary propositions.</a></li>
 <li> <a href="#5.42-It-is-self-evident-that-v,-%E2%8A%83,-etc.-are-not-relations-in-the-sense-in-which-right-and-left-etc.-are-relations.-The-interdefinability-of-Frege%E2%80%99s-and-Russell%E2%80%99s-%E2%80%98primitive-signs%E2%80%99-of-logic-is-enough-to-show-that-they-are-not-primitive-signs,-still-less-signs-for-relations.-And-it-is-obvious-that-the-%E2%80%98%E2%8A%83%E2%80%99-defined-by-means-of-%E2%80%98~%E2%80%99-and-%E2%80%98v%E2%80%99-is-identical-with-the-one-that-figures-with-%E2%80%98%E2%88%BC%E2%80%99-in-the-definition-of-%E2%80%98v%E2%80%99;-and-that-the-second-%E2%80%98v%E2%80%99-is-identical-with-the-first-one;-and-so-on.">5.4.2. 5.42 It is self-evident that v, ⊃, etc. are not relations in the sense in which right and left etc. are relations. The interdefinability of Frege’s and Russell’s ‘primitive signs’ of logic is enough to show that they are not primitive signs, still less signs for relations. And it is obvious that the ‘⊃’ defined by means of ‘~’ and ‘v’ is identical with the one that figures with ‘∼’ in the definition of ‘v’; and that the second ‘v’ is identical with the first one; and so on.</a></li>
 <li> <a href="#5.43-Even-at-first-sight-it-seems-scarcely-credible-that-there-should-follow-from-one-fact-p-infinitely-many-others,-namely-~~p,-~~~~p,-etc.-And-it-is-no-less-remarkable-that-the-infinite-number-of-propositions-of-logic-(mathematics)-follow-from-half-a-dozen-%E2%80%98primitive-propositions%E2%80%99.-But-in-fact-all-the-propositions-of-logic-say-the-same-thing,-to-wit-nothing.">5.4.3. 5.43 Even at first sight it seems scarcely credible that there should follow from one fact p infinitely many others, namely ~~p, ~~~~p, etc. And it is no less remarkable that the infinite number of propositions of logic (mathematics) follow from half a dozen ‘primitive propositions’. But in fact all the propositions of logic say the same thing, to wit nothing.</a></li>
 <li> <a href="#5.44-Truth-functions-are-not-material-functions.-For-example,-an-affirmation-can-be-produced-by-double-negation:-in-such-a-case-does-it-follow-that-in-some-sense-negation-is-contained-in-affirmation?-Does-%E2%80%98~~p%E2%80%99-negate-~p,-or-does-it-affirm-p-%E2%80%94-or-both?-The-proposition-%E2%80%98~~p%E2%80%99-is-not-about-negation,-as-if-negation-were-an-object:-on-the-other-hand,-the-possibility-of-negation-is-already-written-into-affirmation.-And-if-there-were-an-object-called-%E2%80%98~%E2%80%99,-it-would-follow-that-%E2%80%98~~p%E2%80%99-said-something-different-from-what-%E2%80%98p%E2%80%99-said,-just-because-the-one-proposition-would-then-be-about-~-and-the-other-would-not.">5.4.4. 5.44 Truth-functions are not material functions. For example, an affirmation can be produced by double negation: in such a case does it follow that in some sense negation is contained in affirmation? Does ‘~~p’ negate ~p, or does it affirm p — or both? The proposition ‘~~p’ is not about negation, as if negation were an object: on the other hand, the possibility of negation is already written into affirmation. And if there were an object called ‘~’, it would follow that ‘~~p’ said something different from what ‘p’ said, just because the one proposition would then be about ~ and the other would not.</a></li>
 <li> <a href="#5.45-If-there-are-primitive-logical-signs,-then-any-logic-that-fails-to-show-clearly-how-they-are-placed-relatively-to-one-another-and-to-justify-their-existence-will-be-incorrect.-The-construction-of-logic-out-of-its-primitive-signs-must-be-made-clear.">5.4.5. 5.45 If there are primitive logical signs, then any logic that fails to show clearly how they are placed relatively to one another and to justify their existence will be incorrect. The construction of logic out of its primitive signs must be made clear.</a></li>
 <li> <a href="#5.46-If-we-introduced-logical-signs-properly,-then-we-should-also-have-introduced-at-the-same-time-the-sense-of-all-combinations-of-them;-i.e.-not-only-%E2%80%98p-v-q%E2%80%99-but-%E2%80%98~(p-v-~q)%E2%80%99-as-well,-etc.-etc.-We-should-also-have-introduced-at-the-same-time-the-effect-of-all-possible-combinations-of-brackets.-And-thus-it-would-have-been-made-clear-that-the-real-general-primitive-signs-are-not-%E2%80%98p-v-q%E2%80%99,-%E2%80%98(%E2%88%83x).fx%E2%80%99,-etc.-but-the-most-general-form-of-their-combinations.">5.4.6. 5.46 If we introduced logical signs properly, then we should also have introduced at the same time the sense of all combinations of them; i.e. not only ‘p v q’ but ‘~(p v ~q)’ as well, etc. etc. We should also have introduced at the same time the effect of all possible combinations of brackets. And thus it would have been made clear that the real general primitive signs are not ‘p v q’, ‘(∃x).fx’, etc. but the most general form of their combinations.</a></li>
 <li> <a href="#5.47-It-is-clear-that-whatever-we-can-say-in-advance-about-the-form-of-all-propositions,-we-must-be-able-to-say-all-at-once.-An-elementary-proposition-really-contains-all-logical-operations-in-itself.-For-%E2%80%98fa%E2%80%99-says-the-same-thing-as-%E2%80%98(%E2%88%83x).fx.x-=-a%E2%80%99.-Wherever-there-is-compositeness,-argument-and-function-are-present,-and-where-these-are-present,-we-already-have-all-the-logical-constants.-One-could-say-that-the-sole-logical-constant-was-what-all-propositions,-by-their-very-nature,-had-in-common-with-one-another.-But-that-is-the-general-propositional-form.">5.4.7. 5.47 It is clear that whatever we can say in advance about the form of all propositions, we must be able to say all at once. An elementary proposition really contains all logical operations in itself. For ‘fa’ says the same thing as ‘(∃x).fx.x = a’. Wherever there is compositeness, argument and function are present, and where these are present, we already have all the logical constants. One could say that the sole logical constant was what all propositions, by their very nature, had in common with one another. But that is the general propositional form.</a></li>
</ul></li>
 <li> <a href="#5.5-Every-truth-function-is-a-result-of-successive-applications-to-elementary-propositions-of-the-operation-%E2%80%98(-----T)(-%CE%BE-,-.-.-.-.)%E2%80%99.-This-operation-negates-all-the-propositions-in-the-right-hand-pair-of-brackets,-and-I-call-it-the-negation-of-those-propositions.">5.5. 5.5 Every truth-function is a result of successive applications to elementary propositions of the operation ‘(–—T)( ξ , . . . .)’. This operation negates all the propositions in the right-hand pair of brackets, and I call it the negation of those propositions.</a>
 <ul> <li> <a href="#5.51-If-(%CE%BE)-has-only-one-value,-then-N(-%CE%BE-)-=-~p-(not-p);-if-it-has-two-values,-then-N((%CE%BE))-=-~p.~q-(neither-p-nor-q).">5.5.1. 5.51 If (ξ) has only one value, then N( ξ ) = ~p (not p); if it has two values, then N((ξ)) = ~p.~q (neither p nor q).</a></li>
 <li> <a href="#5.52-If-%CE%BE-has-as-its-values-all-the-values-of-a-function-fx-for-all-values-of-x,-then-N((%CE%BE))-=-~(%E2%88%83x).fx.">5.5.2. 5.52 If ξ has as its values all the values of a function fx for all values of x, then N((ξ)) = ~(∃x).fx.</a></li>
 <li> <a href="#5.53-Identity-of-object-I-express-by-identity-of-sign,-and-not-by-using-a-sign-for-identity.-Difference-of-objects-I-express-by-difference-of-signs.">5.5.3. 5.53 Identity of object I express by identity of sign, and not by using a sign for identity. Difference of objects I express by difference of signs.</a></li>
 <li> <a href="#5.54-In-the-general-propositional-form-propositions-occur-in-other-propositions-only-as-bases-of-truth-operations.">5.5.4. 5.54 In the general propositional form propositions occur in other propositions only as bases of truth-operations.</a></li>
 <li> <a href="#5.55-We-now-have-to-answer-a-priori-the-question-about-all-the-possible-forms-of-elementary-propositions.-Elementary-propositions-consist-of-names.-Since,-however,-we-are-unable-to-give-the-number-of-names-with-different-meanings,-we-are-also-unable-to-give-the-composition-of-elementary-propositions.">5.5.5. 5.55 We now have to answer a priori the question about all the possible forms of elementary propositions. Elementary propositions consist of names. Since, however, we are unable to give the number of names with different meanings, we are also unable to give the composition of elementary propositions.</a></li>
</ul></li>
 <li> <a href="#5.6-~The-limits-of-my-language~-mean-the-limits-of-my-world.">5.6. 5.6  <code>The limits of my language</code> mean the limits of my world.</a>
 <ul> <li> <a href="#5.61-Logic-pervades-the-world:-the-limits-of-the-world-are-also-its-limits.-So-we-cannot-say-in-logic,-%E2%80%98The-world-has-this-in-it,-and-this,-but-not-that.%E2%80%99-For-that-would-appear-to-presuppose-that-we-were-excluding-certain-possibilities,-and-this-cannot-be-the-case,-since-it-would-require-that-logic-should-go-beyond-the-limits-of-the-world;-for-only-in-that-way-could-it-view-those-limits-from-the-other-side-as-well.-We-cannot-think-what-we-cannot-think;-so-what-we-cannot-think-we-cannot-say-either.">5.6.1. 5.61 Logic pervades the world: the limits of the world are also its limits. So we cannot say in logic, ‘The world has this in it, and this, but not that.’ For that would appear to presuppose that we were excluding certain possibilities, and this cannot be the case, since it would require that logic should go beyond the limits of the world; for only in that way could it view those limits from the other side as well. We cannot think what we cannot think; so what we cannot think we cannot say either.</a></li>
 <li> <a href="#5.62-This-remark-provides-the-key-to-the-problem,-how-much-truth-there-is-in-solipsism.-For-what-the-solipsist-~means~-is-quite-correct;-only-it-cannot-be-~said~,-but-makes-itself-manifest.-The-world-is-my-world:-this-is-manifest-in-the-fact-that-the-limits-of-~language~-(of-that-language-which-alone-I-understand)-mean-the-limits-of-my-world.">5.6.2. 5.62 This remark provides the key to the problem, how much truth there is in solipsism. For what the solipsist  <code>means</code> is quite correct; only it cannot be  <code>said</code>, but makes itself manifest. The world is my world: this is manifest in the fact that the limits of  <code>language</code> (of that language which alone I understand) mean the limits of my world.</a></li>
 <li> <a href="#5.63-I-am-my-world.-(The-microcosm.)">5.6.3. 5.63 I am my world. (The microcosm.)</a></li>
 <li> <a href="#5.64-Here-it-can-be-seen-that-solipsism,-when-its-implications-are-followed-out-strictly,-coincides-with-pure-realism.-The-self-of-solipsism-shrinks-to-a-point-without-extension,-and-there-remains-the-reality-co-ordinated-with-it.">5.6.4. 5.64 Here it can be seen that solipsism, when its implications are followed out strictly, coincides with pure realism. The self of solipsism shrinks to a point without extension, and there remains the reality co-ordinated with it.</a></li>
</ul></li>
</ul></li>
 <li> <a href="#6-The-general-form-of-a-truth-function-is-%5B(p),-(%CE%BE),-N((%CE%BE))%5D.-This-is-the-general-form-of-a-proposition.">6. 6 The general form of a truth-function is [(p), (ξ), N((ξ))]. This is the general form of a proposition.</a>
 <ul> <li>
 <ul> <li> <a href="#6.01-Therefore-the-general-form-of-an-operation-%CE%A9%E2%80%99((%CE%B7))-is-%5B-(%CE%BE)-,-N((%CE%BE))%5D%E2%80%99-((%CE%B7))-(=-%5B(%CE%B7),(%CE%BE),-N((%CE%BE))%5D).-This-is-the-most-general-form-of-transition-from-one-proposition-to-another.">6.0.1. 6.01 Therefore the general form of an operation Ω’((η)) is [ (ξ) , N((ξ))]’ ((η)) (= [(η),(ξ), N((ξ))]). This is the most general form of transition from one proposition to another.</a></li>
 <li> <a href="#6.02-And-this-is-how-we-arrive-at-numbers.-I-give-the-following-definitions-%5C(x-=-%CE%A9%5E%7B0'%7Dx-Def.,-%CE%A9%E2%80%99%CE%A9%5E%7B%CE%BD'%7Dx-=-%CE%A9%5E%7B%CE%BD+1'%7Dx-Def.-%5C)-So,-in-accordance-with-these-rules,-which-deal-with-signs,-we-write-the-series-x,-%CE%A9%E2%80%99x,-%CE%A9%E2%80%99%CE%A9%E2%80%99x,-%CE%A9%E2%80%99%CE%A9%E2%80%99%CE%A9%E2%80%99x,-.-.-.-,-in-the-following-way-%CE%A9%5E0%E2%80%99x,-%CE%A9%5E%7B0+1%7D%E2%80%99x,-%CE%A9%5E%7B0+1+1%7D%E2%80%99x,-%CE%A9%5E%7B0+1+1+1%7D%E2%80%99x,-...-.-Therefore,-instead-of-%E2%80%98%5Bx,-%CE%BE-,-%CE%A9%E2%80%99-%CE%BE-%5D%E2%80%99,-I-write-%E2%80%98%5B-%CE%A9%5E0%E2%80%99x,-%CE%A9%5E%7B%CE%BD%7D%E2%80%99x,-%CE%A9%5E%7B%CE%BD+1%7D%E2%80%99x%5D%E2%80%99.-And-I-give-the-following-definitions-0+1-=-1-Def.,-0+1+1-=-2-Def.,-0+1+1+1-=-3-Def.,-(and-so-on).">6.0.2. 6.02 And this is how we arrive at numbers. I give the following definitions \(x = Ω^{0'}x Def., Ω’Ω^{ν'}x = Ω^{ν+1'}x Def. \) So, in accordance with these rules, which deal with signs, we write the series x, Ω’x, Ω’Ω’x, Ω’Ω’Ω’x, . . . , in the following way Ω^0’x, Ω <sup>0+1</sup>’x, Ω <sup>0+1+1</sup>’x, Ω <sup>0+1+1+1</sup>’x, … . Therefore, instead of ‘[x, ξ , Ω’ ξ ]’, I write ‘[ Ω^0’x, Ω <sup>ν</sup>’x, Ω <sup>ν+1</sup>’x]’. And I give the following definitions 0+1 = 1 Def., 0+1+1 = 2 Def., 0+1+1+1 = 3 Def., (and so on).</a></li>
 <li> <a href="#6.03-The-general-form-of-an-integer-is-%5B0,-%CE%BE,-%CE%BE+1%5D.">6.0.3. 6.03 The general form of an integer is [0, ξ, ξ+1].</a></li>
</ul></li>
 <li> <a href="#6.1-The-propositions-of-logic-are-tautologies.">6.1. 6.1 The propositions of logic are tautologies.</a>
 <ul> <li> <a href="#6.11-Therefore-the-propositions-of-logic-say-nothing.-(They-are-the-analytic-propositions.)">6.1.1. 6.11 Therefore the propositions of logic say nothing. (They are the analytic propositions.)</a></li>
 <li> <a href="#6.12-The-fact-that-the-propositions-of-logic-are-tautologies-shows-the-formal-%E2%80%94-logical-%E2%80%94-properties-of-language-and-the-world.-The-fact-that-a-tautology-is-yielded-by-this-particular-way-of-connecting-its-constituents-characterizes-the-logic-of-its-constituents.-If-propositions-are-to-yield-a-tautology-when-they-are-connected-in-a-certain-way,-they-must-have-certain-structural-properties.-So-their-yielding-a-tautology-when-combined-in-this-way-shows-that-they-possess-these-structural-properties.">6.1.2. 6.12 The fact that the propositions of logic are tautologies shows the formal — logical — properties of language and the world. The fact that a tautology is yielded by this particular way of connecting its constituents characterizes the logic of its constituents. If propositions are to yield a tautology when they are connected in a certain way, they must have certain structural properties. So their yielding a tautology when combined in this way shows that they possess these structural properties.</a></li>
 <li> <a href="#6.13-Logic-is-not-a-body-of-doctrine,-but-a-mirror-image-of-the-world.-Logic-is-transcendental.">6.1.3. 6.13 Logic is not a body of doctrine, but a mirror-image of the world. Logic is transcendental.</a></li>
</ul></li>
 <li> <a href="#6.2-Mathematics-is-a-logical-method.-The-propositions-of-mathematics-are-equations,-and-therefore-pseudo-propositions.">6.2. 6.2 Mathematics is a logical method. The propositions of mathematics are equations, and therefore pseudo-propositions.</a>
 <ul> <li> <a href="#6.21-A-proposition-of-mathematics-does-not-express-a-thought.">6.2.1. 6.21 A proposition of mathematics does not express a thought.</a></li>
 <li> <a href="#6.22-The-logic-of-the-world,-which-is-shown-in-tautologies-by-the-propositions-of-logic,-is-shown-in-equations-by-mathematics.">6.2.2. 6.22 The logic of the world, which is shown in tautologies by the propositions of logic, is shown in equations by mathematics.</a></li>
 <li> <a href="#6.23-If-two-expressions-are-combined-by-means-of-the-sign-of-equality,-that-means-that-they-can-be-substituted-for-one-another.-But-it-must-be-manifest-in-the-two-expressions-themselves-whether-this-is-the-case-or-not.-When-two-expressions-can-be-substituted-for-one-another,-that-characterizes-their-logical-form.">6.2.3. 6.23 If two expressions are combined by means of the sign of equality, that means that they can be substituted for one another. But it must be manifest in the two expressions themselves whether this is the case or not. When two expressions can be substituted for one another, that characterizes their logical form.</a></li>
 <li> <a href="#6.24-The-method-by-which-mathematics-arrives-at-its-equations-is-the-method-of-substitution.-For-equations-express-the-substitutability-of-two-expressions-and,-starting-from-a-number-of-equations,-we-advance-to-new-equations-by-substituting-different-expressions-in-accordance-with-the-equations.">6.2.4. 6.24 The method by which mathematics arrives at its equations is the method of substitution. For equations express the substitutability of two expressions and, starting from a number of equations, we advance to new equations by substituting different expressions in accordance with the equations.</a></li>
</ul></li>
 <li> <a href="#6.3-The-exploration-of-logic-means-the-exploration-of-everything-that-is-subject-to-law.-And-outside-logic-everything-is-accidental.">6.3. 6.3 The exploration of logic means the exploration of everything that is subject to law. And outside logic everything is accidental.</a>
 <ul> <li> <a href="#6.31-The-so-called-law-of-induction-cannot-possibly-be-a-law-of-logic,-since-it-is-obviously-a-proposition-with-sense.-%E2%80%94-Nor,-therefore,-can-it-be-an-a-priori-law.">6.3.1. 6.31 The so-called law of induction cannot possibly be a law of logic, since it is obviously a proposition with sense. — Nor, therefore, can it be an a priori law.</a></li>
 <li> <a href="#6.32-The-law-of-causality-is-not-a-law-but-the-form-of-a-law.">6.3.2. 6.32 The law of causality is not a law but the form of a law.</a></li>
 <li> <a href="#6.33-We-do-not-have-an-a-priori-belief-in-a-law-of-conservation,-but-rather-a-priori-knowledge-of-the-possibility-of-a-logical-form.">6.3.3. 6.33 We do not have an a priori belief in a law of conservation, but rather a priori knowledge of the possibility of a logical form.</a></li>
 <li> <a href="#6.34-All-such-propositions,-including-the-principle-of-sufficient-reason,-the-laws-of-continuity-in-nature-and-of-least-effort-in-nature,-etc.-etc.-%E2%80%94-all-these-are-a-priori-insights-about-the-forms-in-which-the-propositions-of-science-can-be-cast.">6.3.4. 6.34 All such propositions, including the principle of sufficient reason, the laws of continuity in nature and of least effort in nature, etc. etc. — all these are a priori insights about the forms in which the propositions of science can be cast.</a></li>
 <li> <a href="#6.35-Although-the-spots-in-our-picture-are-geometrical-figures,-nevertheless-geometry-can-obviously-say-nothing-at-all-about-their-actual-form-and-position.-The-network,-however,-is-purely-geometrical;-all-its-properties-can-be-given-a-priori.-Laws-like-the-principle-of-sufficient-reason,-etc.-are-about-the-net-and-not-about-what-the-net-describes.">6.3.5. 6.35 Although the spots in our picture are geometrical figures, nevertheless geometry can obviously say nothing at all about their actual form and position. The network, however, is purely geometrical; all its properties can be given a priori. Laws like the principle of sufficient reason, etc. are about the net and not about what the net describes.</a></li>
 <li> <a href="#6.36-If-there-were-a-law-of-causality,-it-might-be-put-in-the-following-way:-There-are-laws-of-nature.-But-of-course-that-cannot-be-said:-it-makes-itself-manifest.">6.3.6. 6.36 If there were a law of causality, it might be put in the following way: There are laws of nature. But of course that cannot be said: it makes itself manifest.</a></li>
 <li> <a href="#6.37-There-is-no-compulsion-making-one-thing-happen-because-another-has-happened.-The-only-necessity-that-exists-is-logical-necessity.">6.3.7. 6.37 There is no compulsion making one thing happen because another has happened. The only necessity that exists is logical necessity.</a></li>
</ul></li>
 <li> <a href="#6.4-All-propositions-are-of-equal-value.">6.4. 6.4 All propositions are of equal value.</a>
 <ul> <li> <a href="#6.41-The-sense-of-the-world-must-lie-outside-the-world.-In-the-world-everything-is-as-it-is,-and-everything-happens-as-it-does-happen:-in-it-no-value-exists%E2%80%94and-if-it-did-exist,-it-would-have-no-value.-If-there-is-any-value-that-does-have-value,-it-must-lie-outside-the-whole-sphere-of-what-happens-and-is-the-case.-For-all-that-happens-and-is-the-case-is-accidental.-What-makes-it-non-accidental-cannot-lie-within-the-world,-since-if-it-did-it-would-itself-be-accidental.-It-must-lie-outside-the-world.">6.4.1. 6.41 The sense of the world must lie outside the world. In the world everything is as it is, and everything happens as it does happen: in it no value exists—and if it did exist, it would have no value. If there is any value that does have value, it must lie outside the whole sphere of what happens and is the case. For all that happens and is the case is accidental. What makes it non-accidental cannot lie within the world, since if it did it would itself be accidental. It must lie outside the world.</a></li>
 <li> <a href="#6.42-So-too-it-is-impossible-for-there-to-be-propositions-of-ethics.-Propositions-can-express-nothing-that-is-higher.">6.4.2. 6.42 So too it is impossible for there to be propositions of ethics. Propositions can express nothing that is higher.</a></li>
 <li> <a href="#6.43-If-the-good-or-bad-exercise-of-the-will-does-alter-the-world,-it-can-alter-only-the-limits-of-the-world,-not-the-facts-%E2%80%94-not-what-can-be-expressed-by-means-of-language.-In-short-the-effect-must-be-that-it-becomes-an-altogether-different-world.-It-must,-so-to-speak,-wax-and-wane-as-a-whole.-The-world-of-the-happy-man-is-a-different-one-from-that-of-the-unhappy-man.">6.4.3. 6.43 If the good or bad exercise of the will does alter the world, it can alter only the limits of the world, not the facts — not what can be expressed by means of language. In short the effect must be that it becomes an altogether different world. It must, so to speak, wax and wane as a whole. The world of the happy man is a different one from that of the unhappy man.</a></li>
 <li> <a href="#6.44-It-is-not-how-things-are-in-the-world-that-is-mystical,-but-that-it-exists.">6.4.4. 6.44 It is not how things are in the world that is mystical, but that it exists.</a></li>
 <li> <a href="#6.45-To-view-the-world-sub-specie-aeterni-is-to-view-it-as-a-whole-%E2%80%94-a-limited-whole.-Feeling-the-world-as-a-limited-whole-%E2%80%94-it-is-this-that-is-mystical.">6.4.5. 6.45 To view the world sub specie aeterni is to view it as a whole — a limited whole. Feeling the world as a limited whole — it is this that is mystical.</a></li>
</ul></li>
 <li> <a href="#6.5-When-the-answer-cannot-be-put-into-words,-neither-can-the-question-be-put-into-words.-The-riddle-does-not-exist.-If-a-question-can-be-framed-at-all,-it-is-also-possible-to-answer-it.">6.5. 6.5 When the answer cannot be put into words, neither can the question be put into words. The riddle does not exist. If a question can be framed at all, it is also possible to answer it.</a>
 <ul> <li> <a href="#6.51-Scepticism-is-not-irrefutable,-but-obviously-nonsensical,-when-it-tries-to-raise-doubts-where-no-questions-can-be-asked.-For-doubt-can-exist-only-where-a-question-exists,-a-question-only-where-an-answer-exists,-and-an-answer-only-where-something-can-be-said.">6.5.1. 6.51 Scepticism is not irrefutable, but obviously nonsensical, when it tries to raise doubts where no questions can be asked. For doubt can exist only where a question exists, a question only where an answer exists, and an answer only where something can be said.</a></li>
 <li> <a href="#6.52-We-feel-that-even-when-all-possible-scientific-questions-have-been-answered,-the-problems-of-life-remain-completely-untouched.-Of-course-there-are-then-no-questions-left,-and-this-itself-is-the-answer.">6.5.2. 6.52 We feel that even when all possible scientific questions have been answered, the problems of life remain completely untouched. Of course there are then no questions left, and this itself is the answer.</a></li>
 <li> <a href="#6.53-The-correct-method-in-philosophy-would-really-be-the-following:-to-say-nothing-except-what-can-be-said,-i.e.-propositions-of-natural-science-%E2%80%94-i.e.-something-that-has-nothing-to-do-with-philosophy-%E2%80%94-and-then,-whenever-someone-else-wanted-to-say-something-metaphysical,-to-demonstrate-to-him-that-he-had-failed-to-give-a-meaning-to-certain-signs-in-his-propositions.-Although-it-would-not-be-satisfying-to-the-other-person-%E2%80%94-he-would-not-have-the-feeling-that-we-were-teaching-him-philosophy-%E2%80%94-this-method-would-be-the-only-strictly-correct-one.">6.5.3. 6.53 The correct method in philosophy would really be the following: to say nothing except what can be said, i.e. propositions of natural science — i.e. something that has nothing to do with philosophy — and then, whenever someone else wanted to say something metaphysical, to demonstrate to him that he had failed to give a meaning to certain signs in his propositions. Although it would not be satisfying to the other person — he would not have the feeling that we were teaching him philosophy — this method would be the only strictly correct one.</a></li>
 <li> <a href="#6.54-My-propositions-serve-as-elucidations-in-the-following-way:-anyone-who-understands-me-eventually-recognizes-them-as-nonsensical,-when-he-has-used-them-%E2%80%94-as-steps-%E2%80%94-to-climb-up-beyond-them.-(He-must,-so-to-speak,-throw-away-the-ladder-after-he-has-climbed-up-it.)-He-must-transcend-these-propositions,-and-then-he-will-see-the-world-aright.">6.5.4. 6.54 My propositions serve as elucidations in the following way: anyone who understands me eventually recognizes them as nonsensical, when he has used them — as steps — to climb up beyond them. (He must, so to speak, throw away the ladder after he has climbed up it.) He must transcend these propositions, and then he will see the world aright.</a></li>
</ul></li>
</ul></li>
 <li> <a href="#7-What-we-cannot-speak-about-we-must-pass-over-in-silence.">7. 7 What we cannot speak about we must pass over in silence.</a></li>
 <li> <a href="#The-End">8. The End</a></li>
</ul></div>
</nav> <p>
About 10% through reading Tractatus, I realised that many statements that Wittgenstein is making have a lot of sense if interpreted in a programming context.
</p>

 <p>
This file is the orgification of his book.
</p>

 <p>
From the very beginning, from the first footnote, it stroke me as extremely fitting into an "org-like" format of a tree of thoughts.
I decided to convert it into an org-mode file, with every thought represented by a heading, and every leaf being my comment on what this leaf actually means.
All Wittgenstein's thoughts are represented as headings, and mine are contained within bodies.
All my thoughts follow the "one sentence – one line" rule.
Every Wittgenstein's thought is at a single line, but his thoughts may consist of several sentences.
</p>

 <p>
Knowing the Lisp's saying "top level is hopeless", I took the liberty of adding this explanatory comment at the top level, in a hope that if someone is going to parse this file with an automated parser, this comment would be easier to bypass.
</p>

 <p>
This file is based on the 1974 edition.
Tractatus was originally written in German, in 1921, and translated into English in 1922.
</p>

 <p>
 <b>References:</b>
</p>
 <ul class="org-ul"> <li> <a href="http://tractatusblog.blogspot.com/2007/08/4_03.html">http://tractatusblog.blogspot.com/2007/08/4_03.html</a></li>
 <li> <a href="https://en.wikisource.org/wiki/Tractatus_Logico-Philosophicus/4">https://en.wikisource.org/wiki/Tractatus_Logico-Philosophicus/4</a></li>
 <li> <a href="http://readingwittgenstein.blogspot.com/2008/04/proposition-must-have-just-as-many.html">http://readingwittgenstein.blogspot.com/2008/04/proposition-must-have-just-as-many.html</a></li>
 <li> <a href="https://people.umass.edu/klement/tlp/tlp-hyperlinked.html">https://people.umass.edu/klement/tlp/tlp-hyperlinked.html</a></li>
 <li> <a href="http://daxoliver.com/tractatus/">http://daxoliver.com/tractatus/</a></li>
 <li> <a href="http://tractatus.lib.uiowa.edu/map/">http://tractatus.lib.uiowa.edu/map/</a></li>
 <li> <a href="http://www.bazzocchi.net/wittgenstein/tractatus/eng/index.htm">http://www.bazzocchi.net/wittgenstein/tractatus/eng/index.htm</a></li>
 <li> <a href="http://www.kfs.org/jonathan/witt/tlph.html">http://www.kfs.org/jonathan/witt/tlph.html</a></li>
 <li> <a href="https://people.umass.edu/klement/tlp/">https://people.umass.edu/klement/tlp/</a></li>
 <li> <a href="http://www.wittgensteinsource.org/">http://www.wittgensteinsource.org/</a></li>
</ul> <section id="outline-container-1-The-world-is-all-that-is-the-case." class="outline-2"> <h2 id="1-The-world-is-all-that-is-the-case."> <span class="section-number-2">1.</span>  <a href="#1-The-world-is-all-that-is-the-case.">1 The world is all that is the case.</a></h2>
 <div class="outline-text-2" id="text-1-The-world-is-all-that-is-the-case.">
 <p>
What is "the world"?
And what is "the case"?
Also, what is "all"?
</p>
</div>

 <div id="outline-container-1.1-The-world-is-the-totality-of-facts,-not-of-things." class="outline-3">
 <h3 id="1.1-The-world-is-the-totality-of-facts,-not-of-things."> <span class="section-number-3">1.1.</span>  <a href="#1.1-The-world-is-the-totality-of-facts,-not-of-things.">1.1 The world is the totality of facts, not of things.</a></h3>
 <div class="outline-text-3" id="text-1.1-The-world-is-the-totality-of-facts,-not-of-things.">
 <p>
Okay, the simple thing is: "the world" here is a "logical world", that is something that exists in a computer that processes this "something".
Let us throw away a bit of idealism and admit: people are stupid and forgetful, and philosophy is a loose field of research.
If we want to make any sense of this book, it way more applies to computers, than to people.
</p>

 <p>
Hence, I should probably be saying "memory" instead of "the world".
(Maybe, "storage" would be even better, but let's get back a bit of our idealism and imagine a computer with fast storage.)
</p>

 <p>
"Facts" are, therefore, what we nowadays call "data" (plural).
</p>
</div>

 <div id="outline-container-1.11-The-world-is-determined-by-the-facts,-and-by-their-being-all-the-facts." class="outline-4">
 <h4 id="1.11-The-world-is-determined-by-the-facts,-and-by-their-being-all-the-facts."> <span class="section-number-4">1.1.1.</span>  <a href="#1.11-The-world-is-determined-by-the-facts,-and-by-their-being-all-the-facts.">1.11 The world is determined by the facts, and by their being all the facts.</a></h4>
 <div class="outline-text-4" id="text-1.11-The-world-is-determined-by-the-facts,-and-by-their-being-all-the-facts.">
 <p>
A computer cannot get out of it's memory.
No matter how and what you program, from the programming perspective it is only the state of memory that is changing.
</p>

 <p>
Moreover, if we state that the memory (or at least some part of the memory) is immutable and large enough to have everything that we would possibly ever be asking from sensors, then we can remove the sensors from our logical system entirely, without loss of generality.
That is especially true if we do not allow Random Access Memory, but make the machine move the reading head at finite speed.
</p>
</div>
</div>

 <div id="outline-container-1.12-For-the-totality-of-facts-determines-what-is-the-case,-and-also-whatever-is-not-the-case." class="outline-4">
 <h4 id="1.12-For-the-totality-of-facts-determines-what-is-the-case,-and-also-whatever-is-not-the-case."> <span class="section-number-4">1.1.2.</span>  <a href="#1.12-For-the-totality-of-facts-determines-what-is-the-case,-and-also-whatever-is-not-the-case.">1.12 For the totality of facts determines what is the case, and also whatever is not the case.</a></h4>
 <div class="outline-text-4" id="text-1.12-For-the-totality-of-facts-determines-what-is-the-case,-and-also-whatever-is-not-the-case.">
 <p>
So, since we have some stuff written at our machine's memory by default, and no more "external" data can be added, then everything that can be computed, must be computed from the existing data.
</p>

 <p>
 <b>Important 1:</b>: we can, obviously (not obviously at all!), generate some random garbage and write it into our memory.
And using this random garbage, we can compute (predict) everything.
However, we the programmers (logicians) are usually interested in those computation results (logical inferences) that actually make some sense, not random garbage.
</p>

 <p>
So the computation we are making must not contradict what is already in the memory to be useful.
</p>

 <p>
 <b>Important 2</b>: maybe we cannot even generate randomness, can we?
We can use a PRNG to generate pseudo-random bits, but a PRNG needs a seed, and the only place we can take this seed from is, again, the initial state of the memory.
</p>
</div>
</div>

 <div id="outline-container-1.13-The-facts-in-logical-space-are-the-world." class="outline-4">
 <h4 id="1.13-The-facts-in-logical-space-are-the-world."> <span class="section-number-4">1.1.3.</span>  <a href="#1.13-The-facts-in-logical-space-are-the-world."> <span class="todo TODO">TODO</span> 1.13 The facts in logical space are the world.</a></h4>
 <div class="outline-text-4" id="text-1.13-The-facts-in-logical-space-are-the-world.">
 <p>
I do not understand this.
Is it a repetition of the premise that there is no IO, without loss of generality?
</p>

 <p>
Also, I very strongly feel that I should somehow connect this thought with the "open world" and "closed world" metaphor in inference engines (such as Prolog and SQL), but I'm too ignorant for that.
</p>
</div>
</div>
</div>

 <div id="outline-container-1.2-The-world-divides-into-facts." class="outline-3">
 <h3 id="1.2-The-world-divides-into-facts."> <span class="section-number-3">1.2.</span>  <a href="#1.2-The-world-divides-into-facts.">1.2 The world divides into facts.</a></h3>
 <div class="outline-text-3" id="text-1.2-The-world-divides-into-facts.">
 <p>
Memory consists of cells.
</p>
</div>

 <div id="outline-container-1.21-Each-item-can-be-the-case-or-not-the-case-while-everything-else-remains-the-same." class="outline-4">
 <h4 id="1.21-Each-item-can-be-the-case-or-not-the-case-while-everything-else-remains-the-same."> <span class="section-number-4">1.2.1.</span>  <a href="#1.21-Each-item-can-be-the-case-or-not-the-case-while-everything-else-remains-the-same.">1.21 Each item can be the case or not the case while everything else remains the same.</a></h4>
 <div class="outline-text-4" id="text-1.21-Each-item-can-be-the-case-or-not-the-case-while-everything-else-remains-the-same.">
 <p>
Cells are bits, and can be either 1 or 0.
</p>

 <p>
(In programming we usually use bytes or words as a minimal elementary operating unit, but perhaps bits can also work as a substrate.)
</p>
</div>
</div>
</div>
</section> <section id="outline-container-2-What-is-the-case-%E2%80%94a-fact%E2%80%94-is-the-existence-of-states-of-affairs." class="outline-2"> <h2 id="2-What-is-the-case-%E2%80%94a-fact%E2%80%94-is-the-existence-of-states-of-affairs."> <span class="section-number-2">2.</span>  <a href="#2-What-is-the-case-%E2%80%94a-fact%E2%80%94-is-the-existence-of-states-of-affairs.">2 What is the case —a fact— is the existence of states of affairs.</a></h2>
 <div class="outline-text-2" id="text-2-What-is-the-case-%E2%80%94a-fact%E2%80%94-is-the-existence-of-states-of-affairs.">
 <p>
I do not understand.
Does he mean that ones in memory should correspond to "true" things in the real world?
</p>
</div>

 <div id="outline-container-2.01-A-state-of-affairs-(a-state-of-things)-is-a-combination-of-objects-(things)." class="outline-4">
 <h4 id="2.01-A-state-of-affairs-(a-state-of-things)-is-a-combination-of-objects-(things)."> <span class="section-number-4">2.0.1.</span>  <a href="#2.01-A-state-of-affairs-(a-state-of-things)-is-a-combination-of-objects-(things).">2.01 A state of affairs (a state of things) is a combination of objects (things).</a></h4>
 <div class="outline-text-4" id="text-2.01-A-state-of-affairs-(a-state-of-things)-is-a-combination-of-objects-(things).">
 <p>
So, this "state of affairs" is that initial memory state that somehow describes the "real world" whatever that be.
I am not very sure, but it seems to me that the actual thought here is that this "input" should be partition-able into pieces of input describing various things in the world.
(Not sure whether this partition-ability is obvious.)
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.011-It-is-essential-to-things-that-they-should-be-possible-constituents-of-states-of-affairs."></a> <a href="#2.011-It-is-essential-to-things-that-they-should-be-possible-constituents-of-states-of-affairs.">2.011 It is essential to things that they should be possible constituents of states of affairs.</a> <br></br> <div class="outline-text-5" id="text-2.011-It-is-essential-to-things-that-they-should-be-possible-constituents-of-states-of-affairs.">
 <p>
Does it mean that the input (world) should not be self-contradictory?
For example, input should not contain both x=1, and x=2 in whatever kitchen arithmetic we may reason.
</p>
</div>
</li>

 <li> <a id="2.012-In-logic-nothing-is-accidental:-if-a-thing-can-occur-in-a-state-of-affairs,-the-possibility-of-the-state-of-affairs-must-be-written-into-the-thing-itself."></a> <a href="#2.012-In-logic-nothing-is-accidental:-if-a-thing-can-occur-in-a-state-of-affairs,-the-possibility-of-the-state-of-affairs-must-be-written-into-the-thing-itself.">2.012 In logic nothing is accidental: if a thing can occur in a state of affairs, the possibility of the state of affairs must be written into the thing itself.</a> <br></br> <div class="outline-text-5" id="text-2.012-In-logic-nothing-is-accidental:-if-a-thing-can-occur-in-a-state-of-affairs,-the-possibility-of-the-state-of-affairs-must-be-written-into-the-thing-itself.">
 <p>
I think this means that "types exist".
Wow, that's a grandiose statement, isn't it?
</p>

 <p>
Maybe, it, rather means that "bytes do not mean anything by themselves, but only when there is some human understanding of what these bytes represent.
This still implies "types", but in a less mechanistic way.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.0121-It-would-seem-to-be-a-sort-of-accident,-if-it-turned-out-that-a-situation-would-fit-a-thing-that-could-already-exist-entirely-on-its-own.-If-things-can-occur-in-states-of-affairs,-this-possibility-must-be-in-them-from-the-beginning.-(Nothing-in-the-province-of-logic-can-be-merely-possible.-Logic-deals-with-every-possibility-and-all-possibilities-are-its-facts.)-Just-as-we-are-quite-unable-to-imagine-spatial-objects-outside-space-or-temporal-objects-outside-time,-so-too-there-is-no-object-that-we-can-imagine-excluded-from-the-possibility-of-combining-with-others.-If-I-can-imagine-objects-combined-in-states-of-affairs,-I-cannot-imagine-them-excluded-from-the-possibility-of-such-combinations."></a> <a href="#2.0121-It-would-seem-to-be-a-sort-of-accident,-if-it-turned-out-that-a-situation-would-fit-a-thing-that-could-already-exist-entirely-on-its-own.-If-things-can-occur-in-states-of-affairs,-this-possibility-must-be-in-them-from-the-beginning.-(Nothing-in-the-province-of-logic-can-be-merely-possible.-Logic-deals-with-every-possibility-and-all-possibilities-are-its-facts.)-Just-as-we-are-quite-unable-to-imagine-spatial-objects-outside-space-or-temporal-objects-outside-time,-so-too-there-is-no-object-that-we-can-imagine-excluded-from-the-possibility-of-combining-with-others.-If-I-can-imagine-objects-combined-in-states-of-affairs,-I-cannot-imagine-them-excluded-from-the-possibility-of-such-combinations."> <span class="todo TODO">TODO</span> 2.0121 It would seem to be a sort of accident, if it turned out that a situation would fit a thing that could already exist entirely on its own. If things can occur in states of affairs, this possibility must be in them from the beginning. (Nothing in the province of logic can be merely possible. Logic deals with every possibility and all possibilities are its facts.) Just as we are quite unable to imagine spatial objects outside space or temporal objects outside time, so too there is no object that we can imagine excluded from the possibility of combining with others. If I can imagine objects combined in states of affairs, I cannot imagine them excluded from the possibility of such combinations.</a> <br></br> <div class="outline-text-6" id="text-2.0121-It-would-seem-to-be-a-sort-of-accident,-if-it-turned-out-that-a-situation-would-fit-a-thing-that-could-already-exist-entirely-on-its-own.-If-things-can-occur-in-states-of-affairs,-this-possibility-must-be-in-them-from-the-beginning.-(Nothing-in-the-province-of-logic-can-be-merely-possible.-Logic-deals-with-every-possibility-and-all-possibilities-are-its-facts.)-Just-as-we-are-quite-unable-to-imagine-spatial-objects-outside-space-or-temporal-objects-outside-time,-so-too-there-is-no-object-that-we-can-imagine-excluded-from-the-possibility-of-combining-with-others.-If-I-can-imagine-objects-combined-in-states-of-affairs,-I-cannot-imagine-them-excluded-from-the-possibility-of-such-combinations.">
 <p>
What does it even mean "a situation would fit a thing"?
</p>

 <p>
Okay, I am not all sure in what I am writing here, but here is my view on this:
</p>

 <ol class="org-ol"> <li>So, your input is encoding some set of affairs.</li>
</ol> <p>
Some things are in some state, some other things are in some other state.
Firstly, you should be able to just append an encoding of a state of some thing to the end of the input.
Because why not?
</p>

 <ol class="org-ol"> <li>On the other hand.</li>
</ol> <p>
Assume types exist.
Then instead of doing a computation on objects, you can do a computation on types, and create a mapping from a set of all possible inputs (matching your expected types) to a full set of all possible outputs.
For "computation" (narrowly understood) that is probably not feasible, as it would blow up exponentially with every input variable, but for "logic" as the science of  "all truths", computational inefficiency should not matter.
</p>

 <p>
Make a pull request with your own understanding of what this means.
</p>
</div>
</li>

 <li> <a id="2.0122-Things-are-independent-in-so-far-as-they-can-occur-in-all-~possible~-situations,-but-this-form-of-independence-is-a-form-of-connexion-with-states-of-affairs,-a-form-of-dependence.-(It-is-impossible-for-words-to-appear-in-two-different-r%C3%B4les:-by-themselves,-and-in-propositions.)"></a> <a href="#2.0122-Things-are-independent-in-so-far-as-they-can-occur-in-all-~possible~-situations,-but-this-form-of-independence-is-a-form-of-connexion-with-states-of-affairs,-a-form-of-dependence.-(It-is-impossible-for-words-to-appear-in-two-different-r%C3%B4les:-by-themselves,-and-in-propositions.)">2.0122 Things are independent in so far as they can occur in all  <code>possible</code> situations, but this form of independence is a form of connexion with states of affairs, a form of dependence. (It is impossible for words to appear in two different rôles: by themselves, and in propositions.)</a> <br></br> <div class="outline-text-6" id="text-2.0122-Things-are-independent-in-so-far-as-they-can-occur-in-all-~possible~-situations,-but-this-form-of-independence-is-a-form-of-connexion-with-states-of-affairs,-a-form-of-dependence.-(It-is-impossible-for-words-to-appear-in-two-different-r%C3%B4les:-by-themselves,-and-in-propositions.)">
 <ol class="org-ol"> <li>What is the difference between a "connection" and a "connexion"?</li>
 <li>What is the difference between a "role" and a "rôle"</li>
</ol> <p>
"Dependent" is that they appear as input to the same program and it would just make sense for them to be used together?
</p>

 <p>
Does Wittgenstein use "propositions" to mean "functions"?
If yes, then this would mean that functions are not the same thing as variables, right?
</p>

 <p>
Or, rather, reasoning about types one have to give a name to a type, and this name cannot be used for a function at the same time.
</p>
</div>
</li>

 <li> <a id="2.0123-If-I-know-an-object-I-also-know-all-its-possible-occurrences-in-states-of-affairs.-(Every-one-of-these-possibilities-must-be-part-of-the-nature-of-the-object.)-A-new-possibility-cannot-be-discovered-later."></a> <a href="#2.0123-If-I-know-an-object-I-also-know-all-its-possible-occurrences-in-states-of-affairs.-(Every-one-of-these-possibilities-must-be-part-of-the-nature-of-the-object.)-A-new-possibility-cannot-be-discovered-later.">2.0123 If I know an object I also know all its possible occurrences in states of affairs. (Every one of these possibilities must be part of the nature of the object.) A new possibility cannot be discovered later.</a> <br></br> <div class="outline-text-6" id="text-2.0123-If-I-know-an-object-I-also-know-all-its-possible-occurrences-in-states-of-affairs.-(Every-one-of-these-possibilities-must-be-part-of-the-nature-of-the-object.)-A-new-possibility-cannot-be-discovered-later.">
 <p>
I think this, again, means that, essentially, "types exist".
That is, a C++ Point{int,int}, can only be what I have described, not Point{int,int,int}.
</p>
</div>
</li>

 <li> <a id="2.01231-If-I-am-to-know-an-object,-though-I-need-not-know-its-external-properties,-I-must-know-all-its-internal-properties."></a> <a href="#2.01231-If-I-am-to-know-an-object,-though-I-need-not-know-its-external-properties,-I-must-know-all-its-internal-properties."> <span class="todo TODO">TODO</span> 2.01231 If I am to know an object, though I need not know its external properties, I must know all its internal properties.</a> <br></br> <div class="outline-text-6" id="text-2.01231-If-I-am-to-know-an-object,-though-I-need-not-know-its-external-properties,-I-must-know-all-its-internal-properties.">
 <p>
This I do not understand.
What are external and internal properties?
If by "internal properties", Wittgenstein means "state", or even "initial state", then this is reasonable.
</p>

 <p>
And "external" means… computable?
Like, we do not need to know that P(a) = 4, but we need to know what a is to work with it.
</p>
</div>
</li>

 <li> <a id="2.0124-If-all-objects-are-given,-then-at-the-same-time-all-possible-states-of-affairs-are-also-given."></a> <a href="#2.0124-If-all-objects-are-given,-then-at-the-same-time-all-possible-states-of-affairs-are-also-given.">2.0124 If all objects are given, then at the same time all possible states of affairs are also given.</a> <br></br> <div class="outline-text-6" id="text-2.0124-If-all-objects-are-given,-then-at-the-same-time-all-possible-states-of-affairs-are-also-given.">
 <p>
Again, the idea seems to be that we can compute with types instead of instances.
</p>
</div>
</li>
</ol></li>

 <li> <a id="2.013-Each-thing-is,-as-it-were,-in-a-space-of-possible-states-of-affairs.-This-space-I-can-imagine-empty,-but-I-cannot-imagine-the-thing-without-the-space."></a> <a href="#2.013-Each-thing-is,-as-it-were,-in-a-space-of-possible-states-of-affairs.-This-space-I-can-imagine-empty,-but-I-cannot-imagine-the-thing-without-the-space.">2.013 Each thing is, as it were, in a space of possible states of affairs. This space I can imagine empty, but I cannot imagine the thing without the space.</a> <br></br> <div class="outline-text-5" id="text-2.013-Each-thing-is,-as-it-were,-in-a-space-of-possible-states-of-affairs.-This-space-I-can-imagine-empty,-but-I-cannot-imagine-the-thing-without-the-space.">
 <p>
Again, the input can be empty.
But we cannot compute without input.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.0131-A-spatial-object-must-be-situated-in-infinite-space.-(A-spatial-point-is-an-argument-place.)-A-speck-in-the-visual-field,-though-it-need-not-be-red,-must-have-some-colour:-it-is,-so-to-speak,-surrounded-by-colour-space.-Notes-must-have-some-pitch,-objects-of-the-sense-of-touch-some-degree-of-hardness,-and-so-on."></a> <a href="#2.0131-A-spatial-object-must-be-situated-in-infinite-space.-(A-spatial-point-is-an-argument-place.)-A-speck-in-the-visual-field,-though-it-need-not-be-red,-must-have-some-colour:-it-is,-so-to-speak,-surrounded-by-colour-space.-Notes-must-have-some-pitch,-objects-of-the-sense-of-touch-some-degree-of-hardness,-and-so-on.">2.0131 A spatial object must be situated in infinite space. (A spatial point is an argument-place.) A speck in the visual field, though it need not be red, must have some colour: it is, so to speak, surrounded by colour-space. Notes must have some pitch, objects of the sense of touch some degree of hardness, and so on.</a> <br></br> <div class="outline-text-6" id="text-2.0131-A-spatial-object-must-be-situated-in-infinite-space.-(A-spatial-point-is-an-argument-place.)-A-speck-in-the-visual-field,-though-it-need-not-be-red,-must-have-some-colour:-it-is,-so-to-speak,-surrounded-by-colour-space.-Notes-must-have-some-pitch,-objects-of-the-sense-of-touch-some-degree-of-hardness,-and-so-on.">
 <p>
Again, this seems to mean that we describe things with parameters.
</p>
</div>
</li>
</ol></li>

 <li> <a id="2.014-Objects-contain-the-possibility-of-all-situations."></a> <a href="#2.014-Objects-contain-the-possibility-of-all-situations.">2.014 Objects contain the possibility of all situations.</a> <br></br> <div class="outline-text-5" id="text-2.014-Objects-contain-the-possibility-of-all-situations.">
 <p>
Well, if the only thing we have is the input string, then we have nowhere else to draw information.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.0141-The-possibility-of-its-occurring-in-states-of-affairs-is-the-form-of-an-object."></a> <a href="#2.0141-The-possibility-of-its-occurring-in-states-of-affairs-is-the-form-of-an-object.">2.0141 The possibility of its occurring in states of affairs is the form of an object.</a> <br></br> <div class="outline-text-6" id="text-2.0141-The-possibility-of-its-occurring-in-states-of-affairs-is-the-form-of-an-object.">
 <p>
It's a bit confusing, but I feel that what he actually means is the following:
</p>

 <ol class="org-ol"> <li>By computing with types, we can get all possible "states of affairs", that is, all possible evolutions of the system defined by the input.</li>
 <li>By choosing one set of parameters describing an object (its "form"), we specialise the system to obtain a smaller set of evolutions.</li>
</ol></div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-2.02-Objects-are-simple." class="outline-4">
 <h4 id="2.02-Objects-are-simple."> <span class="section-number-4">2.0.2.</span>  <a href="#2.02-Objects-are-simple."> <span class="todo TODO">TODO</span> 2.02 Objects are simple.</a></h4>
 <div class="outline-text-4" id="text-2.02-Objects-are-simple.">
 <p>
I do not understand.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.0201-Every-statement-about-complexes-can-be-resolved-into-a-statement-about-their-constituents-and-into-the-propositions-that-describe-the-complexes-completely."></a> <a href="#2.0201-Every-statement-about-complexes-can-be-resolved-into-a-statement-about-their-constituents-and-into-the-propositions-that-describe-the-complexes-completely.">2.0201 Every statement about complexes can be resolved into a statement about their constituents and into the propositions that describe the complexes completely.</a> <br></br> <div class="outline-text-6" id="text-2.0201-Every-statement-about-complexes-can-be-resolved-into-a-statement-about-their-constituents-and-into-the-propositions-that-describe-the-complexes-completely.">
 <p>
This is kinda again, about defining complex types from primitive types.
I guess, Wittgenstein means that there should be a set of primitive values that have primitive operations working on them (and calls "modern primitive objects" objects).
</p>
</div>
</li>
</ol> <li> <a id="2.021-Objects-make-up-the-substance-of-the-world.-That-is-why-they-cannot-be-composite."></a> <a href="#2.021-Objects-make-up-the-substance-of-the-world.-That-is-why-they-cannot-be-composite.">2.021 Objects make up the substance of the world. That is why they cannot be composite.</a> <br></br> <div class="outline-text-5" id="text-2.021-Objects-make-up-the-substance-of-the-world.-That-is-why-they-cannot-be-composite.">
 <p>
Here we would have to consider bit-wise operations.
It seems that in modern programming we sometimes can extract pieces of primitive objects.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.0211-If-the-world-had-no-substance,-then-whether-a-proposition-had-sense-would-depend-on-whether-another-proposition-was-true."></a> <a href="#2.0211-If-the-world-had-no-substance,-then-whether-a-proposition-had-sense-would-depend-on-whether-another-proposition-was-true.">2.0211 If the world had no substance, then whether a proposition had sense would depend on whether another proposition was true.</a> <br></br> <div class="outline-text-6" id="text-2.0211-If-the-world-had-no-substance,-then-whether-a-proposition-had-sense-would-depend-on-whether-another-proposition-was-true.">
 <p>
Hm… suppose our function has no input.
Is it the same as "no substance"?
</p>
</div>
</li>

 <li> <a id="2.0212-In-that-case-we-could-not-sketch-any-picture-of-the-world-(true-or-false)."></a> <a href="#2.0212-In-that-case-we-could-not-sketch-any-picture-of-the-world-(true-or-false).">2.0212 In that case we could not sketch any picture of the world (true or false).</a> <br></br> <div class="outline-text-6" id="text-2.0212-In-that-case-we-could-not-sketch-any-picture-of-the-world-(true-or-false).">
 <p>
Well, again, if your function has no input and no state, then it can only be constant, right? 
(Perhaps, a constant  <b>trajectory</b>.)
</p>
</div>
</li>
</ol></li>

 <li> <a id="2.022-It-is-obvious-that-an-imagined-world,-however-different-it-may-be-from-the-real-one,-must-have-something-%E2%80%94a-form%E2%80%94-in-common-with-it."></a> <a href="#2.022-It-is-obvious-that-an-imagined-world,-however-different-it-may-be-from-the-real-one,-must-have-something-%E2%80%94a-form%E2%80%94-in-common-with-it."> <span class="todo TODO">TODO</span> 2.022 It is obvious that an imagined world, however different it may be from the real one, must have something —a form— in common with it.</a> <br></br> <div class="outline-text-5" id="text-2.022-It-is-obvious-that-an-imagined-world,-however-different-it-may-be-from-the-real-one,-must-have-something-%E2%80%94a-form%E2%80%94-in-common-with-it.">
 <p>
Interesting point.
I do not understand it.
Let us image that our function implements a general-purpose programming language.
The it would still eventually have to be reduced to the primitives of the first function.
Right?
</p>
</div>
</li>

 <li> <a id="2.023-Objects-are-just-what-constitute-this-unalterable-form."></a> <a href="#2.023-Objects-are-just-what-constitute-this-unalterable-form.">2.023 Objects are just what constitute this unalterable form.</a> <br></br> <div class="outline-text-5" id="text-2.023-Objects-are-just-what-constitute-this-unalterable-form.">
 <p>
So that is still bits?
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.0231-The-substance-of-the-world-can-only-determine-a-form,-and-not-any-material-properties.-For-it-is-only-by-means-of-propositions-that-material-properties-are-represented-%E2%80%94-only-by-the-configuration-of-objects-that-they-are-produced."></a> <a href="#2.0231-The-substance-of-the-world-can-only-determine-a-form,-and-not-any-material-properties.-For-it-is-only-by-means-of-propositions-that-material-properties-are-represented-%E2%80%94-only-by-the-configuration-of-objects-that-they-are-produced.">2.0231 The substance of the world can only determine a form, and not any material properties. For it is only by means of propositions that material properties are represented — only by the configuration of objects that they are produced.</a> <br></br> <div class="outline-text-6" id="text-2.0231-The-substance-of-the-world-can-only-determine-a-form,-and-not-any-material-properties.-For-it-is-only-by-means-of-propositions-that-material-properties-are-represented-%E2%80%94-only-by-the-configuration-of-objects-that-they-are-produced.">
 <p>
This seems like a re-iteration of the fact that numbers do not mean anything by themselves, only in conjunction with their interpretation.
</p>
</div>
</li>
</ol></li>

 <li> <a id="2.023-In-a-manner-of-speaking,-objects-are-colourless."></a> <a href="#2.023-In-a-manner-of-speaking,-objects-are-colourless."> <span class="todo TODO">TODO</span> 2.023 In a manner of speaking, objects are colourless.</a> <br></br> <div class="outline-text-5" id="text-2.023-In-a-manner-of-speaking,-objects-are-colourless.">
 <p>
Does it mean that "bits mean nothing"?
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.0233-If-two-objects-have-the-same-logical-form,-the-only-distinction-between-them,-apart-from-their-external-properties,-is-that-they-are-different."></a> <a href="#2.0233-If-two-objects-have-the-same-logical-form,-the-only-distinction-between-them,-apart-from-their-external-properties,-is-that-they-are-different.">2.0233 If two objects have the same logical form, the only distinction between them, apart from their external properties, is that they are different.</a> <br></br> <div class="outline-text-6" id="text-2.0233-If-two-objects-have-the-same-logical-form,-the-only-distinction-between-them,-apart-from-their-external-properties,-is-that-they-are-different.">
 <p>
So (255,0,0) can mean a red colour, or a coordinate of a 3d point.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.02331-Either-a-thing-has-properties-that-nothing-else-has,-in-which-case-we-can-immediately-use-a-description-to-distinguish-it-from-the-others-and-refer-to-it;-or,-on-the-other-hand,-there-are-several-things-that-have-the-whole-set-of-their-properties-in-common,-in-which-case-it-is-quite-impossible-to-indicate-one-of-them.-For-if-there-is-nothing-to-distinguish-a-thing,-I-cannot-distinguish-it,-since-otherwise-it-would-be-distinguished-after-all."></a> <a href="#2.02331-Either-a-thing-has-properties-that-nothing-else-has,-in-which-case-we-can-immediately-use-a-description-to-distinguish-it-from-the-others-and-refer-to-it;-or,-on-the-other-hand,-there-are-several-things-that-have-the-whole-set-of-their-properties-in-common,-in-which-case-it-is-quite-impossible-to-indicate-one-of-them.-For-if-there-is-nothing-to-distinguish-a-thing,-I-cannot-distinguish-it,-since-otherwise-it-would-be-distinguished-after-all.">2.02331 Either a thing has properties that nothing else has, in which case we can immediately use a description to distinguish it from the others and refer to it; or, on the other hand, there are several things that have the whole set of their properties in common, in which case it is quite impossible to indicate one of them. For if there is nothing to distinguish a thing, I cannot distinguish it, since otherwise it would be distinguished after all.</a> <br></br> <div class="outline-text-7" id="text-2.02331-Either-a-thing-has-properties-that-nothing-else-has,-in-which-case-we-can-immediately-use-a-description-to-distinguish-it-from-the-others-and-refer-to-it;-or,-on-the-other-hand,-there-are-several-things-that-have-the-whole-set-of-their-properties-in-common,-in-which-case-it-is-quite-impossible-to-indicate-one-of-them.-For-if-there-is-nothing-to-distinguish-a-thing,-I-cannot-distinguish-it,-since-otherwise-it-would-be-distinguished-after-all.">
 <p>
Is this "type punning"?
If things are described with the same set of parameters, then reading the memory cannot tell you which of the things was actually meant.
If you add an explicit type qualifier, it is kinda "a parameter", isn't it?
</p>
</div>
</li>
</ol></li>
</ol></li>

 <li> <a id="2.024-Substance-is-what-subsists-independently-of-what-is-the-case."></a> <a href="#2.024-Substance-is-what-subsists-independently-of-what-is-the-case.">2.024 Substance is what subsists independently of what is the case.</a> <br></br> <div class="outline-text-5" id="text-2.024-Substance-is-what-subsists-independently-of-what-is-the-case.">
 <p>
Bits do not know anything about "reality".
</p>
</div>
</li>

 <li> <a id="2.025-It-is-form-and-content."></a> <a href="#2.025-It-is-form-and-content.">2.025 It is form and content.</a> <br></br> <div class="outline-text-5" id="text-2.025-It-is-form-and-content.">
 <p>
So… bits are the only thing that really exists.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.0251-Space,-time,-and-colour-(being-coloured)-are-forms-of-objects."></a> <a href="#2.0251-Space,-time,-and-colour-(being-coloured)-are-forms-of-objects.">2.0251 Space, time, and colour (being coloured) are forms of objects.</a> <br></br> <div class="outline-text-6" id="text-2.0251-Space,-time,-and-colour-(being-coloured)-are-forms-of-objects.">
 <p>
Or a concrete juxtaposition of bit values.
</p>
</div>
</li>
</ol></li>

 <li> <a id="2.026-There-must-be-objects,-if-the-world-is-to-have-an-unalterable-form."></a> <a href="#2.026-There-must-be-objects,-if-the-world-is-to-have-an-unalterable-form."> <span class="todo TODO">TODO</span> 2.026 There must be objects, if the world is to have an unalterable form.</a> <br></br> <div class="outline-text-5" id="text-2.026-There-must-be-objects,-if-the-world-is-to-have-an-unalterable-form.">
 <p>
I do not understand.
Well, let us assume that we can partition the input into "objects".
Then, unless we can re-partition the input, the objects keep being objects.
</p>
</div>
</li>

 <li> <a id="2.027-Objects,-the-unalterable,-and-the-subsistent-are-one-and-the-same."></a> <a href="#2.027-Objects,-the-unalterable,-and-the-subsistent-are-one-and-the-same.">2.027 Objects, the unalterable, and the subsistent are one and the same.</a> <br></br> <div class="outline-text-5" id="text-2.027-Objects,-the-unalterable,-and-the-subsistent-are-one-and-the-same.">
 <p>
Like, the immutable input string.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.0271-Objects-are-what-is-unalterable-and-subsistent;-their-configuration-is-what-is-changing-and-unstable."></a> <a href="#2.0271-Objects-are-what-is-unalterable-and-subsistent;-their-configuration-is-what-is-changing-and-unstable.">2.0271 Objects are what is unalterable and subsistent; their configuration is what is changing and unstable.</a> <br></br> <div class="outline-text-6" id="text-2.0271-Objects-are-what-is-unalterable-and-subsistent;-their-configuration-is-what-is-changing-and-unstable.">
 <p>
Seems naturally following from the above.
</p>
</div>
</li>

 <li> <a id="2.0272-The-configuration-of-objects-produces-states-of-affairs."></a> <a href="#2.0272-The-configuration-of-objects-produces-states-of-affairs.">2.0272 The configuration of objects produces states of affairs.</a> <br></br> <div class="outline-text-6" id="text-2.0272-The-configuration-of-objects-produces-states-of-affairs.">
 <p>
That is input.
</p>
</div>
</li>
</ol></li>

</div>

 <div id="outline-container-2.03-In-a-state-of-affairs-objects-fit-into-one-another-like-the-links-of-a-chain." class="outline-4">
 <h4 id="2.03-In-a-state-of-affairs-objects-fit-into-one-another-like-the-links-of-a-chain."> <span class="section-number-4">2.0.3.</span>  <a href="#2.03-In-a-state-of-affairs-objects-fit-into-one-another-like-the-links-of-a-chain."> <span class="todo TODO">TODO</span> 2.03 In a state of affairs objects fit into one another like the links of a chain.</a></h4>
 <div class="outline-text-4" id="text-2.03-In-a-state-of-affairs-objects-fit-into-one-another-like-the-links-of-a-chain.">
 <p>
I do not understand.
Does it mean that the input is sequential?
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.031-In-a-state-of-affairs-objects-stand-in-a-determinate-relation-to-one-another."></a> <a href="#2.031-In-a-state-of-affairs-objects-stand-in-a-determinate-relation-to-one-another.">2.031 In a state of affairs objects stand in a determinate relation to one another.</a> <br></br> <div class="outline-text-5" id="text-2.031-In-a-state-of-affairs-objects-stand-in-a-determinate-relation-to-one-another.">
 <p>
Again, if you partition the input into arguments, their order is the only thing that defines which one is which, because otherwise they are just bits.
</p>
</div>
</li>

 <li> <a id="2.032-The-determinate-way-in-which-objects-are-connected-in-a-state-of-affairs-is-the-structure-of-the-state-of-affairs."></a> <a href="#2.032-The-determinate-way-in-which-objects-are-connected-in-a-state-of-affairs-is-the-structure-of-the-state-of-affairs.">2.032 The determinate way in which objects are connected in a state of affairs is the structure of the state of affairs.</a> <br></br> <div class="outline-text-5" id="text-2.032-The-determinate-way-in-which-objects-are-connected-in-a-state-of-affairs-is-the-structure-of-the-state-of-affairs.">
 <p>
That is "a function prototype", isn't it?
</p>
</div>
</li>

 <li> <a id="2.033-Form-is-the-possibility-of-structure."></a> <a href="#2.033-Form-is-the-possibility-of-structure."> <span class="todo TODO">TODO</span> 2.033 Form is the possibility of structure.</a> <br></br> <div class="outline-text-5" id="text-2.033-Form-is-the-possibility-of-structure.">
 <p>
Unclear.
</p>
</div>
</li>

 <li> <a id="2.034-The-structure-of-a-fact-consists-of-the-structures-of-states-of-affairs."></a> <a href="#2.034-The-structure-of-a-fact-consists-of-the-structures-of-states-of-affairs.">2.034 The structure of a fact consists of the structures of states of affairs.</a> <br></br> <div class="outline-text-5" id="text-2.034-The-structure-of-a-fact-consists-of-the-structures-of-states-of-affairs.">
 <p>
I think that by a "fact" he means "what is true".
A "structure of truth".
It is a bit hard to explain.
</p>

 <p>
Perhaps we can see this as saying: the world is the evolution of the memory.
Things that logic (or machine) can compute at the same time, will be in the memory.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-2.04-The-totality-of-existing-states-of-affairs-is-the-world." class="outline-4">
 <h4 id="2.04-The-totality-of-existing-states-of-affairs-is-the-world."> <span class="section-number-4">2.0.4.</span>  <a href="#2.04-The-totality-of-existing-states-of-affairs-is-the-world.">2.04 The totality of existing states of affairs is the world.</a></h4>
 <div class="outline-text-4" id="text-2.04-The-totality-of-existing-states-of-affairs-is-the-world.">
 <p>
Again, we only have the input as the thing that provides knowledge.
</p>
</div>
</div>

 <div id="outline-container-2.05-The-totality-of-existing-states-of-affairs-also-determines-which-states-of-affairs-do-not-exist." class="outline-4">
 <h4 id="2.05-The-totality-of-existing-states-of-affairs-also-determines-which-states-of-affairs-do-not-exist."> <span class="section-number-4">2.0.5.</span>  <a href="#2.05-The-totality-of-existing-states-of-affairs-also-determines-which-states-of-affairs-do-not-exist.">2.05 The totality of existing states of affairs also determines which states of affairs do not exist.</a></h4>
 <div class="outline-text-4" id="text-2.05-The-totality-of-existing-states-of-affairs-also-determines-which-states-of-affairs-do-not-exist.">
 <p>
Or which inputs are prohibited.
</p>
</div>
</div>

 <div id="outline-container-2.06-The-existence-and-non-existence-of-states-of-affairs-is-reality.-(We-also-call-the-existence-of-states-of-affairs-a-positive-fact,-and-their-non-existence-a-negative-fact.)" class="outline-4">
 <h4 id="2.06-The-existence-and-non-existence-of-states-of-affairs-is-reality.-(We-also-call-the-existence-of-states-of-affairs-a-positive-fact,-and-their-non-existence-a-negative-fact.)"> <span class="section-number-4">2.0.6.</span>  <a href="#2.06-The-existence-and-non-existence-of-states-of-affairs-is-reality.-(We-also-call-the-existence-of-states-of-affairs-a-positive-fact,-and-their-non-existence-a-negative-fact.)"> <span class="todo TODO">TODO</span> 2.06 The existence and non-existence of states of affairs is reality. (We also call the existence of states of affairs a positive fact, and their non-existence a negative fact.)</a></h4>
 <div class="outline-text-4" id="text-2.06-The-existence-and-non-existence-of-states-of-affairs-is-reality.-(We-also-call-the-existence-of-states-of-affairs-a-positive-fact,-and-their-non-existence-a-negative-fact.)">
 <p>
We can compute that the input we are given is meaningless or contradictory.
This is our "negative fact".
Or, we can infer that a certain situation can never possibly occur.
</p>
</div>
</div>

 <div id="outline-container-2.061-States-of-affairs-are-independent-of-one-another." class="outline-4">
 <h4 id="2.061-States-of-affairs-are-independent-of-one-another."> <span class="section-number-4">2.0.7.</span>  <a href="#2.061-States-of-affairs-are-independent-of-one-another.">2.061 States of affairs are independent of one another.</a></h4>
 <div class="outline-text-4" id="text-2.061-States-of-affairs-are-independent-of-one-another.">
 <p>
Because they represent different, mutually exclusive, machine states.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.062-From-the-existence-or-non-existence-of-one-state-of-affairs-it-is-impossible-to-infer-the-existence-or-nonexistence-of-another."></a> <a href="#2.062-From-the-existence-or-non-existence-of-one-state-of-affairs-it-is-impossible-to-infer-the-existence-or-nonexistence-of-another.">2.062 From the existence or non-existence of one state of affairs it is impossible to infer the existence or nonexistence of another.</a> <br></br> <div class="outline-text-5" id="text-2.062-From-the-existence-or-non-existence-of-one-state-of-affairs-it-is-impossible-to-infer-the-existence-or-nonexistence-of-another.">
 <p>
Because they are  <span class="underline">inputs</span>, right?
</p>
</div>
</li>

 <li> <a id="2.063-The-sum-total-of-reality-is-the-world."></a> <a href="#2.063-The-sum-total-of-reality-is-the-world.">2.063 The sum-total of reality is the world.</a> <br></br> <div class="outline-text-5" id="text-2.063-The-sum-total-of-reality-is-the-world.">
 <p>
Or, rather, everything that is computable?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-2.1-We-picture-facts-to-ourselves." class="outline-3">
 <h3 id="2.1-We-picture-facts-to-ourselves."> <span class="section-number-3">2.1.</span>  <a href="#2.1-We-picture-facts-to-ourselves.">2.1 We picture facts to ourselves.</a></h3>
 <div class="outline-text-3" id="text-2.1-We-picture-facts-to-ourselves.">
 <p>
Isn't that again, that all logic needs an interpreter?
</p>
</div>

 <div id="outline-container-2.11-A-picture-presents-a-situation-in-logical-space,-the-existence-and-non-existence-of-states-of-affairs." class="outline-4">
 <h4 id="2.11-A-picture-presents-a-situation-in-logical-space,-the-existence-and-non-existence-of-states-of-affairs."> <span class="section-number-4">2.1.1.</span>  <a href="#2.11-A-picture-presents-a-situation-in-logical-space,-the-existence-and-non-existence-of-states-of-affairs.">2.11 A picture presents a situation in logical space, the existence and non-existence of states of affairs.</a></h4>
 <div class="outline-text-4" id="text-2.11-A-picture-presents-a-situation-in-logical-space,-the-existence-and-non-existence-of-states-of-affairs.">
 <p>
Is that a "state of memory" again?
</p>
</div>
</div>

 <div id="outline-container-2.12-A-picture-is-a-model-of-reality." class="outline-4">
 <h4 id="2.12-A-picture-is-a-model-of-reality."> <span class="section-number-4">2.1.2.</span>  <a href="#2.12-A-picture-is-a-model-of-reality.">2.12 A picture is a model of reality.</a></h4>
 <div class="outline-text-4" id="text-2.12-A-picture-is-a-model-of-reality.">
 <p>
That's just it?
What am I missing here?
</p>
</div>
</div>

 <div id="outline-container-2.13-In-a-picture-objects-have-the-elements-of-the-picture-corresponding-to-them." class="outline-4">
 <h4 id="2.13-In-a-picture-objects-have-the-elements-of-the-picture-corresponding-to-them."> <span class="section-number-4">2.1.3.</span>  <a href="#2.13-In-a-picture-objects-have-the-elements-of-the-picture-corresponding-to-them.">2.13 In a picture objects have the elements of the picture corresponding to them.</a></h4>
 <div class="outline-text-4" id="text-2.13-In-a-picture-objects-have-the-elements-of-the-picture-corresponding-to-them.">
 <p>
This seems to be, again about a mapping between reality and computing.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.131-In-a-picture-the-elements-of-the-picture-are-the-representatives-of-objects."></a> <a href="#2.131-In-a-picture-the-elements-of-the-picture-are-the-representatives-of-objects.">2.131 In a picture the elements of the picture are the representatives of objects.</a> <br></br> <div class="outline-text-5" id="text-2.131-In-a-picture-the-elements-of-the-picture-are-the-representatives-of-objects.">
 <p>
So, the "picture" is expected to me a representation of the "form"?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-2.14-What-constitutes-a-picture-is-that-its-elements-are-related-to-one-another-in-a-determinate-way." class="outline-4">
 <h4 id="2.14-What-constitutes-a-picture-is-that-its-elements-are-related-to-one-another-in-a-determinate-way."> <span class="section-number-4">2.1.4.</span>  <a href="#2.14-What-constitutes-a-picture-is-that-its-elements-are-related-to-one-another-in-a-determinate-way.">2.14 What constitutes a picture is that its elements are related to one another in a determinate way.</a></h4>
 <div class="outline-text-4" id="text-2.14-What-constitutes-a-picture-is-that-its-elements-are-related-to-one-another-in-a-determinate-way.">
 <p>
Just like the objects to the "state of affairs"?
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.141-A-picture-is-a-fact."></a> <a href="#2.141-A-picture-is-a-fact.">2.141 A picture is a fact.</a> <br></br> <div class="outline-text-5" id="text-2.141-A-picture-is-a-fact.">
 <p>
Is the sense that we imagine it?
Or in a sense that there is nothing beyond what we imagine?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-2.15-The-fact-that-the-elements-of-a-picture-are-related-to-one-another-in-a-determinate-way-represents-that-things-are-related-to-one-another-in-the-same-way.-Let-us-call-this-connexion-of-its-elements-the-structure-of-the-picture,-and-let-us-call-the-possibility-of-this-structure-the-pictorial-form-of-the-picture." class="outline-4">
 <h4 id="2.15-The-fact-that-the-elements-of-a-picture-are-related-to-one-another-in-a-determinate-way-represents-that-things-are-related-to-one-another-in-the-same-way.-Let-us-call-this-connexion-of-its-elements-the-structure-of-the-picture,-and-let-us-call-the-possibility-of-this-structure-the-pictorial-form-of-the-picture."> <span class="section-number-4">2.1.5.</span>  <a href="#2.15-The-fact-that-the-elements-of-a-picture-are-related-to-one-another-in-a-determinate-way-represents-that-things-are-related-to-one-another-in-the-same-way.-Let-us-call-this-connexion-of-its-elements-the-structure-of-the-picture,-and-let-us-call-the-possibility-of-this-structure-the-pictorial-form-of-the-picture."> <span class="todo TODO">TODO</span> 2.15 The fact that the elements of a picture are related to one another in a determinate way represents that things are related to one another in the same way. Let us call this connexion of its elements the structure of the picture, and let us call the possibility of this structure the pictorial form of the picture.</a></h4>
 <div class="outline-text-4" id="text-2.15-The-fact-that-the-elements-of-a-picture-are-related-to-one-another-in-a-determinate-way-represents-that-things-are-related-to-one-another-in-the-same-way.-Let-us-call-this-connexion-of-its-elements-the-structure-of-the-picture,-and-let-us-call-the-possibility-of-this-structure-the-pictorial-form-of-the-picture.">
 <p>
Did he actually mean a "pictorial state of the state of affairs"?
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.151-Pictorial-form-is-the-possibility-that-things-are-related-to-one-another-in-the-same-way-as-the-elements-of-the-picture."></a> <a href="#2.151-Pictorial-form-is-the-possibility-that-things-are-related-to-one-another-in-the-same-way-as-the-elements-of-the-picture.">2.151 Pictorial form is the possibility that things are related to one another in the same way as the elements of the picture.</a> <br></br> <div class="outline-text-5" id="text-2.151-Pictorial-form-is-the-possibility-that-things-are-related-to-one-another-in-the-same-way-as-the-elements-of-the-picture.">
 <p>
The word "possibility" probably means that the picture is not really a "correct" representation.
Here we would, likely, have to throw a bridge to statistics.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.1511-That-is-how-a-picture-is-attached-to-reality;-it-reaches-right-out-to-it."></a> <a href="#2.1511-That-is-how-a-picture-is-attached-to-reality;-it-reaches-right-out-to-it."> <span class="todo TODO">TODO</span> 2.1511 That is how a picture is attached to reality; it reaches right out to it.</a> <br></br> <div class="outline-text-6" id="text-2.1511-That-is-how-a-picture-is-attached-to-reality;-it-reaches-right-out-to-it.">
 <p>
Totally obscure.
</p>
</div>
</li>

 <li> <a id="2.1512-It-is-laid-against-reality-like-a-measure."></a> <a href="#2.1512-It-is-laid-against-reality-like-a-measure.">2.1512 It is laid against reality like a measure.</a> <br></br> <div class="outline-text-6" id="text-2.1512-It-is-laid-against-reality-like-a-measure.">
 <p>
I guess, a very crude measure.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.15121-Only-the-end-points-of-the-graduating-lines-actually-touch-the-object-that-is-to-be-measured."></a> <a href="#2.15121-Only-the-end-points-of-the-graduating-lines-actually-touch-the-object-that-is-to-be-measured.">2.15121 Only the end-points of the graduating lines actually touch the object that is to be measured.</a> <br></br> <div class="outline-text-7" id="text-2.15121-Only-the-end-points-of-the-graduating-lines-actually-touch-the-object-that-is-to-be-measured.">
 <p>
I guess, this, again, speaks about the non-ideality of the representation.
</p>
</div>
</li>
</ol></li>

 <li> <a id="2.1513-So-a-picture,-conceived-in-this-way,-also-includes-the-pictorial-relationship,-which-makes-it-into-a-picture."></a> <a href="#2.1513-So-a-picture,-conceived-in-this-way,-also-includes-the-pictorial-relationship,-which-makes-it-into-a-picture.">2.1513 So a picture, conceived in this way, also includes the pictorial relationship, which makes it into a picture.</a> <br></br> <div class="outline-text-6" id="text-2.1513-So-a-picture,-conceived-in-this-way,-also-includes-the-pictorial-relationship,-which-makes-it-into-a-picture.">
 <p>
Seems to mean, again, that we have to, somehow, incorporate the a-priori knowledge into our program already?
A bit unclear.
</p>
</div>
</li>

 <li> <a id="2.1514-The-pictorial-relationship-consists-of-the-correlations-of-the-picture%E2%80%99s-elements-with-things."></a> <a href="#2.1514-The-pictorial-relationship-consists-of-the-correlations-of-the-picture%E2%80%99s-elements-with-things.">2.1514 The pictorial relationship consists of the correlations of the picture’s elements with things.</a> <br></br> <div class="outline-text-6" id="text-2.1514-The-pictorial-relationship-consists-of-the-correlations-of-the-picture%E2%80%99s-elements-with-things.">
 <p>
It seems that it is really hard to specify this "pictorial relationship"?
Hm…
</p>
</div>
</li>

 <li> <a id="2.1515-These-correlations-are,-as-it-were,-the-feelers-of-the-picture%E2%80%99s-elements,-with-which-the-picture-touches-reality."></a> <a href="#2.1515-These-correlations-are,-as-it-were,-the-feelers-of-the-picture%E2%80%99s-elements,-with-which-the-picture-touches-reality.">2.1515 These correlations are, as it were, the feelers of the picture’s elements, with which the picture touches reality.</a> <br></br> <div class="outline-text-6" id="text-2.1515-These-correlations-are,-as-it-were,-the-feelers-of-the-picture%E2%80%99s-elements,-with-which-the-picture-touches-reality.">
 <p>
Or, maybe, he is actually intending it the opposite way?
The "picture" is what is real, and facts, things and objects are logical constructions about pictures?
(Which in turn represent the world.)
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-2.16-If-a-fact-is-to-be-a-picture,-it-must-have-something-in-common-with-what-it-depicts." class="outline-4">
 <h4 id="2.16-If-a-fact-is-to-be-a-picture,-it-must-have-something-in-common-with-what-it-depicts."> <span class="section-number-4">2.1.6.</span>  <a href="#2.16-If-a-fact-is-to-be-a-picture,-it-must-have-something-in-common-with-what-it-depicts.">2.16 If a fact is to be a picture, it must have something in common with what it depicts.</a></h4>
 <div class="outline-text-4" id="text-2.16-If-a-fact-is-to-be-a-picture,-it-must-have-something-in-common-with-what-it-depicts.">
 <p>
What is "it" here?
A picture or a fact?
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.161-There-must-be-something-identical-in-a-picture-and-what-it-depicts,-to-enable-the-one-to-be-a-picture-of-the-other-at-all."></a> <a href="#2.161-There-must-be-something-identical-in-a-picture-and-what-it-depicts,-to-enable-the-one-to-be-a-picture-of-the-other-at-all.">2.161 There must be something identical in a picture and what it depicts, to enable the one to be a picture of the other at all.</a> <br></br> <div class="outline-text-5" id="text-2.161-There-must-be-something-identical-in-a-picture-and-what-it-depicts,-to-enable-the-one-to-be-a-picture-of-the-other-at-all.">
 <p>
Seems, again to stress that the representation is non-ideal.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-2.17-What-a-picture-must-have-in-common-with-reality,-in-order-to-be-able-to-depict-it-%E2%80%94correctly-or-incorrectly%E2%80%94-in-the-way-it-does,-is-its-pictorial-form." class="outline-4">
 <h4 id="2.17-What-a-picture-must-have-in-common-with-reality,-in-order-to-be-able-to-depict-it-%E2%80%94correctly-or-incorrectly%E2%80%94-in-the-way-it-does,-is-its-pictorial-form."> <span class="section-number-4">2.1.7.</span>  <a href="#2.17-What-a-picture-must-have-in-common-with-reality,-in-order-to-be-able-to-depict-it-%E2%80%94correctly-or-incorrectly%E2%80%94-in-the-way-it-does,-is-its-pictorial-form.">2.17 What a picture must have in common with reality, in order to be able to depict it —correctly or incorrectly— in the way it does, is its pictorial form.</a></h4>
 <div class="outline-text-4" id="text-2.17-What-a-picture-must-have-in-common-with-reality,-in-order-to-be-able-to-depict-it-%E2%80%94correctly-or-incorrectly%E2%80%94-in-the-way-it-does,-is-its-pictorial-form.">
 <p>
All, right.
So, there is what we would have called a "canonical pictorial form" of reality, that represents it exhaustively.
And "our picture", non-ideal, must have the same skeleton as the "canonical picture".
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.171-A-picture-can-depict-any-reality-whose-form-it-has.-A-spatial-picture-can-depict-anything-spatial,-a-coloured-one-anything-coloured,-etc."></a> <a href="#2.171-A-picture-can-depict-any-reality-whose-form-it-has.-A-spatial-picture-can-depict-anything-spatial,-a-coloured-one-anything-coloured,-etc.">2.171 A picture can depict any reality whose form it has. A spatial picture can depict anything spatial, a coloured one anything coloured, etc.</a> <br></br> <div class="outline-text-5" id="text-2.171-A-picture-can-depict-any-reality-whose-form-it-has.-A-spatial-picture-can-depict-anything-spatial,-a-coloured-one-anything-coloured,-etc.">
 <p>
Perhaps I was completely wrong about the previous point.
It seems we are speaking again about the types and data structures.
</p>
</div>
</li>

 <li> <a id="2.172-A-picture-cannot,-however,-depict-its-pictorial-form:-it-displays-it."></a> <a href="#2.172-A-picture-cannot,-however,-depict-its-pictorial-form:-it-displays-it.">2.172 A picture cannot, however, depict its pictorial form: it displays it.</a> <br></br> <div class="outline-text-5" id="text-2.172-A-picture-cannot,-however,-depict-its-pictorial-form:-it-displays-it.">
 <p>
Like, this sounds like an "area of applicability", "area of effect", or "domain".
A picture, indeed, cannot display "a picture".
</p>
</div>
</li>

 <li> <a id="2.173-A-picture-represents-its-subject-from-a-position-outside-it.-(Its-standpoint-is-its-representational-form.)-That-is-why-a-picture-represents-its-subject-correctly-or-incorrectly."></a> <a href="#2.173-A-picture-represents-its-subject-from-a-position-outside-it.-(Its-standpoint-is-its-representational-form.)-That-is-why-a-picture-represents-its-subject-correctly-or-incorrectly.">2.173 A picture represents its subject from a position outside it. (Its standpoint is its representational form.) That is why a picture represents its subject correctly or incorrectly.</a> <br></br> <div class="outline-text-5" id="text-2.173-A-picture-represents-its-subject-from-a-position-outside-it.-(Its-standpoint-is-its-representational-form.)-That-is-why-a-picture-represents-its-subject-correctly-or-incorrectly.">
 <p>
The "representational form" here seems to be "the way representation is designed".
For example, a picture may consist of a grid of pixels.
</p>

 <p>
Correctness and incorrectness here seem under-specified.
There may be pictures that cannot be represented by a grid of pixels.
</p>

 <p>
On the other hand, a potentially valid representation may be "just wrong".
For example, if an apple is represented as an image of a plum.
</p>
</div>
</li>

 <li> <a id="2.174-A-picture-cannot,-however,-place-itself-outside-its-representational-form."></a> <a href="#2.174-A-picture-cannot,-however,-place-itself-outside-its-representational-form.">2.174 A picture cannot, however, place itself outside its representational form.</a> <br></br> <div class="outline-text-5" id="text-2.174-A-picture-cannot,-however,-place-itself-outside-its-representational-form.">
 <p>
A grid of pixels cannot represent something that is not representable as a grid of pixels.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-2.18-What-any-picture,-of-whatever-form,-must-have-in-common-with-reality,-in-order-to-be-able-to-depict-it-%E2%80%94correctly-or-incorrectly%E2%80%94-in-any-way-at-all,-is-logical-form,-i.e.-the-form-of-reality." class="outline-4">
 <h4 id="2.18-What-any-picture,-of-whatever-form,-must-have-in-common-with-reality,-in-order-to-be-able-to-depict-it-%E2%80%94correctly-or-incorrectly%E2%80%94-in-any-way-at-all,-is-logical-form,-i.e.-the-form-of-reality."> <span class="section-number-4">2.1.8.</span>  <a href="#2.18-What-any-picture,-of-whatever-form,-must-have-in-common-with-reality,-in-order-to-be-able-to-depict-it-%E2%80%94correctly-or-incorrectly%E2%80%94-in-any-way-at-all,-is-logical-form,-i.e.-the-form-of-reality.">2.18 What any picture, of whatever form, must have in common with reality, in order to be able to depict it —correctly or incorrectly— in any way at all, is logical form, i.e. the form of reality.</a></h4>
 <div class="outline-text-4" id="text-2.18-What-any-picture,-of-whatever-form,-must-have-in-common-with-reality,-in-order-to-be-able-to-depict-it-%E2%80%94correctly-or-incorrectly%E2%80%94-in-any-way-at-all,-is-logical-form,-i.e.-the-form-of-reality.">
 <p>
So… this… "grid of pixels" is, a "logical form".
Perhaps, since you can express pixels as bits.
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.181-A-picture-whose-pictorial-form-is-logical-form-is-called-a-logical-picture."></a> <a href="#2.181-A-picture-whose-pictorial-form-is-logical-form-is-called-a-logical-picture.">2.181 A picture whose pictorial form is logical form is called a logical picture.</a> <br></br> <div class="outline-text-5" id="text-2.181-A-picture-whose-pictorial-form-is-logical-form-is-called-a-logical-picture.">
 <p>
Seems a tautological statement, or… like… the thing that is in essence a "universal Turing machine".
</p>
</div>
</li>

 <li> <a id="2.182-Every-picture-is-at-the-same-time-a-logical-one.-(On-the-other-hand,-not-every-picture-is,-for-example,-a-spatial-one.)"></a> <a href="#2.182-Every-picture-is-at-the-same-time-a-logical-one.-(On-the-other-hand,-not-every-picture-is,-for-example,-a-spatial-one.)">2.182 Every picture is at the same time a logical one. (On the other hand, not every picture is, for example, a spatial one.)</a> <br></br> <div class="outline-text-5" id="text-2.182-Every-picture-is-at-the-same-time-a-logical-one.-(On-the-other-hand,-not-every-picture-is,-for-example,-a-spatial-one.)">
 <p>
Yeah, since we can eventually interpret everything as bits and predicates.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-2.19-Logical-pictures-can-depict-the-world." class="outline-4">
 <h4 id="2.19-Logical-pictures-can-depict-the-world."> <span class="section-number-4">2.1.9.</span>  <a href="#2.19-Logical-pictures-can-depict-the-world.">2.19 Logical pictures can depict the world.</a></h4>
 <div class="outline-text-4" id="text-2.19-Logical-pictures-can-depict-the-world.">
 <p>
Really?
Well, but how well?
</p>
</div>
</div>
</div>

 <div id="outline-container-2.2-A-picture-has-logico-pictorial-form-in-common-with-what-it-depicts." class="outline-3">
 <h3 id="2.2-A-picture-has-logico-pictorial-form-in-common-with-what-it-depicts."> <span class="section-number-3">2.2.</span>  <a href="#2.2-A-picture-has-logico-pictorial-form-in-common-with-what-it-depicts.">2.2 A picture has logico-pictorial form in common with what it depicts.</a></h3>
 <div class="outline-text-3" id="text-2.2-A-picture-has-logico-pictorial-form-in-common-with-what-it-depicts.">
 <p>
I guess, bits should be similar to bits.
But what about different data structures?
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.201-A-picture-depicts-reality-by-representing-a-possibility-of-existence-and-non-existence-of-states-of-affairs."></a> <a href="#2.201-A-picture-depicts-reality-by-representing-a-possibility-of-existence-and-non-existence-of-states-of-affairs.">2.201 A picture depicts reality by representing a possibility of existence and non-existence of states of affairs.</a> <br></br> <div class="outline-text-5" id="text-2.201-A-picture-depicts-reality-by-representing-a-possibility-of-existence-and-non-existence-of-states-of-affairs.">
 <p>
And the existence and non-existence are the primary question of logic.
Basically, everything can be reduced to logic.
</p>
</div>
</li>

 <li> <a id="2.202-A-picture-represents-a-possible-situation-in-logical-space."></a> <a href="#2.202-A-picture-represents-a-possible-situation-in-logical-space.">2.202 A picture represents a possible situation in logical space.</a> <br></br> <div class="outline-text-5" id="text-2.202-A-picture-represents-a-possible-situation-in-logical-space.">
 <p>
A configuration of bits.
</p>
</div>
</li>

 <li> <a id="2.203-A-picture-contains-the-possibility-of-the-situation-that-it-represents."></a> <a href="#2.203-A-picture-contains-the-possibility-of-the-situation-that-it-represents.">2.203 A picture contains the possibility of the situation that it represents.</a> <br></br> <div class="outline-text-5" id="text-2.203-A-picture-contains-the-possibility-of-the-situation-that-it-represents.">
 <p>
Since it is given.
</p>
</div>
</li>
</ol> <div id="outline-container-2.21-A-picture-agrees-with-reality-or-fails-to-agree;-it-is-correct-or-incorrect,-true-or-false." class="outline-4">
 <h4 id="2.21-A-picture-agrees-with-reality-or-fails-to-agree;-it-is-correct-or-incorrect,-true-or-false."> <span class="section-number-4">2.2.1.</span>  <a href="#2.21-A-picture-agrees-with-reality-or-fails-to-agree;-it-is-correct-or-incorrect,-true-or-false.">2.21 A picture agrees with reality or fails to agree; it is correct or incorrect, true or false.</a></h4>
 <div class="outline-text-4" id="text-2.21-A-picture-agrees-with-reality-or-fails-to-agree;-it-is-correct-or-incorrect,-true-or-false.">
 <p>
What about imprecise representations?
</p>
</div>
</div>

 <div id="outline-container-2.22-What-a-picture-represents-it-represents-independently-of-its-truth-or-falsity,-by-means-of-its-pictorial-form." class="outline-4">
 <h4 id="2.22-What-a-picture-represents-it-represents-independently-of-its-truth-or-falsity,-by-means-of-its-pictorial-form."> <span class="section-number-4">2.2.2.</span>  <a href="#2.22-What-a-picture-represents-it-represents-independently-of-its-truth-or-falsity,-by-means-of-its-pictorial-form.">2.22 What a picture represents it represents independently of its truth or falsity, by means of its pictorial form.</a></h4>
 <div class="outline-text-4" id="text-2.22-What-a-picture-represents-it-represents-independently-of-its-truth-or-falsity,-by-means-of-its-pictorial-form.">
 <p>
Does it mean, that we can, basically, draw pictures of imaginary things?
</p>
</div>

 <ol class="org-ol"> <li> <a id="2.221-What-a-picture-represents-is-its-sense."></a> <a href="#2.221-What-a-picture-represents-is-its-sense."> <span class="todo TODO">TODO</span> 2.221 What a picture represents is its sense.</a> <br></br> <div class="outline-text-5" id="text-2.221-What-a-picture-represents-is-its-sense.">
 <p>
What is "sense"?
This seems one of the "leaves" that deals with inexplicable.
</p>
</div>
</li>

 <li> <a id="2.222-The-agreement-or-disagreement-of-its-sense-with-reality-constitutes-its-truth-or-falsity."></a> <a href="#2.222-The-agreement-or-disagreement-of-its-sense-with-reality-constitutes-its-truth-or-falsity.">2.222 The agreement or disagreement of its sense with reality constitutes its truth or falsity.</a> <br></br> <div class="outline-text-5" id="text-2.222-The-agreement-or-disagreement-of-its-sense-with-reality-constitutes-its-truth-or-falsity.">
 <p>
Em… is it like, we are drawing something that is not correctly representing reality…
And if it represents it incorrectly, we say that it is false?
</p>
</div>
</li>

 <li> <a id="2.223-In-order-to-tell-whether-a-picture-is-true-or-false-we-must-compare-it-with-reality."></a> <a href="#2.223-In-order-to-tell-whether-a-picture-is-true-or-false-we-must-compare-it-with-reality.">2.223 In order to tell whether a picture is true or false we must compare it with reality.</a> <br></br> <div class="outline-text-5" id="text-2.223-In-order-to-tell-whether-a-picture-is-true-or-false-we-must-compare-it-with-reality.">
 <p>
Great! How?
</p>
</div>
</li>

 <li> <a id="2.224-It-is-impossible-to-tell-from-the-picture-alone-whether-it-is-true-or-false."></a> <a href="#2.224-It-is-impossible-to-tell-from-the-picture-alone-whether-it-is-true-or-false.">2.224 It is impossible to tell from the picture alone whether it is true or false.</a> <br></br> <div class="outline-text-5" id="text-2.224-It-is-impossible-to-tell-from-the-picture-alone-whether-it-is-true-or-false.">
 <p>
Sure, you can generate a configuration of bits at random.
</p>
</div>
</li>

 <li> <a id="2.225-There-are-no-pictures-that-are-true-a-priori."></a> <a href="#2.225-There-are-no-pictures-that-are-true-a-priori.">2.225 There are no pictures that are true a priori.</a> <br></br> <div class="outline-text-5" id="text-2.225-There-are-no-pictures-that-are-true-a-priori.">
 <p>
Again, because you can generate everything.
</p>
</div>
</li>
</ol></div>
</div>
</section> <section id="outline-container-3-A-logical-picture-of-facts-is-a-thought." class="outline-2"> <h2 id="3-A-logical-picture-of-facts-is-a-thought."> <span class="section-number-2">3.</span>  <a href="#3-A-logical-picture-of-facts-is-a-thought.">3 A logical picture of facts is a thought.</a></h2>
 <div class="outline-text-2" id="text-3-A-logical-picture-of-facts-is-a-thought.">
 <p>
This seems to mean that the only thing that is in order to even get in contact with the facts, we need to picture them in a logical substrate (express in bits).
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.001-%E2%80%98A-state-of-affairs-is-thinkable%E2%80%99:-what-this-means-is-that-we-can-picture-it-to-ourselves."></a> <a href="#3.001-%E2%80%98A-state-of-affairs-is-thinkable%E2%80%99:-what-this-means-is-that-we-can-picture-it-to-ourselves.">3.001 ‘A state of affairs is thinkable’: what this means is that we can picture it to ourselves.</a> <br></br> <div class="outline-text-5" id="text-3.001-%E2%80%98A-state-of-affairs-is-thinkable%E2%80%99:-what-this-means-is-that-we-can-picture-it-to-ourselves.">
 <p>
I think that some states of affairs are not thinkable.
But those that are thinkable, we should be able to express as our internal logical language.
</p>
</div>
</li>
</ol> <div id="outline-container-3.01-The-totality-of-true-thoughts-is-a-picture-of-the-world." class="outline-4">
 <h4 id="3.01-The-totality-of-true-thoughts-is-a-picture-of-the-world."> <span class="section-number-4">3.0.1.</span>  <a href="#3.01-The-totality-of-true-thoughts-is-a-picture-of-the-world.">3.01 The totality of true thoughts is a picture of the world.</a></h4>
 <div class="outline-text-4" id="text-3.01-The-totality-of-true-thoughts-is-a-picture-of-the-world.">
 <p>
Maybe incomplete, right?
</p>
</div>
</div>

 <div id="outline-container-3.02-A-thought-contains-the-possibility-of-the-situation-of-which-it-is-the-thought.-What-is-thinkable-is-possible-too." class="outline-4">
 <h4 id="3.02-A-thought-contains-the-possibility-of-the-situation-of-which-it-is-the-thought.-What-is-thinkable-is-possible-too."> <span class="section-number-4">3.0.2.</span>  <a href="#3.02-A-thought-contains-the-possibility-of-the-situation-of-which-it-is-the-thought.-What-is-thinkable-is-possible-too.">3.02 A thought contains the possibility of the situation of which it is the thought. What is thinkable is possible too.</a></h4>
 <div class="outline-text-4" id="text-3.02-A-thought-contains-the-possibility-of-the-situation-of-which-it-is-the-thought.-What-is-thinkable-is-possible-too.">
 <p>
Seems that the definition of "possible" is strange here.
I guess, the axioms may be strange.
</p>
</div>
</div>

 <div id="outline-container-3.03-Thought-can-never-be-of-anything-illogical,-since,-if-it-were,-we-should-have-to-think-illogically." class="outline-4">
 <h4 id="3.03-Thought-can-never-be-of-anything-illogical,-since,-if-it-were,-we-should-have-to-think-illogically."> <span class="section-number-4">3.0.3.</span>  <a href="#3.03-Thought-can-never-be-of-anything-illogical,-since,-if-it-were,-we-should-have-to-think-illogically.">3.03 Thought can never be of anything illogical, since, if it were, we should have to think illogically.</a></h4>
 <div class="outline-text-4" id="text-3.03-Thought-can-never-be-of-anything-illogical,-since,-if-it-were,-we-should-have-to-think-illogically.">
 <p>
Well, if logic is "the driving force" of thinking, it has to be like this…
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.031-It-used-to-be-said-that-God-could-create-anything-except-what-would-be-contrary-to-the-laws-of-logic.-%E2%80%94-The-truth-is-that-we-could-not-say-what-an-%E2%80%98illogical%E2%80%99-world-would-look-like."></a> <a href="#3.031-It-used-to-be-said-that-God-could-create-anything-except-what-would-be-contrary-to-the-laws-of-logic.-%E2%80%94-The-truth-is-that-we-could-not-say-what-an-%E2%80%98illogical%E2%80%99-world-would-look-like.">3.031 It used to be said that God could create anything except what would be contrary to the laws of logic. — The truth is that we could not say what an ‘illogical’ world would look like.</a> <br></br> <div class="outline-text-5" id="text-3.031-It-used-to-be-said-that-God-could-create-anything-except-what-would-be-contrary-to-the-laws-of-logic.-%E2%80%94-The-truth-is-that-we-could-not-say-what-an-%E2%80%98illogical%E2%80%99-world-would-look-like.">
 <p>
Because, supposedly, a computing brain is driven by logic and cannot transcend it.
</p>
</div>
</li>

 <li> <a id="3.032-It-is-as-impossible-to-represent-in-language-anything-that-%E2%80%98contradicts-logic%E2%80%99-as-it-is-in-geometry-to-represent-by-its-co-ordinates-a-figure-that-contradicts-the-laws-of-space,-or-to-give-the-co-ordinates-of-a-point-that-does-not-exist."></a> <a href="#3.032-It-is-as-impossible-to-represent-in-language-anything-that-%E2%80%98contradicts-logic%E2%80%99-as-it-is-in-geometry-to-represent-by-its-co-ordinates-a-figure-that-contradicts-the-laws-of-space,-or-to-give-the-co-ordinates-of-a-point-that-does-not-exist.">3.032 It is as impossible to represent in language anything that ‘contradicts logic’ as it is in geometry to represent by its co-ordinates a figure that contradicts the laws of space, or to give the co-ordinates of a point that does not exist.</a> <br></br> <div class="outline-text-5" id="text-3.032-It-is-as-impossible-to-represent-in-language-anything-that-%E2%80%98contradicts-logic%E2%80%99-as-it-is-in-geometry-to-represent-by-its-co-ordinates-a-figure-that-contradicts-the-laws-of-space,-or-to-give-the-co-ordinates-of-a-point-that-does-not-exist.">
 <p>
This raises a question whether we can say anything about uncomputable numbers.
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.0321-Though-a-state-of-affairs-that-would-contravene-the-laws-of-physics-can-be-represented-by-us-spatially,-one-that-would-contravene-the-laws-of-geometry-cannot."></a> <a href="#3.0321-Though-a-state-of-affairs-that-would-contravene-the-laws-of-physics-can-be-represented-by-us-spatially,-one-that-would-contravene-the-laws-of-geometry-cannot.">3.0321 Though a state of affairs that would contravene the laws of physics can be represented by us spatially, one that would contravene the laws of geometry cannot.</a> <br></br> <div class="outline-text-6" id="text-3.0321-Though-a-state-of-affairs-that-would-contravene-the-laws-of-physics-can-be-represented-by-us-spatially,-one-that-would-contravene-the-laws-of-geometry-cannot.">
 <p>
That is a "comment", right?
So, "logical" does not necessarily mean "true".
May be false, but still logical.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-3.04-If-a-thought-were-correct-a-priori,-it-would-be-a-thought-whose-possibility-ensured-its-truth." class="outline-4">
 <h4 id="3.04-If-a-thought-were-correct-a-priori,-it-would-be-a-thought-whose-possibility-ensured-its-truth."> <span class="section-number-4">3.0.4.</span>  <a href="#3.04-If-a-thought-were-correct-a-priori,-it-would-be-a-thought-whose-possibility-ensured-its-truth.">3.04 If a thought were correct a priori, it would be a thought whose possibility ensured its truth.</a></h4>
 <div class="outline-text-4" id="text-3.04-If-a-thought-were-correct-a-priori,-it-would-be-a-thought-whose-possibility-ensured-its-truth.">
 <p>
But they are not, aren't they?
On the other hand, perhaps, it could be possible to devise a logical system which would not be able to express false statements?
</p>
</div>
</div>

 <div id="outline-container-3.05-A-priori-knowledge-that-a-thought-was-true-would-be-possible-only-if-its-truth-were-recognizable-from-the-thought-itself-(without-anything-to-compare-it-with)." class="outline-4">
 <h4 id="3.05-A-priori-knowledge-that-a-thought-was-true-would-be-possible-only-if-its-truth-were-recognizable-from-the-thought-itself-(without-anything-to-compare-it-with)."> <span class="section-number-4">3.0.5.</span>  <a href="#3.05-A-priori-knowledge-that-a-thought-was-true-would-be-possible-only-if-its-truth-were-recognizable-from-the-thought-itself-(without-anything-to-compare-it-with).">3.05 A priori knowledge that a thought was true would be possible only if its truth were recognizable from the thought itself (without anything to compare it with).</a></h4>
 <div class="outline-text-4" id="text-3.05-A-priori-knowledge-that-a-thought-was-true-would-be-possible-only-if-its-truth-were-recognizable-from-the-thought-itself-(without-anything-to-compare-it-with).">
 <p>
That's, like, the laws of your logical system?
Or, perhaps, functions without input correspond to "apriori truths"?
</p>
</div>
</div>

 <div id="outline-container-3.1-In-a-proposition-a-thought-finds-an-expression-that-can-be-perceived-by-the-senses." class="outline-3">
 <h3 id="3.1-In-a-proposition-a-thought-finds-an-expression-that-can-be-perceived-by-the-senses."> <span class="section-number-3">3.1.</span>  <a href="#3.1-In-a-proposition-a-thought-finds-an-expression-that-can-be-perceived-by-the-senses.">3.1 In a proposition a thought finds an expression that can be perceived by the senses.</a></h3>
 <div class="outline-text-3" id="text-3.1-In-a-proposition-a-thought-finds-an-expression-that-can-be-perceived-by-the-senses.">
 <p>
A thought is a "logical picture of facts".
Proposition, here, perhaps, means "something that we can compare with the senses".
</p>
</div>

 <div id="outline-container-3.11-We-use-the-perceptible-sign-of-a-proposition-(spoken-or-written,-etc.)-as-a-projection-of-a-possible-situation.-The-method-of-projection-is-to-think-of-the-sense-of-the-proposition." class="outline-4">
 <h4 id="3.11-We-use-the-perceptible-sign-of-a-proposition-(spoken-or-written,-etc.)-as-a-projection-of-a-possible-situation.-The-method-of-projection-is-to-think-of-the-sense-of-the-proposition."> <span class="section-number-4">3.1.1.</span>  <a href="#3.11-We-use-the-perceptible-sign-of-a-proposition-(spoken-or-written,-etc.)-as-a-projection-of-a-possible-situation.-The-method-of-projection-is-to-think-of-the-sense-of-the-proposition.">3.11 We use the perceptible sign of a proposition (spoken or written, etc.) as a projection of a possible situation. The method of projection is to think of the sense of the proposition.</a></h4>
 <div class="outline-text-4" id="text-3.11-We-use-the-perceptible-sign-of-a-proposition-(spoken-or-written,-etc.)-as-a-projection-of-a-possible-situation.-The-method-of-projection-is-to-think-of-the-sense-of-the-proposition.">
 <p>
Apparently, the language of bits (logic) is more general that specific sub-languages that describe measurable things.
We project therefore.
</p>
</div>
</div>

 <div id="outline-container-3.12-I-call-the-sign-with-which-we-express-a-thought-a-propositional-sign.-%E2%80%94-And-a-proposition-is-a-propositional-sign-in-its-projective-relation-to-the-world." class="outline-4">
 <h4 id="3.12-I-call-the-sign-with-which-we-express-a-thought-a-propositional-sign.-%E2%80%94-And-a-proposition-is-a-propositional-sign-in-its-projective-relation-to-the-world."> <span class="section-number-4">3.1.2.</span>  <a href="#3.12-I-call-the-sign-with-which-we-express-a-thought-a-propositional-sign.-%E2%80%94-And-a-proposition-is-a-propositional-sign-in-its-projective-relation-to-the-world.">3.12 I call the sign with which we express a thought a propositional sign. — And a proposition is a propositional sign in its projective relation to the world.</a></h4>
 <div class="outline-text-4" id="text-3.12-I-call-the-sign-with-which-we-express-a-thought-a-propositional-sign.-%E2%80%94-And-a-proposition-is-a-propositional-sign-in-its-projective-relation-to-the-world.">
 <p>
So, we express a proposition, create some configuration of bits, or maybe even an image of the radiant bit grid, and the relation between a thought and this image is "projective relation".
</p>
</div>
</div>

 <div id="outline-container-3.13-A-proposition-includes-all-that-the-projection-includes,-but-not-what-is-projected.-Therefore,-though-what-is-projected-is-not-itself-included,-its-possibility-is.-A-proposition,-therefore,-does-not-actually-contain-its-sense,-but-does-contain-the-possibility-of-expressing-it.-(%E2%80%98The-content-of-a-proposition%E2%80%99-means-the-content-of-a-proposition-that-has-sense.)-A-proposition-contains-the-form,-but-not-the-content,-of-its-sense." class="outline-4">
 <h4 id="3.13-A-proposition-includes-all-that-the-projection-includes,-but-not-what-is-projected.-Therefore,-though-what-is-projected-is-not-itself-included,-its-possibility-is.-A-proposition,-therefore,-does-not-actually-contain-its-sense,-but-does-contain-the-possibility-of-expressing-it.-(%E2%80%98The-content-of-a-proposition%E2%80%99-means-the-content-of-a-proposition-that-has-sense.)-A-proposition-contains-the-form,-but-not-the-content,-of-its-sense."> <span class="section-number-4">3.1.3.</span>  <a href="#3.13-A-proposition-includes-all-that-the-projection-includes,-but-not-what-is-projected.-Therefore,-though-what-is-projected-is-not-itself-included,-its-possibility-is.-A-proposition,-therefore,-does-not-actually-contain-its-sense,-but-does-contain-the-possibility-of-expressing-it.-(%E2%80%98The-content-of-a-proposition%E2%80%99-means-the-content-of-a-proposition-that-has-sense.)-A-proposition-contains-the-form,-but-not-the-content,-of-its-sense.">3.13 A proposition includes all that the projection includes, but not what is projected. Therefore, though what is projected is not itself included, its possibility is. A proposition, therefore, does not actually contain its sense, but does contain the possibility of expressing it. (‘The content of a proposition’ means the content of a proposition that has sense.) A proposition contains the form, but not the content, of its sense.</a></h4>
 <div class="outline-text-4" id="text-3.13-A-proposition-includes-all-that-the-projection-includes,-but-not-what-is-projected.-Therefore,-though-what-is-projected-is-not-itself-included,-its-possibility-is.-A-proposition,-therefore,-does-not-actually-contain-its-sense,-but-does-contain-the-possibility-of-expressing-it.-(%E2%80%98The-content-of-a-proposition%E2%80%99-means-the-content-of-a-proposition-that-has-sense.)-A-proposition-contains-the-form,-but-not-the-content,-of-its-sense.">
 <p>
A proposition is a perceptible projection of a thought.
</p>
</div>
</div>

 <div id="outline-container-3.14-What-constitutes-a-propositional-sign-is-that-in-it-its-elements-(the-words)-stand-in-a-determinate-relation-to-one-another.-A-propositional-sign-is-a-fact." class="outline-4">
 <h4 id="3.14-What-constitutes-a-propositional-sign-is-that-in-it-its-elements-(the-words)-stand-in-a-determinate-relation-to-one-another.-A-propositional-sign-is-a-fact."> <span class="section-number-4">3.1.4.</span>  <a href="#3.14-What-constitutes-a-propositional-sign-is-that-in-it-its-elements-(the-words)-stand-in-a-determinate-relation-to-one-another.-A-propositional-sign-is-a-fact.">3.14 What constitutes a propositional sign is that in it its elements (the words) stand in a determinate relation to one another. A propositional sign is a fact.</a></h4>
 <div class="outline-text-4" id="text-3.14-What-constitutes-a-propositional-sign-is-that-in-it-its-elements-(the-words)-stand-in-a-determinate-relation-to-one-another.-A-propositional-sign-is-a-fact.">
 <p>
Are "words" here real words, or formal combinations of letters?
Are data structures words?
How is a "determinate relation" formalised?
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.141-A-proposition-is-not-a-blend-of-words.-%E2%80%94(Just-as-a-theme-in-music-is-not-a-blend-of-notes.)-A-proposition-is-articulate."></a> <a href="#3.141-A-proposition-is-not-a-blend-of-words.-%E2%80%94(Just-as-a-theme-in-music-is-not-a-blend-of-notes.)-A-proposition-is-articulate."> <span class="todo TODO">TODO</span> 3.141 A proposition is not a blend of words. —(Just as a theme in music is not a blend of notes.) A proposition is articulate.</a> <br></br> <div class="outline-text-5" id="text-3.141-A-proposition-is-not-a-blend-of-words.-%E2%80%94(Just-as-a-theme-in-music-is-not-a-blend-of-notes.)-A-proposition-is-articulate.">
 <p>
How exactly?
Are there rules to this articulation?
</p>
</div>
</li>

 <li> <a id="3.142-Only-facts-can-express-a-sense,-a-set-of-names-cannot."></a> <a href="#3.142-Only-facts-can-express-a-sense,-a-set-of-names-cannot.">3.142 Only facts can express a sense, a set of names cannot.</a> <br></br> <div class="outline-text-5" id="text-3.142-Only-facts-can-express-a-sense,-a-set-of-names-cannot.">
 <p>
I do not understand.
So, there is some substance?
</p>
</div>
</li>

 <li> <a id="3.143-Although-a-propositional-sign-is-a-fact,-this-is-obscured-by-the-usual-form-of-expression-in-writing-or-print.-For-in-a-printed-proposition,-for-example,-no-essential-difference-is-apparent-between-a-propositional-sign-and-a-word.-(That-is-what-made-it-possible-for-Frege-to-call-a-proposition-a-composite-name.)"></a> <a href="#3.143-Although-a-propositional-sign-is-a-fact,-this-is-obscured-by-the-usual-form-of-expression-in-writing-or-print.-For-in-a-printed-proposition,-for-example,-no-essential-difference-is-apparent-between-a-propositional-sign-and-a-word.-(That-is-what-made-it-possible-for-Frege-to-call-a-proposition-a-composite-name.)">3.143 Although a propositional sign is a fact, this is obscured by the usual form of expression in writing or print. For in a printed proposition, for example, no essential difference is apparent between a propositional sign and a word. (That is what made it possible for Frege to call a proposition a composite name.)</a> <br></br> <div class="outline-text-5" id="text-3.143-Although-a-propositional-sign-is-a-fact,-this-is-obscured-by-the-usual-form-of-expression-in-writing-or-print.-For-in-a-printed-proposition,-for-example,-no-essential-difference-is-apparent-between-a-propositional-sign-and-a-word.-(That-is-what-made-it-possible-for-Frege-to-call-a-proposition-a-composite-name.)">
 <p>
So, basically, we express our propositions in a language, that is "physical", and bits are encoded in memory, however, what we actually  <span class="underline">mean</span> are logical propositions.
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.1431-The-essence-of-a-propositional-sign-is-very-clearly-seen-if-we-imagine-one-composed-of-spatial-objects-(such-as--tables,-chairs,-and-books)-instead-of-written-signs.-Then-the-spatial-arrangement-of-these-things-will-express-the-sense-of-the-proposition."></a> <a href="#3.1431-The-essence-of-a-propositional-sign-is-very-clearly-seen-if-we-imagine-one-composed-of-spatial-objects-(such-as--tables,-chairs,-and-books)-instead-of-written-signs.-Then-the-spatial-arrangement-of-these-things-will-express-the-sense-of-the-proposition.">3.1431 The essence of a propositional sign is very clearly seen if we imagine one composed of spatial objects (such as  tables, chairs, and books) instead of written signs. Then the spatial arrangement of these things will express the sense of the proposition.</a> <br></br> <div class="outline-text-6" id="text-3.1431-The-essence-of-a-propositional-sign-is-very-clearly-seen-if-we-imagine-one-composed-of-spatial-objects-(such-as--tables,-chairs,-and-books)-instead-of-written-signs.-Then-the-spatial-arrangement-of-these-things-will-express-the-sense-of-the-proposition.">
 <p>
We would still have to assign a meaning to the objects, right?
</p>
</div>
</li>

 <li> <a id="3.1432-Instead-of,-%E2%80%98The-complex-sign-%E2%80%9CaRb%E2%80%9D-says-that-a-stands-to-b-in-the-relation-R%E2%80%99,-we-ought-to-put,-%E2%80%98That-%E2%80%9Ca%E2%80%9D-stands-to-%E2%80%9Cb%E2%80%9D-in-a-certain-relation-says-that-aRb.%E2%80%99"></a> <a href="#3.1432-Instead-of,-%E2%80%98The-complex-sign-%E2%80%9CaRb%E2%80%9D-says-that-a-stands-to-b-in-the-relation-R%E2%80%99,-we-ought-to-put,-%E2%80%98That-%E2%80%9Ca%E2%80%9D-stands-to-%E2%80%9Cb%E2%80%9D-in-a-certain-relation-says-that-aRb.%E2%80%99">3.1432 Instead of, ‘The complex sign “aRb” says that a stands to b in the relation R’, we ought to put, ‘That “a” stands to “b” in a certain relation says that aRb.’</a> <br></br> <div class="outline-text-6" id="text-3.1432-Instead-of,-%E2%80%98The-complex-sign-%E2%80%9CaRb%E2%80%9D-says-that-a-stands-to-b-in-the-relation-R%E2%80%99,-we-ought-to-put,-%E2%80%98That-%E2%80%9Ca%E2%80%9D-stands-to-%E2%80%9Cb%E2%80%9D-in-a-certain-relation-says-that-aRb.%E2%80%99">
 <p>
Because a proposition is a projection of a fact.
</p>
</div>
</li>
</ol></li>

 <li> <a id="3.144-Situations-can-be-described-but-not-given-names.-(Names-are-like-points;-propositions-like-arrows-%E2%80%94-they-have-sense.)"></a> <a href="#3.144-Situations-can-be-described-but-not-given-names.-(Names-are-like-points;-propositions-like-arrows-%E2%80%94-they-have-sense.)">3.144 Situations can be described but not given names. (Names are like points; propositions like arrows — they have sense.)</a> <br></br> <div class="outline-text-5" id="text-3.144-Situations-can-be-described-but-not-given-names.-(Names-are-like-points;-propositions-like-arrows-%E2%80%94-they-have-sense.)">
 <p>
What are "situations"?
It seems that giving a name to a set is fine.
Why not?
</p>
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-3.2-In-a-proposition-a-thought-can-be-expressed-in-such-a-way-that-elements-of-the-propositional-sign-correspond-to-the-objects-of-the-thought." class="outline-3">
 <h3 id="3.2-In-a-proposition-a-thought-can-be-expressed-in-such-a-way-that-elements-of-the-propositional-sign-correspond-to-the-objects-of-the-thought."> <span class="section-number-3">3.2.</span>  <a href="#3.2-In-a-proposition-a-thought-can-be-expressed-in-such-a-way-that-elements-of-the-propositional-sign-correspond-to-the-objects-of-the-thought.">3.2 In a proposition a thought can be expressed in such a way that elements of the propositional sign correspond to the objects of the thought.</a></h3>
 <div class="outline-text-3" id="text-3.2-In-a-proposition-a-thought-can-be-expressed-in-such-a-way-that-elements-of-the-propositional-sign-correspond-to-the-objects-of-the-thought.">
 <p>
So we are writing this "proposition" to represent a thought (a logical picture of facts) in some way.
With words, I presume.
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.201-I-call-such-elements-%E2%80%98simple-signs%E2%80%99,-and-such-a-proposition-%E2%80%98completely-analysed%E2%80%99."></a> <a href="#3.201-I-call-such-elements-%E2%80%98simple-signs%E2%80%99,-and-such-a-proposition-%E2%80%98completely-analysed%E2%80%99.">3.201 I call such elements ‘simple signs’, and such a proposition ‘completely analysed’.</a> <br></br> <div class="outline-text-5" id="text-3.201-I-call-such-elements-%E2%80%98simple-signs%E2%80%99,-and-such-a-proposition-%E2%80%98completely-analysed%E2%80%99.">
 <p>
If a proposition is properly written, so that "words", or "simple signs" correspond to reality, then is it "completely analysed"?
</p>

 <p>
Or, let's try to think about it from another angle:
If you have a function, an ⍺-abstraction of something, and you do an "analysis" step, that is you resolve all scheme symbols in a form and obtain their memory values, then you are also getting something "completely analysed".
</p>
</div>
</li>

 <li> <a id="3.202-The-simple-signs-employed-in-propositions-are-called-names."></a> <a href="#3.202-The-simple-signs-employed-in-propositions-are-called-names.">3.202 The simple signs employed in propositions are called names.</a> <br></br> <div class="outline-text-5" id="text-3.202-The-simple-signs-employed-in-propositions-are-called-names.">
 <p>
In Scheme do "names" correspond to "symbols" at an analysis stage?
</p>
</div>
</li>

 <li> <a id="3.203-A-name-means-an-object.-The-object-is-its-meaning.-(%E2%80%98A%E2%80%99-is-the-same-sign-as-%E2%80%98A%E2%80%99.)"></a> <a href="#3.203-A-name-means-an-object.-The-object-is-its-meaning.-(%E2%80%98A%E2%80%99-is-the-same-sign-as-%E2%80%98A%E2%80%99.)">3.203 A name means an object. The object is its meaning. (‘A’ is the same sign as ‘A’.)</a> <br></br> <div class="outline-text-5" id="text-3.203-A-name-means-an-object.-The-object-is-its-meaning.-(%E2%80%98A%E2%80%99-is-the-same-sign-as-%E2%80%98A%E2%80%99.)">
 <p>
So, "symbols" are unique.
Do they evaluate to themselves?
</p>
</div>
</li>
</ol> <div id="outline-container-3.21-The-configuration-of-objects-in-a-situation-corresponds-to-the-configuration-of-simple-signs-in-the-propositional-sign." class="outline-4">
 <h4 id="3.21-The-configuration-of-objects-in-a-situation-corresponds-to-the-configuration-of-simple-signs-in-the-propositional-sign."> <span class="section-number-4">3.2.1.</span>  <a href="#3.21-The-configuration-of-objects-in-a-situation-corresponds-to-the-configuration-of-simple-signs-in-the-propositional-sign.">3.21 The configuration of objects in a situation corresponds to the configuration of simple signs in the propositional sign.</a></h4>
 <div class="outline-text-4" id="text-3.21-The-configuration-of-objects-in-a-situation-corresponds-to-the-configuration-of-simple-signs-in-the-propositional-sign.">
 <p>
Necessarily?
By construction?
Doesn't seem to be the case, although if you are only considering exact correspondences between logic and Scheme, it's probably true.
</p>
</div>
</div>

 <div id="outline-container-3.22-In-a-proposition-a-name-is-the-representative-of-an-object." class="outline-4">
 <h4 id="3.22-In-a-proposition-a-name-is-the-representative-of-an-object."> <span class="section-number-4">3.2.2.</span>  <a href="#3.22-In-a-proposition-a-name-is-the-representative-of-an-object.">3.22 In a proposition a name is the representative of an object.</a></h4>
 <div class="outline-text-4" id="text-3.22-In-a-proposition-a-name-is-the-representative-of-an-object.">
 <p>
So, a procedure.
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.221-Objects-can-only-be-named.-Signs-are-their-representatives.-I-can-only-speak-about-them:-I-cannot-put-them-into-words.-Propositions-can-only-say-how-things-are,-not-what-they-are."></a> <a href="#3.221-Objects-can-only-be-named.-Signs-are-their-representatives.-I-can-only-speak-about-them:-I-cannot-put-them-into-words.-Propositions-can-only-say-how-things-are,-not-what-they-are.">3.221 Objects can only be named. Signs are their representatives. I can only speak about them: I cannot put them into words. Propositions can only say how things are, not what they are.</a> <br></br> <div class="outline-text-5" id="text-3.221-Objects-can-only-be-named.-Signs-are-their-representatives.-I-can-only-speak-about-them:-I-cannot-put-them-into-words.-Propositions-can-only-say-how-things-are,-not-what-they-are.">
 <p>
That seems arguable.
I should be able to "serialise" objects.
</p>

 <p>
Propositions, functions, evidently, predict behaviour, not describe things.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-3.23-The-requirement-that-simple-signs-be-possible-is-the-requirement-that-sense-be-determinate." class="outline-4">
 <h4 id="3.23-The-requirement-that-simple-signs-be-possible-is-the-requirement-that-sense-be-determinate."> <span class="section-number-4">3.2.3.</span>  <a href="#3.23-The-requirement-that-simple-signs-be-possible-is-the-requirement-that-sense-be-determinate.">3.23 The requirement that simple signs be possible is the requirement that sense be determinate.</a></h4>
 <div class="outline-text-4" id="text-3.23-The-requirement-that-simple-signs-be-possible-is-the-requirement-that-sense-be-determinate.">
 <p>
Well, otherwise a program is broken.
But what does it mean "possible"?
Resolve to themselves or resolve to values?
</p>
</div>
</div>

 <div id="outline-container-3.24-A-proposition-about-a-complex-stands-in-an-internal-relation-to-a-proposition-about-a-constituent-of-the-complex.-A-complex-can-be-given-only-by-its-description,-which-will-be-right-or-wrong.-A-proposition-that-mentions-a-complex-will-not-be-nonsensical,-if-the-complex-does-not-exist,-but-simply-false.-When-a-propositional-element-signifies-a-complex,-this-can-be-seen-from-an-indeterminateness-in-the-propositions-in-which-it-occurs.-In-such-cases-we-know-that-the-proposition-leaves-something-undetermined.-(In-fact-the-notation-for-generality-contains-a-prototype.)-The-contraction-of-a-symbol-for-a-complex-into-a-simple-symbol-can-be-expressed-in-a-definition." class="outline-4">
 <h4 id="3.24-A-proposition-about-a-complex-stands-in-an-internal-relation-to-a-proposition-about-a-constituent-of-the-complex.-A-complex-can-be-given-only-by-its-description,-which-will-be-right-or-wrong.-A-proposition-that-mentions-a-complex-will-not-be-nonsensical,-if-the-complex-does-not-exist,-but-simply-false.-When-a-propositional-element-signifies-a-complex,-this-can-be-seen-from-an-indeterminateness-in-the-propositions-in-which-it-occurs.-In-such-cases-we-know-that-the-proposition-leaves-something-undetermined.-(In-fact-the-notation-for-generality-contains-a-prototype.)-The-contraction-of-a-symbol-for-a-complex-into-a-simple-symbol-can-be-expressed-in-a-definition."> <span class="section-number-4">3.2.4.</span>  <a href="#3.24-A-proposition-about-a-complex-stands-in-an-internal-relation-to-a-proposition-about-a-constituent-of-the-complex.-A-complex-can-be-given-only-by-its-description,-which-will-be-right-or-wrong.-A-proposition-that-mentions-a-complex-will-not-be-nonsensical,-if-the-complex-does-not-exist,-but-simply-false.-When-a-propositional-element-signifies-a-complex,-this-can-be-seen-from-an-indeterminateness-in-the-propositions-in-which-it-occurs.-In-such-cases-we-know-that-the-proposition-leaves-something-undetermined.-(In-fact-the-notation-for-generality-contains-a-prototype.)-The-contraction-of-a-symbol-for-a-complex-into-a-simple-symbol-can-be-expressed-in-a-definition.">3.24 A proposition about a complex stands in an internal relation to a proposition about a constituent of the complex. A complex can be given only by its description, which will be right or wrong. A proposition that mentions a complex will not be nonsensical, if the complex does not exist, but simply false. When a propositional element signifies a complex, this can be seen from an indeterminateness in the propositions in which it occurs. In such cases we know that the proposition leaves something undetermined. (In fact the notation for generality contains a prototype.) The contraction of a symbol for a complex into a simple symbol can be expressed in a definition.</a></h4>
 <div class="outline-text-4" id="text-3.24-A-proposition-about-a-complex-stands-in-an-internal-relation-to-a-proposition-about-a-constituent-of-the-complex.-A-complex-can-be-given-only-by-its-description,-which-will-be-right-or-wrong.-A-proposition-that-mentions-a-complex-will-not-be-nonsensical,-if-the-complex-does-not-exist,-but-simply-false.-When-a-propositional-element-signifies-a-complex,-this-can-be-seen-from-an-indeterminateness-in-the-propositions-in-which-it-occurs.-In-such-cases-we-know-that-the-proposition-leaves-something-undetermined.-(In-fact-the-notation-for-generality-contains-a-prototype.)-The-contraction-of-a-symbol-for-a-complex-into-a-simple-symbol-can-be-expressed-in-a-definition.">
 <p>
So a definition is kinda like in Scheme.
You use the special definition word to make a simple symbol 'symbol resolve to a value, maybe complex.
</p>

 <p>
If our forms use a symbol with an undefined value, then what?
This symbol resolves to false?
Seems so.
</p>

 <p>
What is a prototype here?
</p>
</div>
</div>

 <div id="outline-container-3.25-A-proposition-has-one-and-only-one-complete-analysis." class="outline-4">
 <h4 id="3.25-A-proposition-has-one-and-only-one-complete-analysis."> <span class="section-number-4">3.2.5.</span>  <a href="#3.25-A-proposition-has-one-and-only-one-complete-analysis."> <span class="todo TODO">TODO</span> 3.25 A proposition has one and only one complete analysis.</a></h4>
 <div class="outline-text-4" id="text-3.25-A-proposition-has-one-and-only-one-complete-analysis.">
 <p>
Because we are, again, just substituting symbols?
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.251-What-a-proposition-expresses-it-expresses-in-a-determinate-manner,-which-can-be-set-out-clearly:-a-proposition-is-articulate."></a> <a href="#3.251-What-a-proposition-expresses-it-expresses-in-a-determinate-manner,-which-can-be-set-out-clearly:-a-proposition-is-articulate.">3.251 What a proposition expresses it expresses in a determinate manner, which can be set out clearly: a proposition is articulate.</a> <br></br> <div class="outline-text-5" id="text-3.251-What-a-proposition-expresses-it-expresses-in-a-determinate-manner,-which-can-be-set-out-clearly:-a-proposition-is-articulate.">
 <p>
So, a proposition is a "formal construction"?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-3.26-A-name-cannot-be-dissected-any-further-by-means-of-a-definition:-it-is-a-primitive-sign." class="outline-4">
 <h4 id="3.26-A-name-cannot-be-dissected-any-further-by-means-of-a-definition:-it-is-a-primitive-sign."> <span class="section-number-4">3.2.6.</span>  <a href="#3.26-A-name-cannot-be-dissected-any-further-by-means-of-a-definition:-it-is-a-primitive-sign.">3.26 A name cannot be dissected any further by means of a definition: it is a primitive sign.</a></h4>
 <div class="outline-text-4" id="text-3.26-A-name-cannot-be-dissected-any-further-by-means-of-a-definition:-it-is-a-primitive-sign.">
 <p>
Like, this is, perhaps, that place where "symbols evaluate to themselves".
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.261-Every-sign-that-has-a-definition-signifies-via-the-signs-that-serve-to-define-it;-and-the-definitions-point-the-way.-Two-signs-cannot-signify-in-the-same-manner-if-one-is-primitive-and-the-other-is-defined-by-means-of-primitive-signs.-Names-cannot-be-anatomized-by-means-of-definitions.-(Nor-can-any-sign-that-has-a-meaning-independently-and-on-its-own.)"></a> <a href="#3.261-Every-sign-that-has-a-definition-signifies-via-the-signs-that-serve-to-define-it;-and-the-definitions-point-the-way.-Two-signs-cannot-signify-in-the-same-manner-if-one-is-primitive-and-the-other-is-defined-by-means-of-primitive-signs.-Names-cannot-be-anatomized-by-means-of-definitions.-(Nor-can-any-sign-that-has-a-meaning-independently-and-on-its-own.)">3.261 Every sign that has a definition signifies via the signs that serve to define it; and the definitions point the way. Two signs cannot signify in the same manner if one is primitive and the other is defined by means of primitive signs. Names cannot be anatomized by means of definitions. (Nor can any sign that has a meaning independently and on its own.)</a> <br></br> <div class="outline-text-5" id="text-3.261-Every-sign-that-has-a-definition-signifies-via-the-signs-that-serve-to-define-it;-and-the-definitions-point-the-way.-Two-signs-cannot-signify-in-the-same-manner-if-one-is-primitive-and-the-other-is-defined-by-means-of-primitive-signs.-Names-cannot-be-anatomized-by-means-of-definitions.-(Nor-can-any-sign-that-has-a-meaning-independently-and-on-its-own.)">
 <p>
So, I cannot implement a function that behaves in an exactly the same way as a built-in?
</p>

 <p>
Names, indeed, cannot be broken into pieces, because a definition is only an association.
</p>
</div>
</li>

 <li> <a id="3.262-What-signs-fail-to-express,-their-application-shows.-What-signs-slur-over,-their-application-says-clearly."></a> <a href="#3.262-What-signs-fail-to-express,-their-application-shows.-What-signs-slur-over,-their-application-says-clearly.">3.262 What signs fail to express, their application shows. What signs slur over, their application says clearly.</a> <br></br> <div class="outline-text-5" id="text-3.262-What-signs-fail-to-express,-their-application-shows.-What-signs-slur-over,-their-application-says-clearly.">
 <p>
I think what we can understand "application" here in the same way we understand an application in Scheme.
Indeed, not everything is clear from a function definition, but running a function should give us all information about it.
</p>

 <p>
Or not?
At least, we cannot solve the halting problem like this.
But logic cannot either.
</p>
</div>
</li>

 <li> <a id="3.263-The-meanings-of-primitive-signs-can-be-explained-by-means-of-elucidations.-Elucidations-are-propositions-that-contain-the-primitive-signs.-So-they-can-only-be-understood-if-the-meanings-of-those-signs-are-already-known."></a> <a href="#3.263-The-meanings-of-primitive-signs-can-be-explained-by-means-of-elucidations.-Elucidations-are-propositions-that-contain-the-primitive-signs.-So-they-can-only-be-understood-if-the-meanings-of-those-signs-are-already-known.">3.263 The meanings of primitive signs can be explained by means of elucidations. Elucidations are propositions that contain the primitive signs. So they can only be understood if the meanings of those signs are already known.</a> <br></br> <div class="outline-text-5" id="text-3.263-The-meanings-of-primitive-signs-can-be-explained-by-means-of-elucidations.-Elucidations-are-propositions-that-contain-the-primitive-signs.-So-they-can-only-be-understood-if-the-meanings-of-those-signs-are-already-known.">
 <p>
We usually explain primitives in English.
In the Scheme Report, the primitives are defined though something called "Denotational Semantics".
</p>

 <p>
I guess, what he really says here is that if we know a "meaning of a function", or its truth-table, we could, potentially, infer the meaning of the primitives, perhaps in a way similar to solving an equation.
</p>
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-3.3-Only-propositions-have-sense;-only-in-the-nexus-of-a-proposition-does-a-name-have-meaning." class="outline-3">
 <h3 id="3.3-Only-propositions-have-sense;-only-in-the-nexus-of-a-proposition-does-a-name-have-meaning."> <span class="section-number-3">3.3.</span>  <a href="#3.3-Only-propositions-have-sense;-only-in-the-nexus-of-a-proposition-does-a-name-have-meaning.">3.3 Only propositions have sense; only in the nexus of a proposition does a name have meaning.</a></h3>
 <div class="outline-text-3" id="text-3.3-Only-propositions-have-sense;-only-in-the-nexus-of-a-proposition-does-a-name-have-meaning.">
 <p>
I guess, we can have propositions that are very simple?
Such as "resolving a value of a name"?
</p>
</div>

 <div id="outline-container-3.31-I-call-any-part-of-a-proposition-that-characterizes-its-sense-an-expression-(or-a-symbol).-(A-proposition-is-itself-an-expression.)-Everything-essential-to-their-sense-that-propositions-can-have-in-common-with-one-another-is-an-expression.-An-expression-is-the-mark-of-a-form-and-a-content." class="outline-4">
 <h4 id="3.31-I-call-any-part-of-a-proposition-that-characterizes-its-sense-an-expression-(or-a-symbol).-(A-proposition-is-itself-an-expression.)-Everything-essential-to-their-sense-that-propositions-can-have-in-common-with-one-another-is-an-expression.-An-expression-is-the-mark-of-a-form-and-a-content."> <span class="section-number-4">3.3.1.</span>  <a href="#3.31-I-call-any-part-of-a-proposition-that-characterizes-its-sense-an-expression-(or-a-symbol).-(A-proposition-is-itself-an-expression.)-Everything-essential-to-their-sense-that-propositions-can-have-in-common-with-one-another-is-an-expression.-An-expression-is-the-mark-of-a-form-and-a-content.">3.31 I call any part of a proposition that characterizes its sense an expression (or a symbol). (A proposition is itself an expression.) Everything essential to their sense that propositions can have in common with one another is an expression. An expression is the mark of a form and a content.</a></h4>
 <div class="outline-text-4" id="text-3.31-I-call-any-part-of-a-proposition-that-characterizes-its-sense-an-expression-(or-a-symbol).-(A-proposition-is-itself-an-expression.)-Everything-essential-to-their-sense-that-propositions-can-have-in-common-with-one-another-is-an-expression.-An-expression-is-the-mark-of-a-form-and-a-content.">
 <p>
So… expressions are like meaningful sub-units of propositions.
There maybe other things in a proposition, but those are not related to its meaning.
For example, there may be debugging or type annotations.
</p>

 <p>
But how do "form and content" come together here?
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.311-An-expression-presupposes-the-forms-of-all-the-propositions-in-which-it-can-occur.-It-is-the-common-characteristic-mark-of-a-class-of-propositions."></a> <a href="#3.311-An-expression-presupposes-the-forms-of-all-the-propositions-in-which-it-can-occur.-It-is-the-common-characteristic-mark-of-a-class-of-propositions.">3.311 An expression presupposes the forms of all the propositions in which it can occur. It is the common characteristic mark of a class of propositions.</a> <br></br> <div class="outline-text-5" id="text-3.311-An-expression-presupposes-the-forms-of-all-the-propositions-in-which-it-can-occur.-It-is-the-common-characteristic-mark-of-a-class-of-propositions.">
 <p>
A class of "propositions using this expression"?
Perhaps, but what would it give us?
</p>

 <p>
Inlining for speed?
</p>
</div>
</li>

 <li> <a id="3.312-It-is-therefore-presented-by-means-of-the-general-form-of-the-propositions-that-it-characterizes.-In-fact,-in-this-form-the-expression-will-be-constant-and-everything-else-variable."></a> <a href="#3.312-It-is-therefore-presented-by-means-of-the-general-form-of-the-propositions-that-it-characterizes.-In-fact,-in-this-form-the-expression-will-be-constant-and-everything-else-variable.">3.312 It is therefore presented by means of the general form of the propositions that it characterizes. In fact, in this form the expression will be constant and everything else variable.</a> <br></br> <div class="outline-text-5" id="text-3.312-It-is-therefore-presented-by-means-of-the-general-form-of-the-propositions-that-it-characterizes.-In-fact,-in-this-form-the-expression-will-be-constant-and-everything-else-variable.">
 <p>
Totally confusing?
What is a "general form of the propositions"?
</p>

 <p>
Is it even possible to devise a non-trivial "general form of propositions using an expression A"?
</p>

 <p>
Does the phrase "everything else variable" make this clause useless?
</p>
</div>
</li>

 <li> <a id="3.313-Thus-an-expression-is-presented-by-means-of-a-variable-whose-values-are-the-propositions-that-contain-the-expression.-(In-the-limiting-case-the-variable-becomes-a-constant,-the-expression-becomes-a-proposition.)-I-call-such-a-variable-a-%E2%80%98propositional-variable%E2%80%99."></a> <a href="#3.313-Thus-an-expression-is-presented-by-means-of-a-variable-whose-values-are-the-propositions-that-contain-the-expression.-(In-the-limiting-case-the-variable-becomes-a-constant,-the-expression-becomes-a-proposition.)-I-call-such-a-variable-a-%E2%80%98propositional-variable%E2%80%99.">3.313 Thus an expression is presented by means of a variable whose values are the propositions that contain the expression. (In the limiting case the variable becomes a constant, the expression becomes a proposition.) I call such a variable a ‘propositional variable’.</a> <br></br> <div class="outline-text-5" id="text-3.313-Thus-an-expression-is-presented-by-means-of-a-variable-whose-values-are-the-propositions-that-contain-the-expression.-(In-the-limiting-case-the-variable-becomes-a-constant,-the-expression-becomes-a-proposition.)-I-call-such-a-variable-a-%E2%80%98propositional-variable%E2%80%99.">
 <p>
Okay, in "high-school logic", a propositional variable is a variable that can be true or false.
I guess, you can say that a variable becomes true if an corresponding expression evaluates to true.
</p>
</div>
</li>

 <li> <a id="3.314-An-expression-has-meaning-only-in-a-proposition.-All-variables-can-be-construed-as-propositional-variables.-(Even-variable-names.)"></a> <a href="#3.314-An-expression-has-meaning-only-in-a-proposition.-All-variables-can-be-construed-as-propositional-variables.-(Even-variable-names.)">3.314 An expression has meaning only in a proposition. All variables can be construed as propositional variables. (Even variable names.)</a> <br></br> <div class="outline-text-5" id="text-3.314-An-expression-has-meaning-only-in-a-proposition.-All-variables-can-be-construed-as-propositional-variables.-(Even-variable-names.)">
 <p>
It seems that Wittgenstein dislikes REPLs.
Or that "top-level is not very well defined".
</p>

 <p>
Otherwise, it seems that, indeed, all "expressions" can be assigned to variables.
(Note, however, that Scheme allows for syntactic expressions.)
</p>

 <p>
"All variables can be construed as propositional variables (even variable names)", I guess, means that 
(=? (symbol->string 'variable) "variable") => #t
</p>
</div>
</li>

 <li> <a id="3.315-If-we-turn-a-constituent-of-a-proposition-into-a-variable,-there-is-a-class-of-propositions-all-of-which-are-values-of-the-resulting-variable-proposition.-In-general,-this-class-too-will-be-dependent-on-the-meaning-that-our-arbitrary-conventions-have-given-to-parts-of-the-original-proposition.-But-if-all-the-signs-in-it-that-have-arbitrarily-determined-meanings-are-turned-into-variables,-we-shall-still-get-a-class-of-this-kind.-This-one,-however,-is-not-dependent-on-any-convention,-but-solely-on-the-nature-of-the-proposition.-It-corresponds-to-a-logical-form-%E2%80%94-a-logical-prototype."></a> <a href="#3.315-If-we-turn-a-constituent-of-a-proposition-into-a-variable,-there-is-a-class-of-propositions-all-of-which-are-values-of-the-resulting-variable-proposition.-In-general,-this-class-too-will-be-dependent-on-the-meaning-that-our-arbitrary-conventions-have-given-to-parts-of-the-original-proposition.-But-if-all-the-signs-in-it-that-have-arbitrarily-determined-meanings-are-turned-into-variables,-we-shall-still-get-a-class-of-this-kind.-This-one,-however,-is-not-dependent-on-any-convention,-but-solely-on-the-nature-of-the-proposition.-It-corresponds-to-a-logical-form-%E2%80%94-a-logical-prototype.">3.315 If we turn a constituent of a proposition into a variable, there is a class of propositions all of which are values of the resulting variable proposition. In general, this class too will be dependent on the meaning that our arbitrary conventions have given to parts of the original proposition. But if all the signs in it that have arbitrarily determined meanings are turned into variables, we shall still get a class of this kind. This one, however, is not dependent on any convention, but solely on the nature of the proposition. It corresponds to a logical form — a logical prototype.</a> <br></br> <div class="outline-text-5" id="text-3.315-If-we-turn-a-constituent-of-a-proposition-into-a-variable,-there-is-a-class-of-propositions-all-of-which-are-values-of-the-resulting-variable-proposition.-In-general,-this-class-too-will-be-dependent-on-the-meaning-that-our-arbitrary-conventions-have-given-to-parts-of-the-original-proposition.-But-if-all-the-signs-in-it-that-have-arbitrarily-determined-meanings-are-turned-into-variables,-we-shall-still-get-a-class-of-this-kind.-This-one,-however,-is-not-dependent-on-any-convention,-but-solely-on-the-nature-of-the-proposition.-It-corresponds-to-a-logical-form-%E2%80%94-a-logical-prototype.">
 <p>
Hm…
This "logical prototype" seems to be a function that has no constants?
It  <span class="underline">can</span> have calls to other functions or values, but those can only be supplied as arguments…
</p>

 <p>
Are this, like… pure functions?
</p>

 <p>
Or, is the idea in that a function with no constants is actually equivalent to a type?
</p>
</div>
</li>

 <li> <a id="3.316-What-values-a-propositional-variable-may-take-is-something-that-is-stipulated.-The-stipulation-of-values-is-the-variable."></a> <a href="#3.316-What-values-a-propositional-variable-may-take-is-something-that-is-stipulated.-The-stipulation-of-values-is-the-variable.">3.316 What values a propositional variable may take is something that is stipulated. The stipulation of values is the variable.</a> <br></br> <div class="outline-text-5" id="text-3.316-What-values-a-propositional-variable-may-take-is-something-that-is-stipulated.-The-stipulation-of-values-is-the-variable.">
 <p>
Seems, again, that now we are defining a "type" for a variable (as opposed to a function (proposition)).
</p>
</div>
</li>

 <li> <a id="3.317-To-stipulate-values-for-a-propositional-variable-is-to-give-the-propositions-whose-common-characteristic-the-variable-is.-The-stipulation-is-a-description-of-those-propositions.-The-stipulation-will-therefore-be-concerned-only-with-symbols,-not-with-their-meaning.-And-the-only-thing-essential-to-the-stipulation-is-that-it-is-merely-a-description-of-symbols-and-states-nothing-about-what-is-signified.-How-the-description-of-the-propositions-is-produced-is-not-essential."></a> <a href="#3.317-To-stipulate-values-for-a-propositional-variable-is-to-give-the-propositions-whose-common-characteristic-the-variable-is.-The-stipulation-is-a-description-of-those-propositions.-The-stipulation-will-therefore-be-concerned-only-with-symbols,-not-with-their-meaning.-And-the-only-thing-essential-to-the-stipulation-is-that-it-is-merely-a-description-of-symbols-and-states-nothing-about-what-is-signified.-How-the-description-of-the-propositions-is-produced-is-not-essential.">3.317 To stipulate values for a propositional variable is to give the propositions whose common characteristic the variable is. The stipulation is a description of those propositions. The stipulation will therefore be concerned only with symbols, not with their meaning. And the only thing essential to the stipulation is that it is merely a description of symbols and states nothing about what is signified. How the description of the propositions is produced is not essential.</a> <br></br> <div class="outline-text-5" id="text-3.317-To-stipulate-values-for-a-propositional-variable-is-to-give-the-propositions-whose-common-characteristic-the-variable-is.-The-stipulation-is-a-description-of-those-propositions.-The-stipulation-will-therefore-be-concerned-only-with-symbols,-not-with-their-meaning.-And-the-only-thing-essential-to-the-stipulation-is-that-it-is-merely-a-description-of-symbols-and-states-nothing-about-what-is-signified.-How-the-description-of-the-propositions-is-produced-is-not-essential.">
 <p>
Seems like…
So, here we are defining a variable (a data structure), via a set of accessors to this data structure.
The "meaning" here is really the "implementation" of the data structure and the accessors.
</p>
</div>
</li>

 <li> <a id="3.318-Like-Frege-and-Russell-I-construe-a-proposition-as-a-function-of-the-expressions-contained-in-it."></a> <a href="#3.318-Like-Frege-and-Russell-I-construe-a-proposition-as-a-function-of-the-expressions-contained-in-it.">3.318 Like Frege and Russell I construe a proposition as a function of the expressions contained in it.</a> <br></br> <div class="outline-text-5" id="text-3.318-Like-Frege-and-Russell-I-construe-a-proposition-as-a-function-of-the-expressions-contained-in-it.">
 <p>
I should look up what Frege and Russel did.
</p>

 <p>
But it is quite reasonable that you can make expressions by combining more primitive expressions.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-3.32-A-sign-is-what-can-be-perceived-of-a-symbol." class="outline-4">
 <h4 id="3.32-A-sign-is-what-can-be-perceived-of-a-symbol."> <span class="section-number-4">3.3.2.</span>  <a href="#3.32-A-sign-is-what-can-be-perceived-of-a-symbol.">3.32 A sign is what can be perceived of a symbol.</a></h4>
 <div class="outline-text-4" id="text-3.32-A-sign-is-what-can-be-perceived-of-a-symbol.">
 <p>
So, in Scheme symbols stand for stuff that can be resolved to values (maybe undefined), and can be compared in O(1).
</p>

 <p>
In Lisp in general, people are even expected to speak directly with symbols in runtime.
</p>

 <p>
I guess, what Wittgenstein is saying here, is that we do not really need a disjoint type for symbols in programming languages.
(lookup-variable-value) would be designed to work with strings, not symbols.
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.321-So-one-and-the-same-sign-(written-or-spoken,-etc.)-can-be-common-to-two-different-symbols-%E2%80%94-in-which-case-they-will-signify-in-different-ways."></a> <a href="#3.321-So-one-and-the-same-sign-(written-or-spoken,-etc.)-can-be-common-to-two-different-symbols-%E2%80%94-in-which-case-they-will-signify-in-different-ways.">3.321 So one and the same sign (written or spoken, etc.) can be common to two different symbols — in which case they will signify in different ways.</a> <br></br> <div class="outline-text-5" id="text-3.321-So-one-and-the-same-sign-(written-or-spoken,-etc.)-can-be-common-to-two-different-symbols-%E2%80%94-in-which-case-they-will-signify-in-different-ways.">
 <p>
Identifiers shadow other identifiers.
That is the same thing can have different values in different contexts.
</p>
</div>
</li>

 <li> <a id="3.322-Our-use-of-the-same-sign-to-signify-two-different-objects-can-never-indicate-a-common-characteristic-of-the-two,-if-we-use-it-with-two-different-modes-of-signification.-For-the-sign,-of-course,-is-arbitrary.-So-we-could-choose-two-different-signs-instead,-and-then-what-would-be-left-in-common-on-the-signifying-side?"></a> <a href="#3.322-Our-use-of-the-same-sign-to-signify-two-different-objects-can-never-indicate-a-common-characteristic-of-the-two,-if-we-use-it-with-two-different-modes-of-signification.-For-the-sign,-of-course,-is-arbitrary.-So-we-could-choose-two-different-signs-instead,-and-then-what-would-be-left-in-common-on-the-signifying-side?">3.322 Our use of the same sign to signify two different objects can never indicate a common characteristic of the two, if we use it with two different modes of signification. For the sign, of course, is arbitrary. So we could choose two different signs instead, and then what would be left in common on the signifying side?</a> <br></br> <div class="outline-text-5" id="text-3.322-Our-use-of-the-same-sign-to-signify-two-different-objects-can-never-indicate-a-common-characteristic-of-the-two,-if-we-use-it-with-two-different-modes-of-signification.-For-the-sign,-of-course,-is-arbitrary.-So-we-could-choose-two-different-signs-instead,-and-then-what-would-be-left-in-common-on-the-signifying-side?">
 <p>
Same thing. Using the same variable name for different values in different contexts does not make those values in any sense related.
</p>
</div>
</li>

 <li> <a id="3.323-In-everyday-language-it-very-frequently-happens-that-the-same-word-has-different-modes-of-signification-%E2%80%94-and-so-belongs-to-different-symbols-%E2%80%94-or-that-two-words-that-have-different-modes-of-signification-are-employed-in-propositions-in-what-is-superficially-the-same-way.-Thus-the-word-%E2%80%98is%E2%80%99-figures-as-the-copula,-as-a-sign-for-identity,-and-as-an-expression-for-existence;-%E2%80%98exist%E2%80%99-figures-as-an-intransitive-verb-like-%E2%80%98go%E2%80%99,-and-%E2%80%98identical%E2%80%99-as-an-adjective;-we-speak-of-something,-but-also-of-something%E2%80%99s-happening.-(In-the-proposition,-%E2%80%98Green-is-green%E2%80%99-%E2%80%94-where-the-first-word-is-the-proper-name-of-a-person-and-the-last-an-adjective-%E2%80%94-these-words-do-not-merely-have-different-meanings:-they-are-different-symbols.)"></a> <a href="#3.323-In-everyday-language-it-very-frequently-happens-that-the-same-word-has-different-modes-of-signification-%E2%80%94-and-so-belongs-to-different-symbols-%E2%80%94-or-that-two-words-that-have-different-modes-of-signification-are-employed-in-propositions-in-what-is-superficially-the-same-way.-Thus-the-word-%E2%80%98is%E2%80%99-figures-as-the-copula,-as-a-sign-for-identity,-and-as-an-expression-for-existence;-%E2%80%98exist%E2%80%99-figures-as-an-intransitive-verb-like-%E2%80%98go%E2%80%99,-and-%E2%80%98identical%E2%80%99-as-an-adjective;-we-speak-of-something,-but-also-of-something%E2%80%99s-happening.-(In-the-proposition,-%E2%80%98Green-is-green%E2%80%99-%E2%80%94-where-the-first-word-is-the-proper-name-of-a-person-and-the-last-an-adjective-%E2%80%94-these-words-do-not-merely-have-different-meanings:-they-are-different-symbols.)">3.323 In everyday language it very frequently happens that the same word has different modes of signification — and so belongs to different symbols — or that two words that have different modes of signification are employed in propositions in what is superficially the same way. Thus the word ‘is’ figures as the copula, as a sign for identity, and as an expression for existence; ‘exist’ figures as an intransitive verb like ‘go’, and ‘identical’ as an adjective; we speak of something, but also of something’s happening. (In the proposition, ‘Green is green’ — where the first word is the proper name of a person and the last an adjective — these words do not merely have different meanings: they are different symbols.)</a> <br></br> <div class="outline-text-5" id="text-3.323-In-everyday-language-it-very-frequently-happens-that-the-same-word-has-different-modes-of-signification-%E2%80%94-and-so-belongs-to-different-symbols-%E2%80%94-or-that-two-words-that-have-different-modes-of-signification-are-employed-in-propositions-in-what-is-superficially-the-same-way.-Thus-the-word-%E2%80%98is%E2%80%99-figures-as-the-copula,-as-a-sign-for-identity,-and-as-an-expression-for-existence;-%E2%80%98exist%E2%80%99-figures-as-an-intransitive-verb-like-%E2%80%98go%E2%80%99,-and-%E2%80%98identical%E2%80%99-as-an-adjective;-we-speak-of-something,-but-also-of-something%E2%80%99s-happening.-(In-the-proposition,-%E2%80%98Green-is-green%E2%80%99-%E2%80%94-where-the-first-word-is-the-proper-name-of-a-person-and-the-last-an-adjective-%E2%80%94-these-words-do-not-merely-have-different-meanings:-they-are-different-symbols.)">
 <p>
So, Wittgenstein is suggesting to have a separate obarray for each context? Hmm, no, doesn't seem to be the case.
On the other hand, "Green" and "green" seem to resolve to two different values in the same sentence. 
</p>

 <p>
On the other hand, maybe it is just that the Sign and a Symbol are reversed?
</p>
</div>
</li>

 <li> <a id="3.324-In-this-way-the-most-fundamental-confusions-are-easily-produced-(the-whole-of-philosophy-is-full-of-them)."></a> <a href="#3.324-In-this-way-the-most-fundamental-confusions-are-easily-produced-(the-whole-of-philosophy-is-full-of-them).">3.324 In this way the most fundamental confusions are easily produced (the whole of philosophy is full of them).</a> <br></br> <div class="outline-text-5" id="text-3.324-In-this-way-the-most-fundamental-confusions-are-easily-produced-(the-whole-of-philosophy-is-full-of-them).">
 <p>
Programming as well!
That is why we sometimes think that static types should save us.
With static types at least the type of resolved variables should match.
</p>
</div>
</li>

 <li> <a id="3.325-In-order-to-avoid-such-errors-we-must-make-use-of-a-sign-language-that-excludes-them-by-not-using-the-same-sign-for-different-symbols-and-by-not-using-in-a-superficially-similar-way-signs-that-have-different-modes-of-signification:-that-is-to-say,-a-sign-language-that-is-governed-by-logical-grammar-%E2%80%94-by-logical-syntax.-(The-conceptual-notation-of-Frege-and-Russell-is-such-a-language,-though,-it-is-true,-it-fails-to-exclude-all-mistakes.)"></a> <a href="#3.325-In-order-to-avoid-such-errors-we-must-make-use-of-a-sign-language-that-excludes-them-by-not-using-the-same-sign-for-different-symbols-and-by-not-using-in-a-superficially-similar-way-signs-that-have-different-modes-of-signification:-that-is-to-say,-a-sign-language-that-is-governed-by-logical-grammar-%E2%80%94-by-logical-syntax.-(The-conceptual-notation-of-Frege-and-Russell-is-such-a-language,-though,-it-is-true,-it-fails-to-exclude-all-mistakes.)">3.325 In order to avoid such errors we must make use of a sign-language that excludes them by not using the same sign for different symbols and by not using in a superficially similar way signs that have different modes of signification: that is to say, a sign-language that is governed by logical grammar — by logical syntax. (The conceptual notation of Frege and Russell is such a language, though, it is true, it fails to exclude all mistakes.)</a> <br></br> <div class="outline-text-5" id="text-3.325-In-order-to-avoid-such-errors-we-must-make-use-of-a-sign-language-that-excludes-them-by-not-using-the-same-sign-for-different-symbols-and-by-not-using-in-a-superficially-similar-way-signs-that-have-different-modes-of-signification:-that-is-to-say,-a-sign-language-that-is-governed-by-logical-grammar-%E2%80%94-by-logical-syntax.-(The-conceptual-notation-of-Frege-and-Russell-is-such-a-language,-though,-it-is-true,-it-fails-to-exclude-all-mistakes.)">
 <p>
This seems to be a prescriptive clause.
</p>

 <p>
Ok, my thought.
The difficulty with human languages is that we are ready to search different obarrays for variable resolution.
And if an obarray fits the propositional structure, we start resolving most variables from that obarray.
</p>

 <p>
People seem to have several environments of evaluation of an incoming proposition.
The correct obarray is chosen if all variables of a clause are resolvable from this environment.
If all variables are resolvable from two environments, it's either a tautology, or a pun.
</p>

 <p>
So, for clarity, we should stick to using a single obarray.
</p>

 <p>
Upd: this is the first place where he speaks about "logical syntax", not even defining it properly.
</p>
</div>
</li>

 <li> <a id="3.326-In-order-to-recognize-a-symbol-by-its-sign-we-must-observe-how-it-is-used-with-a-sense."></a> <a href="#3.326-In-order-to-recognize-a-symbol-by-its-sign-we-must-observe-how-it-is-used-with-a-sense.">3.326 In order to recognize a symbol by its sign we must observe how it is used with a sense.</a> <br></br> <div class="outline-text-5" id="text-3.326-In-order-to-recognize-a-symbol-by-its-sign-we-must-observe-how-it-is-used-with-a-sense.">
 <p>
That seems to be it!
That is the ambiguity resolution heuristic.
 <span class="underline">One</span> variable alone may be resolvable from environment-1, but we need  <span class="underline">all</span> of them resolve.
</p>
</div>
</li>

 <li> <a id="3.327-A-sign-does-not-determine-a-logical-form-unless-it-is-taken-together-with-its-logico-syntactical-employment."></a> <a href="#3.327-A-sign-does-not-determine-a-logical-form-unless-it-is-taken-together-with-its-logico-syntactical-employment.">3.327 A sign does not determine a logical form unless it is taken together with its logico-syntactical employment.</a> <br></br> <div class="outline-text-5" id="text-3.327-A-sign-does-not-determine-a-logical-form-unless-it-is-taken-together-with-its-logico-syntactical-employment.">
 <p>
So, programs may consist of everything, essentially.
The programming system is not defined by words used for  <code>if</code> or  <code>goto</code>, those could have been  <code>si</code> or  <code>aller</code>.
</p>
</div>
</li>

 <li> <a id="3.328-If-a-sign-is-useless,-it-is-meaningless.-That-is-the-point-of-Occam%E2%80%99s-maxim.-(If-everything-behaves-as-if-a-sign-had-meaning,-then-it-does-have-meaning.)"></a> <a href="#3.328-If-a-sign-is-useless,-it-is-meaningless.-That-is-the-point-of-Occam%E2%80%99s-maxim.-(If-everything-behaves-as-if-a-sign-had-meaning,-then-it-does-have-meaning.)">3.328 If a sign is useless, it is meaningless. That is the point of Occam’s maxim. (If everything behaves as if a sign had meaning, then it does have meaning.)</a> <br></br> <div class="outline-text-5" id="text-3.328-If-a-sign-is-useless,-it-is-meaningless.-That-is-the-point-of-Occam%E2%80%99s-maxim.-(If-everything-behaves-as-if-a-sign-had-meaning,-then-it-does-have-meaning.)">
 <p>
Again, the sign (Scheme-symbol) is eliminated at read-time, and replaced with a memory pointer, an internal representation.
In this sense, it does not matter.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-3.33-In-logical-syntax-the-meaning-of-a-sign-should-never-play-a-r%C3%B4le.-It-must-be-possible-to-establish-logical-syntax-without-mentioning-the-meaning-of-a-sign:-only-the-description-of-expressions-may-be-presupposed." class="outline-4">
 <h4 id="3.33-In-logical-syntax-the-meaning-of-a-sign-should-never-play-a-r%C3%B4le.-It-must-be-possible-to-establish-logical-syntax-without-mentioning-the-meaning-of-a-sign:-only-the-description-of-expressions-may-be-presupposed."> <span class="section-number-4">3.3.3.</span>  <a href="#3.33-In-logical-syntax-the-meaning-of-a-sign-should-never-play-a-r%C3%B4le.-It-must-be-possible-to-establish-logical-syntax-without-mentioning-the-meaning-of-a-sign:-only-the-description-of-expressions-may-be-presupposed.">3.33 In logical syntax the meaning of a sign should never play a rôle. It must be possible to establish logical syntax without mentioning the meaning of a sign: only the description of expressions may be presupposed.</a></h4>
 <div class="outline-text-4" id="text-3.33-In-logical-syntax-the-meaning-of-a-sign-should-never-play-a-r%C3%B4le.-It-must-be-possible-to-establish-logical-syntax-without-mentioning-the-meaning-of-a-sign:-only-the-description-of-expressions-may-be-presupposed.">
 <p>
The idea here seems to be that programming language standards may not have any prose.
</p>

 <p>
That is there should be some description of clause transformations under an effect of syntactic signs.
</p>

 <p>
I think that syntactic signs here are not just what Scheme calls "syntax", but also what Scheme calls "procedures".
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.331-From-this-observation-we-turn-to-Russell%E2%80%99s-%E2%80%98theory-of-types%E2%80%99.-It-can-be-seen-that-Russell-must-be-wrong,-because-he-had-to-mention-the-meaning-of-signs-when-establishing-the-rules-for-them."></a> <a href="#3.331-From-this-observation-we-turn-to-Russell%E2%80%99s-%E2%80%98theory-of-types%E2%80%99.-It-can-be-seen-that-Russell-must-be-wrong,-because-he-had-to-mention-the-meaning-of-signs-when-establishing-the-rules-for-them.">3.331 From this observation we turn to Russell’s ‘theory of types’. It can be seen that Russell must be wrong, because he had to mention the meaning of signs when establishing the rules for them.</a> <br></br> <div class="outline-text-5" id="text-3.331-From-this-observation-we-turn-to-Russell%E2%80%99s-%E2%80%98theory-of-types%E2%80%99.-It-can-be-seen-that-Russell-must-be-wrong,-because-he-had-to-mention-the-meaning-of-signs-when-establishing-the-rules-for-them.">
 <p>
I have no idea what Russel's 'theory of types' was and whether is had any relation to the modern static typing.
</p>
</div>
</li>

 <li> <a id="3.332-No-proposition-can-make-a-statement-about-itself,-because-a-propositional-sign-cannot-be-contained-in-itself-(that-is-the-whole-of-the-%E2%80%98theory-of-types%E2%80%99)."></a> <a href="#3.332-No-proposition-can-make-a-statement-about-itself,-because-a-propositional-sign-cannot-be-contained-in-itself-(that-is-the-whole-of-the-%E2%80%98theory-of-types%E2%80%99).">3.332 No proposition can make a statement about itself, because a propositional sign cannot be contained in itself (that is the whole of the ‘theory of types’).</a> <br></br> <div class="outline-text-5" id="text-3.332-No-proposition-can-make-a-statement-about-itself,-because-a-propositional-sign-cannot-be-contained-in-itself-(that-is-the-whole-of-the-%E2%80%98theory-of-types%E2%80%99).">
 <p>
Perhaps, this can be related to Footnote 80 in Structure and Interpretation of Computer Programs (SICP).
(page 649 in the Unofficial Texinfo Format 2.andresraba5.6)
</p>

 <p>
When making recursive propositions, some very strange infinite series may arise.
</p>
</div>
</li>

 <li> <a id="3.333-The-reason-why-a-function-cannot-be-its-own-argument-is-that-the-sign-for-a-function-already-contains-the-prototype-of-its-argument,-and-it-cannot-contain-itself.-For-let-us-suppose-that-the-function-F(fx)-could-be-its-own-argument:-in-that-case-there-would-be-a-proposition-%E2%80%98F(F(fx))%E2%80%99,-in-which-the-outer-function-F-and-the-inner-function-F-must-have-different-meanings,-since-the-inner-one-has-the-form-%CF%86(fx)-and-the-outer-one-has-the-form-%CF%88(%CF%86(fx)).-Only-the-letter-%E2%80%98F%E2%80%99-is-common-to-the-two-functions,-but-the-letter-by-itself-signifies-nothing.-This-immediately-becomes-clear-if-instead-of-%E2%80%98F(Fu)%E2%80%99-we-write-%E2%80%98(%E2%88%83%CF%86):F(%CF%86u).%CF%86u-=-Fu%E2%80%99.-That-disposes-of-Russell%E2%80%99s-paradox."></a> <a href="#3.333-The-reason-why-a-function-cannot-be-its-own-argument-is-that-the-sign-for-a-function-already-contains-the-prototype-of-its-argument,-and-it-cannot-contain-itself.-For-let-us-suppose-that-the-function-F(fx)-could-be-its-own-argument:-in-that-case-there-would-be-a-proposition-%E2%80%98F(F(fx))%E2%80%99,-in-which-the-outer-function-F-and-the-inner-function-F-must-have-different-meanings,-since-the-inner-one-has-the-form-%CF%86(fx)-and-the-outer-one-has-the-form-%CF%88(%CF%86(fx)).-Only-the-letter-%E2%80%98F%E2%80%99-is-common-to-the-two-functions,-but-the-letter-by-itself-signifies-nothing.-This-immediately-becomes-clear-if-instead-of-%E2%80%98F(Fu)%E2%80%99-we-write-%E2%80%98(%E2%88%83%CF%86):F(%CF%86u).%CF%86u-=-Fu%E2%80%99.-That-disposes-of-Russell%E2%80%99s-paradox."> <span class="todo TODO">TODO</span> 3.333 The reason why a function cannot be its own argument is that the sign for a function already contains the prototype of its argument, and it cannot contain itself. For let us suppose that the function F(fx) could be its own argument: in that case there would be a proposition ‘F(F(fx))’, in which the outer function F and the inner function F must have different meanings, since the inner one has the form φ(fx) and the outer one has the form ψ(φ(fx)). Only the letter ‘F’ is common to the two functions, but the letter by itself signifies nothing. This immediately becomes clear if instead of ‘F(Fu)’ we write ‘(∃φ):F(φu).φu = Fu’. That disposes of Russell’s paradox.</a> <br></br> <div class="outline-text-5" id="text-3.333-The-reason-why-a-function-cannot-be-its-own-argument-is-that-the-sign-for-a-function-already-contains-the-prototype-of-its-argument,-and-it-cannot-contain-itself.-For-let-us-suppose-that-the-function-F(fx)-could-be-its-own-argument:-in-that-case-there-would-be-a-proposition-%E2%80%98F(F(fx))%E2%80%99,-in-which-the-outer-function-F-and-the-inner-function-F-must-have-different-meanings,-since-the-inner-one-has-the-form-%CF%86(fx)-and-the-outer-one-has-the-form-%CF%88(%CF%86(fx)).-Only-the-letter-%E2%80%98F%E2%80%99-is-common-to-the-two-functions,-but-the-letter-by-itself-signifies-nothing.-This-immediately-becomes-clear-if-instead-of-%E2%80%98F(Fu)%E2%80%99-we-write-%E2%80%98(%E2%88%83%CF%86):F(%CF%86u).%CF%86u-=-Fu%E2%80%99.-That-disposes-of-Russell%E2%80%99s-paradox.">
 <p>
I do not understand 😢.
</p>
</div>
</li>

 <li> <a id="3.334-The-rules-of-logical-syntax-must-go-without-saying,-once-we-know-how-each-individual-sign-signifies."></a> <a href="#3.334-The-rules-of-logical-syntax-must-go-without-saying,-once-we-know-how-each-individual-sign-signifies.">3.334 The rules of logical syntax must go without saying, once we know how each individual sign signifies.</a> <br></br> <div class="outline-text-5" id="text-3.334-The-rules-of-logical-syntax-must-go-without-saying,-once-we-know-how-each-individual-sign-signifies.">
 <p>
Is it a prescriptive clause?
Moreover, it's "how each sign signifies", not "what each sign signifies".
I am confused.
</p>

 <p>
Perhaps, it means the same thing: that as long as you have properly written syntax as clause transformations, you do not need to explain the semantics "in English".
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-3.34-A-proposition-possesses-essential-and-accidental-features.-Accidental-features-are-those-that-result-from-the-particular-way-in-which-the-propositional-sign-is-produced.-Essential-features-are-those-without-which-the-proposition-could-not-express-its-sense." class="outline-4">
 <h4 id="3.34-A-proposition-possesses-essential-and-accidental-features.-Accidental-features-are-those-that-result-from-the-particular-way-in-which-the-propositional-sign-is-produced.-Essential-features-are-those-without-which-the-proposition-could-not-express-its-sense."> <span class="section-number-4">3.3.4.</span>  <a href="#3.34-A-proposition-possesses-essential-and-accidental-features.-Accidental-features-are-those-that-result-from-the-particular-way-in-which-the-propositional-sign-is-produced.-Essential-features-are-those-without-which-the-proposition-could-not-express-its-sense.">3.34 A proposition possesses essential and accidental features. Accidental features are those that result from the particular way in which the propositional sign is produced. Essential features are those without which the proposition could not express its sense.</a></h4>
 <div class="outline-text-4" id="text-3.34-A-proposition-possesses-essential-and-accidental-features.-Accidental-features-are-those-that-result-from-the-particular-way-in-which-the-propositional-sign-is-produced.-Essential-features-are-those-without-which-the-proposition-could-not-express-its-sense.">
 <p>
It seems that the difference here is, again, between "a program" and "a correct program".
Performance seems to be the issue here as well.
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.341-So-what-is-essential-in-a-proposition-is-what-all-propositions-that-can-express-the-same-sense-have-in-common.-And-similarly,-in-general,-what-is-essential-in-a-symbol-is-what-all-symbols-that-can-serve-the-same-purpose-have-in-common."></a> <a href="#3.341-So-what-is-essential-in-a-proposition-is-what-all-propositions-that-can-express-the-same-sense-have-in-common.-And-similarly,-in-general,-what-is-essential-in-a-symbol-is-what-all-symbols-that-can-serve-the-same-purpose-have-in-common.">3.341 So what is essential in a proposition is what all propositions that can express the same sense have in common. And similarly, in general, what is essential in a symbol is what all symbols that can serve the same purpose have in common.</a> <br></br> <div class="outline-text-5" id="text-3.341-So-what-is-essential-in-a-proposition-is-what-all-propositions-that-can-express-the-same-sense-have-in-common.-And-similarly,-in-general,-what-is-essential-in-a-symbol-is-what-all-symbols-that-can-serve-the-same-purpose-have-in-common.">
 <p>
A "symbol" is "a value" here.
So, the propositions that are "essentially the same" would be:
(and a b) and (and a b #t) and (and a b "true")
 #t and "true" can serve as the same true value.
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.3411-So-one-could-say-that-the-real-name-of-an-object-was-what-all-symbols-that-signified-it-had-in-common.-Thus,-one-by-one,-all-kinds-of-composition-would-prove-to-be-unessential-to-a-name."></a> <a href="#3.3411-So-one-could-say-that-the-real-name-of-an-object-was-what-all-symbols-that-signified-it-had-in-common.-Thus,-one-by-one,-all-kinds-of-composition-would-prove-to-be-unessential-to-a-name.">3.3411 So one could say that the real name of an object was what all symbols that signified it had in common. Thus, one by one, all kinds of composition would prove to be unessential to a name.</a> <br></br> <div class="outline-text-6" id="text-3.3411-So-one-could-say-that-the-real-name-of-an-object-was-what-all-symbols-that-signified-it-had-in-common.-Thus,-one-by-one,-all-kinds-of-composition-would-prove-to-be-unessential-to-a-name.">
 <p>
"all kinds of composition would prove to be unessential to a name." what does it even mean?
</p>

 <p>
When you do not care about resource consumption, you can avoid using a name at all, and try to infer the correct value by writing all sorts of propositions about an object and telling the machine to infer the object from those propositions when needed.
It it what is implied here?
</p>
</div>
</li>
</ol></li>

 <li> <a id="3.342-Although-there-is-something-arbitrary-in-our-notations,-this-much-is-not-arbitrary-%E2%80%94-that-when-we-have-determined-one-thing-arbitrarily,-something-else-is-necessarily-the-case.-(This-derives-from-the-essence-of-notation.)"></a> <a href="#3.342-Although-there-is-something-arbitrary-in-our-notations,-this-much-is-not-arbitrary-%E2%80%94-that-when-we-have-determined-one-thing-arbitrarily,-something-else-is-necessarily-the-case.-(This-derives-from-the-essence-of-notation.)">3.342 Although there is something arbitrary in our notations, this much is not arbitrary — that when we have determined one thing arbitrarily, something else is necessarily the case. (This derives from the essence of notation.)</a> <br></br> <div class="outline-text-5" id="text-3.342-Although-there-is-something-arbitrary-in-our-notations,-this-much-is-not-arbitrary-%E2%80%94-that-when-we-have-determined-one-thing-arbitrarily,-something-else-is-necessarily-the-case.-(This-derives-from-the-essence-of-notation.)">
 <p>
I guess, this means that a variable cannot be "empty".
If you introduce a name in a proposition, say, (display a), then in the worst case your interpreter will tell you "a is undefined", that is "the value of a is #undef".
This may be an error, or may not be.
But a will be in the obarray until the termination of the program, so it will have some kind of "value".
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.3421-A-particular-mode-of-signifying-may-be-unimportant-but-it-is-always-important-that-it-is-a-possible-mode-of-signifying.-And-that-is-generally-so-in-philosophy:-again-and-again-the-individual-case-turns-out-to-be-unimportant,-but-the-possibility-of-each-individual-case-discloses-something-about-the-essence-of-the-world."></a> <a href="#3.3421-A-particular-mode-of-signifying-may-be-unimportant-but-it-is-always-important-that-it-is-a-possible-mode-of-signifying.-And-that-is-generally-so-in-philosophy:-again-and-again-the-individual-case-turns-out-to-be-unimportant,-but-the-possibility-of-each-individual-case-discloses-something-about-the-essence-of-the-world.">3.3421 A particular mode of signifying may be unimportant but it is always important that it is a possible mode of signifying. And that is generally so in philosophy: again and again the individual case turns out to be unimportant, but the possibility of each individual case discloses something about the essence of the world.</a> <br></br> <div class="outline-text-6" id="text-3.3421-A-particular-mode-of-signifying-may-be-unimportant-but-it-is-always-important-that-it-is-a-possible-mode-of-signifying.-And-that-is-generally-so-in-philosophy:-again-and-again-the-individual-case-turns-out-to-be-unimportant,-but-the-possibility-of-each-individual-case-discloses-something-about-the-essence-of-the-world.">
 <p>
Well, each copy of a program is philosophically unimportant, but the fact that a program as a packaged thought exists, is quite extraordinary philosophically.
Moreover, programs generally seem to encompass the way of thinking of their authors.
</p>
</div>
</li>
</ol></li>

 <li> <a id="3.343-Definitions-are-rules-for-translating-from-one-language-into-another.-Any-correct-sign-language-must-be-translatable-into-any-other-in-accordance-with-such-rules:-it-is-this-that-they-all-have-in-common."></a> <a href="#3.343-Definitions-are-rules-for-translating-from-one-language-into-another.-Any-correct-sign-language-must-be-translatable-into-any-other-in-accordance-with-such-rules:-it-is-this-that-they-all-have-in-common.">3.343 Definitions are rules for translating from one language into another. Any correct sign-language must be translatable into any other in accordance with such rules: it is this that they all have in common.</a> <br></br> <div class="outline-text-5" id="text-3.343-Definitions-are-rules-for-translating-from-one-language-into-another.-Any-correct-sign-language-must-be-translatable-into-any-other-in-accordance-with-such-rules:-it-is-this-that-they-all-have-in-common.">
 <p>
That should be the case if, once again, you ignore Input/Output, and, possibly, mutation.
I guess, then you should be left with Turing-completeness?
Or, maybe, some other kind of completeness?
</p>
</div>
</li>

 <li> <a id="3.344-What-signifies-in-a-symbol-is-what-is-common-to-all-the-symbols-that-the-rules-of-logical-syntax-allow-us-to-substitute-for-it."></a> <a href="#3.344-What-signifies-in-a-symbol-is-what-is-common-to-all-the-symbols-that-the-rules-of-logical-syntax-allow-us-to-substitute-for-it.">3.344 What signifies in a symbol is what is common to all the symbols that the rules of logical syntax allow us to substitute for it.</a> <br></br> <div class="outline-text-5" id="text-3.344-What-signifies-in-a-symbol-is-what-is-common-to-all-the-symbols-that-the-rules-of-logical-syntax-allow-us-to-substitute-for-it.">
 <p>
I feel like he's hand-waving a lot about the "logical syntax", not even defining it properly.
</p>

 <p>
On the other hand, again, if we define a datatype through the accessors, then "what is common to all the symbols" just means that "semantics allows us to abstract over concrete implementations, as long as the accessors still work".
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.3441-For-instance,-we-can-express-what-is-common-to-all-notations-for-truth-functions-in-the-following-way:-they-have-in-common-that,-for-example,-the-notation-that-uses-%E2%80%98~p%E2%80%99-(%E2%80%98not-p%E2%80%99)-and-%E2%80%98p-v-q%E2%80%99-(%E2%80%98p-or-q%E2%80%99)-can-be-substituted-for-any-of-them.-(This-serves-to-characterize-the-way-in-which-something-general-can-be-disclosed-by-the-possibility-of-a-specific-notation.)"></a> <a href="#3.3441-For-instance,-we-can-express-what-is-common-to-all-notations-for-truth-functions-in-the-following-way:-they-have-in-common-that,-for-example,-the-notation-that-uses-%E2%80%98~p%E2%80%99-(%E2%80%98not-p%E2%80%99)-and-%E2%80%98p-v-q%E2%80%99-(%E2%80%98p-or-q%E2%80%99)-can-be-substituted-for-any-of-them.-(This-serves-to-characterize-the-way-in-which-something-general-can-be-disclosed-by-the-possibility-of-a-specific-notation.)">3.3441 For instance, we can express what is common to all notations for truth-functions in the following way: they have in common that, for example, the notation that uses ‘~p’ (‘not p’) and ‘p v q’ (‘p or q’) can be substituted for any of them. (This serves to characterize the way in which something general can be disclosed by the possibility of a specific notation.)</a> <br></br> <div class="outline-text-6" id="text-3.3441-For-instance,-we-can-express-what-is-common-to-all-notations-for-truth-functions-in-the-following-way:-they-have-in-common-that,-for-example,-the-notation-that-uses-%E2%80%98~p%E2%80%99-(%E2%80%98not-p%E2%80%99)-and-%E2%80%98p-v-q%E2%80%99-(%E2%80%98p-or-q%E2%80%99)-can-be-substituted-for-any-of-them.-(This-serves-to-characterize-the-way-in-which-something-general-can-be-disclosed-by-the-possibility-of-a-specific-notation.)">
 <p>
So, is this just about making sure that Scheme and C are equivalent in the logical sense?
</p>
</div>
</li>

 <li> <a id="3.3442-Nor-does-analysis-resolve-the-sign-for-a-complex-in-an-arbitrary-way,-so-that-it-would-have-a-different-resolution-every-time-that-it-was-incorporated-in-a-different-proposition."></a> <a href="#3.3442-Nor-does-analysis-resolve-the-sign-for-a-complex-in-an-arbitrary-way,-so-that-it-would-have-a-different-resolution-every-time-that-it-was-incorporated-in-a-different-proposition.">3.3442 Nor does analysis resolve the sign for a complex in an arbitrary way, so that it would have a different resolution every time that it was incorporated in a different proposition.</a> <br></br> <div class="outline-text-6" id="text-3.3442-Nor-does-analysis-resolve-the-sign-for-a-complex-in-an-arbitrary-way,-so-that-it-would-have-a-different-resolution-every-time-that-it-was-incorporated-in-a-different-proposition.">
 <p>
It would have been a nice testing heuristic.
</p>

 <p>
I am not very sure, but it seems that "analysis" in this clause really is the same as the "analysis" in SICP.
When a complex sign is transformed into a lambda, there is only one way of doing so throughout the program?
Or isn't it?
</p>

 <p>
Not very sure.
</p>
</div>
</li>
</ol></li>
</ol></div>
</div>

 <div id="outline-container-3.4-A-proposition-determines-a-place-in-logical-space.-The-existence-of-this-logical-place-is-guaranteed-by-the-mere-existence-of-the-constituents-%E2%80%94-by-the-existence-of-the-proposition-with-a-sense." class="outline-3">
 <h3 id="3.4-A-proposition-determines-a-place-in-logical-space.-The-existence-of-this-logical-place-is-guaranteed-by-the-mere-existence-of-the-constituents-%E2%80%94-by-the-existence-of-the-proposition-with-a-sense."> <span class="section-number-3">3.4.</span>  <a href="#3.4-A-proposition-determines-a-place-in-logical-space.-The-existence-of-this-logical-place-is-guaranteed-by-the-mere-existence-of-the-constituents-%E2%80%94-by-the-existence-of-the-proposition-with-a-sense.">3.4 A proposition determines a place in logical space. The existence of this logical place is guaranteed by the mere existence of the constituents — by the existence of the proposition with a sense.</a></h3>
 <div class="outline-text-3" id="text-3.4-A-proposition-determines-a-place-in-logical-space.-The-existence-of-this-logical-place-is-guaranteed-by-the-mere-existence-of-the-constituents-%E2%80%94-by-the-existence-of-the-proposition-with-a-sense.">
 <p>
This is kind of obvious.
Your proposition will eventually be broken down into the elementary variables, bits, that can be 1 or 0, and that is "the space" and "the place".
The proposition will have sense, but may be false.
</p>
</div>

 <div id="outline-container-3.41-The-propositional-sign-with-logical-co-ordinates-%E2%80%94-that-is-the-logical-place." class="outline-4">
 <h4 id="3.41-The-propositional-sign-with-logical-co-ordinates-%E2%80%94-that-is-the-logical-place."> <span class="section-number-4">3.4.1.</span>  <a href="#3.41-The-propositional-sign-with-logical-co-ordinates-%E2%80%94-that-is-the-logical-place.">3.41 The propositional sign with logical co-ordinates — that is the logical place.</a></h4>
 <div class="outline-text-4" id="text-3.41-The-propositional-sign-with-logical-co-ordinates-%E2%80%94-that-is-the-logical-place.">
 <p>
Obvious.
</p>
</div>

 <ol class="org-ol"> <li> <a id="3.411-In-geometry-and-logic-alike-a-place-is-a-possibility:-something-can-exist-in-it."></a> <a href="#3.411-In-geometry-and-logic-alike-a-place-is-a-possibility:-something-can-exist-in-it.">3.411 In geometry and logic alike a place is a possibility: something can exist in it.</a> <br></br> <div class="outline-text-5" id="text-3.411-In-geometry-and-logic-alike-a-place-is-a-possibility:-something-can-exist-in-it.">
 <p>
Sure.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-3.42-A-proposition-can-determine-only-one-place-in-logical-space:-nevertheless-the-whole-of-logical-space-must-already-be-given-by-it.-(Otherwise-negation,-logical-sum,-logical-product,-etc.;-would-introduce-more-and-more-new-elements-%E2%80%94-in-co-ordination.)-(The-logical-scaffolding-surrounding-a-picture-determines-logical-space.-The-force-of-a-proposition-reaches-through-the-whole-of-logical-space.)" class="outline-4">
 <h4 id="3.42-A-proposition-can-determine-only-one-place-in-logical-space:-nevertheless-the-whole-of-logical-space-must-already-be-given-by-it.-(Otherwise-negation,-logical-sum,-logical-product,-etc.;-would-introduce-more-and-more-new-elements-%E2%80%94-in-co-ordination.)-(The-logical-scaffolding-surrounding-a-picture-determines-logical-space.-The-force-of-a-proposition-reaches-through-the-whole-of-logical-space.)"> <span class="section-number-4">3.4.2.</span>  <a href="#3.42-A-proposition-can-determine-only-one-place-in-logical-space:-nevertheless-the-whole-of-logical-space-must-already-be-given-by-it.-(Otherwise-negation,-logical-sum,-logical-product,-etc.;-would-introduce-more-and-more-new-elements-%E2%80%94-in-co-ordination.)-(The-logical-scaffolding-surrounding-a-picture-determines-logical-space.-The-force-of-a-proposition-reaches-through-the-whole-of-logical-space.)">3.42 A proposition can determine only one place in logical space: nevertheless the whole of logical space must already be given by it. (Otherwise negation, logical sum, logical product, etc.; would introduce more and more new elements — in co-ordination.) (The logical scaffolding surrounding a picture determines logical space. The force of a proposition reaches through the whole of logical space.)</a></h4>
 <div class="outline-text-4" id="text-3.42-A-proposition-can-determine-only-one-place-in-logical-space:-nevertheless-the-whole-of-logical-space-must-already-be-given-by-it.-(Otherwise-negation,-logical-sum,-logical-product,-etc.;-would-introduce-more-and-more-new-elements-%E2%80%94-in-co-ordination.)-(The-logical-scaffolding-surrounding-a-picture-determines-logical-space.-The-force-of-a-proposition-reaches-through-the-whole-of-logical-space.)">
 <p>
Kinda means that a relation is a subset of the Cartesian product of the input and output.
First year mathematical logic.
</p>
</div>
</div>
</div>

 <div id="outline-container-3.5-A-propositional-sign,-applied-and-thought-out,-is-a-thought." class="outline-3">
 <h3 id="3.5-A-propositional-sign,-applied-and-thought-out,-is-a-thought."> <span class="section-number-3">3.5.</span>  <a href="#3.5-A-propositional-sign,-applied-and-thought-out,-is-a-thought.">3.5 A propositional sign, applied and thought out, is a thought.</a></h3>
 <div class="outline-text-3" id="text-3.5-A-propositional-sign,-applied-and-thought-out,-is-a-thought.">
 <p>
A "thought" is a logical picture of facts, as he defines it.
So, evaluating a proposition should give us a "logical picture of facts"?
</p>
</div>
</div>
</section> <section id="outline-container-4-A-thought-is-a-proposition-with-a-sense." class="outline-2"> <h2 id="4-A-thought-is-a-proposition-with-a-sense."> <span class="section-number-2">4.</span>  <a href="#4-A-thought-is-a-proposition-with-a-sense.">4 A thought is a proposition with a sense.</a></h2>
 <div class="outline-text-2" id="text-4-A-thought-is-a-proposition-with-a-sense.">
 <p>
Don't all propositions have sense by construction?
Or, maybe, it's just complex propositions that are guaranteed to have sense.
Basic ones may not have any sense.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.001-The-totality-of-propositions-is-language."></a> <a href="#4.001-The-totality-of-propositions-is-language.">4.001 The totality of propositions is language.</a> <br></br> <div class="outline-text-5" id="text-4.001-The-totality-of-propositions-is-language.">
 <p>
Theoretical totality or practical totality?
What about propositions that have no sense?
</p>
</div>
</li>

 <li> <a id="4.002-Man-possesses-the-ability-to-construct-languages-capable-of-expressing-every-sense,-without-having-any-idea-how-each-word-has-meaning-or-what-its-meaning-is-%E2%80%94-just-as-people-speak-without-knowing-how-the-individual-sounds-are-produced.-Everyday-language-is-a-part-of-the-human-organism-and-is-no-less-complicated-than-it.-It-is-not-humanly-possible-to-gather-immediately-from-it-what-the-logic-of-language-is.-Language-disguises-thought.-So-much-so,-that-from-the-outward-form-of-the-clothing-it-is-impossible-to-infer-the-form-of-the-thought-beneath-it,-because-the-outward-form-of-the-clothing-is-not-designed-to-reveal-the-form-of-the-body,-but-for-entirely-different-purposes.-The-tacit-conventions-on-which-the-understanding-of-everyday-language-depends-are-enormously-complicated."></a> <a href="#4.002-Man-possesses-the-ability-to-construct-languages-capable-of-expressing-every-sense,-without-having-any-idea-how-each-word-has-meaning-or-what-its-meaning-is-%E2%80%94-just-as-people-speak-without-knowing-how-the-individual-sounds-are-produced.-Everyday-language-is-a-part-of-the-human-organism-and-is-no-less-complicated-than-it.-It-is-not-humanly-possible-to-gather-immediately-from-it-what-the-logic-of-language-is.-Language-disguises-thought.-So-much-so,-that-from-the-outward-form-of-the-clothing-it-is-impossible-to-infer-the-form-of-the-thought-beneath-it,-because-the-outward-form-of-the-clothing-is-not-designed-to-reveal-the-form-of-the-body,-but-for-entirely-different-purposes.-The-tacit-conventions-on-which-the-understanding-of-everyday-language-depends-are-enormously-complicated.">4.002 Man possesses the ability to construct languages capable of expressing every sense, without having any idea how each word has meaning or what its meaning is — just as people speak without knowing how the individual sounds are produced. Everyday language is a part of the human organism and is no less complicated than it. It is not humanly possible to gather immediately from it what the logic of language is. Language disguises thought. So much so, that from the outward form of the clothing it is impossible to infer the form of the thought beneath it, because the outward form of the clothing is not designed to reveal the form of the body, but for entirely different purposes. The tacit conventions on which the understanding of everyday language depends are enormously complicated.</a> <br></br> <div class="outline-text-5" id="text-4.002-Man-possesses-the-ability-to-construct-languages-capable-of-expressing-every-sense,-without-having-any-idea-how-each-word-has-meaning-or-what-its-meaning-is-%E2%80%94-just-as-people-speak-without-knowing-how-the-individual-sounds-are-produced.-Everyday-language-is-a-part-of-the-human-organism-and-is-no-less-complicated-than-it.-It-is-not-humanly-possible-to-gather-immediately-from-it-what-the-logic-of-language-is.-Language-disguises-thought.-So-much-so,-that-from-the-outward-form-of-the-clothing-it-is-impossible-to-infer-the-form-of-the-thought-beneath-it,-because-the-outward-form-of-the-clothing-is-not-designed-to-reveal-the-form-of-the-body,-but-for-entirely-different-purposes.-The-tacit-conventions-on-which-the-understanding-of-everyday-language-depends-are-enormously-complicated.">
 <p>
This clause is almost saying that "The theory in this book should not be applied to human languages, really".
Leave "exact symbolism" to machines.
</p>
</div>
</li>

 <li> <a id="4.003-Most-of-the-propositions-and-questions-to-be-found-in-philosophical-works-are-not-false-but-nonsensical.-Consequently-we-cannot-give-any-answer-to-questions-of-this-kind,-but-can-only-point-out-that-they-are-nonsensical.-Most-of-the-propositions-and-questions-of-philosophers-arise-from-our-failure-to-understand-the-logic-of-our-language.-(They-belong-to-the-same-class-as-the-question-whether-the-good-is-more-or-less-identical-than-the-beautiful.)-And-it-is-not-surprising-that-the-deepest-problems-are-in-fact-not-problems-at-all."></a> <a href="#4.003-Most-of-the-propositions-and-questions-to-be-found-in-philosophical-works-are-not-false-but-nonsensical.-Consequently-we-cannot-give-any-answer-to-questions-of-this-kind,-but-can-only-point-out-that-they-are-nonsensical.-Most-of-the-propositions-and-questions-of-philosophers-arise-from-our-failure-to-understand-the-logic-of-our-language.-(They-belong-to-the-same-class-as-the-question-whether-the-good-is-more-or-less-identical-than-the-beautiful.)-And-it-is-not-surprising-that-the-deepest-problems-are-in-fact-not-problems-at-all.">4.003 Most of the propositions and questions to be found in philosophical works are not false but nonsensical. Consequently we cannot give any answer to questions of this kind, but can only point out that they are nonsensical. Most of the propositions and questions of philosophers arise from our failure to understand the logic of our language. (They belong to the same class as the question whether the good is more or less identical than the beautiful.) And it is not surprising that the deepest problems are in fact not problems at all.</a> <br></br> <div class="outline-text-5" id="text-4.003-Most-of-the-propositions-and-questions-to-be-found-in-philosophical-works-are-not-false-but-nonsensical.-Consequently-we-cannot-give-any-answer-to-questions-of-this-kind,-but-can-only-point-out-that-they-are-nonsensical.-Most-of-the-propositions-and-questions-of-philosophers-arise-from-our-failure-to-understand-the-logic-of-our-language.-(They-belong-to-the-same-class-as-the-question-whether-the-good-is-more-or-less-identical-than-the-beautiful.)-And-it-is-not-surprising-that-the-deepest-problems-are-in-fact-not-problems-at-all.">
 <p>
To me at least, this clause should be interpreted in the following way:
What "makes sense" is really equivalent to "what we can write a program about, deciding whether things are true or false".
</p>

 <p>
The "deep questions proposed in philosophy that have no logical sense" are not really lacking sense, they are illustrating the difference between that part of the language (and with it, the reality) that we have already harnessed by logic (and thus can reason about, and write programs about), and the part that we are capable of operating with (as humans), but do not understand well enough and deep enough to write programs about.
</p>

 <p>
This is the central raison-d-être of philosophy: spotting those areas that exist, but to which the logical abstraction tree that allows us to create sciences and societies has not yet grown.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.0031-All-philosophy-is-a-%E2%80%98critique-of-language%E2%80%99-(though-not-in-Mauthner%E2%80%99s-sense).-It-was-Russell-who-performed-the-service-of-showing-that-the-apparent-logical-form-of-a-proposition-need-not-be-its-real-one."></a> <a href="#4.0031-All-philosophy-is-a-%E2%80%98critique-of-language%E2%80%99-(though-not-in-Mauthner%E2%80%99s-sense).-It-was-Russell-who-performed-the-service-of-showing-that-the-apparent-logical-form-of-a-proposition-need-not-be-its-real-one.">4.0031 All philosophy is a ‘critique of language’ (though not in Mauthner’s sense). It was Russell who performed the service of showing that the apparent logical form of a proposition need not be its real one.</a> <br></br> <div class="outline-text-6" id="text-4.0031-All-philosophy-is-a-%E2%80%98critique-of-language%E2%80%99-(though-not-in-Mauthner%E2%80%99s-sense).-It-was-Russell-who-performed-the-service-of-showing-that-the-apparent-logical-form-of-a-proposition-need-not-be-its-real-one.">
 <p>
Fritz Mauthner, German author, theatre critic, and exponent of philosophical Skepticism derived from a critique of human knowledge.
</p>

 <p>
I'd really like him to point out where exactly Russel shows this.
</p>

 <p>
If we recall Eric Berne here, who introduced the notion of "transactions" in human interaction, and suggested that superficial transaction structure may not be the underlying one.
"Let me show you my wonderful haystack in the barn" may be interpreted ambiguously.
</p>
</div>
</li>
</ol></li>
</ol> <div id="outline-container-4.01-A-proposition-is-a-picture-of-reality.-A-proposition-is-a-model-of-reality-as-we-imagine-it." class="outline-4">
 <h4 id="4.01-A-proposition-is-a-picture-of-reality.-A-proposition-is-a-model-of-reality-as-we-imagine-it."> <span class="section-number-4">4.0.1.</span>  <a href="#4.01-A-proposition-is-a-picture-of-reality.-A-proposition-is-a-model-of-reality-as-we-imagine-it.">4.01 A proposition is a picture of reality. A proposition is a model of reality as we imagine it.</a></h4>
 <div class="outline-text-4" id="text-4.01-A-proposition-is-a-picture-of-reality.-A-proposition-is-a-model-of-reality-as-we-imagine-it.">
 <p>
Indeed.
We are inputting those propositions into the machine, and thus creating a model of reality.
Then we can query the machine and see if your model of reality is any good.
</p>

 <p>
"We imagine it" should be really read as "as the program describes it".
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.011-At-first-sight-a-proposition-%E2%80%94-one-set-out-on-the-printed-page,-for-example-%E2%80%94-does-not-seem-to-be-a-picture-of-the-reality-with-which-it-is-concerned.-But-neither-do-written-notes-seem-at-first-sight-to-be-a-picture-of-a-piece-of-music,-nor-our-phonetic-notation-(the-alphabet)-to-be-a-picture-of-our-speech.-And-yet-these-sign-languages-prove-to-be-pictures,-even-in-the-ordinary-sense,-of-what-they-represent."></a> <a href="#4.011-At-first-sight-a-proposition-%E2%80%94-one-set-out-on-the-printed-page,-for-example-%E2%80%94-does-not-seem-to-be-a-picture-of-the-reality-with-which-it-is-concerned.-But-neither-do-written-notes-seem-at-first-sight-to-be-a-picture-of-a-piece-of-music,-nor-our-phonetic-notation-(the-alphabet)-to-be-a-picture-of-our-speech.-And-yet-these-sign-languages-prove-to-be-pictures,-even-in-the-ordinary-sense,-of-what-they-represent.">4.011 At first sight a proposition — one set out on the printed page, for example — does not seem to be a picture of the reality with which it is concerned. But neither do written notes seem at first sight to be a picture of a piece of music, nor our phonetic notation (the alphabet) to be a picture of our speech. And yet these sign-languages prove to be pictures, even in the ordinary sense, of what they represent.</a> <br></br> <div class="outline-text-5" id="text-4.011-At-first-sight-a-proposition-%E2%80%94-one-set-out-on-the-printed-page,-for-example-%E2%80%94-does-not-seem-to-be-a-picture-of-the-reality-with-which-it-is-concerned.-But-neither-do-written-notes-seem-at-first-sight-to-be-a-picture-of-a-piece-of-music,-nor-our-phonetic-notation-(the-alphabet)-to-be-a-picture-of-our-speech.-And-yet-these-sign-languages-prove-to-be-pictures,-even-in-the-ordinary-sense,-of-what-they-represent.">
 <p>
In the "ordinary sense" here should hint us that machines should eventually recognise code written on paper with pen, and be able to interpret it.
</p>

 <p>
"At first sight" should hint us that we are missing a huge lot when discussing programs without data (!).
This is  <span class="underline">very</span> important, as garbage-in=garbage-out.
</p>

 <p>
Notes are a nice illustration here, because in order to generate wave-forms from notes, you need to have a sound bank, or do FM-synthesis.
</p>
</div>
</li>

 <li> <a id="4.012-It-is-obvious-that-a-proposition-of-the-form-%E2%80%98aRb%E2%80%99-strikes-us-as-a-picture.-In-this-case-the-sign-is-obviously-a-likeness-of-what-is-signified."></a> <a href="#4.012-It-is-obvious-that-a-proposition-of-the-form-%E2%80%98aRb%E2%80%99-strikes-us-as-a-picture.-In-this-case-the-sign-is-obviously-a-likeness-of-what-is-signified.">4.012 It is obvious that a proposition of the form ‘aRb’ strikes us as a picture. In this case the sign is obviously a likeness of what is signified.</a> <br></br> <div class="outline-text-5" id="text-4.012-It-is-obvious-that-a-proposition-of-the-form-%E2%80%98aRb%E2%80%99-strikes-us-as-a-picture.-In-this-case-the-sign-is-obviously-a-likeness-of-what-is-signified.">
 <p>
Well, since logic is such a primitive domain, similar to manipulation of characters.
</p>
</div>
</li>

 <li> <a id="4.013-And-if-we-penetrate-to-the-essence-of-this-pictorial-character,-we-see-that-it-is-not-impaired-by-apparent-irregularities-(such-as-the-use-of-%E2%99%AF-and-%E2%99%AD-in-musical-notation).-For-even-these-irregularities-depict-what-they-are-intended-to-express;-only-they-do-it-in-a-different-way."></a> <a href="#4.013-And-if-we-penetrate-to-the-essence-of-this-pictorial-character,-we-see-that-it-is-not-impaired-by-apparent-irregularities-(such-as-the-use-of-%E2%99%AF-and-%E2%99%AD-in-musical-notation).-For-even-these-irregularities-depict-what-they-are-intended-to-express;-only-they-do-it-in-a-different-way.">4.013 And if we penetrate to the essence of this pictorial character, we see that it is not impaired by apparent irregularities (such as the use of ♯ and ♭ in musical notation). For even these irregularities depict what they are intended to express; only they do it in a different way.</a> <br></br> <div class="outline-text-5" id="text-4.013-And-if-we-penetrate-to-the-essence-of-this-pictorial-character,-we-see-that-it-is-not-impaired-by-apparent-irregularities-(such-as-the-use-of-%E2%99%AF-and-%E2%99%AD-in-musical-notation).-For-even-these-irregularities-depict-what-they-are-intended-to-express;-only-they-do-it-in-a-different-way.">
 <p>
Emm..?
How are sharp and flat "irregularities"?
Aren't they a valid part of music notation?
</p>

 <p>
Let us try to not overthink it. 
Music notation consists of notes. 
Obviously, sharp and flat are extraneous here.
</p>
</div>
</li>

 <li> <a id="4.014-A-gramophone-record,-the-musical-idea,-the-written-notes,-and-the-sound-waves,-all-stand-to-one-another-in-the-same-internal-relation-of-depicting-that-holds-between-language-and-the-world.-They-are-all-constructed-according-to-a-common-logical-pattern.-(Like-the-two-youths-in-the-fairy-tale,-their-two-horses,-and-their-lilies.-They-are-all-in-a-certain-sense-one.)"></a> <a href="#4.014-A-gramophone-record,-the-musical-idea,-the-written-notes,-and-the-sound-waves,-all-stand-to-one-another-in-the-same-internal-relation-of-depicting-that-holds-between-language-and-the-world.-They-are-all-constructed-according-to-a-common-logical-pattern.-(Like-the-two-youths-in-the-fairy-tale,-their-two-horses,-and-their-lilies.-They-are-all-in-a-certain-sense-one.)">4.014 A gramophone record, the musical idea, the written notes, and the sound-waves, all stand to one another in the same internal relation of depicting that holds between language and the world. They are all constructed according to a common logical pattern. (Like the two youths in the fairy-tale, their two horses, and their lilies. They are all in a certain sense one.)</a> <br></br> <div class="outline-text-5" id="text-4.014-A-gramophone-record,-the-musical-idea,-the-written-notes,-and-the-sound-waves,-all-stand-to-one-another-in-the-same-internal-relation-of-depicting-that-holds-between-language-and-the-world.-They-are-all-constructed-according-to-a-common-logical-pattern.-(Like-the-two-youths-in-the-fairy-tale,-their-two-horses,-and-their-lilies.-They-are-all-in-a-certain-sense-one.)">
 <p>
So… a piece of memory, a file, is "real". 
We can take this text, written in an org file, and put it through a TTS engine, to obtain its audio form, or put it onto the display, to obtain a picture. 
</p>

 <p>
What I do not like here, is the mention of the fairy-tale.
Horses and lilies are aspects of the concept, not views.
A pair of lovers in a fairy tale is not necessarily bound to have a pair of horses.
But maybe that is just me.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.0141-There-is-a-general-rule-by-means-of-which-the-musician-can-obtain-the-symphony-from-the-score,-and-which-makes-it-possible-to-derive-the-symphony-from-the-groove-on-the-gramophone-record,-and,-using-the-first-rule,-to-derive-the-score-again.-That-is-what-constitutes-the-inner-similarity-between-these-things-which-seem-to-be-constructed-in-such-entirely-different-ways.-And-that-rule-is-the-law-of-projection-which-projects-the-symphony-into-the-language-of-musical-notation.-It-is-the-rule-for-translating-this-language-into-the-language-of-gramophone-records."></a> <a href="#4.0141-There-is-a-general-rule-by-means-of-which-the-musician-can-obtain-the-symphony-from-the-score,-and-which-makes-it-possible-to-derive-the-symphony-from-the-groove-on-the-gramophone-record,-and,-using-the-first-rule,-to-derive-the-score-again.-That-is-what-constitutes-the-inner-similarity-between-these-things-which-seem-to-be-constructed-in-such-entirely-different-ways.-And-that-rule-is-the-law-of-projection-which-projects-the-symphony-into-the-language-of-musical-notation.-It-is-the-rule-for-translating-this-language-into-the-language-of-gramophone-records.">4.0141 There is a general rule by means of which the musician can obtain the symphony from the score, and which makes it possible to derive the symphony from the groove on the gramophone record, and, using the first rule, to derive the score again. That is what constitutes the inner similarity between these things which seem to be constructed in such entirely different ways. And that rule is the law of projection which projects the symphony into the language of musical notation. It is the rule for translating this language into the language of gramophone records.</a> <br></br> <div class="outline-text-6" id="text-4.0141-There-is-a-general-rule-by-means-of-which-the-musician-can-obtain-the-symphony-from-the-score,-and-which-makes-it-possible-to-derive-the-symphony-from-the-groove-on-the-gramophone-record,-and,-using-the-first-rule,-to-derive-the-score-again.-That-is-what-constitutes-the-inner-similarity-between-these-things-which-seem-to-be-constructed-in-such-entirely-different-ways.-And-that-rule-is-the-law-of-projection-which-projects-the-symphony-into-the-language-of-musical-notation.-It-is-the-rule-for-translating-this-language-into-the-language-of-gramophone-records.">
 <p>
Fair point.
Seems to be exactly about what I wrote above.
The "symphony" is bytes, and we can generate different presentations of those bytes.
</p>
</div>
</li>
</ol></li>


 <li> <a id="4.015-The-possibility-of-all-imagery,-of-all-our-pictorial-modes-of-expression,-is-contained-in-the-logic-of-depiction."></a> <a href="#4.015-The-possibility-of-all-imagery,-of-all-our-pictorial-modes-of-expression,-is-contained-in-the-logic-of-depiction.">4.015 The possibility of all imagery, of all our pictorial modes of expression, is contained in the logic of depiction.</a> <br></br> <div class="outline-text-5" id="text-4.015-The-possibility-of-all-imagery,-of-all-our-pictorial-modes-of-expression,-is-contained-in-the-logic-of-depiction.">
 <p>
I would say "bound" rather than "contained".
Your expressions have to be valid with respect to the language that you are writing them in.
An you can, in principle, describe "all possible images" that can be written in, say, a 32-bit TIFF file.
That set is not just well-defined, it is finite.
</p>
</div>
</li>

 <li> <a id="4.016-In-order-to-understand-the-essential-nature-of-a-proposition,-we-should-consider-hieroglyphic-script-which-depicts-the-facts-that-it-describes.-And-alphabetic-script-developed-out-of-it-without-losing-what-was-essential-to-depiction."></a> <a href="#4.016-In-order-to-understand-the-essential-nature-of-a-proposition,-we-should-consider-hieroglyphic-script-which-depicts-the-facts-that-it-describes.-And-alphabetic-script-developed-out-of-it-without-losing-what-was-essential-to-depiction.">4.016 In order to understand the essential nature of a proposition, we should consider hieroglyphic script which depicts the facts that it describes. And alphabetic script developed out of it without losing what was essential to depiction.</a> <br></br> <div class="outline-text-5" id="text-4.016-In-order-to-understand-the-essential-nature-of-a-proposition,-we-should-consider-hieroglyphic-script-which-depicts-the-facts-that-it-describes.-And-alphabetic-script-developed-out-of-it-without-losing-what-was-essential-to-depiction.">
 <p>
Not very useful illustration, but doesn't hurt.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-4.02-We-can-see-this-from-the-fact-that-we-understand-the-sense-of-a-propositional-sign-without-its-having-been-explained-to-us." class="outline-4">
 <h4 id="4.02-We-can-see-this-from-the-fact-that-we-understand-the-sense-of-a-propositional-sign-without-its-having-been-explained-to-us."> <span class="section-number-4">4.0.2.</span>  <a href="#4.02-We-can-see-this-from-the-fact-that-we-understand-the-sense-of-a-propositional-sign-without-its-having-been-explained-to-us.">4.02 We can see this from the fact that we understand the sense of a propositional sign without its having been explained to us.</a></h4>
 <div class="outline-text-4" id="text-4.02-We-can-see-this-from-the-fact-that-we-understand-the-sense-of-a-propositional-sign-without-its-having-been-explained-to-us.">
 <p>
Well, if the syntax of your proposition is correct…
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.021-A-proposition-is-a-picture-of-reality:-for-if-I-understand-a-proposition,-I-know-the-situation-that-it-represents.-And-I-understand-the-proposition-without-having-had-its-sense-explained-to-me."></a> <a href="#4.021-A-proposition-is-a-picture-of-reality:-for-if-I-understand-a-proposition,-I-know-the-situation-that-it-represents.-And-I-understand-the-proposition-without-having-had-its-sense-explained-to-me.">4.021 A proposition is a picture of reality: for if I understand a proposition, I know the situation that it represents. And I understand the proposition without having had its sense explained to me.</a> <br></br> <div class="outline-text-5" id="text-4.021-A-proposition-is-a-picture-of-reality:-for-if-I-understand-a-proposition,-I-know-the-situation-that-it-represents.-And-I-understand-the-proposition-without-having-had-its-sense-explained-to-me.">
 <p>
If my compiler compiles the code, it more or less means that it understands it as much as it understands anything.
</p>
</div>
</li>

 <li> <a id="4.022-A-proposition-shows-its-sense.-A-proposition-shows-how-things-stand-if-it-is-true.-And-it-says-that-they-do-so-stand."></a> <a href="#4.022-A-proposition-shows-its-sense.-A-proposition-shows-how-things-stand-if-it-is-true.-And-it-says-that-they-do-so-stand.">4.022 A proposition shows its sense. A proposition shows how things stand if it is true. And it says that they do so stand.</a> <br></br> <div class="outline-text-5" id="text-4.022-A-proposition-shows-its-sense.-A-proposition-shows-how-things-stand-if-it-is-true.-And-it-says-that-they-do-so-stand.">
 <p>
I think, this a little bit refers to the constructivist approach of computer logic.
In order to formulate a computable proposition, you need to formulate it in a constructive way, "how to check that it is correct".
</p>

 <p>
Does it mean that Wittgenstein's theory does not work for anything non-constructive?
</p>
</div>
</li>

 <li> <a id="4.023-A-proposition-must-restrict-reality-to-two-alternatives:-yes-or-no.-In-order-to-do-that,-it-must-describe-reality-completely.-A-proposition-is-a-description-of-a-state-of-affairs.-Just-as-a-description-of-an-object-describes-it-by-giving-its-external-properties,-so-a-proposition-describes-reality-by-its-internal-properties.--A-proposition-constructs-a-world-with-the-help-of-a-logical-scaffolding,-so-that-one-can-actually-see-from-the-proposition-how-everything-stands-logically-if-it-is-true.-One-can-draw-inferences-from-a-false-proposition."></a> <a href="#4.023-A-proposition-must-restrict-reality-to-two-alternatives:-yes-or-no.-In-order-to-do-that,-it-must-describe-reality-completely.-A-proposition-is-a-description-of-a-state-of-affairs.-Just-as-a-description-of-an-object-describes-it-by-giving-its-external-properties,-so-a-proposition-describes-reality-by-its-internal-properties.--A-proposition-constructs-a-world-with-the-help-of-a-logical-scaffolding,-so-that-one-can-actually-see-from-the-proposition-how-everything-stands-logically-if-it-is-true.-One-can-draw-inferences-from-a-false-proposition.">4.023 A proposition must restrict reality to two alternatives: yes or no. In order to do that, it must describe reality completely. A proposition is a description of a state of affairs. Just as a description of an object describes it by giving its external properties, so a proposition describes reality by its internal properties.  A proposition constructs a world with the help of a logical scaffolding, so that one can actually see from the proposition how everything stands logically if it is true. One can draw inferences from a false proposition.</a> <br></br> <div class="outline-text-5" id="text-4.023-A-proposition-must-restrict-reality-to-two-alternatives:-yes-or-no.-In-order-to-do-that,-it-must-describe-reality-completely.-A-proposition-is-a-description-of-a-state-of-affairs.-Just-as-a-description-of-an-object-describes-it-by-giving-its-external-properties,-so-a-proposition-describes-reality-by-its-internal-properties.--A-proposition-constructs-a-world-with-the-help-of-a-logical-scaffolding,-so-that-one-can-actually-see-from-the-proposition-how-everything-stands-logically-if-it-is-true.-One-can-draw-inferences-from-a-false-proposition.">
 <p>
This yes-or-no reduction is very common in Computer Science.
Very few functions in Computer Science are formulated as "What is f(x)?"
Rather, they are formulated as "Is the first bit of f(x) equal to 1?".
</p>

 <p>
The dependency between internal and external properties is not so obvious.
We may look at it from an information-theoretic standpoint: describing an object's external properties, as long as those properties are consistent with the basic laws of the world, we are (in general) limiting its internal properties as well.
</p>

 <p>
Propositions allow us to infer these internal properties.
</p>

 <p>
Example: a vector linear equation \(Ax=0\).
This is an external property of the set of \(x\).
</p>

 <p>
An internal property would be the fact any linear combination of \(x_1\) and \(x_2\) would also be a solution.
Or something like that.
</p>
</div>
</li>

 <li> <a id="4.024-To-understand-a-proposition-means-to-know-what-is-the-case-if-it-is-true.-(One-can-understand-it,-therefore,-without-knowing-whether-it-is-true.)-It-is-understood-by-anyone-who-understands-its-constituents."></a> <a href="#4.024-To-understand-a-proposition-means-to-know-what-is-the-case-if-it-is-true.-(One-can-understand-it,-therefore,-without-knowing-whether-it-is-true.)-It-is-understood-by-anyone-who-understands-its-constituents.">4.024 To understand a proposition means to know what is the case if it is true. (One can understand it, therefore, without knowing whether it is true.) It is understood by anyone who understands its constituents.</a> <br></br> <div class="outline-text-5" id="text-4.024-To-understand-a-proposition-means-to-know-what-is-the-case-if-it-is-true.-(One-can-understand-it,-therefore,-without-knowing-whether-it-is-true.)-It-is-understood-by-anyone-who-understands-its-constituents.">
 <p>
Propositions are created according to a set of "laws of the world", aren't they?
</p>

 <p>
Maybe, "to understand a proposition" here means "being able to read a proposition"?
E.g. a compiler "understands" a function, if it is written in a language that it is written to understand.
</p>

 <p>
A Scheme compiler understands Scheme.
If a function written in Scheme is correctly written, the compiler may run it and produce a result that will be correct.
(Because we believe that the function itself is correct.)
</p>
</div>
</li>

 <li> <a id="4.025-When-translating-one-language-into-another,-we-do-not-proceed-by-translating-each-proposition-of-the-one-into-a-proposition-of-the-other,-but-merely-by-translating-the-constituents-of-propositions.-(And-the-dictionary-translates-not-only-substantives,-but-also-verbs,-adjectives,-and-conjunctions,-etc.;-and-it-treats-them-all-in-the-same-way.)"></a> <a href="#4.025-When-translating-one-language-into-another,-we-do-not-proceed-by-translating-each-proposition-of-the-one-into-a-proposition-of-the-other,-but-merely-by-translating-the-constituents-of-propositions.-(And-the-dictionary-translates-not-only-substantives,-but-also-verbs,-adjectives,-and-conjunctions,-etc.;-and-it-treats-them-all-in-the-same-way.)">4.025 When translating one language into another, we do not proceed by translating each proposition of the one into a proposition of the other, but merely by translating the constituents of propositions. (And the dictionary translates not only substantives, but also verbs, adjectives, and conjunctions, etc.; and it treats them all in the same way.)</a> <br></br> <div class="outline-text-5" id="text-4.025-When-translating-one-language-into-another,-we-do-not-proceed-by-translating-each-proposition-of-the-one-into-a-proposition-of-the-other,-but-merely-by-translating-the-constituents-of-propositions.-(And-the-dictionary-translates-not-only-substantives,-but-also-verbs,-adjectives,-and-conjunctions,-etc.;-and-it-treats-them-all-in-the-same-way.)">
 <p>
That's an important point!
</p>

 <p>
And actually not always true in Lisp.
</p>

 <p>
What is being said here is that when we are porting code from Scheme into Emacs Lisp, we are  <span class="underline">not</span> writing an interpreter of Scheme in Emacs Lisp, but rather we are replacing Scheme's constructs with Emacs Lisp's.
</p>
</div>
</li>

 <li> <a id="4.026-The-meanings-of-simple-signs-(words)-must-be-explained-to-us-if-we-are-to-understand-them.-With-propositions,-however,-we-make-ourselves-understood."></a> <a href="#4.026-The-meanings-of-simple-signs-(words)-must-be-explained-to-us-if-we-are-to-understand-them.-With-propositions,-however,-we-make-ourselves-understood.">4.026 The meanings of simple signs (words) must be explained to us if we are to understand them. With propositions, however, we make ourselves understood.</a> <br></br> <div class="outline-text-5" id="text-4.026-The-meanings-of-simple-signs-(words)-must-be-explained-to-us-if-we-are-to-understand-them.-With-propositions,-however,-we-make-ourselves-understood.">
 <p>
The specification of special forms must be given in a "human language" with a lot of hand-waving.
Procedures, however, can be written purely formally.
</p>

 <p>
(Remember that our world has no I/O, so we probably do not need any primitive procedures.)
</p>
</div>
</li>

 <li> <a id="4.027-It-belongs-to-the-essence-of-a-proposition-that-it-should-be-able-to-communicate-a-new-sense-to-us."></a> <a href="#4.027-It-belongs-to-the-essence-of-a-proposition-that-it-should-be-able-to-communicate-a-new-sense-to-us.">4.027 It belongs to the essence of a proposition that it should be able to communicate a new sense to us.</a> <br></br> <div class="outline-text-5" id="text-4.027-It-belongs-to-the-essence-of-a-proposition-that-it-should-be-able-to-communicate-a-new-sense-to-us.">
 <p>
That is, extract the "internal properties".
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-4.03-A-proposition-must-use-old-expressions-to-communicate-a-new-sense.-A-proposition-communicates-a-situation-to-us,-and-so-it-must-be-essentially-connected-with-the-situation.-And-the-connexion-is-precisely-that-it-is-its-logical-picture.-A-proposition-states-something-only-in-so-far-as-it-is-a-picture." class="outline-4">
 <h4 id="4.03-A-proposition-must-use-old-expressions-to-communicate-a-new-sense.-A-proposition-communicates-a-situation-to-us,-and-so-it-must-be-essentially-connected-with-the-situation.-And-the-connexion-is-precisely-that-it-is-its-logical-picture.-A-proposition-states-something-only-in-so-far-as-it-is-a-picture."> <span class="section-number-4">4.0.3.</span>  <a href="#4.03-A-proposition-must-use-old-expressions-to-communicate-a-new-sense.-A-proposition-communicates-a-situation-to-us,-and-so-it-must-be-essentially-connected-with-the-situation.-And-the-connexion-is-precisely-that-it-is-its-logical-picture.-A-proposition-states-something-only-in-so-far-as-it-is-a-picture.">4.03 A proposition must use old expressions to communicate a new sense. A proposition communicates a situation to us, and so it must be essentially connected with the situation. And the connexion is precisely that it is its logical picture. A proposition states something only in so far as it is a picture.</a></h4>
 <div class="outline-text-4" id="text-4.03-A-proposition-must-use-old-expressions-to-communicate-a-new-sense.-A-proposition-communicates-a-situation-to-us,-and-so-it-must-be-essentially-connected-with-the-situation.-And-the-connexion-is-precisely-that-it-is-its-logical-picture.-A-proposition-states-something-only-in-so-far-as-it-is-a-picture.">
 <p>
A subroutine is written using the language it is written in.
(Rules of the world.)
</p>

 <p>
The rest I do not understand.
</p>

 <p>
Let's say that a proposition gives us some new information as long as it is extracting it from the "world", and therefore is "understanding" it.
</p>

 <p>
It can produce a random 1 or 0, but this is not very useful.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.031-In-a-proposition-a-situation-is,-as-it-were,-constructed-by-way-of-experiment.-Instead-of,-%E2%80%98This-proposition-has-such-and-such-a-sense%E2%80%99,-we-can-simply-say,-%E2%80%98This-proposition-represents-such-and-such-a-situation%E2%80%99."></a> <a href="#4.031-In-a-proposition-a-situation-is,-as-it-were,-constructed-by-way-of-experiment.-Instead-of,-%E2%80%98This-proposition-has-such-and-such-a-sense%E2%80%99,-we-can-simply-say,-%E2%80%98This-proposition-represents-such-and-such-a-situation%E2%80%99.">4.031 In a proposition a situation is, as it were, constructed by way of experiment. Instead of, ‘This proposition has such and such a sense’, we can simply say, ‘This proposition represents such and such a situation’.</a> <br></br> <div class="outline-text-5" id="text-4.031-In-a-proposition-a-situation-is,-as-it-were,-constructed-by-way-of-experiment.-Instead-of,-%E2%80%98This-proposition-has-such-and-such-a-sense%E2%80%99,-we-can-simply-say,-%E2%80%98This-proposition-represents-such-and-such-a-situation%E2%80%99.">
 <p>
We can see "running a program" in some sense as an evolution of a world, in which the initial memory state is the initial state of the simulator, or the initial condition in a Cauchy (initial value) problem.
</p>

 <p>
Functions, therefore, represent "what is happening" in the world, that is, a situation.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.0311-One-name-stands-for-one-thing,-another-for-another-thing,-and-they-are-combined-with-one-another.-In-this-way-the-whole-group-%E2%80%94-like-a-tableau-vivant-%E2%80%94-presents-a-state-of-affairs."></a> <a href="#4.0311-One-name-stands-for-one-thing,-another-for-another-thing,-and-they-are-combined-with-one-another.-In-this-way-the-whole-group-%E2%80%94-like-a-tableau-vivant-%E2%80%94-presents-a-state-of-affairs.">4.0311 One name stands for one thing, another for another thing, and they are combined with one another. In this way the whole group — like a tableau vivant — presents a state of affairs.</a> <br></br> <div class="outline-text-6" id="text-4.0311-One-name-stands-for-one-thing,-another-for-another-thing,-and-they-are-combined-with-one-another.-In-this-way-the-whole-group-%E2%80%94-like-a-tableau-vivant-%E2%80%94-presents-a-state-of-affairs.">
 <p>
"a silent and motionless group of people arranged to represent a scene or incident." – tableau vivant
</p>

 <p>
This is kinda like… 
</p>

 <p>
When your procedure is loaded into memory, the symbols and the parenthetical structure are transformed into an abstract syntactic tree.
</p>

 <p>
When you are resolving symbols, you are substituting them with the "actual things".
So, a procedure, at the beginning of the evaluation, is like an image of the scene of an accident (event).
</p>
</div>
</li>

 <li> <a id="4.0312-The-possibility-of-propositions-is-based-on-the-principle-that-objects-have-signs-as-their-representatives.-My-fundamental-idea-is-that-the-%E2%80%98logical-constants%E2%80%99-are-not-representatives;-that-there-can-be-no-representatives-of-the-logic-of-facts."></a> <a href="#4.0312-The-possibility-of-propositions-is-based-on-the-principle-that-objects-have-signs-as-their-representatives.-My-fundamental-idea-is-that-the-%E2%80%98logical-constants%E2%80%99-are-not-representatives;-that-there-can-be-no-representatives-of-the-logic-of-facts.">4.0312 The possibility of propositions is based on the principle that objects have signs as their representatives. My fundamental idea is that the ‘logical constants’ are not representatives; that there can be no representatives of the logic of facts.</a> <br></br> <div class="outline-text-6" id="text-4.0312-The-possibility-of-propositions-is-based-on-the-principle-that-objects-have-signs-as-their-representatives.-My-fundamental-idea-is-that-the-%E2%80%98logical-constants%E2%80%99-are-not-representatives;-that-there-can-be-no-representatives-of-the-logic-of-facts.">
 <p>
"Logical constants" here do not mean bits, but rather the primitives of the programming language (or instruction set).
</p>

 <p>
Indeed, they are bound to be undefined and have no meaning for the machine itself, because "it just lives according to them".
</p>

 <p>
It is possible to implement  <span class="underline">a language</span> in terms of  <span class="underline">another language</span>, sure, but it at the bottom of it there will be a meaningless substrate.
</p>
</div>
</li>
</ol></li>

 <li> <a id="4.032-It-is-only-in-so-far-as-a-proposition-is-logically-articulated-that-it-is-a-picture-of-a-situation.-(Even-the-proposition,-%E2%80%98Ambulo%E2%80%99,-is-composite:-for-its-stem-with-a-different-ending-yields-a-different-sense,-and-so-does-its-ending-with-a-different-stem.)"></a> <a href="#4.032-It-is-only-in-so-far-as-a-proposition-is-logically-articulated-that-it-is-a-picture-of-a-situation.-(Even-the-proposition,-%E2%80%98Ambulo%E2%80%99,-is-composite:-for-its-stem-with-a-different-ending-yields-a-different-sense,-and-so-does-its-ending-with-a-different-stem.)">4.032 It is only in so far as a proposition is logically articulated that it is a picture of a situation. (Even the proposition, ‘Ambulo’, is composite: for its stem with a different ending yields a different sense, and so does its ending with a different stem.)</a> <br></br> <div class="outline-text-5" id="text-4.032-It-is-only-in-so-far-as-a-proposition-is-logically-articulated-that-it-is-a-picture-of-a-situation.-(Even-the-proposition,-%E2%80%98Ambulo%E2%80%99,-is-composite:-for-its-stem-with-a-different-ending-yields-a-different-sense,-and-so-does-its-ending-with-a-different-stem.)">
 <p>
We will ignore the Latin reference, it is not very useful.
</p>

 <p>
I guess what is meant here is that the picture of the situation is drawn with the logical strokes.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-4.04-In-a-proposition-there-must-be-exactly-as-many-distinguishable-parts-as-in-the-situation-that-it-represents.-The-two-must-possess-the-same-logical-(mathematical)-multiplicity.-(Compare-Hertz%E2%80%99s-Mechanics-on-dynamical-models.)" class="outline-4">
 <h4 id="4.04-In-a-proposition-there-must-be-exactly-as-many-distinguishable-parts-as-in-the-situation-that-it-represents.-The-two-must-possess-the-same-logical-(mathematical)-multiplicity.-(Compare-Hertz%E2%80%99s-Mechanics-on-dynamical-models.)"> <span class="section-number-4">4.0.4.</span>  <a href="#4.04-In-a-proposition-there-must-be-exactly-as-many-distinguishable-parts-as-in-the-situation-that-it-represents.-The-two-must-possess-the-same-logical-(mathematical)-multiplicity.-(Compare-Hertz%E2%80%99s-Mechanics-on-dynamical-models.)">4.04 In a proposition there must be exactly as many distinguishable parts as in the situation that it represents. The two must possess the same logical (mathematical) multiplicity. (Compare Hertz’s Mechanics on dynamical models.)</a></h4>
 <div class="outline-text-4" id="text-4.04-In-a-proposition-there-must-be-exactly-as-many-distinguishable-parts-as-in-the-situation-that-it-represents.-The-two-must-possess-the-same-logical-(mathematical)-multiplicity.-(Compare-Hertz%E2%80%99s-Mechanics-on-dynamical-models.)">
 <p>
The problem of "sameness" appears all over the science.
As far as I remember, bosons and fermions are the most well-known example in the old science.
</p>

 <p>
In programming this means that "distinguishable parts" are literally in the same memory.
If they are represented by pointers, these pointers point to the same memory address.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.041-This-mathematical-multiplicity,-of-course,-cannot-itself-be-the-subject-of-depiction.-One-cannot-get-away-from-it-when-depicting."></a> <a href="#4.041-This-mathematical-multiplicity,-of-course,-cannot-itself-be-the-subject-of-depiction.-One-cannot-get-away-from-it-when-depicting.">4.041 This mathematical multiplicity, of course, cannot itself be the subject of depiction. One cannot get away from it when depicting.</a> <br></br> <div class="outline-text-5" id="text-4.041-This-mathematical-multiplicity,-of-course,-cannot-itself-be-the-subject-of-depiction.-One-cannot-get-away-from-it-when-depicting.">
 <p>
I guess, this means that although the pointers have the same value, and point to the same address, the pointers themselves would inevitably be in different memory cells.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.0411-If,-for-example,-we-wanted-to-express-what-we-now-write-as-%5C((x).fx%5C)-by-putting-an-affix-in-front-of-%5C(fx%5C)-%E2%80%94-for-instance-by-writing-%5C(%5Cmbox%7BGen%7D.-fx%5C)-%E2%80%94-it-would-not-be-adequate:-we-should-not-know-what-was-being-generalized.-If-we-wanted-to-signalize-it-with-an-affix--%5C(%5Cmbox%7B%5Chskip%7D_g%5C)-%E2%80%94-for-instance-by-writing-%5C(f(x_g)%5C)-%E2%80%94-that-would-not-be-adequate-either:-we-should-not-know-the-scope-of-the-generality-sign.-If-we-were-to-try-to-do-it-by-introducing-a-mark-into-the-argument-pieces-%E2%80%94-for-instance-by-writing-%5C((G,G).F(G,G)%5C)-%E2%80%94-it-would-not-be-adequate:-we-should-not-be-able-to-establish-the-identity-of-the-variables.-And-so-on.-All-these-modes-of-signifying-are-inadequate-because-they-lack-the-necessary-mathematical-multiplicity."></a> <a href="#4.0411-If,-for-example,-we-wanted-to-express-what-we-now-write-as-%5C((x).fx%5C)-by-putting-an-affix-in-front-of-%5C(fx%5C)-%E2%80%94-for-instance-by-writing-%5C(%5Cmbox%7BGen%7D.-fx%5C)-%E2%80%94-it-would-not-be-adequate:-we-should-not-know-what-was-being-generalized.-If-we-wanted-to-signalize-it-with-an-affix--%5C(%5Cmbox%7B%5Chskip%7D_g%5C)-%E2%80%94-for-instance-by-writing-%5C(f(x_g)%5C)-%E2%80%94-that-would-not-be-adequate-either:-we-should-not-know-the-scope-of-the-generality-sign.-If-we-were-to-try-to-do-it-by-introducing-a-mark-into-the-argument-pieces-%E2%80%94-for-instance-by-writing-%5C((G,G).F(G,G)%5C)-%E2%80%94-it-would-not-be-adequate:-we-should-not-be-able-to-establish-the-identity-of-the-variables.-And-so-on.-All-these-modes-of-signifying-are-inadequate-because-they-lack-the-necessary-mathematical-multiplicity.">4.0411 If, for example, we wanted to express what we now write as \((x).fx\) by putting an affix in front of \(fx\) — for instance by writing \(\mbox{Gen}. fx\) — it would not be adequate: we should not know what was being generalized. If we wanted to signalize it with an affix  \(\mbox{\hskip}_g\) — for instance by writing \(f(x_g)\) — that would not be adequate either: we should not know the scope of the generality-sign. If we were to try to do it by introducing a mark into the argument-pieces — for instance by writing \((G,G).F(G,G)\) — it would not be adequate: we should not be able to establish the identity of the variables. And so on. All these modes of signifying are inadequate because they lack the necessary mathematical multiplicity.</a> <br></br> <div class="outline-text-6" id="text-4.0411-If,-for-example,-we-wanted-to-express-what-we-now-write-as-%5C((x).fx%5C)-by-putting-an-affix-in-front-of-%5C(fx%5C)-%E2%80%94-for-instance-by-writing-%5C(%5Cmbox%7BGen%7D.-fx%5C)-%E2%80%94-it-would-not-be-adequate:-we-should-not-know-what-was-being-generalized.-If-we-wanted-to-signalize-it-with-an-affix--%5C(%5Cmbox%7B%5Chskip%7D_g%5C)-%E2%80%94-for-instance-by-writing-%5C(f(x_g)%5C)-%E2%80%94-that-would-not-be-adequate-either:-we-should-not-know-the-scope-of-the-generality-sign.-If-we-were-to-try-to-do-it-by-introducing-a-mark-into-the-argument-pieces-%E2%80%94-for-instance-by-writing-%5C((G,G).F(G,G)%5C)-%E2%80%94-it-would-not-be-adequate:-we-should-not-be-able-to-establish-the-identity-of-the-variables.-And-so-on.-All-these-modes-of-signifying-are-inadequate-because-they-lack-the-necessary-mathematical-multiplicity.">
 <p>
Wittgenstein is basically defining Scheme's \(let\) here.
And/or discussing lexical scoping.
</p>
</div>
</li>


 <li> <a id="4.0412-For-the-same-reason-the-idealist%E2%80%99s-appeal-to-%E2%80%98spatial-spectacles%E2%80%99-is-inadequate-to-explain-the-seeing-of-spatial-relations,-because-it-cannot-explain-the-multiplicity-of-these-relations."></a> <a href="#4.0412-For-the-same-reason-the-idealist%E2%80%99s-appeal-to-%E2%80%98spatial-spectacles%E2%80%99-is-inadequate-to-explain-the-seeing-of-spatial-relations,-because-it-cannot-explain-the-multiplicity-of-these-relations.">4.0412 For the same reason the idealist’s appeal to ‘spatial spectacles’ is inadequate to explain the seeing of spatial relations, because it cannot explain the multiplicity of these relations.</a> <br></br> <div class="outline-text-6" id="text-4.0412-For-the-same-reason-the-idealist%E2%80%99s-appeal-to-%E2%80%98spatial-spectacles%E2%80%99-is-inadequate-to-explain-the-seeing-of-spatial-relations,-because-it-cannot-explain-the-multiplicity-of-these-relations.">
 <p>
‘Spatial spectacles’ here would probably be called ‘spatial coordinates’ by quantum mechanics.
Or, maybe, "spatial representation".
</p>

 <p>
I think, the point here is that it is not enough to know the initial coordinates to predict behaviour.
You need to also know which particle is "same" with the other particles.
</p>

 <p>
How can this even be?
Maybe you can imagine this as having two observations of highly similar bosons in different positions.
Then you add some spin to the boson 1.
Does it mean that boson 2 immediately gets the same spin?
May be possible if it is "the same" boson.
</p>

 <p>
In computers you can interpret it like this:
If you  <code>(set! x 5)</code> at some point, it does not mean that everything ever represented as  <code>x</code> becomes 5.
You need to consider the scope.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-4.05-Reality-is-compared-with-propositions." class="outline-4">
 <h4 id="4.05-Reality-is-compared-with-propositions."> <span class="section-number-4">4.0.5.</span>  <a href="#4.05-Reality-is-compared-with-propositions.">4.05 Reality is compared with propositions.</a></h4>
 <div class="outline-text-4" id="text-4.05-Reality-is-compared-with-propositions.">
 <p>
I guess, we can just do it – compare reality with what the machine emits.
</p>

 <p>
If this "reality" is really the physical reality, not some other Wittgensteinian concept I have missed.
Let's see.
</p>
</div>
</div>

 <div id="outline-container-4.06-A-proposition-can-be-true-or-false-only-in-virtue-of-being-a-picture-of-reality." class="outline-4">
 <h4 id="4.06-A-proposition-can-be-true-or-false-only-in-virtue-of-being-a-picture-of-reality."> <span class="section-number-4">4.0.6.</span>  <a href="#4.06-A-proposition-can-be-true-or-false-only-in-virtue-of-being-a-picture-of-reality.">4.06 A proposition can be true or false only in virtue of being a picture of reality.</a></h4>
 <div class="outline-text-4" id="text-4.06-A-proposition-can-be-true-or-false-only-in-virtue-of-being-a-picture-of-reality.">
 <p>
I guess, it can be interpreted as "the truth only exists in a machine".
Your functions may give a true or false answer only with respect to the initial tape configuration.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.061-It-must-not-be-overlooked-that-a-proposition-has-a-sense-that-is-independent-of-the-facts:-otherwise-one-can-easily-suppose-that-true-and-false-are-relations-of-equal-status-between-signs-and-what-they-signify.-In-that-case-one-could-say,-for-example,-that-%E2%80%98p%E2%80%99-signified-in-the-true-way-what-%E2%80%98~p%E2%80%99-signified-in-the-false-way,-etc."></a> <a href="#4.061-It-must-not-be-overlooked-that-a-proposition-has-a-sense-that-is-independent-of-the-facts:-otherwise-one-can-easily-suppose-that-true-and-false-are-relations-of-equal-status-between-signs-and-what-they-signify.-In-that-case-one-could-say,-for-example,-that-%E2%80%98p%E2%80%99-signified-in-the-true-way-what-%E2%80%98~p%E2%80%99-signified-in-the-false-way,-etc.">4.061 It must not be overlooked that a proposition has a sense that is independent of the facts: otherwise one can easily suppose that true and false are relations of equal status between signs and what they signify. In that case one could say, for example, that ‘p’ signified in the true way what ‘~p’ signified in the false way, etc.</a> <br></br> <div class="outline-text-5" id="text-4.061-It-must-not-be-overlooked-that-a-proposition-has-a-sense-that-is-independent-of-the-facts:-otherwise-one-can-easily-suppose-that-true-and-false-are-relations-of-equal-status-between-signs-and-what-they-signify.-In-that-case-one-could-say,-for-example,-that-%E2%80%98p%E2%80%99-signified-in-the-true-way-what-%E2%80%98~p%E2%80%99-signified-in-the-false-way,-etc.">
 <p>
Correctness, however, is independent off the initial tape state.
If your function is expected to answer a question "are the bytes 1-14 set to 0", but instead outputs "true" or "false" at random, then it is just incorrect.
</p>
</div>
</li>

 <li> <a id="4.062-Can-we-not-make-ourselves-understood-with-false-propositions-just-as-we-have-done-up-till-now-with-true-ones?-%E2%80%94-So-long-as-it-is-known-that-they-are-meant-to-be-false.-%E2%80%94-No!-For-a-proposition-is-true-if-we-use-it-to-say-that-things-stand-in-a-certain-way,-and-they-do;-and-if-by-%E2%80%98p%E2%80%99-we-mean-~p-and-things-stand-as-we-mean-that-they-do,-then,-construed-in-the-new-way,-%E2%80%98p%E2%80%99-is-true-and-not-false."></a> <a href="#4.062-Can-we-not-make-ourselves-understood-with-false-propositions-just-as-we-have-done-up-till-now-with-true-ones?-%E2%80%94-So-long-as-it-is-known-that-they-are-meant-to-be-false.-%E2%80%94-No!-For-a-proposition-is-true-if-we-use-it-to-say-that-things-stand-in-a-certain-way,-and-they-do;-and-if-by-%E2%80%98p%E2%80%99-we-mean-~p-and-things-stand-as-we-mean-that-they-do,-then,-construed-in-the-new-way,-%E2%80%98p%E2%80%99-is-true-and-not-false.">4.062 Can we not make ourselves understood with false propositions just as we have done up till now with true ones? — So long as it is known that they are meant to be false. — No! For a proposition is true if we use it to say that things stand in a certain way, and they do; and if by ‘p’ we mean ~p and things stand as we mean that they do, then, construed in the new way, ‘p’ is true and not false.</a> <br></br> <div class="outline-text-5" id="text-4.062-Can-we-not-make-ourselves-understood-with-false-propositions-just-as-we-have-done-up-till-now-with-true-ones?-%E2%80%94-So-long-as-it-is-known-that-they-are-meant-to-be-false.-%E2%80%94-No!-For-a-proposition-is-true-if-we-use-it-to-say-that-things-stand-in-a-certain-way,-and-they-do;-and-if-by-%E2%80%98p%E2%80%99-we-mean-~p-and-things-stand-as-we-mean-that-they-do,-then,-construed-in-the-new-way,-%E2%80%98p%E2%80%99-is-true-and-not-false.">
 <p>
I am not entirely sure I understand the approach here…
But I guess, he is saying that it is incorrect to say that by always using  <code>(not (p))</code> instead of  <code>(p)</code>, we can usually make a new true proposition.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.0621-But-it-is-important-that-the-signs-%E2%80%98p%E2%80%99-and-%E2%80%98~p%E2%80%99-can-say-the-same-thing.-For-it-shows-that-nothing-in-reality-corresponds-to-the-sign-%E2%80%98%E2%88%BC%E2%80%99.-The-occurrence-of-negation-in-a-proposition-is-not-enough-to-characterize-its-sense-(~~p-=-p).-The-propositions-%E2%80%98p%E2%80%99-and-%E2%80%98~p%E2%80%99-have-opposite-sense,-but-there-corresponds-to-them-one-and-the-same-reality."></a> <a href="#4.0621-But-it-is-important-that-the-signs-%E2%80%98p%E2%80%99-and-%E2%80%98~p%E2%80%99-can-say-the-same-thing.-For-it-shows-that-nothing-in-reality-corresponds-to-the-sign-%E2%80%98%E2%88%BC%E2%80%99.-The-occurrence-of-negation-in-a-proposition-is-not-enough-to-characterize-its-sense-(~~p-=-p).-The-propositions-%E2%80%98p%E2%80%99-and-%E2%80%98~p%E2%80%99-have-opposite-sense,-but-there-corresponds-to-them-one-and-the-same-reality.">4.0621 But it is important that the signs ‘p’ and ‘~p’ can say the same thing. For it shows that nothing in reality corresponds to the sign ‘∼’. The occurrence of negation in a proposition is not enough to characterize its sense (~~p = p). The propositions ‘p’ and ‘~p’ have opposite sense, but there corresponds to them one and the same reality.</a> <br></br> <div class="outline-text-6" id="text-4.0621-But-it-is-important-that-the-signs-%E2%80%98p%E2%80%99-and-%E2%80%98~p%E2%80%99-can-say-the-same-thing.-For-it-shows-that-nothing-in-reality-corresponds-to-the-sign-%E2%80%98%E2%88%BC%E2%80%99.-The-occurrence-of-negation-in-a-proposition-is-not-enough-to-characterize-its-sense-(~~p-=-p).-The-propositions-%E2%80%98p%E2%80%99-and-%E2%80%98~p%E2%80%99-have-opposite-sense,-but-there-corresponds-to-them-one-and-the-same-reality.">
 <p>
Again, unclear to me what he is saying.
</p>

 <p>
The sign '~' can certainly be redefined, for example, to identity.
</p>

 <p>
Again, the underlying reality is not affected by our usage of (p) or (not (p)).
</p>
</div>
</li>
</ol></li>

 <li> <a id="4.063-An-analogy-to-illustrate-the-concept-of-truth:-imagine-a-black-spot-on-white-paper:-you-can-describe-the-shape-of-the-spot-by-saying,-for-each-point-on-the-sheet,-whether-it-is-black-or-white.-To-the-fact-that-a-point-is-black-there-corresponds-a-positive-fact,-and-to-the-fact-that-a-point-is-white-(not-black),-a-negative-fact.-If-I-designate-a-point-on-the-sheet-(a-truth-value-according-to-Frege),-then-this-corresponds-to-the-supposition-that-is-put-forward-for-judgement,-etc.-etc.-But-in-order-to-be-able-to-say-that-a-point-is-black-or-white,-I-must-first-know-when-a-point-is-called-black,-and-when-white:-in-order-to-be-able-to-say,-%E2%80%98%E2%80%9Cp%E2%80%9D-is-true-(or-false)%E2%80%99,-I-must-have-determined-in-what-circumstances-I-call-%E2%80%98p%E2%80%99-true,-and-in-so-doing-I-determine-the-sense-of-the-proposition.-Now-the-point-where-the-simile-breaks-down-is-this:-we-can-indicate-a-point-on-the-paper-even-if-we-do-not-know-what-black-and-white-are,-but-if-a-proposition-has-no-sense,-nothing-corresponds-to-it,-since-it-does-not-designate-a-thing-(a-truth-value)-which-might-have-properties-called-%E2%80%98false%E2%80%99-or-%E2%80%98true%E2%80%99.-The-verb-of-a-proposition-is-not-%E2%80%98is-true%E2%80%99-or-%E2%80%98is-false%E2%80%99,-as-Frege-thought:-rather,-that-which-%E2%80%98is-true%E2%80%99-must-already-contain-the-verb."></a> <a href="#4.063-An-analogy-to-illustrate-the-concept-of-truth:-imagine-a-black-spot-on-white-paper:-you-can-describe-the-shape-of-the-spot-by-saying,-for-each-point-on-the-sheet,-whether-it-is-black-or-white.-To-the-fact-that-a-point-is-black-there-corresponds-a-positive-fact,-and-to-the-fact-that-a-point-is-white-(not-black),-a-negative-fact.-If-I-designate-a-point-on-the-sheet-(a-truth-value-according-to-Frege),-then-this-corresponds-to-the-supposition-that-is-put-forward-for-judgement,-etc.-etc.-But-in-order-to-be-able-to-say-that-a-point-is-black-or-white,-I-must-first-know-when-a-point-is-called-black,-and-when-white:-in-order-to-be-able-to-say,-%E2%80%98%E2%80%9Cp%E2%80%9D-is-true-(or-false)%E2%80%99,-I-must-have-determined-in-what-circumstances-I-call-%E2%80%98p%E2%80%99-true,-and-in-so-doing-I-determine-the-sense-of-the-proposition.-Now-the-point-where-the-simile-breaks-down-is-this:-we-can-indicate-a-point-on-the-paper-even-if-we-do-not-know-what-black-and-white-are,-but-if-a-proposition-has-no-sense,-nothing-corresponds-to-it,-since-it-does-not-designate-a-thing-(a-truth-value)-which-might-have-properties-called-%E2%80%98false%E2%80%99-or-%E2%80%98true%E2%80%99.-The-verb-of-a-proposition-is-not-%E2%80%98is-true%E2%80%99-or-%E2%80%98is-false%E2%80%99,-as-Frege-thought:-rather,-that-which-%E2%80%98is-true%E2%80%99-must-already-contain-the-verb.">4.063 An analogy to illustrate the concept of truth: imagine a black spot on white paper: you can describe the shape of the spot by saying, for each point on the sheet, whether it is black or white. To the fact that a point is black there corresponds a positive fact, and to the fact that a point is white (not black), a negative fact. If I designate a point on the sheet (a truth-value according to Frege), then this corresponds to the supposition that is put forward for judgement, etc. etc. But in order to be able to say that a point is black or white, I must first know when a point is called black, and when white: in order to be able to say, ‘“p” is true (or false)’, I must have determined in what circumstances I call ‘p’ true, and in so doing I determine the sense of the proposition. Now the point where the simile breaks down is this: we can indicate a point on the paper even if we do not know what black and white are, but if a proposition has no sense, nothing corresponds to it, since it does not designate a thing (a truth-value) which might have properties called ‘false’ or ‘true’. The verb of a proposition is not ‘is true’ or ‘is false’, as Frege thought: rather, that which ‘is true’ must already contain the verb.</a> <br></br> <div class="outline-text-5" id="text-4.063-An-analogy-to-illustrate-the-concept-of-truth:-imagine-a-black-spot-on-white-paper:-you-can-describe-the-shape-of-the-spot-by-saying,-for-each-point-on-the-sheet,-whether-it-is-black-or-white.-To-the-fact-that-a-point-is-black-there-corresponds-a-positive-fact,-and-to-the-fact-that-a-point-is-white-(not-black),-a-negative-fact.-If-I-designate-a-point-on-the-sheet-(a-truth-value-according-to-Frege),-then-this-corresponds-to-the-supposition-that-is-put-forward-for-judgement,-etc.-etc.-But-in-order-to-be-able-to-say-that-a-point-is-black-or-white,-I-must-first-know-when-a-point-is-called-black,-and-when-white:-in-order-to-be-able-to-say,-%E2%80%98%E2%80%9Cp%E2%80%9D-is-true-(or-false)%E2%80%99,-I-must-have-determined-in-what-circumstances-I-call-%E2%80%98p%E2%80%99-true,-and-in-so-doing-I-determine-the-sense-of-the-proposition.-Now-the-point-where-the-simile-breaks-down-is-this:-we-can-indicate-a-point-on-the-paper-even-if-we-do-not-know-what-black-and-white-are,-but-if-a-proposition-has-no-sense,-nothing-corresponds-to-it,-since-it-does-not-designate-a-thing-(a-truth-value)-which-might-have-properties-called-%E2%80%98false%E2%80%99-or-%E2%80%98true%E2%80%99.-The-verb-of-a-proposition-is-not-%E2%80%98is-true%E2%80%99-or-%E2%80%98is-false%E2%80%99,-as-Frege-thought:-rather,-that-which-%E2%80%98is-true%E2%80%99-must-already-contain-the-verb.">
 <p>
I guess, in our case the tape has ones and zeros, but a-priori we cannot tell whether 1 is true, or 0 is true?
</p>

 <p>
Perhaps, Wittgenstein is trying to convey to us the same idea that Abelson-Sussman in SICP describe with the (false? x) procedure.
</p>

 <p>
Indeed, our interpreter has to have some intrinsic understanding of "truth".
See section 4.1.3 Evaluator Data Structures of SICP.
</p>
</div>
</li>

 <li> <a id="4.064-Every-proposition-must-already-have-a-sense:-it-cannot-be-given-a-sense-by-affirmation.-Indeed-its-sense-is-just-what-is-affirmed.-And-the-same-applies-to-negation,-etc."></a> <a href="#4.064-Every-proposition-must-already-have-a-sense:-it-cannot-be-given-a-sense-by-affirmation.-Indeed-its-sense-is-just-what-is-affirmed.-And-the-same-applies-to-negation,-etc.">4.064 Every proposition must already have a sense: it cannot be given a sense by affirmation. Indeed its sense is just what is affirmed. And the same applies to negation, etc.</a> <br></br> <div class="outline-text-5" id="text-4.064-Every-proposition-must-already-have-a-sense:-it-cannot-be-given-a-sense-by-affirmation.-Indeed-its-sense-is-just-what-is-affirmed.-And-the-same-applies-to-negation,-etc.">
 <p>
Well, in Scheme we can usually extend syntax to some extent…
</p>

 <p>
Unclear.
</p>

 <p>
However, maybe it just means that unless your code is syntactically correct as it is interpreted, your machine will just "not work".
</p>

 <p>
This sounds a bit pessimistic, though.
Kind of meaning that a purely logical machine will not be able to exceed its own limits.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.0641-One-could-say-that-negation-must-be-related-to-the-logical-place-determined-by-the-negated-proposition.-The-negating-proposition-determines-a-logical-place-different-from-that-of-the-negated-proposition.-The-negating-proposition-determines-a-logical-place-with-the-help-of-the-logical-place-of-the-negated-proposition.-For-it-describes-it-as-lying-outside-the-latter%E2%80%99s-logical-place.-The-negated-proposition-can-be-negated-again,-and-this-in-itself-shows-that-what-is-negated-is-already-a-proposition,-and-not-merely-something-that-is-preliminary-to-a-proposition."></a> <a href="#4.0641-One-could-say-that-negation-must-be-related-to-the-logical-place-determined-by-the-negated-proposition.-The-negating-proposition-determines-a-logical-place-different-from-that-of-the-negated-proposition.-The-negating-proposition-determines-a-logical-place-with-the-help-of-the-logical-place-of-the-negated-proposition.-For-it-describes-it-as-lying-outside-the-latter%E2%80%99s-logical-place.-The-negated-proposition-can-be-negated-again,-and-this-in-itself-shows-that-what-is-negated-is-already-a-proposition,-and-not-merely-something-that-is-preliminary-to-a-proposition.">4.0641 One could say that negation must be related to the logical place determined by the negated proposition. The negating proposition determines a logical place different from that of the negated proposition. The negating proposition determines a logical place with the help of the logical place of the negated proposition. For it describes it as lying outside the latter’s logical place. The negated proposition can be negated again, and this in itself shows that what is negated is already a proposition, and not merely something that is preliminary to a proposition.</a> <br></br> <div class="outline-text-6" id="text-4.0641-One-could-say-that-negation-must-be-related-to-the-logical-place-determined-by-the-negated-proposition.-The-negating-proposition-determines-a-logical-place-different-from-that-of-the-negated-proposition.-The-negating-proposition-determines-a-logical-place-with-the-help-of-the-logical-place-of-the-negated-proposition.-For-it-describes-it-as-lying-outside-the-latter%E2%80%99s-logical-place.-The-negated-proposition-can-be-negated-again,-and-this-in-itself-shows-that-what-is-negated-is-already-a-proposition,-and-not-merely-something-that-is-preliminary-to-a-proposition.">
 <p>
Well, "preliminary to a proposition" is totally unclear.
Wittgenstein never used such a thing before.
</p>

 <p>
Why is he so concerned with negation?
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-4.1-Propositions-represent-the-existence-and-non-existence-of-states-of-affairs." class="outline-3">
 <h3 id="4.1-Propositions-represent-the-existence-and-non-existence-of-states-of-affairs."> <span class="section-number-3">4.1.</span>  <a href="#4.1-Propositions-represent-the-existence-and-non-existence-of-states-of-affairs.">4.1 Propositions represent the existence and non-existence of states of affairs.</a></h3>
 <div class="outline-text-3" id="text-4.1-Propositions-represent-the-existence-and-non-existence-of-states-of-affairs.">
 <p>
Or, configurations of bytes with respect to each other.
</p>
</div>

 <div id="outline-container-4.11-The-totality-of-true-propositions-is-the-whole-of-natural-science-(or-the-whole-corpus-of-the-natural-sciences)." class="outline-4">
 <h4 id="4.11-The-totality-of-true-propositions-is-the-whole-of-natural-science-(or-the-whole-corpus-of-the-natural-sciences)."> <span class="section-number-4">4.1.1.</span>  <a href="#4.11-The-totality-of-true-propositions-is-the-whole-of-natural-science-(or-the-whole-corpus-of-the-natural-sciences).">4.11 The totality of true propositions is the whole of natural science (or the whole corpus of the natural sciences).</a></h4>
 <div class="outline-text-4" id="text-4.11-The-totality-of-true-propositions-is-the-whole-of-natural-science-(or-the-whole-corpus-of-the-natural-sciences).">
 <p>
Simply put, "a natural science is anything for which a robot can be made to answer questions".
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.111-Philosophy-is-not-one-of-the-natural-sciences.-(The-word-%E2%80%98philosophy%E2%80%99-must-mean-something-whose-place-is-above-or-below-the-natural-sciences,-not-beside-them.)"></a> <a href="#4.111-Philosophy-is-not-one-of-the-natural-sciences.-(The-word-%E2%80%98philosophy%E2%80%99-must-mean-something-whose-place-is-above-or-below-the-natural-sciences,-not-beside-them.)">4.111 Philosophy is not one of the natural sciences. (The word ‘philosophy’ must mean something whose place is above or below the natural sciences, not beside them.)</a> <br></br> <div class="outline-text-5" id="text-4.111-Philosophy-is-not-one-of-the-natural-sciences.-(The-word-%E2%80%98philosophy%E2%80%99-must-mean-something-whose-place-is-above-or-below-the-natural-sciences,-not-beside-them.)">
 <p>
Above or below?
</p>

 <p>
If philosophy is the area of thought about writing thoughts.
</p>

 <p>
Or, maybe, about "encoding reality" in such a way that robots, then acting purely logically, would be able to do natural science.
</p>
</div>
</li>

 <li> <a id="4.112-Philosophy-aims-at-the-logical-clarification-of-thoughts.-Philosophy-is-not-a-body-of-doctrine-but-an-activity.-A-philosophical-work-consists-essentially-of-elucidations.-Philosophy-does-not-result-in-%E2%80%98philosophical-propositions%E2%80%99,-but-rather-in-the-clarification-of-propositions.-Without-philosophy-thoughts-are,-as-it-were,-cloudy-and-indistinct:-its-task-is-to-make-them-clear-and-to-give-them-sharp-boundaries."></a> <a href="#4.112-Philosophy-aims-at-the-logical-clarification-of-thoughts.-Philosophy-is-not-a-body-of-doctrine-but-an-activity.-A-philosophical-work-consists-essentially-of-elucidations.-Philosophy-does-not-result-in-%E2%80%98philosophical-propositions%E2%80%99,-but-rather-in-the-clarification-of-propositions.-Without-philosophy-thoughts-are,-as-it-were,-cloudy-and-indistinct:-its-task-is-to-make-them-clear-and-to-give-them-sharp-boundaries.">4.112 Philosophy aims at the logical clarification of thoughts. Philosophy is not a body of doctrine but an activity. A philosophical work consists essentially of elucidations. Philosophy does not result in ‘philosophical propositions’, but rather in the clarification of propositions. Without philosophy thoughts are, as it were, cloudy and indistinct: its task is to make them clear and to give them sharp boundaries.</a> <br></br> <div class="outline-text-5" id="text-4.112-Philosophy-aims-at-the-logical-clarification-of-thoughts.-Philosophy-is-not-a-body-of-doctrine-but-an-activity.-A-philosophical-work-consists-essentially-of-elucidations.-Philosophy-does-not-result-in-%E2%80%98philosophical-propositions%E2%80%99,-but-rather-in-the-clarification-of-propositions.-Without-philosophy-thoughts-are,-as-it-were,-cloudy-and-indistinct:-its-task-is-to-make-them-clear-and-to-give-them-sharp-boundaries.">
 <p>
This also seems a lot like "encoding reality".
</p>
</div>


 <ol class="org-ol"> <li> <a id="4.1121-Psychology-is-no-more-closely-related-to-philosophy-than-any-other-natural-science.-Theory-of-knowledge-is-the-philosophy-of-psychology.-Does-not-my-study-of-sign-language-correspond-to-the-study-of-thought-processes,-which-philosophers-used-to-consider-so-essential-to-the-philosophy-of-logic?-Only-in-most-cases-they-got-entangled-in-unessential-psychological-investigations,-and-with-my-method-too-there-is-an-analogous-risk."></a> <a href="#4.1121-Psychology-is-no-more-closely-related-to-philosophy-than-any-other-natural-science.-Theory-of-knowledge-is-the-philosophy-of-psychology.-Does-not-my-study-of-sign-language-correspond-to-the-study-of-thought-processes,-which-philosophers-used-to-consider-so-essential-to-the-philosophy-of-logic?-Only-in-most-cases-they-got-entangled-in-unessential-psychological-investigations,-and-with-my-method-too-there-is-an-analogous-risk.">4.1121 Psychology is no more closely related to philosophy than any other natural science. Theory of knowledge is the philosophy of psychology. Does not my study of sign-language correspond to the study of thought-processes, which philosophers used to consider so essential to the philosophy of logic? Only in most cases they got entangled in unessential psychological investigations, and with my method too there is an analogous risk.</a> <br></br> <div class="outline-text-6" id="text-4.1121-Psychology-is-no-more-closely-related-to-philosophy-than-any-other-natural-science.-Theory-of-knowledge-is-the-philosophy-of-psychology.-Does-not-my-study-of-sign-language-correspond-to-the-study-of-thought-processes,-which-philosophers-used-to-consider-so-essential-to-the-philosophy-of-logic?-Only-in-most-cases-they-got-entangled-in-unessential-psychological-investigations,-and-with-my-method-too-there-is-an-analogous-risk.">
 <p>
So, "theory of knowledge" is what is encoding the input for the psychologists (psychological algorithms) to work.
</p>

 <p>
I'm still thinking that it should be possible to make a better justification for psychology than just "encoding thoughts", perhaps, in physiology.
But Wittgenstein didn't know much about psycho-physiology.
</p>
</div>
</li>

 <li> <a id="4.1122-Darwin%E2%80%99s-theory-has-no-more-to-do-with-philosophy-than-any-other-hypothesis-in-natural-science."></a> <a href="#4.1122-Darwin%E2%80%99s-theory-has-no-more-to-do-with-philosophy-than-any-other-hypothesis-in-natural-science.">4.1122 Darwin’s theory has no more to do with philosophy than any other hypothesis in natural science.</a> <br></br> <div class="outline-text-6" id="text-4.1122-Darwin%E2%80%99s-theory-has-no-more-to-do-with-philosophy-than-any-other-hypothesis-in-natural-science.">
 <p>
Sure.
</p>
</div>
</li>
</ol></li>

 <li> <a id="4.113-Philosophy-sets-limits-to-the-much-disputed-sphere-of-natural-science."></a> <a href="#4.113-Philosophy-sets-limits-to-the-much-disputed-sphere-of-natural-science.">4.113 Philosophy sets limits to the much disputed sphere of natural science.</a> <br></br> <div class="outline-text-5" id="text-4.113-Philosophy-sets-limits-to-the-much-disputed-sphere-of-natural-science.">
 <p>
Aha, so philosophy is in "encoding the world", and "natural science" is then answering the questions about this encoding.
</p>

 <p>
I guess, in commercial software this means that "analysis" is a philosophical job, and "implementation" is, then can be done in a purely scientific way.
</p>
</div>
</li>

 <li> <a id="4.114-It-must-set-limits-to-what-can-be-thought;-and,-in-doing-so,-to-what-cannot-be-thought.-It-must-set-limits-to-what-cannot-be-thought-by-working-outwards-through-what-can-be-thought."></a> <a href="#4.114-It-must-set-limits-to-what-can-be-thought;-and,-in-doing-so,-to-what-cannot-be-thought.-It-must-set-limits-to-what-cannot-be-thought-by-working-outwards-through-what-can-be-thought.">4.114 It must set limits to what can be thought; and, in doing so, to what cannot be thought. It must set limits to what cannot be thought by working outwards through what can be thought.</a> <br></br> <div class="outline-text-5" id="text-4.114-It-must-set-limits-to-what-can-be-thought;-and,-in-doing-so,-to-what-cannot-be-thought.-It-must-set-limits-to-what-cannot-be-thought-by-working-outwards-through-what-can-be-thought.">
 <p>
Hm…
</p>

 <p>
So, we're digitising/encoding reality, by philosophising, and at some point we are encountering a "Lower Bound" do this digitisation.
</p>
</div>
</li>


 <li> <a id="4.115-It-will-signify-what-cannot-be-said,-by-presenting-clearly-what-can-be-said."></a> <a href="#4.115-It-will-signify-what-cannot-be-said,-by-presenting-clearly-what-can-be-said.">4.115 It will signify what cannot be said, by presenting clearly what can be said.</a> <br></br> <div class="outline-text-5" id="text-4.115-It-will-signify-what-cannot-be-said,-by-presenting-clearly-what-can-be-said.">
 <p>
And it should also tell why our digitisation will fail if we try to go further.
</p>
</div>
</li>

 <li> <a id="4.116-Everything-that-can-be-thought-at-all-can-be-thought-clearly.-Everything-that-can-be-put-into-words-can-be-put-clearly."></a> <a href="#4.116-Everything-that-can-be-thought-at-all-can-be-thought-clearly.-Everything-that-can-be-put-into-words-can-be-put-clearly.">4.116 Everything that can be thought at all can be thought clearly. Everything that can be put into words can be put clearly.</a> <br></br> <div class="outline-text-5" id="text-4.116-Everything-that-can-be-thought-at-all-can-be-thought-clearly.-Everything-that-can-be-put-into-words-can-be-put-clearly.">
 <p>
Hm… what about those ugly partially convergent functions?
Those that can give us a response in many of the cases, but not all?
Uncomputable, undecidable?
Kolmogorov Complexity, for example?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-4.12-Propositions-can-represent-the-whole-of-reality,-but-they-cannot-represent-what-they-must-have-in-common-with-reality-in-order-to-be-able-to-represent-it-%E2%80%94-logical-form.-In-order-to-be-able-to-represent-logical-form,-we-should-have-to-be-able-to-station-ourselves-with-propositions-somewhere-outside-logic,-that-is-to-say-outside-the-world." class="outline-4">
 <h4 id="4.12-Propositions-can-represent-the-whole-of-reality,-but-they-cannot-represent-what-they-must-have-in-common-with-reality-in-order-to-be-able-to-represent-it-%E2%80%94-logical-form.-In-order-to-be-able-to-represent-logical-form,-we-should-have-to-be-able-to-station-ourselves-with-propositions-somewhere-outside-logic,-that-is-to-say-outside-the-world."> <span class="section-number-4">4.1.2.</span>  <a href="#4.12-Propositions-can-represent-the-whole-of-reality,-but-they-cannot-represent-what-they-must-have-in-common-with-reality-in-order-to-be-able-to-represent-it-%E2%80%94-logical-form.-In-order-to-be-able-to-represent-logical-form,-we-should-have-to-be-able-to-station-ourselves-with-propositions-somewhere-outside-logic,-that-is-to-say-outside-the-world.">4.12 Propositions can represent the whole of reality, but they cannot represent what they must have in common with reality in order to be able to represent it — logical form. In order to be able to represent logical form, we should have to be able to station ourselves with propositions somewhere outside logic, that is to say outside the world.</a></h4>
 <div class="outline-text-4" id="text-4.12-Propositions-can-represent-the-whole-of-reality,-but-they-cannot-represent-what-they-must-have-in-common-with-reality-in-order-to-be-able-to-represent-it-%E2%80%94-logical-form.-In-order-to-be-able-to-represent-logical-form,-we-should-have-to-be-able-to-station-ourselves-with-propositions-somewhere-outside-logic,-that-is-to-say-outside-the-world.">
 <p>
Well, "design is code", right?
If you specify your procedure well enough, you do not need to write it, you already have it?
</p>

 <p>
But what about performance?
</p>

 <p>
Also, it seems that he is claiming that an "Electric Programmer" is not possible, because logical synthesis is, apparently, not a clearly defined process?
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.121-Propositions-cannot-represent-logical-form:-it-is-mirrored-in-them.-What-finds-its-reflection-in-language,-language-cannot-represent.-What-expresses-itself-in-language,-we-cannot-express-by-means-of-language.-Propositions-show-the-logical-form-of-reality.-They-display-it."></a> <a href="#4.121-Propositions-cannot-represent-logical-form:-it-is-mirrored-in-them.-What-finds-its-reflection-in-language,-language-cannot-represent.-What-expresses-itself-in-language,-we-cannot-express-by-means-of-language.-Propositions-show-the-logical-form-of-reality.-They-display-it.">4.121 Propositions cannot represent logical form: it is mirrored in them. What finds its reflection in language, language cannot represent. What expresses itself in language, we cannot express by means of language. Propositions show the logical form of reality. They display it.</a> <br></br> <div class="outline-text-5" id="text-4.121-Propositions-cannot-represent-logical-form:-it-is-mirrored-in-them.-What-finds-its-reflection-in-language,-language-cannot-represent.-What-expresses-itself-in-language,-we-cannot-express-by-means-of-language.-Propositions-show-the-logical-form-of-reality.-They-display-it.">
 <p>
I think that he is missing the "Metacircular Interpreter" discussion.
</p>

 <p>
For sure, there is this last layer, at which you have to express a language in the language of the machine, and the primitives cannot be decomposed further.
</p>

 <p>
But metacircularity still needs a discussion.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.1211-Thus-one-proposition-%E2%80%98fa%E2%80%99-shows-that-the-object-a-occurs-in-its-sense,-two-propositions-%E2%80%98fa%E2%80%99-and-%E2%80%98ga%E2%80%99-show-that-the-same-object-is-mentioned-in-both-of-them.-If-two-propositions-contradict-one-another,-then-their-structure-shows-it;-the-same-is-true-if-one-of-them-follows-from-the-other.-And-so-on."></a> <a href="#4.1211-Thus-one-proposition-%E2%80%98fa%E2%80%99-shows-that-the-object-a-occurs-in-its-sense,-two-propositions-%E2%80%98fa%E2%80%99-and-%E2%80%98ga%E2%80%99-show-that-the-same-object-is-mentioned-in-both-of-them.-If-two-propositions-contradict-one-another,-then-their-structure-shows-it;-the-same-is-true-if-one-of-them-follows-from-the-other.-And-so-on.">4.1211 Thus one proposition ‘fa’ shows that the object a occurs in its sense, two propositions ‘fa’ and ‘ga’ show that the same object is mentioned in both of them. If two propositions contradict one another, then their structure shows it; the same is true if one of them follows from the other. And so on.</a> <br></br> <div class="outline-text-6" id="text-4.1211-Thus-one-proposition-%E2%80%98fa%E2%80%99-shows-that-the-object-a-occurs-in-its-sense,-two-propositions-%E2%80%98fa%E2%80%99-and-%E2%80%98ga%E2%80%99-show-that-the-same-object-is-mentioned-in-both-of-them.-If-two-propositions-contradict-one-another,-then-their-structure-shows-it;-the-same-is-true-if-one-of-them-follows-from-the-other.-And-so-on.">
 <p>
Again, I think that some metalanguage reasoning systems, formal methods and such, can compute that inference in some cases.
</p>
</div>
</li>

 <li> <a id="4.1212-What-can-be-shown,-cannot-be-said."></a> <a href="#4.1212-What-can-be-shown,-cannot-be-said.">4.1212 What can be shown, cannot be said.</a> <br></br> <div class="outline-text-6" id="text-4.1212-What-can-be-shown,-cannot-be-said.">
 <p>
Maybe, "not necessarily".
</p>
</div>
</li>

 <li> <a id="4.1213-Now,-too,-we-understand-our-feeling-that-once-we-have-a-sign-language-in-which-everything-is-all-right,-we-already-have-a-correct-logical-point-of-view."></a> <a href="#4.1213-Now,-too,-we-understand-our-feeling-that-once-we-have-a-sign-language-in-which-everything-is-all-right,-we-already-have-a-correct-logical-point-of-view.">4.1213 Now, too, we understand our feeling that once we have a sign-language in which everything is all right, we already have a correct logical point of view.</a> <br></br> <div class="outline-text-6" id="text-4.1213-Now,-too,-we-understand-our-feeling-that-once-we-have-a-sign-language-in-which-everything-is-all-right,-we-already-have-a-correct-logical-point-of-view.">
 <p>
I think that this means that we need  <span class="underline">a</span> language that is correct and not self-contradictory, then any other language can be reinterpreted (reimplemented) using it.
</p>
</div>
</li>
</ol></li>

 <li> <a id="4.122-In-a-certain-sense-we-can-talk-about-formal-properties-of-objects-and-states-of-affairs,-or,-in-the-case-of-facts,-about-structural-properties:-and-in-the-same-sense-about-formal-relations-and-structural-relations.-(Instead-of-%E2%80%98structural-property%E2%80%99-I-also-say-%E2%80%98internal-property%E2%80%99;-instead-of-%E2%80%98structural-relation%E2%80%99,-%E2%80%98internal-relation%E2%80%99.-I-introduce-these-expressions-in-order-to-indicate-the-source-of-the-confusion-between-internal-relations-and-relations-proper-(external-relations),-which-is-very-widespread-among-philosophers.)-It-is-impossible,-however,-to-assert-by-means-of-propositions-that-such-internal-properties-and-relations-obtain:-rather,-this-makes-itself-manifest-in-the-propositions-that-represent-the-relevant-states-of-affairs-and-are-concerned-with-the-relevant-objects."></a> <a href="#4.122-In-a-certain-sense-we-can-talk-about-formal-properties-of-objects-and-states-of-affairs,-or,-in-the-case-of-facts,-about-structural-properties:-and-in-the-same-sense-about-formal-relations-and-structural-relations.-(Instead-of-%E2%80%98structural-property%E2%80%99-I-also-say-%E2%80%98internal-property%E2%80%99;-instead-of-%E2%80%98structural-relation%E2%80%99,-%E2%80%98internal-relation%E2%80%99.-I-introduce-these-expressions-in-order-to-indicate-the-source-of-the-confusion-between-internal-relations-and-relations-proper-(external-relations),-which-is-very-widespread-among-philosophers.)-It-is-impossible,-however,-to-assert-by-means-of-propositions-that-such-internal-properties-and-relations-obtain:-rather,-this-makes-itself-manifest-in-the-propositions-that-represent-the-relevant-states-of-affairs-and-are-concerned-with-the-relevant-objects.">4.122 In a certain sense we can talk about formal properties of objects and states of affairs, or, in the case of facts, about structural properties: and in the same sense about formal relations and structural relations. (Instead of ‘structural property’ I also say ‘internal property’; instead of ‘structural relation’, ‘internal relation’. I introduce these expressions in order to indicate the source of the confusion between internal relations and relations proper (external relations), which is very widespread among philosophers.) It is impossible, however, to assert by means of propositions that such internal properties and relations obtain: rather, this makes itself manifest in the propositions that represent the relevant states of affairs and are concerned with the relevant objects.</a> <br></br> <div class="outline-text-5" id="text-4.122-In-a-certain-sense-we-can-talk-about-formal-properties-of-objects-and-states-of-affairs,-or,-in-the-case-of-facts,-about-structural-properties:-and-in-the-same-sense-about-formal-relations-and-structural-relations.-(Instead-of-%E2%80%98structural-property%E2%80%99-I-also-say-%E2%80%98internal-property%E2%80%99;-instead-of-%E2%80%98structural-relation%E2%80%99,-%E2%80%98internal-relation%E2%80%99.-I-introduce-these-expressions-in-order-to-indicate-the-source-of-the-confusion-between-internal-relations-and-relations-proper-(external-relations),-which-is-very-widespread-among-philosophers.)-It-is-impossible,-however,-to-assert-by-means-of-propositions-that-such-internal-properties-and-relations-obtain:-rather,-this-makes-itself-manifest-in-the-propositions-that-represent-the-relevant-states-of-affairs-and-are-concerned-with-the-relevant-objects.">
 <p>
I guess, he wants to define what is external and what is internal here?
</p>

 <p>
But he is not actually saying what an external property is?
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.1221-An-internal-property-of-a-fact-can-also-be-called-a-feature-of-that-fact-(in-the-sense-in-which-we-speak-of-facial-features,-for-example)."></a> <a href="#4.1221-An-internal-property-of-a-fact-can-also-be-called-a-feature-of-that-fact-(in-the-sense-in-which-we-speak-of-facial-features,-for-example).">4.1221 An internal property of a fact can also be called a feature of that fact (in the sense in which we speak of facial features, for example).</a> <br></br> <div class="outline-text-6" id="text-4.1221-An-internal-property-of-a-fact-can-also-be-called-a-feature-of-that-fact-(in-the-sense-in-which-we-speak-of-facial-features,-for-example).">
 <p>
And those "features" are almost the same as the "features" in machine learning.
</p>
</div>
</li>
</ol></li>

 <li> <a id="4.123-A-property-is-internal-if-it-is-unthinkable-that-its-object-should-not-possess-it.-(This-shade-of-blue-and-that-one-stand,-eo-ipso,-in-the-internal-relation-of-lighter-to-darker.-It-is-unthinkable-that-these-two-objects-should-not-stand-in-this-relation.)-(Here-the-shifting-use-of-the-word-%E2%80%98object%E2%80%99-corresponds-to-the-shifting-use-of-the-words-%E2%80%98property%E2%80%99-and-%E2%80%98relation%E2%80%99.)"></a> <a href="#4.123-A-property-is-internal-if-it-is-unthinkable-that-its-object-should-not-possess-it.-(This-shade-of-blue-and-that-one-stand,-eo-ipso,-in-the-internal-relation-of-lighter-to-darker.-It-is-unthinkable-that-these-two-objects-should-not-stand-in-this-relation.)-(Here-the-shifting-use-of-the-word-%E2%80%98object%E2%80%99-corresponds-to-the-shifting-use-of-the-words-%E2%80%98property%E2%80%99-and-%E2%80%98relation%E2%80%99.)">4.123 A property is internal if it is unthinkable that its object should not possess it. (This shade of blue and that one stand, eo ipso, in the internal relation of lighter to darker. It is unthinkable that these two objects should not stand in this relation.) (Here the shifting use of the word ‘object’ corresponds to the shifting use of the words ‘property’ and ‘relation’.)</a> <br></br> <div class="outline-text-5" id="text-4.123-A-property-is-internal-if-it-is-unthinkable-that-its-object-should-not-possess-it.-(This-shade-of-blue-and-that-one-stand,-eo-ipso,-in-the-internal-relation-of-lighter-to-darker.-It-is-unthinkable-that-these-two-objects-should-not-stand-in-this-relation.)-(Here-the-shifting-use-of-the-word-%E2%80%98object%E2%80%99-corresponds-to-the-shifting-use-of-the-words-%E2%80%98property%E2%80%99-and-%E2%80%98relation%E2%80%99.)">
 <p>
So, this is kinda easy?
</p>

 <p>
There bits represent a picture. 
No matter whether we want to make our algorithm distinguish pictures of cats from pictures of dogs, or just display a wallpaper, these bits are still thought to be a picture, not an audio wave.
</p>

 <p>
So, "being an image" is an internal property of an array of bits.
</p>

 <p>
I guess, "having a cat image in it" should be an external property?
</p>
</div>
</li>

 <li> <a id="4.124-The-existence-of-an-internal-property-of-a-possible-situation-is-not-expressed-by-means-of-a-proposition:-rather,-it-expresses-itself-in-the-proposition-representing-the-situation,-by-means-of-an-internal-property-of-that-proposition.-It-would-be-just-as-nonsensical-to-assert-that-a-proposition-had-a-formal-property-as-to-deny-it."></a> <a href="#4.124-The-existence-of-an-internal-property-of-a-possible-situation-is-not-expressed-by-means-of-a-proposition:-rather,-it-expresses-itself-in-the-proposition-representing-the-situation,-by-means-of-an-internal-property-of-that-proposition.-It-would-be-just-as-nonsensical-to-assert-that-a-proposition-had-a-formal-property-as-to-deny-it.">4.124 The existence of an internal property of a possible situation is not expressed by means of a proposition: rather, it expresses itself in the proposition representing the situation, by means of an internal property of that proposition. It would be just as nonsensical to assert that a proposition had a formal property as to deny it.</a> <br></br> <div class="outline-text-5" id="text-4.124-The-existence-of-an-internal-property-of-a-possible-situation-is-not-expressed-by-means-of-a-proposition:-rather,-it-expresses-itself-in-the-proposition-representing-the-situation,-by-means-of-an-internal-property-of-that-proposition.-It-would-be-just-as-nonsensical-to-assert-that-a-proposition-had-a-formal-property-as-to-deny-it.">
 <p>
Indeed, it is nonsensical to run an image recognising predicate on something that represents a sound wave.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.1241-It-is-impossible-to-distinguish-forms-from-one-another-by-saying-that-one-has-this-property-and-another-that-property:-for-this-presupposes-that-it-makes-sense-to-ascribe-either-property-to-either-form."></a> <a href="#4.1241-It-is-impossible-to-distinguish-forms-from-one-another-by-saying-that-one-has-this-property-and-another-that-property:-for-this-presupposes-that-it-makes-sense-to-ascribe-either-property-to-either-form.">4.1241 It is impossible to distinguish forms from one another by saying that one has this property and another that property: for this presupposes that it makes sense to ascribe either property to either form.</a> <br></br> <div class="outline-text-6" id="text-4.1241-It-is-impossible-to-distinguish-forms-from-one-another-by-saying-that-one-has-this-property-and-another-that-property:-for-this-presupposes-that-it-makes-sense-to-ascribe-either-property-to-either-form.">
 <p>
This I do not really understand.
Perhaps, the idea here is that functions which work with byte data can "swallow" both an image representation, and a wavefront representation, and give "some" result.
We wouldn't know whether it is correct, unless we know what the bytes actually stand for.
</p>
</div>
</li>
</ol></li>

 <li> <a id="4.125-The-existence-of-an-internal-relation-between-possible-situations-expresses-itself-in-language-by-means-of-an-internal-relation-between-the-propositions-representing-them."></a> <a href="#4.125-The-existence-of-an-internal-relation-between-possible-situations-expresses-itself-in-language-by-means-of-an-internal-relation-between-the-propositions-representing-them.">4.125 The existence of an internal relation between possible situations expresses itself in language by means of an internal relation between the propositions representing them.</a> <br></br> <div class="outline-text-5" id="text-4.125-The-existence-of-an-internal-relation-between-possible-situations-expresses-itself-in-language-by-means-of-an-internal-relation-between-the-propositions-representing-them.">
 <p>
I guess, this is speaking about one level of abstraction higher.
</p>

 <p>
Say, a picture is a picture at address A is of a wavefront, which is itself digitised and placed at address B.
There certainly may be a relationship between propositions operating on them.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.1251-Here-we-have-the-answer-to-the-vexed-question-%E2%80%98whether-all-relations-are-internal-or-external%E2%80%99."></a> <a href="#4.1251-Here-we-have-the-answer-to-the-vexed-question-%E2%80%98whether-all-relations-are-internal-or-external%E2%80%99.">4.1251 Here we have the answer to the vexed question ‘whether all relations are internal or external’.</a> <br></br> <div class="outline-text-6" id="text-4.1251-Here-we-have-the-answer-to-the-vexed-question-%E2%80%98whether-all-relations-are-internal-or-external%E2%80%99.">
 <p>
And?
</p>
</div>
</li>

 <li> <a id="4.1252-I-call-a-series-that-is-ordered-by-an-~internal~-relation-a-series-of-forms.-The-order-of-the-number-series-is-not-governed-by-an-external-relation-but-by-an-internal-relation.-The-same-is-true-of-the-series-of-propositions-%7B%E2%80%98aRb%E2%80%99,-%E2%80%98(%E2%88%83x):aRx.xRb%E2%80%99,-%E2%80%98(%E2%88%83x,-y):aRx.xRy.yRb%E2%80%99,%7D-and-so-forth.-(If-b-stands-in-one-of-these-relations-to-a,-I-call-b-a-successor-of-a.)"></a> <a href="#4.1252-I-call-a-series-that-is-ordered-by-an-~internal~-relation-a-series-of-forms.-The-order-of-the-number-series-is-not-governed-by-an-external-relation-but-by-an-internal-relation.-The-same-is-true-of-the-series-of-propositions-%7B%E2%80%98aRb%E2%80%99,-%E2%80%98(%E2%88%83x):aRx.xRb%E2%80%99,-%E2%80%98(%E2%88%83x,-y):aRx.xRy.yRb%E2%80%99,%7D-and-so-forth.-(If-b-stands-in-one-of-these-relations-to-a,-I-call-b-a-successor-of-a.)">4.1252 I call a series that is ordered by an  <code>internal</code> relation a series of forms. The order of the number-series is not governed by an external relation but by an internal relation. The same is true of the series of propositions {‘aRb’, ‘(∃x):aRx.xRb’, ‘(∃x, y):aRx.xRy.yRb’,} and so forth. (If b stands in one of these relations to a, I call b a successor of a.)</a> <br></br> <div class="outline-text-6" id="text-4.1252-I-call-a-series-that-is-ordered-by-an-~internal~-relation-a-series-of-forms.-The-order-of-the-number-series-is-not-governed-by-an-external-relation-but-by-an-internal-relation.-The-same-is-true-of-the-series-of-propositions-%7B%E2%80%98aRb%E2%80%99,-%E2%80%98(%E2%88%83x):aRx.xRb%E2%80%99,-%E2%80%98(%E2%88%83x,-y):aRx.xRy.yRb%E2%80%99,%7D-and-so-forth.-(If-b-stands-in-one-of-these-relations-to-a,-I-call-b-a-successor-of-a.)">
 <p>
Isn't this the Church encoding, or something?
</p>

 <p>
Why is it an internal relation?
A full order relation… seems to be derive-able from +1.
</p>
</div>
</li>
</ol></li>

 <li> <a id="4.126-We-can-now-talk-about-formal-concepts,-in-the-same-sense-that-we-speak-of-formal-properties.-(I-introduce-this-expression-in-order-to-exhibit-the-source-of-the-confusion-between-formal-concepts-and-concepts-proper,-which-pervades-the-whole-of-traditional-logic.)-When-something-falls-under-a-formal-concept-as-one-of-its-objects,-this-cannot-be-expressed-by-means-of-a-proposition.-Instead-it-is-shown-in-the-very-sign-for-this-object.-(A-name-shows-that-it-signifies-an-object,-a-sign-for-a-number-that-it-signifies-a-number,-etc.)-Formal-concepts-cannot,-in-fact,-be-represented-by-means-of-a-function,-as-concepts-proper-can.-For-their-characteristics,-formal-properties,-are-not-expressed-by-means-of-functions.-The-expression-for-a-formal-property-is-a-feature-of-certain-symbols.-So-the-sign-for-the-characteristics-of-a-formal-concept-is-a-distinctive-feature-of-all-symbols-whose-meanings-fall-under-the-concept.-So-the-expression-for-a-formal-concept-is-a-propositional-variable-in-which-this-distinctive-feature-alone-is-constant."></a> <a href="#4.126-We-can-now-talk-about-formal-concepts,-in-the-same-sense-that-we-speak-of-formal-properties.-(I-introduce-this-expression-in-order-to-exhibit-the-source-of-the-confusion-between-formal-concepts-and-concepts-proper,-which-pervades-the-whole-of-traditional-logic.)-When-something-falls-under-a-formal-concept-as-one-of-its-objects,-this-cannot-be-expressed-by-means-of-a-proposition.-Instead-it-is-shown-in-the-very-sign-for-this-object.-(A-name-shows-that-it-signifies-an-object,-a-sign-for-a-number-that-it-signifies-a-number,-etc.)-Formal-concepts-cannot,-in-fact,-be-represented-by-means-of-a-function,-as-concepts-proper-can.-For-their-characteristics,-formal-properties,-are-not-expressed-by-means-of-functions.-The-expression-for-a-formal-property-is-a-feature-of-certain-symbols.-So-the-sign-for-the-characteristics-of-a-formal-concept-is-a-distinctive-feature-of-all-symbols-whose-meanings-fall-under-the-concept.-So-the-expression-for-a-formal-concept-is-a-propositional-variable-in-which-this-distinctive-feature-alone-is-constant.">4.126 We can now talk about formal concepts, in the same sense that we speak of formal properties. (I introduce this expression in order to exhibit the source of the confusion between formal concepts and concepts proper, which pervades the whole of traditional logic.) When something falls under a formal concept as one of its objects, this cannot be expressed by means of a proposition. Instead it is shown in the very sign for this object. (A name shows that it signifies an object, a sign for a number that it signifies a number, etc.) Formal concepts cannot, in fact, be represented by means of a function, as concepts proper can. For their characteristics, formal properties, are not expressed by means of functions. The expression for a formal property is a feature of certain symbols. So the sign for the characteristics of a formal concept is a distinctive feature of all symbols whose meanings fall under the concept. So the expression for a formal concept is a propositional variable in which this distinctive feature alone is constant.</a> <br></br> <div class="outline-text-5" id="text-4.126-We-can-now-talk-about-formal-concepts,-in-the-same-sense-that-we-speak-of-formal-properties.-(I-introduce-this-expression-in-order-to-exhibit-the-source-of-the-confusion-between-formal-concepts-and-concepts-proper,-which-pervades-the-whole-of-traditional-logic.)-When-something-falls-under-a-formal-concept-as-one-of-its-objects,-this-cannot-be-expressed-by-means-of-a-proposition.-Instead-it-is-shown-in-the-very-sign-for-this-object.-(A-name-shows-that-it-signifies-an-object,-a-sign-for-a-number-that-it-signifies-a-number,-etc.)-Formal-concepts-cannot,-in-fact,-be-represented-by-means-of-a-function,-as-concepts-proper-can.-For-their-characteristics,-formal-properties,-are-not-expressed-by-means-of-functions.-The-expression-for-a-formal-property-is-a-feature-of-certain-symbols.-So-the-sign-for-the-characteristics-of-a-formal-concept-is-a-distinctive-feature-of-all-symbols-whose-meanings-fall-under-the-concept.-So-the-expression-for-a-formal-concept-is-a-propositional-variable-in-which-this-distinctive-feature-alone-is-constant.">
 <p>
When a formal concept represents a thing, it cannot be expressed as a proposition.
</p>

 <p>
I think this is quite understandable.
</p>

 <p>
A can in a picture (represented by a byte array) of a cat, has a formal concept of being a cat.
We can represent this as a proposition (concept proper), but this proposition cannot be guaranteed to be 100% accurate (because, naturally, recognising images is hard!).
</p>
</div>
</li>


 <li> <a id="4.127-The-propositional-variable-signifies-the-formal-concept,-and-its-values-signify-the-objects-that-fall-under-the-concept."></a> <a href="#4.127-The-propositional-variable-signifies-the-formal-concept,-and-its-values-signify-the-objects-that-fall-under-the-concept.">4.127 The propositional variable signifies the formal concept, and its values signify the objects that fall under the concept.</a> <br></br> <div class="outline-text-5" id="text-4.127-The-propositional-variable-signifies-the-formal-concept,-and-its-values-signify-the-objects-that-fall-under-the-concept.">
 <p>
I am not very sure what this means.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.1271-Every-variable-is-the-sign-for-a-formal-concept.-For-every-variable-represents-a-constant-form-that-all-its-values-possess,-and-this-can-be-regarded-as-a-formal-property-of-those-values."></a> <a href="#4.1271-Every-variable-is-the-sign-for-a-formal-concept.-For-every-variable-represents-a-constant-form-that-all-its-values-possess,-and-this-can-be-regarded-as-a-formal-property-of-those-values.">4.1271 Every variable is the sign for a formal concept. For every variable represents a constant form that all its values possess, and this can be regarded as a formal property of those values.</a> <br></br> <div class="outline-text-6" id="text-4.1271-Every-variable-is-the-sign-for-a-formal-concept.-For-every-variable-represents-a-constant-form-that-all-its-values-possess,-and-this-can-be-regarded-as-a-formal-property-of-those-values.">
 <p>
Kinda… if we formally substitute and expand everything…
And start seeing functions as operating on whole sets?
</p>

 <p>
Isn't it that in machines "formal concepts" are only 1 and 2?
</p>
</div>
</li>

 <li> <a id="4.1272-Thus-the-variable-name-%E2%80%98x%E2%80%99-is-the-proper-sign-for-the-pseudo-concept-~object~.-Wherever-the-word-%E2%80%98object%E2%80%99-(%E2%80%98thing%E2%80%99,-etc.)-is-correctly-used,-it-is-expressed-in-conceptual-notation-by-a-variable-name.-For-example,-in-the-proposition,-%E2%80%98There-are-2-objects-which...%E2%80%99,-it-is-expressed-by-%E2%80%98(%E2%88%83x,-y)...%E2%80%99.-Wherever-it-is-used-in-a-different-way,-that-is-as-a-proper-concept-word,-nonsensical-pseudo-propositions-are-the-result.-So-one-cannot-say,-for-example,-%E2%80%98There-are-objects%E2%80%99,-as-one-might-say,-%E2%80%98There-are-books%E2%80%99.-And-it-is-just-as-impossible-to-say,-%E2%80%98There-are-100-objects%E2%80%99,-or,-%E2%80%98There-are-%5Cchi_0-objects%E2%80%99.-And-it-is-nonsensical-to-speak-of-the-~total-number-of-objects~.-The-same-applies-to-the-words-%E2%80%98complex%E2%80%99,-%E2%80%98fact%E2%80%99,-%E2%80%98function%E2%80%99,-%E2%80%98number%E2%80%99,-etc.-They-all-signify-formal-concepts,-and-are-represented-in-conceptual-notation-by-variables,-not-by-functions-or-classes-(as-Frege-and-Russell-believed).-%E2%80%981-is-a-number%E2%80%99,-%E2%80%98There-is-only-one-zero%E2%80%99,-and-all-similar-expressions-are-nonsensical.-(It-is-just-as-nonsensical-to-say,-%E2%80%98There-is-only-one-1%E2%80%99,-as-it-would-be-to-say,-%E2%80%982+2-at-3-o%E2%80%99clock-equals-4%E2%80%99.)"></a> <a href="#4.1272-Thus-the-variable-name-%E2%80%98x%E2%80%99-is-the-proper-sign-for-the-pseudo-concept-~object~.-Wherever-the-word-%E2%80%98object%E2%80%99-(%E2%80%98thing%E2%80%99,-etc.)-is-correctly-used,-it-is-expressed-in-conceptual-notation-by-a-variable-name.-For-example,-in-the-proposition,-%E2%80%98There-are-2-objects-which...%E2%80%99,-it-is-expressed-by-%E2%80%98(%E2%88%83x,-y)...%E2%80%99.-Wherever-it-is-used-in-a-different-way,-that-is-as-a-proper-concept-word,-nonsensical-pseudo-propositions-are-the-result.-So-one-cannot-say,-for-example,-%E2%80%98There-are-objects%E2%80%99,-as-one-might-say,-%E2%80%98There-are-books%E2%80%99.-And-it-is-just-as-impossible-to-say,-%E2%80%98There-are-100-objects%E2%80%99,-or,-%E2%80%98There-are-%5Cchi_0-objects%E2%80%99.-And-it-is-nonsensical-to-speak-of-the-~total-number-of-objects~.-The-same-applies-to-the-words-%E2%80%98complex%E2%80%99,-%E2%80%98fact%E2%80%99,-%E2%80%98function%E2%80%99,-%E2%80%98number%E2%80%99,-etc.-They-all-signify-formal-concepts,-and-are-represented-in-conceptual-notation-by-variables,-not-by-functions-or-classes-(as-Frege-and-Russell-believed).-%E2%80%981-is-a-number%E2%80%99,-%E2%80%98There-is-only-one-zero%E2%80%99,-and-all-similar-expressions-are-nonsensical.-(It-is-just-as-nonsensical-to-say,-%E2%80%98There-is-only-one-1%E2%80%99,-as-it-would-be-to-say,-%E2%80%982+2-at-3-o%E2%80%99clock-equals-4%E2%80%99.)">4.1272 Thus the variable name ‘x’ is the proper sign for the pseudo-concept  <code>object</code>. Wherever the word ‘object’ (‘thing’, etc.) is correctly used, it is expressed in conceptual notation by a variable name. For example, in the proposition, ‘There are 2 objects which…’, it is expressed by ‘(∃x, y)…’. Wherever it is used in a different way, that is as a proper concept-word, nonsensical pseudo-propositions are the result. So one cannot say, for example, ‘There are objects’, as one might say, ‘There are books’. And it is just as impossible to say, ‘There are 100 objects’, or, ‘There are χ_0 objects’. And it is nonsensical to speak of the  <code>total number of objects</code>. The same applies to the words ‘complex’, ‘fact’, ‘function’, ‘number’, etc. They all signify formal concepts, and are represented in conceptual notation by variables, not by functions or classes (as Frege and Russell believed). ‘1 is a number’, ‘There is only one zero’, and all similar expressions are nonsensical. (It is just as nonsensical to say, ‘There is only one 1’, as it would be to say, ‘2+2 at 3 o’clock equals 4’.)</a> <br></br> <div class="outline-text-6" id="text-4.1272-Thus-the-variable-name-%E2%80%98x%E2%80%99-is-the-proper-sign-for-the-pseudo-concept-~object~.-Wherever-the-word-%E2%80%98object%E2%80%99-(%E2%80%98thing%E2%80%99,-etc.)-is-correctly-used,-it-is-expressed-in-conceptual-notation-by-a-variable-name.-For-example,-in-the-proposition,-%E2%80%98There-are-2-objects-which...%E2%80%99,-it-is-expressed-by-%E2%80%98(%E2%88%83x,-y)...%E2%80%99.-Wherever-it-is-used-in-a-different-way,-that-is-as-a-proper-concept-word,-nonsensical-pseudo-propositions-are-the-result.-So-one-cannot-say,-for-example,-%E2%80%98There-are-objects%E2%80%99,-as-one-might-say,-%E2%80%98There-are-books%E2%80%99.-And-it-is-just-as-impossible-to-say,-%E2%80%98There-are-100-objects%E2%80%99,-or,-%E2%80%98There-are-%5Cchi_0-objects%E2%80%99.-And-it-is-nonsensical-to-speak-of-the-~total-number-of-objects~.-The-same-applies-to-the-words-%E2%80%98complex%E2%80%99,-%E2%80%98fact%E2%80%99,-%E2%80%98function%E2%80%99,-%E2%80%98number%E2%80%99,-etc.-They-all-signify-formal-concepts,-and-are-represented-in-conceptual-notation-by-variables,-not-by-functions-or-classes-(as-Frege-and-Russell-believed).-%E2%80%981-is-a-number%E2%80%99,-%E2%80%98There-is-only-one-zero%E2%80%99,-and-all-similar-expressions-are-nonsensical.-(It-is-just-as-nonsensical-to-say,-%E2%80%98There-is-only-one-1%E2%80%99,-as-it-would-be-to-say,-%E2%80%982+2-at-3-o%E2%80%99clock-equals-4%E2%80%99.)">
 <p>
No, I do not understand that.
</p>

 <p>
If we use Church-encoding, we can avoid using primitive numbers.
</p>

 <p>
And these will be "different" ones in the different propositions.
</p>

 <p>
However, maybe he is speaking about "interning", functions, numbers, strings?
</p>

 <p>
Or, when speaking about "machine learning", about labels of the objects?
</p>

 <p>
It would make sense to intern labels?
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.12721-A-formal-concept-is-given-immediately-any-object-falling-under-it-is-given.-It-is-not-possible,-therefore,-to-introduce-as-primitive-ideas-objects-belonging-to-a-formal-concept-and-the-formal-concept-itself.-So-it-is-impossible,-for-example,-to-introduce-as-primitive-ideas-both-the-concept-of-a-function-and-specific-functions,-as-Russell-does;-or-the-concept-of-a-number-and-particular-numbers."></a> <a href="#4.12721-A-formal-concept-is-given-immediately-any-object-falling-under-it-is-given.-It-is-not-possible,-therefore,-to-introduce-as-primitive-ideas-objects-belonging-to-a-formal-concept-and-the-formal-concept-itself.-So-it-is-impossible,-for-example,-to-introduce-as-primitive-ideas-both-the-concept-of-a-function-and-specific-functions,-as-Russell-does;-or-the-concept-of-a-number-and-particular-numbers.">4.12721 A formal concept is given immediately any object falling under it is given. It is not possible, therefore, to introduce as primitive ideas objects belonging to a formal concept and the formal concept itself. So it is impossible, for example, to introduce as primitive ideas both the concept of a function and specific functions, as Russell does; or the concept of a number and particular numbers.</a> <br></br> <div class="outline-text-7" id="text-4.12721-A-formal-concept-is-given-immediately-any-object-falling-under-it-is-given.-It-is-not-possible,-therefore,-to-introduce-as-primitive-ideas-objects-belonging-to-a-formal-concept-and-the-formal-concept-itself.-So-it-is-impossible,-for-example,-to-introduce-as-primitive-ideas-both-the-concept-of-a-function-and-specific-functions,-as-Russell-does;-or-the-concept-of-a-number-and-particular-numbers.">
 <p>
In Lisp we seem to have an opposite view.
There are "interned symbols" and "uninterned symbols".
</p>

 <p>
The key here, I guess, is "primitive ideas".
</p>

 <p>
I think, Wittgenstein stresses the word "primitive".
It  <span class="underline">is</span> possible to introduce both "numbers", and "number 1", but one of those has to be non-primitive.
</p>
</div>
</li>
</ol></li>


 <li> <a id="4.1273-If-we-want-to-express-in-conceptual-notation-the-general-proposition,-%E2%80%98b-is-a-successor-of-a%E2%80%99,-then-we-require-an-expression-for-the-general-term-of-the-series-of-forms-%7BaRb,-(%E2%88%83x):aRx.xRb,-(%E2%88%83x,-y):aRx.xRy.yRb,...%7D.-In-order-to-express-the-general-term-of-a-series-of-forms,-we-must-use-a-variable,-because-the-concept-%E2%80%98term-of-that-series-of-forms%E2%80%99-is-a-formal-concept.-(This-is-what-Frege-and-Russell-overlooked:-consequently-the-way-in-which-they-want-to-express-general-propositions-like-the-one-above-is-incorrect;-it-contains-a-vicious-circle.)-We-can-determine-the-general-term-of-a-series-of-forms-by-giving-its-first-term-and-the-general-form-of-the-operation-that-produces-the-next-term-out-of-the-proposition-that-precedes-it."></a> <a href="#4.1273-If-we-want-to-express-in-conceptual-notation-the-general-proposition,-%E2%80%98b-is-a-successor-of-a%E2%80%99,-then-we-require-an-expression-for-the-general-term-of-the-series-of-forms-%7BaRb,-(%E2%88%83x):aRx.xRb,-(%E2%88%83x,-y):aRx.xRy.yRb,...%7D.-In-order-to-express-the-general-term-of-a-series-of-forms,-we-must-use-a-variable,-because-the-concept-%E2%80%98term-of-that-series-of-forms%E2%80%99-is-a-formal-concept.-(This-is-what-Frege-and-Russell-overlooked:-consequently-the-way-in-which-they-want-to-express-general-propositions-like-the-one-above-is-incorrect;-it-contains-a-vicious-circle.)-We-can-determine-the-general-term-of-a-series-of-forms-by-giving-its-first-term-and-the-general-form-of-the-operation-that-produces-the-next-term-out-of-the-proposition-that-precedes-it.">4.1273 If we want to express in conceptual notation the general proposition, ‘b is a successor of a’, then we require an expression for the general term of the series of forms {aRb, (∃x):aRx.xRb, (∃x, y):aRx.xRy.yRb,…}. In order to express the general term of a series of forms, we must use a variable, because the concept ‘term of that series of forms’ is a formal concept. (This is what Frege and Russell overlooked: consequently the way in which they want to express general propositions like the one above is incorrect; it contains a vicious circle.) We can determine the general term of a series of forms by giving its first term and the general form of the operation that produces the next term out of the proposition that precedes it.</a> <br></br> <div class="outline-text-6" id="text-4.1273-If-we-want-to-express-in-conceptual-notation-the-general-proposition,-%E2%80%98b-is-a-successor-of-a%E2%80%99,-then-we-require-an-expression-for-the-general-term-of-the-series-of-forms-%7BaRb,-(%E2%88%83x):aRx.xRb,-(%E2%88%83x,-y):aRx.xRy.yRb,...%7D.-In-order-to-express-the-general-term-of-a-series-of-forms,-we-must-use-a-variable,-because-the-concept-%E2%80%98term-of-that-series-of-forms%E2%80%99-is-a-formal-concept.-(This-is-what-Frege-and-Russell-overlooked:-consequently-the-way-in-which-they-want-to-express-general-propositions-like-the-one-above-is-incorrect;-it-contains-a-vicious-circle.)-We-can-determine-the-general-term-of-a-series-of-forms-by-giving-its-first-term-and-the-general-form-of-the-operation-that-produces-the-next-term-out-of-the-proposition-that-precedes-it.">
 <p>
This is kind of like trying to invent a lambda-expression, while not yet knowing what a lambda is.
Trying to encode a function in a formal notation.
</p>

 <p>
Poor Wittgenstein, born too early.
</p>
</div>
</li>

 <li> <a id="4.1274-To-ask-whether-a-formal-concept-exists-is-nonsensical.-For-no-proposition-can-be-the-answer-to-such-a-question.-(So,-for-example,-the-question,-%E2%80%98Are-there-unanalysable-subject-predicate-propositions?%E2%80%99-cannot-be-asked.)"></a> <a href="#4.1274-To-ask-whether-a-formal-concept-exists-is-nonsensical.-For-no-proposition-can-be-the-answer-to-such-a-question.-(So,-for-example,-the-question,-%E2%80%98Are-there-unanalysable-subject-predicate-propositions?%E2%80%99-cannot-be-asked.)">4.1274 To ask whether a formal concept exists is nonsensical. For no proposition can be the answer to such a question. (So, for example, the question, ‘Are there unanalysable subject-predicate propositions?’ cannot be asked.)</a> <br></br> <div class="outline-text-6" id="text-4.1274-To-ask-whether-a-formal-concept-exists-is-nonsensical.-For-no-proposition-can-be-the-answer-to-such-a-question.-(So,-for-example,-the-question,-%E2%80%98Are-there-unanalysable-subject-predicate-propositions?%E2%80%99-cannot-be-asked.)">
 <p>
I think this means that the usage of something in a piece of code implies semantical existence of this something.
</p>

 <p>
When we use a label in a machine-learning program, say, to distinguish chairs from tables, we almost imply that the very concept of chairs exists, since we use it in our code.
</p>
</div>
</li>
</ol></li>

 <li> <a id="4.128-Logical-forms-are-~without~-number.-Hence-there-are-no-pre-eminent-numbers-in-logic,-and-hence-there-is-no-possibility-of-philosophical-monism-or-dualism,-etc."></a> <a href="#4.128-Logical-forms-are-~without~-number.-Hence-there-are-no-pre-eminent-numbers-in-logic,-and-hence-there-is-no-possibility-of-philosophical-monism-or-dualism,-etc.">4.128 Logical forms are  <code>without</code> number. Hence there are no pre-eminent numbers in logic, and hence there is no possibility of philosophical monism or dualism, etc.</a> <br></br> <div class="outline-text-5" id="text-4.128-Logical-forms-are-~without~-number.-Hence-there-are-no-pre-eminent-numbers-in-logic,-and-hence-there-is-no-possibility-of-philosophical-monism-or-dualism,-etc.">
 <p>
Why are they without number?
Alphabets generally generate a countable number of words.
</p>

 <p>
What does "no possibility of philosophical monism or dualism"?
I remember that monism and dualism refer to the unity or separateness of brain and body.
</p>
</div>
</li>
</ol></div>
</div>


 <div id="outline-container-4.2-The-sense-of-a-proposition-is-its-agreement-and-disagreement-with-possibilities-of-existence-and-non-existence-of-states-of-affairs." class="outline-3">
 <h3 id="4.2-The-sense-of-a-proposition-is-its-agreement-and-disagreement-with-possibilities-of-existence-and-non-existence-of-states-of-affairs."> <span class="section-number-3">4.2.</span>  <a href="#4.2-The-sense-of-a-proposition-is-its-agreement-and-disagreement-with-possibilities-of-existence-and-non-existence-of-states-of-affairs.">4.2 The sense of a proposition is its agreement and disagreement with possibilities of existence and non-existence of states of affairs.</a></h3>
 <div class="outline-text-3" id="text-4.2-The-sense-of-a-proposition-is-its-agreement-and-disagreement-with-possibilities-of-existence-and-non-existence-of-states-of-affairs.">
 <p>
That's a bit Popperian "verifiability" and "falsifiability".
</p>

 <p>
A procedure has sense if it makes some inference about the input data, what is and what is not the case.
</p>
</div>

 <div id="outline-container-4.21-The-simplest-kind-of-proposition,-an-elementary-proposition,-asserts-the-existence-of-a-state-of-affairs." class="outline-4">
 <h4 id="4.21-The-simplest-kind-of-proposition,-an-elementary-proposition,-asserts-the-existence-of-a-state-of-affairs."> <span class="section-number-4">4.2.1.</span>  <a href="#4.21-The-simplest-kind-of-proposition,-an-elementary-proposition,-asserts-the-existence-of-a-state-of-affairs.">4.21 The simplest kind of proposition, an elementary proposition, asserts the existence of a state of affairs.</a></h4>
 <div class="outline-text-4" id="text-4.21-The-simplest-kind-of-proposition,-an-elementary-proposition,-asserts-the-existence-of-a-state-of-affairs.">
 <p>
Seems to be, essentially, leaving input untouched and always returning "true".
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.211-It-is-a-sign-of-a-proposition%E2%80%99s-being-elementary-that-there-can-be-no-elementary-proposition-contradicting-it."></a> <a href="#4.211-It-is-a-sign-of-a-proposition%E2%80%99s-being-elementary-that-there-can-be-no-elementary-proposition-contradicting-it.">4.211 It is a sign of a proposition’s being elementary that there can be no elementary proposition contradicting it.</a> <br></br> <div class="outline-text-5" id="text-4.211-It-is-a-sign-of-a-proposition%E2%80%99s-being-elementary-that-there-can-be-no-elementary-proposition-contradicting-it.">
 <p>
Unless your computation system is self-contradictory?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-4.22-An-elementary-proposition-consists-of-names.-It-is-a-nexus,-a-concatenation,-of-names." class="outline-4">
 <h4 id="4.22-An-elementary-proposition-consists-of-names.-It-is-a-nexus,-a-concatenation,-of-names."> <span class="section-number-4">4.2.2.</span>  <a href="#4.22-An-elementary-proposition-consists-of-names.-It-is-a-nexus,-a-concatenation,-of-names.">4.22 An elementary proposition consists of names. It is a nexus, a concatenation, of names.</a></h4>
 <div class="outline-text-4" id="text-4.22-An-elementary-proposition-consists-of-names.-It-is-a-nexus,-a-concatenation,-of-names.">
 <p>
Not obvious.
</p>

 <p>
Maybe I am overthinking it?
An elementary proposition is just a state of the bit N in the input?
Or, maybe, subset of bits.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.221-It-is-obvious-that-the-analysis-of-propositions-must-bring-us-to-elementary-propositions-which-consist-of-names-in-immediate-combination.-This-raises-the-question-how-such-combination-into-propositions-comes-about."></a> <a href="#4.221-It-is-obvious-that-the-analysis-of-propositions-must-bring-us-to-elementary-propositions-which-consist-of-names-in-immediate-combination.-This-raises-the-question-how-such-combination-into-propositions-comes-about.">4.221 It is obvious that the analysis of propositions must bring us to elementary propositions which consist of names in immediate combination. This raises the question how such combination into propositions comes about.</a> <br></br> <div class="outline-text-5" id="text-4.221-It-is-obvious-that-the-analysis-of-propositions-must-bring-us-to-elementary-propositions-which-consist-of-names-in-immediate-combination.-This-raises-the-question-how-such-combination-into-propositions-comes-about.">
 <p>
Not obvious.
It is true that propositions may be symbolic expressions, and if they obey certain syntax, they will, essentially consist of juxtaposed variables… and function calls.
These function calls are important.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.2211-Even-if-the-world-is-infinitely-complex,-so-that-every-fact-consists-of-infinitely-many-states-of-affairs-and-every-state-of-affairs-is-composed-of-infinitely-many-objects,-there-would-still-have-to-be-objects-and-states-of-affairs."></a> <a href="#4.2211-Even-if-the-world-is-infinitely-complex,-so-that-every-fact-consists-of-infinitely-many-states-of-affairs-and-every-state-of-affairs-is-composed-of-infinitely-many-objects,-there-would-still-have-to-be-objects-and-states-of-affairs.">4.2211 Even if the world is infinitely complex, so that every fact consists of infinitely many states of affairs and every state of affairs is composed of infinitely many objects, there would still have to be objects and states of affairs.</a> <br></br> <div class="outline-text-6" id="text-4.2211-Even-if-the-world-is-infinitely-complex,-so-that-every-fact-consists-of-infinitely-many-states-of-affairs-and-every-state-of-affairs-is-composed-of-infinitely-many-objects,-there-would-still-have-to-be-objects-and-states-of-affairs.">
 <p>
This is supposed to be a commentary to the "law of forming propositions".
Seems not very useful.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-4.23-It-is-only-in-the-nexus-of-an-elementary-proposition-that-a-name-occurs-in-a-proposition." class="outline-4">
 <h4 id="4.23-It-is-only-in-the-nexus-of-an-elementary-proposition-that-a-name-occurs-in-a-proposition."> <span class="section-number-4">4.2.3.</span>  <a href="#4.23-It-is-only-in-the-nexus-of-an-elementary-proposition-that-a-name-occurs-in-a-proposition.">4.23 It is only in the nexus of an elementary proposition that a name occurs in a proposition.</a></h4>
 <div class="outline-text-4" id="text-4.23-It-is-only-in-the-nexus-of-an-elementary-proposition-that-a-name-occurs-in-a-proposition.">
 <p>
Mumbo-jumbo.
</p>

 <p>
Does it mean that an "elementary proposition" has no variables, essentially?
</p>
</div>
</div>

 <div id="outline-container-4.24-Names-are-the-simple-symbols:-I-indicate-them-by-single-letters-(%E2%80%98x%E2%80%99,-%E2%80%98y%E2%80%99,-%E2%80%98z%E2%80%99).-I-write-elementary-propositions-as-functions-of-names,-so-that-they-have-the-form-%E2%80%98fx%E2%80%99,-%E2%80%98-%CF%86-(x,y)%E2%80%99,-etc.-Or-I-indicate-them-by-the-letters-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99." class="outline-4">
 <h4 id="4.24-Names-are-the-simple-symbols:-I-indicate-them-by-single-letters-(%E2%80%98x%E2%80%99,-%E2%80%98y%E2%80%99,-%E2%80%98z%E2%80%99).-I-write-elementary-propositions-as-functions-of-names,-so-that-they-have-the-form-%E2%80%98fx%E2%80%99,-%E2%80%98-%CF%86-(x,y)%E2%80%99,-etc.-Or-I-indicate-them-by-the-letters-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99."> <span class="section-number-4">4.2.4.</span>  <a href="#4.24-Names-are-the-simple-symbols:-I-indicate-them-by-single-letters-(%E2%80%98x%E2%80%99,-%E2%80%98y%E2%80%99,-%E2%80%98z%E2%80%99).-I-write-elementary-propositions-as-functions-of-names,-so-that-they-have-the-form-%E2%80%98fx%E2%80%99,-%E2%80%98-%CF%86-(x,y)%E2%80%99,-etc.-Or-I-indicate-them-by-the-letters-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99.">4.24 Names are the simple symbols: I indicate them by single letters (‘x’, ‘y’, ‘z’). I write elementary propositions as functions of names, so that they have the form ‘fx’, ‘ φ (x,y)’, etc. Or I indicate them by the letters ‘p’, ‘q’, ‘r’.</a></h4>
 <div class="outline-text-4" id="text-4.24-Names-are-the-simple-symbols:-I-indicate-them-by-single-letters-(%E2%80%98x%E2%80%99,-%E2%80%98y%E2%80%99,-%E2%80%98z%E2%80%99).-I-write-elementary-propositions-as-functions-of-names,-so-that-they-have-the-form-%E2%80%98fx%E2%80%99,-%E2%80%98-%CF%86-(x,y)%E2%80%99,-etc.-Or-I-indicate-them-by-the-letters-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99.">
 <p>
Okay, fairly standard notation.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.241-When-I-use-two-signs-with-one-and-the-same-meaning,-I-express-this-by-putting-the-sign-%E2%80%98=%E2%80%99-between-them.-So-%E2%80%98a-=-b%E2%80%99-means-that-the-sign-%E2%80%98b%E2%80%99-can-be-substituted-for-the-sign-%E2%80%98a%E2%80%99.-(If-I-use-an-equation-to-introduce-a-new-sign-%E2%80%98b%E2%80%99,-laying-down-that-it-shall-serve-as-a-substitute-for-a-sign-%E2%80%98a%E2%80%99-that-is-already-known,-then,-like-Russell,-I-write-the-equation%E2%80%94definition%E2%80%94in-the-form-%E2%80%98a-=-b-Def.%E2%80%99-A-definition-is-a-rule-dealing-with-signs.)"></a> <a href="#4.241-When-I-use-two-signs-with-one-and-the-same-meaning,-I-express-this-by-putting-the-sign-%E2%80%98=%E2%80%99-between-them.-So-%E2%80%98a-=-b%E2%80%99-means-that-the-sign-%E2%80%98b%E2%80%99-can-be-substituted-for-the-sign-%E2%80%98a%E2%80%99.-(If-I-use-an-equation-to-introduce-a-new-sign-%E2%80%98b%E2%80%99,-laying-down-that-it-shall-serve-as-a-substitute-for-a-sign-%E2%80%98a%E2%80%99-that-is-already-known,-then,-like-Russell,-I-write-the-equation%E2%80%94definition%E2%80%94in-the-form-%E2%80%98a-=-b-Def.%E2%80%99-A-definition-is-a-rule-dealing-with-signs.)">4.241 When I use two signs with one and the same meaning, I express this by putting the sign ‘=’ between them. So ‘a = b’ means that the sign ‘b’ can be substituted for the sign ‘a’. (If I use an equation to introduce a new sign ‘b’, laying down that it shall serve as a substitute for a sign ‘a’ that is already known, then, like Russell, I write the equation—definition—in the form ‘a = b Def.’ A definition is a rule dealing with signs.)</a> <br></br> <div class="outline-text-5" id="text-4.241-When-I-use-two-signs-with-one-and-the-same-meaning,-I-express-this-by-putting-the-sign-%E2%80%98=%E2%80%99-between-them.-So-%E2%80%98a-=-b%E2%80%99-means-that-the-sign-%E2%80%98b%E2%80%99-can-be-substituted-for-the-sign-%E2%80%98a%E2%80%99.-(If-I-use-an-equation-to-introduce-a-new-sign-%E2%80%98b%E2%80%99,-laying-down-that-it-shall-serve-as-a-substitute-for-a-sign-%E2%80%98a%E2%80%99-that-is-already-known,-then,-like-Russell,-I-write-the-equation%E2%80%94definition%E2%80%94in-the-form-%E2%80%98a-=-b-Def.%E2%80%99-A-definition-is-a-rule-dealing-with-signs.)">
 <p>
There is some caveat here between evaluation and substitution, defun and defmacro.
</p>

 <p>
In his case, "=" is more like "eqv?", than "eq?".
</p>
</div>
</li>

 <li> <a id="4.242-Expressions-of-the-form-%E2%80%98a-=-b%E2%80%99-are,-therefore,-mere-representational-devices.-They-state-nothing-about-the-meaning-of-the-signs-%E2%80%98a%E2%80%99-and-%E2%80%98b%E2%80%99."></a> <a href="#4.242-Expressions-of-the-form-%E2%80%98a-=-b%E2%80%99-are,-therefore,-mere-representational-devices.-They-state-nothing-about-the-meaning-of-the-signs-%E2%80%98a%E2%80%99-and-%E2%80%98b%E2%80%99.">4.242 Expressions of the form ‘a = b’ are, therefore, mere representational devices. They state nothing about the meaning of the signs ‘a’ and ‘b’.</a> <br></br> <div class="outline-text-5" id="text-4.242-Expressions-of-the-form-%E2%80%98a-=-b%E2%80%99-are,-therefore,-mere-representational-devices.-They-state-nothing-about-the-meaning-of-the-signs-%E2%80%98a%E2%80%99-and-%E2%80%98b%E2%80%99.">
 <p>
An ‘a = b’ can also be false?
</p>
</div>
</li>

 <li> <a id="4.243-Can-we-understand-two-names-without-knowing-whether-they-signify-the-same-thing-or-two-different-things?-%E2%80%94-Can-we-understand-a-proposition-in-which-two-names-occur-without-knowing-whether-their-meaning-is-the-same-or-different?-Suppose-I-know-the-meaning-of-an-English-word-and-of-a-German-word-that-means-the-same:-then-it-is-impossible-for-me-to-be-unaware-that-they-do-mean-the-same;-I-must-be-capable-of-translating-each-into-the-other.-Expressions-like-%E2%80%98a-=-a%E2%80%99,-and-those-derived-from-them,-are-neither-elementary-propositions-nor-is-there-any-other-way-in-which-they-have-sense.-(This-will-become-evident-later.)"></a> <a href="#4.243-Can-we-understand-two-names-without-knowing-whether-they-signify-the-same-thing-or-two-different-things?-%E2%80%94-Can-we-understand-a-proposition-in-which-two-names-occur-without-knowing-whether-their-meaning-is-the-same-or-different?-Suppose-I-know-the-meaning-of-an-English-word-and-of-a-German-word-that-means-the-same:-then-it-is-impossible-for-me-to-be-unaware-that-they-do-mean-the-same;-I-must-be-capable-of-translating-each-into-the-other.-Expressions-like-%E2%80%98a-=-a%E2%80%99,-and-those-derived-from-them,-are-neither-elementary-propositions-nor-is-there-any-other-way-in-which-they-have-sense.-(This-will-become-evident-later.)">4.243 Can we understand two names without knowing whether they signify the same thing or two different things? — Can we understand a proposition in which two names occur without knowing whether their meaning is the same or different? Suppose I know the meaning of an English word and of a German word that means the same: then it is impossible for me to be unaware that they do mean the same; I must be capable of translating each into the other. Expressions like ‘a = a’, and those derived from them, are neither elementary propositions nor is there any other way in which they have sense. (This will become evident later.)</a> <br></br> <div class="outline-text-5" id="text-4.243-Can-we-understand-two-names-without-knowing-whether-they-signify-the-same-thing-or-two-different-things?-%E2%80%94-Can-we-understand-a-proposition-in-which-two-names-occur-without-knowing-whether-their-meaning-is-the-same-or-different?-Suppose-I-know-the-meaning-of-an-English-word-and-of-a-German-word-that-means-the-same:-then-it-is-impossible-for-me-to-be-unaware-that-they-do-mean-the-same;-I-must-be-capable-of-translating-each-into-the-other.-Expressions-like-%E2%80%98a-=-a%E2%80%99,-and-those-derived-from-them,-are-neither-elementary-propositions-nor-is-there-any-other-way-in-which-they-have-sense.-(This-will-become-evident-later.)">
 <p>
So, he is more or less trying to define logical equality in this subchapter?
</p>

 <p>
In Scheme we have "eq?", "eqv?", "equal?" to represent "same" as in "same place in memory", "almost the same", and "equivalent in meaning".
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-4.25-If-an-elementary-proposition-is-true,-the-state-of-affairs-exists:-if-an-elementary-proposition-is-false,-the-state-of-affairs-does-not-exist." class="outline-4">
 <h4 id="4.25-If-an-elementary-proposition-is-true,-the-state-of-affairs-exists:-if-an-elementary-proposition-is-false,-the-state-of-affairs-does-not-exist."> <span class="section-number-4">4.2.5.</span>  <a href="#4.25-If-an-elementary-proposition-is-true,-the-state-of-affairs-exists:-if-an-elementary-proposition-is-false,-the-state-of-affairs-does-not-exist.">4.25 If an elementary proposition is true, the state of affairs exists: if an elementary proposition is false, the state of affairs does not exist.</a></h4>
 <div class="outline-text-4" id="text-4.25-If-an-elementary-proposition-is-true,-the-state-of-affairs-exists:-if-an-elementary-proposition-is-false,-the-state-of-affairs-does-not-exist.">
 <p>
Why not the other way round?
</p>

 <p>
Perhaps, if we only speak about bits, then "true" would be equivalent to 1, and "false" to 0.
</p>
</div>
</div>

 <div id="outline-container-4.26-If-all-true-elementary-propositions-are-given,-the-result-is-a-complete-description-of-the-world.-The-world-is-completely-described-by-giving-all-elementary-propositions,-and-adding-which-of-them-are-true-and-which-false." class="outline-4">
 <h4 id="4.26-If-all-true-elementary-propositions-are-given,-the-result-is-a-complete-description-of-the-world.-The-world-is-completely-described-by-giving-all-elementary-propositions,-and-adding-which-of-them-are-true-and-which-false."> <span class="section-number-4">4.2.6.</span>  <a href="#4.26-If-all-true-elementary-propositions-are-given,-the-result-is-a-complete-description-of-the-world.-The-world-is-completely-described-by-giving-all-elementary-propositions,-and-adding-which-of-them-are-true-and-which-false.">4.26 If all true elementary propositions are given, the result is a complete description of the world. The world is completely described by giving all elementary propositions, and adding which of them are true and which false.</a></h4>
 <div class="outline-text-4" id="text-4.26-If-all-true-elementary-propositions-are-given,-the-result-is-a-complete-description-of-the-world.-The-world-is-completely-described-by-giving-all-elementary-propositions,-and-adding-which-of-them-are-true-and-which-false.">
 <p>
Ah! I didn't understand that.
</p>

 <p>
For Wittgenstein, not all of the underlying structure of the world accessible through input.
Some memory cells are inaccessible as individual cells.
(But, I guess, are accessible through propositions acting on blocks.)
</p>
</div>
</div>

 <div id="outline-container-4.27-For-n-states-of-affairs,-there-are-%5C(K_n=%5Csum_%7Bv=0%7D%5En-%5Cbinom%7Bn%7D%7Bv%7D%5C)-possibilities-of-existence-and-non-existence.-Of-these-states-of-affairs-any-combination-can-exist-and-the-remainder-not-exist." class="outline-4">
 <h4 id="4.27-For-n-states-of-affairs,-there-are-%5C(K_n=%5Csum_%7Bv=0%7D%5En-%5Cbinom%7Bn%7D%7Bv%7D%5C)-possibilities-of-existence-and-non-existence.-Of-these-states-of-affairs-any-combination-can-exist-and-the-remainder-not-exist."> <span class="section-number-4">4.2.7.</span>  <a href="#4.27-For-n-states-of-affairs,-there-are-%5C(K_n=%5Csum_%7Bv=0%7D%5En-%5Cbinom%7Bn%7D%7Bv%7D%5C)-possibilities-of-existence-and-non-existence.-Of-these-states-of-affairs-any-combination-can-exist-and-the-remainder-not-exist.">4.27 For n states of affairs, there are \(K_n=\sum_{v=0}^n \binom{n}{v}\) possibilities of existence and non-existence. Of these states of affairs any combination can exist and the remainder not exist.</a></h4>
 <div class="outline-text-4" id="text-4.27-For-n-states-of-affairs,-there-are-%5C(K_n=%5Csum_%7Bv=0%7D%5En-%5Cbinom%7Bn%7D%7Bv%7D%5C)-possibilities-of-existence-and-non-existence.-Of-these-states-of-affairs-any-combination-can-exist-and-the-remainder-not-exist.">
 <p>
At this point something start worrying me about Wittgenstein's mathematical skills.
</p>

 <p>
The sum is actually \(2^n\).
And this is in perfect accord with \(2^n\) possible configurations of bits.
It seems that his "states of affairs" are really bits.
</p>
</div>
</div>

 <div id="outline-container-4.28-There-correspond-to-these-combinations-the-same-number-of-possibilities-of-truth%E2%80%94and-falsity%E2%80%94for-n-elementary-propositions." class="outline-4">
 <h4 id="4.28-There-correspond-to-these-combinations-the-same-number-of-possibilities-of-truth%E2%80%94and-falsity%E2%80%94for-n-elementary-propositions."> <span class="section-number-4">4.2.8.</span>  <a href="#4.28-There-correspond-to-these-combinations-the-same-number-of-possibilities-of-truth%E2%80%94and-falsity%E2%80%94for-n-elementary-propositions.">4.28 There correspond to these combinations the same number of possibilities of truth—and falsity—for n elementary propositions.</a></h4>
 <div class="outline-text-4" id="text-4.28-There-correspond-to-these-combinations-the-same-number-of-possibilities-of-truth%E2%80%94and-falsity%E2%80%94for-n-elementary-propositions.">
 <p>
Yeah, again, basically, input.
</p>
</div>
</div>
</div>

 <div id="outline-container-4.3-Truth-possibilities-of-elementary-propositions-mean-possibilities-of-existence-and-non-existence-of-states-of-affairs." class="outline-3">
 <h3 id="4.3-Truth-possibilities-of-elementary-propositions-mean-possibilities-of-existence-and-non-existence-of-states-of-affairs."> <span class="section-number-3">4.3.</span>  <a href="#4.3-Truth-possibilities-of-elementary-propositions-mean-possibilities-of-existence-and-non-existence-of-states-of-affairs.">4.3 Truth-possibilities of elementary propositions mean possibilities of existence and non-existence of states of affairs.</a></h3>
 <div class="outline-text-3" id="text-4.3-Truth-possibilities-of-elementary-propositions-mean-possibilities-of-existence-and-non-existence-of-states-of-affairs.">
 <p>
Again, basically, bits.
</p>
</div>

 <div id="outline-container-4.31-We-can-represent-truth-possibilities-by-schemata-of-the-following-kind-(%E2%80%98T%E2%80%99-means-%E2%80%98true%E2%80%99,-%E2%80%98F%E2%80%99-means-%E2%80%98false%E2%80%99;-the-rows-of-%E2%80%98T%E2%80%99s%E2%80%99-and-%E2%80%98F%E2%80%99s%E2%80%99-under-the-row-of-elementary-propositions-symbolize-their-truth-possibilities-in-a-way-that-can-easily-be-understood):" class="outline-4">
 <h4 id="4.31-We-can-represent-truth-possibilities-by-schemata-of-the-following-kind-(%E2%80%98T%E2%80%99-means-%E2%80%98true%E2%80%99,-%E2%80%98F%E2%80%99-means-%E2%80%98false%E2%80%99;-the-rows-of-%E2%80%98T%E2%80%99s%E2%80%99-and-%E2%80%98F%E2%80%99s%E2%80%99-under-the-row-of-elementary-propositions-symbolize-their-truth-possibilities-in-a-way-that-can-easily-be-understood):"> <span class="section-number-4">4.3.1.</span>  <a href="#4.31-We-can-represent-truth-possibilities-by-schemata-of-the-following-kind-(%E2%80%98T%E2%80%99-means-%E2%80%98true%E2%80%99,-%E2%80%98F%E2%80%99-means-%E2%80%98false%E2%80%99;-the-rows-of-%E2%80%98T%E2%80%99s%E2%80%99-and-%E2%80%98F%E2%80%99s%E2%80%99-under-the-row-of-elementary-propositions-symbolize-their-truth-possibilities-in-a-way-that-can-easily-be-understood):">4.31 We can represent truth-possibilities by schemata of the following kind (‘T’ means ‘true’, ‘F’ means ‘false’; the rows of ‘T’s’ and ‘F’s’ under the row of elementary propositions symbolize their truth-possibilities in a way that can easily be understood):</a></h4>
 <div class="outline-text-4" id="text-4.31-We-can-represent-truth-possibilities-by-schemata-of-the-following-kind-(%E2%80%98T%E2%80%99-means-%E2%80%98true%E2%80%99,-%E2%80%98F%E2%80%99-means-%E2%80%98false%E2%80%99;-the-rows-of-%E2%80%98T%E2%80%99s%E2%80%99-and-%E2%80%98F%E2%80%99s%E2%80%99-under-the-row-of-elementary-propositions-symbolize-their-truth-possibilities-in-a-way-that-can-easily-be-understood):">
 <table> <colgroup> <col class="org-left"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">p</th>
 <th scope="col" class="org-left">q</th>
 <th scope="col" class="org-left">r</th>
</tr></thead> <tbody> <tr> <td class="org-left">T</td>
 <td class="org-left">T</td>
 <td class="org-left">T</td>
</tr> <tr> <td class="org-left">F</td>
 <td class="org-left">T</td>
 <td class="org-left">T</td>
</tr> <tr> <td class="org-left">T</td>
 <td class="org-left">F</td>
 <td class="org-left">T</td>
</tr> <tr> <td class="org-left">T</td>
 <td class="org-left">T</td>
 <td class="org-left">F</td>
</tr> <tr> <td class="org-left">F</td>
 <td class="org-left">F</td>
 <td class="org-left">T</td>
</tr> <tr> <td class="org-left">F</td>
 <td class="org-left">T</td>
 <td class="org-left">F</td>
</tr> <tr> <td class="org-left">T</td>
 <td class="org-left">F</td>
 <td class="org-left">F</td>
</tr> <tr> <td class="org-left">F</td>
 <td class="org-left">F</td>
 <td class="org-left">F</td>
</tr></tbody></table> <table> <colgroup> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">p</th>
 <th scope="col" class="org-left">q</th>
</tr></thead> <tbody> <tr> <td class="org-left">T</td>
 <td class="org-left">T</td>
</tr> <tr> <td class="org-left">F</td>
 <td class="org-left">T</td>
</tr> <tr> <td class="org-left">T</td>
 <td class="org-left">F</td>
</tr> <tr> <td class="org-left">F</td>
 <td class="org-left">F</td>
</tr></tbody></table> <table> <colgroup> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">p</th>
</tr></thead> <tbody> <tr> <td class="org-left">T</td>
</tr> <tr> <td class="org-left">F</td>
</tr></tbody></table> <p>
Oh, right, the first three binoms.
</p>
</div>
</div>
</div>

 <div id="outline-container-4.4-A-proposition-is-an-expression-of-agreement-and-disagreement-with-truth-possibilities-of-elementary-propositions." class="outline-3">
 <h3 id="4.4-A-proposition-is-an-expression-of-agreement-and-disagreement-with-truth-possibilities-of-elementary-propositions."> <span class="section-number-3">4.4.</span>  <a href="#4.4-A-proposition-is-an-expression-of-agreement-and-disagreement-with-truth-possibilities-of-elementary-propositions.">4.4 A proposition is an expression of agreement and disagreement with truth-possibilities of elementary propositions.</a></h3>
 <div class="outline-text-3" id="text-4.4-A-proposition-is-an-expression-of-agreement-and-disagreement-with-truth-possibilities-of-elementary-propositions.">
 <p>
Basically, saying that you can turn any boolean function into a conjunction of disjunctions.
</p>
</div>

 <div id="outline-container-4.41-Truth-possibilities-of-elementary-propositions-are-the-conditions-of-the-truth-and-falsity-of-propositions." class="outline-4">
 <h4 id="4.41-Truth-possibilities-of-elementary-propositions-are-the-conditions-of-the-truth-and-falsity-of-propositions."> <span class="section-number-4">4.4.1.</span>  <a href="#4.41-Truth-possibilities-of-elementary-propositions-are-the-conditions-of-the-truth-and-falsity-of-propositions.">4.41 Truth-possibilities of elementary propositions are the conditions of the truth and falsity of propositions.</a></h4>
 <div class="outline-text-4" id="text-4.41-Truth-possibilities-of-elementary-propositions-are-the-conditions-of-the-truth-and-falsity-of-propositions.">
 <p>
Again, since we have no input and no randomness, input is the only thing left.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.411-It-immediately-strikes-one-as-probable-that-the-introduction-of-elementary-propositions-provides-the-basis-for-understanding-all-other-kinds-of-proposition.-Indeed-the-understanding-of-general-propositions-palpably-~depends~-on-the-understanding-of-elementary-propositions."></a> <a href="#4.411-It-immediately-strikes-one-as-probable-that-the-introduction-of-elementary-propositions-provides-the-basis-for-understanding-all-other-kinds-of-proposition.-Indeed-the-understanding-of-general-propositions-palpably-~depends~-on-the-understanding-of-elementary-propositions.">4.411 It immediately strikes one as probable that the introduction of elementary propositions provides the basis for understanding all other kinds of proposition. Indeed the understanding of general propositions palpably  <code>depends</code> on the understanding of elementary propositions.</a> <br></br> <div class="outline-text-5" id="text-4.411-It-immediately-strikes-one-as-probable-that-the-introduction-of-elementary-propositions-provides-the-basis-for-understanding-all-other-kinds-of-proposition.-Indeed-the-understanding-of-general-propositions-palpably-~depends~-on-the-understanding-of-elementary-propositions.">
 <p>
Not very clear.
</p>

 <p>
But clearly, all computation should eventually reduce to operations on bits.
</p>
</div>
</li>
</ol></div>


 <div id="outline-container-4.42-For-n-elementary-propositions-there-are-%5C(%5Csum_%7Bk=0%7D%5E%7BK_n%7D%5Cleft(%5Cfrac%7BK_n%7D%7Bk%7D%5Cright)=L_n%5C)-ways-in-which-a-proposition-can-agree-and-disagree-with-their-truth-possibilities" class="outline-4">
 <h4 id="4.42-For-n-elementary-propositions-there-are-%5C(%5Csum_%7Bk=0%7D%5E%7BK_n%7D%5Cleft(%5Cfrac%7BK_n%7D%7Bk%7D%5Cright)=L_n%5C)-ways-in-which-a-proposition-can-agree-and-disagree-with-their-truth-possibilities"> <span class="section-number-4">4.4.2.</span>  <a href="#4.42-For-n-elementary-propositions-there-are-%5C(%5Csum_%7Bk=0%7D%5E%7BK_n%7D%5Cleft(%5Cfrac%7BK_n%7D%7Bk%7D%5Cright)=L_n%5C)-ways-in-which-a-proposition-can-agree-and-disagree-with-their-truth-possibilities"> <span class="todo TODO">TODO</span> 4.42 For n elementary propositions there are \(\sum_{k=0}^{K_n}\left(\frac{K_n}{k}\right)=L_n\) ways in which a proposition can agree and disagree with their truth-possibilities</a></h4>
 <div class="outline-text-4" id="text-4.42-For-n-elementary-propositions-there-are-%5C(%5Csum_%7Bk=0%7D%5E%7BK_n%7D%5Cleft(%5Cfrac%7BK_n%7D%7Bk%7D%5Cright)=L_n%5C)-ways-in-which-a-proposition-can-agree-and-disagree-with-their-truth-possibilities">
 <p>
We already know that \(K_n=2^n\), that's all possible bit-arrays.
</p>

 <p>
Is that even true combinatorially?
</p>

 <p>
How did he get this number, proponent of clarity?
</p>

 <p>
Is it the maximal number of clauses in an conjunctive form?
A proposition can be conditioned on 1 to n variables, and the i'th subset of those 1 to n variables can be in \(2^i\) configurations, each of which may or may not deliver truthfulness to the proposition.
</p>
</div>
</div>

 <div id="outline-container-4.43-We-can-express-agreement-with-truth-possibilities-by-correlating-the-mark-%E2%80%98T%E2%80%99-(true)-with-them-in-the-schema.-The-absence-of-this-mark-means-disagreement." class="outline-4">
 <h4 id="4.43-We-can-express-agreement-with-truth-possibilities-by-correlating-the-mark-%E2%80%98T%E2%80%99-(true)-with-them-in-the-schema.-The-absence-of-this-mark-means-disagreement."> <span class="section-number-4">4.4.3.</span>  <a href="#4.43-We-can-express-agreement-with-truth-possibilities-by-correlating-the-mark-%E2%80%98T%E2%80%99-(true)-with-them-in-the-schema.-The-absence-of-this-mark-means-disagreement.">4.43 We can express agreement with truth-possibilities by correlating the mark ‘T’ (true) with them in the schema. The absence of this mark means disagreement.</a></h4>
 <div class="outline-text-4" id="text-4.43-We-can-express-agreement-with-truth-possibilities-by-correlating-the-mark-%E2%80%98T%E2%80%99-(true)-with-them-in-the-schema.-The-absence-of-this-mark-means-disagreement.">
 <p>
Ok?
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.431-The-expression-of-agreement-and-disagreement-with-the-truth-possibilities-of-elementary-propositions-expresses-the-truth-conditions-of-a-proposition.-A-proposition-is-the-expression-of-its-truth-conditions.-(Thus-Frege-was-quite-right-to-use-them-as-a-starting-point-when-he-explained-the-signs-of-his-conceptual-notation.-But-the-explanation-of-the-concept-of-truth-that-Frege-gives-is-mistaken:-if-%E2%80%98the-true%E2%80%99-and-%E2%80%98the-false%E2%80%99-were-really-objects,-and-were-the-arguments-in-~p-etc.,-then-Frege%E2%80%99s-method-of-determining-the-sense-of-%E2%80%98~p%E2%80%99-would-leave-it-absolutely-undetermined.)"></a> <a href="#4.431-The-expression-of-agreement-and-disagreement-with-the-truth-possibilities-of-elementary-propositions-expresses-the-truth-conditions-of-a-proposition.-A-proposition-is-the-expression-of-its-truth-conditions.-(Thus-Frege-was-quite-right-to-use-them-as-a-starting-point-when-he-explained-the-signs-of-his-conceptual-notation.-But-the-explanation-of-the-concept-of-truth-that-Frege-gives-is-mistaken:-if-%E2%80%98the-true%E2%80%99-and-%E2%80%98the-false%E2%80%99-were-really-objects,-and-were-the-arguments-in-~p-etc.,-then-Frege%E2%80%99s-method-of-determining-the-sense-of-%E2%80%98~p%E2%80%99-would-leave-it-absolutely-undetermined.)">4.431 The expression of agreement and disagreement with the truth-possibilities of elementary propositions expresses the truth-conditions of a proposition. A proposition is the expression of its truth conditions. (Thus Frege was quite right to use them as a starting point when he explained the signs of his conceptual notation. But the explanation of the concept of truth that Frege gives is mistaken: if ‘the true’ and ‘the false’ were really objects, and were the arguments in ~p etc., then Frege’s method of determining the sense of ‘~p’ would leave it absolutely undetermined.)</a> <br></br> <div class="outline-text-5" id="text-4.431-The-expression-of-agreement-and-disagreement-with-the-truth-possibilities-of-elementary-propositions-expresses-the-truth-conditions-of-a-proposition.-A-proposition-is-the-expression-of-its-truth-conditions.-(Thus-Frege-was-quite-right-to-use-them-as-a-starting-point-when-he-explained-the-signs-of-his-conceptual-notation.-But-the-explanation-of-the-concept-of-truth-that-Frege-gives-is-mistaken:-if-%E2%80%98the-true%E2%80%99-and-%E2%80%98the-false%E2%80%99-were-really-objects,-and-were-the-arguments-in-~p-etc.,-then-Frege%E2%80%99s-method-of-determining-the-sense-of-%E2%80%98~p%E2%80%99-would-leave-it-absolutely-undetermined.)">
 <p>
This is almost again, reference to the "disjunctions of conjunctions" form (that "expression").
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-4.44-The-sign-that-results-from-correlating-the-mark-%E2%80%98T%E2%80%99-with-truth-possibilities-is-a-propositional-sign." class="outline-4">
 <h4 id="4.44-The-sign-that-results-from-correlating-the-mark-%E2%80%98T%E2%80%99-with-truth-possibilities-is-a-propositional-sign."> <span class="section-number-4">4.4.4.</span>  <a href="#4.44-The-sign-that-results-from-correlating-the-mark-%E2%80%98T%E2%80%99-with-truth-possibilities-is-a-propositional-sign.">4.44 The sign that results from correlating the mark ‘T’ with truth-possibilities is a propositional sign.</a></h4>
 <div class="outline-text-4" id="text-4.44-The-sign-that-results-from-correlating-the-mark-%E2%80%98T%E2%80%99-with-truth-possibilities-is-a-propositional-sign.">
 <p>
"Formula?"
</p>

 <p>
In our case it would be "a program".
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.441-It-is-clear-that-a-complex-of-the-signs-%E2%80%98F%E2%80%99-and-%E2%80%98T%E2%80%99-has-no-object-(or-complex-of-objects)-corresponding-to-it,-just-as-there-is-none-corresponding-to-the-horizontal-and-vertical-lines-or-to-the-brackets.-%E2%80%94-There-are-no-%E2%80%98logical-objects%E2%80%99.-Of-course-the-same-applies-to-all-signs-that-express-what-the-schemata-of-%E2%80%98T%E2%80%99s%E2%80%99-and-%E2%80%98F%E2%80%99s%E2%80%99-express."></a> <a href="#4.441-It-is-clear-that-a-complex-of-the-signs-%E2%80%98F%E2%80%99-and-%E2%80%98T%E2%80%99-has-no-object-(or-complex-of-objects)-corresponding-to-it,-just-as-there-is-none-corresponding-to-the-horizontal-and-vertical-lines-or-to-the-brackets.-%E2%80%94-There-are-no-%E2%80%98logical-objects%E2%80%99.-Of-course-the-same-applies-to-all-signs-that-express-what-the-schemata-of-%E2%80%98T%E2%80%99s%E2%80%99-and-%E2%80%98F%E2%80%99s%E2%80%99-express.">4.441 It is clear that a complex of the signs ‘F’ and ‘T’ has no object (or complex of objects) corresponding to it, just as there is none corresponding to the horizontal and vertical lines or to the brackets. — There are no ‘logical objects’. Of course the same applies to all signs that express what the schemata of ‘T’s’ and ‘F’s’ express.</a> <br></br> <div class="outline-text-5" id="text-4.441-It-is-clear-that-a-complex-of-the-signs-%E2%80%98F%E2%80%99-and-%E2%80%98T%E2%80%99-has-no-object-(or-complex-of-objects)-corresponding-to-it,-just-as-there-is-none-corresponding-to-the-horizontal-and-vertical-lines-or-to-the-brackets.-%E2%80%94-There-are-no-%E2%80%98logical-objects%E2%80%99.-Of-course-the-same-applies-to-all-signs-that-express-what-the-schemata-of-%E2%80%98T%E2%80%99s%E2%80%99-and-%E2%80%98F%E2%80%99s%E2%80%99-express.">
 <p>
Does he mean his own peculiar definition of objects, or objects in general?
</p>

 <p>
Or, is he saying, again, that only human interpretation gives meaning to Ts and Fs?
</p>
</div>
</li>

 <li> <a id="4.442-For-example,-the-following-is-a-propositional-sign:@-(Frege%E2%80%99s-%E2%80%98judgement-stroke%E2%80%99-%E2%80%98%7C%E2%80%93%E2%80%99-is-logically-quite-meaningless:-in-the-works-of-Frege-(and-Russell)-it-simply-indicates-that-these-authors-hold-the-propositions-marked-with-this-sign-to-be-true.-Thus-%E2%80%98%7C%E2%80%93%E2%80%99-is-no-more-a-component-part-of-a-proposition-than-is,-for-instance,-the-proposition%E2%80%99s-number.-It-is-quite-impossible-for-a-proposition-to-state-that-it-itself-is-true.)-If-the-order-of-the-truth-possibilities-in-a-schema-is-fixed-once-and-for-all-by-a-combinatory-rule,-then-the-last-column-by-itself-will-be-an-expression-of-the-truth-conditions.-If-we-now-write-this-column-as-a-row,-the-propositional-sign-will-become-%E2%80%98(TT-T)-(p,q)%E2%80%99-or-more-explicitly-%E2%80%98(TTFT)-(p,q)%E2%80%99.-(The-number-of-places-in-the-left-hand-pair-of-brackets-is-determined-by-the-number-of-terms-in-the-right-hand-pair.)"></a> <a href="#4.442-For-example,-the-following-is-a-propositional-sign:@-(Frege%E2%80%99s-%E2%80%98judgement-stroke%E2%80%99-%E2%80%98%7C%E2%80%93%E2%80%99-is-logically-quite-meaningless:-in-the-works-of-Frege-(and-Russell)-it-simply-indicates-that-these-authors-hold-the-propositions-marked-with-this-sign-to-be-true.-Thus-%E2%80%98%7C%E2%80%93%E2%80%99-is-no-more-a-component-part-of-a-proposition-than-is,-for-instance,-the-proposition%E2%80%99s-number.-It-is-quite-impossible-for-a-proposition-to-state-that-it-itself-is-true.)-If-the-order-of-the-truth-possibilities-in-a-schema-is-fixed-once-and-for-all-by-a-combinatory-rule,-then-the-last-column-by-itself-will-be-an-expression-of-the-truth-conditions.-If-we-now-write-this-column-as-a-row,-the-propositional-sign-will-become-%E2%80%98(TT-T)-(p,q)%E2%80%99-or-more-explicitly-%E2%80%98(TTFT)-(p,q)%E2%80%99.-(The-number-of-places-in-the-left-hand-pair-of-brackets-is-determined-by-the-number-of-terms-in-the-right-hand-pair.)">4.442 For example, the following is a propositional sign:@ (Frege’s ‘judgement-stroke’ ‘|–’ is logically quite meaningless: in the works of Frege (and Russell) it simply indicates that these authors hold the propositions marked with this sign to be true. Thus ‘|–’ is no more a component part of a proposition than is, for instance, the proposition’s number. It is quite impossible for a proposition to state that it itself is true.) If the order of the truth-possibilities in a schema is fixed once and for all by a combinatory rule, then the last column by itself will be an expression of the truth-conditions. If we now write this column as a row, the propositional sign will become ‘(TT-T) (p,q)’ or more explicitly ‘(TTFT) (p,q)’. (The number of places in the left-hand pair of brackets is determined by the number of terms in the right-hand pair.)</a> <br></br> <div class="outline-text-5" id="text-4.442-For-example,-the-following-is-a-propositional-sign:@-(Frege%E2%80%99s-%E2%80%98judgement-stroke%E2%80%99-%E2%80%98%7C%E2%80%93%E2%80%99-is-logically-quite-meaningless:-in-the-works-of-Frege-(and-Russell)-it-simply-indicates-that-these-authors-hold-the-propositions-marked-with-this-sign-to-be-true.-Thus-%E2%80%98%7C%E2%80%93%E2%80%99-is-no-more-a-component-part-of-a-proposition-than-is,-for-instance,-the-proposition%E2%80%99s-number.-It-is-quite-impossible-for-a-proposition-to-state-that-it-itself-is-true.)-If-the-order-of-the-truth-possibilities-in-a-schema-is-fixed-once-and-for-all-by-a-combinatory-rule,-then-the-last-column-by-itself-will-be-an-expression-of-the-truth-conditions.-If-we-now-write-this-column-as-a-row,-the-propositional-sign-will-become-%E2%80%98(TT-T)-(p,q)%E2%80%99-or-more-explicitly-%E2%80%98(TTFT)-(p,q)%E2%80%99.-(The-number-of-places-in-the-left-hand-pair-of-brackets-is-determined-by-the-number-of-terms-in-the-right-hand-pair.)">
 <p>
@=
</p>
 <table> <colgroup> <col class="org-left"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">p</th>
 <th scope="col" class="org-left">q</th>
 <th scope="col" class="org-left"> </th>
</tr></thead> <tbody> <tr> <td class="org-left">T</td>
 <td class="org-left">T</td>
 <td class="org-left">T</td>
</tr> <tr> <td class="org-left">F</td>
 <td class="org-left">T</td>
 <td class="org-left">T</td>
</tr> <tr> <td class="org-left">T</td>
 <td class="org-left">F</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">F</td>
 <td class="org-left">F</td>
 <td class="org-left">T</td>
</tr></tbody></table> <p>
This seems to be just his peculiar notation.
Yes, if you fix the order of variables, you can define a predicate as a bit sub-set on the bit set representing all possible states of your input and do a table lookup, instead of computing the value.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-4.45-For-n-elementary-propositions-there-are-L-n-possible-groups-of-truth-conditions.-The-groups-of-truth-conditions-that-are-obtainable-from-the-truth-possibilities-of-a-given-number-of-elementary-propositions-can-be-arranged-in-a-series." class="outline-4">
 <h4 id="4.45-For-n-elementary-propositions-there-are-L-n-possible-groups-of-truth-conditions.-The-groups-of-truth-conditions-that-are-obtainable-from-the-truth-possibilities-of-a-given-number-of-elementary-propositions-can-be-arranged-in-a-series."> <span class="section-number-4">4.4.5.</span>  <a href="#4.45-For-n-elementary-propositions-there-are-L-n-possible-groups-of-truth-conditions.-The-groups-of-truth-conditions-that-are-obtainable-from-the-truth-possibilities-of-a-given-number-of-elementary-propositions-can-be-arranged-in-a-series.">4.45 For n elementary propositions there are L n possible groups of truth-conditions. The groups of truth-conditions that are obtainable from the truth-possibilities of a given number of elementary propositions can be arranged in a series.</a></h4>
 <div class="outline-text-4" id="text-4.45-For-n-elementary-propositions-there-are-L-n-possible-groups-of-truth-conditions.-The-groups-of-truth-conditions-that-are-obtainable-from-the-truth-possibilities-of-a-given-number-of-elementary-propositions-can-be-arranged-in-a-series.">
 <p>
Yeah, elements in the disjunctive form.
</p>
</div>
</div>

 <div id="outline-container-4.46-Among-the-possible-groups-of-truth-conditions-there-are-two-extreme-cases.-In-one-of-these-cases-the-proposition-is-true-for-all-the-truth-possibilities-of-the-elementary-propositions.-We-say-that-the-truth-conditions-are-~tautological~.-In-the-second-case-the-proposition-is-false-for-all-the-truth-possibilities:-the-truth-conditions-are-~contradictory~.-In-the-first-case-we-call-the-proposition-a-tautology;-in-the-second,-a-contradiction." class="outline-4">
 <h4 id="4.46-Among-the-possible-groups-of-truth-conditions-there-are-two-extreme-cases.-In-one-of-these-cases-the-proposition-is-true-for-all-the-truth-possibilities-of-the-elementary-propositions.-We-say-that-the-truth-conditions-are-~tautological~.-In-the-second-case-the-proposition-is-false-for-all-the-truth-possibilities:-the-truth-conditions-are-~contradictory~.-In-the-first-case-we-call-the-proposition-a-tautology;-in-the-second,-a-contradiction."> <span class="section-number-4">4.4.6.</span>  <a href="#4.46-Among-the-possible-groups-of-truth-conditions-there-are-two-extreme-cases.-In-one-of-these-cases-the-proposition-is-true-for-all-the-truth-possibilities-of-the-elementary-propositions.-We-say-that-the-truth-conditions-are-~tautological~.-In-the-second-case-the-proposition-is-false-for-all-the-truth-possibilities:-the-truth-conditions-are-~contradictory~.-In-the-first-case-we-call-the-proposition-a-tautology;-in-the-second,-a-contradiction.">4.46 Among the possible groups of truth-conditions there are two extreme cases. In one of these cases the proposition is true for all the truth-possibilities of the elementary propositions. We say that the truth-conditions are  <code>tautological</code>. In the second case the proposition is false for all the truth-possibilities: the truth-conditions are  <code>contradictory</code>. In the first case we call the proposition a tautology; in the second, a contradiction.</a></h4>
 <div class="outline-text-4" id="text-4.46-Among-the-possible-groups-of-truth-conditions-there-are-two-extreme-cases.-In-one-of-these-cases-the-proposition-is-true-for-all-the-truth-possibilities-of-the-elementary-propositions.-We-say-that-the-truth-conditions-are-~tautological~.-In-the-second-case-the-proposition-is-false-for-all-the-truth-possibilities:-the-truth-conditions-are-~contradictory~.-In-the-first-case-we-call-the-proposition-a-tautology;-in-the-second,-a-contradiction.">
 <p>
Again, first-year mathematical logic course.
</p>

 <p>
Tautologies are also called "laws of logic".
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.461-Propositions-show-what-they-say:-tautologies-and-contradictions-show-that-they-say-nothing.-A-tautology-has-no-truth-conditions,-since-it-is-unconditionally-true:-and-a-contradiction-is-true-on-no-condition.-Tautologies-and-contradictions-lack-sense.-(Like-a-point-from-which-two-arrows-go-out-in-opposite-directions-to-one-another.)-(For-example,-I-know-nothing-about-the-weather-when-I-know-that-it-is-either-raining-or-not-raining.)"></a> <a href="#4.461-Propositions-show-what-they-say:-tautologies-and-contradictions-show-that-they-say-nothing.-A-tautology-has-no-truth-conditions,-since-it-is-unconditionally-true:-and-a-contradiction-is-true-on-no-condition.-Tautologies-and-contradictions-lack-sense.-(Like-a-point-from-which-two-arrows-go-out-in-opposite-directions-to-one-another.)-(For-example,-I-know-nothing-about-the-weather-when-I-know-that-it-is-either-raining-or-not-raining.)">4.461 Propositions show what they say: tautologies and contradictions show that they say nothing. A tautology has no truth-conditions, since it is unconditionally true: and a contradiction is true on no condition. Tautologies and contradictions lack sense. (Like a point from which two arrows go out in opposite directions to one another.) (For example, I know nothing about the weather when I know that it is either raining or not raining.)</a> <br></br> <div class="outline-text-5" id="text-4.461-Propositions-show-what-they-say:-tautologies-and-contradictions-show-that-they-say-nothing.-A-tautology-has-no-truth-conditions,-since-it-is-unconditionally-true:-and-a-contradiction-is-true-on-no-condition.-Tautologies-and-contradictions-lack-sense.-(Like-a-point-from-which-two-arrows-go-out-in-opposite-directions-to-one-another.)-(For-example,-I-know-nothing-about-the-weather-when-I-know-that-it-is-either-raining-or-not-raining.)">
 <p>
Indeed, but tautologies may also serve as a way to simplify expressions (reduce formulas).
</p>

 <p>
Contradictions may serve as compile-time checkers of correctness.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.4611-Tautologies-and-contradictions-are-not,-however,-nonsensical.-They-are-part-of-the-symbolism,-much-as-%E2%80%980%E2%80%99-is-part-of-the-symbolism-of-arithmetic."></a> <a href="#4.4611-Tautologies-and-contradictions-are-not,-however,-nonsensical.-They-are-part-of-the-symbolism,-much-as-%E2%80%980%E2%80%99-is-part-of-the-symbolism-of-arithmetic.">4.4611 Tautologies and contradictions are not, however, nonsensical. They are part of the symbolism, much as ‘0’ is part of the symbolism of arithmetic.</a> <br></br> <div class="outline-text-6" id="text-4.4611-Tautologies-and-contradictions-are-not,-however,-nonsensical.-They-are-part-of-the-symbolism,-much-as-%E2%80%980%E2%80%99-is-part-of-the-symbolism-of-arithmetic.">
 <p>
So, supposedly, we are interested in creating "theorems", that is, tautologies with a colossal number of input bits, that are hard to infer by brute-force.
</p>
</div>
</li>
</ol></li>

 <li> <a id="4.462-Tautologies-and-contradictions-are-not-pictures-of-reality.-They-do-not-represent-any-possible-situations.-For-the-former-admit-~all~-possible-situations,-and-the-latter-~none~.-In-a-tautology-the-conditions-of-agreement-with-the-world-%E2%80%94-the-representational-relations-%E2%80%94-cancel-one-another,-so-that-it-does-not-stand-in-any-representational-relation-to-reality."></a> <a href="#4.462-Tautologies-and-contradictions-are-not-pictures-of-reality.-They-do-not-represent-any-possible-situations.-For-the-former-admit-~all~-possible-situations,-and-the-latter-~none~.-In-a-tautology-the-conditions-of-agreement-with-the-world-%E2%80%94-the-representational-relations-%E2%80%94-cancel-one-another,-so-that-it-does-not-stand-in-any-representational-relation-to-reality.">4.462 Tautologies and contradictions are not pictures of reality. They do not represent any possible situations. For the former admit  <code>all</code> possible situations, and the latter  <code>none</code>. In a tautology the conditions of agreement with the world — the representational relations — cancel one another, so that it does not stand in any representational relation to reality.</a> <br></br> <div class="outline-text-5" id="text-4.462-Tautologies-and-contradictions-are-not-pictures-of-reality.-They-do-not-represent-any-possible-situations.-For-the-former-admit-~all~-possible-situations,-and-the-latter-~none~.-In-a-tautology-the-conditions-of-agreement-with-the-world-%E2%80%94-the-representational-relations-%E2%80%94-cancel-one-another,-so-that-it-does-not-stand-in-any-representational-relation-to-reality.">
 <p>
I guess, he implies that logic is above reality here.
</p>
</div>
</li>

 <li> <a id="4.463-The-truth-conditions-of-a-proposition-determine-the-range-that-it-leaves-open-to-the-facts.-(A-proposition,-a-picture,-or-a-model-is,-in-the-negative-sense,-like-a-solid-body-that-restricts-the-freedom-of-movement-of-others,-and,-in-the-positive-sense,-like-a-space-bounded-by-solid-substance-in-which-there-is-room-for-a-body.)-A-tautology-leaves-open-to-reality-the-whole%E2%80%94the-infinite-whole%E2%80%94of-logical-space:-a-contradiction-fills-the-whole-of-logical-space-leaving-no-point-of-it-for-reality.-Thus-neither-of-them-can-determine-reality-in-any-way."></a> <a href="#4.463-The-truth-conditions-of-a-proposition-determine-the-range-that-it-leaves-open-to-the-facts.-(A-proposition,-a-picture,-or-a-model-is,-in-the-negative-sense,-like-a-solid-body-that-restricts-the-freedom-of-movement-of-others,-and,-in-the-positive-sense,-like-a-space-bounded-by-solid-substance-in-which-there-is-room-for-a-body.)-A-tautology-leaves-open-to-reality-the-whole%E2%80%94the-infinite-whole%E2%80%94of-logical-space:-a-contradiction-fills-the-whole-of-logical-space-leaving-no-point-of-it-for-reality.-Thus-neither-of-them-can-determine-reality-in-any-way.">4.463 The truth-conditions of a proposition determine the range that it leaves open to the facts. (A proposition, a picture, or a model is, in the negative sense, like a solid body that restricts the freedom of movement of others, and, in the positive sense, like a space bounded by solid substance in which there is room for a body.) A tautology leaves open to reality the whole—the infinite whole—of logical space: a contradiction fills the whole of logical space leaving no point of it for reality. Thus neither of them can determine reality in any way.</a> <br></br> <div class="outline-text-5" id="text-4.463-The-truth-conditions-of-a-proposition-determine-the-range-that-it-leaves-open-to-the-facts.-(A-proposition,-a-picture,-or-a-model-is,-in-the-negative-sense,-like-a-solid-body-that-restricts-the-freedom-of-movement-of-others,-and,-in-the-positive-sense,-like-a-space-bounded-by-solid-substance-in-which-there-is-room-for-a-body.)-A-tautology-leaves-open-to-reality-the-whole%E2%80%94the-infinite-whole%E2%80%94of-logical-space:-a-contradiction-fills-the-whole-of-logical-space-leaving-no-point-of-it-for-reality.-Thus-neither-of-them-can-determine-reality-in-any-way.">
 <p>
I really like this metaphor.
</p>

 <p>
I can also relate this to an operator defining the behaviour of a system.
You take an initial condition (input), and evolve it.
</p>
</div>
</li>

 <li> <a id="4.464-A-tautology%E2%80%99s-truth-is-certain,-a-proposition%E2%80%99s-possible,-a-contradiction%E2%80%99s-impossible.-(Certain,-possible,-impossible:-here-we-have-the-first-indication-of-the-scale-that-we-need-in-the-theory-of-probability.)"></a> <a href="#4.464-A-tautology%E2%80%99s-truth-is-certain,-a-proposition%E2%80%99s-possible,-a-contradiction%E2%80%99s-impossible.-(Certain,-possible,-impossible:-here-we-have-the-first-indication-of-the-scale-that-we-need-in-the-theory-of-probability.)">4.464 A tautology’s truth is certain, a proposition’s possible, a contradiction’s impossible. (Certain, possible, impossible: here we have the first indication of the scale that we need in the theory of probability.)</a> <br></br> <div class="outline-text-5" id="text-4.464-A-tautology%E2%80%99s-truth-is-certain,-a-proposition%E2%80%99s-possible,-a-contradiction%E2%80%99s-impossible.-(Certain,-possible,-impossible:-here-we-have-the-first-indication-of-the-scale-that-we-need-in-the-theory-of-probability.)">
 <p>
That is a very nice link.
</p>
</div>
</li>

 <li> <a id="4.465-The-logical-product-of-a-tautology-and-a-proposition-says-the-same-thing-as-the-proposition.-This-product,-therefore,-is-identical-with-the-proposition.-For-it-is-impossible-to-alter-what-is-essential-to-a-symbol-without-altering-its-sense."></a> <a href="#4.465-The-logical-product-of-a-tautology-and-a-proposition-says-the-same-thing-as-the-proposition.-This-product,-therefore,-is-identical-with-the-proposition.-For-it-is-impossible-to-alter-what-is-essential-to-a-symbol-without-altering-its-sense.">4.465 The logical product of a tautology and a proposition says the same thing as the proposition. This product, therefore, is identical with the proposition. For it is impossible to alter what is essential to a symbol without altering its sense.</a> <br></br> <div class="outline-text-5" id="text-4.465-The-logical-product-of-a-tautology-and-a-proposition-says-the-same-thing-as-the-proposition.-This-product,-therefore,-is-identical-with-the-proposition.-For-it-is-impossible-to-alter-what-is-essential-to-a-symbol-without-altering-its-sense.">
 <p>
What is a "logical product"?
I guess, rewriting a function using an information-preserving rule (tautology)?
However, without altering its sense, may still mean "making it a lot faster".
</p>
</div>
</li>

 <li> <a id="4.466-What-corresponds-to-a-determinate-logical-combination-of-signs-is-a-determinate-logical-combination-of-their-meanings.-It-is-only-to-the-uncombined-signs-that-~absolutely-any~-combination-corresponds.-In-other-words,-propositions-that-are-true-for-every-situation-cannot-be-combinations-of-signs-at-all,-since,-if-they-were,-only-determinate-combinations-of-objects-could-correspond-to-them.-(And-what-is-not-a-logical-combination-has-no-combination-of-objects-corresponding-to-it.)-Tautology-and-contradiction-are-the-limiting-cases-%E2%80%94-indeed-the-disintegration-%E2%80%94-of-the-combination-of-signs."></a> <a href="#4.466-What-corresponds-to-a-determinate-logical-combination-of-signs-is-a-determinate-logical-combination-of-their-meanings.-It-is-only-to-the-uncombined-signs-that-~absolutely-any~-combination-corresponds.-In-other-words,-propositions-that-are-true-for-every-situation-cannot-be-combinations-of-signs-at-all,-since,-if-they-were,-only-determinate-combinations-of-objects-could-correspond-to-them.-(And-what-is-not-a-logical-combination-has-no-combination-of-objects-corresponding-to-it.)-Tautology-and-contradiction-are-the-limiting-cases-%E2%80%94-indeed-the-disintegration-%E2%80%94-of-the-combination-of-signs.">4.466 What corresponds to a determinate logical combination of signs is a determinate logical combination of their meanings. It is only to the uncombined signs that  <code>absolutely any</code> combination corresponds. In other words, propositions that are true for every situation cannot be combinations of signs at all, since, if they were, only determinate combinations of objects could correspond to them. (And what is not a logical combination has no combination of objects corresponding to it.) Tautology and contradiction are the limiting cases — indeed the disintegration — of the combination of signs.</a> <br></br> <div class="outline-text-5" id="text-4.466-What-corresponds-to-a-determinate-logical-combination-of-signs-is-a-determinate-logical-combination-of-their-meanings.-It-is-only-to-the-uncombined-signs-that-~absolutely-any~-combination-corresponds.-In-other-words,-propositions-that-are-true-for-every-situation-cannot-be-combinations-of-signs-at-all,-since,-if-they-were,-only-determinate-combinations-of-objects-could-correspond-to-them.-(And-what-is-not-a-logical-combination-has-no-combination-of-objects-corresponding-to-it.)-Tautology-and-contradiction-are-the-limiting-cases-%E2%80%94-indeed-the-disintegration-%E2%80%94-of-the-combination-of-signs.">
 <p>
I am not very sure what he means by "combination" here.
May be a combination in the Scheme sense, a computational graph, or just a multidimensional (in the sense of run in parallel) single-bit propositions.
</p>
</div>

 <ol class="org-ol"> <li> <a id="4.4661-Admittedly-the-signs-are-still-combined-with-one-another-even-in-tautologies-and-contradictions%E2%80%94i.e.-they-stand-in-certain-relations-to-one-another:-but-these-relations-have-no-meaning,-they-are-not-essential-to-the-~symbol~."></a> <a href="#4.4661-Admittedly-the-signs-are-still-combined-with-one-another-even-in-tautologies-and-contradictions%E2%80%94i.e.-they-stand-in-certain-relations-to-one-another:-but-these-relations-have-no-meaning,-they-are-not-essential-to-the-~symbol~.">4.4661 Admittedly the signs are still combined with one another even in tautologies and contradictions—i.e. they stand in certain relations to one another: but these relations have no meaning, they are not essential to the  <code>symbol</code>.</a> <br></br> <div class="outline-text-6" id="text-4.4661-Admittedly-the-signs-are-still-combined-with-one-another-even-in-tautologies-and-contradictions%E2%80%94i.e.-they-stand-in-certain-relations-to-one-another:-but-these-relations-have-no-meaning,-they-are-not-essential-to-the-~symbol~.">
 <p>
So, you can write a procedure with a lot of operations in it, but if it always produces #t, or #f, all of that operations are in vain.
</p>

 <p>
Optimise them out!
</p>
</div>
</li>
</ol></li>
</ol></div>
</div>

 <div id="outline-container-4.5-It-now-seems-possible-to-give-the-most-general-propositional-form:-that-is,-to-give-a-description-of-the-propositions-of-~any~-sign-language-~whatsoever~-in-such-a-way-that-every-possible-sense-can-be-expressed-by-a-symbol-satisfying-the-description,-and-every-symbol-satisfying-the-description-can-express-a-sense,-provided-that-the-meanings-of-the-names-are-suitably-chosen.-It-is-clear-that-~only~-what-is-essential-to-the-most-general-propositional-form-may-be-included-in-its-description-%E2%80%94-for-otherwise-it-would-not-be-the-most-general-form.-The-existence-of-a-general-propositional-form-is-proved-by-the-fact-that-there-cannot-be-a-proposition-whose-form-could-not-have-been-foreseen-(i.e.-constructed).-The-general-form-of-a-proposition-is:-This-is-how-things-stand." class="outline-3">
 <h3 id="4.5-It-now-seems-possible-to-give-the-most-general-propositional-form:-that-is,-to-give-a-description-of-the-propositions-of-~any~-sign-language-~whatsoever~-in-such-a-way-that-every-possible-sense-can-be-expressed-by-a-symbol-satisfying-the-description,-and-every-symbol-satisfying-the-description-can-express-a-sense,-provided-that-the-meanings-of-the-names-are-suitably-chosen.-It-is-clear-that-~only~-what-is-essential-to-the-most-general-propositional-form-may-be-included-in-its-description-%E2%80%94-for-otherwise-it-would-not-be-the-most-general-form.-The-existence-of-a-general-propositional-form-is-proved-by-the-fact-that-there-cannot-be-a-proposition-whose-form-could-not-have-been-foreseen-(i.e.-constructed).-The-general-form-of-a-proposition-is:-This-is-how-things-stand."> <span class="section-number-3">4.5.</span>  <a href="#4.5-It-now-seems-possible-to-give-the-most-general-propositional-form:-that-is,-to-give-a-description-of-the-propositions-of-~any~-sign-language-~whatsoever~-in-such-a-way-that-every-possible-sense-can-be-expressed-by-a-symbol-satisfying-the-description,-and-every-symbol-satisfying-the-description-can-express-a-sense,-provided-that-the-meanings-of-the-names-are-suitably-chosen.-It-is-clear-that-~only~-what-is-essential-to-the-most-general-propositional-form-may-be-included-in-its-description-%E2%80%94-for-otherwise-it-would-not-be-the-most-general-form.-The-existence-of-a-general-propositional-form-is-proved-by-the-fact-that-there-cannot-be-a-proposition-whose-form-could-not-have-been-foreseen-(i.e.-constructed).-The-general-form-of-a-proposition-is:-This-is-how-things-stand.">4.5 It now seems possible to give the most general propositional form: that is, to give a description of the propositions of  <code>any</code> sign-language  <code>whatsoever</code> in such a way that every possible sense can be expressed by a symbol satisfying the description, and every symbol satisfying the description can express a sense, provided that the meanings of the names are suitably chosen. It is clear that  <code>only</code> what is essential to the most general propositional form may be included in its description — for otherwise it would not be the most general form. The existence of a general propositional form is proved by the fact that there cannot be a proposition whose form could not have been foreseen (i.e. constructed). The general form of a proposition is: This is how things stand.</a></h3>
 <div class="outline-text-3" id="text-4.5-It-now-seems-possible-to-give-the-most-general-propositional-form:-that-is,-to-give-a-description-of-the-propositions-of-~any~-sign-language-~whatsoever~-in-such-a-way-that-every-possible-sense-can-be-expressed-by-a-symbol-satisfying-the-description,-and-every-symbol-satisfying-the-description-can-express-a-sense,-provided-that-the-meanings-of-the-names-are-suitably-chosen.-It-is-clear-that-~only~-what-is-essential-to-the-most-general-propositional-form-may-be-included-in-its-description-%E2%80%94-for-otherwise-it-would-not-be-the-most-general-form.-The-existence-of-a-general-propositional-form-is-proved-by-the-fact-that-there-cannot-be-a-proposition-whose-form-could-not-have-been-foreseen-(i.e.-constructed).-The-general-form-of-a-proposition-is:-This-is-how-things-stand.">
 <p>
"This is how things stand."
</p>

 <p>
Seems true, but useless?
</p>

 <p>
In other words, there is a function that produces  <span class="underline">all</span> of the information about the world described in the input – it just outputs all the input verbatim.
</p>
</div>

 <div id="outline-container-4.51-Suppose-that-I-am-given-~all~-elementary-propositions:-then-I-can-simply-ask-what-propositions-I-can-construct-out-of-them.-And-there-I-have-~all~-propositions,-and-that-fixes-their-limits." class="outline-4">
 <h4 id="4.51-Suppose-that-I-am-given-~all~-elementary-propositions:-then-I-can-simply-ask-what-propositions-I-can-construct-out-of-them.-And-there-I-have-~all~-propositions,-and-that-fixes-their-limits."> <span class="section-number-4">4.5.1.</span>  <a href="#4.51-Suppose-that-I-am-given-~all~-elementary-propositions:-then-I-can-simply-ask-what-propositions-I-can-construct-out-of-them.-And-there-I-have-~all~-propositions,-and-that-fixes-their-limits.">4.51 Suppose that I am given  <code>all</code> elementary propositions: then I can simply ask what propositions I can construct out of them. And there I have  <code>all</code> propositions, and that fixes their limits.</a></h4>
 <div class="outline-text-4" id="text-4.51-Suppose-that-I-am-given-~all~-elementary-propositions:-then-I-can-simply-ask-what-propositions-I-can-construct-out-of-them.-And-there-I-have-~all~-propositions,-and-that-fixes-their-limits.">
 <p>
This statement is a little shaky with infinite inputs.
</p>

 <p>
But if input is finite, then all possible conjunctive forms on the input length − all possible propositions will give the list of all propositions.
</p>

 <p>
Again, their number is colossal.
</p>
</div>
</div>

 <div id="outline-container-4.52-Propositions-comprise-all-that-follows-from-the-totality-of-all-elementary-propositions-(and,-of-course,-from-its-being-the-~totality~-of-them-~all~).-(Thus,-in-a-certain-sense,-it-could-be-said-that-all-propositions-were-generalizations-of-elementary-propositions.)" class="outline-4">
 <h4 id="4.52-Propositions-comprise-all-that-follows-from-the-totality-of-all-elementary-propositions-(and,-of-course,-from-its-being-the-~totality~-of-them-~all~).-(Thus,-in-a-certain-sense,-it-could-be-said-that-all-propositions-were-generalizations-of-elementary-propositions.)"> <span class="section-number-4">4.5.2.</span>  <a href="#4.52-Propositions-comprise-all-that-follows-from-the-totality-of-all-elementary-propositions-(and,-of-course,-from-its-being-the-~totality~-of-them-~all~).-(Thus,-in-a-certain-sense,-it-could-be-said-that-all-propositions-were-generalizations-of-elementary-propositions.)">4.52 Propositions comprise all that follows from the totality of all elementary propositions (and, of course, from its being the  <code>totality</code> of them  <code>all</code>). (Thus, in a certain sense, it could be said that all propositions were generalizations of elementary propositions.)</a></h4>
 <div class="outline-text-4" id="text-4.52-Propositions-comprise-all-that-follows-from-the-totality-of-all-elementary-propositions-(and,-of-course,-from-its-being-the-~totality~-of-them-~all~).-(Thus,-in-a-certain-sense,-it-could-be-said-that-all-propositions-were-generalizations-of-elementary-propositions.)">
 <p>
Seems clear.
All meaningful functions on N bits, we can pre-compute them all, and relax.
</p>
</div>
</div>

 <div id="outline-container-4.53-The-general-propositional-form-is-a-variable." class="outline-4">
 <h4 id="4.53-The-general-propositional-form-is-a-variable."> <span class="section-number-4">4.5.3.</span>  <a href="#4.53-The-general-propositional-form-is-a-variable.">4.53 The general propositional form is a variable.</a></h4>
 <div class="outline-text-4" id="text-4.53-The-general-propositional-form-is-a-variable.">
 <p>
And then we can use that "seemingly, existing" function output in new computation?
</p>

 <p>
Is that what he means?
</p>
</div>
</div>
</div>
</section> <section id="outline-container-5-A-proposition-is-a-truth-function-of-elementary-propositions.-(An-elementary-proposition-is-a-truth-function-of-itself.)" class="outline-2"> <h2 id="5-A-proposition-is-a-truth-function-of-elementary-propositions.-(An-elementary-proposition-is-a-truth-function-of-itself.)"> <span class="section-number-2">5.</span>  <a href="#5-A-proposition-is-a-truth-function-of-elementary-propositions.-(An-elementary-proposition-is-a-truth-function-of-itself.)">5 A proposition is a truth-function of elementary propositions. (An elementary proposition is a truth-function of itself.)</a></h2>
 <div class="outline-text-2" id="text-5-A-proposition-is-a-truth-function-of-elementary-propositions.-(An-elementary-proposition-is-a-truth-function-of-itself.)">
 <p>
Because everything is eventually boolean and binary.
Sort of.
</p>
</div>

 <div id="outline-container-5.01-Elementary-propositions-are-the-truth-arguments-of-propositions." class="outline-4">
 <h4 id="5.01-Elementary-propositions-are-the-truth-arguments-of-propositions."> <span class="section-number-4">5.0.1.</span>  <a href="#5.01-Elementary-propositions-are-the-truth-arguments-of-propositions.">5.01 Elementary propositions are the truth-arguments of propositions.</a></h4>
 <div class="outline-text-4" id="text-5.01-Elementary-propositions-are-the-truth-arguments-of-propositions.">
 <p>
Because functions have to work on something.
</p>
</div>
</div>

 <div id="outline-container-5.02-The-arguments-of-functions-are-readily-confused-with-the-affixes-of-names.-For-both-arguments-and-affixes-enable-me-to-recognize-the-meaning-of-the-signs-containing-them.-For-example,-when-Russell-writes-%E2%80%98%5C(+_%7B_c%7D%5C)%E2%80%99,-the-%E2%80%98-%5C(%5Cmbox%7B-%7D_c%5C)-%E2%80%99-is-an-affix-which-indicates-that-the-sign-as-a-whole-is-the-addition-sign-for-cardinal-numbers.-But-the-use-of-this-sign-is-the-result-of-arbitrary-convention-and-it-would-be-quite-possible-to-choose-a-simple-sign-instead-of-%E2%80%98%5C(+_c%5C)%E2%80%99;-in-%E2%80%98~p%E2%80%99,-however,-%E2%80%98p%E2%80%99-is-not-an-affix-but-an-argument:-the-sense-of-%E2%80%98~p%E2%80%99-~cannot~-be-understood-unless-the-sense-of-%E2%80%98p%E2%80%99-has-been-understood-already.-(In-the-name-Julius-Caesar-%E2%80%98Julius%E2%80%99-is-an-affix.-An-affix-is-always-part-of-a-description-of-the-object-to-whose-name-we-attach-it:-e.g.-~the~-Caesar-of-the-Julian-gens.)-If-I-am-not-mistaken,-Frege%E2%80%99s-theory-about-the-meaning-of-propositions-and-functions-is-based-on-the-confusion-between-an-argument-and-an-affix.-Frege-regarded-the-propositions-of-logic-as-names,-and-their-arguments-as-the-affixes-of-those-names." class="outline-4">
 <h4 id="5.02-The-arguments-of-functions-are-readily-confused-with-the-affixes-of-names.-For-both-arguments-and-affixes-enable-me-to-recognize-the-meaning-of-the-signs-containing-them.-For-example,-when-Russell-writes-%E2%80%98%5C(+_%7B_c%7D%5C)%E2%80%99,-the-%E2%80%98-%5C(%5Cmbox%7B-%7D_c%5C)-%E2%80%99-is-an-affix-which-indicates-that-the-sign-as-a-whole-is-the-addition-sign-for-cardinal-numbers.-But-the-use-of-this-sign-is-the-result-of-arbitrary-convention-and-it-would-be-quite-possible-to-choose-a-simple-sign-instead-of-%E2%80%98%5C(+_c%5C)%E2%80%99;-in-%E2%80%98~p%E2%80%99,-however,-%E2%80%98p%E2%80%99-is-not-an-affix-but-an-argument:-the-sense-of-%E2%80%98~p%E2%80%99-~cannot~-be-understood-unless-the-sense-of-%E2%80%98p%E2%80%99-has-been-understood-already.-(In-the-name-Julius-Caesar-%E2%80%98Julius%E2%80%99-is-an-affix.-An-affix-is-always-part-of-a-description-of-the-object-to-whose-name-we-attach-it:-e.g.-~the~-Caesar-of-the-Julian-gens.)-If-I-am-not-mistaken,-Frege%E2%80%99s-theory-about-the-meaning-of-propositions-and-functions-is-based-on-the-confusion-between-an-argument-and-an-affix.-Frege-regarded-the-propositions-of-logic-as-names,-and-their-arguments-as-the-affixes-of-those-names."> <span class="section-number-4">5.0.2.</span>  <a href="#5.02-The-arguments-of-functions-are-readily-confused-with-the-affixes-of-names.-For-both-arguments-and-affixes-enable-me-to-recognize-the-meaning-of-the-signs-containing-them.-For-example,-when-Russell-writes-%E2%80%98%5C(+_%7B_c%7D%5C)%E2%80%99,-the-%E2%80%98-%5C(%5Cmbox%7B-%7D_c%5C)-%E2%80%99-is-an-affix-which-indicates-that-the-sign-as-a-whole-is-the-addition-sign-for-cardinal-numbers.-But-the-use-of-this-sign-is-the-result-of-arbitrary-convention-and-it-would-be-quite-possible-to-choose-a-simple-sign-instead-of-%E2%80%98%5C(+_c%5C)%E2%80%99;-in-%E2%80%98~p%E2%80%99,-however,-%E2%80%98p%E2%80%99-is-not-an-affix-but-an-argument:-the-sense-of-%E2%80%98~p%E2%80%99-~cannot~-be-understood-unless-the-sense-of-%E2%80%98p%E2%80%99-has-been-understood-already.-(In-the-name-Julius-Caesar-%E2%80%98Julius%E2%80%99-is-an-affix.-An-affix-is-always-part-of-a-description-of-the-object-to-whose-name-we-attach-it:-e.g.-~the~-Caesar-of-the-Julian-gens.)-If-I-am-not-mistaken,-Frege%E2%80%99s-theory-about-the-meaning-of-propositions-and-functions-is-based-on-the-confusion-between-an-argument-and-an-affix.-Frege-regarded-the-propositions-of-logic-as-names,-and-their-arguments-as-the-affixes-of-those-names.">5.02 The arguments of functions are readily confused with the affixes of names. For both arguments and affixes enable me to recognize the meaning of the signs containing them. For example, when Russell writes ‘\(+_{_c}\)’, the ‘ \(\mbox{ }_c\) ’ is an affix which indicates that the sign as a whole is the addition-sign for cardinal numbers. But the use of this sign is the result of arbitrary convention and it would be quite possible to choose a simple sign instead of ‘\(+_c\)’; in ‘~p’, however, ‘p’ is not an affix but an argument: the sense of ‘~p’  <code>cannot</code> be understood unless the sense of ‘p’ has been understood already. (In the name Julius Caesar ‘Julius’ is an affix. An affix is always part of a description of the object to whose name we attach it: e.g.  <code>the</code> Caesar of the Julian gens.) If I am not mistaken, Frege’s theory about the meaning of propositions and functions is based on the confusion between an argument and an affix. Frege regarded the propositions of logic as names, and their arguments as the affixes of those names.</a></h4>
 <div class="outline-text-4" id="text-5.02-The-arguments-of-functions-are-readily-confused-with-the-affixes-of-names.-For-both-arguments-and-affixes-enable-me-to-recognize-the-meaning-of-the-signs-containing-them.-For-example,-when-Russell-writes-%E2%80%98%5C(+_%7B_c%7D%5C)%E2%80%99,-the-%E2%80%98-%5C(%5Cmbox%7B-%7D_c%5C)-%E2%80%99-is-an-affix-which-indicates-that-the-sign-as-a-whole-is-the-addition-sign-for-cardinal-numbers.-But-the-use-of-this-sign-is-the-result-of-arbitrary-convention-and-it-would-be-quite-possible-to-choose-a-simple-sign-instead-of-%E2%80%98%5C(+_c%5C)%E2%80%99;-in-%E2%80%98~p%E2%80%99,-however,-%E2%80%98p%E2%80%99-is-not-an-affix-but-an-argument:-the-sense-of-%E2%80%98~p%E2%80%99-~cannot~-be-understood-unless-the-sense-of-%E2%80%98p%E2%80%99-has-been-understood-already.-(In-the-name-Julius-Caesar-%E2%80%98Julius%E2%80%99-is-an-affix.-An-affix-is-always-part-of-a-description-of-the-object-to-whose-name-we-attach-it:-e.g.-~the~-Caesar-of-the-Julian-gens.)-If-I-am-not-mistaken,-Frege%E2%80%99s-theory-about-the-meaning-of-propositions-and-functions-is-based-on-the-confusion-between-an-argument-and-an-affix.-Frege-regarded-the-propositions-of-logic-as-names,-and-their-arguments-as-the-affixes-of-those-names.">
 <p>
This is a nice discussion of the difference between names and applications.
</p>

 <p>
Something that seems totally obvious to programmers.
</p>

 <p>
With generalised functions, though, you could have  <code>(+ 'cardinal a b)</code>
</p>
</div>
</div>

 <div id="outline-container-5.1-Truth-functions-can-be-arranged-in-series.-That-is-the-foundation-of-the-theory-of-probability." class="outline-3">
 <h3 id="5.1-Truth-functions-can-be-arranged-in-series.-That-is-the-foundation-of-the-theory-of-probability."> <span class="section-number-3">5.1.</span>  <a href="#5.1-Truth-functions-can-be-arranged-in-series.-That-is-the-foundation-of-the-theory-of-probability.">5.1 Truth-functions can be arranged in series. That is the foundation of the theory of probability.</a></h3>
 <div class="outline-text-3" id="text-5.1-Truth-functions-can-be-arranged-in-series.-That-is-the-foundation-of-the-theory-of-probability.">
 <p>
Unclear.
</p>

 <p>
Theory of probability is, in fact, totally deterministic, if we take distributions as the basic property of existence.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.101-The-truth-functions-of-a-given-number-of-elementary-propositions-can-always-be-set-out-in-a-schema-of-the-following-kind:@--I-will-give-the-name-~truth-grounds~-of-a-proposition-to-those-truth-possibilities-of-its-truth-arguments-that-make-it-true."></a> <a href="#5.101-The-truth-functions-of-a-given-number-of-elementary-propositions-can-always-be-set-out-in-a-schema-of-the-following-kind:@--I-will-give-the-name-~truth-grounds~-of-a-proposition-to-those-truth-possibilities-of-its-truth-arguments-that-make-it-true.">5.101 The truth-functions of a given number of elementary propositions can always be set out in a schema of the following kind:@  I will give the name  <code>truth-grounds</code> of a proposition to those truth-possibilities of its truth-arguments that make it true.</a> <br></br> <div class="outline-text-6" id="text-5.101-The-truth-functions-of-a-given-number-of-elementary-propositions-can-always-be-set-out-in-a-schema-of-the-following-kind:@--I-will-give-the-name-~truth-grounds~-of-a-proposition-to-those-truth-possibilities-of-its-truth-arguments-that-make-it-true.">
 <p>
(T T T T) (p, q) Tautology (If p then p, and if q then q.) (p ⊃ p . q ⊃ q)
(F T T T) (p, q) In words: Not both p and q. (~(p . q))
(T F T T) (p, q) ,, ,, : If q then p. (q ⊃ p)
(T T F T) (p, q) ,, ,, : If p then q. (p ⊃ q)
(T T T F) (p, q) ,, ,, : p or q. (p v q)
(F F T T) (p, q) ,, ,, : Not q. (~q)
(F T F T) (p, q) ,, ,, : Not p. (~p)
(F T T F) (p, q) ,, ,, : p or q, but not both. (p.~q : v : q.~p)
(T F F T) (p, q) ,, ,, : If p then q, and if q then p. (p ≡ q)
(T F T F) (p, q) ,, ,, : p
(T T F F) (p, q) ,, ,, : q
(F F F T) (p, q) ,, ,, : Neither p nor q. (~p .~q or p|q)
(F F T F) (p, q) ,, ,, : p and not q. (p . ~q)
(F T F F) (p, q) ,, ,, : q and not p. (q . ∼p)
(T F F F) (p, q) ,, ,, : q and p. (q . p)
(F F F F) (p, q) Contradiction (p and not p, and q and not q.) (p . ~p . q . ~q)
</p>

 <p>
I guess, this is a first step in rewriting conjunctive forms into something algorithmic.
</p>

 <p>
 <code>truth-grounds</code> seem to mean "subset of input when the function is true".
</p>
</div>
</li>
</ol> <div id="outline-container-5.11-If-all-the-truth-grounds-that-are-common-to-a-number-of-propositions-are-at-the-same-time-truth-grounds-of-a-certain-proposition,-then-we-say-that-the-truth-of-that-proposition-follows-from-the-truth-of-the-others." class="outline-4">
 <h4 id="5.11-If-all-the-truth-grounds-that-are-common-to-a-number-of-propositions-are-at-the-same-time-truth-grounds-of-a-certain-proposition,-then-we-say-that-the-truth-of-that-proposition-follows-from-the-truth-of-the-others."> <span class="section-number-4">5.1.1.</span>  <a href="#5.11-If-all-the-truth-grounds-that-are-common-to-a-number-of-propositions-are-at-the-same-time-truth-grounds-of-a-certain-proposition,-then-we-say-that-the-truth-of-that-proposition-follows-from-the-truth-of-the-others.">5.11 If all the truth-grounds that are common to a number of propositions are at the same time truth-grounds of a certain proposition, then we say that the truth of that proposition follows from the truth of the others.</a></h4>
 <div class="outline-text-4" id="text-5.11-If-all-the-truth-grounds-that-are-common-to-a-number-of-propositions-are-at-the-same-time-truth-grounds-of-a-certain-proposition,-then-we-say-that-the-truth-of-that-proposition-follows-from-the-truth-of-the-others.">
 <p>
We should be able to avoid computing the second function then.
</p>
</div>
</div>

 <div id="outline-container-5.12-In-particular,-the-truth-of-a-proposition-%E2%80%98p%E2%80%99-follows-from-the-truth-of-another-proposition-%E2%80%98q%E2%80%99-if-all-the-truth-grounds-of-the-latter-are-truth-grounds-of-the-former." class="outline-4">
 <h4 id="5.12-In-particular,-the-truth-of-a-proposition-%E2%80%98p%E2%80%99-follows-from-the-truth-of-another-proposition-%E2%80%98q%E2%80%99-if-all-the-truth-grounds-of-the-latter-are-truth-grounds-of-the-former."> <span class="section-number-4">5.1.2.</span>  <a href="#5.12-In-particular,-the-truth-of-a-proposition-%E2%80%98p%E2%80%99-follows-from-the-truth-of-another-proposition-%E2%80%98q%E2%80%99-if-all-the-truth-grounds-of-the-latter-are-truth-grounds-of-the-former.">5.12 In particular, the truth of a proposition ‘p’ follows from the truth of another proposition ‘q’ if all the truth-grounds of the latter are truth-grounds of the former.</a></h4>
 <div class="outline-text-4" id="text-5.12-In-particular,-the-truth-of-a-proposition-%E2%80%98p%E2%80%99-follows-from-the-truth-of-another-proposition-%E2%80%98q%E2%80%99-if-all-the-truth-grounds-of-the-latter-are-truth-grounds-of-the-former.">
 <p>
Same.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.121-The-truth-grounds-of-the-one-are-contained-in-those-of-the-other:-p-follows-from-q."></a> <a href="#5.121-The-truth-grounds-of-the-one-are-contained-in-those-of-the-other:-p-follows-from-q.">5.121 The truth-grounds of the one are contained in those of the other: p follows from q.</a> <br></br> <div class="outline-text-5" id="text-5.121-The-truth-grounds-of-the-one-are-contained-in-those-of-the-other:-p-follows-from-q.">
 <p>
Seems like another optimisation opportunity.
</p>
</div>
</li>

 <li> <a id="5.122-If-p-follows-from-q,-the-sense-of-%E2%80%98p%E2%80%99-is-contained-in-the-sense-of-%E2%80%98q%E2%80%99."></a> <a href="#5.122-If-p-follows-from-q,-the-sense-of-%E2%80%98p%E2%80%99-is-contained-in-the-sense-of-%E2%80%98q%E2%80%99.">5.122 If p follows from q, the sense of ‘p’ is contained in the sense of ‘q’.</a> <br></br> <div class="outline-text-5" id="text-5.122-If-p-follows-from-q,-the-sense-of-%E2%80%98p%E2%80%99-is-contained-in-the-sense-of-%E2%80%98q%E2%80%99.">
 <p>
What about the cases when p→q, but not always the opposite?
</p>
</div>
</li>

 <li> <a id="5.123-If-a-god-creates-a-world-in-which-certain-propositions-are-true,-then-by-that-very-act-he-also-creates-a-world-in-which-all-the-propositions-that-follow-from-them-come-true.-And-similarly-he-could-not-create-a-world-in-which-the-proposition-%E2%80%98p%E2%80%99-was-true-without-creating-all-its-objects."></a> <a href="#5.123-If-a-god-creates-a-world-in-which-certain-propositions-are-true,-then-by-that-very-act-he-also-creates-a-world-in-which-all-the-propositions-that-follow-from-them-come-true.-And-similarly-he-could-not-create-a-world-in-which-the-proposition-%E2%80%98p%E2%80%99-was-true-without-creating-all-its-objects.">5.123 If a god creates a world in which certain propositions are true, then by that very act he also creates a world in which all the propositions that follow from them come true. And similarly he could not create a world in which the proposition ‘p’ was true without creating all its objects.</a> <br></br> <div class="outline-text-5" id="text-5.123-If-a-god-creates-a-world-in-which-certain-propositions-are-true,-then-by-that-very-act-he-also-creates-a-world-in-which-all-the-propositions-that-follow-from-them-come-true.-And-similarly-he-could-not-create-a-world-in-which-the-proposition-%E2%80%98p%E2%80%99-was-true-without-creating-all-its-objects.">
 <p>
I guess, this should urge us to believe that we can find those “propositions that follow”.
</p>
</div>
</li>

 <li> <a id="5.124-A-proposition-affirms-every-proposition-that-follows-from-it."></a> <a href="#5.124-A-proposition-affirms-every-proposition-that-follows-from-it.">5.124 A proposition affirms every proposition that follows from it.</a> <br></br> <div class="outline-text-5" id="text-5.124-A-proposition-affirms-every-proposition-that-follows-from-it.">
 <p>
Okay…
Not sure I understand why this is important.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.1241-%E2%80%98p.-q%E2%80%99-is-one-of-the-propositions-that-affirm-%E2%80%98p%E2%80%99-and-at-the-same-time-one-of-the-propositions-that-affirm-%E2%80%98q%E2%80%99.-Two-propositions-are-opposed-to-one-another-if-there-is-no-proposition-with-a-sense,-that-affirms-them-both.-Every-proposition-that-contradicts-another-negates-it."></a> <a href="#5.1241-%E2%80%98p.-q%E2%80%99-is-one-of-the-propositions-that-affirm-%E2%80%98p%E2%80%99-and-at-the-same-time-one-of-the-propositions-that-affirm-%E2%80%98q%E2%80%99.-Two-propositions-are-opposed-to-one-another-if-there-is-no-proposition-with-a-sense,-that-affirms-them-both.-Every-proposition-that-contradicts-another-negates-it.">5.1241 ‘p. q’ is one of the propositions that affirm ‘p’ and at the same time one of the propositions that affirm ‘q’. Two propositions are opposed to one another if there is no proposition with a sense, that affirms them both. Every proposition that contradicts another negates it.</a> <br></br> <div class="outline-text-6" id="text-5.1241-%E2%80%98p.-q%E2%80%99-is-one-of-the-propositions-that-affirm-%E2%80%98p%E2%80%99-and-at-the-same-time-one-of-the-propositions-that-affirm-%E2%80%98q%E2%80%99.-Two-propositions-are-opposed-to-one-another-if-there-is-no-proposition-with-a-sense,-that-affirms-them-both.-Every-proposition-that-contradicts-another-negates-it.">
 <p>
This is how two propositions may behave on the same input.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-5.13-When-the-truth-of-one-proposition-follows-from-the-truth-of-others,-we-can-see-this-from-the-structure-of-the-propositions." class="outline-4">
 <h4 id="5.13-When-the-truth-of-one-proposition-follows-from-the-truth-of-others,-we-can-see-this-from-the-structure-of-the-propositions."> <span class="section-number-4">5.1.3.</span>  <a href="#5.13-When-the-truth-of-one-proposition-follows-from-the-truth-of-others,-we-can-see-this-from-the-structure-of-the-propositions.">5.13 When the truth of one proposition follows from the truth of others, we can see this from the structure of the propositions.</a></h4>
 <div class="outline-text-4" id="text-5.13-When-the-truth-of-one-proposition-follows-from-the-truth-of-others,-we-can-see-this-from-the-structure-of-the-propositions.">
 <p>
Not sure I agree.
Suppose q is true if p is true, but never uses p directly as a call.
Then the structures are unlikely to show us the connection.
</p>

 <p>
Perhaps, if "can" is seen as "it is possible, although may be computationally expensive", then I am fine.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.131-If-the-truth-of-one-proposition-follows-from-the-truth-of-others,-this-finds-expression-in-relations-in-which-the-forms-of-the-propositions-stand-to-one-another:-nor-is-it-necessary-for-us-to-set-up-these-relations-between-them,-by-combining-them-with-one-another-in-a-single-proposition;-on-the-contrary,-the-relations-are-internal,-and-their-existence-is-an-immediate-result-of-the-existence-of-the-propositions."></a> <a href="#5.131-If-the-truth-of-one-proposition-follows-from-the-truth-of-others,-this-finds-expression-in-relations-in-which-the-forms-of-the-propositions-stand-to-one-another:-nor-is-it-necessary-for-us-to-set-up-these-relations-between-them,-by-combining-them-with-one-another-in-a-single-proposition;-on-the-contrary,-the-relations-are-internal,-and-their-existence-is-an-immediate-result-of-the-existence-of-the-propositions.">5.131 If the truth of one proposition follows from the truth of others, this finds expression in relations in which the forms of the propositions stand to one another: nor is it necessary for us to set up these relations between them, by combining them with one another in a single proposition; on the contrary, the relations are internal, and their existence is an immediate result of the existence of the propositions.</a> <br></br> <div class="outline-text-5" id="text-5.131-If-the-truth-of-one-proposition-follows-from-the-truth-of-others,-this-finds-expression-in-relations-in-which-the-forms-of-the-propositions-stand-to-one-another:-nor-is-it-necessary-for-us-to-set-up-these-relations-between-them,-by-combining-them-with-one-another-in-a-single-proposition;-on-the-contrary,-the-relations-are-internal,-and-their-existence-is-an-immediate-result-of-the-existence-of-the-propositions.">
 <p>
Since that "follows" relation only depends on the input.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.1311-When-we-infer-q-from-p-%E2%88%A8-q-and-~p,-the-relation-between-the-propositional-forms-of-%E2%80%98p-v-q%E2%80%99-and-%E2%80%98~p%E2%80%99-is-masked,-in-this-case,-by-our-mode-of-signifying.-But-if-instead-of-%E2%80%98p-v-q%E2%80%99-we-write,-for-example,-%E2%80%98p%7Cq.%7C.p%7Cq%E2%80%99,-and-instead-of-%E2%80%98~p%E2%80%99,-%E2%80%98p%7Cp%E2%80%99-(p%7Cq-=-neither-p-nor-q),-then-the-inner-connexion-becomes-obvious.-(The-possibility-of-inference-from-(x).fx-to-fa-shows-that-the-symbol-(x).fx-itself-has-generality-in-it.)"></a> <a href="#5.1311-When-we-infer-q-from-p-%E2%88%A8-q-and-~p,-the-relation-between-the-propositional-forms-of-%E2%80%98p-v-q%E2%80%99-and-%E2%80%98~p%E2%80%99-is-masked,-in-this-case,-by-our-mode-of-signifying.-But-if-instead-of-%E2%80%98p-v-q%E2%80%99-we-write,-for-example,-%E2%80%98p%7Cq.%7C.p%7Cq%E2%80%99,-and-instead-of-%E2%80%98~p%E2%80%99,-%E2%80%98p%7Cp%E2%80%99-(p%7Cq-=-neither-p-nor-q),-then-the-inner-connexion-becomes-obvious.-(The-possibility-of-inference-from-(x).fx-to-fa-shows-that-the-symbol-(x).fx-itself-has-generality-in-it.)">5.1311 When we infer q from p ∨ q and ~p, the relation between the propositional forms of ‘p v q’ and ‘~p’ is masked, in this case, by our mode of signifying. But if instead of ‘p v q’ we write, for example, ‘p|q.|.p|q’, and instead of ‘~p’, ‘p|p’ (p|q = neither p nor q), then the inner connexion becomes obvious. (The possibility of inference from (x).fx to fa shows that the symbol (x).fx itself has generality in it.)</a> <br></br> <div class="outline-text-6" id="text-5.1311-When-we-infer-q-from-p-%E2%88%A8-q-and-~p,-the-relation-between-the-propositional-forms-of-%E2%80%98p-v-q%E2%80%99-and-%E2%80%98~p%E2%80%99-is-masked,-in-this-case,-by-our-mode-of-signifying.-But-if-instead-of-%E2%80%98p-v-q%E2%80%99-we-write,-for-example,-%E2%80%98p%7Cq.%7C.p%7Cq%E2%80%99,-and-instead-of-%E2%80%98~p%E2%80%99,-%E2%80%98p%7Cp%E2%80%99-(p%7Cq-=-neither-p-nor-q),-then-the-inner-connexion-becomes-obvious.-(The-possibility-of-inference-from-(x).fx-to-fa-shows-that-the-symbol-(x).fx-itself-has-generality-in-it.)">
 <p>
His notation is ugly.
But generally he is saying the same thing – logical connections are defined by operations on input, not structures of procedures.
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.132-If-p-follows-from-q,-I-can-make-an-inference-from-q-to-p,-deduce-p-from-q.-The-nature-of-the-inference-can-be-gathered-only-from-the-two-propositions.-They-themselves-are-the-only-possible-justification-of-the-inference.-%E2%80%98Laws-of-inference%E2%80%99,-which-are-supposed-to-justify-inferences,-as-in-the-works-of-Frege-and-Russell,-have-no-sense,-and-would-be-superfluous."></a> <a href="#5.132-If-p-follows-from-q,-I-can-make-an-inference-from-q-to-p,-deduce-p-from-q.-The-nature-of-the-inference-can-be-gathered-only-from-the-two-propositions.-They-themselves-are-the-only-possible-justification-of-the-inference.-%E2%80%98Laws-of-inference%E2%80%99,-which-are-supposed-to-justify-inferences,-as-in-the-works-of-Frege-and-Russell,-have-no-sense,-and-would-be-superfluous.">5.132 If p follows from q, I can make an inference from q to p, deduce p from q. The nature of the inference can be gathered only from the two propositions. They themselves are the only possible justification of the inference. ‘Laws of inference’, which are supposed to justify inferences, as in the works of Frege and Russell, have no sense, and would be superfluous.</a> <br></br> <div class="outline-text-5" id="text-5.132-If-p-follows-from-q,-I-can-make-an-inference-from-q-to-p,-deduce-p-from-q.-The-nature-of-the-inference-can-be-gathered-only-from-the-two-propositions.-They-themselves-are-the-only-possible-justification-of-the-inference.-%E2%80%98Laws-of-inference%E2%80%99,-which-are-supposed-to-justify-inferences,-as-in-the-works-of-Frege-and-Russell,-have-no-sense,-and-would-be-superfluous.">
 <p>
This almost seems as if he is suggesting that interpreters should be written in themselves.
</p>
</div>
</li>

 <li> <a id="5.133-All-deductions-are-made-a-priori."></a> <a href="#5.133-All-deductions-are-made-a-priori.">5.133 All deductions are made a priori.</a> <br></br> <div class="outline-text-5" id="text-5.133-All-deductions-are-made-a-priori.">
 <p>
Meaning, not conditioned on input?
Because for full generality, deductions should be input-independent?
(Be tautologies?)
</p>
</div>
</li>

 <li> <a id="5.134-One-elementary-proposition-cannot-be-deduced-from-another."></a> <a href="#5.134-One-elementary-proposition-cannot-be-deduced-from-another.">5.134 One elementary proposition cannot be deduced from another.</a> <br></br> <div class="outline-text-5" id="text-5.134-One-elementary-proposition-cannot-be-deduced-from-another.">
 <p>
Of course, because they are input.
</p>
</div>
</li>

 <li> <a id="5.135-There-is-no-possible-way-of-making-an-inference-from-the-existence-of-one-situation-to-the-existence-of-another,-entirely-different-situation."></a> <a href="#5.135-There-is-no-possible-way-of-making-an-inference-from-the-existence-of-one-situation-to-the-existence-of-another,-entirely-different-situation.">5.135 There is no possible way of making an inference from the existence of one situation to the existence of another, entirely different situation.</a> <br></br> <div class="outline-text-5" id="text-5.135-There-is-no-possible-way-of-making-an-inference-from-the-existence-of-one-situation-to-the-existence-of-another,-entirely-different-situation.">
 <p>
Different inputs are just different inputs.
</p>
</div>
</li>

 <li> <a id="5.136-There-is-no-causal-nexus-to-justify-such-an-inference."></a> <a href="#5.136-There-is-no-causal-nexus-to-justify-such-an-inference.">5.136 There is no causal nexus to justify such an inference.</a> <br></br> <div class="outline-text-5" id="text-5.136-There-is-no-causal-nexus-to-justify-such-an-inference.">
 <p>
Even if the inputs we want to process are not evenly distributed, we can reduce them to inputs that are evenly distributed.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.1361-We-cannot-infer-the-events-of-the-future-from-those-of-the-present.-Superstition-is-nothing-but-belief-in-the-causal-nexus."></a> <a href="#5.1361-We-cannot-infer-the-events-of-the-future-from-those-of-the-present.-Superstition-is-nothing-but-belief-in-the-causal-nexus.">5.1361 We cannot infer the events of the future from those of the present. Superstition is nothing but belief in the causal nexus.</a> <br></br> <div class="outline-text-6" id="text-5.1361-We-cannot-infer-the-events-of-the-future-from-those-of-the-present.-Superstition-is-nothing-but-belief-in-the-causal-nexus.">
 <p>
I think, this should be seen as: "Do not confuse system evolution and different inputs."
</p>
</div>
</li>

 <li> <a id="5.1362-The-freedom-of-the-will-consists-in-the-impossibility-of-knowing-actions-that-still-lie-in-the-future.-We-could-know-them-only-if-causality-were-an-inner-necessity-like-that-of-logical-inference.-%E2%80%94-The-connexion-between-knowledge-and-what-is-known-is-that-of-logical-necessity.-(%E2%80%98A-knows-that-p-is-the-case%E2%80%99,-has-no-sense-if-p-is-a-tautology.)"></a> <a href="#5.1362-The-freedom-of-the-will-consists-in-the-impossibility-of-knowing-actions-that-still-lie-in-the-future.-We-could-know-them-only-if-causality-were-an-inner-necessity-like-that-of-logical-inference.-%E2%80%94-The-connexion-between-knowledge-and-what-is-known-is-that-of-logical-necessity.-(%E2%80%98A-knows-that-p-is-the-case%E2%80%99,-has-no-sense-if-p-is-a-tautology.)">5.1362 The freedom of the will consists in the impossibility of knowing actions that still lie in the future. We could know them only if causality were an inner necessity like that of logical inference. — The connexion between knowledge and what is known is that of logical necessity. (‘A knows that p is the case’, has no sense if p is a tautology.)</a> <br></br> <div class="outline-text-6" id="text-5.1362-The-freedom-of-the-will-consists-in-the-impossibility-of-knowing-actions-that-still-lie-in-the-future.-We-could-know-them-only-if-causality-were-an-inner-necessity-like-that-of-logical-inference.-%E2%80%94-The-connexion-between-knowledge-and-what-is-known-is-that-of-logical-necessity.-(%E2%80%98A-knows-that-p-is-the-case%E2%80%99,-has-no-sense-if-p-is-a-tautology.)">
 <p>
An interesting thought!
</p>

 <p>
I guess, we can see "freedom of will" as "true I/O".
Choosing the next inputs.
</p>
</div>
</li>

 <li> <a id="5.1363-If-the-truth-of-a-proposition-does-not-follow-from-the-fact-that-it-is-self-evident-to-us,-then-its-self-evidence-in-no-way-justifies-our-belief-in-its-truth."></a> <a href="#5.1363-If-the-truth-of-a-proposition-does-not-follow-from-the-fact-that-it-is-self-evident-to-us,-then-its-self-evidence-in-no-way-justifies-our-belief-in-its-truth.">5.1363 If the truth of a proposition does not follow from the fact that it is self-evident to us, then its self-evidence in no way justifies our belief in its truth.</a> <br></br> <div class="outline-text-6" id="text-5.1363-If-the-truth-of-a-proposition-does-not-follow-from-the-fact-that-it-is-self-evident-to-us,-then-its-self-evidence-in-no-way-justifies-our-belief-in-its-truth.">
 <p>
Hehe.
</p>

 <p>
A political statement.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-5.14-If-one-proposition-follows-from-another,-then-the-latter-says-more-than-the-former,-and-the-former-less-than-the-latter." class="outline-4">
 <h4 id="5.14-If-one-proposition-follows-from-another,-then-the-latter-says-more-than-the-former,-and-the-former-less-than-the-latter."> <span class="section-number-4">5.1.4.</span>  <a href="#5.14-If-one-proposition-follows-from-another,-then-the-latter-says-more-than-the-former,-and-the-former-less-than-the-latter.">5.14 If one proposition follows from another, then the latter says more than the former, and the former less than the latter.</a></h4>
 <div class="outline-text-4" id="text-5.14-If-one-proposition-follows-from-another,-then-the-latter-says-more-than-the-former,-and-the-former-less-than-the-latter.">
 <p>
But, again, their computational complexity may be different.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.141-If-p-follows-from-q-and-q-from-p,-then-they-are-one-and-the-same-proposition."></a> <a href="#5.141-If-p-follows-from-q-and-q-from-p,-then-they-are-one-and-the-same-proposition.">5.141 If p follows from q and q from p, then they are one and the same proposition.</a> <br></br> <div class="outline-text-5" id="text-5.141-If-p-follows-from-q-and-q-from-p,-then-they-are-one-and-the-same-proposition.">
 <p>
Logically, yes.
Computationally, though, speed, again, is the key.
Furthermore, we may have different places in memory corresponding to two identically behaving procedures.
</p>
</div>
</li>

 <li> <a id="5.142-A-tautology-follows-from-all-propositions:-it-says-nothing."></a> <a href="#5.142-A-tautology-follows-from-all-propositions:-it-says-nothing.">5.142 A tautology follows from all propositions: it says nothing.</a> <br></br> <div class="outline-text-5" id="text-5.142-A-tautology-follows-from-all-propositions:-it-says-nothing.">
 <p>
He is repeating himself.
We can use tautologies for optimisation and rewriting.
</p>
</div>
</li>

 <li> <a id="5.143-Contradiction-is-that-common-factor-of-propositions-which-no-proposition-has-in-common-with-another.-Tautology-is-the-common-factor-of-all-propositions-that-have-nothing-in-common-with-one-another.-Contradiction,-one-might-say,-vanishes-outside-all-propositions:-tautology-vanishes-inside-them.-Contradiction-is-the-outer-limit-of-propositions:-tautology-is-the-unsubstantial-point-at-their-centre."></a> <a href="#5.143-Contradiction-is-that-common-factor-of-propositions-which-no-proposition-has-in-common-with-another.-Tautology-is-the-common-factor-of-all-propositions-that-have-nothing-in-common-with-one-another.-Contradiction,-one-might-say,-vanishes-outside-all-propositions:-tautology-vanishes-inside-them.-Contradiction-is-the-outer-limit-of-propositions:-tautology-is-the-unsubstantial-point-at-their-centre.">5.143 Contradiction is that common factor of propositions which no proposition has in common with another. Tautology is the common factor of all propositions that have nothing in common with one another. Contradiction, one might say, vanishes outside all propositions: tautology vanishes inside them. Contradiction is the outer limit of propositions: tautology is the unsubstantial point at their centre.</a> <br></br> <div class="outline-text-5" id="text-5.143-Contradiction-is-that-common-factor-of-propositions-which-no-proposition-has-in-common-with-another.-Tautology-is-the-common-factor-of-all-propositions-that-have-nothing-in-common-with-one-another.-Contradiction,-one-might-say,-vanishes-outside-all-propositions:-tautology-vanishes-inside-them.-Contradiction-is-the-outer-limit-of-propositions:-tautology-is-the-unsubstantial-point-at-their-centre.">
 <p>
That is a metaphorical statement?
What is a "common factor"?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-5.15-If-%5C(T_r%5C)-is-the-number-of-the-truth-grounds-of-a-proposition-%E2%80%98r%E2%80%99,-and-if-%5C(T_%7Brs%7D%5C)-is-the-number-of-the-truth-grounds-of-a-proposition-%E2%80%98s%E2%80%99-that-are-at-the-same-time-truth-grounds-of-%E2%80%98r%E2%80%99,-then-we-call-the-ratio-%5C(T_%7Brs%7D-:-T_%7Br%7D%5C)-the-degree-of-probability-that-the-proposition-%E2%80%98r%E2%80%99-gives-to-the-proposition-%E2%80%98s%E2%80%99." class="outline-4">
 <h4 id="5.15-If-%5C(T_r%5C)-is-the-number-of-the-truth-grounds-of-a-proposition-%E2%80%98r%E2%80%99,-and-if-%5C(T_%7Brs%7D%5C)-is-the-number-of-the-truth-grounds-of-a-proposition-%E2%80%98s%E2%80%99-that-are-at-the-same-time-truth-grounds-of-%E2%80%98r%E2%80%99,-then-we-call-the-ratio-%5C(T_%7Brs%7D-:-T_%7Br%7D%5C)-the-degree-of-probability-that-the-proposition-%E2%80%98r%E2%80%99-gives-to-the-proposition-%E2%80%98s%E2%80%99."> <span class="section-number-4">5.1.5.</span>  <a href="#5.15-If-%5C(T_r%5C)-is-the-number-of-the-truth-grounds-of-a-proposition-%E2%80%98r%E2%80%99,-and-if-%5C(T_%7Brs%7D%5C)-is-the-number-of-the-truth-grounds-of-a-proposition-%E2%80%98s%E2%80%99-that-are-at-the-same-time-truth-grounds-of-%E2%80%98r%E2%80%99,-then-we-call-the-ratio-%5C(T_%7Brs%7D-:-T_%7Br%7D%5C)-the-degree-of-probability-that-the-proposition-%E2%80%98r%E2%80%99-gives-to-the-proposition-%E2%80%98s%E2%80%99.">5.15 If \(T_r\) is the number of the truth-grounds of a proposition ‘r’, and if \(T_{rs}\) is the number of the truth-grounds of a proposition ‘s’ that are at the same time truth-grounds of ‘r’, then we call the ratio \(T_{rs} : T_{r}\) the degree of probability that the proposition ‘r’ gives to the proposition ‘s’.</a></h4>
 <div class="outline-text-4" id="text-5.15-If-%5C(T_r%5C)-is-the-number-of-the-truth-grounds-of-a-proposition-%E2%80%98r%E2%80%99,-and-if-%5C(T_%7Brs%7D%5C)-is-the-number-of-the-truth-grounds-of-a-proposition-%E2%80%98s%E2%80%99-that-are-at-the-same-time-truth-grounds-of-%E2%80%98r%E2%80%99,-then-we-call-the-ratio-%5C(T_%7Brs%7D-:-T_%7Br%7D%5C)-the-degree-of-probability-that-the-proposition-%E2%80%98r%E2%80%99-gives-to-the-proposition-%E2%80%98s%E2%80%99.">
 <p>
That's a bit markovian in spirit.
That's, again, if we assume that inputs are uniformly distributed.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.151-In-a-schema-like-the-one-above-in-5.101,-let-%5C(T_%7Br%7D%5C)-be-the-number-of-%E2%80%98T%E2%80%99s%E2%80%99-in-the-proposition-r,-and-let-%5C(T_%7Brs%7D%5C)-be-the-number-of-%E2%80%98T%E2%80%99s%E2%80%99-in-the-proposition-s-that-stand-in-columns-in-which-the-proposition-r-has-%E2%80%98T%E2%80%99s%E2%80%99.-Then-the-proposition-r-gives-to-the-proposition-s-the-probability-%5C(T_%7Brs%7D-:-T_r-%5C)-."></a> <a href="#5.151-In-a-schema-like-the-one-above-in-5.101,-let-%5C(T_%7Br%7D%5C)-be-the-number-of-%E2%80%98T%E2%80%99s%E2%80%99-in-the-proposition-r,-and-let-%5C(T_%7Brs%7D%5C)-be-the-number-of-%E2%80%98T%E2%80%99s%E2%80%99-in-the-proposition-s-that-stand-in-columns-in-which-the-proposition-r-has-%E2%80%98T%E2%80%99s%E2%80%99.-Then-the-proposition-r-gives-to-the-proposition-s-the-probability-%5C(T_%7Brs%7D-:-T_r-%5C)-.">5.151 In a schema like the one above in 5.101, let \(T_{r}\) be the number of ‘T’s’ in the proposition r, and let \(T_{rs}\) be the number of ‘T’s’ in the proposition s that stand in columns in which the proposition r has ‘T’s’. Then the proposition r gives to the proposition s the probability \(T_{rs} : T_r \) .</a> <br></br> <div class="outline-text-5" id="text-5.151-In-a-schema-like-the-one-above-in-5.101,-let-%5C(T_%7Br%7D%5C)-be-the-number-of-%E2%80%98T%E2%80%99s%E2%80%99-in-the-proposition-r,-and-let-%5C(T_%7Brs%7D%5C)-be-the-number-of-%E2%80%98T%E2%80%99s%E2%80%99-in-the-proposition-s-that-stand-in-columns-in-which-the-proposition-r-has-%E2%80%98T%E2%80%99s%E2%80%99.-Then-the-proposition-r-gives-to-the-proposition-s-the-probability-%5C(T_%7Brs%7D-:-T_r-%5C)-.">
 <p>
An example, ok.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.1511-There-is-no-special-object-peculiar-to-probability-propositions."></a> <a href="#5.1511-There-is-no-special-object-peculiar-to-probability-propositions.">5.1511 There is no special object peculiar to probability propositions.</a> <br></br> <div class="outline-text-6" id="text-5.1511-There-is-no-special-object-peculiar-to-probability-propositions.">
 <p>
We can compute probabilities by simulating successes and failures?
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.152-When-propositions-have-no-truth-arguments-in-common-with-one-another,-we-call-them-independent-of-one-another.-Two-elementary-propositions-give-one-another-the-probability-%5C(%5Cfrac%7B1%7D%7B2%7D%5C).-If-p-follows-from-q,-then-the-proposition-%E2%80%98q%E2%80%99-gives-to-the-proposition-%E2%80%98p%E2%80%99-the-probability-1.-The-certainty-of-logical-inference-is-a-limiting-case-of-probability.-(Application-of-this-to-tautology-and-contradiction.)"></a> <a href="#5.152-When-propositions-have-no-truth-arguments-in-common-with-one-another,-we-call-them-independent-of-one-another.-Two-elementary-propositions-give-one-another-the-probability-%5C(%5Cfrac%7B1%7D%7B2%7D%5C).-If-p-follows-from-q,-then-the-proposition-%E2%80%98q%E2%80%99-gives-to-the-proposition-%E2%80%98p%E2%80%99-the-probability-1.-The-certainty-of-logical-inference-is-a-limiting-case-of-probability.-(Application-of-this-to-tautology-and-contradiction.)">5.152 When propositions have no truth-arguments in common with one another, we call them independent of one another. Two elementary propositions give one another the probability \(\frac{1}{2}\). If p follows from q, then the proposition ‘q’ gives to the proposition ‘p’ the probability 1. The certainty of logical inference is a limiting case of probability. (Application of this to tautology and contradiction.)</a> <br></br> <div class="outline-text-5" id="text-5.152-When-propositions-have-no-truth-arguments-in-common-with-one-another,-we-call-them-independent-of-one-another.-Two-elementary-propositions-give-one-another-the-probability-%5C(%5Cfrac%7B1%7D%7B2%7D%5C).-If-p-follows-from-q,-then-the-proposition-%E2%80%98q%E2%80%99-gives-to-the-proposition-%E2%80%98p%E2%80%99-the-probability-1.-The-certainty-of-logical-inference-is-a-limiting-case-of-probability.-(Application-of-this-to-tautology-and-contradiction.)">
 <p>
Fine, as long as there is some intrinsic uniformity to the input.
(Maybe the non-uniformity of input is called "luck".)
</p>
</div>
</li>

 <li> <a id="5.153-In-itself,-a-proposition-is-neither-probable-nor-improbable.-Either-an-event-occurs-or-it-does-not:-there-is-no-middle-way."></a> <a href="#5.153-In-itself,-a-proposition-is-neither-probable-nor-improbable.-Either-an-event-occurs-or-it-does-not:-there-is-no-middle-way.">5.153 In itself, a proposition is neither probable nor improbable. Either an event occurs or it does not: there is no middle way.</a> <br></br> <div class="outline-text-5" id="text-5.153-In-itself,-a-proposition-is-neither-probable-nor-improbable.-Either-an-event-occurs-or-it-does-not:-there-is-no-middle-way.">
 <p>
Again, this depends essentially on the input.
</p>
</div>
</li>

 <li> <a id="5.154-Suppose-that-an-urn-contains-black-and-white-balls-in-equal-numbers-(and-none-of-any-other-kind).-I-draw-one-ball-after-another,-putting-them-back-into-the-urn.-By-this-experiment-I-can-establish-that-the-number-of-black-balls-drawn-and-the-number-of-white-balls-drawn-approximate-to-one-another-as-the-draw-continues.-So-this-is-not-a-mathematical-truth.-Now,-if-I-say,-%E2%80%98The-probability-of-my-drawing-a-white-ball-is-equal-to-the-probability-of-my-drawing-a-black-one%E2%80%99,-this-means-that-all-the-circumstances-that-I-know-of-(including-the-laws-of-nature-assumed-as-hypotheses)-give-no-more-probability-to-the-occurrence-of-the-one-event-than-to-that-of-the-other.-That-is-to-say,-they-give-each-the-probability-%5C(%5Cfrac%7B1%7D%7B2%7D%5C),-as-can-easily-be-gathered-from-the-above-definitions.-What-I-confirm-by-the-experiment-is-that-the-occurrence-of-the-two-events-is-independent-of-the-circumstances-of-which-I-have-no-more-detailed-knowledge."></a> <a href="#5.154-Suppose-that-an-urn-contains-black-and-white-balls-in-equal-numbers-(and-none-of-any-other-kind).-I-draw-one-ball-after-another,-putting-them-back-into-the-urn.-By-this-experiment-I-can-establish-that-the-number-of-black-balls-drawn-and-the-number-of-white-balls-drawn-approximate-to-one-another-as-the-draw-continues.-So-this-is-not-a-mathematical-truth.-Now,-if-I-say,-%E2%80%98The-probability-of-my-drawing-a-white-ball-is-equal-to-the-probability-of-my-drawing-a-black-one%E2%80%99,-this-means-that-all-the-circumstances-that-I-know-of-(including-the-laws-of-nature-assumed-as-hypotheses)-give-no-more-probability-to-the-occurrence-of-the-one-event-than-to-that-of-the-other.-That-is-to-say,-they-give-each-the-probability-%5C(%5Cfrac%7B1%7D%7B2%7D%5C),-as-can-easily-be-gathered-from-the-above-definitions.-What-I-confirm-by-the-experiment-is-that-the-occurrence-of-the-two-events-is-independent-of-the-circumstances-of-which-I-have-no-more-detailed-knowledge.">5.154 Suppose that an urn contains black and white balls in equal numbers (and none of any other kind). I draw one ball after another, putting them back into the urn. By this experiment I can establish that the number of black balls drawn and the number of white balls drawn approximate to one another as the draw continues. So this is not a mathematical truth. Now, if I say, ‘The probability of my drawing a white ball is equal to the probability of my drawing a black one’, this means that all the circumstances that I know of (including the laws of nature assumed as hypotheses) give no more probability to the occurrence of the one event than to that of the other. That is to say, they give each the probability \(\frac{1}{2}\), as can easily be gathered from the above definitions. What I confirm by the experiment is that the occurrence of the two events is independent of the circumstances of which I have no more detailed knowledge.</a> <br></br> <div class="outline-text-5" id="text-5.154-Suppose-that-an-urn-contains-black-and-white-balls-in-equal-numbers-(and-none-of-any-other-kind).-I-draw-one-ball-after-another,-putting-them-back-into-the-urn.-By-this-experiment-I-can-establish-that-the-number-of-black-balls-drawn-and-the-number-of-white-balls-drawn-approximate-to-one-another-as-the-draw-continues.-So-this-is-not-a-mathematical-truth.-Now,-if-I-say,-%E2%80%98The-probability-of-my-drawing-a-white-ball-is-equal-to-the-probability-of-my-drawing-a-black-one%E2%80%99,-this-means-that-all-the-circumstances-that-I-know-of-(including-the-laws-of-nature-assumed-as-hypotheses)-give-no-more-probability-to-the-occurrence-of-the-one-event-than-to-that-of-the-other.-That-is-to-say,-they-give-each-the-probability-%5C(%5Cfrac%7B1%7D%7B2%7D%5C),-as-can-easily-be-gathered-from-the-above-definitions.-What-I-confirm-by-the-experiment-is-that-the-occurrence-of-the-two-events-is-independent-of-the-circumstances-of-which-I-have-no-more-detailed-knowledge.">
 <p>
Here Wittgenstein is trying to justify statistics rather than probability.
Still, not very convincing, but let it be.
</p>
</div>
</li>

 <li> <a id="5.155-The-minimal-unit-for-a-probability-proposition-is-this:-The-circumstances-%E2%80%94-of-which-I-have-no-further-knowledge-%E2%80%94-give-such-and-such-a-degree-of-probability-to-the-occurrence-of-a-particular-event."></a> <a href="#5.155-The-minimal-unit-for-a-probability-proposition-is-this:-The-circumstances-%E2%80%94-of-which-I-have-no-further-knowledge-%E2%80%94-give-such-and-such-a-degree-of-probability-to-the-occurrence-of-a-particular-event.">5.155 The minimal unit for a probability proposition is this: The circumstances — of which I have no further knowledge — give such and such a degree of probability to the occurrence of a particular event.</a> <br></br> <div class="outline-text-5" id="text-5.155-The-minimal-unit-for-a-probability-proposition-is-this:-The-circumstances-%E2%80%94-of-which-I-have-no-further-knowledge-%E2%80%94-give-such-and-such-a-degree-of-probability-to-the-occurrence-of-a-particular-event.">
 <p>
Not very rigorously defined.
</p>
</div>
</li>

 <li> <a id="5.156-It-is-in-this-way-that-probability-is-a-generalization.-It-involves-a-general-description-of-a-propositional-form.-We-use-probability-only-in-default-of-certainty-%E2%80%94-if-our-knowledge-of-a-fact-is-not-indeed-complete,-but-we-do-know-something-about-its-form.-(A-proposition-may-well-be-an-incomplete-picture-of-a-certain-situation,-but-it-is-always-a-complete-picture-of-something.)-A-probability-proposition-is-a-sort-of-excerpt-from-other-propositions."></a> <a href="#5.156-It-is-in-this-way-that-probability-is-a-generalization.-It-involves-a-general-description-of-a-propositional-form.-We-use-probability-only-in-default-of-certainty-%E2%80%94-if-our-knowledge-of-a-fact-is-not-indeed-complete,-but-we-do-know-something-about-its-form.-(A-proposition-may-well-be-an-incomplete-picture-of-a-certain-situation,-but-it-is-always-a-complete-picture-of-something.)-A-probability-proposition-is-a-sort-of-excerpt-from-other-propositions.">5.156 It is in this way that probability is a generalization. It involves a general description of a propositional form. We use probability only in default of certainty — if our knowledge of a fact is not indeed complete, but we do know something about its form. (A proposition may well be an incomplete picture of a certain situation, but it is always a complete picture of something.) A probability proposition is a sort of excerpt from other propositions.</a> <br></br> <div class="outline-text-5" id="text-5.156-It-is-in-this-way-that-probability-is-a-generalization.-It-involves-a-general-description-of-a-propositional-form.-We-use-probability-only-in-default-of-certainty-%E2%80%94-if-our-knowledge-of-a-fact-is-not-indeed-complete,-but-we-do-know-something-about-its-form.-(A-proposition-may-well-be-an-incomplete-picture-of-a-certain-situation,-but-it-is-always-a-complete-picture-of-something.)-A-probability-proposition-is-a-sort-of-excerpt-from-other-propositions.">
 <p>
So, a probabilistic proposition is a proposition about other propositions.
Isn't this meta-logic, again?
Your propositions must be in the memory.
</p>

 <p>
This "complete picture of something" is important.
</p>
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-5.2-The-structures-of-propositions-stand-in-internal-relations-to-one-another." class="outline-3">
 <h3 id="5.2-The-structures-of-propositions-stand-in-internal-relations-to-one-another."> <span class="section-number-3">5.2.</span>  <a href="#5.2-The-structures-of-propositions-stand-in-internal-relations-to-one-another.">5.2 The structures of propositions stand in internal relations to one another.</a></h3>
 <div class="outline-text-3" id="text-5.2-The-structures-of-propositions-stand-in-internal-relations-to-one-another.">
 <p>
Let's think about this for a moment.
What is a "structure of a proposition"?
</p>

 <p>
"Internal relations" are the ones determined by the structures themselves, rather than other propositions.
</p>
</div>

 <div id="outline-container-5.21-In-order-to-give-prominence-to-these-internal-relations-we-can-adopt-the-following-mode-of-expression:-we-can-represent-a-proposition-as-the-result-of-an-operation-that-produces-it-out-of-other-propositions-(which-are-the-bases-of-the-operation)." class="outline-4">
 <h4 id="5.21-In-order-to-give-prominence-to-these-internal-relations-we-can-adopt-the-following-mode-of-expression:-we-can-represent-a-proposition-as-the-result-of-an-operation-that-produces-it-out-of-other-propositions-(which-are-the-bases-of-the-operation)."> <span class="section-number-4">5.2.1.</span>  <a href="#5.21-In-order-to-give-prominence-to-these-internal-relations-we-can-adopt-the-following-mode-of-expression:-we-can-represent-a-proposition-as-the-result-of-an-operation-that-produces-it-out-of-other-propositions-(which-are-the-bases-of-the-operation).">5.21 In order to give prominence to these internal relations we can adopt the following mode of expression: we can represent a proposition as the result of an operation that produces it out of other propositions (which are the bases of the operation).</a></h4>
 <div class="outline-text-4" id="text-5.21-In-order-to-give-prominence-to-these-internal-relations-we-can-adopt-the-following-mode-of-expression:-we-can-represent-a-proposition-as-the-result-of-an-operation-that-produces-it-out-of-other-propositions-(which-are-the-bases-of-the-operation).">
 <p>
Aha, that's what in Scheme we call "combinations".
</p>

 <p>
However, Wittgenstein needs to define what an "operation" is.
</p>
</div>
</div>

 <div id="outline-container-5.22-An-operation-is-the-expression-of-a-relation-between-the-structures-of-its-result-and-of-its-bases." class="outline-4">
 <h4 id="5.22-An-operation-is-the-expression-of-a-relation-between-the-structures-of-its-result-and-of-its-bases."> <span class="section-number-4">5.2.2.</span>  <a href="#5.22-An-operation-is-the-expression-of-a-relation-between-the-structures-of-its-result-and-of-its-bases.">5.22 An operation is the expression of a relation between the structures of its result and of its bases.</a></h4>
 <div class="outline-text-4" id="text-5.22-An-operation-is-the-expression-of-a-relation-between-the-structures-of-its-result-and-of-its-bases.">
 <p>
Again, that's easy, but not.
 <code>(and elementary-proposition-1 elementary-proposition-2)</code> is an expression, with two elementary propositions, and rule, wrapped into a combination.
</p>
</div>
</div>

 <div id="outline-container-5.23-The-operation-is-what-has-to-be-done-to-the-one-proposition-in-order-to-make-the-other-out-of-it." class="outline-4">
 <h4 id="5.23-The-operation-is-what-has-to-be-done-to-the-one-proposition-in-order-to-make-the-other-out-of-it."> <span class="section-number-4">5.2.3.</span>  <a href="#5.23-The-operation-is-what-has-to-be-done-to-the-one-proposition-in-order-to-make-the-other-out-of-it.">5.23 The operation is what has to be done to the one proposition in order to make the other out of it.</a></h4>
 <div class="outline-text-4" id="text-5.23-The-operation-is-what-has-to-be-done-to-the-one-proposition-in-order-to-make-the-other-out-of-it.">
 <p>
Again, this is obvious, but informal.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.231-And-that-will,-of-course,-depend-on-their-formal-properties,-on-the-internal-similarity-of-their-forms."></a> <a href="#5.231-And-that-will,-of-course,-depend-on-their-formal-properties,-on-the-internal-similarity-of-their-forms.">5.231 And that will, of course, depend on their formal properties, on the internal similarity of their forms.</a> <br></br> <div class="outline-text-5" id="text-5.231-And-that-will,-of-course,-depend-on-their-formal-properties,-on-the-internal-similarity-of-their-forms.">
 <p>
The result, I guess?
Because currently, in this form, we see no obvious dependency on the internal similarity.
</p>
</div>
</li>

 <li> <a id="5.232-The-internal-relation-by-which-a-series-is-ordered-is-equivalent-to-the-operation-that-produces-one-term-from-another."></a> <a href="#5.232-The-internal-relation-by-which-a-series-is-ordered-is-equivalent-to-the-operation-that-produces-one-term-from-another.">5.232 The internal relation by which a series is ordered is equivalent to the operation that produces one term from another.</a> <br></br> <div class="outline-text-5" id="text-5.232-The-internal-relation-by-which-a-series-is-ordered-is-equivalent-to-the-operation-that-produces-one-term-from-another.">
 <p>
Are these sequences always expressible logically unambiguously?
What about those aperiodic tilings… uncomputable ones?
</p>

 <p>
I think this claim is wrong.
</p>
</div>
</li>

 <li> <a id="5.233-Operations-cannot-make-their-appearance-before-the-point-at-which-one-proposition-is-generated-out-of-another-in-a-logically-meaningful-way;-i.e.-the-point-at-which-the-logical-construction-of-propositions-begins."></a> <a href="#5.233-Operations-cannot-make-their-appearance-before-the-point-at-which-one-proposition-is-generated-out-of-another-in-a-logically-meaningful-way;-i.e.-the-point-at-which-the-logical-construction-of-propositions-begins.">5.233 Operations cannot make their appearance before the point at which one proposition is generated out of another in a logically meaningful way; i.e. the point at which the logical construction of propositions begins.</a> <br></br> <div class="outline-text-5" id="text-5.233-Operations-cannot-make-their-appearance-before-the-point-at-which-one-proposition-is-generated-out-of-another-in-a-logically-meaningful-way;-i.e.-the-point-at-which-the-logical-construction-of-propositions-begins.">
 <p>
Does it mean that operations are only defined "by example"?
</p>

 <p>
I guess, "logically meaningful" is the important here.
</p>

 <p>
Perhaps, that is why syntactic structures in Scheme are only accessible compile-time?
</p>
</div>
</li>

 <li> <a id="5.234-Truth-functions-of-elementary-propositions-are-results-of-operations-with-elementary-propositions-as-bases.-(These-operations-I-call-truth-operations.)"></a> <a href="#5.234-Truth-functions-of-elementary-propositions-are-results-of-operations-with-elementary-propositions-as-bases.-(These-operations-I-call-truth-operations.)">5.234 Truth-functions of elementary propositions are results of operations with elementary propositions as bases. (These operations I call truth-operations.)</a> <br></br> <div class="outline-text-5" id="text-5.234-Truth-functions-of-elementary-propositions-are-results-of-operations-with-elementary-propositions-as-bases.-(These-operations-I-call-truth-operations.)">
 <p>
Boolean functions, basically?
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.2341-The-sense-of-a-truth-function-of-p-is-a-function-of-the-sense-of-p.-Negation,-logical-addition,-logical-multiplication,-etc.-etc.-are-operations.-(Negation-reverses-the-sense-of-a-proposition.)"></a> <a href="#5.2341-The-sense-of-a-truth-function-of-p-is-a-function-of-the-sense-of-p.-Negation,-logical-addition,-logical-multiplication,-etc.-etc.-are-operations.-(Negation-reverses-the-sense-of-a-proposition.)">5.2341 The sense of a truth-function of p is a function of the sense of p. Negation, logical addition, logical multiplication, etc. etc. are operations. (Negation reverses the sense of a proposition.)</a> <br></br> <div class="outline-text-6" id="text-5.2341-The-sense-of-a-truth-function-of-p-is-a-function-of-the-sense-of-p.-Negation,-logical-addition,-logical-multiplication,-etc.-etc.-are-operations.-(Negation-reverses-the-sense-of-a-proposition.)">
 <p>
And those have to be "basic" operations, I guess.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-5.24-An-operation-manifests-itself-in-a-variable;-it-shows-how-we-can-get-from-one-form-of-proposition-to-another.-It-gives-expression-to-the-difference-between-the-forms.-(And-what-the-bases-of-an-operation-and-its-result-have-in-common-is-just-the-bases-themselves.)" class="outline-4">
 <h4 id="5.24-An-operation-manifests-itself-in-a-variable;-it-shows-how-we-can-get-from-one-form-of-proposition-to-another.-It-gives-expression-to-the-difference-between-the-forms.-(And-what-the-bases-of-an-operation-and-its-result-have-in-common-is-just-the-bases-themselves.)"> <span class="section-number-4">5.2.4.</span>  <a href="#5.24-An-operation-manifests-itself-in-a-variable;-it-shows-how-we-can-get-from-one-form-of-proposition-to-another.-It-gives-expression-to-the-difference-between-the-forms.-(And-what-the-bases-of-an-operation-and-its-result-have-in-common-is-just-the-bases-themselves.)">5.24 An operation manifests itself in a variable; it shows how we can get from one form of proposition to another. It gives expression to the difference between the forms. (And what the bases of an operation and its result have in common is just the bases themselves.)</a></h4>
 <div class="outline-text-4" id="text-5.24-An-operation-manifests-itself-in-a-variable;-it-shows-how-we-can-get-from-one-form-of-proposition-to-another.-It-gives-expression-to-the-difference-between-the-forms.-(And-what-the-bases-of-an-operation-and-its-result-have-in-common-is-just-the-bases-themselves.)">
 <p>
I think that "manifests" here means, either "can be assigned to a variable", or "it's value given input can be assigned to a variable".
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.241-An-operation-is-not-the-mark-of-a-form,-but-only-of-a-difference-between-forms."></a> <a href="#5.241-An-operation-is-not-the-mark-of-a-form,-but-only-of-a-difference-between-forms.">5.241 An operation is not the mark of a form, but only of a difference between forms.</a> <br></br> <div class="outline-text-5" id="text-5.241-An-operation-is-not-the-mark-of-a-form,-but-only-of-a-difference-between-forms.">
 <p>
Seems like he's saying that the "operation" is not inside the input, but rather an external thing, from the domain of "logic" (or "computation")?
</p>
</div>
</li>

 <li> <a id="5.242-The-operation-that-produces-%E2%80%98q%E2%80%99-from-%E2%80%98p%E2%80%99-also-produces-%E2%80%98r%E2%80%99-from-%E2%80%98q%E2%80%99,-and-so-on.-There-is-only-one-way-of-expressing-this:-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99,-etc.-have-to-be-variables-that-give-expression-in-a-general-way-to-certain-formal-relations."></a> <a href="#5.242-The-operation-that-produces-%E2%80%98q%E2%80%99-from-%E2%80%98p%E2%80%99-also-produces-%E2%80%98r%E2%80%99-from-%E2%80%98q%E2%80%99,-and-so-on.-There-is-only-one-way-of-expressing-this:-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99,-etc.-have-to-be-variables-that-give-expression-in-a-general-way-to-certain-formal-relations.">5.242 The operation that produces ‘q’ from ‘p’ also produces ‘r’ from ‘q’, and so on. There is only one way of expressing this: ‘p’, ‘q’, ‘r’, etc. have to be variables that give expression in a general way to certain formal relations.</a> <br></br> <div class="outline-text-5" id="text-5.242-The-operation-that-produces-%E2%80%98q%E2%80%99-from-%E2%80%98p%E2%80%99-also-produces-%E2%80%98r%E2%80%99-from-%E2%80%98q%E2%80%99,-and-so-on.-There-is-only-one-way-of-expressing-this:-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99,-etc.-have-to-be-variables-that-give-expression-in-a-general-way-to-certain-formal-relations.">
 <p>
Ow… maybe he's actually struggling with recursion here?
</p>

 <p>
His obsession with "variables" in this chapter comes from an inability to distinguish "eval" from "substitute"?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-5.25-The-occurrence-of-an-operation-does-not-characterize-the-sense-of-a-proposition.-Indeed,-no-statement-is-made-by-an-operation,-but-only-by-its-result,-and-this-depends-on-the-bases-of-the-operation.-(Operations-and-functions-must-not-be-confused-with-each-other.)" class="outline-4">
 <h4 id="5.25-The-occurrence-of-an-operation-does-not-characterize-the-sense-of-a-proposition.-Indeed,-no-statement-is-made-by-an-operation,-but-only-by-its-result,-and-this-depends-on-the-bases-of-the-operation.-(Operations-and-functions-must-not-be-confused-with-each-other.)"> <span class="section-number-4">5.2.5.</span>  <a href="#5.25-The-occurrence-of-an-operation-does-not-characterize-the-sense-of-a-proposition.-Indeed,-no-statement-is-made-by-an-operation,-but-only-by-its-result,-and-this-depends-on-the-bases-of-the-operation.-(Operations-and-functions-must-not-be-confused-with-each-other.)">5.25 The occurrence of an operation does not characterize the sense of a proposition. Indeed, no statement is made by an operation, but only by its result, and this depends on the bases of the operation. (Operations and functions must not be confused with each other.)</a></h4>
 <div class="outline-text-4" id="text-5.25-The-occurrence-of-an-operation-does-not-characterize-the-sense-of-a-proposition.-Indeed,-no-statement-is-made-by-an-operation,-but-only-by-its-result,-and-this-depends-on-the-bases-of-the-operation.-(Operations-and-functions-must-not-be-confused-with-each-other.)">
 <p>
Again, he seems to be struggling to properly distinguish "functions", "macros", and "primitives".
</p>
</div>


 <ol class="org-ol"> <li> <a id="5.251-A-function-cannot-be-its-own-argument,-whereas-an-operation-can-take-one-of-its-own-results-as-its-base."></a> <a href="#5.251-A-function-cannot-be-its-own-argument,-whereas-an-operation-can-take-one-of-its-own-results-as-its-base.">5.251 A function cannot be its own argument, whereas an operation can take one of its own results as its base.</a> <br></br> <div class="outline-text-5" id="text-5.251-A-function-cannot-be-its-own-argument,-whereas-an-operation-can-take-one-of-its-own-results-as-its-base.">
 <p>
Ha!
A function cannot be its own argument.
I think that the logical system constructed by Wittgenstein is actually weaker than Lisp.
</p>

 <p>
And he still hasn't properly defined "functions".
</p>
</div>
</li>

 <li> <a id="5.252-It-is-only-in-this-way-that-the-step-from-one-term-of-a-series-of-forms-to-another-is-possible-(from-one-type-to-another-in-the-hierarchies-of-Russell-and-Whitehead).-(Russell-and-Whitehead-did-not-admit-the-possibility-of-such-steps,-but-repeatedly-availed-themselves-of-it.)"></a> <a href="#5.252-It-is-only-in-this-way-that-the-step-from-one-term-of-a-series-of-forms-to-another-is-possible-(from-one-type-to-another-in-the-hierarchies-of-Russell-and-Whitehead).-(Russell-and-Whitehead-did-not-admit-the-possibility-of-such-steps,-but-repeatedly-availed-themselves-of-it.)">5.252 It is only in this way that the step from one term of a series of forms to another is possible (from one type to another in the hierarchies of Russell and Whitehead). (Russell and Whitehead did not admit the possibility of such steps, but repeatedly availed themselves of it.)</a> <br></br> <div class="outline-text-5" id="text-5.252-It-is-only-in-this-way-that-the-step-from-one-term-of-a-series-of-forms-to-another-is-possible-(from-one-type-to-another-in-the-hierarchies-of-Russell-and-Whitehead).-(Russell-and-Whitehead-did-not-admit-the-possibility-of-such-steps,-but-repeatedly-availed-themselves-of-it.)">
 <p>
So an "operation" is like a macro mixed with application.
For him, functions cannot call themselves, but operations can iteratively apply functions to their own outputs.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.2521-If-an-operation-is-applied-repeatedly-to-its-own-results,-I-speak-of-successive-applications-of-it.-(%E2%80%98O%E2%80%99O%E2%80%99O%E2%80%99a%E2%80%99-is-the-result-of-three-successive-applications-of-the-operation-%E2%80%98O%E2%80%99-%CE%BE-%E2%80%99-to-%E2%80%98a%E2%80%99.)-In-a-similar-sense-I-speak-of-successive-applications-of--~more-than-one~-operation-to-a-number-of-propositions."></a> <a href="#5.2521-If-an-operation-is-applied-repeatedly-to-its-own-results,-I-speak-of-successive-applications-of-it.-(%E2%80%98O%E2%80%99O%E2%80%99O%E2%80%99a%E2%80%99-is-the-result-of-three-successive-applications-of-the-operation-%E2%80%98O%E2%80%99-%CE%BE-%E2%80%99-to-%E2%80%98a%E2%80%99.)-In-a-similar-sense-I-speak-of-successive-applications-of--~more-than-one~-operation-to-a-number-of-propositions.">5.2521 If an operation is applied repeatedly to its own results, I speak of successive applications of it. (‘O’O’O’a’ is the result of three successive applications of the operation ‘O’ ξ ’ to ‘a’.) In a similar sense I speak of successive applications of   <code>more than one</code> operation to a number of propositions.</a> <br></br> <div class="outline-text-6" id="text-5.2521-If-an-operation-is-applied-repeatedly-to-its-own-results,-I-speak-of-successive-applications-of-it.-(%E2%80%98O%E2%80%99O%E2%80%99O%E2%80%99a%E2%80%99-is-the-result-of-three-successive-applications-of-the-operation-%E2%80%98O%E2%80%99-%CE%BE-%E2%80%99-to-%E2%80%98a%E2%80%99.)-In-a-similar-sense-I-speak-of-successive-applications-of--~more-than-one~-operation-to-a-number-of-propositions.">
 <p>
What is ξ here?
</p>
</div>
</li>

 <li> <a id="5.2522-Accordingly-I-use-the-sign-%E2%80%98%5Ba,-x,-O%E2%80%99x%5D%E2%80%99-for-the-general-term-of-the-series-of-forms-a,-O%E2%80%99a,-O%E2%80%99O%E2%80%99a,-.-.-.-.This-bracketed-expression-is-a-variable:-the-first-term-of-the-bracketed-expression-is-the-beginning-of-the-series-of-forms,-the-second-is-the-form-of-a-term-x-arbitrarily-selected-from-the-series,-and-the-third-is-the-form-of-the-term-that-immediately-follows-x-in-the-series."></a> <a href="#5.2522-Accordingly-I-use-the-sign-%E2%80%98%5Ba,-x,-O%E2%80%99x%5D%E2%80%99-for-the-general-term-of-the-series-of-forms-a,-O%E2%80%99a,-O%E2%80%99O%E2%80%99a,-.-.-.-.This-bracketed-expression-is-a-variable:-the-first-term-of-the-bracketed-expression-is-the-beginning-of-the-series-of-forms,-the-second-is-the-form-of-a-term-x-arbitrarily-selected-from-the-series,-and-the-third-is-the-form-of-the-term-that-immediately-follows-x-in-the-series.">5.2522 Accordingly I use the sign ‘[a, x, O’x]’ for the general term of the series of forms a, O’a, O’O’a, . . . .This bracketed expression is a variable: the first term of the bracketed expression is the beginning of the series of forms, the second is the form of a term x arbitrarily selected from the series, and the third is the form of the term that immediately follows x in the series.</a> <br></br> <div class="outline-text-6" id="text-5.2522-Accordingly-I-use-the-sign-%E2%80%98%5Ba,-x,-O%E2%80%99x%5D%E2%80%99-for-the-general-term-of-the-series-of-forms-a,-O%E2%80%99a,-O%E2%80%99O%E2%80%99a,-.-.-.-.This-bracketed-expression-is-a-variable:-the-first-term-of-the-bracketed-expression-is-the-beginning-of-the-series-of-forms,-the-second-is-the-form-of-a-term-x-arbitrarily-selected-from-the-series,-and-the-third-is-the-form-of-the-term-that-immediately-follows-x-in-the-series.">
 <p>
So, he desperately needs looping constructions in his language, and is trying to invent notation for them.
</p>
</div>
</li>

 <li> <a id="5.2523-The-concept-of-successive-applications-of-an-operation-is-equivalent-to-the-concept-%E2%80%98and-so-on%E2%80%99."></a> <a href="#5.2523-The-concept-of-successive-applications-of-an-operation-is-equivalent-to-the-concept-%E2%80%98and-so-on%E2%80%99.">5.2523 The concept of successive applications of an operation is equivalent to the concept ‘and so on’.</a> <br></br> <div class="outline-text-6" id="text-5.2523-The-concept-of-successive-applications-of-an-operation-is-equivalent-to-the-concept-%E2%80%98and-so-on%E2%80%99.">
 <p>
Yeah, I guess, looping has been boggling scientists for a long time.
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.253-One-operation-can-counteract-the-effect-of-another.-Operations-can-cancel-one-another."></a> <a href="#5.253-One-operation-can-counteract-the-effect-of-another.-Operations-can-cancel-one-another.">5.253 One operation can counteract the effect of another. Operations can cancel one another.</a> <br></br> <div class="outline-text-5" id="text-5.253-One-operation-can-counteract-the-effect-of-another.-Operations-can-cancel-one-another.">
 <p>
Well, if information is not lost.
Although, I guess, if your machine time is cheap, you can recompute everything from scratch.
This is basically, in the worst case, backtracking.
</p>
</div>
</li>

 <li> <a id="5.254-An-operation-can-vanish-(e.g.-negation-in-%E2%80%98~~p%E2%80%99:-~~p-=-p)."></a> <a href="#5.254-An-operation-can-vanish-(e.g.-negation-in-%E2%80%98~~p%E2%80%99:-~~p-=-p).">5.254 An operation can vanish (e.g. negation in ‘~~p’: ~~p = p).</a> <br></br> <div class="outline-text-5" id="text-5.254-An-operation-can-vanish-(e.g.-negation-in-%E2%80%98~~p%E2%80%99:-~~p-=-p).">
 <p>
He has to make  <code>not</code> an operation, because his functions are somehow dysfunctional, I guess.
</p>
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-5.3-All-propositions-are-results-of-truth-operations-on-elementary-propositions.-A-truth-operation-is-the-way-in-which-a-truth-function-is-produced-out-of-elementary-propositions.-It-is-of-the-essence-of-truth-operations-that,-just-as-elementary-propositions-yield-a-truth-function-of-themselves,-so-too-in-the-same-way-truth-functions-yield-a-further-truth-function.-When-a-truth-operation-is-applied-to-truth-functions-of-elementary-propositions,-it-always-generates-another-truth-function-of-elementary-propositions,-another-proposition.-When-a-truth-operation-is-applied-to-the-results-of-truth-operations-on-elementary-propositions,-there-is-always-a-single-operation-on-elementary-propositions-that-has-the-same-result.-Every-proposition-is-the-result-of-truth-operations-on-elementary-propositions." class="outline-3">
 <h3 id="5.3-All-propositions-are-results-of-truth-operations-on-elementary-propositions.-A-truth-operation-is-the-way-in-which-a-truth-function-is-produced-out-of-elementary-propositions.-It-is-of-the-essence-of-truth-operations-that,-just-as-elementary-propositions-yield-a-truth-function-of-themselves,-so-too-in-the-same-way-truth-functions-yield-a-further-truth-function.-When-a-truth-operation-is-applied-to-truth-functions-of-elementary-propositions,-it-always-generates-another-truth-function-of-elementary-propositions,-another-proposition.-When-a-truth-operation-is-applied-to-the-results-of-truth-operations-on-elementary-propositions,-there-is-always-a-single-operation-on-elementary-propositions-that-has-the-same-result.-Every-proposition-is-the-result-of-truth-operations-on-elementary-propositions."> <span class="section-number-3">5.3.</span>  <a href="#5.3-All-propositions-are-results-of-truth-operations-on-elementary-propositions.-A-truth-operation-is-the-way-in-which-a-truth-function-is-produced-out-of-elementary-propositions.-It-is-of-the-essence-of-truth-operations-that,-just-as-elementary-propositions-yield-a-truth-function-of-themselves,-so-too-in-the-same-way-truth-functions-yield-a-further-truth-function.-When-a-truth-operation-is-applied-to-truth-functions-of-elementary-propositions,-it-always-generates-another-truth-function-of-elementary-propositions,-another-proposition.-When-a-truth-operation-is-applied-to-the-results-of-truth-operations-on-elementary-propositions,-there-is-always-a-single-operation-on-elementary-propositions-that-has-the-same-result.-Every-proposition-is-the-result-of-truth-operations-on-elementary-propositions.">5.3 All propositions are results of truth-operations on elementary propositions. A truth-operation is the way in which a truth-function is produced out of elementary propositions. It is of the essence of truth-operations that, just as elementary propositions yield a truth-function of themselves, so too in the same way truth-functions yield a further truth-function. When a truth-operation is applied to truth-functions of elementary propositions, it always generates another truth-function of elementary propositions, another proposition. When a truth-operation is applied to the results of truth-operations on elementary propositions, there is always a single operation on elementary propositions that has the same result. Every proposition is the result of truth-operations on elementary propositions.</a></h3>
 <div class="outline-text-3" id="text-5.3-All-propositions-are-results-of-truth-operations-on-elementary-propositions.-A-truth-operation-is-the-way-in-which-a-truth-function-is-produced-out-of-elementary-propositions.-It-is-of-the-essence-of-truth-operations-that,-just-as-elementary-propositions-yield-a-truth-function-of-themselves,-so-too-in-the-same-way-truth-functions-yield-a-further-truth-function.-When-a-truth-operation-is-applied-to-truth-functions-of-elementary-propositions,-it-always-generates-another-truth-function-of-elementary-propositions,-another-proposition.-When-a-truth-operation-is-applied-to-the-results-of-truth-operations-on-elementary-propositions,-there-is-always-a-single-operation-on-elementary-propositions-that-has-the-same-result.-Every-proposition-is-the-result-of-truth-operations-on-elementary-propositions.">
 <p>
Again, "truth-operations" are intertwined with "truth-functions".
</p>

 <p>
Okay, so for him, functions are "substitutable", not "evaluatable".
But operations are always eager.
For primitives, it is irrelevant whether they are lazy or eager, because they are essentially bits.
</p>
</div>

 <div id="outline-container-5.31-The-schemata-in-4.31-have-a-meaning-even-when-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99,-etc.-are-not-elementary-propositions.-And-it-is-easy-to-see-that-the-propositional-sign-in-4.442-expresses-a-single-truth-function-of-elementary-propositions-even-when-%E2%80%98p%E2%80%99-and-%E2%80%98q%E2%80%99-are-truth-functions-of-elementary-propositions." class="outline-4">
 <h4 id="5.31-The-schemata-in-4.31-have-a-meaning-even-when-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99,-etc.-are-not-elementary-propositions.-And-it-is-easy-to-see-that-the-propositional-sign-in-4.442-expresses-a-single-truth-function-of-elementary-propositions-even-when-%E2%80%98p%E2%80%99-and-%E2%80%98q%E2%80%99-are-truth-functions-of-elementary-propositions."> <span class="section-number-4">5.3.1.</span>  <a href="#5.31-The-schemata-in-4.31-have-a-meaning-even-when-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99,-etc.-are-not-elementary-propositions.-And-it-is-easy-to-see-that-the-propositional-sign-in-4.442-expresses-a-single-truth-function-of-elementary-propositions-even-when-%E2%80%98p%E2%80%99-and-%E2%80%98q%E2%80%99-are-truth-functions-of-elementary-propositions.">5.31 The schemata in 4.31 have a meaning even when ‘p’, ‘q’, ‘r’, etc. are not elementary propositions. And it is easy to see that the propositional sign in 4.442 expresses a single truth-function of elementary propositions even when ‘p’ and ‘q’ are truth-functions of elementary propositions.</a></h4>
 <div class="outline-text-4" id="text-5.31-The-schemata-in-4.31-have-a-meaning-even-when-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99,-etc.-are-not-elementary-propositions.-And-it-is-easy-to-see-that-the-propositional-sign-in-4.442-expresses-a-single-truth-function-of-elementary-propositions-even-when-%E2%80%98p%E2%80%99-and-%E2%80%98q%E2%80%99-are-truth-functions-of-elementary-propositions.">
 <p>
An example of evaluation.
</p>
</div>
</div>

 <div id="outline-container-5.32-All-truth-functions-are-results-of-successive-applications-to-elementary-propositions-of-a-finite-number-of-truth-operations." class="outline-4">
 <h4 id="5.32-All-truth-functions-are-results-of-successive-applications-to-elementary-propositions-of-a-finite-number-of-truth-operations."> <span class="section-number-4">5.3.2.</span>  <a href="#5.32-All-truth-functions-are-results-of-successive-applications-to-elementary-propositions-of-a-finite-number-of-truth-operations.">5.32 All truth-functions are results of successive applications to elementary propositions of a finite number of truth-operations.</a></h4>
 <div class="outline-text-4" id="text-5.32-All-truth-functions-are-results-of-successive-applications-to-elementary-propositions-of-a-finite-number-of-truth-operations.">
 <p>
I think, there is some trouble with undecidability here.
</p>
</div>
</div>
</div>

 <div id="outline-container-5.4-At-this-point-it-becomes-manifest-that-there-are-no-%E2%80%98logical-objects%E2%80%99-or-%E2%80%98logical-constants%E2%80%99-(in-Frege%E2%80%99s-and-Russell%E2%80%99s-sense)." class="outline-3">
 <h3 id="5.4-At-this-point-it-becomes-manifest-that-there-are-no-%E2%80%98logical-objects%E2%80%99-or-%E2%80%98logical-constants%E2%80%99-(in-Frege%E2%80%99s-and-Russell%E2%80%99s-sense)."> <span class="section-number-3">5.4.</span>  <a href="#5.4-At-this-point-it-becomes-manifest-that-there-are-no-%E2%80%98logical-objects%E2%80%99-or-%E2%80%98logical-constants%E2%80%99-(in-Frege%E2%80%99s-and-Russell%E2%80%99s-sense).">5.4 At this point it becomes manifest that there are no ‘logical objects’ or ‘logical constants’ (in Frege’s and Russell’s sense).</a></h3>
 <div class="outline-text-3" id="text-5.4-At-this-point-it-becomes-manifest-that-there-are-no-%E2%80%98logical-objects%E2%80%99-or-%E2%80%98logical-constants%E2%80%99-(in-Frege%E2%80%99s-and-Russell%E2%80%99s-sense).">
 <p>
What is this Frege and Russel sense?
Perhaps, he wants to say that there is no need in such a thing as "logical object", if it can be expressed in functions and operations.
</p>
</div>

 <div id="outline-container-5.41-The-reason-is-that-the-results-of-truth-operations-on-truth-functions-are-always-identical-whenever-they-are-one-and-the-same-truth-function-of-elementary-propositions." class="outline-4">
 <h4 id="5.41-The-reason-is-that-the-results-of-truth-operations-on-truth-functions-are-always-identical-whenever-they-are-one-and-the-same-truth-function-of-elementary-propositions."> <span class="section-number-4">5.4.1.</span>  <a href="#5.41-The-reason-is-that-the-results-of-truth-operations-on-truth-functions-are-always-identical-whenever-they-are-one-and-the-same-truth-function-of-elementary-propositions.">5.41 The reason is that the results of truth-operations on truth-functions are always identical whenever they are one and the same truth-function of elementary propositions.</a></h4>
 <div class="outline-text-4" id="text-5.41-The-reason-is-that-the-results-of-truth-operations-on-truth-functions-are-always-identical-whenever-they-are-one-and-the-same-truth-function-of-elementary-propositions.">
 <p>
Didn't he himself objected to the idea of "same" functions?
</p>
</div>
</div>

 <div id="outline-container-5.42-It-is-self-evident-that-v,-%E2%8A%83,-etc.-are-not-relations-in-the-sense-in-which-right-and-left-etc.-are-relations.-The-interdefinability-of-Frege%E2%80%99s-and-Russell%E2%80%99s-%E2%80%98primitive-signs%E2%80%99-of-logic-is-enough-to-show-that-they-are-not-primitive-signs,-still-less-signs-for-relations.-And-it-is-obvious-that-the-%E2%80%98%E2%8A%83%E2%80%99-defined-by-means-of-%E2%80%98~%E2%80%99-and-%E2%80%98v%E2%80%99-is-identical-with-the-one-that-figures-with-%E2%80%98%E2%88%BC%E2%80%99-in-the-definition-of-%E2%80%98v%E2%80%99;-and-that-the-second-%E2%80%98v%E2%80%99-is-identical-with-the-first-one;-and-so-on." class="outline-4">
 <h4 id="5.42-It-is-self-evident-that-v,-%E2%8A%83,-etc.-are-not-relations-in-the-sense-in-which-right-and-left-etc.-are-relations.-The-interdefinability-of-Frege%E2%80%99s-and-Russell%E2%80%99s-%E2%80%98primitive-signs%E2%80%99-of-logic-is-enough-to-show-that-they-are-not-primitive-signs,-still-less-signs-for-relations.-And-it-is-obvious-that-the-%E2%80%98%E2%8A%83%E2%80%99-defined-by-means-of-%E2%80%98~%E2%80%99-and-%E2%80%98v%E2%80%99-is-identical-with-the-one-that-figures-with-%E2%80%98%E2%88%BC%E2%80%99-in-the-definition-of-%E2%80%98v%E2%80%99;-and-that-the-second-%E2%80%98v%E2%80%99-is-identical-with-the-first-one;-and-so-on."> <span class="section-number-4">5.4.2.</span>  <a href="#5.42-It-is-self-evident-that-v,-%E2%8A%83,-etc.-are-not-relations-in-the-sense-in-which-right-and-left-etc.-are-relations.-The-interdefinability-of-Frege%E2%80%99s-and-Russell%E2%80%99s-%E2%80%98primitive-signs%E2%80%99-of-logic-is-enough-to-show-that-they-are-not-primitive-signs,-still-less-signs-for-relations.-And-it-is-obvious-that-the-%E2%80%98%E2%8A%83%E2%80%99-defined-by-means-of-%E2%80%98~%E2%80%99-and-%E2%80%98v%E2%80%99-is-identical-with-the-one-that-figures-with-%E2%80%98%E2%88%BC%E2%80%99-in-the-definition-of-%E2%80%98v%E2%80%99;-and-that-the-second-%E2%80%98v%E2%80%99-is-identical-with-the-first-one;-and-so-on.">5.42 It is self-evident that v, ⊃, etc. are not relations in the sense in which right and left etc. are relations. The interdefinability of Frege’s and Russell’s ‘primitive signs’ of logic is enough to show that they are not primitive signs, still less signs for relations. And it is obvious that the ‘⊃’ defined by means of ‘~’ and ‘v’ is identical with the one that figures with ‘∼’ in the definition of ‘v’; and that the second ‘v’ is identical with the first one; and so on.</a></h4>
 <div class="outline-text-4" id="text-5.42-It-is-self-evident-that-v,-%E2%8A%83,-etc.-are-not-relations-in-the-sense-in-which-right-and-left-etc.-are-relations.-The-interdefinability-of-Frege%E2%80%99s-and-Russell%E2%80%99s-%E2%80%98primitive-signs%E2%80%99-of-logic-is-enough-to-show-that-they-are-not-primitive-signs,-still-less-signs-for-relations.-And-it-is-obvious-that-the-%E2%80%98%E2%8A%83%E2%80%99-defined-by-means-of-%E2%80%98~%E2%80%99-and-%E2%80%98v%E2%80%99-is-identical-with-the-one-that-figures-with-%E2%80%98%E2%88%BC%E2%80%99-in-the-definition-of-%E2%80%98v%E2%80%99;-and-that-the-second-%E2%80%98v%E2%80%99-is-identical-with-the-first-one;-and-so-on.">
 <p>
Some polemic with other language builders.
How familiar.
</p>

 <p>
"We can express this in that, therefore this is not fundamental.
Get lost, you, Common Lisp people."
</p>
</div>
</div>

 <div id="outline-container-5.43-Even-at-first-sight-it-seems-scarcely-credible-that-there-should-follow-from-one-fact-p-infinitely-many-others,-namely-~~p,-~~~~p,-etc.-And-it-is-no-less-remarkable-that-the-infinite-number-of-propositions-of-logic-(mathematics)-follow-from-half-a-dozen-%E2%80%98primitive-propositions%E2%80%99.-But-in-fact-all-the-propositions-of-logic-say-the-same-thing,-to-wit-nothing." class="outline-4">
 <h4 id="5.43-Even-at-first-sight-it-seems-scarcely-credible-that-there-should-follow-from-one-fact-p-infinitely-many-others,-namely-~~p,-~~~~p,-etc.-And-it-is-no-less-remarkable-that-the-infinite-number-of-propositions-of-logic-(mathematics)-follow-from-half-a-dozen-%E2%80%98primitive-propositions%E2%80%99.-But-in-fact-all-the-propositions-of-logic-say-the-same-thing,-to-wit-nothing."> <span class="section-number-4">5.4.3.</span>  <a href="#5.43-Even-at-first-sight-it-seems-scarcely-credible-that-there-should-follow-from-one-fact-p-infinitely-many-others,-namely-~~p,-~~~~p,-etc.-And-it-is-no-less-remarkable-that-the-infinite-number-of-propositions-of-logic-(mathematics)-follow-from-half-a-dozen-%E2%80%98primitive-propositions%E2%80%99.-But-in-fact-all-the-propositions-of-logic-say-the-same-thing,-to-wit-nothing.">5.43 Even at first sight it seems scarcely credible that there should follow from one fact p infinitely many others, namely ~~p, ~~~~p, etc. And it is no less remarkable that the infinite number of propositions of logic (mathematics) follow from half a dozen ‘primitive propositions’. But in fact all the propositions of logic say the same thing, to wit nothing.</a></h4>
 <div class="outline-text-4" id="text-5.43-Even-at-first-sight-it-seems-scarcely-credible-that-there-should-follow-from-one-fact-p-infinitely-many-others,-namely-~~p,-~~~~p,-etc.-And-it-is-no-less-remarkable-that-the-infinite-number-of-propositions-of-logic-(mathematics)-follow-from-half-a-dozen-%E2%80%98primitive-propositions%E2%80%99.-But-in-fact-all-the-propositions-of-logic-say-the-same-thing,-to-wit-nothing.">
 <p>
For them at the time it is still not obvious that everything is basically one huge array of XORs.
</p>

 <p>
The problem is usually not infinity, but rather fighting infinity.
</p>
</div>
</div>

 <div id="outline-container-5.44-Truth-functions-are-not-material-functions.-For-example,-an-affirmation-can-be-produced-by-double-negation:-in-such-a-case-does-it-follow-that-in-some-sense-negation-is-contained-in-affirmation?-Does-%E2%80%98~~p%E2%80%99-negate-~p,-or-does-it-affirm-p-%E2%80%94-or-both?-The-proposition-%E2%80%98~~p%E2%80%99-is-not-about-negation,-as-if-negation-were-an-object:-on-the-other-hand,-the-possibility-of-negation-is-already-written-into-affirmation.-And-if-there-were-an-object-called-%E2%80%98~%E2%80%99,-it-would-follow-that-%E2%80%98~~p%E2%80%99-said-something-different-from-what-%E2%80%98p%E2%80%99-said,-just-because-the-one-proposition-would-then-be-about-~-and-the-other-would-not." class="outline-4">
 <h4 id="5.44-Truth-functions-are-not-material-functions.-For-example,-an-affirmation-can-be-produced-by-double-negation:-in-such-a-case-does-it-follow-that-in-some-sense-negation-is-contained-in-affirmation?-Does-%E2%80%98~~p%E2%80%99-negate-~p,-or-does-it-affirm-p-%E2%80%94-or-both?-The-proposition-%E2%80%98~~p%E2%80%99-is-not-about-negation,-as-if-negation-were-an-object:-on-the-other-hand,-the-possibility-of-negation-is-already-written-into-affirmation.-And-if-there-were-an-object-called-%E2%80%98~%E2%80%99,-it-would-follow-that-%E2%80%98~~p%E2%80%99-said-something-different-from-what-%E2%80%98p%E2%80%99-said,-just-because-the-one-proposition-would-then-be-about-~-and-the-other-would-not."> <span class="section-number-4">5.4.4.</span>  <a href="#5.44-Truth-functions-are-not-material-functions.-For-example,-an-affirmation-can-be-produced-by-double-negation:-in-such-a-case-does-it-follow-that-in-some-sense-negation-is-contained-in-affirmation?-Does-%E2%80%98~~p%E2%80%99-negate-~p,-or-does-it-affirm-p-%E2%80%94-or-both?-The-proposition-%E2%80%98~~p%E2%80%99-is-not-about-negation,-as-if-negation-were-an-object:-on-the-other-hand,-the-possibility-of-negation-is-already-written-into-affirmation.-And-if-there-were-an-object-called-%E2%80%98~%E2%80%99,-it-would-follow-that-%E2%80%98~~p%E2%80%99-said-something-different-from-what-%E2%80%98p%E2%80%99-said,-just-because-the-one-proposition-would-then-be-about-~-and-the-other-would-not.">5.44 Truth-functions are not material functions. For example, an affirmation can be produced by double negation: in such a case does it follow that in some sense negation is contained in affirmation? Does ‘~~p’ negate ~p, or does it affirm p — or both? The proposition ‘~~p’ is not about negation, as if negation were an object: on the other hand, the possibility of negation is already written into affirmation. And if there were an object called ‘~’, it would follow that ‘~~p’ said something different from what ‘p’ said, just because the one proposition would then be about ~ and the other would not.</a></h4>
 <div class="outline-text-4" id="text-5.44-Truth-functions-are-not-material-functions.-For-example,-an-affirmation-can-be-produced-by-double-negation:-in-such-a-case-does-it-follow-that-in-some-sense-negation-is-contained-in-affirmation?-Does-%E2%80%98~~p%E2%80%99-negate-~p,-or-does-it-affirm-p-%E2%80%94-or-both?-The-proposition-%E2%80%98~~p%E2%80%99-is-not-about-negation,-as-if-negation-were-an-object:-on-the-other-hand,-the-possibility-of-negation-is-already-written-into-affirmation.-And-if-there-were-an-object-called-%E2%80%98~%E2%80%99,-it-would-follow-that-%E2%80%98~~p%E2%80%99-said-something-different-from-what-%E2%80%98p%E2%80%99-said,-just-because-the-one-proposition-would-then-be-about-~-and-the-other-would-not.">
 <p>
Again, evaluation is boggling him.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.441-This-vanishing-of-the-apparent-logical-constants-also-occurs-in-the-case-of-%E2%80%98~(%E2%88%83x).~fx%E2%80%99,-which-says-the-same-as-%E2%80%98(x).fx%E2%80%99,-and-in-the-case-of-%E2%80%98(%E2%88%83x).fx.x-=-a%E2%80%99,-which-says-the-same-as-%E2%80%98fa%E2%80%99."></a> <a href="#5.441-This-vanishing-of-the-apparent-logical-constants-also-occurs-in-the-case-of-%E2%80%98~(%E2%88%83x).~fx%E2%80%99,-which-says-the-same-as-%E2%80%98(x).fx%E2%80%99,-and-in-the-case-of-%E2%80%98(%E2%88%83x).fx.x-=-a%E2%80%99,-which-says-the-same-as-%E2%80%98fa%E2%80%99.">5.441 This vanishing of the apparent logical constants also occurs in the case of ‘~(∃x).~fx’, which says the same as ‘(x).fx’, and in the case of ‘(∃x).fx.x = a’, which says the same as ‘fa’.</a> <br></br> <div class="outline-text-5" id="text-5.441-This-vanishing-of-the-apparent-logical-constants-also-occurs-in-the-case-of-%E2%80%98~(%E2%88%83x).~fx%E2%80%99,-which-says-the-same-as-%E2%80%98(x).fx%E2%80%99,-and-in-the-case-of-%E2%80%98(%E2%88%83x).fx.x-=-a%E2%80%99,-which-says-the-same-as-%E2%80%98fa%E2%80%99.">
 <p>
Not sure I understand this example.
He suggests reducing everything?
Not always works.
</p>
</div>
</li>

 <li> <a id="5.442-If-we-are-given-a-proposition,-then-with-it-we-are-also-given-the-results-of-all-truth-operations-that-have-it-as-their-base."></a> <a href="#5.442-If-we-are-given-a-proposition,-then-with-it-we-are-also-given-the-results-of-all-truth-operations-that-have-it-as-their-base.">5.442 If we are given a proposition, then with it we are also given the results of all truth-operations that have it as their base.</a> <br></br> <div class="outline-text-5" id="text-5.442-If-we-are-given-a-proposition,-then-with-it-we-are-also-given-the-results-of-all-truth-operations-that-have-it-as-their-base.">
 <p>
I guess.
Shall we use them for precomputation?
 <span class="underline">all</span> is usually unmanageable.
</p>

 <p>
No, I do not understand.
Those "all truth-operations" may need to evaluate other propositions.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-5.45-If-there-are-primitive-logical-signs,-then-any-logic-that-fails-to-show-clearly-how-they-are-placed-relatively-to-one-another-and-to-justify-their-existence-will-be-incorrect.-The-construction-of-logic-out-of-its-primitive-signs-must-be-made-clear." class="outline-4">
 <h4 id="5.45-If-there-are-primitive-logical-signs,-then-any-logic-that-fails-to-show-clearly-how-they-are-placed-relatively-to-one-another-and-to-justify-their-existence-will-be-incorrect.-The-construction-of-logic-out-of-its-primitive-signs-must-be-made-clear."> <span class="section-number-4">5.4.5.</span>  <a href="#5.45-If-there-are-primitive-logical-signs,-then-any-logic-that-fails-to-show-clearly-how-they-are-placed-relatively-to-one-another-and-to-justify-their-existence-will-be-incorrect.-The-construction-of-logic-out-of-its-primitive-signs-must-be-made-clear.">5.45 If there are primitive logical signs, then any logic that fails to show clearly how they are placed relatively to one another and to justify their existence will be incorrect. The construction of logic out of its primitive signs must be made clear.</a></h4>
 <div class="outline-text-4" id="text-5.45-If-there-are-primitive-logical-signs,-then-any-logic-that-fails-to-show-clearly-how-they-are-placed-relatively-to-one-another-and-to-justify-their-existence-will-be-incorrect.-The-construction-of-logic-out-of-its-primitive-signs-must-be-made-clear.">
 <p>
I guess, this means that evaluation should have proper semantic, and primitives of the language must be described somewhere, in a language standard.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.451-If-logic-has-primitive-ideas,-they-must-be-independent-of-one-another.-If-a-primitive-idea-has-been-introduced,-it-must-have-been-introduced-in-all-the-combinations-in-which-it-ever-occurs.-It-cannot,-therefore,-be-introduced-first-for-one-combination-and-later-re-introduced-for-another.-For-example,-once-negation-has-been-introduced,-we-must-understand-it-both-in-propositions-of-the-form-%E2%80%98~p%E2%80%99-and-in-propositions-like-%E2%80%98~(p-v-q)%E2%80%99,-%E2%80%98(%E2%88%83x).~fx%E2%80%99,-etc.-We-must-not-introduce-it-first-for-the-one-class-of-cases-and-then-for-the-other,-since-it-would-then-be-left-in-doubt-whether-its-meaning-were-the-same-in-both-cases,-and-no-reason-would-have-been-given-for-combining-the-signs-in-the-same-way-in-both-cases.-(In-short,-Frege%E2%80%99s-remarks-about-introducing-signs-by-means-of-definitions-(in-The-Fundamental-Laws-of-Arithmetic)-also-apply,-mutatis-mutandis,-to-the-introduction-of-primitive-signs.)"></a> <a href="#5.451-If-logic-has-primitive-ideas,-they-must-be-independent-of-one-another.-If-a-primitive-idea-has-been-introduced,-it-must-have-been-introduced-in-all-the-combinations-in-which-it-ever-occurs.-It-cannot,-therefore,-be-introduced-first-for-one-combination-and-later-re-introduced-for-another.-For-example,-once-negation-has-been-introduced,-we-must-understand-it-both-in-propositions-of-the-form-%E2%80%98~p%E2%80%99-and-in-propositions-like-%E2%80%98~(p-v-q)%E2%80%99,-%E2%80%98(%E2%88%83x).~fx%E2%80%99,-etc.-We-must-not-introduce-it-first-for-the-one-class-of-cases-and-then-for-the-other,-since-it-would-then-be-left-in-doubt-whether-its-meaning-were-the-same-in-both-cases,-and-no-reason-would-have-been-given-for-combining-the-signs-in-the-same-way-in-both-cases.-(In-short,-Frege%E2%80%99s-remarks-about-introducing-signs-by-means-of-definitions-(in-The-Fundamental-Laws-of-Arithmetic)-also-apply,-mutatis-mutandis,-to-the-introduction-of-primitive-signs.)">5.451 If logic has primitive ideas, they must be independent of one another. If a primitive idea has been introduced, it must have been introduced in all the combinations in which it ever occurs. It cannot, therefore, be introduced first for one combination and later re-introduced for another. For example, once negation has been introduced, we must understand it both in propositions of the form ‘~p’ and in propositions like ‘~(p v q)’, ‘(∃x).~fx’, etc. We must not introduce it first for the one class of cases and then for the other, since it would then be left in doubt whether its meaning were the same in both cases, and no reason would have been given for combining the signs in the same way in both cases. (In short, Frege’s remarks about introducing signs by means of definitions (in The Fundamental Laws of Arithmetic) also apply, mutatis mutandis, to the introduction of primitive signs.)</a> <br></br> <div class="outline-text-5" id="text-5.451-If-logic-has-primitive-ideas,-they-must-be-independent-of-one-another.-If-a-primitive-idea-has-been-introduced,-it-must-have-been-introduced-in-all-the-combinations-in-which-it-ever-occurs.-It-cannot,-therefore,-be-introduced-first-for-one-combination-and-later-re-introduced-for-another.-For-example,-once-negation-has-been-introduced,-we-must-understand-it-both-in-propositions-of-the-form-%E2%80%98~p%E2%80%99-and-in-propositions-like-%E2%80%98~(p-v-q)%E2%80%99,-%E2%80%98(%E2%88%83x).~fx%E2%80%99,-etc.-We-must-not-introduce-it-first-for-the-one-class-of-cases-and-then-for-the-other,-since-it-would-then-be-left-in-doubt-whether-its-meaning-were-the-same-in-both-cases,-and-no-reason-would-have-been-given-for-combining-the-signs-in-the-same-way-in-both-cases.-(In-short,-Frege%E2%80%99s-remarks-about-introducing-signs-by-means-of-definitions-(in-The-Fundamental-Laws-of-Arithmetic)-also-apply,-mutatis-mutandis,-to-the-introduction-of-primitive-signs.)">
 <p>
Well, even in Scheme we have different versions of  <code>begin</code>.
Other languages are even worse in terms of defining primitives.
</p>
</div>
</li>

 <li> <a id="5.452-The-introduction-of-any-new-device-into-the-symbolism-of-logic-is-necessarily-a-momentous-event.-In-logic-a-new-device-should-not-be-introduced-in-brackets-or-in-a-footnote-with-what-one-might-call-a-completely-innocent-air.-(Thus-in-Russell-and-Whitehead%E2%80%99s-~Principia-Mathematica~-there-occur-definitions-and-primitive-propositions-expressed-in-words.-Why-this-sudden-appearance-of-words?-It-would-require-a-justification,-but-none-is-given,-or-could-be-given,-since-the-procedure-is-in-fact-illicit.)-But-if-the-introduction-of-a-new-device-has-proved-necessary-at-a-certain-point,-we-must-immediately-ask-ourselves,-%E2%80%98At-what-points-is-the-employment-of-this-device-now-~unavoidable~?%E2%80%99-and-its-place-in-logic-must-be-made-clear."></a> <a href="#5.452-The-introduction-of-any-new-device-into-the-symbolism-of-logic-is-necessarily-a-momentous-event.-In-logic-a-new-device-should-not-be-introduced-in-brackets-or-in-a-footnote-with-what-one-might-call-a-completely-innocent-air.-(Thus-in-Russell-and-Whitehead%E2%80%99s-~Principia-Mathematica~-there-occur-definitions-and-primitive-propositions-expressed-in-words.-Why-this-sudden-appearance-of-words?-It-would-require-a-justification,-but-none-is-given,-or-could-be-given,-since-the-procedure-is-in-fact-illicit.)-But-if-the-introduction-of-a-new-device-has-proved-necessary-at-a-certain-point,-we-must-immediately-ask-ourselves,-%E2%80%98At-what-points-is-the-employment-of-this-device-now-~unavoidable~?%E2%80%99-and-its-place-in-logic-must-be-made-clear.">5.452 The introduction of any new device into the symbolism of logic is necessarily a momentous event. In logic a new device should not be introduced in brackets or in a footnote with what one might call a completely innocent air. (Thus in Russell and Whitehead’s  <code>Principia Mathematica</code> there occur definitions and primitive propositions expressed in words. Why this sudden appearance of words? It would require a justification, but none is given, or could be given, since the procedure is in fact illicit.) But if the introduction of a new device has proved necessary at a certain point, we must immediately ask ourselves, ‘At what points is the employment of this device now  <code>unavoidable</code>?’ and its place in logic must be made clear.</a> <br></br> <div class="outline-text-5" id="text-5.452-The-introduction-of-any-new-device-into-the-symbolism-of-logic-is-necessarily-a-momentous-event.-In-logic-a-new-device-should-not-be-introduced-in-brackets-or-in-a-footnote-with-what-one-might-call-a-completely-innocent-air.-(Thus-in-Russell-and-Whitehead%E2%80%99s-~Principia-Mathematica~-there-occur-definitions-and-primitive-propositions-expressed-in-words.-Why-this-sudden-appearance-of-words?-It-would-require-a-justification,-but-none-is-given,-or-could-be-given,-since-the-procedure-is-in-fact-illicit.)-But-if-the-introduction-of-a-new-device-has-proved-necessary-at-a-certain-point,-we-must-immediately-ask-ourselves,-%E2%80%98At-what-points-is-the-employment-of-this-device-now-~unavoidable~?%E2%80%99-and-its-place-in-logic-must-be-made-clear.">
 <p>
This "device" is clearly "introduction of new language features".
</p>

 <p>
"Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary."
</p>
</div>
</li>

 <li> <a id="5.453-All-numbers-in-logic-stand-in-need-of-justification.-Or-rather,-it-must-become-evident-that-there-are-no-numbers-in-logic.-There-are-no-pre-eminent-numbers."></a> <a href="#5.453-All-numbers-in-logic-stand-in-need-of-justification.-Or-rather,-it-must-become-evident-that-there-are-no-numbers-in-logic.-There-are-no-pre-eminent-numbers.">5.453 All numbers in logic stand in need of justification. Or rather, it must become evident that there are no numbers in logic. There are no pre-eminent numbers.</a> <br></br> <div class="outline-text-5" id="text-5.453-All-numbers-in-logic-stand-in-need-of-justification.-Or-rather,-it-must-become-evident-that-there-are-no-numbers-in-logic.-There-are-no-pre-eminent-numbers.">
 <p>
I guess, in the same way as Wittgenstein dislikes truth constants (I think, he prefers having 1 and 0 instead. And a (false? ) predicate), he dislikes numbers as primitives.
Russel has 0 as a basic, number, I think, and a +1 operation.
Church encoding lets you live without even 0.
</p>
</div>
</li>

 <li> <a id="5.454-In-logic-there-is-no-co-ordinate-status,-and-there-can-be-no-classification.-In-logic-there-can-be-no-distinction-between-the-general-and-the-specific."></a> <a href="#5.454-In-logic-there-is-no-co-ordinate-status,-and-there-can-be-no-classification.-In-logic-there-can-be-no-distinction-between-the-general-and-the-specific.">5.454 In logic there is no co-ordinate status, and there can be no classification. In logic there can be no distinction between the general and the specific.</a> <br></br> <div class="outline-text-5" id="text-5.454-In-logic-there-is-no-co-ordinate-status,-and-there-can-be-no-classification.-In-logic-there-can-be-no-distinction-between-the-general-and-the-specific.">
 <p>
Is this again a reference to reasoning over types instead of instances?
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.4541-The-solutions-of-the-problems-of-logic-must-be-simple,-since-they-set-the-standard-of-simplicity.-Men-have-always-had-a-presentiment-that-there-must-be-a-realm-in-which-the-answers-to-questions-are-symmetrically-combined-%E2%80%94a-priori%E2%80%94-to-form-a-self-contained-system.-A-realm-subject-to-the-law:-Simplex-sigillum-veri."></a> <a href="#5.4541-The-solutions-of-the-problems-of-logic-must-be-simple,-since-they-set-the-standard-of-simplicity.-Men-have-always-had-a-presentiment-that-there-must-be-a-realm-in-which-the-answers-to-questions-are-symmetrically-combined-%E2%80%94a-priori%E2%80%94-to-form-a-self-contained-system.-A-realm-subject-to-the-law:-Simplex-sigillum-veri.">5.4541 The solutions of the problems of logic must be simple, since they set the standard of simplicity. Men have always had a presentiment that there must be a realm in which the answers to questions are symmetrically combined —a priori— to form a self-contained system. A realm subject to the law: Simplex sigillum veri.</a> <br></br> <div class="outline-text-6" id="text-5.4541-The-solutions-of-the-problems-of-logic-must-be-simple,-since-they-set-the-standard-of-simplicity.-Men-have-always-had-a-presentiment-that-there-must-be-a-realm-in-which-the-answers-to-questions-are-symmetrically-combined-%E2%80%94a-priori%E2%80%94-to-form-a-self-contained-system.-A-realm-subject-to-the-law:-Simplex-sigillum-veri.">
 <p>
I think that this is an emotional statement akin to the ones programmers call KISS.
(Keep It Simple, Sir)
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-5.46-If-we-introduced-logical-signs-properly,-then-we-should-also-have-introduced-at-the-same-time-the-sense-of-all-combinations-of-them;-i.e.-not-only-%E2%80%98p-v-q%E2%80%99-but-%E2%80%98~(p-v-~q)%E2%80%99-as-well,-etc.-etc.-We-should-also-have-introduced-at-the-same-time-the-effect-of-all-possible-combinations-of-brackets.-And-thus-it-would-have-been-made-clear-that-the-real-general-primitive-signs-are-not-%E2%80%98p-v-q%E2%80%99,-%E2%80%98(%E2%88%83x).fx%E2%80%99,-etc.-but-the-most-general-form-of-their-combinations." class="outline-4">
 <h4 id="5.46-If-we-introduced-logical-signs-properly,-then-we-should-also-have-introduced-at-the-same-time-the-sense-of-all-combinations-of-them;-i.e.-not-only-%E2%80%98p-v-q%E2%80%99-but-%E2%80%98~(p-v-~q)%E2%80%99-as-well,-etc.-etc.-We-should-also-have-introduced-at-the-same-time-the-effect-of-all-possible-combinations-of-brackets.-And-thus-it-would-have-been-made-clear-that-the-real-general-primitive-signs-are-not-%E2%80%98p-v-q%E2%80%99,-%E2%80%98(%E2%88%83x).fx%E2%80%99,-etc.-but-the-most-general-form-of-their-combinations."> <span class="section-number-4">5.4.6.</span>  <a href="#5.46-If-we-introduced-logical-signs-properly,-then-we-should-also-have-introduced-at-the-same-time-the-sense-of-all-combinations-of-them;-i.e.-not-only-%E2%80%98p-v-q%E2%80%99-but-%E2%80%98~(p-v-~q)%E2%80%99-as-well,-etc.-etc.-We-should-also-have-introduced-at-the-same-time-the-effect-of-all-possible-combinations-of-brackets.-And-thus-it-would-have-been-made-clear-that-the-real-general-primitive-signs-are-not-%E2%80%98p-v-q%E2%80%99,-%E2%80%98(%E2%88%83x).fx%E2%80%99,-etc.-but-the-most-general-form-of-their-combinations.">5.46 If we introduced logical signs properly, then we should also have introduced at the same time the sense of all combinations of them; i.e. not only ‘p v q’ but ‘~(p v ~q)’ as well, etc. etc. We should also have introduced at the same time the effect of all possible combinations of brackets. And thus it would have been made clear that the real general primitive signs are not ‘p v q’, ‘(∃x).fx’, etc. but the most general form of their combinations.</a></h4>
 <div class="outline-text-4" id="text-5.46-If-we-introduced-logical-signs-properly,-then-we-should-also-have-introduced-at-the-same-time-the-sense-of-all-combinations-of-them;-i.e.-not-only-%E2%80%98p-v-q%E2%80%99-but-%E2%80%98~(p-v-~q)%E2%80%99-as-well,-etc.-etc.-We-should-also-have-introduced-at-the-same-time-the-effect-of-all-possible-combinations-of-brackets.-And-thus-it-would-have-been-made-clear-that-the-real-general-primitive-signs-are-not-%E2%80%98p-v-q%E2%80%99,-%E2%80%98(%E2%88%83x).fx%E2%80%99,-etc.-but-the-most-general-form-of-their-combinations.">
 <p>
Yes, but how is he going to introduce this "most general combination"?
By a generative grammar?
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.461-Though-it-seems-unimportant,-it-is-in-fact-significant-that-the-pseudo-relations-of-logic,-such-as-v-and-%E2%8A%83,-need-brackets-%E2%80%94-unlike-real-relations.-Indeed,-the-use-of-brackets-with-these-apparently-primitive-signs-is-itself-an-indication-that-they-are-not-the-real-primitive-signs.-And-surely-no-one-is-going-to-believe-that-brackets-have-an-independent-meaning."></a> <a href="#5.461-Though-it-seems-unimportant,-it-is-in-fact-significant-that-the-pseudo-relations-of-logic,-such-as-v-and-%E2%8A%83,-need-brackets-%E2%80%94-unlike-real-relations.-Indeed,-the-use-of-brackets-with-these-apparently-primitive-signs-is-itself-an-indication-that-they-are-not-the-real-primitive-signs.-And-surely-no-one-is-going-to-believe-that-brackets-have-an-independent-meaning.">5.461 Though it seems unimportant, it is in fact significant that the pseudo-relations of logic, such as v and ⊃, need brackets — unlike real relations. Indeed, the use of brackets with these apparently primitive signs is itself an indication that they are not the real primitive signs. And surely no one is going to believe that brackets have an independent meaning.</a> <br></br> <div class="outline-text-5" id="text-5.461-Though-it-seems-unimportant,-it-is-in-fact-significant-that-the-pseudo-relations-of-logic,-such-as-v-and-%E2%8A%83,-need-brackets-%E2%80%94-unlike-real-relations.-Indeed,-the-use-of-brackets-with-these-apparently-primitive-signs-is-itself-an-indication-that-they-are-not-the-real-primitive-signs.-And-surely-no-one-is-going-to-believe-that-brackets-have-an-independent-meaning.">
 <p>
Hehe, in Scheme everything is used in sexps.
Homoiconicity eludes him.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.4611-Signs-for-logical-operations-are-punctuation-marks."></a> <a href="#5.4611-Signs-for-logical-operations-are-punctuation-marks.">5.4611 Signs for logical operations are punctuation-marks.</a> <br></br> <div class="outline-text-6" id="text-5.4611-Signs-for-logical-operations-are-punctuation-marks.">
 <p>
Nice metaphor, but incomplete.
Indeed, in human languages, punctuation marks are used for many "operator-like" purposes, but I do not think that logical operators are from the same category.
Maybe brackets are.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-5.47-It-is-clear-that-whatever-we-can-say-in-advance-about-the-form-of-all-propositions,-we-must-be-able-to-say-all-at-once.-An-elementary-proposition-really-contains-all-logical-operations-in-itself.-For-%E2%80%98fa%E2%80%99-says-the-same-thing-as-%E2%80%98(%E2%88%83x).fx.x-=-a%E2%80%99.-Wherever-there-is-compositeness,-argument-and-function-are-present,-and-where-these-are-present,-we-already-have-all-the-logical-constants.-One-could-say-that-the-sole-logical-constant-was-what-all-propositions,-by-their-very-nature,-had-in-common-with-one-another.-But-that-is-the-general-propositional-form." class="outline-4">
 <h4 id="5.47-It-is-clear-that-whatever-we-can-say-in-advance-about-the-form-of-all-propositions,-we-must-be-able-to-say-all-at-once.-An-elementary-proposition-really-contains-all-logical-operations-in-itself.-For-%E2%80%98fa%E2%80%99-says-the-same-thing-as-%E2%80%98(%E2%88%83x).fx.x-=-a%E2%80%99.-Wherever-there-is-compositeness,-argument-and-function-are-present,-and-where-these-are-present,-we-already-have-all-the-logical-constants.-One-could-say-that-the-sole-logical-constant-was-what-all-propositions,-by-their-very-nature,-had-in-common-with-one-another.-But-that-is-the-general-propositional-form."> <span class="section-number-4">5.4.7.</span>  <a href="#5.47-It-is-clear-that-whatever-we-can-say-in-advance-about-the-form-of-all-propositions,-we-must-be-able-to-say-all-at-once.-An-elementary-proposition-really-contains-all-logical-operations-in-itself.-For-%E2%80%98fa%E2%80%99-says-the-same-thing-as-%E2%80%98(%E2%88%83x).fx.x-=-a%E2%80%99.-Wherever-there-is-compositeness,-argument-and-function-are-present,-and-where-these-are-present,-we-already-have-all-the-logical-constants.-One-could-say-that-the-sole-logical-constant-was-what-all-propositions,-by-their-very-nature,-had-in-common-with-one-another.-But-that-is-the-general-propositional-form.">5.47 It is clear that whatever we can say in advance about the form of all propositions, we must be able to say all at once. An elementary proposition really contains all logical operations in itself. For ‘fa’ says the same thing as ‘(∃x).fx.x = a’. Wherever there is compositeness, argument and function are present, and where these are present, we already have all the logical constants. One could say that the sole logical constant was what all propositions, by their very nature, had in common with one another. But that is the general propositional form.</a></h4>
 <div class="outline-text-4" id="text-5.47-It-is-clear-that-whatever-we-can-say-in-advance-about-the-form-of-all-propositions,-we-must-be-able-to-say-all-at-once.-An-elementary-proposition-really-contains-all-logical-operations-in-itself.-For-%E2%80%98fa%E2%80%99-says-the-same-thing-as-%E2%80%98(%E2%88%83x).fx.x-=-a%E2%80%99.-Wherever-there-is-compositeness,-argument-and-function-are-present,-and-where-these-are-present,-we-already-have-all-the-logical-constants.-One-could-say-that-the-sole-logical-constant-was-what-all-propositions,-by-their-very-nature,-had-in-common-with-one-another.-But-that-is-the-general-propositional-form.">
 <p>
We need to define "the form of all propositions" before doing any reasoning.
Whether this "form of all propositions" is formal syntax or formal semantic, I am not sure.
</p>

 <p>
I think that he still needs #f as his logical constant.
On the other hand, \(A \land ~A\) is false, so maybe not even that.
All the other propositions can be combinations of elementary an primitive operations.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.471-The-general-propositional-form-is-the-essence-of-a-proposition."></a> <a href="#5.471-The-general-propositional-form-is-the-essence-of-a-proposition.">5.471 The general propositional form is the essence of a proposition.</a> <br></br> <div class="outline-text-5" id="text-5.471-The-general-propositional-form-is-the-essence-of-a-proposition.">
 <p>
Like, being combined according to the laws of the language.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.4711-To-give-the-essence-of-a-proposition-means-to-give-the-essence-of-all-description,-and-thus-the-essence-of-the-world."></a> <a href="#5.4711-To-give-the-essence-of-a-proposition-means-to-give-the-essence-of-all-description,-and-thus-the-essence-of-the-world.">5.4711 To give the essence of a proposition means to give the essence of all description, and thus the essence of the world.</a> <br></br> <div class="outline-text-6" id="text-5.4711-To-give-the-essence-of-a-proposition-means-to-give-the-essence-of-all-description,-and-thus-the-essence-of-the-world.">
 <p>
So, the world is a program.
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.472-The-description-of-the-most-general-propositional-form-is-the-description-of-the-one-and-only-general-primitive-sign-in-logic."></a> <a href="#5.472-The-description-of-the-most-general-propositional-form-is-the-description-of-the-one-and-only-general-primitive-sign-in-logic.">5.472 The description of the most general propositional form is the description of the one and only general primitive sign in logic.</a> <br></br> <div class="outline-text-5" id="text-5.472-The-description-of-the-most-general-propositional-form-is-the-description-of-the-one-and-only-general-primitive-sign-in-logic.">
 <p>
That is the law of combination of propositions?
</p>
</div>
</li>

 <li> <a id="5.473-Logic-must-look-after-itself.-If-a-sign-is-possible,-then-it-is-also-capable-of-signifying.-Whatever-is-possible-in-logic-is-also-permitted.-(The-reason-why-%E2%80%98Socrates-is-identical%E2%80%99-means-nothing-is-that-there-is-no-property-called-%E2%80%98identical%E2%80%99.-The-proposition-is-nonsensical-because-we-have-failed-to-make-an-arbitrary-determination,-and-not-because-the-symbol,-in-itself,-would-be-illegitimate.)-In-a-certain-sense,-we-cannot-make-mistakes-in-logic."></a> <a href="#5.473-Logic-must-look-after-itself.-If-a-sign-is-possible,-then-it-is-also-capable-of-signifying.-Whatever-is-possible-in-logic-is-also-permitted.-(The-reason-why-%E2%80%98Socrates-is-identical%E2%80%99-means-nothing-is-that-there-is-no-property-called-%E2%80%98identical%E2%80%99.-The-proposition-is-nonsensical-because-we-have-failed-to-make-an-arbitrary-determination,-and-not-because-the-symbol,-in-itself,-would-be-illegitimate.)-In-a-certain-sense,-we-cannot-make-mistakes-in-logic.">5.473 Logic must look after itself. If a sign is possible, then it is also capable of signifying. Whatever is possible in logic is also permitted. (The reason why ‘Socrates is identical’ means nothing is that there is no property called ‘identical’. The proposition is nonsensical because we have failed to make an arbitrary determination, and not because the symbol, in itself, would be illegitimate.) In a certain sense, we cannot make mistakes in logic.</a> <br></br> <div class="outline-text-5" id="text-5.473-Logic-must-look-after-itself.-If-a-sign-is-possible,-then-it-is-also-capable-of-signifying.-Whatever-is-possible-in-logic-is-also-permitted.-(The-reason-why-%E2%80%98Socrates-is-identical%E2%80%99-means-nothing-is-that-there-is-no-property-called-%E2%80%98identical%E2%80%99.-The-proposition-is-nonsensical-because-we-have-failed-to-make-an-arbitrary-determination,-and-not-because-the-symbol,-in-itself,-would-be-illegitimate.)-In-a-certain-sense,-we-cannot-make-mistakes-in-logic.">
 <p>
This seems like a difference between a compile-time (or read-time) and run-time error.
"Socrates is identical" is a run-time error, but not a compile-time error.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.4731-Self-evidence,-which-Russell-talked-about-so-much,-can-become-dispensable-in-logic,-only-because-language-itself-prevents-every-logical-mistake.-%E2%80%94-What-makes-logic-a-priori-is-the-impossibility-of-illogical-thought."></a> <a href="#5.4731-Self-evidence,-which-Russell-talked-about-so-much,-can-become-dispensable-in-logic,-only-because-language-itself-prevents-every-logical-mistake.-%E2%80%94-What-makes-logic-a-priori-is-the-impossibility-of-illogical-thought.">5.4731 Self-evidence, which Russell talked about so much, can become dispensable in logic, only because language itself prevents every logical mistake. — What makes logic a priori is the impossibility of illogical thought.</a> <br></br> <div class="outline-text-6" id="text-5.4731-Self-evidence,-which-Russell-talked-about-so-much,-can-become-dispensable-in-logic,-only-because-language-itself-prevents-every-logical-mistake.-%E2%80%94-What-makes-logic-a-priori-is-the-impossibility-of-illogical-thought.">
 <p>
I think that elementary propositions still have to be self-evident.
</p>
</div>
</li>

 <li> <a id="5.4732-We-cannot-give-a-sign-the-wrong-sense."></a> <a href="#5.4732-We-cannot-give-a-sign-the-wrong-sense.">5.4732 We cannot give a sign the wrong sense.</a> <br></br> <div class="outline-text-6" id="text-5.4732-We-cannot-give-a-sign-the-wrong-sense.">
 <p>
Because we cannot give a sign any sense other than it has according to the laws of logic it is written in.
But we can feed a Scheme program into a Common Lisp interpreter and observe all kinds of errors.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.47321-Occam%E2%80%99s-maxim-is,-of-course,-not-an-arbitrary-rule,-nor-one-that-is-justified-by-its-success-in-practice:-its-point-is-that-unnecessary-units-in-a-sign-language-mean-nothing.-Signs-that-serve-one-purpose-are-logically-equivalent,-and-signs-that-serve-none-are-logically-meaningless."></a> <a href="#5.47321-Occam%E2%80%99s-maxim-is,-of-course,-not-an-arbitrary-rule,-nor-one-that-is-justified-by-its-success-in-practice:-its-point-is-that-unnecessary-units-in-a-sign-language-mean-nothing.-Signs-that-serve-one-purpose-are-logically-equivalent,-and-signs-that-serve-none-are-logically-meaningless.">5.47321 Occam’s maxim is, of course, not an arbitrary rule, nor one that is justified by its success in practice: its point is that unnecessary units in a sign-language mean nothing. Signs that serve one purpose are logically equivalent, and signs that serve none are logically meaningless.</a> <br></br> <div class="outline-text-7" id="text-5.47321-Occam%E2%80%99s-maxim-is,-of-course,-not-an-arbitrary-rule,-nor-one-that-is-justified-by-its-success-in-practice:-its-point-is-that-unnecessary-units-in-a-sign-language-mean-nothing.-Signs-that-serve-one-purpose-are-logically-equivalent,-and-signs-that-serve-none-are-logically-meaningless.">
 <p>
He is ignoring performance considerations, again!
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.4733-Frege-says-that-any-legitimately-constructed-proposition-must-have-a-sense.-And-I-say-that-any-possible-proposition-is-legitimately-constructed,-and,-if-it-has-no-sense,-that-can-only-be-because-we-have-failed-to-give-a-meaning-to-some-of-its-constituents.-(Even-if-we-think-that-we-have-done-so.)-Thus-the-reason-why-%E2%80%98Socrates-is-identical%E2%80%99-says-nothing-is-that-we-have-not-given-any-adjectival-meaning-to-the-word-%E2%80%98identical%E2%80%99.-For-when-it-appears-as-a-sign-for-identity,-it-symbolizes-in-an-entirely-different-way-%E2%80%94-the-signifying-relation-is-a-different-one-%E2%80%94-therefore-the-symbols-also-are-entirely-different-in-the-two-cases:-the-two-symbols-have-only-the-sign-in-common,-and-that-is-an-accident."></a> <a href="#5.4733-Frege-says-that-any-legitimately-constructed-proposition-must-have-a-sense.-And-I-say-that-any-possible-proposition-is-legitimately-constructed,-and,-if-it-has-no-sense,-that-can-only-be-because-we-have-failed-to-give-a-meaning-to-some-of-its-constituents.-(Even-if-we-think-that-we-have-done-so.)-Thus-the-reason-why-%E2%80%98Socrates-is-identical%E2%80%99-says-nothing-is-that-we-have-not-given-any-adjectival-meaning-to-the-word-%E2%80%98identical%E2%80%99.-For-when-it-appears-as-a-sign-for-identity,-it-symbolizes-in-an-entirely-different-way-%E2%80%94-the-signifying-relation-is-a-different-one-%E2%80%94-therefore-the-symbols-also-are-entirely-different-in-the-two-cases:-the-two-symbols-have-only-the-sign-in-common,-and-that-is-an-accident.">5.4733 Frege says that any legitimately constructed proposition must have a sense. And I say that any possible proposition is legitimately constructed, and, if it has no sense, that can only be because we have failed to give a meaning to some of its constituents. (Even if we think that we have done so.) Thus the reason why ‘Socrates is identical’ says nothing is that we have not given any adjectival meaning to the word ‘identical’. For when it appears as a sign for identity, it symbolizes in an entirely different way — the signifying relation is a different one — therefore the symbols also are entirely different in the two cases: the two symbols have only the sign in common, and that is an accident.</a> <br></br> <div class="outline-text-6" id="text-5.4733-Frege-says-that-any-legitimately-constructed-proposition-must-have-a-sense.-And-I-say-that-any-possible-proposition-is-legitimately-constructed,-and,-if-it-has-no-sense,-that-can-only-be-because-we-have-failed-to-give-a-meaning-to-some-of-its-constituents.-(Even-if-we-think-that-we-have-done-so.)-Thus-the-reason-why-%E2%80%98Socrates-is-identical%E2%80%99-says-nothing-is-that-we-have-not-given-any-adjectival-meaning-to-the-word-%E2%80%98identical%E2%80%99.-For-when-it-appears-as-a-sign-for-identity,-it-symbolizes-in-an-entirely-different-way-%E2%80%94-the-signifying-relation-is-a-different-one-%E2%80%94-therefore-the-symbols-also-are-entirely-different-in-the-two-cases:-the-two-symbols-have-only-the-sign-in-common,-and-that-is-an-accident.">
 <p>
An example of confusion, I guess?
One of "identical" is a symbol that has to resolve to something.
</p>

 <p>
The other, I guess, has to be, in Wittgenstein's words, an "operation", that maps Socrates to Socrates, or Socrates to the value of Socrates.
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.474-The-number-of-fundamental-operations-that-are-necessary-depends-solely-on-our-notation."></a> <a href="#5.474-The-number-of-fundamental-operations-that-are-necessary-depends-solely-on-our-notation.">5.474 The number of fundamental operations that are necessary depends solely on our notation.</a> <br></br> <div class="outline-text-5" id="text-5.474-The-number-of-fundamental-operations-that-are-necessary-depends-solely-on-our-notation.">
 <p>
I guess, the number cannot be 0.
But with XOR we should be able to do anything.
</p>
</div>
</li>

 <li> <a id="5.475-All-that-is-required-is-that-we-should-construct-a-system-of-signs-with-a-particular-number-of-dimensions-%E2%80%94-with-a-particular-mathematical-multiplicity."></a> <a href="#5.475-All-that-is-required-is-that-we-should-construct-a-system-of-signs-with-a-particular-number-of-dimensions-%E2%80%94-with-a-particular-mathematical-multiplicity.">5.475 All that is required is that we should construct a system of signs with a particular number of dimensions — with a particular mathematical multiplicity.</a> <br></br> <div class="outline-text-5" id="text-5.475-All-that-is-required-is-that-we-should-construct-a-system-of-signs-with-a-particular-number-of-dimensions-%E2%80%94-with-a-particular-mathematical-multiplicity.">
 <p>
Unclear.
Does by "multiplicity" he mean "being able to appear as argument in a proposition"?
</p>
</div>
</li>

 <li> <a id="5.476-It-is-clear-that-this-is-not-a-question-of-a-number-of-primitive-ideas-that-have-to-be-signified,-but-rather-of-the-expression-of-a-rule."></a> <a href="#5.476-It-is-clear-that-this-is-not-a-question-of-a-number-of-primitive-ideas-that-have-to-be-signified,-but-rather-of-the-expression-of-a-rule.">5.476 It is clear that this is not a question of a number of primitive ideas that have to be signified, but rather of the expression of a rule.</a> <br></br> <div class="outline-text-5" id="text-5.476-It-is-clear-that-this-is-not-a-question-of-a-number-of-primitive-ideas-that-have-to-be-signified,-but-rather-of-the-expression-of-a-rule.">
 <p>
A question of language design, essentially.
</p>
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-5.5-Every-truth-function-is-a-result-of-successive-applications-to-elementary-propositions-of-the-operation-%E2%80%98(-----T)(-%CE%BE-,-.-.-.-.)%E2%80%99.-This-operation-negates-all-the-propositions-in-the-right-hand-pair-of-brackets,-and-I-call-it-the-negation-of-those-propositions." class="outline-3">
 <h3 id="5.5-Every-truth-function-is-a-result-of-successive-applications-to-elementary-propositions-of-the-operation-%E2%80%98(-----T)(-%CE%BE-,-.-.-.-.)%E2%80%99.-This-operation-negates-all-the-propositions-in-the-right-hand-pair-of-brackets,-and-I-call-it-the-negation-of-those-propositions."> <span class="section-number-3">5.5.</span>  <a href="#5.5-Every-truth-function-is-a-result-of-successive-applications-to-elementary-propositions-of-the-operation-%E2%80%98(-----T)(-%CE%BE-,-.-.-.-.)%E2%80%99.-This-operation-negates-all-the-propositions-in-the-right-hand-pair-of-brackets,-and-I-call-it-the-negation-of-those-propositions.">5.5 Every truth-function is a result of successive applications to elementary propositions of the operation ‘(–—T)( ξ , . . . .)’. This operation negates all the propositions in the right-hand pair of brackets, and I call it the negation of those propositions.</a></h3>
 <div class="outline-text-3" id="text-5.5-Every-truth-function-is-a-result-of-successive-applications-to-elementary-propositions-of-the-operation-%E2%80%98(-----T)(-%CE%BE-,-.-.-.-.)%E2%80%99.-This-operation-negates-all-the-propositions-in-the-right-hand-pair-of-brackets,-and-I-call-it-the-negation-of-those-propositions.">
 <p>
Is he actually trying to introduce the Horn rule here?
</p>

 <p>
Either any of the  <code>(not sub-proposition)</code> is T, or the proposition is T.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.501-When-a-bracketed-expression-has-propositions-as-its-terms-%E2%80%94-and-the-order-of-the-terms-inside-the-brackets-is-indifferent-%E2%80%94-then-I-indicate-it-by-a-sign-of-the-form-%E2%80%98(%CE%BE)%E2%80%99.-%E2%80%98-%CE%BE%E2%80%99-is-a-variable-whose-values-are-terms-of-the-bracketed-expression-and-the-bar-over-the-variable-%5Bnot-implemented%5D-indicates-that-it-is-the-representative-of-all-its-values-in-the-brackets.-(E.g.-if-%CE%BE-has-the-three-values-P,-Q,-R,-then-(%CE%BE)-=-(P,-Q,-R).)-What-the-values-of-the-variable-are-is-something-that-is-stipulated.-The-stipulation-is-a-description-of-the-propositions-that-have-the-variable-as-their-representative.-How-the-description-of-the-terms-of-the-bracketed-expression-is-produced-is-not-essential.-We-can-distinguish-three-kinds-of-description:-1.-direct-enumeration,-in-which-case-we-can-simply-substitute-for-the-variable-the-constants-that-are-its-values;-2.-giving-a-function-fx-whose-values-for-all-values-of-x-are-the-propositions-to-be-described;-3.-giving-a-formal-law-that-governs-the-construction-of-the-propositions,-in-which-case-the-bracketed-expression-has-as-its-members-all-the-terms-of-a-series-of-forms."></a> <a href="#5.501-When-a-bracketed-expression-has-propositions-as-its-terms-%E2%80%94-and-the-order-of-the-terms-inside-the-brackets-is-indifferent-%E2%80%94-then-I-indicate-it-by-a-sign-of-the-form-%E2%80%98(%CE%BE)%E2%80%99.-%E2%80%98-%CE%BE%E2%80%99-is-a-variable-whose-values-are-terms-of-the-bracketed-expression-and-the-bar-over-the-variable-%5Bnot-implemented%5D-indicates-that-it-is-the-representative-of-all-its-values-in-the-brackets.-(E.g.-if-%CE%BE-has-the-three-values-P,-Q,-R,-then-(%CE%BE)-=-(P,-Q,-R).)-What-the-values-of-the-variable-are-is-something-that-is-stipulated.-The-stipulation-is-a-description-of-the-propositions-that-have-the-variable-as-their-representative.-How-the-description-of-the-terms-of-the-bracketed-expression-is-produced-is-not-essential.-We-can-distinguish-three-kinds-of-description:-1.-direct-enumeration,-in-which-case-we-can-simply-substitute-for-the-variable-the-constants-that-are-its-values;-2.-giving-a-function-fx-whose-values-for-all-values-of-x-are-the-propositions-to-be-described;-3.-giving-a-formal-law-that-governs-the-construction-of-the-propositions,-in-which-case-the-bracketed-expression-has-as-its-members-all-the-terms-of-a-series-of-forms.">5.501 When a bracketed expression has propositions as its terms — and the order of the terms inside the brackets is indifferent — then I indicate it by a sign of the form ‘(ξ)’. ‘ ξ’ is a variable whose values are terms of the bracketed expression and the bar over the variable [not implemented] indicates that it is the representative of all its values in the brackets. (E.g. if ξ has the three values P, Q, R, then (ξ) = (P, Q, R).) What the values of the variable are is something that is stipulated. The stipulation is a description of the propositions that have the variable as their representative. How the description of the terms of the bracketed expression is produced is not essential. We can distinguish three kinds of description: 1. direct enumeration, in which case we can simply substitute for the variable the constants that are its values; 2. giving a function fx whose values for all values of x are the propositions to be described; 3. giving a formal law that governs the construction of the propositions, in which case the bracketed expression has as its members all the terms of a series of forms.</a> <br></br> <div class="outline-text-5" id="text-5.501-When-a-bracketed-expression-has-propositions-as-its-terms-%E2%80%94-and-the-order-of-the-terms-inside-the-brackets-is-indifferent-%E2%80%94-then-I-indicate-it-by-a-sign-of-the-form-%E2%80%98(%CE%BE)%E2%80%99.-%E2%80%98-%CE%BE%E2%80%99-is-a-variable-whose-values-are-terms-of-the-bracketed-expression-and-the-bar-over-the-variable-%5Bnot-implemented%5D-indicates-that-it-is-the-representative-of-all-its-values-in-the-brackets.-(E.g.-if-%CE%BE-has-the-three-values-P,-Q,-R,-then-(%CE%BE)-=-(P,-Q,-R).)-What-the-values-of-the-variable-are-is-something-that-is-stipulated.-The-stipulation-is-a-description-of-the-propositions-that-have-the-variable-as-their-representative.-How-the-description-of-the-terms-of-the-bracketed-expression-is-produced-is-not-essential.-We-can-distinguish-three-kinds-of-description:-1.-direct-enumeration,-in-which-case-we-can-simply-substitute-for-the-variable-the-constants-that-are-its-values;-2.-giving-a-function-fx-whose-values-for-all-values-of-x-are-the-propositions-to-be-described;-3.-giving-a-formal-law-that-governs-the-construction-of-the-propositions,-in-which-case-the-bracketed-expression-has-as-its-members-all-the-terms-of-a-series-of-forms.">
 <p>
So now Wittgenstein is trying to introduce list processing.
</p>

 <ol class="org-ol"> <li>is ordinary lists</li>
 <li>is eager streams</li>
 <li>is lazy streams</li>
</ol> <p>
Looks plausible?
What about those ugly uncomputable sequences?
</p>
</div>
</li>

 <li> <a id="5.502-So-instead-of-%E2%80%98(-----T)(-%CE%BE-,-.-.-.-.)%E2%80%99,-I-write-%E2%80%98N((%CE%BE))%E2%80%99.-N((%CE%BE))-is-the-negation-of-all-the-values-of-the-propositional-variable-%CE%BE-."></a> <a href="#5.502-So-instead-of-%E2%80%98(-----T)(-%CE%BE-,-.-.-.-.)%E2%80%99,-I-write-%E2%80%98N((%CE%BE))%E2%80%99.-N((%CE%BE))-is-the-negation-of-all-the-values-of-the-propositional-variable-%CE%BE-.">5.502 So instead of ‘(–—T)( ξ , . . . .)’, I write ‘N((ξ))’. N((ξ)) is the negation of all the values of the propositional variable ξ .</a> <br></br> <div class="outline-text-5" id="text-5.502-So-instead-of-%E2%80%98(-----T)(-%CE%BE-,-.-.-.-.)%E2%80%99,-I-write-%E2%80%98N((%CE%BE))%E2%80%99.-N((%CE%BE))-is-the-negation-of-all-the-values-of-the-propositional-variable-%CE%BE-.">
 <p>
That's just notation?
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.503-It-is-obvious-that-we-can-easily-express-how-propositions-may-be-constructed-with-this-operation,-and-how-they-may-not-be-constructed-with-it;-so-it-must-be-possible-to-find-an-exact-expression-for-this."></a> <a href="#5.503-It-is-obvious-that-we-can-easily-express-how-propositions-may-be-constructed-with-this-operation,-and-how-they-may-not-be-constructed-with-it;-so-it-must-be-possible-to-find-an-exact-expression-for-this.">5.503 It is obvious that we can easily express how propositions may be constructed with this operation, and how they may not be constructed with it; so it must be possible to find an exact expression for this.</a> <br></br> <div class="outline-text-6" id="text-5.503-It-is-obvious-that-we-can-easily-express-how-propositions-may-be-constructed-with-this-operation,-and-how-they-may-not-be-constructed-with-it;-so-it-must-be-possible-to-find-an-exact-expression-for-this.">
 <p>
So he's trying to find an exact expression for this "list negation operation"?
</p>
</div>
</li>
</ol></li>
</ol> <div id="outline-container-5.51-If-(%CE%BE)-has-only-one-value,-then-N(-%CE%BE-)-=-~p-(not-p);-if-it-has-two-values,-then-N((%CE%BE))-=-~p.~q-(neither-p-nor-q)." class="outline-4">
 <h4 id="5.51-If-(%CE%BE)-has-only-one-value,-then-N(-%CE%BE-)-=-~p-(not-p);-if-it-has-two-values,-then-N((%CE%BE))-=-~p.~q-(neither-p-nor-q)."> <span class="section-number-4">5.5.1.</span>  <a href="#5.51-If-(%CE%BE)-has-only-one-value,-then-N(-%CE%BE-)-=-~p-(not-p);-if-it-has-two-values,-then-N((%CE%BE))-=-~p.~q-(neither-p-nor-q).">5.51 If (ξ) has only one value, then N( ξ ) = ~p (not p); if it has two values, then N((ξ)) = ~p.~q (neither p nor q).</a></h4>
 <div class="outline-text-4" id="text-5.51-If-(%CE%BE)-has-only-one-value,-then-N(-%CE%BE-)-=-~p-(not-p);-if-it-has-two-values,-then-N((%CE%BE))-=-~p.~q-(neither-p-nor-q).">
 <p>
Again, he seems to be writing an explanation of the Horn rule.
See  <a href="https://en.wikipedia.org/wiki/Horn_clause">https://en.wikipedia.org/wiki/Horn_clause</a>
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.511-How-can-logic-%E2%80%94-all-embracing-logic,-which-mirrors-the-world-%E2%80%94-use-such-peculiar-crotchets-and-contrivances?-Only-because-they-are-all-connected-with-one-another-in-an-infinitely-fine-network,-the-great-mirror."></a> <a href="#5.511-How-can-logic-%E2%80%94-all-embracing-logic,-which-mirrors-the-world-%E2%80%94-use-such-peculiar-crotchets-and-contrivances?-Only-because-they-are-all-connected-with-one-another-in-an-infinitely-fine-network,-the-great-mirror.">5.511 How can logic — all-embracing logic, which mirrors the world — use such peculiar crotchets and contrivances? Only because they are all connected with one another in an infinitely fine network, the great mirror.</a> <br></br> <div class="outline-text-5" id="text-5.511-How-can-logic-%E2%80%94-all-embracing-logic,-which-mirrors-the-world-%E2%80%94-use-such-peculiar-crotchets-and-contrivances?-Only-because-they-are-all-connected-with-one-another-in-an-infinitely-fine-network,-the-great-mirror.">
 <p>
Emotional clause.
I think that it is not "the world" that is using crotchets and contrivances, it is our human brain, especially its analytic part (that is not unlike a turing machine).
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.512-%E2%80%98~p%E2%80%99-is-true-if-%E2%80%98p%E2%80%99-is-false.-Therefore,-in-the-proposition-%E2%80%98~p%E2%80%99,-when-it-is-true,-%E2%80%98p%E2%80%99-is-a-false-proposition.-How-then-can-the-stroke-%E2%80%98~%E2%80%99-make-it-agree-with-reality?-But-in-%E2%80%98~p%E2%80%99-it-is-not-%E2%80%98~%E2%80%99-that-negates;-it-is-rather-what-is-common-to-all-the-signs-of-this-notation-that-negate-p.-That-is-to-say-the-common-rule-that-governs-the-construction-of-%E2%80%98~p%E2%80%99,-%E2%80%98~~~p%E2%80%99,-%E2%80%98~p-v-~p%E2%80%99,-%E2%80%98~p.~p%E2%80%99,-etc.-etc.-(ad-inf.).-And-this-common-factor-mirrors-negation."></a> <a href="#5.512-%E2%80%98~p%E2%80%99-is-true-if-%E2%80%98p%E2%80%99-is-false.-Therefore,-in-the-proposition-%E2%80%98~p%E2%80%99,-when-it-is-true,-%E2%80%98p%E2%80%99-is-a-false-proposition.-How-then-can-the-stroke-%E2%80%98~%E2%80%99-make-it-agree-with-reality?-But-in-%E2%80%98~p%E2%80%99-it-is-not-%E2%80%98~%E2%80%99-that-negates;-it-is-rather-what-is-common-to-all-the-signs-of-this-notation-that-negate-p.-That-is-to-say-the-common-rule-that-governs-the-construction-of-%E2%80%98~p%E2%80%99,-%E2%80%98~~~p%E2%80%99,-%E2%80%98~p-v-~p%E2%80%99,-%E2%80%98~p.~p%E2%80%99,-etc.-etc.-(ad-inf.).-And-this-common-factor-mirrors-negation.">5.512 ‘~p’ is true if ‘p’ is false. Therefore, in the proposition ‘~p’, when it is true, ‘p’ is a false proposition. How then can the stroke ‘~’ make it agree with reality? But in ‘~p’ it is not ‘~’ that negates; it is rather what is common to all the signs of this notation that negate p. That is to say the common rule that governs the construction of ‘~p’, ‘~~~p’, ‘~p v ~p’, ‘~p.~p’, etc. etc. (ad inf.). And this common factor mirrors negation.</a> <br></br> <div class="outline-text-6" id="text-5.512-%E2%80%98~p%E2%80%99-is-true-if-%E2%80%98p%E2%80%99-is-false.-Therefore,-in-the-proposition-%E2%80%98~p%E2%80%99,-when-it-is-true,-%E2%80%98p%E2%80%99-is-a-false-proposition.-How-then-can-the-stroke-%E2%80%98~%E2%80%99-make-it-agree-with-reality?-But-in-%E2%80%98~p%E2%80%99-it-is-not-%E2%80%98~%E2%80%99-that-negates;-it-is-rather-what-is-common-to-all-the-signs-of-this-notation-that-negate-p.-That-is-to-say-the-common-rule-that-governs-the-construction-of-%E2%80%98~p%E2%80%99,-%E2%80%98~~~p%E2%80%99,-%E2%80%98~p-v-~p%E2%80%99,-%E2%80%98~p.~p%E2%80%99,-etc.-etc.-(ad-inf.).-And-this-common-factor-mirrors-negation.">
 <p>
Hm… I think there is a confusion between the universal rules and the concrete values.
</p>

 <p>
He certainly struggles with understanding something here.
</p>

 <p>
We cannot just substitute the value of p into the expression.
We actually need to evaluate  <code>(not p)</code> here.
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.513-We-might-say-that-what-is-common-to-all-symbols-that-affirm-both-p-and-q-is-the-proposition-%E2%80%98p.q%E2%80%99;-and-that-what-is-common-to-all-symbols-that-affirm-either-p-or-q-is-the-proposition-%E2%80%98p-v-q%E2%80%99.-And-similarly-we-can-say-that-two-propositions-are-opposed-to-one-another-if-they-have-nothing-in-common-with-one-another,-and-that-every-proposition-has-only-one-negative,-since-there-is-only-one-proposition-that-lies-completely-outside-it.-Thus-in-Russell%E2%80%99s-notation-too-it-is-manifest-that-%E2%80%98q:p-v-~p%E2%80%99-says-the-same-thing-as-%E2%80%98q%E2%80%99,-that-%E2%80%98p-v-~p%E2%80%99-says-nothing."></a> <a href="#5.513-We-might-say-that-what-is-common-to-all-symbols-that-affirm-both-p-and-q-is-the-proposition-%E2%80%98p.q%E2%80%99;-and-that-what-is-common-to-all-symbols-that-affirm-either-p-or-q-is-the-proposition-%E2%80%98p-v-q%E2%80%99.-And-similarly-we-can-say-that-two-propositions-are-opposed-to-one-another-if-they-have-nothing-in-common-with-one-another,-and-that-every-proposition-has-only-one-negative,-since-there-is-only-one-proposition-that-lies-completely-outside-it.-Thus-in-Russell%E2%80%99s-notation-too-it-is-manifest-that-%E2%80%98q:p-v-~p%E2%80%99-says-the-same-thing-as-%E2%80%98q%E2%80%99,-that-%E2%80%98p-v-~p%E2%80%99-says-nothing.">5.513 We might say that what is common to all symbols that affirm both p and q is the proposition ‘p.q’; and that what is common to all symbols that affirm either p or q is the proposition ‘p v q’. And similarly we can say that two propositions are opposed to one another if they have nothing in common with one another, and that every proposition has only one negative, since there is only one proposition that lies completely outside it. Thus in Russell’s notation too it is manifest that ‘q:p v ~p’ says the same thing as ‘q’, that ‘p v ~p’ says nothing.</a> <br></br> <div class="outline-text-5" id="text-5.513-We-might-say-that-what-is-common-to-all-symbols-that-affirm-both-p-and-q-is-the-proposition-%E2%80%98p.q%E2%80%99;-and-that-what-is-common-to-all-symbols-that-affirm-either-p-or-q-is-the-proposition-%E2%80%98p-v-q%E2%80%99.-And-similarly-we-can-say-that-two-propositions-are-opposed-to-one-another-if-they-have-nothing-in-common-with-one-another,-and-that-every-proposition-has-only-one-negative,-since-there-is-only-one-proposition-that-lies-completely-outside-it.-Thus-in-Russell%E2%80%99s-notation-too-it-is-manifest-that-%E2%80%98q:p-v-~p%E2%80%99-says-the-same-thing-as-%E2%80%98q%E2%80%99,-that-%E2%80%98p-v-~p%E2%80%99-says-nothing.">
 <p>
This is still speaking about substitution vs evaluation.
And hence, reduction/optimisation in the substitution case.
</p>

 <p>
There should be some way of rewriting each function that returns 1 only when p and q are both 1 using  <code>(and p q)</code>, and never using p or q directly.
</p>

 <p>
Perhaps, this is also an intrduction to the idea of abstraction.
</p>
</div>
</li>

 <li> <a id="5.514-Once-a-notation-has-been-established,-there-will-be-in-it-a-rule-governing-the-construction-of-all-propositions-that-negate-p,-a-rule-governing-the-construction-of-all-propositions-that-affirm-p,-and-a-rule-governing-the-construction-of-all-propositions-that-affirm-p-or-q;-and-so-on.-These-rules-are-equivalent-to-the-symbols;-and-in-them-their-sense-is-mirrored."></a> <a href="#5.514-Once-a-notation-has-been-established,-there-will-be-in-it-a-rule-governing-the-construction-of-all-propositions-that-negate-p,-a-rule-governing-the-construction-of-all-propositions-that-affirm-p,-and-a-rule-governing-the-construction-of-all-propositions-that-affirm-p-or-q;-and-so-on.-These-rules-are-equivalent-to-the-symbols;-and-in-them-their-sense-is-mirrored.">5.514 Once a notation has been established, there will be in it a rule governing the construction of all propositions that negate p, a rule governing the construction of all propositions that affirm p, and a rule governing the construction of all propositions that affirm p or q; and so on. These rules are equivalent to the symbols; and in them their sense is mirrored.</a> <br></br> <div class="outline-text-5" id="text-5.514-Once-a-notation-has-been-established,-there-will-be-in-it-a-rule-governing-the-construction-of-all-propositions-that-negate-p,-a-rule-governing-the-construction-of-all-propositions-that-affirm-p,-and-a-rule-governing-the-construction-of-all-propositions-that-affirm-p-or-q;-and-so-on.-These-rules-are-equivalent-to-the-symbols;-and-in-them-their-sense-is-mirrored.">
 <p>
Equivalent to symbols…
I think, in Scheme-speak it will mean that "rules" (whatever that is) will be indistinguishable from "variables" that can be resolved.
But variables will resolve to values, and rules will resolve to combinations.
</p>
</div>
</li>

 <li> <a id="5.515-It-must-be-manifest-in-our-symbols-that-it-can-only-be-propositions-that-are-combined-with-one-another-by-%E2%80%98v%E2%80%99,-%E2%80%98.%E2%80%99,-etc.-And-this-is-indeed-the-case,-since-the-symbol-in-%E2%80%98p%E2%80%99-and-%E2%80%98q%E2%80%99-itself-presupposes-%E2%80%98v%E2%80%99,-%E2%80%98~%E2%80%99,-etc.-If-the-sign-%E2%80%98p%E2%80%99-in-%E2%80%98p-v-q%E2%80%99-does-not-stand-for-a-complex-sign,-then-it-cannot-have-sense-by-itself:-but-in-that-case-the-signs-%E2%80%98p-v-p%E2%80%99,-%E2%80%98p.p%E2%80%99,-etc.,-which-have-the-same-sense-as-p,-must-also-lack-sense.-But-if-%E2%80%98p-v-p%E2%80%99-has-no-sense,-then-%E2%80%98p-v-q%E2%80%99-cannot-have-a-sense-either."></a> <a href="#5.515-It-must-be-manifest-in-our-symbols-that-it-can-only-be-propositions-that-are-combined-with-one-another-by-%E2%80%98v%E2%80%99,-%E2%80%98.%E2%80%99,-etc.-And-this-is-indeed-the-case,-since-the-symbol-in-%E2%80%98p%E2%80%99-and-%E2%80%98q%E2%80%99-itself-presupposes-%E2%80%98v%E2%80%99,-%E2%80%98~%E2%80%99,-etc.-If-the-sign-%E2%80%98p%E2%80%99-in-%E2%80%98p-v-q%E2%80%99-does-not-stand-for-a-complex-sign,-then-it-cannot-have-sense-by-itself:-but-in-that-case-the-signs-%E2%80%98p-v-p%E2%80%99,-%E2%80%98p.p%E2%80%99,-etc.,-which-have-the-same-sense-as-p,-must-also-lack-sense.-But-if-%E2%80%98p-v-p%E2%80%99-has-no-sense,-then-%E2%80%98p-v-q%E2%80%99-cannot-have-a-sense-either.">5.515 It must be manifest in our symbols that it can only be propositions that are combined with one another by ‘v’, ‘.’, etc. And this is indeed the case, since the symbol in ‘p’ and ‘q’ itself presupposes ‘v’, ‘~’, etc. If the sign ‘p’ in ‘p v q’ does not stand for a complex sign, then it cannot have sense by itself: but in that case the signs ‘p v p’, ‘p.p’, etc., which have the same sense as p, must also lack sense. But if ‘p v p’ has no sense, then ‘p v q’ cannot have a sense either.</a> <br></br> <div class="outline-text-5" id="text-5.515-It-must-be-manifest-in-our-symbols-that-it-can-only-be-propositions-that-are-combined-with-one-another-by-%E2%80%98v%E2%80%99,-%E2%80%98.%E2%80%99,-etc.-And-this-is-indeed-the-case,-since-the-symbol-in-%E2%80%98p%E2%80%99-and-%E2%80%98q%E2%80%99-itself-presupposes-%E2%80%98v%E2%80%99,-%E2%80%98~%E2%80%99,-etc.-If-the-sign-%E2%80%98p%E2%80%99-in-%E2%80%98p-v-q%E2%80%99-does-not-stand-for-a-complex-sign,-then-it-cannot-have-sense-by-itself:-but-in-that-case-the-signs-%E2%80%98p-v-p%E2%80%99,-%E2%80%98p.p%E2%80%99,-etc.,-which-have-the-same-sense-as-p,-must-also-lack-sense.-But-if-%E2%80%98p-v-p%E2%80%99-has-no-sense,-then-%E2%80%98p-v-q%E2%80%99-cannot-have-a-sense-either.">
 <p>
I think that what he is trying to say here is that logical operations should be closed, that is should be able to be combined indefinitely.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.5151-Must-the-sign-of-a-negative-proposition-be-constructed-with-that-of-the-positive-proposition?-Why-should-it-not-be-possible-to-express-a-negative-proposition-by-means-of-a-negative-fact?-(E.g.-suppose-that-%E2%80%98a%E2%80%99-does-not-stand-in-a-certain-relation-to-%E2%80%98b%E2%80%99;-then-this-might-be-used-to-say-that-aRb-was-not-the-case.)-But-really-even-in-this-case-the-negative-proposition-is-constructed-by-an-indirect-use-of-the-positive.-The-positive-proposition-necessarily-presupposes-the-existence-of-the-negative-proposition-and-vice-versa."></a> <a href="#5.5151-Must-the-sign-of-a-negative-proposition-be-constructed-with-that-of-the-positive-proposition?-Why-should-it-not-be-possible-to-express-a-negative-proposition-by-means-of-a-negative-fact?-(E.g.-suppose-that-%E2%80%98a%E2%80%99-does-not-stand-in-a-certain-relation-to-%E2%80%98b%E2%80%99;-then-this-might-be-used-to-say-that-aRb-was-not-the-case.)-But-really-even-in-this-case-the-negative-proposition-is-constructed-by-an-indirect-use-of-the-positive.-The-positive-proposition-necessarily-presupposes-the-existence-of-the-negative-proposition-and-vice-versa.">5.5151 Must the sign of a negative proposition be constructed with that of the positive proposition? Why should it not be possible to express a negative proposition by means of a negative fact? (E.g. suppose that ‘a’ does not stand in a certain relation to ‘b’; then this might be used to say that aRb was not the case.) But really even in this case the negative proposition is constructed by an indirect use of the positive. The positive proposition necessarily presupposes the existence of the negative proposition and vice versa.</a> <br></br> <div class="outline-text-6" id="text-5.5151-Must-the-sign-of-a-negative-proposition-be-constructed-with-that-of-the-positive-proposition?-Why-should-it-not-be-possible-to-express-a-negative-proposition-by-means-of-a-negative-fact?-(E.g.-suppose-that-%E2%80%98a%E2%80%99-does-not-stand-in-a-certain-relation-to-%E2%80%98b%E2%80%99;-then-this-might-be-used-to-say-that-aRb-was-not-the-case.)-But-really-even-in-this-case-the-negative-proposition-is-constructed-by-an-indirect-use-of-the-positive.-The-positive-proposition-necessarily-presupposes-the-existence-of-the-negative-proposition-and-vice-versa.">
 <p>
So, bits can be flipped, just that.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-5.52-If-%CE%BE-has-as-its-values-all-the-values-of-a-function-fx-for-all-values-of-x,-then-N((%CE%BE))-=-~(%E2%88%83x).fx." class="outline-4">
 <h4 id="5.52-If-%CE%BE-has-as-its-values-all-the-values-of-a-function-fx-for-all-values-of-x,-then-N((%CE%BE))-=-~(%E2%88%83x).fx."> <span class="section-number-4">5.5.2.</span>  <a href="#5.52-If-%CE%BE-has-as-its-values-all-the-values-of-a-function-fx-for-all-values-of-x,-then-N((%CE%BE))-=-~(%E2%88%83x).fx.">5.52 If ξ has as its values all the values of a function fx for all values of x, then N((ξ)) = ~(∃x).fx.</a></h4>
 <div class="outline-text-4" id="text-5.52-If-%CE%BE-has-as-its-values-all-the-values-of-a-function-fx-for-all-values-of-x,-then-N((%CE%BE))-=-~(%E2%88%83x).fx.">
</div>



 <ol class="org-ol"> <li> <a id="5.521-I-dissociate-the-concept-~all~-from-truth-functions.-Frege-and-Russell-introduced-generality-in-association-with-logical-product-or-logical-sum.-This-made-it-difficult-to-understand-the-propositions-%E2%80%98(%E2%88%83x).fx%E2%80%99-and-%E2%80%98(x).fx%E2%80%99,-in-which-both-ideas-are-embedded."></a> <a href="#5.521-I-dissociate-the-concept-~all~-from-truth-functions.-Frege-and-Russell-introduced-generality-in-association-with-logical-product-or-logical-sum.-This-made-it-difficult-to-understand-the-propositions-%E2%80%98(%E2%88%83x).fx%E2%80%99-and-%E2%80%98(x).fx%E2%80%99,-in-which-both-ideas-are-embedded.">5.521 I dissociate the concept  <code>all</code> from truth-functions. Frege and Russell introduced generality in association with logical product or logical sum. This made it difficult to understand the propositions ‘(∃x).fx’ and ‘(x).fx’, in which both ideas are embedded.</a> <br></br> <div class="outline-text-5" id="text-5.521-I-dissociate-the-concept-~all~-from-truth-functions.-Frege-and-Russell-introduced-generality-in-association-with-logical-product-or-logical-sum.-This-made-it-difficult-to-understand-the-propositions-%E2%80%98(%E2%88%83x).fx%E2%80%99-and-%E2%80%98(x).fx%E2%80%99,-in-which-both-ideas-are-embedded.">
 <p>
For him, generality is not a part of the logical system.
</p>
</div>
</li>

 <li> <a id="5.522-What-is-peculiar-to-the-generality-sign-is-first,-that-it-indicates-a-logical-prototype,-and-secondly,-that-it-gives-prominence-to-constants."></a> <a href="#5.522-What-is-peculiar-to-the-generality-sign-is-first,-that-it-indicates-a-logical-prototype,-and-secondly,-that-it-gives-prominence-to-constants.">5.522 What is peculiar to the generality-sign is first, that it indicates a logical prototype, and secondly, that it gives prominence to constants.</a> <br></br> <div class="outline-text-5" id="text-5.522-What-is-peculiar-to-the-generality-sign-is-first,-that-it-indicates-a-logical-prototype,-and-secondly,-that-it-gives-prominence-to-constants.">
 <p>
What is a "logical prototype"?
Why would it emphasise constants?
</p>
</div>
</li>

 <li> <a id="5.523-The-generality-sign-occurs-as-an-argument."></a> <a href="#5.523-The-generality-sign-occurs-as-an-argument.">5.523 The generality-sign occurs as an argument.</a> <br></br> <div class="outline-text-5" id="text-5.523-The-generality-sign-occurs-as-an-argument.">
 <p>
To a function?
Or in a logical derivation?
</p>
</div>
</li>

 <li> <a id="5.524-If-objects-are-given,-then-at-the-same-time-we-are-given-all-objects.-If-elementary-propositions-are-given,-then-at-the-same-time-all-elementary-propositions-are-given."></a> <a href="#5.524-If-objects-are-given,-then-at-the-same-time-we-are-given-all-objects.-If-elementary-propositions-are-given,-then-at-the-same-time-all-elementary-propositions-are-given.">5.524 If objects are given, then at the same time we are given all objects. If elementary propositions are given, then at the same time all elementary propositions are given.</a> <br></br> <div class="outline-text-5" id="text-5.524-If-objects-are-given,-then-at-the-same-time-we-are-given-all-objects.-If-elementary-propositions-are-given,-then-at-the-same-time-all-elementary-propositions-are-given.">
 <p>
That's clear.
Input cannot grow.
</p>
</div>
</li>

 <li> <a id="5.525-It-is-incorrect-to-render-the-proposition-%E2%80%98(%E2%88%83x).fx%E2%80%99-in-the-words,-%E2%80%98fx-is-~possible~%E2%80%99,-as-Russell-does.-The-certainty,-possibility,-or-impossibility-of-a-situation-is-not-expressed-by-a-proposition,-but-by-an-expression%E2%80%99s-being-a-tautology,-a-proposition-with-sense,-or-a-contradiction.-The-precedent-to-which-we-are-constantly-inclined-to-appeal-must-reside-in-the-symbol-itself."></a> <a href="#5.525-It-is-incorrect-to-render-the-proposition-%E2%80%98(%E2%88%83x).fx%E2%80%99-in-the-words,-%E2%80%98fx-is-~possible~%E2%80%99,-as-Russell-does.-The-certainty,-possibility,-or-impossibility-of-a-situation-is-not-expressed-by-a-proposition,-but-by-an-expression%E2%80%99s-being-a-tautology,-a-proposition-with-sense,-or-a-contradiction.-The-precedent-to-which-we-are-constantly-inclined-to-appeal-must-reside-in-the-symbol-itself.">5.525 It is incorrect to render the proposition ‘(∃x).fx’ in the words, ‘fx is ~possible~’, as Russell does. The certainty, possibility, or impossibility of a situation is not expressed by a proposition, but by an expression’s being a tautology, a proposition with sense, or a contradiction. The precedent to which we are constantly inclined to appeal must reside in the symbol itself.</a> <br></br> <div class="outline-text-5" id="text-5.525-It-is-incorrect-to-render-the-proposition-%E2%80%98(%E2%88%83x).fx%E2%80%99-in-the-words,-%E2%80%98fx-is-~possible~%E2%80%99,-as-Russell-does.-The-certainty,-possibility,-or-impossibility-of-a-situation-is-not-expressed-by-a-proposition,-but-by-an-expression%E2%80%99s-being-a-tautology,-a-proposition-with-sense,-or-a-contradiction.-The-precedent-to-which-we-are-constantly-inclined-to-appeal-must-reside-in-the-symbol-itself.">
 <p>
There is something important here that I do not understand…
So, instead of "X is possible", he wants to say "X has sense"?
That is, instead of "there is some argument on which X gives a correct answer", he wants universality over input?
</p>
</div>
</li>

 <li> <a id="5.526-We-can-describe-the-world-completely-by-means-of-fully-generalized-propositions,-i.e.-without-first-correlating-any-name-with-a-particular-object.-Then,-in-order-to-arrive-at-the-customary-mode-of-expression,-we-simply-need-to-add,-after-an-expression-like,-%E2%80%98There-is-one-and-only-one-x-such-that-.-.-.%E2%80%99,-the-words,-%E2%80%98and-that-x-is-a%E2%80%99."></a> <a href="#5.526-We-can-describe-the-world-completely-by-means-of-fully-generalized-propositions,-i.e.-without-first-correlating-any-name-with-a-particular-object.-Then,-in-order-to-arrive-at-the-customary-mode-of-expression,-we-simply-need-to-add,-after-an-expression-like,-%E2%80%98There-is-one-and-only-one-x-such-that-.-.-.%E2%80%99,-the-words,-%E2%80%98and-that-x-is-a%E2%80%99.">5.526 We can describe the world completely by means of fully generalized propositions, i.e. without first correlating any name with a particular object. Then, in order to arrive at the customary mode of expression, we simply need to add, after an expression like, ‘There is one and only one x such that . . .’, the words, ‘and that x is a’.</a> <br></br> <div class="outline-text-5" id="text-5.526-We-can-describe-the-world-completely-by-means-of-fully-generalized-propositions,-i.e.-without-first-correlating-any-name-with-a-particular-object.-Then,-in-order-to-arrive-at-the-customary-mode-of-expression,-we-simply-need-to-add,-after-an-expression-like,-%E2%80%98There-is-one-and-only-one-x-such-that-.-.-.%E2%80%99,-the-words,-%E2%80%98and-that-x-is-a%E2%80%99.">
 <p>
So, still, he insists that the logical system should be complete.
Then substituting the initial condition, we should get the actual trajectory in the state space.
</p>

 <p>
I think that later logicians prove this to be impossible.
But for a closed world, let it be.
</p>

 <p>
Still, this reminds me about the fact that we can do some fun stuff with no data, only programming the machine with a tiny seed.
Mandelbrot and stuff.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.5261-A-fully-generalized-proposition,-like-every-other-proposition,-is-composite.-(This-is-shown-by-the-fact-that-in-%E2%80%98(%E2%88%83x,%CF%86).%CF%86x%E2%80%99-we-have-to-mention-%E2%80%98-%CF%86-%E2%80%99-and-%E2%80%98x%E2%80%99-separately.-They-both,-independently,-stand-in-signifying-relations-to-the-world,-just-as-is-the-case-in-ungeneralized-propositions.)-It-is-a-mark-of-a-composite-symbol-that-it-has-something-in-common-with-other-symbols."></a> <a href="#5.5261-A-fully-generalized-proposition,-like-every-other-proposition,-is-composite.-(This-is-shown-by-the-fact-that-in-%E2%80%98(%E2%88%83x,%CF%86).%CF%86x%E2%80%99-we-have-to-mention-%E2%80%98-%CF%86-%E2%80%99-and-%E2%80%98x%E2%80%99-separately.-They-both,-independently,-stand-in-signifying-relations-to-the-world,-just-as-is-the-case-in-ungeneralized-propositions.)-It-is-a-mark-of-a-composite-symbol-that-it-has-something-in-common-with-other-symbols.">5.5261 A fully generalized proposition, like every other proposition, is composite. (This is shown by the fact that in ‘(∃x,φ).φx’ we have to mention ‘ φ ’ and ‘x’ separately. They both, independently, stand in signifying relations to the world, just as is the case in ungeneralized propositions.) It is a mark of a composite symbol that it has something in common with other symbols.</a> <br></br> <div class="outline-text-6" id="text-5.5261-A-fully-generalized-proposition,-like-every-other-proposition,-is-composite.-(This-is-shown-by-the-fact-that-in-%E2%80%98(%E2%88%83x,%CF%86).%CF%86x%E2%80%99-we-have-to-mention-%E2%80%98-%CF%86-%E2%80%99-and-%E2%80%98x%E2%80%99-separately.-They-both,-independently,-stand-in-signifying-relations-to-the-world,-just-as-is-the-case-in-ungeneralized-propositions.)-It-is-a-mark-of-a-composite-symbol-that-it-has-something-in-common-with-other-symbols.">
 <p>
I guess… unless you have no input…
</p>
</div>
</li>

 <li> <a id="5.5262-The-truth-or-falsity-of-every-proposition-does-make-some-alteration-in-the-general-construction-of-the-world.-And-the-range-that-the-totality-of-elementary-propositions-leaves-open-for-its-construction-is-exactly-the-same-as-that-which-is-delimited-by-entirely-general-propositions.-(If-an-elementary-proposition-is-true,-that-means,-at-any-rate,-one-more-true-elementary-proposition.)"></a> <a href="#5.5262-The-truth-or-falsity-of-every-proposition-does-make-some-alteration-in-the-general-construction-of-the-world.-And-the-range-that-the-totality-of-elementary-propositions-leaves-open-for-its-construction-is-exactly-the-same-as-that-which-is-delimited-by-entirely-general-propositions.-(If-an-elementary-proposition-is-true,-that-means,-at-any-rate,-one-more-true-elementary-proposition.)">5.5262 The truth or falsity of every proposition does make some alteration in the general construction of the world. And the range that the totality of elementary propositions leaves open for its construction is exactly the same as that which is delimited by entirely general propositions. (If an elementary proposition is true, that means, at any rate, one more true elementary proposition.)</a> <br></br> <div class="outline-text-6" id="text-5.5262-The-truth-or-falsity-of-every-proposition-does-make-some-alteration-in-the-general-construction-of-the-world.-And-the-range-that-the-totality-of-elementary-propositions-leaves-open-for-its-construction-is-exactly-the-same-as-that-which-is-delimited-by-entirely-general-propositions.-(If-an-elementary-proposition-is-true,-that-means,-at-any-rate,-one-more-true-elementary-proposition.)">
 <p>
Entirely general propositions… I guess, means propositions that make sense on every input.
The most general… should depend on  <span class="underline">all</span> of the input, I guess?
</p>

 <p>
So one bit changed in the input results in the total change, which can be reflected in the behaviour of the function that uses all of the input.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-5.53-Identity-of-object-I-express-by-identity-of-sign,-and-not-by-using-a-sign-for-identity.-Difference-of-objects-I-express-by-difference-of-signs." class="outline-4">
 <h4 id="5.53-Identity-of-object-I-express-by-identity-of-sign,-and-not-by-using-a-sign-for-identity.-Difference-of-objects-I-express-by-difference-of-signs."> <span class="section-number-4">5.5.3.</span>  <a href="#5.53-Identity-of-object-I-express-by-identity-of-sign,-and-not-by-using-a-sign-for-identity.-Difference-of-objects-I-express-by-difference-of-signs.">5.53 Identity of object I express by identity of sign, and not by using a sign for identity. Difference of objects I express by difference of signs.</a></h4>
 <div class="outline-text-4" id="text-5.53-Identity-of-object-I-express-by-identity-of-sign,-and-not-by-using-a-sign-for-identity.-Difference-of-objects-I-express-by-difference-of-signs.">
 <p>
How does this correlate with his discussion of equality?
</p>

 <p>
4.24, 4.241 and such?
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.5301-It-is-self-evident-that-identity-is-not-a-relation-between-objects.-This-becomes-very-clear-if-one-considers,-for-example,-the-proposition-%E2%80%98(x):fx.%E2%8A%83.x-=-a%E2%80%99.-What-this-proposition-says-is-simply-that-~only~-a-satisfies-the-function-f,-and-not-that-only-things-that-have-a-certain-relation-to-a-satisfy-the-function-f.-Of-course,-it-might-then-be-said-that-~only~-a-did-have-this-relation-to-a;-but-in-order-to-express-that,-we-should-need-the-identity-sign-itself."></a> <a href="#5.5301-It-is-self-evident-that-identity-is-not-a-relation-between-objects.-This-becomes-very-clear-if-one-considers,-for-example,-the-proposition-%E2%80%98(x):fx.%E2%8A%83.x-=-a%E2%80%99.-What-this-proposition-says-is-simply-that-~only~-a-satisfies-the-function-f,-and-not-that-only-things-that-have-a-certain-relation-to-a-satisfy-the-function-f.-Of-course,-it-might-then-be-said-that-~only~-a-did-have-this-relation-to-a;-but-in-order-to-express-that,-we-should-need-the-identity-sign-itself.">5.5301 It is self-evident that identity is not a relation between objects. This becomes very clear if one considers, for example, the proposition ‘(x):fx.⊃.x = a’. What this proposition says is simply that  <code>only</code> a satisfies the function f, and not that only things that have a certain relation to a satisfy the function f. Of course, it might then be said that  <code>only</code> a did have this relation to a; but in order to express that, we should need the identity-sign itself.</a> <br></br> <div class="outline-text-6" id="text-5.5301-It-is-self-evident-that-identity-is-not-a-relation-between-objects.-This-becomes-very-clear-if-one-considers,-for-example,-the-proposition-%E2%80%98(x):fx.%E2%8A%83.x-=-a%E2%80%99.-What-this-proposition-says-is-simply-that-~only~-a-satisfies-the-function-f,-and-not-that-only-things-that-have-a-certain-relation-to-a-satisfy-the-function-f.-Of-course,-it-might-then-be-said-that-~only~-a-did-have-this-relation-to-a;-but-in-order-to-express-that,-we-should-need-the-identity-sign-itself.">
 <p>
And?
Yes, a complex logical expression is optimisable.
But optimisation is not free.
</p>
</div>
</li>

 <li> <a id="5.5302-Russell%E2%80%99s-definition-of-%E2%80%98=%E2%80%99-is-inadequate,-because-according-to-it-we-cannot-say-that-two-objects-have-all-their-properties-in-common.-(Even-if-this-proposition-is-never-correct,-it-still-has-sense.)"></a> <a href="#5.5302-Russell%E2%80%99s-definition-of-%E2%80%98=%E2%80%99-is-inadequate,-because-according-to-it-we-cannot-say-that-two-objects-have-all-their-properties-in-common.-(Even-if-this-proposition-is-never-correct,-it-still-has-sense.)">5.5302 Russell’s definition of ‘=’ is inadequate, because according to it we cannot say that two objects have all their properties in common. (Even if this proposition is never correct, it still has sense.)</a> <br></br> <div class="outline-text-6" id="text-5.5302-Russell%E2%80%99s-definition-of-%E2%80%98=%E2%80%99-is-inadequate,-because-according-to-it-we-cannot-say-that-two-objects-have-all-their-properties-in-common.-(Even-if-this-proposition-is-never-correct,-it-still-has-sense.)">
 <p>
This is, again, the difference between  <code>eq?</code> and  <code>equal?</code>.
</p>
</div>
</li>

 <li> <a id="5.5303-Roughly-speaking,-to-say-of-two-things-that-they-are-identical-is-nonsense,-and-to-say-of-one-thing-that-it-is-identical-with-itself-is-to-say-nothing-at-all."></a> <a href="#5.5303-Roughly-speaking,-to-say-of-two-things-that-they-are-identical-is-nonsense,-and-to-say-of-one-thing-that-it-is-identical-with-itself-is-to-say-nothing-at-all.">5.5303 Roughly speaking, to say of two things that they are identical is nonsense, and to say of one thing that it is identical with itself is to say nothing at all.</a> <br></br> <div class="outline-text-6" id="text-5.5303-Roughly-speaking,-to-say-of-two-things-that-they-are-identical-is-nonsense,-and-to-say-of-one-thing-that-it-is-identical-with-itself-is-to-say-nothing-at-all.">
 <p>
I think that this is his big mistake.
Maybe, when you are modelling  <span class="underline">the world</span>, you need to make sure that all things that are  <code>equal?</code> are also  <code>eq?</code>, but you can do a lot of things even if that condition is not satisfied.
</p>
</div>
</li>
</ol> <li> <a id="5.531-Thus-I-do-not-write-%E2%80%98f(a,b).a-=-b%E2%80%99,-but-%E2%80%98f(a,a)%E2%80%99-(or-%E2%80%98f(b,b)%E2%80%99);-and-not-f(a,b).%E2%88%BCa-=-b%E2%80%99,-but-%E2%80%98f(a,b)%E2%80%99."></a> <a href="#5.531-Thus-I-do-not-write-%E2%80%98f(a,b).a-=-b%E2%80%99,-but-%E2%80%98f(a,a)%E2%80%99-(or-%E2%80%98f(b,b)%E2%80%99);-and-not-f(a,b).%E2%88%BCa-=-b%E2%80%99,-but-%E2%80%98f(a,b)%E2%80%99.">5.531 Thus I do not write ‘f(a,b).a = b’, but ‘f(a,a)’ (or ‘f(b,b)’); and not f(a,b).∼a = b’, but ‘f(a,b)’.</a> <br></br> <div class="outline-text-5" id="text-5.531-Thus-I-do-not-write-%E2%80%98f(a,b).a-=-b%E2%80%99,-but-%E2%80%98f(a,a)%E2%80%99-(or-%E2%80%98f(b,b)%E2%80%99);-and-not-f(a,b).%E2%88%BCa-=-b%E2%80%99,-but-%E2%80%98f(a,b)%E2%80%99.">
 <p>
Again, he thinks that this clarifies things, but that it so unessential to philosophy.
</p>

 <p>
Yeah, yeah, programming style should be good.
Don't make useless variables.
</p>

 <p>
But now we do not consider that terribly important because we machines can spot a lot of errors like this.
</p>
</div>
</li>

 <li> <a id="5.532-And-analogously-I-do-not-write-%E2%80%98(%E2%88%83x,y).f(x,y).x-=-y%E2%80%99,-but-%E2%80%98(%E2%88%83x).f(x,x)%E2%80%99;-and-not-%E2%80%98(%E2%88%83x,y).f(x,y).~x-=-y%E2%80%99,-but-%E2%80%98(%E2%88%83x.y).f(x,y)%E2%80%99.-(So-Russell%E2%80%99s-%E2%80%98(%E2%88%83x,y).fxy%E2%80%99-becomes-%E2%80%98(%E2%88%83x.y).f(x,y).v.(%E2%88%83x).f(x,x)%E2%80%99.)"></a> <a href="#5.532-And-analogously-I-do-not-write-%E2%80%98(%E2%88%83x,y).f(x,y).x-=-y%E2%80%99,-but-%E2%80%98(%E2%88%83x).f(x,x)%E2%80%99;-and-not-%E2%80%98(%E2%88%83x,y).f(x,y).~x-=-y%E2%80%99,-but-%E2%80%98(%E2%88%83x.y).f(x,y)%E2%80%99.-(So-Russell%E2%80%99s-%E2%80%98(%E2%88%83x,y).fxy%E2%80%99-becomes-%E2%80%98(%E2%88%83x.y).f(x,y).v.(%E2%88%83x).f(x,x)%E2%80%99.)">5.532 And analogously I do not write ‘(∃x,y).f(x,y).x = y’, but ‘(∃x).f(x,x)’; and not ‘(∃x,y).f(x,y).~x = y’, but ‘(∃x.y).f(x,y)’. (So Russell’s ‘(∃x,y).fxy’ becomes ‘(∃x.y).f(x,y).v.(∃x).f(x,x)’.)</a> <br></br> <div class="outline-text-5" id="text-5.532-And-analogously-I-do-not-write-%E2%80%98(%E2%88%83x,y).f(x,y).x-=-y%E2%80%99,-but-%E2%80%98(%E2%88%83x).f(x,x)%E2%80%99;-and-not-%E2%80%98(%E2%88%83x,y).f(x,y).~x-=-y%E2%80%99,-but-%E2%80%98(%E2%88%83x.y).f(x,y)%E2%80%99.-(So-Russell%E2%80%99s-%E2%80%98(%E2%88%83x,y).fxy%E2%80%99-becomes-%E2%80%98(%E2%88%83x.y).f(x,y).v.(%E2%88%83x).f(x,x)%E2%80%99.)">
 <p>
Seems that Wittgenstein gets really annoyed by extra notation.
</p>

 <p>
How would he solve cases when he does not, at first, know that x=y, but that is actually derivable?
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.5321-Thus,-for-example,-instead-of-%E2%80%98(x):fx-%E2%8A%83-x-=-a%E2%80%99-we-write-%E2%80%98(%E2%88%83x).fx.%E2%8A%83.fa:-~(%E2%88%83x,y).fx.fy%E2%80%99.-And-the-proposition,-%E2%80%98~Only-one~-x-satisfies-f(-)%E2%80%99,-will-read-%E2%80%98(%E2%88%83x).fx:-~(%E2%88%83x,y).fx.fy%E2%80%99."></a> <a href="#5.5321-Thus,-for-example,-instead-of-%E2%80%98(x):fx-%E2%8A%83-x-=-a%E2%80%99-we-write-%E2%80%98(%E2%88%83x).fx.%E2%8A%83.fa:-~(%E2%88%83x,y).fx.fy%E2%80%99.-And-the-proposition,-%E2%80%98~Only-one~-x-satisfies-f(-)%E2%80%99,-will-read-%E2%80%98(%E2%88%83x).fx:-~(%E2%88%83x,y).fx.fy%E2%80%99.">5.5321 Thus, for example, instead of ‘(x):fx ⊃ x = a’ we write ‘(∃x).fx.⊃.fa:  <code>(∃x,y).fx.fy’. And the proposition, ‘~Only one</code> x satisfies f( )’, will read ‘(∃x).fx: ~(∃x,y).fx.fy’.</a> <br></br> <div class="outline-text-6" id="text-5.5321-Thus,-for-example,-instead-of-%E2%80%98(x):fx-%E2%8A%83-x-=-a%E2%80%99-we-write-%E2%80%98(%E2%88%83x).fx.%E2%8A%83.fa:-~(%E2%88%83x,y).fx.fy%E2%80%99.-And-the-proposition,-%E2%80%98~Only-one~-x-satisfies-f(-)%E2%80%99,-will-read-%E2%80%98(%E2%88%83x).fx:-~(%E2%88%83x,y).fx.fy%E2%80%99.">
 <p>
Okay.
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.533-The-identity-sign,-therefore,-is-not-an-essential-constituent-of-conceptual-notation."></a> <a href="#5.533-The-identity-sign,-therefore,-is-not-an-essential-constituent-of-conceptual-notation.">5.533 The identity-sign, therefore, is not an essential constituent of conceptual notation.</a> <br></br> <div class="outline-text-5" id="text-5.533-The-identity-sign,-therefore,-is-not-an-essential-constituent-of-conceptual-notation.">
 <p>
So, he has derived this particular logic of his, in which it is possible to avoid using equality in exchange for the manipulation with quantifiers.
</p>

 <p>
In 2021, I think we would have consider this a defeat, rather than an achievement.
</p>

 <p>
Working with quantifiers is a pain, working with equality is a bliss.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.534-And-now-we-see-that-in-a-correct-conceptual-notation-pseudo-propositions-like-%E2%80%98a-=-a%E2%80%99,-%E2%80%98a-=-b.b-=-c.%E2%8A%83-a-=-c%E2%80%99,-%E2%80%98(x).x-=-x%E2%80%99,-%E2%80%98(%E2%88%83x).x-=-a%E2%80%99,-etc.-cannot-even-be-written-down."></a> <a href="#5.534-And-now-we-see-that-in-a-correct-conceptual-notation-pseudo-propositions-like-%E2%80%98a-=-a%E2%80%99,-%E2%80%98a-=-b.b-=-c.%E2%8A%83-a-=-c%E2%80%99,-%E2%80%98(x).x-=-x%E2%80%99,-%E2%80%98(%E2%88%83x).x-=-a%E2%80%99,-etc.-cannot-even-be-written-down.">5.534 And now we see that in a correct conceptual notation pseudo-propositions like ‘a = a’, ‘a = b.b = c.⊃ a = c’, ‘(x).x = x’, ‘(∃x).x = a’, etc. cannot even be written down.</a> <br></br> <div class="outline-text-6" id="text-5.534-And-now-we-see-that-in-a-correct-conceptual-notation-pseudo-propositions-like-%E2%80%98a-=-a%E2%80%99,-%E2%80%98a-=-b.b-=-c.%E2%8A%83-a-=-c%E2%80%99,-%E2%80%98(x).x-=-x%E2%80%99,-%E2%80%98(%E2%88%83x).x-=-a%E2%80%99,-etc.-cannot-even-be-written-down.">
 <p>
It is interesting idea that you "cannot write meaningless code".
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.535-This-also-disposes-of-all-the-problems-that-were-connected-with-such-pseudo-propositions.-All-the-problems-that-Russell%E2%80%99s-%E2%80%98axiom-of-infinity%E2%80%99-brings-with-it-can-be-solved-at-this-point.-What-the-axiom-of-infinity-is-intended-to-say-would-express-itself-in-language-through-the-existence-of-infinitely-many-names-with-different-meanings."></a> <a href="#5.535-This-also-disposes-of-all-the-problems-that-were-connected-with-such-pseudo-propositions.-All-the-problems-that-Russell%E2%80%99s-%E2%80%98axiom-of-infinity%E2%80%99-brings-with-it-can-be-solved-at-this-point.-What-the-axiom-of-infinity-is-intended-to-say-would-express-itself-in-language-through-the-existence-of-infinitely-many-names-with-different-meanings.">5.535 This also disposes of all the problems that were connected with such pseudo-propositions. All the problems that Russell’s ‘axiom of infinity’ brings with it can be solved at this point. What the axiom of infinity is intended to say would express itself in language through the existence of infinitely many names with different meanings.</a> <br></br> <div class="outline-text-5" id="text-5.535-This-also-disposes-of-all-the-problems-that-were-connected-with-such-pseudo-propositions.-All-the-problems-that-Russell%E2%80%99s-%E2%80%98axiom-of-infinity%E2%80%99-brings-with-it-can-be-solved-at-this-point.-What-the-axiom-of-infinity-is-intended-to-say-would-express-itself-in-language-through-the-existence-of-infinitely-many-names-with-different-meanings.">
 <p>
This is the first time he actually refers to a concrete place in the works of his predecessors.
</p>

 <p>
The "axiom of infinity" is defined at 120.30 or something like that, in the second volume of Principia Mathematica.
</p>

 <p>
In any case, it would have been amazing to work in a world where distinct things are by default always distinct in description, but that is, sadly, almost never the case.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.5351-There-are-certain-cases-in-which-one-is-tempted-to-use-expressions-of-the-form-%E2%80%98a-=-a%E2%80%99-or-%E2%80%98p-%E2%8A%83-p%E2%80%99-and-the-like.-In-fact,-this-happens-when-one-wants-to-talk-about-prototypes,-e.g.-about-proposition,-thing,-etc.-Thus-in-Russell%E2%80%99s-Principles-of-Mathematics-%E2%80%98p-is-a-proposition%E2%80%99-%E2%80%94which-is-nonsense%E2%80%94-was-given-the-symbolic-rendering-%E2%80%98p-%E2%8A%83-p%E2%80%99-and-placed-as-an-hypothesis-in-front-of-certain-propositions-in-order-to-exclude-from-their-argument-places-everything-but-propositions.-(It-is-nonsense-to-place-the-hypothesis-%E2%80%98p-%E2%8A%83-p%E2%80%99-in-front-of-a-proposition,-in-order-to-ensure-that-its-arguments-shall-have-the-right-form,-if-only-because-with-a-non-proposition-as-argument-the-hypothesis-becomes-not-false-but-nonsensical,-and-because-arguments-of-the-wrong-kind-make-the-proposition-itself-nonsensical,-so-that-it-preserves-itself-from-wrong-arguments-just-as-well,-or-as-badly,-as-the-hypothesis-without-sense-that-was-appended-for-that-purpose.)"></a> <a href="#5.5351-There-are-certain-cases-in-which-one-is-tempted-to-use-expressions-of-the-form-%E2%80%98a-=-a%E2%80%99-or-%E2%80%98p-%E2%8A%83-p%E2%80%99-and-the-like.-In-fact,-this-happens-when-one-wants-to-talk-about-prototypes,-e.g.-about-proposition,-thing,-etc.-Thus-in-Russell%E2%80%99s-Principles-of-Mathematics-%E2%80%98p-is-a-proposition%E2%80%99-%E2%80%94which-is-nonsense%E2%80%94-was-given-the-symbolic-rendering-%E2%80%98p-%E2%8A%83-p%E2%80%99-and-placed-as-an-hypothesis-in-front-of-certain-propositions-in-order-to-exclude-from-their-argument-places-everything-but-propositions.-(It-is-nonsense-to-place-the-hypothesis-%E2%80%98p-%E2%8A%83-p%E2%80%99-in-front-of-a-proposition,-in-order-to-ensure-that-its-arguments-shall-have-the-right-form,-if-only-because-with-a-non-proposition-as-argument-the-hypothesis-becomes-not-false-but-nonsensical,-and-because-arguments-of-the-wrong-kind-make-the-proposition-itself-nonsensical,-so-that-it-preserves-itself-from-wrong-arguments-just-as-well,-or-as-badly,-as-the-hypothesis-without-sense-that-was-appended-for-that-purpose.)">5.5351 There are certain cases in which one is tempted to use expressions of the form ‘a = a’ or ‘p ⊃ p’ and the like. In fact, this happens when one wants to talk about prototypes, e.g. about proposition, thing, etc. Thus in Russell’s Principles of Mathematics ‘p is a proposition’ —which is nonsense— was given the symbolic rendering ‘p ⊃ p’ and placed as an hypothesis in front of certain propositions in order to exclude from their argument-places everything but propositions. (It is nonsense to place the hypothesis ‘p ⊃ p’ in front of a proposition, in order to ensure that its arguments shall have the right form, if only because with a non-proposition as argument the hypothesis becomes not false but nonsensical, and because arguments of the wrong kind make the proposition itself nonsensical, so that it preserves itself from wrong arguments just as well, or as badly, as the hypothesis without sense that was appended for that purpose.)</a> <br></br> <div class="outline-text-6" id="text-5.5351-There-are-certain-cases-in-which-one-is-tempted-to-use-expressions-of-the-form-%E2%80%98a-=-a%E2%80%99-or-%E2%80%98p-%E2%8A%83-p%E2%80%99-and-the-like.-In-fact,-this-happens-when-one-wants-to-talk-about-prototypes,-e.g.-about-proposition,-thing,-etc.-Thus-in-Russell%E2%80%99s-Principles-of-Mathematics-%E2%80%98p-is-a-proposition%E2%80%99-%E2%80%94which-is-nonsense%E2%80%94-was-given-the-symbolic-rendering-%E2%80%98p-%E2%8A%83-p%E2%80%99-and-placed-as-an-hypothesis-in-front-of-certain-propositions-in-order-to-exclude-from-their-argument-places-everything-but-propositions.-(It-is-nonsense-to-place-the-hypothesis-%E2%80%98p-%E2%8A%83-p%E2%80%99-in-front-of-a-proposition,-in-order-to-ensure-that-its-arguments-shall-have-the-right-form,-if-only-because-with-a-non-proposition-as-argument-the-hypothesis-becomes-not-false-but-nonsensical,-and-because-arguments-of-the-wrong-kind-make-the-proposition-itself-nonsensical,-so-that-it-preserves-itself-from-wrong-arguments-just-as-well,-or-as-badly,-as-the-hypothesis-without-sense-that-was-appended-for-that-purpose.)">
 <p>
So, Wittgenstein insists that propositions, and, perhaps, other logical constructs cannot be reasoned about by the system they are parts of.
</p>

 <p>
This sounds both good and bad.
Good, because I always found just wrong the statements similar to the 'Godelian proposition'.
(That one that has a number, and states that the statement with that number is not provable.)
This sounded wrong, because interpreters should not be able to  <span class="underline">reason</span> about themselves.
</p>

 <p>
On the other hand, why not?
There are virtual machines, there are metacircular interpreters.
Why not, after all?
</p>
</div>
</li>

 <li> <a id="5.5352-In-the-same-way-people-have-wanted-to-express,-%E2%80%98There-are-no-~things~%E2%80%99,-by-writing-%E2%80%98~(%E2%88%83x).x-=-x%E2%80%99.-But-even-if-this-were-a-proposition,-would-it-not-be-equally-true-if-in-fact-%E2%80%98there-were-things%E2%80%99-but-they-were-not-identical-with-themselves?"></a> <a href="#5.5352-In-the-same-way-people-have-wanted-to-express,-%E2%80%98There-are-no-~things~%E2%80%99,-by-writing-%E2%80%98~(%E2%88%83x).x-=-x%E2%80%99.-But-even-if-this-were-a-proposition,-would-it-not-be-equally-true-if-in-fact-%E2%80%98there-were-things%E2%80%99-but-they-were-not-identical-with-themselves?">5.5352 In the same way people have wanted to express, ‘There are no ~things~’, by writing ‘~(∃x).x = x’. But even if this were a proposition, would it not be equally true if in fact ‘there were things’ but they were not identical with themselves?</a> <br></br> <div class="outline-text-6" id="text-5.5352-In-the-same-way-people-have-wanted-to-express,-%E2%80%98There-are-no-~things~%E2%80%99,-by-writing-%E2%80%98~(%E2%88%83x).x-=-x%E2%80%99.-But-even-if-this-were-a-proposition,-would-it-not-be-equally-true-if-in-fact-%E2%80%98there-were-things%E2%80%99-but-they-were-not-identical-with-themselves?">
 <p>
This clause is interesting because it uses ‘~(∃x).x = x’.
Indeed, I see what Wittgenstein was annoyed about.
</p>
</div>
</li>
</ol></li>

</div>

 <div id="outline-container-5.54-In-the-general-propositional-form-propositions-occur-in-other-propositions-only-as-bases-of-truth-operations." class="outline-4">
 <h4 id="5.54-In-the-general-propositional-form-propositions-occur-in-other-propositions-only-as-bases-of-truth-operations."> <span class="section-number-4">5.5.4.</span>  <a href="#5.54-In-the-general-propositional-form-propositions-occur-in-other-propositions-only-as-bases-of-truth-operations.">5.54 In the general propositional form propositions occur in other propositions only as bases of truth-operations.</a></h4>
 <div class="outline-text-4" id="text-5.54-In-the-general-propositional-form-propositions-occur-in-other-propositions-only-as-bases-of-truth-operations.">
 <p>
Because in his world, truth-operations evaluate.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.541-At-first-sight-it-looks-as-if-it-were-also-possible-for-one-proposition-to-occur-in-another-in-a-different-way.-Particularly-with-certain-forms-of-proposition-in-psychology,-such-as-%E2%80%98A-believes-that-p-is-the-case%E2%80%99-and-%E2%80%98A-has-the-thought-p%E2%80%99,-etc.-For-if-these-are-considered-superficially,-it-looks-as-if-the-proposition-p-stood-in-some-kind-of-relation-to-an-object-A.-(And-in-modern-theory-of-knowledge-(Russell,-Moore,-etc.)-these-propositions-have-actually-been-construed-in-this-way.)"></a> <a href="#5.541-At-first-sight-it-looks-as-if-it-were-also-possible-for-one-proposition-to-occur-in-another-in-a-different-way.-Particularly-with-certain-forms-of-proposition-in-psychology,-such-as-%E2%80%98A-believes-that-p-is-the-case%E2%80%99-and-%E2%80%98A-has-the-thought-p%E2%80%99,-etc.-For-if-these-are-considered-superficially,-it-looks-as-if-the-proposition-p-stood-in-some-kind-of-relation-to-an-object-A.-(And-in-modern-theory-of-knowledge-(Russell,-Moore,-etc.)-these-propositions-have-actually-been-construed-in-this-way.)">5.541 At first sight it looks as if it were also possible for one proposition to occur in another in a different way. Particularly with certain forms of proposition in psychology, such as ‘A believes that p is the case’ and ‘A has the thought p’, etc. For if these are considered superficially, it looks as if the proposition p stood in some kind of relation to an object A. (And in modern theory of knowledge (Russell, Moore, etc.) these propositions have actually been construed in this way.)</a> <br></br> <div class="outline-text-5" id="text-5.541-At-first-sight-it-looks-as-if-it-were-also-possible-for-one-proposition-to-occur-in-another-in-a-different-way.-Particularly-with-certain-forms-of-proposition-in-psychology,-such-as-%E2%80%98A-believes-that-p-is-the-case%E2%80%99-and-%E2%80%98A-has-the-thought-p%E2%80%99,-etc.-For-if-these-are-considered-superficially,-it-looks-as-if-the-proposition-p-stood-in-some-kind-of-relation-to-an-object-A.-(And-in-modern-theory-of-knowledge-(Russell,-Moore,-etc.)-these-propositions-have-actually-been-construed-in-this-way.)">
 <p>
Ah, ok.
He seems to be repeating his premise that relationships other than binary are not useful.
Ok, now that in computers our world is binary, this seems obvious.
</p>
</div>
</li>

 <li> <a id="5.542-It-is-clear,-however,-that-%E2%80%98A-believes-that-p%E2%80%99,-%E2%80%98A-has-the-thought-p%E2%80%99,-and-%E2%80%98A-says-p%E2%80%99-are-of-the-form-%E2%80%98%E2%80%9Cp%E2%80%9D-says-p%E2%80%99:-and-this-does-not-involve-a-correlation-of-a-fact-with-an-object,-but-rather-the-correlation-of-facts-by-means-of-the-correlation-of-their-objects."></a> <a href="#5.542-It-is-clear,-however,-that-%E2%80%98A-believes-that-p%E2%80%99,-%E2%80%98A-has-the-thought-p%E2%80%99,-and-%E2%80%98A-says-p%E2%80%99-are-of-the-form-%E2%80%98%E2%80%9Cp%E2%80%9D-says-p%E2%80%99:-and-this-does-not-involve-a-correlation-of-a-fact-with-an-object,-but-rather-the-correlation-of-facts-by-means-of-the-correlation-of-their-objects.">5.542 It is clear, however, that ‘A believes that p’, ‘A has the thought p’, and ‘A says p’ are of the form ‘“p” says p’: and this does not involve a correlation of a fact with an object, but rather the correlation of facts by means of the correlation of their objects.</a> <br></br> <div class="outline-text-5" id="text-5.542-It-is-clear,-however,-that-%E2%80%98A-believes-that-p%E2%80%99,-%E2%80%98A-has-the-thought-p%E2%80%99,-and-%E2%80%98A-says-p%E2%80%99-are-of-the-form-%E2%80%98%E2%80%9Cp%E2%80%9D-says-p%E2%80%99:-and-this-does-not-involve-a-correlation-of-a-fact-with-an-object,-but-rather-the-correlation-of-facts-by-means-of-the-correlation-of-their-objects.">
 <p>
Basically, this is a call for an introduction of more constructions into the language itself.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.5421-This-shows-too-that-there-is-no-such-thing-as-the-soul-%E2%80%94the-subject,-etc.%E2%80%94-as-it-is-conceived-in-the-superficial-psychology-of-the-present-day.-Indeed-a-composite-soul-would-no-longer-be-a-soul."></a> <a href="#5.5421-This-shows-too-that-there-is-no-such-thing-as-the-soul-%E2%80%94the-subject,-etc.%E2%80%94-as-it-is-conceived-in-the-superficial-psychology-of-the-present-day.-Indeed-a-composite-soul-would-no-longer-be-a-soul.">5.5421 This shows too that there is no such thing as the soul —the subject, etc.— as it is conceived in the superficial psychology of the present day. Indeed a composite soul would no longer be a soul.</a> <br></br> <div class="outline-text-6" id="text-5.5421-This-shows-too-that-there-is-no-such-thing-as-the-soul-%E2%80%94the-subject,-etc.%E2%80%94-as-it-is-conceived-in-the-superficial-psychology-of-the-present-day.-Indeed-a-composite-soul-would-no-longer-be-a-soul.">
 <p>
This requires a bit of thinking, but essentially, means that since everything consists of primitives, and people consist of molecules, and their behaviour is computable, there is no such a thing that "makes decisions".
</p>

 <p>
Maybe, under "superficial psychology" he means "free will".
If everything is computable, I guess, you can say that there is no free will.
</p>
</div>
</li>

 <li> <a id="5.5422-The-correct-explanation-of-the-form-of-the-proposition,-%E2%80%98A-makes-the-judgement-p%E2%80%99,-must-show-that-it-is-impossible-for-a-judgement-to-be-a-piece-of-nonsense.-(Russell%E2%80%99s-theory-does-not-satisfy-this-requirement.)"></a> <a href="#5.5422-The-correct-explanation-of-the-form-of-the-proposition,-%E2%80%98A-makes-the-judgement-p%E2%80%99,-must-show-that-it-is-impossible-for-a-judgement-to-be-a-piece-of-nonsense.-(Russell%E2%80%99s-theory-does-not-satisfy-this-requirement.)">5.5422 The correct explanation of the form of the proposition, ‘A makes the judgement p’, must show that it is impossible for a judgement to be a piece of nonsense. (Russell’s theory does not satisfy this requirement.)</a> <br></br> <div class="outline-text-6" id="text-5.5422-The-correct-explanation-of-the-form-of-the-proposition,-%E2%80%98A-makes-the-judgement-p%E2%80%99,-must-show-that-it-is-impossible-for-a-judgement-to-be-a-piece-of-nonsense.-(Russell%E2%80%99s-theory-does-not-satisfy-this-requirement.)">
 <p>
A compiler should not compile senseless things.
I guess, Wittgenstein would like Haskell.
</p>
</div>
</li>

 <li> <a id="5.5423-To-perceive-a-complex-means-to-perceive-that-its-constituents-are-related-to-one-another-in-such-and-such-a-way.-This-no-doubt-also-explains-why-there-are-two-possible-ways-of-seeing-the-figure-as-a-cube;-and-all-similar-phenomena.-For-we-really-see-two-different-facts.-(If-I-look-in-the-first-place-at-the-corners-marked-a-and-only-glance-at-the-b%E2%80%99s,-then-the-a%E2%80%99s-appear-to-be-in-front,-and-vice-versa)."></a> <a href="#5.5423-To-perceive-a-complex-means-to-perceive-that-its-constituents-are-related-to-one-another-in-such-and-such-a-way.-This-no-doubt-also-explains-why-there-are-two-possible-ways-of-seeing-the-figure-as-a-cube;-and-all-similar-phenomena.-For-we-really-see-two-different-facts.-(If-I-look-in-the-first-place-at-the-corners-marked-a-and-only-glance-at-the-b%E2%80%99s,-then-the-a%E2%80%99s-appear-to-be-in-front,-and-vice-versa).">5.5423 To perceive a complex means to perceive that its constituents are related to one another in such and such a way. This no doubt also explains why there are two possible ways of seeing the figure as a cube; and all similar phenomena. For we really see two different facts. (If I look in the first place at the corners marked a and only glance at the b’s, then the a’s appear to be in front, and vice versa).</a> <br></br> <div class="outline-text-6" id="text-5.5423-To-perceive-a-complex-means-to-perceive-that-its-constituents-are-related-to-one-another-in-such-and-such-a-way.-This-no-doubt-also-explains-why-there-are-two-possible-ways-of-seeing-the-figure-as-a-cube;-and-all-similar-phenomena.-For-we-really-see-two-different-facts.-(If-I-look-in-the-first-place-at-the-corners-marked-a-and-only-glance-at-the-b%E2%80%99s,-then-the-a%E2%80%99s-appear-to-be-in-front,-and-vice-versa).">
 <p>
I guess, a computing alternative would be a piece of code that is valid both as Scheme, and as Common Lisp.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-5.55-We-now-have-to-answer-a-priori-the-question-about-all-the-possible-forms-of-elementary-propositions.-Elementary-propositions-consist-of-names.-Since,-however,-we-are-unable-to-give-the-number-of-names-with-different-meanings,-we-are-also-unable-to-give-the-composition-of-elementary-propositions." class="outline-4">
 <h4 id="5.55-We-now-have-to-answer-a-priori-the-question-about-all-the-possible-forms-of-elementary-propositions.-Elementary-propositions-consist-of-names.-Since,-however,-we-are-unable-to-give-the-number-of-names-with-different-meanings,-we-are-also-unable-to-give-the-composition-of-elementary-propositions."> <span class="section-number-4">5.5.5.</span>  <a href="#5.55-We-now-have-to-answer-a-priori-the-question-about-all-the-possible-forms-of-elementary-propositions.-Elementary-propositions-consist-of-names.-Since,-however,-we-are-unable-to-give-the-number-of-names-with-different-meanings,-we-are-also-unable-to-give-the-composition-of-elementary-propositions.">5.55 We now have to answer a priori the question about all the possible forms of elementary propositions. Elementary propositions consist of names. Since, however, we are unable to give the number of names with different meanings, we are also unable to give the composition of elementary propositions.</a></h4>
 <div class="outline-text-4" id="text-5.55-We-now-have-to-answer-a-priori-the-question-about-all-the-possible-forms-of-elementary-propositions.-Elementary-propositions-consist-of-names.-Since,-however,-we-are-unable-to-give-the-number-of-names-with-different-meanings,-we-are-also-unable-to-give-the-composition-of-elementary-propositions.">
 <p>
Elementary propositions consist of names.
Without loss of generality, just two names, 1 and 0.
</p>

 <p>
Cannot give the composition of elementary propositions?
I cannot understand.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.551-Our-fundamental-principle-is-that-whenever-a-question-can-be-decided-by-logic-at-all-it-must-be-possible-to-decide-it-without-more-ado.-(And-if-we-get-into-a-position-where-we-have-to-look-at-the-world-for-an-answer-to-such-a-problem,-that-shows-that-we-are-on-a-completely-wrong-track.)"></a> <a href="#5.551-Our-fundamental-principle-is-that-whenever-a-question-can-be-decided-by-logic-at-all-it-must-be-possible-to-decide-it-without-more-ado.-(And-if-we-get-into-a-position-where-we-have-to-look-at-the-world-for-an-answer-to-such-a-problem,-that-shows-that-we-are-on-a-completely-wrong-track.)">5.551 Our fundamental principle is that whenever a question can be decided by logic at all it must be possible to decide it without more ado. (And if we get into a position where we have to look at the world for an answer to such a problem, that shows that we are on a completely wrong track.)</a> <br></br> <div class="outline-text-5" id="text-5.551-Our-fundamental-principle-is-that-whenever-a-question-can-be-decided-by-logic-at-all-it-must-be-possible-to-decide-it-without-more-ado.-(And-if-we-get-into-a-position-where-we-have-to-look-at-the-world-for-an-answer-to-such-a-problem,-that-shows-that-we-are-on-a-completely-wrong-track.)">
 <p>
This is very practical and should be compulsory to read for all physicists.
</p>
</div>
</li>

 <li> <a id="5.552-The-%E2%80%98experience%E2%80%99-that-we-need-in-order-to-understand-logic-is-not-that-something-or-other-is-the-state-of-things,-but-that-something-is:-that,-however,-is-not-an-experience.-Logic-is-prior-to-every-experience-%E2%80%94-that-something-is-so.-It-is-prior-to-the-question-%E2%80%98How?%E2%80%99,-not-prior-to-the-question-%E2%80%98What?%E2%80%99"></a> <a href="#5.552-The-%E2%80%98experience%E2%80%99-that-we-need-in-order-to-understand-logic-is-not-that-something-or-other-is-the-state-of-things,-but-that-something-is:-that,-however,-is-not-an-experience.-Logic-is-prior-to-every-experience-%E2%80%94-that-something-is-so.-It-is-prior-to-the-question-%E2%80%98How?%E2%80%99,-not-prior-to-the-question-%E2%80%98What?%E2%80%99">5.552 The ‘experience’ that we need in order to understand logic is not that something or other is the state of things, but that something is: that, however, is not an experience. Logic is prior to every experience — that something is so. It is prior to the question ‘How?’, not prior to the question ‘What?’</a> <br></br> <div class="outline-text-5" id="text-5.552-The-%E2%80%98experience%E2%80%99-that-we-need-in-order-to-understand-logic-is-not-that-something-or-other-is-the-state-of-things,-but-that-something-is:-that,-however,-is-not-an-experience.-Logic-is-prior-to-every-experience-%E2%80%94-that-something-is-so.-It-is-prior-to-the-question-%E2%80%98How?%E2%80%99,-not-prior-to-the-question-%E2%80%98What?%E2%80%99">
 <p>
My English parser got broken here.
Indeed, the replacement of "what?" with "how?" is quite a step forward in terms of theory of knowledge.
</p>

 <p>
"What?", I guess, should be defined by philosophy, not logic.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.5521-And-if-this-were-not-so,-how-could-we-apply-logic?-We-might-put-it-in-this-way:-if-there-would-be-a-logic-even-if-there-were-no-world,-how-then-could-there-be-a-logic-given-that-there-is-a-world?"></a> <a href="#5.5521-And-if-this-were-not-so,-how-could-we-apply-logic?-We-might-put-it-in-this-way:-if-there-would-be-a-logic-even-if-there-were-no-world,-how-then-could-there-be-a-logic-given-that-there-is-a-world?">5.5521 And if this were not so, how could we apply logic? We might put it in this way: if there would be a logic even if there were no world, how then could there be a logic given that there is a world?</a> <br></br> <div class="outline-text-6" id="text-5.5521-And-if-this-were-not-so,-how-could-we-apply-logic?-We-might-put-it-in-this-way:-if-there-would-be-a-logic-even-if-there-were-no-world,-how-then-could-there-be-a-logic-given-that-there-is-a-world?">
 <p>
Well, you can do all sort of fun logical games, such as plotting the Mandelbrot set, without any input.
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.553-Russell-said-that-there-were-simple-relations-between-different-numbers-of-things-(individuals).-But-between-what-numbers?-And-how-is-this-supposed-to-be-decided?%E2%80%94By-experience?-(There-is-no-pre-eminent-number.)"></a> <a href="#5.553-Russell-said-that-there-were-simple-relations-between-different-numbers-of-things-(individuals).-But-between-what-numbers?-And-how-is-this-supposed-to-be-decided?%E2%80%94By-experience?-(There-is-no-pre-eminent-number.)">5.553 Russell said that there were simple relations between different numbers of things (individuals). But between what numbers? And how is this supposed to be decided?—By experience? (There is no pre-eminent number.)</a> <br></br> <div class="outline-text-5" id="text-5.553-Russell-said-that-there-were-simple-relations-between-different-numbers-of-things-(individuals).-But-between-what-numbers?-And-how-is-this-supposed-to-be-decided?%E2%80%94By-experience?-(There-is-no-pre-eminent-number.)">
 <p>
No, I cannot understand.
Indeed, numbers are not fundamental, as Russell proves.
So, relations between objects are not fundamental too?
</p>
</div>
</li>

 <li> <a id="5.554-It-would-be-completely-arbitrary-to-give-any-specific-form."></a> <a href="#5.554-It-would-be-completely-arbitrary-to-give-any-specific-form.">5.554 It would be completely arbitrary to give any specific form.</a> <br></br> <div class="outline-text-5" id="text-5.554-It-would-be-completely-arbitrary-to-give-any-specific-form.">
 <p>
Does that mean that there should be an algorithm to generate random valid code?
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.5541-It-is-supposed-to-be-possible-to-answer-a-priori-the-question-whether-I-can-get-into-a-position-in-which-I-need-the-sign-for-a-27-termed-relation-in-order-to-signify-something."></a> <a href="#5.5541-It-is-supposed-to-be-possible-to-answer-a-priori-the-question-whether-I-can-get-into-a-position-in-which-I-need-the-sign-for-a-27-termed-relation-in-order-to-signify-something.">5.5541 It is supposed to be possible to answer a priori the question whether I can get into a position in which I need the sign for a 27-termed relation in order to signify something.</a> <br></br> <div class="outline-text-6" id="text-5.5541-It-is-supposed-to-be-possible-to-answer-a-priori-the-question-whether-I-can-get-into-a-position-in-which-I-need-the-sign-for-a-27-termed-relation-in-order-to-signify-something.">
 <p>
Does he imply the need for lower bounds?
At least in the length of the source code?
</p>

 <p>
In general, there are various methods of finding lower bounds.
</p>
</div>
</li>

 <li> <a id="5.5542-But-is-it-really-legitimate-even-to-ask-such-a-question?-Can-we-set-up-a-form-of-sign-without-knowing-whether-anything-can-correspond-to-it?-Does-it-make-sense-to-ask-what-there-must-be-in-order-that-something-can-be-the-case?"></a> <a href="#5.5542-But-is-it-really-legitimate-even-to-ask-such-a-question?-Can-we-set-up-a-form-of-sign-without-knowing-whether-anything-can-correspond-to-it?-Does-it-make-sense-to-ask-what-there-must-be-in-order-that-something-can-be-the-case?">5.5542 But is it really legitimate even to ask such a question? Can we set up a form of sign without knowing whether anything can correspond to it? Does it make sense to ask what there must be in order that something can be the case?</a> <br></br> <div class="outline-text-6" id="text-5.5542-But-is-it-really-legitimate-even-to-ask-such-a-question?-Can-we-set-up-a-form-of-sign-without-knowing-whether-anything-can-correspond-to-it?-Does-it-make-sense-to-ask-what-there-must-be-in-order-that-something-can-be-the-case?">
 <p>
Why not?
Syntax checkers are not new.
Static/dynamic analysis tools are not new.
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.555-Clearly-we-have-some-concept-of-elementary-propositions-quite-apart-from-their-particular-logical-forms.-But-when-there-is-a-system-by-which-we-can-create-symbols,-the-system-is-what-is-important-for-logic-and-not-the-individual-symbols.-And-anyway,-is-it-really-possible-that-in-logic-I-should-have-to-deal-with-forms-that-I-can-invent?-What-I-have-to-deal-with-must-be-that-which-makes-it-possible-for-me-to-invent-them."></a> <a href="#5.555-Clearly-we-have-some-concept-of-elementary-propositions-quite-apart-from-their-particular-logical-forms.-But-when-there-is-a-system-by-which-we-can-create-symbols,-the-system-is-what-is-important-for-logic-and-not-the-individual-symbols.-And-anyway,-is-it-really-possible-that-in-logic-I-should-have-to-deal-with-forms-that-I-can-invent?-What-I-have-to-deal-with-must-be-that-which-makes-it-possible-for-me-to-invent-them.">5.555 Clearly we have some concept of elementary propositions quite apart from their particular logical forms. But when there is a system by which we can create symbols, the system is what is important for logic and not the individual symbols. And anyway, is it really possible that in logic I should have to deal with forms that I can invent? What I have to deal with must be that which makes it possible for me to invent them.</a> <br></br> <div class="outline-text-5" id="text-5.555-Clearly-we-have-some-concept-of-elementary-propositions-quite-apart-from-their-particular-logical-forms.-But-when-there-is-a-system-by-which-we-can-create-symbols,-the-system-is-what-is-important-for-logic-and-not-the-individual-symbols.-And-anyway,-is-it-really-possible-that-in-logic-I-should-have-to-deal-with-forms-that-I-can-invent?-What-I-have-to-deal-with-must-be-that-which-makes-it-possible-for-me-to-invent-them.">
 <p>
That "insight"?
Indeed, he is already thinking about an algorithm for generating true statements.
</p>
</div>
</li>

 <li> <a id="5.556-There-cannot-be-a-hierarchy-of-the-forms-of-elementary-propositions.-We-can-foresee-only-what-we-ourselves-construct."></a> <a href="#5.556-There-cannot-be-a-hierarchy-of-the-forms-of-elementary-propositions.-We-can-foresee-only-what-we-ourselves-construct.">5.556 There cannot be a hierarchy of the forms of elementary propositions. We can foresee only what we ourselves construct.</a> <br></br> <div class="outline-text-5" id="text-5.556-There-cannot-be-a-hierarchy-of-the-forms-of-elementary-propositions.-We-can-foresee-only-what-we-ourselves-construct.">
 <p>
Input bits are all equal in rights.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.5561-Empirical-reality-is-limited-by-the-totality-of-objects.-The-limit-also-makes-itself-manifest-in-the-totality-of-elementary-propositions.-Hierarchies-are-and-must-be-independent-of-reality."></a> <a href="#5.5561-Empirical-reality-is-limited-by-the-totality-of-objects.-The-limit-also-makes-itself-manifest-in-the-totality-of-elementary-propositions.-Hierarchies-are-and-must-be-independent-of-reality.">5.5561 Empirical reality is limited by the totality of objects. The limit also makes itself manifest in the totality of elementary propositions. Hierarchies are and must be independent of reality.</a> <br></br> <div class="outline-text-6" id="text-5.5561-Empirical-reality-is-limited-by-the-totality-of-objects.-The-limit-also-makes-itself-manifest-in-the-totality-of-elementary-propositions.-Hierarchies-are-and-must-be-independent-of-reality.">
 <p>
The first and the second statement are true.
The third does not seem to follow from them, but I can see why it should be the case.
</p>
</div>
</li>

 <li> <a id="5.5562-If-we-know-on-purely-logical-grounds-that-there-must-be-elementary-propositions,-then-everyone-who-understands-propositions-in-their-unanalysed-form-must-know-it."></a> <a href="#5.5562-If-we-know-on-purely-logical-grounds-that-there-must-be-elementary-propositions,-then-everyone-who-understands-propositions-in-their-unanalysed-form-must-know-it.">5.5562 If we know on purely logical grounds that there must be elementary propositions, then everyone who understands propositions in their unanalysed form must know it.</a> <br></br> <div class="outline-text-6" id="text-5.5562-If-we-know-on-purely-logical-grounds-that-there-must-be-elementary-propositions,-then-everyone-who-understands-propositions-in-their-unanalysed-form-must-know-it.">
 <p>
Well, everyone who understands logic, I guess.
This kinda implies the ability to implement an algorithm in any language.
</p>
</div>
</li>

 <li> <a id="5.5563-In-fact,-all-the-propositions-of-our-everyday-language,-just-as-they-stand,-are-in-perfect-logical-order.-%E2%80%94-That-utterly-simple-thing,-which-we-have-to-formulate-here,-is-not-a-likeness-of-the-truth,-but-the-truth-itself-in-its-entirety.-(Our-problems-are-not-abstract,-but-perhaps-the-most-concrete-that-there-are.)"></a> <a href="#5.5563-In-fact,-all-the-propositions-of-our-everyday-language,-just-as-they-stand,-are-in-perfect-logical-order.-%E2%80%94-That-utterly-simple-thing,-which-we-have-to-formulate-here,-is-not-a-likeness-of-the-truth,-but-the-truth-itself-in-its-entirety.-(Our-problems-are-not-abstract,-but-perhaps-the-most-concrete-that-there-are.)">5.5563 In fact, all the propositions of our everyday language, just as they stand, are in perfect logical order. — That utterly simple thing, which we have to formulate here, is not a likeness of the truth, but the truth itself in its entirety. (Our problems are not abstract, but perhaps the most concrete that there are.)</a> <br></br> <div class="outline-text-6" id="text-5.5563-In-fact,-all-the-propositions-of-our-everyday-language,-just-as-they-stand,-are-in-perfect-logical-order.-%E2%80%94-That-utterly-simple-thing,-which-we-have-to-formulate-here,-is-not-a-likeness-of-the-truth,-but-the-truth-itself-in-its-entirety.-(Our-problems-are-not-abstract,-but-perhaps-the-most-concrete-that-there-are.)">
 <p>
No, wait, people are very capable of creating nonsensical sentences.
</p>

 <p>
Everyday life is a very complex thing actually, to model.
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.557-The-application-of-logic-decides-what-elementary-propositions-there-are.-What-belongs-to-its-application,-logic-cannot-anticipate.-It-is-clear-that-logic-must-not-clash-with-its-application.-But-logic-has-to-be-in-contact-with-its-application.-Therefore-logic-and-its-application-must-not-overlap."></a> <a href="#5.557-The-application-of-logic-decides-what-elementary-propositions-there-are.-What-belongs-to-its-application,-logic-cannot-anticipate.-It-is-clear-that-logic-must-not-clash-with-its-application.-But-logic-has-to-be-in-contact-with-its-application.-Therefore-logic-and-its-application-must-not-overlap.">5.557 The application of logic decides what elementary propositions there are. What belongs to its application, logic cannot anticipate. It is clear that logic must not clash with its application. But logic has to be in contact with its application. Therefore logic and its application must not overlap.</a> <br></br> <div class="outline-text-5" id="text-5.557-The-application-of-logic-decides-what-elementary-propositions-there-are.-What-belongs-to-its-application,-logic-cannot-anticipate.-It-is-clear-that-logic-must-not-clash-with-its-application.-But-logic-has-to-be-in-contact-with-its-application.-Therefore-logic-and-its-application-must-not-overlap.">
 <p>
I think this is an emotional stance against breaking abstraction barriers.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.5571-If-I-cannot-say-a-priori-what-elementary-propositions-there-are,-then-the-attempt-to-do-so-must-lead-to-obvious-nonsense."></a> <a href="#5.5571-If-I-cannot-say-a-priori-what-elementary-propositions-there-are,-then-the-attempt-to-do-so-must-lead-to-obvious-nonsense.">5.5571 If I cannot say a priori what elementary propositions there are, then the attempt to do so must lead to obvious nonsense.</a> <br></br> <div class="outline-text-6" id="text-5.5571-If-I-cannot-say-a-priori-what-elementary-propositions-there-are,-then-the-attempt-to-do-so-must-lead-to-obvious-nonsense.">
 <p>
Is this a working method of thinking?
Announce facts, and try to reason whether they are meaningful?
</p>
</div>
</li>
</ol></li>
</ol></div>
</div>

 <div id="outline-container-5.6-~The-limits-of-my-language~-mean-the-limits-of-my-world." class="outline-3">
 <h3 id="5.6-~The-limits-of-my-language~-mean-the-limits-of-my-world."> <span class="section-number-3">5.6.</span>  <a href="#5.6-~The-limits-of-my-language~-mean-the-limits-of-my-world.">5.6  <code>The limits of my language</code> mean the limits of my world.</a></h3>
 <div class="outline-text-3" id="text-5.6-~The-limits-of-my-language~-mean-the-limits-of-my-world.">
 <p>
Presumably, we are thinking with language.
But let us imagine a person who used to have the sense of smell, and then lost it.
He still remembers what the smell is, but it is not longer in his world.
</p>
</div>

 <div id="outline-container-5.61-Logic-pervades-the-world:-the-limits-of-the-world-are-also-its-limits.-So-we-cannot-say-in-logic,-%E2%80%98The-world-has-this-in-it,-and-this,-but-not-that.%E2%80%99-For-that-would-appear-to-presuppose-that-we-were-excluding-certain-possibilities,-and-this-cannot-be-the-case,-since-it-would-require-that-logic-should-go-beyond-the-limits-of-the-world;-for-only-in-that-way-could-it-view-those-limits-from-the-other-side-as-well.-We-cannot-think-what-we-cannot-think;-so-what-we-cannot-think-we-cannot-say-either." class="outline-4">
 <h4 id="5.61-Logic-pervades-the-world:-the-limits-of-the-world-are-also-its-limits.-So-we-cannot-say-in-logic,-%E2%80%98The-world-has-this-in-it,-and-this,-but-not-that.%E2%80%99-For-that-would-appear-to-presuppose-that-we-were-excluding-certain-possibilities,-and-this-cannot-be-the-case,-since-it-would-require-that-logic-should-go-beyond-the-limits-of-the-world;-for-only-in-that-way-could-it-view-those-limits-from-the-other-side-as-well.-We-cannot-think-what-we-cannot-think;-so-what-we-cannot-think-we-cannot-say-either."> <span class="section-number-4">5.6.1.</span>  <a href="#5.61-Logic-pervades-the-world:-the-limits-of-the-world-are-also-its-limits.-So-we-cannot-say-in-logic,-%E2%80%98The-world-has-this-in-it,-and-this,-but-not-that.%E2%80%99-For-that-would-appear-to-presuppose-that-we-were-excluding-certain-possibilities,-and-this-cannot-be-the-case,-since-it-would-require-that-logic-should-go-beyond-the-limits-of-the-world;-for-only-in-that-way-could-it-view-those-limits-from-the-other-side-as-well.-We-cannot-think-what-we-cannot-think;-so-what-we-cannot-think-we-cannot-say-either.">5.61 Logic pervades the world: the limits of the world are also its limits. So we cannot say in logic, ‘The world has this in it, and this, but not that.’ For that would appear to presuppose that we were excluding certain possibilities, and this cannot be the case, since it would require that logic should go beyond the limits of the world; for only in that way could it view those limits from the other side as well. We cannot think what we cannot think; so what we cannot think we cannot say either.</a></h4>
 <div class="outline-text-4" id="text-5.61-Logic-pervades-the-world:-the-limits-of-the-world-are-also-its-limits.-So-we-cannot-say-in-logic,-%E2%80%98The-world-has-this-in-it,-and-this,-but-not-that.%E2%80%99-For-that-would-appear-to-presuppose-that-we-were-excluding-certain-possibilities,-and-this-cannot-be-the-case,-since-it-would-require-that-logic-should-go-beyond-the-limits-of-the-world;-for-only-in-that-way-could-it-view-those-limits-from-the-other-side-as-well.-We-cannot-think-what-we-cannot-think;-so-what-we-cannot-think-we-cannot-say-either.">
 <p>
What we cannot digitise, we cannot produce any program about.
</p>
</div>
</div>

 <div id="outline-container-5.62-This-remark-provides-the-key-to-the-problem,-how-much-truth-there-is-in-solipsism.-For-what-the-solipsist-~means~-is-quite-correct;-only-it-cannot-be-~said~,-but-makes-itself-manifest.-The-world-is-my-world:-this-is-manifest-in-the-fact-that-the-limits-of-~language~-(of-that-language-which-alone-I-understand)-mean-the-limits-of-my-world." class="outline-4">
 <h4 id="5.62-This-remark-provides-the-key-to-the-problem,-how-much-truth-there-is-in-solipsism.-For-what-the-solipsist-~means~-is-quite-correct;-only-it-cannot-be-~said~,-but-makes-itself-manifest.-The-world-is-my-world:-this-is-manifest-in-the-fact-that-the-limits-of-~language~-(of-that-language-which-alone-I-understand)-mean-the-limits-of-my-world."> <span class="section-number-4">5.6.2.</span>  <a href="#5.62-This-remark-provides-the-key-to-the-problem,-how-much-truth-there-is-in-solipsism.-For-what-the-solipsist-~means~-is-quite-correct;-only-it-cannot-be-~said~,-but-makes-itself-manifest.-The-world-is-my-world:-this-is-manifest-in-the-fact-that-the-limits-of-~language~-(of-that-language-which-alone-I-understand)-mean-the-limits-of-my-world.">5.62 This remark provides the key to the problem, how much truth there is in solipsism. For what the solipsist  <code>means</code> is quite correct; only it cannot be  <code>said</code>, but makes itself manifest. The world is my world: this is manifest in the fact that the limits of  <code>language</code> (of that language which alone I understand) mean the limits of my world.</a></h4>
 <div class="outline-text-4" id="text-5.62-This-remark-provides-the-key-to-the-problem,-how-much-truth-there-is-in-solipsism.-For-what-the-solipsist-~means~-is-quite-correct;-only-it-cannot-be-~said~,-but-makes-itself-manifest.-The-world-is-my-world:-this-is-manifest-in-the-fact-that-the-limits-of-~language~-(of-that-language-which-alone-I-understand)-mean-the-limits-of-my-world.">
 <p>
Solipsism cannot be "articulated", because it itself presupposes the fact that the words of the articulation will not be transmitted anywhere.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.621-The-world-and-life-are-one."></a> <a href="#5.621-The-world-and-life-are-one.">5.621 The world and life are one.</a> <br></br> <div class="outline-text-5" id="text-5.621-The-world-and-life-are-one.">
 <p>
Computo ergo sum.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-5.63-I-am-my-world.-(The-microcosm.)" class="outline-4">
 <h4 id="5.63-I-am-my-world.-(The-microcosm.)"> <span class="section-number-4">5.6.3.</span>  <a href="#5.63-I-am-my-world.-(The-microcosm.)">5.63 I am my world. (The microcosm.)</a></h4>
 <div class="outline-text-4" id="text-5.63-I-am-my-world.-(The-microcosm.)">
 <p>
Solipsism.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.631-There-is-no-such-thing-as-the-subject-that-thinks-or-entertains-ideas.-If-I-wrote-a-book-called-The-World-as-I-found-it,-I-should-have-to-include-a-report-on-my-body,-and-should-have-to-say-which-parts-were-subordinate-to-my-will,-and-which-were-not,-etc.,-this-being-a-method-of-isolating-the-subject,-or-rather-of-showing-that-in-an-important-sense-there-is-no-subject;-for-it-alone-could-not-be-mentioned-in-that-book.%E2%80%94"></a> <a href="#5.631-There-is-no-such-thing-as-the-subject-that-thinks-or-entertains-ideas.-If-I-wrote-a-book-called-The-World-as-I-found-it,-I-should-have-to-include-a-report-on-my-body,-and-should-have-to-say-which-parts-were-subordinate-to-my-will,-and-which-were-not,-etc.,-this-being-a-method-of-isolating-the-subject,-or-rather-of-showing-that-in-an-important-sense-there-is-no-subject;-for-it-alone-could-not-be-mentioned-in-that-book.%E2%80%94">5.631 There is no such thing as the subject that thinks or entertains ideas. If I wrote a book called The World as I found it, I should have to include a report on my body, and should have to say which parts were subordinate to my will, and which were not, etc., this being a method of isolating the subject, or rather of showing that in an important sense there is no subject; for it alone could not be mentioned in that book.—</a> <br></br> <div class="outline-text-5" id="text-5.631-There-is-no-such-thing-as-the-subject-that-thinks-or-entertains-ideas.-If-I-wrote-a-book-called-The-World-as-I-found-it,-I-should-have-to-include-a-report-on-my-body,-and-should-have-to-say-which-parts-were-subordinate-to-my-will,-and-which-were-not,-etc.,-this-being-a-method-of-isolating-the-subject,-or-rather-of-showing-that-in-an-important-sense-there-is-no-subject;-for-it-alone-could-not-be-mentioned-in-that-book.%E2%80%94">
 <p>
In fact, this is how good texts are written!
A writer gives an account of himself first, in order to let the readers understand from which viewpoint he is writing.
</p>

 <p>
I remember that there used to be a similar tradition in the common law court procedures.
Explain yourself first.
</p>
</div>
</li>

 <li> <a id="5.632-The-subject-does-not-belong-to-the-world:-rather,-it-is-a-limit-of-the-world."></a> <a href="#5.632-The-subject-does-not-belong-to-the-world:-rather,-it-is-a-limit-of-the-world.">5.632 The subject does not belong to the world: rather, it is a limit of the world.</a> <br></br> <div class="outline-text-5" id="text-5.632-The-subject-does-not-belong-to-the-world:-rather,-it-is-a-limit-of-the-world.">
 <p>
A computer.
</p>
</div>
</li>

 <li> <a id="5.633-Where-in-the-world-is-a-metaphysical-subject-to-be-found?-You-will-say-that-this-is-exactly-like-the-case-of-the-eye-and-the-visual-field.-But-really-you-do-not-see-the-eye.-And-nothing-in-the-visual-field-allows-you-to-infer-that-it-is-seen-by-an-eye."></a> <a href="#5.633-Where-in-the-world-is-a-metaphysical-subject-to-be-found?-You-will-say-that-this-is-exactly-like-the-case-of-the-eye-and-the-visual-field.-But-really-you-do-not-see-the-eye.-And-nothing-in-the-visual-field-allows-you-to-infer-that-it-is-seen-by-an-eye.">5.633 Where in the world is a metaphysical subject to be found? You will say that this is exactly like the case of the eye and the visual field. But really you do not see the eye. And nothing in the visual field allows you to infer that it is seen by an eye.</a> <br></br> <div class="outline-text-5" id="text-5.633-Where-in-the-world-is-a-metaphysical-subject-to-be-found?-You-will-say-that-this-is-exactly-like-the-case-of-the-eye-and-the-visual-field.-But-really-you-do-not-see-the-eye.-And-nothing-in-the-visual-field-allows-you-to-infer-that-it-is-seen-by-an-eye.">
 <p>
Well, in a computer we have a lot of things to query the underlying system.
cpuid, cpuinfo, just reading the interpreter's memory.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.6331-For-the-form-of-the-visual-field-is-surely-not-like-this-@"></a> <a href="#5.6331-For-the-form-of-the-visual-field-is-surely-not-like-this-@">5.6331 For the form of the visual field is surely not like this @</a> <br></br> <div class="outline-text-6" id="text-5.6331-For-the-form-of-the-visual-field-is-surely-not-like-this-@">
 <p>
(Wittgenstein here has a sketch of a potential visual field.)
</p>
</div>
</li>
</ol></li>

 <li> <a id="5.634-This-is-connected-with-the-fact-that-no-part-of-our-experience-is-at-the-same-time-a-priori.-Whatever-we-see-could-be-other-than-it-is.-Whatever-we-can-describe-at-all-could-be-other-than-it-is.-There-is-no-a-priori-order-of-things."></a> <a href="#5.634-This-is-connected-with-the-fact-that-no-part-of-our-experience-is-at-the-same-time-a-priori.-Whatever-we-see-could-be-other-than-it-is.-Whatever-we-can-describe-at-all-could-be-other-than-it-is.-There-is-no-a-priori-order-of-things.">5.634 This is connected with the fact that no part of our experience is at the same time a priori. Whatever we see could be other than it is. Whatever we can describe at all could be other than it is. There is no a priori order of things.</a> <br></br> <div class="outline-text-5" id="text-5.634-This-is-connected-with-the-fact-that-no-part-of-our-experience-is-at-the-same-time-a-priori.-Whatever-we-see-could-be-other-than-it-is.-Whatever-we-can-describe-at-all-could-be-other-than-it-is.-There-is-no-a-priori-order-of-things.">
 <p>
So, the input that we expect to be a picture of a chair may actually be a wavefront on the camera sensor.
We just do not know.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-5.64-Here-it-can-be-seen-that-solipsism,-when-its-implications-are-followed-out-strictly,-coincides-with-pure-realism.-The-self-of-solipsism-shrinks-to-a-point-without-extension,-and-there-remains-the-reality-co-ordinated-with-it." class="outline-4">
 <h4 id="5.64-Here-it-can-be-seen-that-solipsism,-when-its-implications-are-followed-out-strictly,-coincides-with-pure-realism.-The-self-of-solipsism-shrinks-to-a-point-without-extension,-and-there-remains-the-reality-co-ordinated-with-it."> <span class="section-number-4">5.6.4.</span>  <a href="#5.64-Here-it-can-be-seen-that-solipsism,-when-its-implications-are-followed-out-strictly,-coincides-with-pure-realism.-The-self-of-solipsism-shrinks-to-a-point-without-extension,-and-there-remains-the-reality-co-ordinated-with-it.">5.64 Here it can be seen that solipsism, when its implications are followed out strictly, coincides with pure realism. The self of solipsism shrinks to a point without extension, and there remains the reality co-ordinated with it.</a></h4>
 <div class="outline-text-4" id="text-5.64-Here-it-can-be-seen-that-solipsism,-when-its-implications-are-followed-out-strictly,-coincides-with-pure-realism.-The-self-of-solipsism-shrinks-to-a-point-without-extension,-and-there-remains-the-reality-co-ordinated-with-it.">
 <p>
Okay, so he is actually a solipsist.
</p>
</div>

 <ol class="org-ol"> <li> <a id="5.641-Thus-there-really-is-a-sense-in-which-philosophy-can-talk-about-the-self-in-a-non-psychological-way.-What-brings-the-self-into-philosophy-is-the-fact-that-%E2%80%98the-world-is-my-world%E2%80%99.-The-philosophical-self-is-not-the-human-being,-not-the-human-body,-or-the-human-soul,-with-which-psychology-deals,-but-rather-the-metaphysical-subject,-the-limit-of-the-world-%E2%80%94-not-a-part-of-it."></a> <a href="#5.641-Thus-there-really-is-a-sense-in-which-philosophy-can-talk-about-the-self-in-a-non-psychological-way.-What-brings-the-self-into-philosophy-is-the-fact-that-%E2%80%98the-world-is-my-world%E2%80%99.-The-philosophical-self-is-not-the-human-being,-not-the-human-body,-or-the-human-soul,-with-which-psychology-deals,-but-rather-the-metaphysical-subject,-the-limit-of-the-world-%E2%80%94-not-a-part-of-it.">5.641 Thus there really is a sense in which philosophy can talk about the self in a non-psychological way. What brings the self into philosophy is the fact that ‘the world is my world’. The philosophical self is not the human being, not the human body, or the human soul, with which psychology deals, but rather the metaphysical subject, the limit of the world — not a part of it.</a> <br></br> <div class="outline-text-5" id="text-5.641-Thus-there-really-is-a-sense-in-which-philosophy-can-talk-about-the-self-in-a-non-psychological-way.-What-brings-the-self-into-philosophy-is-the-fact-that-%E2%80%98the-world-is-my-world%E2%80%99.-The-philosophical-self-is-not-the-human-being,-not-the-human-body,-or-the-human-soul,-with-which-psychology-deals,-but-rather-the-metaphysical-subject,-the-limit-of-the-world-%E2%80%94-not-a-part-of-it.">
 <p>
So, "self" in philosophy is a model of the interpreter that is running our simulation.
</p>
</div>
</li>
</ol></div>
</div>
</section> <section id="outline-container-6-The-general-form-of-a-truth-function-is-%5B(p),-(%CE%BE),-N((%CE%BE))%5D.-This-is-the-general-form-of-a-proposition." class="outline-2"> <h2 id="6-The-general-form-of-a-truth-function-is-%5B(p),-(%CE%BE),-N((%CE%BE))%5D.-This-is-the-general-form-of-a-proposition."> <span class="section-number-2">6.</span>  <a href="#6-The-general-form-of-a-truth-function-is-%5B(p),-(%CE%BE),-N((%CE%BE))%5D.-This-is-the-general-form-of-a-proposition.">6 The general form of a truth-function is [(p), (ξ), N((ξ))]. This is the general form of a proposition.</a></h2>
 <div class="outline-text-2" id="text-6-The-general-form-of-a-truth-function-is-%5B(p),-(%CE%BE),-N((%CE%BE))%5D.-This-is-the-general-form-of-a-proposition.">
 <p>
All possible p (inputs), all possible ξ (propositions), all applications of the Horn rule, which should tell us whether non-elementary propositions are derivable?
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.001-What-this-says-is-just-that-every-proposition-is-a-result-of-successive-applications-to-elementary-propositions-of-the-operation-N((%CE%BE))."></a> <a href="#6.001-What-this-says-is-just-that-every-proposition-is-a-result-of-successive-applications-to-elementary-propositions-of-the-operation-N((%CE%BE)).">6.001 What this says is just that every proposition is a result of successive applications to elementary propositions of the operation N((ξ)).</a> <br></br> <div class="outline-text-5" id="text-6.001-What-this-says-is-just-that-every-proposition-is-a-result-of-successive-applications-to-elementary-propositions-of-the-operation-N((%CE%BE)).">
 <p>
Yah, seems like everything should be one giant Prolog interpreter.
</p>

 <p>
Also, ξ is off colossal size.
</p>
</div>
</li>

 <li> <a id="6.002-If-we-are-given-the-general-form-according-to-which-propositions-are-constructed,-then-with-it-we-are-also-given-the-general-form-according-to-which-one-proposition-can-be-generated-out-of-another-by-means-of-an-operation."></a> <a href="#6.002-If-we-are-given-the-general-form-according-to-which-propositions-are-constructed,-then-with-it-we-are-also-given-the-general-form-according-to-which-one-proposition-can-be-generated-out-of-another-by-means-of-an-operation.">6.002 If we are given the general form according to which propositions are constructed, then with it we are also given the general form according to which one proposition can be generated out of another by means of an operation.</a> <br></br> <div class="outline-text-5" id="text-6.002-If-we-are-given-the-general-form-according-to-which-propositions-are-constructed,-then-with-it-we-are-also-given-the-general-form-according-to-which-one-proposition-can-be-generated-out-of-another-by-means-of-an-operation.">
 <p>
So we first generate all possible outputs.
</p>
</div>
</li>
</ol> <div id="outline-container-6.01-Therefore-the-general-form-of-an-operation-%CE%A9%E2%80%99((%CE%B7))-is-%5B-(%CE%BE)-,-N((%CE%BE))%5D%E2%80%99-((%CE%B7))-(=-%5B(%CE%B7),(%CE%BE),-N((%CE%BE))%5D).-This-is-the-most-general-form-of-transition-from-one-proposition-to-another." class="outline-4">
 <h4 id="6.01-Therefore-the-general-form-of-an-operation-%CE%A9%E2%80%99((%CE%B7))-is-%5B-(%CE%BE)-,-N((%CE%BE))%5D%E2%80%99-((%CE%B7))-(=-%5B(%CE%B7),(%CE%BE),-N((%CE%BE))%5D).-This-is-the-most-general-form-of-transition-from-one-proposition-to-another."> <span class="section-number-4">6.0.1.</span>  <a href="#6.01-Therefore-the-general-form-of-an-operation-%CE%A9%E2%80%99((%CE%B7))-is-%5B-(%CE%BE)-,-N((%CE%BE))%5D%E2%80%99-((%CE%B7))-(=-%5B(%CE%B7),(%CE%BE),-N((%CE%BE))%5D).-This-is-the-most-general-form-of-transition-from-one-proposition-to-another.">6.01 Therefore the general form of an operation Ω’((η)) is [ (ξ) , N((ξ))]’ ((η)) (= [(η),(ξ), N((ξ))]). This is the most general form of transition from one proposition to another.</a></h4>
 <div class="outline-text-4" id="text-6.01-Therefore-the-general-form-of-an-operation-%CE%A9%E2%80%99((%CE%B7))-is-%5B-(%CE%BE)-,-N((%CE%BE))%5D%E2%80%99-((%CE%B7))-(=-%5B(%CE%B7),(%CE%BE),-N((%CE%BE))%5D).-This-is-the-most-general-form-of-transition-from-one-proposition-to-another.">
 <p>
The argument here is, I guess, all propositions (not necessarily elementary) which have already been proven.
</p>
</div>
</div>

 <div id="outline-container-6.02-And-this-is-how-we-arrive-at-numbers.-I-give-the-following-definitions-%5C(x-=-%CE%A9%5E%7B0'%7Dx-Def.,-%CE%A9%E2%80%99%CE%A9%5E%7B%CE%BD'%7Dx-=-%CE%A9%5E%7B%CE%BD+1'%7Dx-Def.-%5C)-So,-in-accordance-with-these-rules,-which-deal-with-signs,-we-write-the-series-x,-%CE%A9%E2%80%99x,-%CE%A9%E2%80%99%CE%A9%E2%80%99x,-%CE%A9%E2%80%99%CE%A9%E2%80%99%CE%A9%E2%80%99x,-.-.-.-,-in-the-following-way-%CE%A9%5E0%E2%80%99x,-%CE%A9%5E%7B0+1%7D%E2%80%99x,-%CE%A9%5E%7B0+1+1%7D%E2%80%99x,-%CE%A9%5E%7B0+1+1+1%7D%E2%80%99x,-...-.-Therefore,-instead-of-%E2%80%98%5Bx,-%CE%BE-,-%CE%A9%E2%80%99-%CE%BE-%5D%E2%80%99,-I-write-%E2%80%98%5B-%CE%A9%5E0%E2%80%99x,-%CE%A9%5E%7B%CE%BD%7D%E2%80%99x,-%CE%A9%5E%7B%CE%BD+1%7D%E2%80%99x%5D%E2%80%99.-And-I-give-the-following-definitions-0+1-=-1-Def.,-0+1+1-=-2-Def.,-0+1+1+1-=-3-Def.,-(and-so-on)." class="outline-4">
 <h4 id="6.02-And-this-is-how-we-arrive-at-numbers.-I-give-the-following-definitions-%5C(x-=-%CE%A9%5E%7B0'%7Dx-Def.,-%CE%A9%E2%80%99%CE%A9%5E%7B%CE%BD'%7Dx-=-%CE%A9%5E%7B%CE%BD+1'%7Dx-Def.-%5C)-So,-in-accordance-with-these-rules,-which-deal-with-signs,-we-write-the-series-x,-%CE%A9%E2%80%99x,-%CE%A9%E2%80%99%CE%A9%E2%80%99x,-%CE%A9%E2%80%99%CE%A9%E2%80%99%CE%A9%E2%80%99x,-.-.-.-,-in-the-following-way-%CE%A9%5E0%E2%80%99x,-%CE%A9%5E%7B0+1%7D%E2%80%99x,-%CE%A9%5E%7B0+1+1%7D%E2%80%99x,-%CE%A9%5E%7B0+1+1+1%7D%E2%80%99x,-...-.-Therefore,-instead-of-%E2%80%98%5Bx,-%CE%BE-,-%CE%A9%E2%80%99-%CE%BE-%5D%E2%80%99,-I-write-%E2%80%98%5B-%CE%A9%5E0%E2%80%99x,-%CE%A9%5E%7B%CE%BD%7D%E2%80%99x,-%CE%A9%5E%7B%CE%BD+1%7D%E2%80%99x%5D%E2%80%99.-And-I-give-the-following-definitions-0+1-=-1-Def.,-0+1+1-=-2-Def.,-0+1+1+1-=-3-Def.,-(and-so-on)."> <span class="section-number-4">6.0.2.</span>  <a href="#6.02-And-this-is-how-we-arrive-at-numbers.-I-give-the-following-definitions-%5C(x-=-%CE%A9%5E%7B0'%7Dx-Def.,-%CE%A9%E2%80%99%CE%A9%5E%7B%CE%BD'%7Dx-=-%CE%A9%5E%7B%CE%BD+1'%7Dx-Def.-%5C)-So,-in-accordance-with-these-rules,-which-deal-with-signs,-we-write-the-series-x,-%CE%A9%E2%80%99x,-%CE%A9%E2%80%99%CE%A9%E2%80%99x,-%CE%A9%E2%80%99%CE%A9%E2%80%99%CE%A9%E2%80%99x,-.-.-.-,-in-the-following-way-%CE%A9%5E0%E2%80%99x,-%CE%A9%5E%7B0+1%7D%E2%80%99x,-%CE%A9%5E%7B0+1+1%7D%E2%80%99x,-%CE%A9%5E%7B0+1+1+1%7D%E2%80%99x,-...-.-Therefore,-instead-of-%E2%80%98%5Bx,-%CE%BE-,-%CE%A9%E2%80%99-%CE%BE-%5D%E2%80%99,-I-write-%E2%80%98%5B-%CE%A9%5E0%E2%80%99x,-%CE%A9%5E%7B%CE%BD%7D%E2%80%99x,-%CE%A9%5E%7B%CE%BD+1%7D%E2%80%99x%5D%E2%80%99.-And-I-give-the-following-definitions-0+1-=-1-Def.,-0+1+1-=-2-Def.,-0+1+1+1-=-3-Def.,-(and-so-on).">6.02 And this is how we arrive at numbers. I give the following definitions \(x = Ω^{0'}x Def., Ω’Ω^{ν'}x = Ω^{ν+1'}x Def. \) So, in accordance with these rules, which deal with signs, we write the series x, Ω’x, Ω’Ω’x, Ω’Ω’Ω’x, . . . , in the following way Ω^0’x, Ω <sup>0+1</sup>’x, Ω <sup>0+1+1</sup>’x, Ω <sup>0+1+1+1</sup>’x, … . Therefore, instead of ‘[x, ξ , Ω’ ξ ]’, I write ‘[ Ω^0’x, Ω <sup>ν</sup>’x, Ω <sup>ν+1</sup>’x]’. And I give the following definitions 0+1 = 1 Def., 0+1+1 = 2 Def., 0+1+1+1 = 3 Def., (and so on).</a></h4>
 <div class="outline-text-4" id="text-6.02-And-this-is-how-we-arrive-at-numbers.-I-give-the-following-definitions-%5C(x-=-%CE%A9%5E%7B0'%7Dx-Def.,-%CE%A9%E2%80%99%CE%A9%5E%7B%CE%BD'%7Dx-=-%CE%A9%5E%7B%CE%BD+1'%7Dx-Def.-%5C)-So,-in-accordance-with-these-rules,-which-deal-with-signs,-we-write-the-series-x,-%CE%A9%E2%80%99x,-%CE%A9%E2%80%99%CE%A9%E2%80%99x,-%CE%A9%E2%80%99%CE%A9%E2%80%99%CE%A9%E2%80%99x,-.-.-.-,-in-the-following-way-%CE%A9%5E0%E2%80%99x,-%CE%A9%5E%7B0+1%7D%E2%80%99x,-%CE%A9%5E%7B0+1+1%7D%E2%80%99x,-%CE%A9%5E%7B0+1+1+1%7D%E2%80%99x,-...-.-Therefore,-instead-of-%E2%80%98%5Bx,-%CE%BE-,-%CE%A9%E2%80%99-%CE%BE-%5D%E2%80%99,-I-write-%E2%80%98%5B-%CE%A9%5E0%E2%80%99x,-%CE%A9%5E%7B%CE%BD%7D%E2%80%99x,-%CE%A9%5E%7B%CE%BD+1%7D%E2%80%99x%5D%E2%80%99.-And-I-give-the-following-definitions-0+1-=-1-Def.,-0+1+1-=-2-Def.,-0+1+1+1-=-3-Def.,-(and-so-on).">
 <p>
Again, this is kind of Church numerals.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.021-A-number-is-the-exponent-of-an-operation."></a> <a href="#6.021-A-number-is-the-exponent-of-an-operation.">6.021 A number is the exponent of an operation.</a> <br></br> <div class="outline-text-5" id="text-6.021-A-number-is-the-exponent-of-an-operation.">
 <p>
Yes, Church numeral.
</p>
</div>
</li>

 <li> <a id="6.022-The-concept-of-number-is-simply-what-is-common-to-all-numbers,-the-general-form-of-a-number.-The-concept-of-number-is-the-variable-number.-And-the-concept-of-numerical-equality-is-the-general-form-of-all-particular-cases-of-numerical-equality."></a> <a href="#6.022-The-concept-of-number-is-simply-what-is-common-to-all-numbers,-the-general-form-of-a-number.-The-concept-of-number-is-the-variable-number.-And-the-concept-of-numerical-equality-is-the-general-form-of-all-particular-cases-of-numerical-equality.">6.022 The concept of number is simply what is common to all numbers, the general form of a number. The concept of number is the variable number. And the concept of numerical equality is the general form of all particular cases of numerical equality.</a> <br></br> <div class="outline-text-5" id="text-6.022-The-concept-of-number-is-simply-what-is-common-to-all-numbers,-the-general-form-of-a-number.-The-concept-of-number-is-the-variable-number.-And-the-concept-of-numerical-equality-is-the-general-form-of-all-particular-cases-of-numerical-equality.">
 <p>
This is the idea we often see in later mathematics, although not that much in programming.
"What behaves as X can be used as X".
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-6.03-The-general-form-of-an-integer-is-%5B0,-%CE%BE,-%CE%BE+1%5D." class="outline-4">
 <h4 id="6.03-The-general-form-of-an-integer-is-%5B0,-%CE%BE,-%CE%BE+1%5D."> <span class="section-number-4">6.0.3.</span>  <a href="#6.03-The-general-form-of-an-integer-is-%5B0,-%CE%BE,-%CE%BE+1%5D.">6.03 The general form of an integer is [0, ξ, ξ+1].</a></h4>
 <div class="outline-text-4" id="text-6.03-The-general-form-of-an-integer-is-%5B0,-%CE%BE,-%CE%BE+1%5D.">
 <p>
This +1, I guess, contains a lot of stuff under the carpet.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.031-The-theory-of-classes-is-completely-superfluous-in-mathematics.-This-is-connected-with-the-fact-that-the-generality-required-in-mathematics-is-not-accidental-generality."></a> <a href="#6.031-The-theory-of-classes-is-completely-superfluous-in-mathematics.-This-is-connected-with-the-fact-that-the-generality-required-in-mathematics-is-not-accidental-generality.">6.031 The theory of classes is completely superfluous in mathematics. This is connected with the fact that the generality required in mathematics is not accidental generality.</a> <br></br> <div class="outline-text-5" id="text-6.031-The-theory-of-classes-is-completely-superfluous-in-mathematics.-This-is-connected-with-the-fact-that-the-generality-required-in-mathematics-is-not-accidental-generality.">
 <p>
Does he mean the "theory of sets"?
Or the distinction between classes and sets?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-6.1-The-propositions-of-logic-are-tautologies." class="outline-3">
 <h3 id="6.1-The-propositions-of-logic-are-tautologies."> <span class="section-number-3">6.1.</span>  <a href="#6.1-The-propositions-of-logic-are-tautologies.">6.1 The propositions of logic are tautologies.</a></h3>
 <div class="outline-text-3" id="text-6.1-The-propositions-of-logic-are-tautologies.">
 <p>
Or 'laws of logic'.
</p>
</div>

 <div id="outline-container-6.11-Therefore-the-propositions-of-logic-say-nothing.-(They-are-the-analytic-propositions.)" class="outline-4">
 <h4 id="6.11-Therefore-the-propositions-of-logic-say-nothing.-(They-are-the-analytic-propositions.)"> <span class="section-number-4">6.1.1.</span>  <a href="#6.11-Therefore-the-propositions-of-logic-say-nothing.-(They-are-the-analytic-propositions.)">6.11 Therefore the propositions of logic say nothing. (They are the analytic propositions.)</a></h4>
 <div class="outline-text-4" id="text-6.11-Therefore-the-propositions-of-logic-say-nothing.-(They-are-the-analytic-propositions.)">
 <p>
But they can condense information from the input.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.111-All-theories-that-make-a-proposition-of-logic-appear-to-have-content-are-false.-One-might-think,-for-example,-that-the-words-%E2%80%98true%E2%80%99-and-%E2%80%98false%E2%80%99-signified-two-properties-among-other-properties,-and-then-it-would-seem-to-be-a-remarkable-fact-that-every-proposition-possessed-one-of-these-properties.-On-this-theory-it-seems-to-be-anything--but-obvious,-just-as,-for-instance,-the-proposition,-%E2%80%98All-roses-are-either-yellow-or-red%E2%80%99,-would-not-sound-obvious-even-if-it-were-true.-Indeed,-the-logical-proposition-acquires-all-the-characteristics-of-a-proposition-of-natural-science-and-this-is-the-sure-sign-that-it-has-been-construed-wrongly."></a> <a href="#6.111-All-theories-that-make-a-proposition-of-logic-appear-to-have-content-are-false.-One-might-think,-for-example,-that-the-words-%E2%80%98true%E2%80%99-and-%E2%80%98false%E2%80%99-signified-two-properties-among-other-properties,-and-then-it-would-seem-to-be-a-remarkable-fact-that-every-proposition-possessed-one-of-these-properties.-On-this-theory-it-seems-to-be-anything--but-obvious,-just-as,-for-instance,-the-proposition,-%E2%80%98All-roses-are-either-yellow-or-red%E2%80%99,-would-not-sound-obvious-even-if-it-were-true.-Indeed,-the-logical-proposition-acquires-all-the-characteristics-of-a-proposition-of-natural-science-and-this-is-the-sure-sign-that-it-has-been-construed-wrongly.">6.111 All theories that make a proposition of logic appear to have content are false. One might think, for example, that the words ‘true’ and ‘false’ signified two properties among other properties, and then it would seem to be a remarkable fact that every proposition possessed one of these properties. On this theory it seems to be anything  but obvious, just as, for instance, the proposition, ‘All roses are either yellow or red’, would not sound obvious even if it were true. Indeed, the logical proposition acquires all the characteristics of a proposition of natural science and this is the sure sign that it has been construed wrongly.</a> <br></br> <div class="outline-text-5" id="text-6.111-All-theories-that-make-a-proposition-of-logic-appear-to-have-content-are-false.-One-might-think,-for-example,-that-the-words-%E2%80%98true%E2%80%99-and-%E2%80%98false%E2%80%99-signified-two-properties-among-other-properties,-and-then-it-would-seem-to-be-a-remarkable-fact-that-every-proposition-possessed-one-of-these-properties.-On-this-theory-it-seems-to-be-anything--but-obvious,-just-as,-for-instance,-the-proposition,-%E2%80%98All-roses-are-either-yellow-or-red%E2%80%99,-would-not-sound-obvious-even-if-it-were-true.-Indeed,-the-logical-proposition-acquires-all-the-characteristics-of-a-proposition-of-natural-science-and-this-is-the-sure-sign-that-it-has-been-construed-wrongly.">
 <p>
Fortran has a bessel function as a primitive.
Surely superfluous!
</p>
</div>
</li>

 <li> <a id="6.112-The-correct-explanation-of-the-propositions-of-logic-must-assign-to-them-a-unique-status-among-all-propositions."></a> <a href="#6.112-The-correct-explanation-of-the-propositions-of-logic-must-assign-to-them-a-unique-status-among-all-propositions.">6.112 The correct explanation of the propositions of logic must assign to them a unique status among all propositions.</a> <br></br> <div class="outline-text-5" id="text-6.112-The-correct-explanation-of-the-propositions-of-logic-must-assign-to-them-a-unique-status-among-all-propositions.">
 <p>
The status of "laws"?
</p>
</div>
</li>

 <li> <a id="6.113-It-is-the-peculiar-mark-of-logical-propositions-that-one-can-recognize-that-they-are-true-from-the-symbol-alone,-and-this-fact-contains-in-itself-the-whole-philosophy-of-logic.-And-so-too-it-is-a-very-important-fact-that-the-truth-or-falsity-of-non-logical-propositions-cannot-be-recognized-from-the-propositions-alone."></a> <a href="#6.113-It-is-the-peculiar-mark-of-logical-propositions-that-one-can-recognize-that-they-are-true-from-the-symbol-alone,-and-this-fact-contains-in-itself-the-whole-philosophy-of-logic.-And-so-too-it-is-a-very-important-fact-that-the-truth-or-falsity-of-non-logical-propositions-cannot-be-recognized-from-the-propositions-alone.">6.113 It is the peculiar mark of logical propositions that one can recognize that they are true from the symbol alone, and this fact contains in itself the whole philosophy of logic. And so too it is a very important fact that the truth or falsity of non-logical propositions cannot be recognized from the propositions alone.</a> <br></br> <div class="outline-text-5" id="text-6.113-It-is-the-peculiar-mark-of-logical-propositions-that-one-can-recognize-that-they-are-true-from-the-symbol-alone,-and-this-fact-contains-in-itself-the-whole-philosophy-of-logic.-And-so-too-it-is-a-very-important-fact-that-the-truth-or-falsity-of-non-logical-propositions-cannot-be-recognized-from-the-propositions-alone.">
 <p>
Well, make your programming languages consistent.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-6.12-The-fact-that-the-propositions-of-logic-are-tautologies-shows-the-formal-%E2%80%94-logical-%E2%80%94-properties-of-language-and-the-world.-The-fact-that-a-tautology-is-yielded-by-this-particular-way-of-connecting-its-constituents-characterizes-the-logic-of-its-constituents.-If-propositions-are-to-yield-a-tautology-when-they-are-connected-in-a-certain-way,-they-must-have-certain-structural-properties.-So-their-yielding-a-tautology-when-combined-in-this-way-shows-that-they-possess-these-structural-properties." class="outline-4">
 <h4 id="6.12-The-fact-that-the-propositions-of-logic-are-tautologies-shows-the-formal-%E2%80%94-logical-%E2%80%94-properties-of-language-and-the-world.-The-fact-that-a-tautology-is-yielded-by-this-particular-way-of-connecting-its-constituents-characterizes-the-logic-of-its-constituents.-If-propositions-are-to-yield-a-tautology-when-they-are-connected-in-a-certain-way,-they-must-have-certain-structural-properties.-So-their-yielding-a-tautology-when-combined-in-this-way-shows-that-they-possess-these-structural-properties."> <span class="section-number-4">6.1.2.</span>  <a href="#6.12-The-fact-that-the-propositions-of-logic-are-tautologies-shows-the-formal-%E2%80%94-logical-%E2%80%94-properties-of-language-and-the-world.-The-fact-that-a-tautology-is-yielded-by-this-particular-way-of-connecting-its-constituents-characterizes-the-logic-of-its-constituents.-If-propositions-are-to-yield-a-tautology-when-they-are-connected-in-a-certain-way,-they-must-have-certain-structural-properties.-So-their-yielding-a-tautology-when-combined-in-this-way-shows-that-they-possess-these-structural-properties.">6.12 The fact that the propositions of logic are tautologies shows the formal — logical — properties of language and the world. The fact that a tautology is yielded by this particular way of connecting its constituents characterizes the logic of its constituents. If propositions are to yield a tautology when they are connected in a certain way, they must have certain structural properties. So their yielding a tautology when combined in this way shows that they possess these structural properties.</a></h4>
 <div class="outline-text-4" id="text-6.12-The-fact-that-the-propositions-of-logic-are-tautologies-shows-the-formal-%E2%80%94-logical-%E2%80%94-properties-of-language-and-the-world.-The-fact-that-a-tautology-is-yielded-by-this-particular-way-of-connecting-its-constituents-characterizes-the-logic-of-its-constituents.-If-propositions-are-to-yield-a-tautology-when-they-are-connected-in-a-certain-way,-they-must-have-certain-structural-properties.-So-their-yielding-a-tautology-when-combined-in-this-way-shows-that-they-possess-these-structural-properties.">
 <p>
And?
Is this the property of a particular logic?
Or logics in general?
Or this world?
Or human brain?
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.1201-For-example,-the-fact-that-the-propositions-%E2%80%98p%E2%80%99-and-%E2%80%98~p%E2%80%99-in-the-combination-%E2%80%98~(p.~p)%E2%80%99-yield-a-tautology-shows-that-they-contradict-one-another.-The-fact-that-the-propositions-%E2%80%98p-%E2%8A%83-q%E2%80%99,-%E2%80%98p%E2%80%99,-and-%E2%80%98q%E2%80%99,-combined-with-one-another-in-the-form-%E2%80%98(p-%E2%8A%83-q).(p):%E2%8A%83:(q)%E2%80%99,-yield-a-tautology-shows-that-q-follows-from-p-and-p%E2%8A%83q.-The-fact-that-%E2%80%98(x).fx:%E2%8A%83fa%E2%80%99-is-a-tautology-shows-that-fa-follows-from-(x).fx.-Etc.-etc."></a> <a href="#6.1201-For-example,-the-fact-that-the-propositions-%E2%80%98p%E2%80%99-and-%E2%80%98~p%E2%80%99-in-the-combination-%E2%80%98~(p.~p)%E2%80%99-yield-a-tautology-shows-that-they-contradict-one-another.-The-fact-that-the-propositions-%E2%80%98p-%E2%8A%83-q%E2%80%99,-%E2%80%98p%E2%80%99,-and-%E2%80%98q%E2%80%99,-combined-with-one-another-in-the-form-%E2%80%98(p-%E2%8A%83-q).(p):%E2%8A%83:(q)%E2%80%99,-yield-a-tautology-shows-that-q-follows-from-p-and-p%E2%8A%83q.-The-fact-that-%E2%80%98(x).fx:%E2%8A%83fa%E2%80%99-is-a-tautology-shows-that-fa-follows-from-(x).fx.-Etc.-etc.">6.1201 For example, the fact that the propositions ‘p’ and ‘~p’ in the combination ‘~(p.~p)’ yield a tautology shows that they contradict one another. The fact that the propositions ‘p ⊃ q’, ‘p’, and ‘q’, combined with one another in the form ‘(p ⊃ q).(p):⊃:(q)’, yield a tautology shows that q follows from p and p⊃q. The fact that ‘(x).fx:⊃fa’ is a tautology shows that fa follows from (x).fx. Etc. etc.</a> <br></br> <div class="outline-text-6" id="text-6.1201-For-example,-the-fact-that-the-propositions-%E2%80%98p%E2%80%99-and-%E2%80%98~p%E2%80%99-in-the-combination-%E2%80%98~(p.~p)%E2%80%99-yield-a-tautology-shows-that-they-contradict-one-another.-The-fact-that-the-propositions-%E2%80%98p-%E2%8A%83-q%E2%80%99,-%E2%80%98p%E2%80%99,-and-%E2%80%98q%E2%80%99,-combined-with-one-another-in-the-form-%E2%80%98(p-%E2%8A%83-q).(p):%E2%8A%83:(q)%E2%80%99,-yield-a-tautology-shows-that-q-follows-from-p-and-p%E2%8A%83q.-The-fact-that-%E2%80%98(x).fx:%E2%8A%83fa%E2%80%99-is-a-tautology-shows-that-fa-follows-from-(x).fx.-Etc.-etc.">
 <p>
So, laws of logic are tautologies in the logical notation.
Is that the thing Wittgenstein want to say?
</p>

 <p>
Again, we use tautologies to optimise the code.
</p>
</div>
</li>

 <li> <a id="6.1202-It-is-clear-that-one-could-achieve-the-same-purpose-by-using-contradictions-instead-of-tautologies."></a> <a href="#6.1202-It-is-clear-that-one-could-achieve-the-same-purpose-by-using-contradictions-instead-of-tautologies.">6.1202 It is clear that one could achieve the same purpose by using contradictions instead of tautologies.</a> <br></br> <div class="outline-text-6" id="text-6.1202-It-is-clear-that-one-could-achieve-the-same-purpose-by-using-contradictions-instead-of-tautologies.">
 <p>
And we use contraditions to find bugs in code.
</p>
</div>
</li>

 <li> <a id="6.1203-In-order-to-recognize-an-expression-as-a-tautology,-in-cases-where-no-generality-sign-occurs-in-it,-one-can-employ-the-following-intuitive-method:-instead-of-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99,-etc.-I-write-%E2%80%98TpF%E2%80%99,-%E2%80%98TqF%E2%80%99,-%E2%80%98TrF%E2%80%99,-etc.-Truth-combinations-I-express-by-means-of-brackets,-e.g.-@-and-I-use-lines-to-express-the-correlation-of-the-truth-or-falsity-of-the-whole-proposition-with-the-truth-combinations-of-its-truth-arguments,-in-the-following-way-@--So-this-sign,-for-instance,-would-represent-the-proposition-p-%E2%8A%83-q.-Now,-by-way-of-example,-I-wish-to-examine-the-proposition-~(p.~p)-(the-law-of-contradiction)-in-order-to-determine-whether-it-is-a-tautology.-In-our-notation-the-form-%E2%80%98~%CE%BE-%E2%80%99-is-written-as-@-and-the-form-%E2%80%98~%CE%BE-.-%CE%B7-%E2%80%99-as-@-.-Hence-the-proposition-~(p.~q)-reads-as-follows-@-If-we-here-substitute-%E2%80%98p%E2%80%99-for-%E2%80%98q%E2%80%99-and-examine-how-the-outermost-T-and-F-are-connected-with-the-innermost-ones,-the-result-will-be-that-the-truth-of-the-whole-proposition-is-correlated-with-all-the-truth-combinations-of-its-argument,-and-its-falsity-with-none-of-the-truth-combinations."></a> <a href="#6.1203-In-order-to-recognize-an-expression-as-a-tautology,-in-cases-where-no-generality-sign-occurs-in-it,-one-can-employ-the-following-intuitive-method:-instead-of-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99,-etc.-I-write-%E2%80%98TpF%E2%80%99,-%E2%80%98TqF%E2%80%99,-%E2%80%98TrF%E2%80%99,-etc.-Truth-combinations-I-express-by-means-of-brackets,-e.g.-@-and-I-use-lines-to-express-the-correlation-of-the-truth-or-falsity-of-the-whole-proposition-with-the-truth-combinations-of-its-truth-arguments,-in-the-following-way-@--So-this-sign,-for-instance,-would-represent-the-proposition-p-%E2%8A%83-q.-Now,-by-way-of-example,-I-wish-to-examine-the-proposition-~(p.~p)-(the-law-of-contradiction)-in-order-to-determine-whether-it-is-a-tautology.-In-our-notation-the-form-%E2%80%98~%CE%BE-%E2%80%99-is-written-as-@-and-the-form-%E2%80%98~%CE%BE-.-%CE%B7-%E2%80%99-as-@-.-Hence-the-proposition-~(p.~q)-reads-as-follows-@-If-we-here-substitute-%E2%80%98p%E2%80%99-for-%E2%80%98q%E2%80%99-and-examine-how-the-outermost-T-and-F-are-connected-with-the-innermost-ones,-the-result-will-be-that-the-truth-of-the-whole-proposition-is-correlated-with-all-the-truth-combinations-of-its-argument,-and-its-falsity-with-none-of-the-truth-combinations.">6.1203 In order to recognize an expression as a tautology, in cases where no generality-sign occurs in it, one can employ the following intuitive method: instead of ‘p’, ‘q’, ‘r’, etc. I write ‘TpF’, ‘TqF’, ‘TrF’, etc. Truth-combinations I express by means of brackets, e.g. @ and I use lines to express the correlation of the truth or falsity of the whole proposition with the truth-combinations of its truth-arguments, in the following way @  So this sign, for instance, would represent the proposition p ⊃ q. Now, by way of example, I wish to examine the proposition ~(p.~p) (the law of contradiction) in order to determine whether it is a tautology. In our notation the form ‘~ξ ’ is written as @ and the form ‘~ξ . η ’ as @ . Hence the proposition ~(p.~q) reads as follows @ If we here substitute ‘p’ for ‘q’ and examine how the outermost T and F are connected with the innermost ones, the result will be that the truth of the whole proposition is correlated with all the truth-combinations of its argument, and its falsity with none of the truth-combinations.</a> <br></br> <div class="outline-text-6" id="text-6.1203-In-order-to-recognize-an-expression-as-a-tautology,-in-cases-where-no-generality-sign-occurs-in-it,-one-can-employ-the-following-intuitive-method:-instead-of-%E2%80%98p%E2%80%99,-%E2%80%98q%E2%80%99,-%E2%80%98r%E2%80%99,-etc.-I-write-%E2%80%98TpF%E2%80%99,-%E2%80%98TqF%E2%80%99,-%E2%80%98TrF%E2%80%99,-etc.-Truth-combinations-I-express-by-means-of-brackets,-e.g.-@-and-I-use-lines-to-express-the-correlation-of-the-truth-or-falsity-of-the-whole-proposition-with-the-truth-combinations-of-its-truth-arguments,-in-the-following-way-@--So-this-sign,-for-instance,-would-represent-the-proposition-p-%E2%8A%83-q.-Now,-by-way-of-example,-I-wish-to-examine-the-proposition-~(p.~p)-(the-law-of-contradiction)-in-order-to-determine-whether-it-is-a-tautology.-In-our-notation-the-form-%E2%80%98~%CE%BE-%E2%80%99-is-written-as-@-and-the-form-%E2%80%98~%CE%BE-.-%CE%B7-%E2%80%99-as-@-.-Hence-the-proposition-~(p.~q)-reads-as-follows-@-If-we-here-substitute-%E2%80%98p%E2%80%99-for-%E2%80%98q%E2%80%99-and-examine-how-the-outermost-T-and-F-are-connected-with-the-innermost-ones,-the-result-will-be-that-the-truth-of-the-whole-proposition-is-correlated-with-all-the-truth-combinations-of-its-argument,-and-its-falsity-with-none-of-the-truth-combinations.">
 <p>
(For the graphs, see the printed edition of the Tractatus.)
</p>

 <p>
He is trying to draw an evaluation graph for a tautology.
</p>

 <p>
And, expectedly, getting that there is no path that is leading to the false value.
</p>
</div>
</li>
</ol> <li> <a id="6.121-The-propositions-of-logic-demonstrate-the-logical-properties-of-propositions-by-combining-them-so-as-to-form-propositions-that-say-nothing.-This-method-could-also-be-called-a-zero-method.-In-a-logical-proposition,-propositions-are-brought-into-equilibrium-with-one-another,-and-the-state-of-equilibrium-then-indicates-what-the-logical-constitution-of-these-propositions-must-be."></a> <a href="#6.121-The-propositions-of-logic-demonstrate-the-logical-properties-of-propositions-by-combining-them-so-as-to-form-propositions-that-say-nothing.-This-method-could-also-be-called-a-zero-method.-In-a-logical-proposition,-propositions-are-brought-into-equilibrium-with-one-another,-and-the-state-of-equilibrium-then-indicates-what-the-logical-constitution-of-these-propositions-must-be.">6.121 The propositions of logic demonstrate the logical properties of propositions by combining them so as to form propositions that say nothing. This method could also be called a zero-method. In a logical proposition, propositions are brought into equilibrium with one another, and the state of equilibrium then indicates what the logical constitution of these propositions must be.</a> <br></br> <div class="outline-text-5" id="text-6.121-The-propositions-of-logic-demonstrate-the-logical-properties-of-propositions-by-combining-them-so-as-to-form-propositions-that-say-nothing.-This-method-could-also-be-called-a-zero-method.-In-a-logical-proposition,-propositions-are-brought-into-equilibrium-with-one-another,-and-the-state-of-equilibrium-then-indicates-what-the-logical-constitution-of-these-propositions-must-be.">
 <p>
It's kind of like a sketch of a method for the creation of new tautologies…
</p>

 <p>
I am trying to think whether this is actually an inverse way of writing the Horn clause?
Like, in the "Definite" form of it.
</p>
</div>
</li>

 <li> <a id="6.122-It-follows-from-this-that-we-can-actually-do-without-logical-propositions;-for-in-a-suitable-notation-we-can-in-fact-recognize-the-formal-properties-of-propositions-by-mere-inspection-of-the-propositions-themselves."></a> <a href="#6.122-It-follows-from-this-that-we-can-actually-do-without-logical-propositions;-for-in-a-suitable-notation-we-can-in-fact-recognize-the-formal-properties-of-propositions-by-mere-inspection-of-the-propositions-themselves.">6.122 It follows from this that we can actually do without logical propositions; for in a suitable notation we can in fact recognize the formal properties of propositions by mere inspection of the propositions themselves.</a> <br></br> <div class="outline-text-5" id="text-6.122-It-follows-from-this-that-we-can-actually-do-without-logical-propositions;-for-in-a-suitable-notation-we-can-in-fact-recognize-the-formal-properties-of-propositions-by-mere-inspection-of-the-propositions-themselves.">
 <p>
But, I thing he still needs his 'truth-operations'.
</p>
</div>


 <ol class="org-ol"> <li> <a id="6.1221-If,-for-example,-two-propositions-%E2%80%98p%E2%80%99-and-%E2%80%98q%E2%80%99-in-the-combination-%E2%80%98p-%E2%8A%83-q%E2%80%99-yield-a-tautology,-then-it-is-clear-that-q-follows-from-p.-For-example,-we-see-from-the-two-propositions-themselves-that-%E2%80%98q%E2%80%99-follows-from-%E2%80%98p-%E2%8A%83-q.p%E2%80%99,-but-it-is-also-possible-to-show-it-in-this-way:-we-combine-them-to-form-%E2%80%98p-%E2%8A%83-q.p:%E2%8A%83:q%E2%80%99,-and-then-show-that-this-is-a-tautology."></a> <a href="#6.1221-If,-for-example,-two-propositions-%E2%80%98p%E2%80%99-and-%E2%80%98q%E2%80%99-in-the-combination-%E2%80%98p-%E2%8A%83-q%E2%80%99-yield-a-tautology,-then-it-is-clear-that-q-follows-from-p.-For-example,-we-see-from-the-two-propositions-themselves-that-%E2%80%98q%E2%80%99-follows-from-%E2%80%98p-%E2%8A%83-q.p%E2%80%99,-but-it-is-also-possible-to-show-it-in-this-way:-we-combine-them-to-form-%E2%80%98p-%E2%8A%83-q.p:%E2%8A%83:q%E2%80%99,-and-then-show-that-this-is-a-tautology.">6.1221 If, for example, two propositions ‘p’ and ‘q’ in the combination ‘p ⊃ q’ yield a tautology, then it is clear that q follows from p. For example, we see from the two propositions themselves that ‘q’ follows from ‘p ⊃ q.p’, but it is also possible to show it in this way: we combine them to form ‘p ⊃ q.p:⊃:q’, and then show that this is a tautology.</a> <br></br> <div class="outline-text-6" id="text-6.1221-If,-for-example,-two-propositions-%E2%80%98p%E2%80%99-and-%E2%80%98q%E2%80%99-in-the-combination-%E2%80%98p-%E2%8A%83-q%E2%80%99-yield-a-tautology,-then-it-is-clear-that-q-follows-from-p.-For-example,-we-see-from-the-two-propositions-themselves-that-%E2%80%98q%E2%80%99-follows-from-%E2%80%98p-%E2%8A%83-q.p%E2%80%99,-but-it-is-also-possible-to-show-it-in-this-way:-we-combine-them-to-form-%E2%80%98p-%E2%8A%83-q.p:%E2%8A%83:q%E2%80%99,-and-then-show-that-this-is-a-tautology.">
 <p>
So, this seems to be an algorithisable rule.
Is there an inference engine that supports this way of inference?
</p>
</div>
</li>

 <li> <a id="6.1222-This-throws-some-light-on-the-question-why-logical-propositions-cannot-be-confirmed-by-experience-any-more-than-they-can-be-refuted-by-it.-Not-only-must-a-proposition-of-logic-be-irrefutable-by-any-possible-experience,-but-it-must-also-be-unconfirmable-by-any-possible-experience."></a> <a href="#6.1222-This-throws-some-light-on-the-question-why-logical-propositions-cannot-be-confirmed-by-experience-any-more-than-they-can-be-refuted-by-it.-Not-only-must-a-proposition-of-logic-be-irrefutable-by-any-possible-experience,-but-it-must-also-be-unconfirmable-by-any-possible-experience.">6.1222 This throws some light on the question why logical propositions cannot be confirmed by experience any more than they can be refuted by it. Not only must a proposition of logic be irrefutable by any possible experience, but it must also be unconfirmable by any possible experience.</a> <br></br> <div class="outline-text-6" id="text-6.1222-This-throws-some-light-on-the-question-why-logical-propositions-cannot-be-confirmed-by-experience-any-more-than-they-can-be-refuted-by-it.-Not-only-must-a-proposition-of-logic-be-irrefutable-by-any-possible-experience,-but-it-must-also-be-unconfirmable-by-any-possible-experience.">
 <p>
Well, logical law must be true for  <span class="underline">all</span> possible inputs.
I guess, unconfirmable here can be seen as "you need to check it on all possible inputs".
</p>
</div>
</li>

 <li> <a id="6.1223-Now-it-becomes-clear-why-people-have-often-felt-as-if-it-were-for-us-to-%E2%80%98postulate%E2%80%99-the-%E2%80%98truths-of-logic%E2%80%99.-The-reason-is-that-we-can-postulate-them-in-so-far-as-we-can-postulate-an-adequate-notation."></a> <a href="#6.1223-Now-it-becomes-clear-why-people-have-often-felt-as-if-it-were-for-us-to-%E2%80%98postulate%E2%80%99-the-%E2%80%98truths-of-logic%E2%80%99.-The-reason-is-that-we-can-postulate-them-in-so-far-as-we-can-postulate-an-adequate-notation.">6.1223 Now it becomes clear why people have often felt as if it were for us to ‘postulate’ the ‘truths of logic’. The reason is that we can postulate them in so far as we can postulate an adequate notation.</a> <br></br> <div class="outline-text-6" id="text-6.1223-Now-it-becomes-clear-why-people-have-often-felt-as-if-it-were-for-us-to-%E2%80%98postulate%E2%80%99-the-%E2%80%98truths-of-logic%E2%80%99.-The-reason-is-that-we-can-postulate-them-in-so-far-as-we-can-postulate-an-adequate-notation.">
 <p>
Not obvious to me.
If it is all subjective and non-verifiable…
</p>
</div>
</li>

 <li> <a id="6.1224-It-also-becomes-clear-now-why-logic-was-called-the-theory-of-forms-and-of-inference."></a> <a href="#6.1224-It-also-becomes-clear-now-why-logic-was-called-the-theory-of-forms-and-of-inference.">6.1224 It also becomes clear now why logic was called the theory of forms and of inference.</a> <br></br> <div class="outline-text-6" id="text-6.1224-It-also-becomes-clear-now-why-logic-was-called-the-theory-of-forms-and-of-inference.">
 <p>
And programming is seen as a theory of writing code?
</p>
</div>
</li>
</ol></li>

 <li> <a id="6.123-Clearly-the-laws-of-logic-cannot-in-their-turn-be-subject-to-laws-of-logic.-(There-is-not,-as-Russell-thought,-a-special-law-of-contradiction-for-each-%E2%80%98type%E2%80%99;-one-law-is-enough,-since-it-is-not-applied-to-itself.)"></a> <a href="#6.123-Clearly-the-laws-of-logic-cannot-in-their-turn-be-subject-to-laws-of-logic.-(There-is-not,-as-Russell-thought,-a-special-law-of-contradiction-for-each-%E2%80%98type%E2%80%99;-one-law-is-enough,-since-it-is-not-applied-to-itself.)">6.123 Clearly the laws of logic cannot in their turn be subject to laws of logic. (There is not, as Russell thought, a special law of contradiction for each ‘type’; one law is enough, since it is not applied to itself.)</a> <br></br> <div class="outline-text-5" id="text-6.123-Clearly-the-laws-of-logic-cannot-in-their-turn-be-subject-to-laws-of-logic.-(There-is-not,-as-Russell-thought,-a-special-law-of-contradiction-for-each-%E2%80%98type%E2%80%99;-one-law-is-enough,-since-it-is-not-applied-to-itself.)">
 <p>
Well, Godel's incompleteness theorem relies on the ability of applying the laws of logic to the laws of logic.
</p>

 <p>
This 'cannot be subject', isn't a law of logic then?
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.1231-The-mark-of-a-logical-proposition-is-not-general-validity.-To-be-general-means-no-more-than-to-be-accidentally-valid-for-all-things.-An-ungeneralized-proposition-can-be-tautological-just-as-well-as-a-generalized-one."></a> <a href="#6.1231-The-mark-of-a-logical-proposition-is-not-general-validity.-To-be-general-means-no-more-than-to-be-accidentally-valid-for-all-things.-An-ungeneralized-proposition-can-be-tautological-just-as-well-as-a-generalized-one.">6.1231 The mark of a logical proposition is not general validity. To be general means no more than to be accidentally valid for all things. An ungeneralized proposition can be tautological just as well as a generalized one.</a> <br></br> <div class="outline-text-6" id="text-6.1231-The-mark-of-a-logical-proposition-is-not-general-validity.-To-be-general-means-no-more-than-to-be-accidentally-valid-for-all-things.-An-ungeneralized-proposition-can-be-tautological-just-as-well-as-a-generalized-one.">
 <p>
Yes, #t is a tautology.
</p>
</div>
</li>

 <li> <a id="6.1232-The-general-validity-of-logic-might-be-called-essential,-in-contrast-with-the-accidental-general-validity-of-such-propositions-as-%E2%80%98All-men-are-mortal%E2%80%99.-Propositions-like-Russell%E2%80%99s-%E2%80%98axiom-of-reducibility%E2%80%99-are-not-logical-propositions,-and-this-explains-our-feeling-that,-even-if-they-were-true,-their-truth-could-only-be-the-result-of-a-fortunate-accident."></a> <a href="#6.1232-The-general-validity-of-logic-might-be-called-essential,-in-contrast-with-the-accidental-general-validity-of-such-propositions-as-%E2%80%98All-men-are-mortal%E2%80%99.-Propositions-like-Russell%E2%80%99s-%E2%80%98axiom-of-reducibility%E2%80%99-are-not-logical-propositions,-and-this-explains-our-feeling-that,-even-if-they-were-true,-their-truth-could-only-be-the-result-of-a-fortunate-accident.">6.1232 The general validity of logic might be called essential, in contrast with the accidental general validity of such propositions as ‘All men are mortal’. Propositions like Russell’s ‘axiom of reducibility’ are not logical propositions, and this explains our feeling that, even if they were true, their truth could only be the result of a fortunate accident.</a> <br></br> <div class="outline-text-6" id="text-6.1232-The-general-validity-of-logic-might-be-called-essential,-in-contrast-with-the-accidental-general-validity-of-such-propositions-as-%E2%80%98All-men-are-mortal%E2%80%99.-Propositions-like-Russell%E2%80%99s-%E2%80%98axiom-of-reducibility%E2%80%99-are-not-logical-propositions,-and-this-explains-our-feeling-that,-even-if-they-were-true,-their-truth-could-only-be-the-result-of-a-fortunate-accident.">
 <p>
Axiom of Reducibility is in Introduction, Chapter 2, Section 6 of Principia Mathematica.
</p>

 <p>
It roughly says that for every function f: A -> B there exists a predicative version: g: (A,B) -> {0,1}
</p>

 <p>
Well, since in Wittgenstein's theory it is possible to avoid non-binary things in general…
</p>
</div>
</li>

 <li> <a id="6.1233-It-is-possible-to-imagine-a-world-in-which-the-axiom-of-reducibility-is-not-valid.-It-is-clear,-however,-that-logic-has-nothing-to-do-with-the-question-whether-our-world-really-is-like-that-or-not."></a> <a href="#6.1233-It-is-possible-to-imagine-a-world-in-which-the-axiom-of-reducibility-is-not-valid.-It-is-clear,-however,-that-logic-has-nothing-to-do-with-the-question-whether-our-world-really-is-like-that-or-not.">6.1233 It is possible to imagine a world in which the axiom of reducibility is not valid. It is clear, however, that logic has nothing to do with the question whether our world really is like that or not.</a> <br></br> <div class="outline-text-6" id="text-6.1233-It-is-possible-to-imagine-a-world-in-which-the-axiom-of-reducibility-is-not-valid.-It-is-clear,-however,-that-logic-has-nothing-to-do-with-the-question-whether-our-world-really-is-like-that-or-not.">
 <p>
"It is possible to imagine a world in which the axiom of reducibility is not valid".
</p>

 <p>
How is it possible?
Well, programmatically, it is obvious.
You just code in f(a), but not g(a,b).
However, writing g having f and equality is trivial.
Although Wittgenstein's logic has no equality, but I remember him providing equality as a composite logical operation.
</p>

 <p>
But in "reality", whatever this means, it's absolutely self-evident that if f exists, g exists.
</p>

 <p>
It is possible, though, that f is not computable, while g is computable.
</p>
</div>
</li>
</ol></li>

 <li> <a id="6.124-The-propositions-of-logic-describe-the-scaffolding-of-the-world,-or-rather-they-represent-it.-They-have-no-%E2%80%98subject-matter%E2%80%99.-They-presuppose-that-names-have-meaning-and-elementary-propositions-sense;-and-that-is-their-connexion-with-the-world.-It-is-clear-that-something-about-the-world-must-be-indicated-by-the-fact-that-certain-combinations-of-symbols-%E2%80%94-whose-essence-involves-the-possession-of-a-determinate-character-%E2%80%94-are-tautologies.-This-contains-the-decisive-point.-We-have-said-that-some-things-are-arbitrary-in-the-symbols-that-we-use-and-that-some-things-are-not.-In-logic-it-is-only-the-latter-that-express:-but-that-means-that-logic-is-not-a-field-in-which-we-express-what-we-wish-with-the-help-of-signs,-but-rather-one-in-which-the-nature-of-the-absolutely-necessary-signs-speaks-for-itself.-If-we-know-the-logical-syntax-of-any-sign-language,-then-we-have-already-been-given-all-the-propositions-of-logic."></a> <a href="#6.124-The-propositions-of-logic-describe-the-scaffolding-of-the-world,-or-rather-they-represent-it.-They-have-no-%E2%80%98subject-matter%E2%80%99.-They-presuppose-that-names-have-meaning-and-elementary-propositions-sense;-and-that-is-their-connexion-with-the-world.-It-is-clear-that-something-about-the-world-must-be-indicated-by-the-fact-that-certain-combinations-of-symbols-%E2%80%94-whose-essence-involves-the-possession-of-a-determinate-character-%E2%80%94-are-tautologies.-This-contains-the-decisive-point.-We-have-said-that-some-things-are-arbitrary-in-the-symbols-that-we-use-and-that-some-things-are-not.-In-logic-it-is-only-the-latter-that-express:-but-that-means-that-logic-is-not-a-field-in-which-we-express-what-we-wish-with-the-help-of-signs,-but-rather-one-in-which-the-nature-of-the-absolutely-necessary-signs-speaks-for-itself.-If-we-know-the-logical-syntax-of-any-sign-language,-then-we-have-already-been-given-all-the-propositions-of-logic.">6.124 The propositions of logic describe the scaffolding of the world, or rather they represent it. They have no ‘subject-matter’. They presuppose that names have meaning and elementary propositions sense; and that is their connexion with the world. It is clear that something about the world must be indicated by the fact that certain combinations of symbols — whose essence involves the possession of a determinate character — are tautologies. This contains the decisive point. We have said that some things are arbitrary in the symbols that we use and that some things are not. In logic it is only the latter that express: but that means that logic is not a field in which we express what we wish with the help of signs, but rather one in which the nature of the absolutely necessary signs speaks for itself. If we know the logical syntax of any sign-language, then we have already been given all the propositions of logic.</a> <br></br> <div class="outline-text-5" id="text-6.124-The-propositions-of-logic-describe-the-scaffolding-of-the-world,-or-rather-they-represent-it.-They-have-no-%E2%80%98subject-matter%E2%80%99.-They-presuppose-that-names-have-meaning-and-elementary-propositions-sense;-and-that-is-their-connexion-with-the-world.-It-is-clear-that-something-about-the-world-must-be-indicated-by-the-fact-that-certain-combinations-of-symbols-%E2%80%94-whose-essence-involves-the-possession-of-a-determinate-character-%E2%80%94-are-tautologies.-This-contains-the-decisive-point.-We-have-said-that-some-things-are-arbitrary-in-the-symbols-that-we-use-and-that-some-things-are-not.-In-logic-it-is-only-the-latter-that-express:-but-that-means-that-logic-is-not-a-field-in-which-we-express-what-we-wish-with-the-help-of-signs,-but-rather-one-in-which-the-nature-of-the-absolutely-necessary-signs-speaks-for-itself.-If-we-know-the-logical-syntax-of-any-sign-language,-then-we-have-already-been-given-all-the-propositions-of-logic.">
 <p>
The last sentence is important.
If you have a compiler, you have all the possible logic inside of it.
And at least logically, since all compilers are Turin-complete, all logics are roughly the same.
</p>
</div>
</li>

 <li> <a id="6.125-It-is-possible-%E2%80%94-indeed-possible-even-according-to-the-old-conception-of-logic-%E2%80%94-to-give-in-advance-a-description-of-all-%E2%80%98true%E2%80%99-logical-propositions."></a> <a href="#6.125-It-is-possible-%E2%80%94-indeed-possible-even-according-to-the-old-conception-of-logic-%E2%80%94-to-give-in-advance-a-description-of-all-%E2%80%98true%E2%80%99-logical-propositions.">6.125 It is possible — indeed possible even according to the old conception of logic — to give in advance a description of all ‘true’ logical propositions.</a> <br></br> <div class="outline-text-5" id="text-6.125-It-is-possible-%E2%80%94-indeed-possible-even-according-to-the-old-conception-of-logic-%E2%80%94-to-give-in-advance-a-description-of-all-%E2%80%98true%E2%80%99-logical-propositions.">
 <p>
Well, if they evaluate to 1?
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.1251-Hence-there-can-never-be-surprises-in-logic."></a> <a href="#6.1251-Hence-there-can-never-be-surprises-in-logic.">6.1251 Hence there can never be surprises in logic.</a> <br></br> <div class="outline-text-6" id="text-6.1251-Hence-there-can-never-be-surprises-in-logic.">
 <p>
What is a "surprise"?
</p>

 <p>
Well, informationally, logic only squeezes information from the input, it cannot do more.
</p>

 <p>
But for me, certain results are still surprising.
</p>
</div>
</li>
</ol></li>

 <li> <a id="6.126-One-can-calculate-whether-a-proposition-belongs-to-logic,-by-calculating-the-logical-properties-of-the-symbol.-And-this-is-what-we-do-when-we-%E2%80%98prove%E2%80%99-a-logical-proposition.-For,-without-bothering-about-sense-or-meaning,-we-construct-the-logical-proposition-out-of-others-using-only-rules-that-deal-with-signs.-The-proof-of-logical-propositions-consists-in-the-following-process:-we-produce-them-out-of-other-logical-propositions-by-successively-applying-certain-operations-that-always-generate-further-tautologies-out-of-the-initial-ones.-(And-in-fact-only-tautologies-follow-from-a-tautology.)-Of-course-this-way-of-showing-that-the-propositions-of-logic-are-tautologies-is-not-at-all-essential-to-logic,-if-only-because-the-propositions-from-which-the-proof-starts-must-show-without-any-proof-that-they-are-tautologies."></a> <a href="#6.126-One-can-calculate-whether-a-proposition-belongs-to-logic,-by-calculating-the-logical-properties-of-the-symbol.-And-this-is-what-we-do-when-we-%E2%80%98prove%E2%80%99-a-logical-proposition.-For,-without-bothering-about-sense-or-meaning,-we-construct-the-logical-proposition-out-of-others-using-only-rules-that-deal-with-signs.-The-proof-of-logical-propositions-consists-in-the-following-process:-we-produce-them-out-of-other-logical-propositions-by-successively-applying-certain-operations-that-always-generate-further-tautologies-out-of-the-initial-ones.-(And-in-fact-only-tautologies-follow-from-a-tautology.)-Of-course-this-way-of-showing-that-the-propositions-of-logic-are-tautologies-is-not-at-all-essential-to-logic,-if-only-because-the-propositions-from-which-the-proof-starts-must-show-without-any-proof-that-they-are-tautologies.">6.126 One can calculate whether a proposition belongs to logic, by calculating the logical properties of the symbol. And this is what we do when we ‘prove’ a logical proposition. For, without bothering about sense or meaning, we construct the logical proposition out of others using only rules that deal with signs. The proof of logical propositions consists in the following process: we produce them out of other logical propositions by successively applying certain operations that always generate further tautologies out of the initial ones. (And in fact only tautologies follow from a tautology.) Of course this way of showing that the propositions of logic are tautologies is not at all essential to logic, if only because the propositions from which the proof starts must show without any proof that they are tautologies.</a> <br></br> <div class="outline-text-5" id="text-6.126-One-can-calculate-whether-a-proposition-belongs-to-logic,-by-calculating-the-logical-properties-of-the-symbol.-And-this-is-what-we-do-when-we-%E2%80%98prove%E2%80%99-a-logical-proposition.-For,-without-bothering-about-sense-or-meaning,-we-construct-the-logical-proposition-out-of-others-using-only-rules-that-deal-with-signs.-The-proof-of-logical-propositions-consists-in-the-following-process:-we-produce-them-out-of-other-logical-propositions-by-successively-applying-certain-operations-that-always-generate-further-tautologies-out-of-the-initial-ones.-(And-in-fact-only-tautologies-follow-from-a-tautology.)-Of-course-this-way-of-showing-that-the-propositions-of-logic-are-tautologies-is-not-at-all-essential-to-logic,-if-only-because-the-propositions-from-which-the-proof-starts-must-show-without-any-proof-that-they-are-tautologies.">
 <p>
Again, this suggests that optimisation is a valid area of logic.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.1261-In-logic-process-and-result-are-equivalent.-(Hence-the-absence-of-surprise.)"></a> <a href="#6.1261-In-logic-process-and-result-are-equivalent.-(Hence-the-absence-of-surprise.)">6.1261 In logic process and result are equivalent. (Hence the absence of surprise.)</a> <br></br> <div class="outline-text-6" id="text-6.1261-In-logic-process-and-result-are-equivalent.-(Hence-the-absence-of-surprise.)">
 <p>
I keep saying that speed is also important.
In Prolog, the results comes together with a derivation of that result (if you do not use  <code>cut</code>).
But, again, computability leaves a place for surprises.
Say, you make your computer compute an uncomputable F(x), on some x, and it halts.
This is a surprise, isn't it?
</p>
</div>
</li>

 <li> <a id="6.1262-Proof-in-logic-is-merely-a-mechanical-expedient-to-facilitate-the-recognition-of-tautologies-in-complicated-cases."></a> <a href="#6.1262-Proof-in-logic-is-merely-a-mechanical-expedient-to-facilitate-the-recognition-of-tautologies-in-complicated-cases.">6.1262 Proof in logic is merely a mechanical expedient to facilitate the recognition of tautologies in complicated cases.</a> <br></br> <div class="outline-text-6" id="text-6.1262-Proof-in-logic-is-merely-a-mechanical-expedient-to-facilitate-the-recognition-of-tautologies-in-complicated-cases.">
 <p>
Yes!
</p>
</div>
</li>

 <li> <a id="6.1263-Indeed,-it-would-be-altogether-too-remarkable-if-a-proposition-that-had-sense-could-be-proved-logically-from-others,-and-so-too-could-a-logical-proposition.-It-is-clear-from-the-start-that-a-logical-proof-of-a-proposition-that-has-sense-and-a-proof-in-logic-must-be-two-entirely-different-things."></a> <a href="#6.1263-Indeed,-it-would-be-altogether-too-remarkable-if-a-proposition-that-had-sense-could-be-proved-logically-from-others,-and-so-too-could-a-logical-proposition.-It-is-clear-from-the-start-that-a-logical-proof-of-a-proposition-that-has-sense-and-a-proof-in-logic-must-be-two-entirely-different-things.">6.1263 Indeed, it would be altogether too remarkable if a proposition that had sense could be proved logically from others, and so too could a logical proposition. It is clear from the start that a logical proof of a proposition that has sense and a proof in logic must be two entirely different things.</a> <br></br> <div class="outline-text-6" id="text-6.1263-Indeed,-it-would-be-altogether-too-remarkable-if-a-proposition-that-had-sense-could-be-proved-logically-from-others,-and-so-too-could-a-logical-proposition.-It-is-clear-from-the-start-that-a-logical-proof-of-a-proposition-that-has-sense-and-a-proof-in-logic-must-be-two-entirely-different-things.">
 <p>
One depends on input, and one is not.
One is an optimisation technique, another one is a result of working on the input.
</p>
</div>
</li>

 <li> <a id="6.1264-A-proposition-that-has-sense-states-something,-which-is-shown-by-its-proof-to-be-so.-In-logic-every-proposition-is-the-form-of-a-proof.-Every-proposition-of-logic-is-a-modus-ponens-represented-in-signs.-(And-one-cannot-express-the-modus-ponens-by-means-of-a-proposition.)"></a> <a href="#6.1264-A-proposition-that-has-sense-states-something,-which-is-shown-by-its-proof-to-be-so.-In-logic-every-proposition-is-the-form-of-a-proof.-Every-proposition-of-logic-is-a-modus-ponens-represented-in-signs.-(And-one-cannot-express-the-modus-ponens-by-means-of-a-proposition.)">6.1264 A proposition that has sense states something, which is shown by its proof to be so. In logic every proposition is the form of a proof. Every proposition of logic is a modus ponens represented in signs. (And one cannot express the modus ponens by means of a proposition.)</a> <br></br> <div class="outline-text-6" id="text-6.1264-A-proposition-that-has-sense-states-something,-which-is-shown-by-its-proof-to-be-so.-In-logic-every-proposition-is-the-form-of-a-proof.-Every-proposition-of-logic-is-a-modus-ponens-represented-in-signs.-(And-one-cannot-express-the-modus-ponens-by-means-of-a-proposition.)">
 <p>
I think, he is being desperate here.
Many languages have facilities for metaprogramming.
Modus ponens eventually makes its way here with the Horn rule.
</p>
</div>
</li>

 <li> <a id="6.1265-It-is-always-possible-to-construe-logic-in-such-a-way-that-every-proposition-is-its-own-proof."></a> <a href="#6.1265-It-is-always-possible-to-construe-logic-in-such-a-way-that-every-proposition-is-its-own-proof.">6.1265 It is always possible to construe logic in such a way that every proposition is its own proof.</a> <br></br> <div class="outline-text-6" id="text-6.1265-It-is-always-possible-to-construe-logic-in-such-a-way-that-every-proposition-is-its-own-proof.">
 <p>
Really?
There is no way to "fit" a proposition by means of an inferential procedure?
</p>
</div>
</li>
</ol></li>

 <li> <a id="6.127-All-the-propositions-of-logic-are-of-equal-status:-it-is-not-the-case-that-some-of-them-are-essentially-primitive-propositions-and-others-essentially-derived-propositions.-Every-tautology-itself-shows-that-it-is-a-tautology."></a> <a href="#6.127-All-the-propositions-of-logic-are-of-equal-status:-it-is-not-the-case-that-some-of-them-are-essentially-primitive-propositions-and-others-essentially-derived-propositions.-Every-tautology-itself-shows-that-it-is-a-tautology.">6.127 All the propositions of logic are of equal status: it is not the case that some of them are essentially primitive propositions and others essentially derived propositions. Every tautology itself shows that it is a tautology.</a> <br></br> <div class="outline-text-5" id="text-6.127-All-the-propositions-of-logic-are-of-equal-status:-it-is-not-the-case-that-some-of-them-are-essentially-primitive-propositions-and-others-essentially-derived-propositions.-Every-tautology-itself-shows-that-it-is-a-tautology.">
 <p>
Well, as long as they form a complete set.
(In the Godelian sense.)
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.1271-It-is-clear-that-the-number-of-the-%E2%80%98primitive-propositions-of-logic%E2%80%99-is-arbitrary,-since-one-could-derive-logic-from-a-single-primitive-proposition,-e.g.-by-simply-constructing-the-logical-product-of-Frege%E2%80%99s-primitive-propositions.-(Frege-would-perhaps-say-that-we-should-then-no-longer-have-an-immediately-self-evident-primitive-proposition.-But-it-is-remarkable-that-a-thinker-as-rigorous-as-Frege-appealed-to-the-degree-of-self-evidence-as-the-criterion-of-a-logical-proposition.)"></a> <a href="#6.1271-It-is-clear-that-the-number-of-the-%E2%80%98primitive-propositions-of-logic%E2%80%99-is-arbitrary,-since-one-could-derive-logic-from-a-single-primitive-proposition,-e.g.-by-simply-constructing-the-logical-product-of-Frege%E2%80%99s-primitive-propositions.-(Frege-would-perhaps-say-that-we-should-then-no-longer-have-an-immediately-self-evident-primitive-proposition.-But-it-is-remarkable-that-a-thinker-as-rigorous-as-Frege-appealed-to-the-degree-of-self-evidence-as-the-criterion-of-a-logical-proposition.)">6.1271 It is clear that the number of the ‘primitive propositions of logic’ is arbitrary, since one could derive logic from a single primitive proposition, e.g. by simply constructing the logical product of Frege’s primitive propositions. (Frege would perhaps say that we should then no longer have an immediately self-evident primitive proposition. But it is remarkable that a thinker as rigorous as Frege appealed to the degree of self-evidence as the criterion of a logical proposition.)</a> <br></br> <div class="outline-text-6" id="text-6.1271-It-is-clear-that-the-number-of-the-%E2%80%98primitive-propositions-of-logic%E2%80%99-is-arbitrary,-since-one-could-derive-logic-from-a-single-primitive-proposition,-e.g.-by-simply-constructing-the-logical-product-of-Frege%E2%80%99s-primitive-propositions.-(Frege-would-perhaps-say-that-we-should-then-no-longer-have-an-immediately-self-evident-primitive-proposition.-But-it-is-remarkable-that-a-thinker-as-rigorous-as-Frege-appealed-to-the-degree-of-self-evidence-as-the-criterion-of-a-logical-proposition.)">
 <p>
Well, having huge programming languages is usually not a problem.
The opposite direction is usually harder.
</p>
</div>
</li>
</ol></li>

</div>

 <div id="outline-container-6.13-Logic-is-not-a-body-of-doctrine,-but-a-mirror-image-of-the-world.-Logic-is-transcendental." class="outline-4">
 <h4 id="6.13-Logic-is-not-a-body-of-doctrine,-but-a-mirror-image-of-the-world.-Logic-is-transcendental."> <span class="section-number-4">6.1.3.</span>  <a href="#6.13-Logic-is-not-a-body-of-doctrine,-but-a-mirror-image-of-the-world.-Logic-is-transcendental.">6.13 Logic is not a body of doctrine, but a mirror-image of the world. Logic is transcendental.</a></h4>
 <div class="outline-text-4" id="text-6.13-Logic-is-not-a-body-of-doctrine,-but-a-mirror-image-of-the-world.-Logic-is-transcendental.">
 <p>
And still, we develop it.
We at least develop new, stronger programming languages and provers.
</p>
</div>
</div>
</div>

 <div id="outline-container-6.2-Mathematics-is-a-logical-method.-The-propositions-of-mathematics-are-equations,-and-therefore-pseudo-propositions." class="outline-3">
 <h3 id="6.2-Mathematics-is-a-logical-method.-The-propositions-of-mathematics-are-equations,-and-therefore-pseudo-propositions."> <span class="section-number-3">6.2.</span>  <a href="#6.2-Mathematics-is-a-logical-method.-The-propositions-of-mathematics-are-equations,-and-therefore-pseudo-propositions.">6.2 Mathematics is a logical method. The propositions of mathematics are equations, and therefore pseudo-propositions.</a></h3>
 <div class="outline-text-3" id="text-6.2-Mathematics-is-a-logical-method.-The-propositions-of-mathematics-are-equations,-and-therefore-pseudo-propositions.">
 <p>
Intuitively it relies on the "axiom of reducibility".
I am not sure I understood Wittgenstein's proof of why it is not required, but so be it.
</p>
</div>

 <div id="outline-container-6.21-A-proposition-of-mathematics-does-not-express-a-thought." class="outline-4">
 <h4 id="6.21-A-proposition-of-mathematics-does-not-express-a-thought."> <span class="section-number-4">6.2.1.</span>  <a href="#6.21-A-proposition-of-mathematics-does-not-express-a-thought.">6.21 A proposition of mathematics does not express a thought.</a></h4>
 <div class="outline-text-4" id="text-6.21-A-proposition-of-mathematics-does-not-express-a-thought.">
 <p>
A thought is a "logical picture of facts".
Since logic is outside of the world, it does not consist of facts.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.211-Indeed-in-real-life-a-mathematical-proposition-is-never-what-we-want.-Rather,-we-make-use-of-mathematical-propositions-only-in-inferences-from-propositions-that-do-not-belong-to-mathematics-to-others-that-likewise-do-not-belong-to-mathematics.-(In-philosophy-the-question,-%E2%80%98What-do-we-actually-use-this-word-or-this-proposition-for?%E2%80%99-repeatedly-leads-to-valuable-insights.)"></a> <a href="#6.211-Indeed-in-real-life-a-mathematical-proposition-is-never-what-we-want.-Rather,-we-make-use-of-mathematical-propositions-only-in-inferences-from-propositions-that-do-not-belong-to-mathematics-to-others-that-likewise-do-not-belong-to-mathematics.-(In-philosophy-the-question,-%E2%80%98What-do-we-actually-use-this-word-or-this-proposition-for?%E2%80%99-repeatedly-leads-to-valuable-insights.)">6.211 Indeed in real life a mathematical proposition is never what we want. Rather, we make use of mathematical propositions only in inferences from propositions that do not belong to mathematics to others that likewise do not belong to mathematics. (In philosophy the question, ‘What do we actually use this word or this proposition for?’ repeatedly leads to valuable insights.)</a> <br></br> <div class="outline-text-5" id="text-6.211-Indeed-in-real-life-a-mathematical-proposition-is-never-what-we-want.-Rather,-we-make-use-of-mathematical-propositions-only-in-inferences-from-propositions-that-do-not-belong-to-mathematics-to-others-that-likewise-do-not-belong-to-mathematics.-(In-philosophy-the-question,-%E2%80%98What-do-we-actually-use-this-word-or-this-proposition-for?%E2%80%99-repeatedly-leads-to-valuable-insights.)">
 <p>
Sure, we use mathematics to predict something in the "world", not for itself.
If we want to prove something with agda, we still want social appreciation.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-6.22-The-logic-of-the-world,-which-is-shown-in-tautologies-by-the-propositions-of-logic,-is-shown-in-equations-by-mathematics." class="outline-4">
 <h4 id="6.22-The-logic-of-the-world,-which-is-shown-in-tautologies-by-the-propositions-of-logic,-is-shown-in-equations-by-mathematics."> <span class="section-number-4">6.2.2.</span>  <a href="#6.22-The-logic-of-the-world,-which-is-shown-in-tautologies-by-the-propositions-of-logic,-is-shown-in-equations-by-mathematics.">6.22 The logic of the world, which is shown in tautologies by the propositions of logic, is shown in equations by mathematics.</a></h4>
 <div class="outline-text-4" id="text-6.22-The-logic-of-the-world,-which-is-shown-in-tautologies-by-the-propositions-of-logic,-is-shown-in-equations-by-mathematics.">
 <p>
And, again, it is belived that you can express one in terms of another.
</p>
</div>
</div>

 <div id="outline-container-6.23-If-two-expressions-are-combined-by-means-of-the-sign-of-equality,-that-means-that-they-can-be-substituted-for-one-another.-But-it-must-be-manifest-in-the-two-expressions-themselves-whether-this-is-the-case-or-not.-When-two-expressions-can-be-substituted-for-one-another,-that-characterizes-their-logical-form." class="outline-4">
 <h4 id="6.23-If-two-expressions-are-combined-by-means-of-the-sign-of-equality,-that-means-that-they-can-be-substituted-for-one-another.-But-it-must-be-manifest-in-the-two-expressions-themselves-whether-this-is-the-case-or-not.-When-two-expressions-can-be-substituted-for-one-another,-that-characterizes-their-logical-form."> <span class="section-number-4">6.2.3.</span>  <a href="#6.23-If-two-expressions-are-combined-by-means-of-the-sign-of-equality,-that-means-that-they-can-be-substituted-for-one-another.-But-it-must-be-manifest-in-the-two-expressions-themselves-whether-this-is-the-case-or-not.-When-two-expressions-can-be-substituted-for-one-another,-that-characterizes-their-logical-form.">6.23 If two expressions are combined by means of the sign of equality, that means that they can be substituted for one another. But it must be manifest in the two expressions themselves whether this is the case or not. When two expressions can be substituted for one another, that characterizes their logical form.</a></h4>
 <div class="outline-text-4" id="text-6.23-If-two-expressions-are-combined-by-means-of-the-sign-of-equality,-that-means-that-they-can-be-substituted-for-one-another.-But-it-must-be-manifest-in-the-two-expressions-themselves-whether-this-is-the-case-or-not.-When-two-expressions-can-be-substituted-for-one-another,-that-characterizes-their-logical-form.">
 <p>
Again, this confusion about equality.
 <code>eq?</code> is not the same as  <code>equal?</code>, and an equation is not a law, as it is only true for certain x.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.231-It-is-a-property-of-affirmation-that-it-can-be-construed-as-double-negation.-It-is-a-property-of-%E2%80%981+1+1+1%E2%80%99-that-it-can-be-construed-as-%E2%80%98(1+1)+(1+1)%E2%80%99."></a> <a href="#6.231-It-is-a-property-of-affirmation-that-it-can-be-construed-as-double-negation.-It-is-a-property-of-%E2%80%981+1+1+1%E2%80%99-that-it-can-be-construed-as-%E2%80%98(1+1)+(1+1)%E2%80%99.">6.231 It is a property of affirmation that it can be construed as double negation. It is a property of ‘1+1+1+1’ that it can be construed as ‘(1+1)+(1+1)’.</a> <br></br> <div class="outline-text-5" id="text-6.231-It-is-a-property-of-affirmation-that-it-can-be-construed-as-double-negation.-It-is-a-property-of-%E2%80%981+1+1+1%E2%80%99-that-it-can-be-construed-as-%E2%80%98(1+1)+(1+1)%E2%80%99.">
 <p>
Logic, not the world.
</p>
</div>
</li>

 <li> <a id="6.232-Frege-says-that-the-two-expressions-have-the-same-meaning-but-different-senses.-But-the-essential-point-about-an-equation-is-that-it-is-not-necessary-in-order-to-show-that-the-two-expressions-connected-by-the-sign-of-equality-have-the-same-meaning,-since-this-can-be-seen-from-the-two-expressions-themselves."></a> <a href="#6.232-Frege-says-that-the-two-expressions-have-the-same-meaning-but-different-senses.-But-the-essential-point-about-an-equation-is-that-it-is-not-necessary-in-order-to-show-that-the-two-expressions-connected-by-the-sign-of-equality-have-the-same-meaning,-since-this-can-be-seen-from-the-two-expressions-themselves.">6.232 Frege says that the two expressions have the same meaning but different senses. But the essential point about an equation is that it is not necessary in order to show that the two expressions connected by the sign of equality have the same meaning, since this can be seen from the two expressions themselves.</a> <br></br> <div class="outline-text-5" id="text-6.232-Frege-says-that-the-two-expressions-have-the-same-meaning-but-different-senses.-But-the-essential-point-about-an-equation-is-that-it-is-not-necessary-in-order-to-show-that-the-two-expressions-connected-by-the-sign-of-equality-have-the-same-meaning,-since-this-can-be-seen-from-the-two-expressions-themselves.">
 <p>
I think this use of the word "equation" is not correct in the modern sense.
</p>

 <p>
I think that Frege is right, and Wittgenstein is wrong.
</p>

 <p>
They "mean the same" for some x.
Their "senses" for arbitrary x's are different.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.2321-And-the-possibility-of-proving-the-propositions-of-mathematics-means-simply-that-their-correctness-can-be-perceived-without-its-being-necessary-that-what-they-express-should-itself-be-compared-with-the-facts-in-order-to-determine-its-correctness."></a> <a href="#6.2321-And-the-possibility-of-proving-the-propositions-of-mathematics-means-simply-that-their-correctness-can-be-perceived-without-its-being-necessary-that-what-they-express-should-itself-be-compared-with-the-facts-in-order-to-determine-its-correctness.">6.2321 And the possibility of proving the propositions of mathematics means simply that their correctness can be perceived without its being necessary that what they express should itself be compared with the facts in order to determine its correctness.</a> <br></br> <div class="outline-text-6" id="text-6.2321-And-the-possibility-of-proving-the-propositions-of-mathematics-means-simply-that-their-correctness-can-be-perceived-without-its-being-necessary-that-what-they-express-should-itself-be-compared-with-the-facts-in-order-to-determine-its-correctness.">
 <p>
Well, we still do a lot of mathematical experiments.
</p>
</div>
</li>

 <li> <a id="6.2322-It-is-impossible-to-assert-the-identity-of-meaning-of-two-expressions.-For-in-order-to-be-able-to-assert-anything-about-their-meaning,-I-must-know-their-meaning,-and-I-cannot-know-their-meaning-without-knowing-whether-what-they-mean-is-the-same-or-different."></a> <a href="#6.2322-It-is-impossible-to-assert-the-identity-of-meaning-of-two-expressions.-For-in-order-to-be-able-to-assert-anything-about-their-meaning,-I-must-know-their-meaning,-and-I-cannot-know-their-meaning-without-knowing-whether-what-they-mean-is-the-same-or-different.">6.2322 It is impossible to assert the identity of meaning of two expressions. For in order to be able to assert anything about their meaning, I must know their meaning, and I cannot know their meaning without knowing whether what they mean is the same or different.</a> <br></br> <div class="outline-text-6" id="text-6.2322-It-is-impossible-to-assert-the-identity-of-meaning-of-two-expressions.-For-in-order-to-be-able-to-assert-anything-about-their-meaning,-I-must-know-their-meaning,-and-I-cannot-know-their-meaning-without-knowing-whether-what-they-mean-is-the-same-or-different.">
 <p>
I think this is again due to the lack of  <code>eq?</code> in his system.
Or, maybe, recursive  <code>eq?</code>.
</p>
</div>
</li>

 <li> <a id="6.2323-An-equation-merely-marks-the-point-of-view-from-which-I-consider-the-two-expressions:-it-marks-their-equivalence-in-meaning."></a> <a href="#6.2323-An-equation-merely-marks-the-point-of-view-from-which-I-consider-the-two-expressions:-it-marks-their-equivalence-in-meaning.">6.2323 An equation merely marks the point of view from which I consider the two expressions: it marks their equivalence in meaning.</a> <br></br> <div class="outline-text-6" id="text-6.2323-An-equation-merely-marks-the-point-of-view-from-which-I-consider-the-two-expressions:-it-marks-their-equivalence-in-meaning.">
 <p>
For a particular x.
</p>
</div>
</li>
</ol></li>

 <li> <a id="6.233-The-question-whether-intuition-is-needed-for-the-solution-of-mathematical-problems-must-be-given-the-answer-that-in-this-case-language-itself-provides-the-necessary-intuition."></a> <a href="#6.233-The-question-whether-intuition-is-needed-for-the-solution-of-mathematical-problems-must-be-given-the-answer-that-in-this-case-language-itself-provides-the-necessary-intuition.">6.233 The question whether intuition is needed for the solution of mathematical problems must be given the answer that in this case language itself provides the necessary intuition.</a> <br></br> <div class="outline-text-5" id="text-6.233-The-question-whether-intuition-is-needed-for-the-solution-of-mathematical-problems-must-be-given-the-answer-that-in-this-case-language-itself-provides-the-necessary-intuition.">
 <p>
I think this works only for algorithmisable problems.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.2331-The-process-of-calculating-serves-to-bring-about-that-intuition.-Calculation-is-not-an-experiment."></a> <a href="#6.2331-The-process-of-calculating-serves-to-bring-about-that-intuition.-Calculation-is-not-an-experiment.">6.2331 The process of calculating serves to bring about that intuition. Calculation is not an experiment.</a> <br></br> <div class="outline-text-6" id="text-6.2331-The-process-of-calculating-serves-to-bring-about-that-intuition.-Calculation-is-not-an-experiment.">
 <p>
Yes, there is something wrong about proving statements with brute force.
</p>
</div>
</li>
</ol></li>

 <li> <a id="6.234-Mathematics-is-a-method-of-logic."></a> <a href="#6.234-Mathematics-is-a-method-of-logic.">6.234 Mathematics is a method of logic.</a> <br></br> <div class="outline-text-5" id="text-6.234-Mathematics-is-a-method-of-logic.">
 <p>
I agree.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.2341-It-is-the-essential-characteristic-of-mathematical-method-that-it-employs-equations.-For-it-is-because-of-this-method-that-every-proposition-of-mathematics-must-go-without-saying."></a> <a href="#6.2341-It-is-the-essential-characteristic-of-mathematical-method-that-it-employs-equations.-For-it-is-because-of-this-method-that-every-proposition-of-mathematics-must-go-without-saying.">6.2341 It is the essential characteristic of mathematical method that it employs equations. For it is because of this method that every proposition of mathematics must go without saying.</a> <br></br> <div class="outline-text-6" id="text-6.2341-It-is-the-essential-characteristic-of-mathematical-method-that-it-employs-equations.-For-it-is-because-of-this-method-that-every-proposition-of-mathematics-must-go-without-saying.">
 <p>
Because it is not about  <span class="underline">the world</span>?
Meh, we are still drawing a lot of inspiration from the real world when programming or deriving.
We the people are also a part of the world, even though for solipsists it is not so evident…
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-6.24-The-method-by-which-mathematics-arrives-at-its-equations-is-the-method-of-substitution.-For-equations-express-the-substitutability-of-two-expressions-and,-starting-from-a-number-of-equations,-we-advance-to-new-equations-by-substituting-different-expressions-in-accordance-with-the-equations." class="outline-4">
 <h4 id="6.24-The-method-by-which-mathematics-arrives-at-its-equations-is-the-method-of-substitution.-For-equations-express-the-substitutability-of-two-expressions-and,-starting-from-a-number-of-equations,-we-advance-to-new-equations-by-substituting-different-expressions-in-accordance-with-the-equations."> <span class="section-number-4">6.2.4.</span>  <a href="#6.24-The-method-by-which-mathematics-arrives-at-its-equations-is-the-method-of-substitution.-For-equations-express-the-substitutability-of-two-expressions-and,-starting-from-a-number-of-equations,-we-advance-to-new-equations-by-substituting-different-expressions-in-accordance-with-the-equations.">6.24 The method by which mathematics arrives at its equations is the method of substitution. For equations express the substitutability of two expressions and, starting from a number of equations, we advance to new equations by substituting different expressions in accordance with the equations.</a></h4>
 <div class="outline-text-4" id="text-6.24-The-method-by-which-mathematics-arrives-at-its-equations-is-the-method-of-substitution.-For-equations-express-the-substitutability-of-two-expressions-and,-starting-from-a-number-of-equations,-we-advance-to-new-equations-by-substituting-different-expressions-in-accordance-with-the-equations.">
 <p>
Well, that's not true, unfortunately.
For high school mathematics, may be.
But for actual mathematics… no.
Although perhaps with automated provers you can do at least a part of work by pure substitution.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.241-Thus-the-proof-of-the-proposition-2-%C3%97-2-=-4-runs-as-follows:-(%CE%A9%5E%CE%BD)%5E%CE%BC%E2%80%99x-=-%CE%A9%5E%7B%CE%BD%C3%97%CE%BC%7D-%E2%80%99x-Def.,-%CE%A9%5E%7B2%C3%972%7D%E2%80%99x-=-(%CE%A9%5E2)%5E2%E2%80%99x-=-(%CE%A9%5E2)%5E%7B1+1%7D%E2%80%99x-=-%CE%A9%5E2%E2%80%99%CE%A9%5E2%E2%80%99x-=-%CE%A9%5E%7B1+1%7D%E2%80%99%CE%A9%5E%7B1+1%7D%E2%80%99x-=-(%CE%A9%E2%80%99%CE%A9)%E2%80%99(%CE%A9%E2%80%99%CE%A9)%E2%80%99x-=-%CE%A9%E2%80%99%CE%A9%E2%80%99%CE%A9%E2%80%99%CE%A9%E2%80%99x-=-%CE%A9%5E%7B1+1+1+1%7D%E2%80%99x-=-%CE%A9%5E4%E2%80%99x."></a> <a href="#6.241-Thus-the-proof-of-the-proposition-2-%C3%97-2-=-4-runs-as-follows:-(%CE%A9%5E%CE%BD)%5E%CE%BC%E2%80%99x-=-%CE%A9%5E%7B%CE%BD%C3%97%CE%BC%7D-%E2%80%99x-Def.,-%CE%A9%5E%7B2%C3%972%7D%E2%80%99x-=-(%CE%A9%5E2)%5E2%E2%80%99x-=-(%CE%A9%5E2)%5E%7B1+1%7D%E2%80%99x-=-%CE%A9%5E2%E2%80%99%CE%A9%5E2%E2%80%99x-=-%CE%A9%5E%7B1+1%7D%E2%80%99%CE%A9%5E%7B1+1%7D%E2%80%99x-=-(%CE%A9%E2%80%99%CE%A9)%E2%80%99(%CE%A9%E2%80%99%CE%A9)%E2%80%99x-=-%CE%A9%E2%80%99%CE%A9%E2%80%99%CE%A9%E2%80%99%CE%A9%E2%80%99x-=-%CE%A9%5E%7B1+1+1+1%7D%E2%80%99x-=-%CE%A9%5E4%E2%80%99x.">6.241 Thus the proof of the proposition 2 × 2 = 4 runs as follows: (Ω^ν)^μ’x = Ω <sup>ν×μ</sup> ’x Def., Ω <sup>2×2</sup>’x = (Ω^2)^2’x = (Ω^2) <sup>1+1</sup>’x = Ω^2’Ω^2’x = Ω <sup>1+1</sup>’Ω <sup>1+1</sup>’x = (Ω’Ω)’(Ω’Ω)’x = Ω’Ω’Ω’Ω’x = Ω <sup>1+1+1+1</sup>’x = Ω^4’x.</a> <br></br> <div class="outline-text-5" id="text-6.241-Thus-the-proof-of-the-proposition-2-%C3%97-2-=-4-runs-as-follows:-(%CE%A9%5E%CE%BD)%5E%CE%BC%E2%80%99x-=-%CE%A9%5E%7B%CE%BD%C3%97%CE%BC%7D-%E2%80%99x-Def.,-%CE%A9%5E%7B2%C3%972%7D%E2%80%99x-=-(%CE%A9%5E2)%5E2%E2%80%99x-=-(%CE%A9%5E2)%5E%7B1+1%7D%E2%80%99x-=-%CE%A9%5E2%E2%80%99%CE%A9%5E2%E2%80%99x-=-%CE%A9%5E%7B1+1%7D%E2%80%99%CE%A9%5E%7B1+1%7D%E2%80%99x-=-(%CE%A9%E2%80%99%CE%A9)%E2%80%99(%CE%A9%E2%80%99%CE%A9)%E2%80%99x-=-%CE%A9%E2%80%99%CE%A9%E2%80%99%CE%A9%E2%80%99%CE%A9%E2%80%99x-=-%CE%A9%5E%7B1+1+1+1%7D%E2%80%99x-=-%CE%A9%5E4%E2%80%99x.">
 <p>
Can this really be called "a proof"?
And frankly, it seems much more evident if seeing powers as tokens that can be tossed, rather than pure substitution.
</p>
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-6.3-The-exploration-of-logic-means-the-exploration-of-everything-that-is-subject-to-law.-And-outside-logic-everything-is-accidental." class="outline-3">
 <h3 id="6.3-The-exploration-of-logic-means-the-exploration-of-everything-that-is-subject-to-law.-And-outside-logic-everything-is-accidental."> <span class="section-number-3">6.3.</span>  <a href="#6.3-The-exploration-of-logic-means-the-exploration-of-everything-that-is-subject-to-law.-And-outside-logic-everything-is-accidental.">6.3 The exploration of logic means the exploration of everything that is subject to law. And outside logic everything is accidental.</a></h3>
 <div class="outline-text-3" id="text-6.3-The-exploration-of-logic-means-the-exploration-of-everything-that-is-subject-to-law.-And-outside-logic-everything-is-accidental.">
 <p>
Law is the behaviour or the compiler.
Outside is the input.
</p>
</div>

 <div id="outline-container-6.31-The-so-called-law-of-induction-cannot-possibly-be-a-law-of-logic,-since-it-is-obviously-a-proposition-with-sense.-%E2%80%94-Nor,-therefore,-can-it-be-an-a-priori-law." class="outline-4">
 <h4 id="6.31-The-so-called-law-of-induction-cannot-possibly-be-a-law-of-logic,-since-it-is-obviously-a-proposition-with-sense.-%E2%80%94-Nor,-therefore,-can-it-be-an-a-priori-law."> <span class="section-number-4">6.3.1.</span>  <a href="#6.31-The-so-called-law-of-induction-cannot-possibly-be-a-law-of-logic,-since-it-is-obviously-a-proposition-with-sense.-%E2%80%94-Nor,-therefore,-can-it-be-an-a-priori-law.">6.31 The so-called law of induction cannot possibly be a law of logic, since it is obviously a proposition with sense. — Nor, therefore, can it be an a priori law.</a></h4>
 <div class="outline-text-4" id="text-6.31-The-so-called-law-of-induction-cannot-possibly-be-a-law-of-logic,-since-it-is-obviously-a-proposition-with-sense.-%E2%80%94-Nor,-therefore,-can-it-be-an-a-priori-law.">
 <p>
And, still, I think that it is used axiomatically, in general.
</p>

 <p>
Wikipedia says "Proofs or constructions using induction and recursion often use the axiom of choice to produce a well-ordered relation that can be treated by transfinite induction. However, if the relation in question is already well-ordered, one can often use transfinite induction without invoking the axiom of choice."
</p>

 <p>
So, "often" is not  <span class="underline">always</span>.
</p>
</div>
</div>

 <div id="outline-container-6.32-The-law-of-causality-is-not-a-law-but-the-form-of-a-law." class="outline-4">
 <h4 id="6.32-The-law-of-causality-is-not-a-law-but-the-form-of-a-law."> <span class="section-number-4">6.3.2.</span>  <a href="#6.32-The-law-of-causality-is-not-a-law-but-the-form-of-a-law.">6.32 The law of causality is not a law but the form of a law.</a></h4>
 <div class="outline-text-4" id="text-6.32-The-law-of-causality-is-not-a-law-but-the-form-of-a-law.">
 <p>
Form of which law?
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.321-%E2%80%98Law-of-causality%E2%80%99-%E2%80%94-that-is-a-general-name.-And-just-as-in-mechanics,-for-example,-there-are-%E2%80%98minimum-principles%E2%80%99,-such-as-the-law-of-least-action,-so-too-in-physics-there-are-causal-laws,-laws-of-the-causal-form."></a> <a href="#6.321-%E2%80%98Law-of-causality%E2%80%99-%E2%80%94-that-is-a-general-name.-And-just-as-in-mechanics,-for-example,-there-are-%E2%80%98minimum-principles%E2%80%99,-such-as-the-law-of-least-action,-so-too-in-physics-there-are-causal-laws,-laws-of-the-causal-form.">6.321 ‘Law of causality’ — that is a general name. And just as in mechanics, for example, there are ‘minimum-principles’, such as the law of least action, so too in physics there are causal laws, laws of the causal form.</a> <br></br> <div class="outline-text-5" id="text-6.321-%E2%80%98Law-of-causality%E2%80%99-%E2%80%94-that-is-a-general-name.-And-just-as-in-mechanics,-for-example,-there-are-%E2%80%98minimum-principles%E2%80%99,-such-as-the-law-of-least-action,-so-too-in-physics-there-are-causal-laws,-laws-of-the-causal-form.">
 <p>
Hm… is the idea here only that causality principle can be reformulated in terms of other principles?
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.3211-Indeed-people-even-surmised-that-there-must-be-a-%E2%80%98law-of-least-action%E2%80%99-before-they-knew-exactly-how-it-went.-(Here,-as-always,-what-is-certain-a-priori-proves-to-be-something-purely-logical.)"></a> <a href="#6.3211-Indeed-people-even-surmised-that-there-must-be-a-%E2%80%98law-of-least-action%E2%80%99-before-they-knew-exactly-how-it-went.-(Here,-as-always,-what-is-certain-a-priori-proves-to-be-something-purely-logical.)">6.3211 Indeed people even surmised that there must be a ‘law of least action’ before they knew exactly how it went. (Here, as always, what is certain a priori proves to be something purely logical.)</a> <br></br> <div class="outline-text-6" id="text-6.3211-Indeed-people-even-surmised-that-there-must-be-a-%E2%80%98law-of-least-action%E2%80%99-before-they-knew-exactly-how-it-went.-(Here,-as-always,-what-is-certain-a-priori-proves-to-be-something-purely-logical.)">
 <p>
The law of least action is clearly a logical construct.
I am still not convinced that causality is.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-6.33-We-do-not-have-an-a-priori-belief-in-a-law-of-conservation,-but-rather-a-priori-knowledge-of-the-possibility-of-a-logical-form." class="outline-4">
 <h4 id="6.33-We-do-not-have-an-a-priori-belief-in-a-law-of-conservation,-but-rather-a-priori-knowledge-of-the-possibility-of-a-logical-form."> <span class="section-number-4">6.3.3.</span>  <a href="#6.33-We-do-not-have-an-a-priori-belief-in-a-law-of-conservation,-but-rather-a-priori-knowledge-of-the-possibility-of-a-logical-form.">6.33 We do not have an a priori belief in a law of conservation, but rather a priori knowledge of the possibility of a logical form.</a></h4>
 <div class="outline-text-4" id="text-6.33-We-do-not-have-an-a-priori-belief-in-a-law-of-conservation,-but-rather-a-priori-knowledge-of-the-possibility-of-a-logical-form.">
 <p>
We have "first integrals".
And since physics obeys the differential equations with extreme precision, conservation laws naturally arise.
</p>
</div>
</div>

 <div id="outline-container-6.34-All-such-propositions,-including-the-principle-of-sufficient-reason,-the-laws-of-continuity-in-nature-and-of-least-effort-in-nature,-etc.-etc.-%E2%80%94-all-these-are-a-priori-insights-about-the-forms-in-which-the-propositions-of-science-can-be-cast." class="outline-4">
 <h4 id="6.34-All-such-propositions,-including-the-principle-of-sufficient-reason,-the-laws-of-continuity-in-nature-and-of-least-effort-in-nature,-etc.-etc.-%E2%80%94-all-these-are-a-priori-insights-about-the-forms-in-which-the-propositions-of-science-can-be-cast."> <span class="section-number-4">6.3.4.</span>  <a href="#6.34-All-such-propositions,-including-the-principle-of-sufficient-reason,-the-laws-of-continuity-in-nature-and-of-least-effort-in-nature,-etc.-etc.-%E2%80%94-all-these-are-a-priori-insights-about-the-forms-in-which-the-propositions-of-science-can-be-cast.">6.34 All such propositions, including the principle of sufficient reason, the laws of continuity in nature and of least effort in nature, etc. etc. — all these are a priori insights about the forms in which the propositions of science can be cast.</a></h4>
 <div class="outline-text-4" id="text-6.34-All-such-propositions,-including-the-principle-of-sufficient-reason,-the-laws-of-continuity-in-nature-and-of-least-effort-in-nature,-etc.-etc.-%E2%80%94-all-these-are-a-priori-insights-about-the-forms-in-which-the-propositions-of-science-can-be-cast.">
 <p>
Ok, I agree.
They first appear as computational tricks, and later are supported by evidence.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.341-Newtonian-mechanics,-for-example,-imposes-a-unified-form-on-the-description-of-the-world.-Let-us-imagine-a-white-surface-with-irregular-black-spots-on-it.-We-then-say-that-whatever-kind-of-picture-these-make,-I-can-always-approximate-as-closely-as-I-wish-to-the-description-of-it-by-covering-the-surface-with-a-sufficiently-fine-square-mesh,-and-then-saying-of-every-square-whether-it-is-black-or-white.-In-this-way-I-shall-have-imposed-a-unified-form-on-the-description-of-the-surface.-The-form-is-optional,-since-I-could-have-achieved-the-same-result-by-using-a-net-with-a-triangular-or-hexagonal-mesh.-Possibly-the-use-of-a-triangular-mesh-would-have-made-the-description-simpler:-that-is-to-say,-it-might-be-that-we-could-describe-the-surface-more-accurately-with-a-coarse-triangular-mesh-than-with-a-fine-square-mesh-(or-conversely),-and-so-on.-The-different-nets-correspond-to-different-systems-for-describing-the-world.-Mechanics-determines-one-form-of-description-of-the-world-by-saying-that-all-propositions-used-in-the-description-of-the-world-must-be-obtained-in-a-given-way-from-a-given-set-of-propositions%E2%80%94the-axioms-of-mechanics.-It-thus-supplies-the-bricks-for-building-the-edifice-of-science,-and-it-says,-%E2%80%98Any-building-that-you-want-to-erect,-whatever-it-may-be,-must-somehow-be-constructed-with-these-bricks,-and-with-these-alone.%E2%80%99-(Just-as-with-the-number-system-we-must-be-able-to-write-down-any-number-we-wish,-so-with-the-system-of-mechanics-we-must-be-able-to-write-down-any-proposition-of-physics-that-we-wish.)"></a> <a href="#6.341-Newtonian-mechanics,-for-example,-imposes-a-unified-form-on-the-description-of-the-world.-Let-us-imagine-a-white-surface-with-irregular-black-spots-on-it.-We-then-say-that-whatever-kind-of-picture-these-make,-I-can-always-approximate-as-closely-as-I-wish-to-the-description-of-it-by-covering-the-surface-with-a-sufficiently-fine-square-mesh,-and-then-saying-of-every-square-whether-it-is-black-or-white.-In-this-way-I-shall-have-imposed-a-unified-form-on-the-description-of-the-surface.-The-form-is-optional,-since-I-could-have-achieved-the-same-result-by-using-a-net-with-a-triangular-or-hexagonal-mesh.-Possibly-the-use-of-a-triangular-mesh-would-have-made-the-description-simpler:-that-is-to-say,-it-might-be-that-we-could-describe-the-surface-more-accurately-with-a-coarse-triangular-mesh-than-with-a-fine-square-mesh-(or-conversely),-and-so-on.-The-different-nets-correspond-to-different-systems-for-describing-the-world.-Mechanics-determines-one-form-of-description-of-the-world-by-saying-that-all-propositions-used-in-the-description-of-the-world-must-be-obtained-in-a-given-way-from-a-given-set-of-propositions%E2%80%94the-axioms-of-mechanics.-It-thus-supplies-the-bricks-for-building-the-edifice-of-science,-and-it-says,-%E2%80%98Any-building-that-you-want-to-erect,-whatever-it-may-be,-must-somehow-be-constructed-with-these-bricks,-and-with-these-alone.%E2%80%99-(Just-as-with-the-number-system-we-must-be-able-to-write-down-any-number-we-wish,-so-with-the-system-of-mechanics-we-must-be-able-to-write-down-any-proposition-of-physics-that-we-wish.)">6.341 Newtonian mechanics, for example, imposes a unified form on the description of the world. Let us imagine a white surface with irregular black spots on it. We then say that whatever kind of picture these make, I can always approximate as closely as I wish to the description of it by covering the surface with a sufficiently fine square mesh, and then saying of every square whether it is black or white. In this way I shall have imposed a unified form on the description of the surface. The form is optional, since I could have achieved the same result by using a net with a triangular or hexagonal mesh. Possibly the use of a triangular mesh would have made the description simpler: that is to say, it might be that we could describe the surface more accurately with a coarse triangular mesh than with a fine square mesh (or conversely), and so on. The different nets correspond to different systems for describing the world. Mechanics determines one form of description of the world by saying that all propositions used in the description of the world must be obtained in a given way from a given set of propositions—the axioms of mechanics. It thus supplies the bricks for building the edifice of science, and it says, ‘Any building that you want to erect, whatever it may be, must somehow be constructed with these bricks, and with these alone.’ (Just as with the number-system we must be able to write down any number we wish, so with the system of mechanics we must be able to write down any proposition of physics that we wish.)</a> <br></br> <div class="outline-text-5" id="text-6.341-Newtonian-mechanics,-for-example,-imposes-a-unified-form-on-the-description-of-the-world.-Let-us-imagine-a-white-surface-with-irregular-black-spots-on-it.-We-then-say-that-whatever-kind-of-picture-these-make,-I-can-always-approximate-as-closely-as-I-wish-to-the-description-of-it-by-covering-the-surface-with-a-sufficiently-fine-square-mesh,-and-then-saying-of-every-square-whether-it-is-black-or-white.-In-this-way-I-shall-have-imposed-a-unified-form-on-the-description-of-the-surface.-The-form-is-optional,-since-I-could-have-achieved-the-same-result-by-using-a-net-with-a-triangular-or-hexagonal-mesh.-Possibly-the-use-of-a-triangular-mesh-would-have-made-the-description-simpler:-that-is-to-say,-it-might-be-that-we-could-describe-the-surface-more-accurately-with-a-coarse-triangular-mesh-than-with-a-fine-square-mesh-(or-conversely),-and-so-on.-The-different-nets-correspond-to-different-systems-for-describing-the-world.-Mechanics-determines-one-form-of-description-of-the-world-by-saying-that-all-propositions-used-in-the-description-of-the-world-must-be-obtained-in-a-given-way-from-a-given-set-of-propositions%E2%80%94the-axioms-of-mechanics.-It-thus-supplies-the-bricks-for-building-the-edifice-of-science,-and-it-says,-%E2%80%98Any-building-that-you-want-to-erect,-whatever-it-may-be,-must-somehow-be-constructed-with-these-bricks,-and-with-these-alone.%E2%80%99-(Just-as-with-the-number-system-we-must-be-able-to-write-down-any-number-we-wish,-so-with-the-system-of-mechanics-we-must-be-able-to-write-down-any-proposition-of-physics-that-we-wish.)">
 <p>
So, mechanics is not considered to be science here, right?
It is mathematics, that later forces the input to be interpreted in a certain (inclined to differential equations) way?
</p>
</div>
</li>

 <li> <a id="6.342-And-now-we-can-see-the-relative-position-of-logic-and-mechanics.-(The-net-might-also-consist-of-more-than-one-kind-of-mesh:-e.g.-we-could-use-both-triangles-and-hexagons.)-The-possibility-of-describing-a-picture-like-the-one-mentioned-above-with-a-net-of-a-given-form-tells-us-nothing-about-the-picture.-(For-that-is-true-of-all-such-pictures.)-But-what-does-characterize-the-picture-is-that-it-can-be-described-completely-by-a-particular-net-with-a-particular-size-of-mesh.-Similarly-the-possibility-of-describing-the-world-by-means-of-Newtonian-mechanics-tells-us-nothing-about-the-world:-but-what-does-tell-us-something-about-it-is-the-precise-way-in-which-it-is-possible-to-describe-it-by-these-means.-We-are-also-told-something-about-the-world-by-the-fact-that-it-can-be-described-more-simply-with-one-system-of-mechanics-than-with-another."></a> <a href="#6.342-And-now-we-can-see-the-relative-position-of-logic-and-mechanics.-(The-net-might-also-consist-of-more-than-one-kind-of-mesh:-e.g.-we-could-use-both-triangles-and-hexagons.)-The-possibility-of-describing-a-picture-like-the-one-mentioned-above-with-a-net-of-a-given-form-tells-us-nothing-about-the-picture.-(For-that-is-true-of-all-such-pictures.)-But-what-does-characterize-the-picture-is-that-it-can-be-described-completely-by-a-particular-net-with-a-particular-size-of-mesh.-Similarly-the-possibility-of-describing-the-world-by-means-of-Newtonian-mechanics-tells-us-nothing-about-the-world:-but-what-does-tell-us-something-about-it-is-the-precise-way-in-which-it-is-possible-to-describe-it-by-these-means.-We-are-also-told-something-about-the-world-by-the-fact-that-it-can-be-described-more-simply-with-one-system-of-mechanics-than-with-another.">6.342 And now we can see the relative position of logic and mechanics. (The net might also consist of more than one kind of mesh: e.g. we could use both triangles and hexagons.) The possibility of describing a picture like the one mentioned above with a net of a given form tells us nothing about the picture. (For that is true of all such pictures.) But what does characterize the picture is that it can be described completely by a particular net with a particular size of mesh. Similarly the possibility of describing the world by means of Newtonian mechanics tells us nothing about the world: but what does tell us something about it is the precise way in which it is possible to describe it by these means. We are also told something about the world by the fact that it can be described more simply with one system of mechanics than with another.</a> <br></br> <div class="outline-text-5" id="text-6.342-And-now-we-can-see-the-relative-position-of-logic-and-mechanics.-(The-net-might-also-consist-of-more-than-one-kind-of-mesh:-e.g.-we-could-use-both-triangles-and-hexagons.)-The-possibility-of-describing-a-picture-like-the-one-mentioned-above-with-a-net-of-a-given-form-tells-us-nothing-about-the-picture.-(For-that-is-true-of-all-such-pictures.)-But-what-does-characterize-the-picture-is-that-it-can-be-described-completely-by-a-particular-net-with-a-particular-size-of-mesh.-Similarly-the-possibility-of-describing-the-world-by-means-of-Newtonian-mechanics-tells-us-nothing-about-the-world:-but-what-does-tell-us-something-about-it-is-the-precise-way-in-which-it-is-possible-to-describe-it-by-these-means.-We-are-also-told-something-about-the-world-by-the-fact-that-it-can-be-described-more-simply-with-one-system-of-mechanics-than-with-another.">
 <p>
I am thinking that he is missing the interpretation off  <span class="underline">output</span> here.
</p>

 <p>
So, mechanics tells us nothing about the world until we run our mechanical model, written in the language of logic, on the input… and compare with the measured results.
</p>

 <p>
If the result is precise – the description is good and the world is mechnical.
</p>
</div>
</li>

 <li> <a id="6.343-Mechanics-is-an-attempt-to-construct-according-to-a--single-plan-all-the-true-propositions-that-we-need-for-the-description-of-the-world."></a> <a href="#6.343-Mechanics-is-an-attempt-to-construct-according-to-a--single-plan-all-the-true-propositions-that-we-need-for-the-description-of-the-world.">6.343 Mechanics is an attempt to construct according to a  single plan all the true propositions that we need for the description of the world.</a> <br></br> <div class="outline-text-5" id="text-6.343-Mechanics-is-an-attempt-to-construct-according-to-a--single-plan-all-the-true-propositions-that-we-need-for-the-description-of-the-world.">
 <p>
That's like, the Hilbert's 6th problem?
We would still need to digitise the input, but if we have a complete multiphysics simulator, we would be able to model a world.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.3431-The-laws-of-physics,-with-all-their-logical-apparatus,-still-speak,-however-indirectly,-about-the-objects-of-the-world."></a> <a href="#6.3431-The-laws-of-physics,-with-all-their-logical-apparatus,-still-speak,-however-indirectly,-about-the-objects-of-the-world.">6.3431 The laws of physics, with all their logical apparatus, still speak, however indirectly, about the objects of the world.</a> <br></br> <div class="outline-text-6" id="text-6.3431-The-laws-of-physics,-with-all-their-logical-apparatus,-still-speak,-however-indirectly,-about-the-objects-of-the-world.">
 <p>
Is "physics" here notably different from "mechanics"?
</p>
</div>
</li>

 <li> <a id="6.3432-We-ought-not-to-forget-that-any-description-of-the-world-by-means-of-mechanics-will-be-of-the-completely-general-kind.-For-example,-it-will-never-mention-particular-point-masses:-it-will-only-talk-about-any-point-masses-whatsoever."></a> <a href="#6.3432-We-ought-not-to-forget-that-any-description-of-the-world-by-means-of-mechanics-will-be-of-the-completely-general-kind.-For-example,-it-will-never-mention-particular-point-masses:-it-will-only-talk-about-any-point-masses-whatsoever.">6.3432 We ought not to forget that any description of the world by means of mechanics will be of the completely general kind. For example, it will never mention particular point-masses: it will only talk about any point-masses whatsoever.</a> <br></br> <div class="outline-text-6" id="text-6.3432-We-ought-not-to-forget-that-any-description-of-the-world-by-means-of-mechanics-will-be-of-the-completely-general-kind.-For-example,-it-will-never-mention-particular-point-masses:-it-will-only-talk-about-any-point-masses-whatsoever.">
 <p>
At least F=mg should be replaced with Gmm/r^2.
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-6.35-Although-the-spots-in-our-picture-are-geometrical-figures,-nevertheless-geometry-can-obviously-say-nothing-at-all-about-their-actual-form-and-position.-The-network,-however,-is-purely-geometrical;-all-its-properties-can-be-given-a-priori.-Laws-like-the-principle-of-sufficient-reason,-etc.-are-about-the-net-and-not-about-what-the-net-describes." class="outline-4">
 <h4 id="6.35-Although-the-spots-in-our-picture-are-geometrical-figures,-nevertheless-geometry-can-obviously-say-nothing-at-all-about-their-actual-form-and-position.-The-network,-however,-is-purely-geometrical;-all-its-properties-can-be-given-a-priori.-Laws-like-the-principle-of-sufficient-reason,-etc.-are-about-the-net-and-not-about-what-the-net-describes."> <span class="section-number-4">6.3.5.</span>  <a href="#6.35-Although-the-spots-in-our-picture-are-geometrical-figures,-nevertheless-geometry-can-obviously-say-nothing-at-all-about-their-actual-form-and-position.-The-network,-however,-is-purely-geometrical;-all-its-properties-can-be-given-a-priori.-Laws-like-the-principle-of-sufficient-reason,-etc.-are-about-the-net-and-not-about-what-the-net-describes.">6.35 Although the spots in our picture are geometrical figures, nevertheless geometry can obviously say nothing at all about their actual form and position. The network, however, is purely geometrical; all its properties can be given a priori. Laws like the principle of sufficient reason, etc. are about the net and not about what the net describes.</a></h4>
 <div class="outline-text-4" id="text-6.35-Although-the-spots-in-our-picture-are-geometrical-figures,-nevertheless-geometry-can-obviously-say-nothing-at-all-about-their-actual-form-and-position.-The-network,-however,-is-purely-geometrical;-all-its-properties-can-be-given-a-priori.-Laws-like-the-principle-of-sufficient-reason,-etc.-are-about-the-net-and-not-about-what-the-net-describes.">
 <p>
Again, here mechanics is seen as a sufficient development of the laws of logic (of moving bodies).
</p>
</div>
</div>

 <div id="outline-container-6.36-If-there-were-a-law-of-causality,-it-might-be-put-in-the-following-way:-There-are-laws-of-nature.-But-of-course-that-cannot-be-said:-it-makes-itself-manifest." class="outline-4">
 <h4 id="6.36-If-there-were-a-law-of-causality,-it-might-be-put-in-the-following-way:-There-are-laws-of-nature.-But-of-course-that-cannot-be-said:-it-makes-itself-manifest."> <span class="section-number-4">6.3.6.</span>  <a href="#6.36-If-there-were-a-law-of-causality,-it-might-be-put-in-the-following-way:-There-are-laws-of-nature.-But-of-course-that-cannot-be-said:-it-makes-itself-manifest.">6.36 If there were a law of causality, it might be put in the following way: There are laws of nature. But of course that cannot be said: it makes itself manifest.</a></h4>
 <div class="outline-text-4" id="text-6.36-If-there-were-a-law-of-causality,-it-might-be-put-in-the-following-way:-There-are-laws-of-nature.-But-of-course-that-cannot-be-said:-it-makes-itself-manifest.">
 <p>
Cannot be said, I belive, here means "cannot be digitised".
Indeed, you program the logical system, and causality is an intrinsic property off this system.
You cannot "declare" the system to be causal, because it is the way you are writing it.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.361-One-might-say,-using-Hertz%E2%80%99s-terminology,-that-only-connexions-that-are-subject-to-law-are-thinkable."></a> <a href="#6.361-One-might-say,-using-Hertz%E2%80%99s-terminology,-that-only-connexions-that-are-subject-to-law-are-thinkable.">6.361 One might say, using Hertz’s terminology, that only connexions that are subject to law are thinkable.</a> <br></br> <div class="outline-text-5" id="text-6.361-One-might-say,-using-Hertz%E2%80%99s-terminology,-that-only-connexions-that-are-subject-to-law-are-thinkable.">
 <p>
Well, "thinkable" here, I guess, should be seen as "computable".
There are not connections other than those you write in the code.
</p>

 <p>
Who is the Hertz he is writing about?
Same Heinrich Hertz, a physicist?
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.3611-We-cannot-compare-a-process-with-%E2%80%98the-passage-of-time%E2%80%99-%E2%80%94-there-is-no-such-thing-%E2%80%94-but-only-with-another-process-(such-as-the-working-of-a-chronometer).-Hence-we-can-describe-the-lapse-of-time-only-by-relying-on-some-other-process.-Something-exactly-analogous-applies-to-space:-e.g.-when-people-say-that-neither-of-two-events-(which-exclude-one-another)-can-occur,-because-there-is-nothing-to-cause-the-one-to-occur-rather-than-the-other,-it-is-really-a-matter-of-our-being-unable-to-describe-one-of-the-two-events-unless-there-is-some-sort-of-asymmetry-to-be-found.-And-if-such-an-asymmetry-is-to-be-found,-we-can-regard-it-as-the-cause-of-the-occurrence-of-the-one-and-the-non-occurrence-of-the-other."></a> <a href="#6.3611-We-cannot-compare-a-process-with-%E2%80%98the-passage-of-time%E2%80%99-%E2%80%94-there-is-no-such-thing-%E2%80%94-but-only-with-another-process-(such-as-the-working-of-a-chronometer).-Hence-we-can-describe-the-lapse-of-time-only-by-relying-on-some-other-process.-Something-exactly-analogous-applies-to-space:-e.g.-when-people-say-that-neither-of-two-events-(which-exclude-one-another)-can-occur,-because-there-is-nothing-to-cause-the-one-to-occur-rather-than-the-other,-it-is-really-a-matter-of-our-being-unable-to-describe-one-of-the-two-events-unless-there-is-some-sort-of-asymmetry-to-be-found.-And-if-such-an-asymmetry-is-to-be-found,-we-can-regard-it-as-the-cause-of-the-occurrence-of-the-one-and-the-non-occurrence-of-the-other.">6.3611 We cannot compare a process with ‘the passage of time’ — there is no such thing — but only with another process (such as the working of a chronometer). Hence we can describe the lapse of time only by relying on some other process. Something exactly analogous applies to space: e.g. when people say that neither of two events (which exclude one another) can occur, because there is nothing to cause the one to occur rather than the other, it is really a matter of our being unable to describe one of the two events unless there is some sort of asymmetry to be found. And if such an asymmetry is to be found, we can regard it as the cause of the occurrence of the one and the non-occurrence of the other.</a> <br></br> <div class="outline-text-6" id="text-6.3611-We-cannot-compare-a-process-with-%E2%80%98the-passage-of-time%E2%80%99-%E2%80%94-there-is-no-such-thing-%E2%80%94-but-only-with-another-process-(such-as-the-working-of-a-chronometer).-Hence-we-can-describe-the-lapse-of-time-only-by-relying-on-some-other-process.-Something-exactly-analogous-applies-to-space:-e.g.-when-people-say-that-neither-of-two-events-(which-exclude-one-another)-can-occur,-because-there-is-nothing-to-cause-the-one-to-occur-rather-than-the-other,-it-is-really-a-matter-of-our-being-unable-to-describe-one-of-the-two-events-unless-there-is-some-sort-of-asymmetry-to-be-found.-And-if-such-an-asymmetry-is-to-be-found,-we-can-regard-it-as-the-cause-of-the-occurrence-of-the-one-and-the-non-occurrence-of-the-other.">
 <p>
Well, our input is immutable, so there is no time other than machine time.
The machine can count cycles of computation, but suppose it is hibernated, or even unplugged (NVRAM machine, obviously).
</p>

 <p>
I think this clause is due to the fact that in computing time is ill-defined.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.36111-Kant%E2%80%99s-problem-about-the-right-hand-and-the-left-hand,-which-cannot-be-made-to-coincide,-exists-even-in-two-dimensions.-Indeed,-it-exists-in-one-dimensional-space-------O%E2%80%94(a)%E2%80%94X-----X%E2%80%94(b)%E2%80%94O---------in-which-the-two-congruent-figures,-a-and-b,-cannot-be-made-to-coincide-unless-they-are-moved-out-of-this-space.-The-right-hand-and-the-left-hand-are-in-fact-completely-congruent.-It-is-quite-irrelevant-that-they-cannot-be-made-to-coincide.-A-right-hand-glove-could-be-put-on-the-left-hand,-if-it-could-be-turned-round-in-four-dimensional-space."></a> <a href="#6.36111-Kant%E2%80%99s-problem-about-the-right-hand-and-the-left-hand,-which-cannot-be-made-to-coincide,-exists-even-in-two-dimensions.-Indeed,-it-exists-in-one-dimensional-space-------O%E2%80%94(a)%E2%80%94X-----X%E2%80%94(b)%E2%80%94O---------in-which-the-two-congruent-figures,-a-and-b,-cannot-be-made-to-coincide-unless-they-are-moved-out-of-this-space.-The-right-hand-and-the-left-hand-are-in-fact-completely-congruent.-It-is-quite-irrelevant-that-they-cannot-be-made-to-coincide.-A-right-hand-glove-could-be-put-on-the-left-hand,-if-it-could-be-turned-round-in-four-dimensional-space.">6.36111 Kant’s problem about the right hand and the left hand, which cannot be made to coincide, exists even in two dimensions. Indeed, it exists in one-dimensional space - - - O—(a)—X - - X—(b)—O - - - - in which the two congruent figures, a and b, cannot be made to coincide unless they are moved out of this space. The right hand and the left hand are in fact completely congruent. It is quite irrelevant that they cannot be made to coincide. A right-hand glove could be put on the left hand, if it could be turned round in four-dimensional space.</a> <br></br> <div class="outline-text-7" id="text-6.36111-Kant%E2%80%99s-problem-about-the-right-hand-and-the-left-hand,-which-cannot-be-made-to-coincide,-exists-even-in-two-dimensions.-Indeed,-it-exists-in-one-dimensional-space-------O%E2%80%94(a)%E2%80%94X-----X%E2%80%94(b)%E2%80%94O---------in-which-the-two-congruent-figures,-a-and-b,-cannot-be-made-to-coincide-unless-they-are-moved-out-of-this-space.-The-right-hand-and-the-left-hand-are-in-fact-completely-congruent.-It-is-quite-irrelevant-that-they-cannot-be-made-to-coincide.-A-right-hand-glove-could-be-put-on-the-left-hand,-if-it-could-be-turned-round-in-four-dimensional-space.">
 <p>
I think that here Wittgenstein is trying to approach the problem of verifiability.
Logical correctness should be established by comparing with "other digitization", or with "other net", and this glove example is just an example of something hugely disparate.
</p>
</div>
</li>
</ol></li>
</ol></li>

 <li> <a id="6.362-What-can-be-described-can-happen-too:-and-what-the-law-of-causality-is-meant-to-exclude-cannot-even-be-described."></a> <a href="#6.362-What-can-be-described-can-happen-too:-and-what-the-law-of-causality-is-meant-to-exclude-cannot-even-be-described.">6.362 What can be described can happen too: and what the law of causality is meant to exclude cannot even be described.</a> <br></br> <div class="outline-text-5" id="text-6.362-What-can-be-described-can-happen-too:-and-what-the-law-of-causality-is-meant-to-exclude-cannot-even-be-described.">
 <p>
Because everything we are discussing must be digitised.
</p>

 <p>
He is a bit manipulative here – his "can happen" should mean "can happen in a machine".
</p>

 <p>
Cannot be describe means "our model does not support that".
</p>
</div>
</li>

 <li> <a id="6.363-The-procedure-of-induction-consists-in-accepting-as-true-the-simplest-law-that-can-be-reconciled-with-our-experiences."></a> <a href="#6.363-The-procedure-of-induction-consists-in-accepting-as-true-the-simplest-law-that-can-be-reconciled-with-our-experiences.">6.363 The procedure of induction consists in accepting as true the simplest law that can be reconciled with our experiences.</a> <br></br> <div class="outline-text-5" id="text-6.363-The-procedure-of-induction-consists-in-accepting-as-true-the-simplest-law-that-can-be-reconciled-with-our-experiences.">
 <p>
Less code -> less errors.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.3631-This-procedure,-however,-has-no-logical-justification-but-only-a-psychological-one.-It-is-clear-that-there-are-no-grounds-for-believing-that-the-simplest-eventuality-will-in-fact-be-realized."></a> <a href="#6.3631-This-procedure,-however,-has-no-logical-justification-but-only-a-psychological-one.-It-is-clear-that-there-are-no-grounds-for-believing-that-the-simplest-eventuality-will-in-fact-be-realized.">6.3631 This procedure, however, has no logical justification but only a psychological one. It is clear that there are no grounds for believing that the simplest eventuality will in fact be realized.</a> <br></br> <div class="outline-text-6" id="text-6.3631-This-procedure,-however,-has-no-logical-justification-but-only-a-psychological-one.-It-is-clear-that-there-are-no-grounds-for-believing-that-the-simplest-eventuality-will-in-fact-be-realized.">
 <p>
Well, when you find a discrepancy, you implement more code.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.36311-It-is-an-hypothesis-that-the-sun-will-rise-tomorrow:-and-this-means-that-we-do-not-know-whether-it-will-rise."></a> <a href="#6.36311-It-is-an-hypothesis-that-the-sun-will-rise-tomorrow:-and-this-means-that-we-do-not-know-whether-it-will-rise.">6.36311 It is an hypothesis that the sun will rise tomorrow: and this means that we do not know whether it will rise.</a> <br></br> <div class="outline-text-7" id="text-6.36311-It-is-an-hypothesis-that-the-sun-will-rise-tomorrow:-and-this-means-that-we-do-not-know-whether-it-will-rise.">
 <ul class="org-ul"> <li>(Son) Dad, why does the sun rise in the East?</li>
 <li>(Father, programmer) Have you checked?</li>
 <li>(Son) Yes, Dad, multiple times.</li>
 <li>(Father) Still works?</li>
 <li>(Son) Yes.</li>
 <li>(Father) Please, please, do  <span class="underline">not</span> touch anything!</li>
</ul></div>
</li>
</ol></li>
</ol></li>
</ol></div>

 <div id="outline-container-6.37-There-is-no-compulsion-making-one-thing-happen-because-another-has-happened.-The-only-necessity-that-exists-is-logical-necessity." class="outline-4">
 <h4 id="6.37-There-is-no-compulsion-making-one-thing-happen-because-another-has-happened.-The-only-necessity-that-exists-is-logical-necessity."> <span class="section-number-4">6.3.7.</span>  <a href="#6.37-There-is-no-compulsion-making-one-thing-happen-because-another-has-happened.-The-only-necessity-that-exists-is-logical-necessity.">6.37 There is no compulsion making one thing happen because another has happened. The only necessity that exists is logical necessity.</a></h4>
 <div class="outline-text-4" id="text-6.37-There-is-no-compulsion-making-one-thing-happen-because-another-has-happened.-The-only-necessity-that-exists-is-logical-necessity.">
 <p>
Because that is how models work.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.371-The-whole-modern-conception-of-the-world-is-founded-on-the-illusion-that-the-so-called-laws-of-nature-are-the-explanations-of-natural-phenomena."></a> <a href="#6.371-The-whole-modern-conception-of-the-world-is-founded-on-the-illusion-that-the-so-called-laws-of-nature-are-the-explanations-of-natural-phenomena.">6.371 The whole modern conception of the world is founded on the illusion that the so-called laws of nature are the explanations of natural phenomena.</a> <br></br> <div class="outline-text-5" id="text-6.371-The-whole-modern-conception-of-the-world-is-founded-on-the-illusion-that-the-so-called-laws-of-nature-are-the-explanations-of-natural-phenomena.">
 <p>
In fact, they do not really exist, but are just programs we write to predict further observations.
</p>
</div>
</li>

 <li> <a id="6.372-Thus-people-today-stop-at-the-laws-of-nature,-treating-them-as-something-inviolable,-just-as-God-and-Fate-were-treated-in-past-ages.-And-in-fact-both-are-right-and-both-wrong:-though-the-view-of-the-ancients-is-clearer-in-so-far-as-they-have-a-clear-and-acknowledged-terminus,-while-the-modern-system-tries-to-make-it-look-as-if-everything-were-explained."></a> <a href="#6.372-Thus-people-today-stop-at-the-laws-of-nature,-treating-them-as-something-inviolable,-just-as-God-and-Fate-were-treated-in-past-ages.-And-in-fact-both-are-right-and-both-wrong:-though-the-view-of-the-ancients-is-clearer-in-so-far-as-they-have-a-clear-and-acknowledged-terminus,-while-the-modern-system-tries-to-make-it-look-as-if-everything-were-explained.">6.372 Thus people today stop at the laws of nature, treating them as something inviolable, just as God and Fate were treated in past ages. And in fact both are right and both wrong: though the view of the ancients is clearer in so far as they have a clear and acknowledged terminus, while the modern system tries to make it look as if everything were explained.</a> <br></br> <div class="outline-text-5" id="text-6.372-Thus-people-today-stop-at-the-laws-of-nature,-treating-them-as-something-inviolable,-just-as-God-and-Fate-were-treated-in-past-ages.-And-in-fact-both-are-right-and-both-wrong:-though-the-view-of-the-ancients-is-clearer-in-so-far-as-they-have-a-clear-and-acknowledged-terminus,-while-the-modern-system-tries-to-make-it-look-as-if-everything-were-explained.">
 <p>
God is a scientific hypothesis, but it has very bad explanatory power, as it is essentially a huge dictionary.
</p>

 <p>
The modern system is much straightforward algorithmically, but has better predictive power.
</p>
</div>
</li>

 <li> <a id="6.373-The-world-is-independent-of-my-will."></a> <a href="#6.373-The-world-is-independent-of-my-will.">6.373 The world is independent of my will.</a> <br></br> <div class="outline-text-5" id="text-6.373-The-world-is-independent-of-my-will.">
 <p>
Ok.
</p>
</div>
</li>

 <li> <a id="6.374-Even-if-all-that-we-wish-for-were-to-happen,-still-this-would-only-be-a-favour-granted-by-fate,-so-to-speak:-for-there-is-no-logical-connexion-between-the-will-and-the-world,-which-would-guarantee-it,-and-the-supposed-physical-connexion-itself-is-surely-not-something-that-we-could-will."></a> <a href="#6.374-Even-if-all-that-we-wish-for-were-to-happen,-still-this-would-only-be-a-favour-granted-by-fate,-so-to-speak:-for-there-is-no-logical-connexion-between-the-will-and-the-world,-which-would-guarantee-it,-and-the-supposed-physical-connexion-itself-is-surely-not-something-that-we-could-will.">6.374 Even if all that we wish for were to happen, still this would only be a favour granted by fate, so to speak: for there is no logical connexion between the will and the world, which would guarantee it, and the supposed physical connexion itself is surely not something that we could will.</a> <br></br> <div class="outline-text-5" id="text-6.374-Even-if-all-that-we-wish-for-were-to-happen,-still-this-would-only-be-a-favour-granted-by-fate,-so-to-speak:-for-there-is-no-logical-connexion-between-the-will-and-the-world,-which-would-guarantee-it,-and-the-supposed-physical-connexion-itself-is-surely-not-something-that-we-could-will.">
 <p>
Well, we can work to make wishes happen.
</p>

 <p>
That is, if free will exists.
</p>

 <p>
However, free will does not exist in a machine.
</p>
</div>
</li>

 <li> <a id="6.375-Just-as-the-only-necessity-that-exists-is-logical-necessity,-so-too-the-only-impossibility-that-exists-is-logical-impossibility."></a> <a href="#6.375-Just-as-the-only-necessity-that-exists-is-logical-necessity,-so-too-the-only-impossibility-that-exists-is-logical-impossibility.">6.375 Just as the only necessity that exists is logical necessity, so too the only impossibility that exists is logical impossibility.</a> <br></br> <div class="outline-text-5" id="text-6.375-Just-as-the-only-necessity-that-exists-is-logical-necessity,-so-too-the-only-impossibility-that-exists-is-logical-impossibility.">
 <p>
Well, this means that we should be able to find a certain input that makes our dreams happen (possible in the model).
</p>

 <p>
But that is only in the machine.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.3751-For-example,-the-simultaneous-presence-of-two-colours-at-the-same-place-in-the-visual-field-is-impossible,-in-fact-logically-impossible,-since-it-is-ruled-out-by-the-logical-structure-of-colour.-Let-us-think-how-this-contradiction-appears-in-physics:-more-or-less-as-follows-%E2%80%94-a-particle-cannot-have-two-velocities-at-the-same-time;-that-is-to-say,-it-cannot-be-in-two-places-at-the-same-time;-that-is-to-say,-particles-that-are-in-different-places-at-the-same-time-cannot-be-identical.-(It-is-clear-that-the-logical-product-of-two-elementary-propositions-can-neither-be-a-tautology-nor-a-contradiction.-The-statement-that-a-point-in-the-visual-field-has-two-different-colours-at-the-same-time-is-a-contradiction.)"></a> <a href="#6.3751-For-example,-the-simultaneous-presence-of-two-colours-at-the-same-place-in-the-visual-field-is-impossible,-in-fact-logically-impossible,-since-it-is-ruled-out-by-the-logical-structure-of-colour.-Let-us-think-how-this-contradiction-appears-in-physics:-more-or-less-as-follows-%E2%80%94-a-particle-cannot-have-two-velocities-at-the-same-time;-that-is-to-say,-it-cannot-be-in-two-places-at-the-same-time;-that-is-to-say,-particles-that-are-in-different-places-at-the-same-time-cannot-be-identical.-(It-is-clear-that-the-logical-product-of-two-elementary-propositions-can-neither-be-a-tautology-nor-a-contradiction.-The-statement-that-a-point-in-the-visual-field-has-two-different-colours-at-the-same-time-is-a-contradiction.)">6.3751 For example, the simultaneous presence of two colours at the same place in the visual field is impossible, in fact logically impossible, since it is ruled out by the logical structure of colour. Let us think how this contradiction appears in physics: more or less as follows — a particle cannot have two velocities at the same time; that is to say, it cannot be in two places at the same time; that is to say, particles that are in different places at the same time cannot be identical. (It is clear that the logical product of two elementary propositions can neither be a tautology nor a contradiction. The statement that a point in the visual field has two different colours at the same time is a contradiction.)</a> <br></br> <div class="outline-text-6" id="text-6.3751-For-example,-the-simultaneous-presence-of-two-colours-at-the-same-place-in-the-visual-field-is-impossible,-in-fact-logically-impossible,-since-it-is-ruled-out-by-the-logical-structure-of-colour.-Let-us-think-how-this-contradiction-appears-in-physics:-more-or-less-as-follows-%E2%80%94-a-particle-cannot-have-two-velocities-at-the-same-time;-that-is-to-say,-it-cannot-be-in-two-places-at-the-same-time;-that-is-to-say,-particles-that-are-in-different-places-at-the-same-time-cannot-be-identical.-(It-is-clear-that-the-logical-product-of-two-elementary-propositions-can-neither-be-a-tautology-nor-a-contradiction.-The-statement-that-a-point-in-the-visual-field-has-two-different-colours-at-the-same-time-is-a-contradiction.)">
 <p>
Well, I can't avoid nitpicking on the Bose-Einstein condensate (because the model is different).
</p>

 <p>
But yes, in classical mechanics this is prohibited by the digitisation model.
</p>
</div>
</li>
</ol></li>
</ol></div>
</div>

 <div id="outline-container-6.4-All-propositions-are-of-equal-value." class="outline-3">
 <h3 id="6.4-All-propositions-are-of-equal-value."> <span class="section-number-3">6.4.</span>  <a href="#6.4-All-propositions-are-of-equal-value.">6.4 All propositions are of equal value.</a></h3>
 <div class="outline-text-3" id="text-6.4-All-propositions-are-of-equal-value.">
 <p>
What is even a "value" in this case?
</p>
</div>

 <div id="outline-container-6.41-The-sense-of-the-world-must-lie-outside-the-world.-In-the-world-everything-is-as-it-is,-and-everything-happens-as-it-does-happen:-in-it-no-value-exists%E2%80%94and-if-it-did-exist,-it-would-have-no-value.-If-there-is-any-value-that-does-have-value,-it-must-lie-outside-the-whole-sphere-of-what-happens-and-is-the-case.-For-all-that-happens-and-is-the-case-is-accidental.-What-makes-it-non-accidental-cannot-lie-within-the-world,-since-if-it-did-it-would-itself-be-accidental.-It-must-lie-outside-the-world." class="outline-4">
 <h4 id="6.41-The-sense-of-the-world-must-lie-outside-the-world.-In-the-world-everything-is-as-it-is,-and-everything-happens-as-it-does-happen:-in-it-no-value-exists%E2%80%94and-if-it-did-exist,-it-would-have-no-value.-If-there-is-any-value-that-does-have-value,-it-must-lie-outside-the-whole-sphere-of-what-happens-and-is-the-case.-For-all-that-happens-and-is-the-case-is-accidental.-What-makes-it-non-accidental-cannot-lie-within-the-world,-since-if-it-did-it-would-itself-be-accidental.-It-must-lie-outside-the-world."> <span class="section-number-4">6.4.1.</span>  <a href="#6.41-The-sense-of-the-world-must-lie-outside-the-world.-In-the-world-everything-is-as-it-is,-and-everything-happens-as-it-does-happen:-in-it-no-value-exists%E2%80%94and-if-it-did-exist,-it-would-have-no-value.-If-there-is-any-value-that-does-have-value,-it-must-lie-outside-the-whole-sphere-of-what-happens-and-is-the-case.-For-all-that-happens-and-is-the-case-is-accidental.-What-makes-it-non-accidental-cannot-lie-within-the-world,-since-if-it-did-it-would-itself-be-accidental.-It-must-lie-outside-the-world.">6.41 The sense of the world must lie outside the world. In the world everything is as it is, and everything happens as it does happen: in it no value exists—and if it did exist, it would have no value. If there is any value that does have value, it must lie outside the whole sphere of what happens and is the case. For all that happens and is the case is accidental. What makes it non-accidental cannot lie within the world, since if it did it would itself be accidental. It must lie outside the world.</a></h4>
 <div class="outline-text-4" id="text-6.41-The-sense-of-the-world-must-lie-outside-the-world.-In-the-world-everything-is-as-it-is,-and-everything-happens-as-it-does-happen:-in-it-no-value-exists%E2%80%94and-if-it-did-exist,-it-would-have-no-value.-If-there-is-any-value-that-does-have-value,-it-must-lie-outside-the-whole-sphere-of-what-happens-and-is-the-case.-For-all-that-happens-and-is-the-case-is-accidental.-What-makes-it-non-accidental-cannot-lie-within-the-world,-since-if-it-did-it-would-itself-be-accidental.-It-must-lie-outside-the-world.">
 <p>
I guess, this is a reference to the free will again.
A machine does not assign value to the simulation.
Operators may want certain outcomes (value them more), and thus try to find conditions that satisfy them.
</p>
</div>
</div>

 <div id="outline-container-6.42-So-too-it-is-impossible-for-there-to-be-propositions-of-ethics.-Propositions-can-express-nothing-that-is-higher." class="outline-4">
 <h4 id="6.42-So-too-it-is-impossible-for-there-to-be-propositions-of-ethics.-Propositions-can-express-nothing-that-is-higher."> <span class="section-number-4">6.4.2.</span>  <a href="#6.42-So-too-it-is-impossible-for-there-to-be-propositions-of-ethics.-Propositions-can-express-nothing-that-is-higher.">6.42 So too it is impossible for there to be propositions of ethics. Propositions can express nothing that is higher.</a></h4>
 <div class="outline-text-4" id="text-6.42-So-too-it-is-impossible-for-there-to-be-propositions-of-ethics.-Propositions-can-express-nothing-that-is-higher.">
 <p>
Like, "A is good" is not a proposition, in the general sense, because good and evil are subjective.
</p>

 <p>
I believe, it is possible to digitise some ethical system and make inferences, but since you cannot compare it with ground truth, it is meaningless.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.421-It-is-clear-that-ethics-cannot-be-put-into-words.-Ethics-is-transcendental.-(Ethics-and-aesthetics-are-one-and-the-same.)"></a> <a href="#6.421-It-is-clear-that-ethics-cannot-be-put-into-words.-Ethics-is-transcendental.-(Ethics-and-aesthetics-are-one-and-the-same.)">6.421 It is clear that ethics cannot be put into words. Ethics is transcendental. (Ethics and aesthetics are one and the same.)</a> <br></br> <div class="outline-text-5" id="text-6.421-It-is-clear-that-ethics-cannot-be-put-into-words.-Ethics-is-transcendental.-(Ethics-and-aesthetics-are-one-and-the-same.)">
 <p>
I can't say it is "clear", but this certainly seems to be the case.
Subjective -> unverifiable.
</p>
</div>
</li>

 <li> <a id="6.422-When-an-ethical-law-of-the-form,-%E2%80%98Thou-shalt-.-.-.%E2%80%99,-is-laid-down,-one%E2%80%99s-first-thought-is,-%E2%80%98And-what-if-I-do-not-do-it?%E2%80%99-It-is-clear,-however,-that-ethics-has-nothing-to-do-with-punishment-and-reward-in-the-usual-sense-of-the-terms.-So-our-question-about-the-consequences-of-an-action-must-be-unimportant.-%E2%80%94-At-least-those-consequences-should-not-be-events.-For-there-must-be-something-right-about-the-question-we-posed.-There-must-indeed-be-some-kind-of-ethical-reward-and-ethical-punishment,-but-they-must-reside-in-the-action-itself.-(And-it-is-also-clear-that-the-reward-must-be-something-pleasant-and-the-punishment-something-unpleasant.)"></a> <a href="#6.422-When-an-ethical-law-of-the-form,-%E2%80%98Thou-shalt-.-.-.%E2%80%99,-is-laid-down,-one%E2%80%99s-first-thought-is,-%E2%80%98And-what-if-I-do-not-do-it?%E2%80%99-It-is-clear,-however,-that-ethics-has-nothing-to-do-with-punishment-and-reward-in-the-usual-sense-of-the-terms.-So-our-question-about-the-consequences-of-an-action-must-be-unimportant.-%E2%80%94-At-least-those-consequences-should-not-be-events.-For-there-must-be-something-right-about-the-question-we-posed.-There-must-indeed-be-some-kind-of-ethical-reward-and-ethical-punishment,-but-they-must-reside-in-the-action-itself.-(And-it-is-also-clear-that-the-reward-must-be-something-pleasant-and-the-punishment-something-unpleasant.)">6.422 When an ethical law of the form, ‘Thou shalt . . .’, is laid down, one’s first thought is, ‘And what if I do not do it?’ It is clear, however, that ethics has nothing to do with punishment and reward in the usual sense of the terms. So our question about the consequences of an action must be unimportant. — At least those consequences should not be events. For there must be something right about the question we posed. There must indeed be some kind of ethical reward and ethical punishment, but they must reside in the action itself. (And it is also clear that the reward must be something pleasant and the punishment something unpleasant.)</a> <br></br> <div class="outline-text-5" id="text-6.422-When-an-ethical-law-of-the-form,-%E2%80%98Thou-shalt-.-.-.%E2%80%99,-is-laid-down,-one%E2%80%99s-first-thought-is,-%E2%80%98And-what-if-I-do-not-do-it?%E2%80%99-It-is-clear,-however,-that-ethics-has-nothing-to-do-with-punishment-and-reward-in-the-usual-sense-of-the-terms.-So-our-question-about-the-consequences-of-an-action-must-be-unimportant.-%E2%80%94-At-least-those-consequences-should-not-be-events.-For-there-must-be-something-right-about-the-question-we-posed.-There-must-indeed-be-some-kind-of-ethical-reward-and-ethical-punishment,-but-they-must-reside-in-the-action-itself.-(And-it-is-also-clear-that-the-reward-must-be-something-pleasant-and-the-punishment-something-unpleasant.)">
 <p>
Yeah, again, because reward and punishment are not ethical per se, and feelings of good and bad are not verifiable and ill-defined.
</p>

 <p>
Again, the main conclusion from this statement is that modelling ethics on a computer is unlikely to be successful.
</p>
</div>
</li>

 <li> <a id="6.423-It-is-impossible-to-speak-about-the-will-in-so-far-as-it-is-the-subject-of-ethical-attributes.-And-the-will-as-a-phenomenon-is-of-interest-only-to-psychology."></a> <a href="#6.423-It-is-impossible-to-speak-about-the-will-in-so-far-as-it-is-the-subject-of-ethical-attributes.-And-the-will-as-a-phenomenon-is-of-interest-only-to-psychology.">6.423 It is impossible to speak about the will in so far as it is the subject of ethical attributes. And the will as a phenomenon is of interest only to psychology.</a> <br></br> <div class="outline-text-5" id="text-6.423-It-is-impossible-to-speak-about-the-will-in-so-far-as-it-is-the-subject-of-ethical-attributes.-And-the-will-as-a-phenomenon-is-of-interest-only-to-psychology.">
 <p>
There are two "will"s.
One is "want", the other "actions".
</p>

 <p>
Wanting cannot be classified as good or bad, it is intrinsic, actions are not even obvious to be a subject of "free will".
</p>

 <p>
So, his position here is that logically it is unlikely to condense any useful prediction from "digitisation of ethics or will".
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-6.43-If-the-good-or-bad-exercise-of-the-will-does-alter-the-world,-it-can-alter-only-the-limits-of-the-world,-not-the-facts-%E2%80%94-not-what-can-be-expressed-by-means-of-language.-In-short-the-effect-must-be-that-it-becomes-an-altogether-different-world.-It-must,-so-to-speak,-wax-and-wane-as-a-whole.-The-world-of-the-happy-man-is-a-different-one-from-that-of-the-unhappy-man." class="outline-4">
 <h4 id="6.43-If-the-good-or-bad-exercise-of-the-will-does-alter-the-world,-it-can-alter-only-the-limits-of-the-world,-not-the-facts-%E2%80%94-not-what-can-be-expressed-by-means-of-language.-In-short-the-effect-must-be-that-it-becomes-an-altogether-different-world.-It-must,-so-to-speak,-wax-and-wane-as-a-whole.-The-world-of-the-happy-man-is-a-different-one-from-that-of-the-unhappy-man."> <span class="section-number-4">6.4.3.</span>  <a href="#6.43-If-the-good-or-bad-exercise-of-the-will-does-alter-the-world,-it-can-alter-only-the-limits-of-the-world,-not-the-facts-%E2%80%94-not-what-can-be-expressed-by-means-of-language.-In-short-the-effect-must-be-that-it-becomes-an-altogether-different-world.-It-must,-so-to-speak,-wax-and-wane-as-a-whole.-The-world-of-the-happy-man-is-a-different-one-from-that-of-the-unhappy-man.">6.43 If the good or bad exercise of the will does alter the world, it can alter only the limits of the world, not the facts — not what can be expressed by means of language. In short the effect must be that it becomes an altogether different world. It must, so to speak, wax and wane as a whole. The world of the happy man is a different one from that of the unhappy man.</a></h4>
 <div class="outline-text-4" id="text-6.43-If-the-good-or-bad-exercise-of-the-will-does-alter-the-world,-it-can-alter-only-the-limits-of-the-world,-not-the-facts-%E2%80%94-not-what-can-be-expressed-by-means-of-language.-In-short-the-effect-must-be-that-it-becomes-an-altogether-different-world.-It-must,-so-to-speak,-wax-and-wane-as-a-whole.-The-world-of-the-happy-man-is-a-different-one-from-that-of-the-unhappy-man.">
 <p>
That is almost the philosophical treatment of  <code>set!</code> in Scheme.
</p>

 <p>
Mutation creates a different world.
</p>

 <p>
Maybe we can even expect the "digitised input" of a human brain to be different from that of an unhappy man.
</p>

 <p>
Again, emotions destroy predictability to a large extent.
</p>

 <p>
In any case, all of that is not need if there is no free will, and people are just computers.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.431-So-too-at-death-the-world-does-not-alter,-but-comes-to-an-end."></a> <a href="#6.431-So-too-at-death-the-world-does-not-alter,-but-comes-to-an-end.">6.431 So too at death the world does not alter, but comes to an end.</a> <br></br> <div class="outline-text-5" id="text-6.431-So-too-at-death-the-world-does-not-alter,-but-comes-to-an-end.">
 <p>
The simulation ends.
Each time you turn off your computer, you are destroying a world.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.4311-Death-is-not-an-event-in-life:-we-do-not-live-to-experience-death.-If-we-take-eternity-to-mean-not-infinite-temporal-duration-but-timelessness,-then-eternal-life-belongs-to-those-who-live-in-the-present.-Our-life-has-no-end-in-just-the-way-in-which-our-visual-field-has-no-limits."></a> <a href="#6.4311-Death-is-not-an-event-in-life:-we-do-not-live-to-experience-death.-If-we-take-eternity-to-mean-not-infinite-temporal-duration-but-timelessness,-then-eternal-life-belongs-to-those-who-live-in-the-present.-Our-life-has-no-end-in-just-the-way-in-which-our-visual-field-has-no-limits.">6.4311 Death is not an event in life: we do not live to experience death. If we take eternity to mean not infinite temporal duration but timelessness, then eternal life belongs to those who live in the present. Our life has no end in just the way in which our visual field has no limits.</a> <br></br> <div class="outline-text-6" id="text-6.4311-Death-is-not-an-event-in-life:-we-do-not-live-to-experience-death.-If-we-take-eternity-to-mean-not-infinite-temporal-duration-but-timelessness,-then-eternal-life-belongs-to-those-who-live-in-the-present.-Our-life-has-no-end-in-just-the-way-in-which-our-visual-field-has-no-limits.">
 <p>
Well, time is in general ill-defined in computers.
If you freeze you program in a debugger, it kind of exists forever.
</p>
</div>
</li>

 <li> <a id="6.4312-Not-only-is-there-no-guarantee-of-the-temporal-immortality-of-the-human-soul,-that-is-to-say-of-its-eternal-survival-after-death;-but,-in-any-case,-this-assumption-completely-fails-to-accomplish-the-purpose-for-which-it-has-always-been-intended.-Or-is-some-riddle-solved-by-my-surviving-for-ever?-Is-not-this-eternal-life-itself-as-much-of-a-riddle-as-our-present-life?-The-solution-of-the-riddle-of-life-in-space-and-time-lies-outside-space-and-time.-(It-is-certainly-not-the-solution-of-any-problems-of-natural-science-that-is-required.)"></a> <a href="#6.4312-Not-only-is-there-no-guarantee-of-the-temporal-immortality-of-the-human-soul,-that-is-to-say-of-its-eternal-survival-after-death;-but,-in-any-case,-this-assumption-completely-fails-to-accomplish-the-purpose-for-which-it-has-always-been-intended.-Or-is-some-riddle-solved-by-my-surviving-for-ever?-Is-not-this-eternal-life-itself-as-much-of-a-riddle-as-our-present-life?-The-solution-of-the-riddle-of-life-in-space-and-time-lies-outside-space-and-time.-(It-is-certainly-not-the-solution-of-any-problems-of-natural-science-that-is-required.)">6.4312 Not only is there no guarantee of the temporal immortality of the human soul, that is to say of its eternal survival after death; but, in any case, this assumption completely fails to accomplish the purpose for which it has always been intended. Or is some riddle solved by my surviving for ever? Is not this eternal life itself as much of a riddle as our present life? The solution of the riddle of life in space and time lies outside space and time. (It is certainly not the solution of any problems of natural science that is required.)</a> <br></br> <div class="outline-text-6" id="text-6.4312-Not-only-is-there-no-guarantee-of-the-temporal-immortality-of-the-human-soul,-that-is-to-say-of-its-eternal-survival-after-death;-but,-in-any-case,-this-assumption-completely-fails-to-accomplish-the-purpose-for-which-it-has-always-been-intended.-Or-is-some-riddle-solved-by-my-surviving-for-ever?-Is-not-this-eternal-life-itself-as-much-of-a-riddle-as-our-present-life?-The-solution-of-the-riddle-of-life-in-space-and-time-lies-outside-space-and-time.-(It-is-certainly-not-the-solution-of-any-problems-of-natural-science-that-is-required.)">
 <p>
So, the point here is that we all  <span class="underline">may</span> be living in a simulation, which something outside of this computer is running to model/predict something.
</p>

 <p>
Or, rather that we cannot disprove the opposite.
</p>
</div>
</li>
</ol></li>

 <li> <a id="6.432-How-things-are-in-the-world-is-a-matter-of-complete-indifference-for-what-is-higher.-God-does-not-reveal-himself-in-the-world."></a> <a href="#6.432-How-things-are-in-the-world-is-a-matter-of-complete-indifference-for-what-is-higher.-God-does-not-reveal-himself-in-the-world.">6.432 How things are in the world is a matter of complete indifference for what is higher. God does not reveal himself in the world.</a> <br></br> <div class="outline-text-5" id="text-6.432-How-things-are-in-the-world-is-a-matter-of-complete-indifference-for-what-is-higher.-God-does-not-reveal-himself-in-the-world.">
 <p>
Just as the memory state is not aware of human interventions in a debugger.
(There are different anti-debugging tricks though!)
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.4321-The-facts-all-contribute-only-to-setting-the-problem,-not-to-its-solution."></a> <a href="#6.4321-The-facts-all-contribute-only-to-setting-the-problem,-not-to-its-solution.">6.4321 The facts all contribute only to setting the problem, not to its solution.</a> <br></br> <div class="outline-text-6" id="text-6.4321-The-facts-all-contribute-only-to-setting-the-problem,-not-to-its-solution.">
 <p>
Because logic is not a part of the input.
(Again, Lisp provides self-mutating programs, so maybe this is a bit obsolete.)
</p>
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-6.44-It-is-not-how-things-are-in-the-world-that-is-mystical,-but-that-it-exists." class="outline-4">
 <h4 id="6.44-It-is-not-how-things-are-in-the-world-that-is-mystical,-but-that-it-exists."> <span class="section-number-4">6.4.4.</span>  <a href="#6.44-It-is-not-how-things-are-in-the-world-that-is-mystical,-but-that-it-exists.">6.44 It is not how things are in the world that is mystical, but that it exists.</a></h4>
 <div class="outline-text-4" id="text-6.44-It-is-not-how-things-are-in-the-world-that-is-mystical,-but-that-it-exists.">
 <p>
Well, we do not know and by the laws of logic cannot know what is the machine that is running the simulation.
</p>
</div>
</div>

 <div id="outline-container-6.45-To-view-the-world-sub-specie-aeterni-is-to-view-it-as-a-whole-%E2%80%94-a-limited-whole.-Feeling-the-world-as-a-limited-whole-%E2%80%94-it-is-this-that-is-mystical." class="outline-4">
 <h4 id="6.45-To-view-the-world-sub-specie-aeterni-is-to-view-it-as-a-whole-%E2%80%94-a-limited-whole.-Feeling-the-world-as-a-limited-whole-%E2%80%94-it-is-this-that-is-mystical."> <span class="section-number-4">6.4.5.</span>  <a href="#6.45-To-view-the-world-sub-specie-aeterni-is-to-view-it-as-a-whole-%E2%80%94-a-limited-whole.-Feeling-the-world-as-a-limited-whole-%E2%80%94-it-is-this-that-is-mystical.">6.45 To view the world sub specie aeterni is to view it as a whole — a limited whole. Feeling the world as a limited whole — it is this that is mystical.</a></h4>
 <div class="outline-text-4" id="text-6.45-To-view-the-world-sub-specie-aeterni-is-to-view-it-as-a-whole-%E2%80%94-a-limited-whole.-Feeling-the-world-as-a-limited-whole-%E2%80%94-it-is-this-that-is-mystical.">
 <p>
"This book is dedicated, in respect and admiration, to the spirit that lives in the computer."
</p>

 <p>
“I think that it’s extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don’t think we are. I think we’re responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun. Above all, I hope we don’t become missionaries. Don’t feel as if you’re Bible salesmen. The world has too many of those already. What you know about computing other people will learn. Don’t feel as if the key to successful computing is only in your hands. What’s in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.”
</p>

 <p>
—Alan J. Perlis (April 1, 1922 – February 7, 1990)
</p>
</div>
</div>
</div>



 <div id="outline-container-6.5-When-the-answer-cannot-be-put-into-words,-neither-can-the-question-be-put-into-words.-The-riddle-does-not-exist.-If-a-question-can-be-framed-at-all,-it-is-also-possible-to-answer-it." class="outline-3">
 <h3 id="6.5-When-the-answer-cannot-be-put-into-words,-neither-can-the-question-be-put-into-words.-The-riddle-does-not-exist.-If-a-question-can-be-framed-at-all,-it-is-also-possible-to-answer-it."> <span class="section-number-3">6.5.</span>  <a href="#6.5-When-the-answer-cannot-be-put-into-words,-neither-can-the-question-be-put-into-words.-The-riddle-does-not-exist.-If-a-question-can-be-framed-at-all,-it-is-also-possible-to-answer-it.">6.5 When the answer cannot be put into words, neither can the question be put into words. The riddle does not exist. If a question can be framed at all, it is also possible to answer it.</a></h3>
 <div class="outline-text-3" id="text-6.5-When-the-answer-cannot-be-put-into-words,-neither-can-the-question-be-put-into-words.-The-riddle-does-not-exist.-If-a-question-can-be-framed-at-all,-it-is-also-possible-to-answer-it.">
 <p>
Again, because all is just an evolution of a machine memory.
</p>

 <p>
Although, I think, Wittgenstein is, again, unaware of undecidability.
</p>
</div>

 <div id="outline-container-6.51-Scepticism-is-not-irrefutable,-but-obviously-nonsensical,-when-it-tries-to-raise-doubts-where-no-questions-can-be-asked.-For-doubt-can-exist-only-where-a-question-exists,-a-question-only-where-an-answer-exists,-and-an-answer-only-where-something-can-be-said." class="outline-4">
 <h4 id="6.51-Scepticism-is-not-irrefutable,-but-obviously-nonsensical,-when-it-tries-to-raise-doubts-where-no-questions-can-be-asked.-For-doubt-can-exist-only-where-a-question-exists,-a-question-only-where-an-answer-exists,-and-an-answer-only-where-something-can-be-said."> <span class="section-number-4">6.5.1.</span>  <a href="#6.51-Scepticism-is-not-irrefutable,-but-obviously-nonsensical,-when-it-tries-to-raise-doubts-where-no-questions-can-be-asked.-For-doubt-can-exist-only-where-a-question-exists,-a-question-only-where-an-answer-exists,-and-an-answer-only-where-something-can-be-said.">6.51 Scepticism is not irrefutable, but obviously nonsensical, when it tries to raise doubts where no questions can be asked. For doubt can exist only where a question exists, a question only where an answer exists, and an answer only where something can be said.</a></h4>
 <div class="outline-text-4" id="text-6.51-Scepticism-is-not-irrefutable,-but-obviously-nonsensical,-when-it-tries-to-raise-doubts-where-no-questions-can-be-asked.-For-doubt-can-exist-only-where-a-question-exists,-a-question-only-where-an-answer-exists,-and-an-answer-only-where-something-can-be-said.">
 <p>
Nonsensical here is not a negative characteristic.
</p>

 <p>
Doubt means "being unsure your program is without errors".
</p>

 <p>
Scepticism, I guess, whether you have digitised your input correctly.
And this  <span class="underline">is</span> nonsensical, because incorrectness of digitisation cannot be distinguished from incorrectness of logic.
</p>
</div>
</div>

 <div id="outline-container-6.52-We-feel-that-even-when-all-possible-scientific-questions-have-been-answered,-the-problems-of-life-remain-completely-untouched.-Of-course-there-are-then-no-questions-left,-and-this-itself-is-the-answer." class="outline-4">
 <h4 id="6.52-We-feel-that-even-when-all-possible-scientific-questions-have-been-answered,-the-problems-of-life-remain-completely-untouched.-Of-course-there-are-then-no-questions-left,-and-this-itself-is-the-answer."> <span class="section-number-4">6.5.2.</span>  <a href="#6.52-We-feel-that-even-when-all-possible-scientific-questions-have-been-answered,-the-problems-of-life-remain-completely-untouched.-Of-course-there-are-then-no-questions-left,-and-this-itself-is-the-answer.">6.52 We feel that even when all possible scientific questions have been answered, the problems of life remain completely untouched. Of course there are then no questions left, and this itself is the answer.</a></h4>
 <div class="outline-text-4" id="text-6.52-We-feel-that-even-when-all-possible-scientific-questions-have-been-answered,-the-problems-of-life-remain-completely-untouched.-Of-course-there-are-then-no-questions-left,-and-this-itself-is-the-answer.">
 <p>
So, he believes that it is possible to make a complete logical model of the world.
(Which itself has been disproved.)
</p>

 <p>
And  <span class="underline">the answer</span> is that life has no "problems of life", those are meaningless.
</p>

 <p>
But due to incompleteness of mathematics, there will always be problems to prove.
</p>
</div>

 <ol class="org-ol"> <li> <a id="6.521-The-solution-of-the-problem-of-life-is-seen-in-the-vanishing-of-the-problem.-(Is-not-this-the-reason-why-those-who-have-found-after-a-long-period-of-doubt-that-the-sense-of-life-became-clear-to-them-have-then-been-unable-to-say-what-constituted-that-sense?)"></a> <a href="#6.521-The-solution-of-the-problem-of-life-is-seen-in-the-vanishing-of-the-problem.-(Is-not-this-the-reason-why-those-who-have-found-after-a-long-period-of-doubt-that-the-sense-of-life-became-clear-to-them-have-then-been-unable-to-say-what-constituted-that-sense?)">6.521 The solution of the problem of life is seen in the vanishing of the problem. (Is not this the reason why those who have found after a long period of doubt that the sense of life became clear to them have then been unable to say what constituted that sense?)</a> <br></br> <div class="outline-text-5" id="text-6.521-The-solution-of-the-problem-of-life-is-seen-in-the-vanishing-of-the-problem.-(Is-not-this-the-reason-why-those-who-have-found-after-a-long-period-of-doubt-that-the-sense-of-life-became-clear-to-them-have-then-been-unable-to-say-what-constituted-that-sense?)">
 <p>
Why do we program?
Because it is fun?
</p>

 <p>
Anyway, it is not about logic and is unlikely to be answered in precise statements.
</p>
</div>
</li>

 <li> <a id="6.522-There-are,-indeed,-things-that-cannot-be-put-into-words.-They-make-themselves-manifest.-They-are-what-is-mystical."></a> <a href="#6.522-There-are,-indeed,-things-that-cannot-be-put-into-words.-They-make-themselves-manifest.-They-are-what-is-mystical.">6.522 There are, indeed, things that cannot be put into words. They make themselves manifest. They are what is mystical.</a> <br></br> <div class="outline-text-5" id="text-6.522-There-are,-indeed,-things-that-cannot-be-put-into-words.-They-make-themselves-manifest.-They-are-what-is-mystical.">
 <p>
Machine learning is (still) an example of such a thing.
Clearly works, and is humiliatingly unclear about how it actually works.
</p>

 <p>
If we explain them at some point, they will stop being mysterious.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-6.53-The-correct-method-in-philosophy-would-really-be-the-following:-to-say-nothing-except-what-can-be-said,-i.e.-propositions-of-natural-science-%E2%80%94-i.e.-something-that-has-nothing-to-do-with-philosophy-%E2%80%94-and-then,-whenever-someone-else-wanted-to-say-something-metaphysical,-to-demonstrate-to-him-that-he-had-failed-to-give-a-meaning-to-certain-signs-in-his-propositions.-Although-it-would-not-be-satisfying-to-the-other-person-%E2%80%94-he-would-not-have-the-feeling-that-we-were-teaching-him-philosophy-%E2%80%94-this-method-would-be-the-only-strictly-correct-one." class="outline-4">
 <h4 id="6.53-The-correct-method-in-philosophy-would-really-be-the-following:-to-say-nothing-except-what-can-be-said,-i.e.-propositions-of-natural-science-%E2%80%94-i.e.-something-that-has-nothing-to-do-with-philosophy-%E2%80%94-and-then,-whenever-someone-else-wanted-to-say-something-metaphysical,-to-demonstrate-to-him-that-he-had-failed-to-give-a-meaning-to-certain-signs-in-his-propositions.-Although-it-would-not-be-satisfying-to-the-other-person-%E2%80%94-he-would-not-have-the-feeling-that-we-were-teaching-him-philosophy-%E2%80%94-this-method-would-be-the-only-strictly-correct-one."> <span class="section-number-4">6.5.3.</span>  <a href="#6.53-The-correct-method-in-philosophy-would-really-be-the-following:-to-say-nothing-except-what-can-be-said,-i.e.-propositions-of-natural-science-%E2%80%94-i.e.-something-that-has-nothing-to-do-with-philosophy-%E2%80%94-and-then,-whenever-someone-else-wanted-to-say-something-metaphysical,-to-demonstrate-to-him-that-he-had-failed-to-give-a-meaning-to-certain-signs-in-his-propositions.-Although-it-would-not-be-satisfying-to-the-other-person-%E2%80%94-he-would-not-have-the-feeling-that-we-were-teaching-him-philosophy-%E2%80%94-this-method-would-be-the-only-strictly-correct-one.">6.53 The correct method in philosophy would really be the following: to say nothing except what can be said, i.e. propositions of natural science — i.e. something that has nothing to do with philosophy — and then, whenever someone else wanted to say something metaphysical, to demonstrate to him that he had failed to give a meaning to certain signs in his propositions. Although it would not be satisfying to the other person — he would not have the feeling that we were teaching him philosophy — this method would be the only strictly correct one.</a></h4>
 <div class="outline-text-4" id="text-6.53-The-correct-method-in-philosophy-would-really-be-the-following:-to-say-nothing-except-what-can-be-said,-i.e.-propositions-of-natural-science-%E2%80%94-i.e.-something-that-has-nothing-to-do-with-philosophy-%E2%80%94-and-then,-whenever-someone-else-wanted-to-say-something-metaphysical,-to-demonstrate-to-him-that-he-had-failed-to-give-a-meaning-to-certain-signs-in-his-propositions.-Although-it-would-not-be-satisfying-to-the-other-person-%E2%80%94-he-would-not-have-the-feeling-that-we-were-teaching-him-philosophy-%E2%80%94-this-method-would-be-the-only-strictly-correct-one.">
 <p>
 <span class="underline">And</span> it is  <span class="underline">the way</span> to  <span class="underline">digitise the world</span>.
</p>

 <p>
The main point off this clause is not the denigration of non-natural sciences, but rather the idea that evern soft science, via the philosophical method, can be digitised sufficiently to be described in a programming language.
</p>

 <p>
And then it becomes a natural science and can be treated accordingly.
</p>
</div>
</div>

 <div id="outline-container-6.54-My-propositions-serve-as-elucidations-in-the-following-way:-anyone-who-understands-me-eventually-recognizes-them-as-nonsensical,-when-he-has-used-them-%E2%80%94-as-steps-%E2%80%94-to-climb-up-beyond-them.-(He-must,-so-to-speak,-throw-away-the-ladder-after-he-has-climbed-up-it.)-He-must-transcend-these-propositions,-and-then-he-will-see-the-world-aright." class="outline-4">
 <h4 id="6.54-My-propositions-serve-as-elucidations-in-the-following-way:-anyone-who-understands-me-eventually-recognizes-them-as-nonsensical,-when-he-has-used-them-%E2%80%94-as-steps-%E2%80%94-to-climb-up-beyond-them.-(He-must,-so-to-speak,-throw-away-the-ladder-after-he-has-climbed-up-it.)-He-must-transcend-these-propositions,-and-then-he-will-see-the-world-aright."> <span class="section-number-4">6.5.4.</span>  <a href="#6.54-My-propositions-serve-as-elucidations-in-the-following-way:-anyone-who-understands-me-eventually-recognizes-them-as-nonsensical,-when-he-has-used-them-%E2%80%94-as-steps-%E2%80%94-to-climb-up-beyond-them.-(He-must,-so-to-speak,-throw-away-the-ladder-after-he-has-climbed-up-it.)-He-must-transcend-these-propositions,-and-then-he-will-see-the-world-aright.">6.54 My propositions serve as elucidations in the following way: anyone who understands me eventually recognizes them as nonsensical, when he has used them — as steps — to climb up beyond them. (He must, so to speak, throw away the ladder after he has climbed up it.) He must transcend these propositions, and then he will see the world aright.</a></h4>
 <div class="outline-text-4" id="text-6.54-My-propositions-serve-as-elucidations-in-the-following-way:-anyone-who-understands-me-eventually-recognizes-them-as-nonsensical,-when-he-has-used-them-%E2%80%94-as-steps-%E2%80%94-to-climb-up-beyond-them.-(He-must,-so-to-speak,-throw-away-the-ladder-after-he-has-climbed-up-it.)-He-must-transcend-these-propositions,-and-then-he-will-see-the-world-aright.">
 <p>
Again, nonsensical here is not a denigrating characterisation.
Nonsensical means that there is no formal logic that describes the philosophical method of the  <span class="underline">Tractatus</span>.
</p>

 <p>
That could have been a logic  <span class="underline">of the machine that is simulating us</span>.
</p>

 <p>
However, remember, a machine  <span class="underline">may</span> have cpuid, cpuinfo, and similar instructions.
But  <span class="underline">the programmer</span> knows which part of memory corresponds to them.
For robots, they are indistinguishable from random places in memory.
The Tractatus  <span class="underline">may</span> be the cpuid.
</p>
</div>
</div>
</div>
</section> <section id="outline-container-7-What-we-cannot-speak-about-we-must-pass-over-in-silence." class="outline-2"> <h2 id="7-What-we-cannot-speak-about-we-must-pass-over-in-silence."> <span class="section-number-2">7.</span>  <a href="#7-What-we-cannot-speak-about-we-must-pass-over-in-silence.">7 What we cannot speak about we must pass over in silence.</a></h2>
 <div class="outline-text-2" id="text-7-What-we-cannot-speak-about-we-must-pass-over-in-silence.">
 <p>
I wonder how many people have written a commentary as extensive as mine, and had it deleted after reading this statement.
</p>

 <p>
For me this clause is perfectly clear: do not try to create "digital court jury", "digital moral code", "aesthetics assessment algorithms", and such.
Those things are subjective and ill-defined.
</p>

 <p>
It's not that you cannot "create some incomplete model" of those domains.
It is that those programs will start to eventually annoy your users by being outrageously wrong and exploitable.
Like those tiny grids that you can glue onto your car's license plate to make it completely incomprehensible to image recognition systems.
</p>

 <p>
All those "StackOverflow" "Rating, Carma, Voting"; Habr's "Carma, Rating", Facebook's "Likes" and "Emotions", are going to become humiliatingly fake and representing nothing very soon after being implemented.
</p>
</div>
</section> <section id="outline-container-The-End" class="outline-2"> <h2 id="The-End"> <span class="section-number-2">8.</span>  <a href="#The-End">The End</a></h2>
 <div class="outline-text-2" id="text-The-End">
 <p>
Lockywolf  <span class="timestamp-wrapper"> <span class="timestamp"><2021-06-01 Tue 18:22></span></span>
</p>

 <p>
This review took 36 working hours.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-11-18_Reading-Tractatuc-Logico-Philosophicus-by-Ludwig-Wittgenstein/2020-11-18_Tractatus-Logico-Philosophicus-by-Ludwig-Wittgenstein-Reading-Notes.html"/>
  <id>https://lockywolf.net/2020-11-18_Reading-Tractatuc-Logico-Philosophicus-by-Ludwig-Wittgenstein/2020-11-18_Tractatus-Logico-Philosophicus-by-Ludwig-Wittgenstein-Reading-Notes.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading the USA foundational documents.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading the USA foundational documents.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract">1. Abstract</a></li>
 <li> <a href="#Documents">2. Documents</a>
 <ul> <li> <a href="#Give-me-Liberty-or-give-me-Death,-1775-03-23-(Patrick-Henry)">2.1. Give me Liberty or give me Death, 1775-03-23 (Patrick Henry)</a>
 <ul> <li> <a href="#Important-phrases">2.1.1. Important phrases</a></li>
 <li> <a href="#Hard-Phrases">2.1.2. Hard Phrases</a></li>
 <li> <a href="#Words">2.1.3. Words</a></li>
</ul></li>
 <li> <a href="#Declaration-of-Independence,-1776-07-04-(Thomas-Jefferson-with-the-help-of-Benjamin-Franklin,-John-Adams,-Roger-Sherman,-Robert-Livingston)">2.2. Declaration of Independence, 1776-07-04 (Thomas Jefferson with the help of Benjamin Franklin, John Adams, Roger Sherman, Robert Livingston)</a>
 <ul> <li> <a href="#Important-Phrases">2.2.1. Important Phrases</a></li>
 <li> <a href="#Hard-Phrases-1">2.2.2. Hard Phrases</a></li>
 <li> <a href="#Words-1">2.2.3. Words</a></li>
</ul></li>
 <li> <a href="#Articles-of-Confederation,-1777-11-15">2.3. Articles of Confederation, 1777-11-15</a>
 <ul> <li> <a href="#Important-phrases-1">2.3.1. Important phrases</a></li>
 <li> <a href="#Difficult-words">2.3.2. Difficult words</a></li>
</ul></li>
 <li> <a href="#The-Constitution-of-the-United-States,-1787-09-17-(Gouverneur-Morris)">2.4. The Constitution of the United States, 1787-09-17 (Gouverneur Morris)</a></li>
 <li> <a href="#The-Federalist,-1787-10-and-1788-04-(Alexander-Hamilton,-James-Madison,-John-Jay)">2.5. The Federalist, 1787-10 and 1788-04 (Alexander Hamilton, James Madison, John Jay)</a></li>
 <li> <a href="#The-Anti-Federalist-(Patrick-Henry,-Thomas-Jefferson,-Samuel-Adams,-Joshua-Atherton)">2.6. The Anti-Federalist (Patrick Henry, Thomas Jefferson, Samuel Adams, Joshua Atherton)</a></li>
 <li> <a href="#The-Bill-of-Rights,-1789-09-25-(James-Madison)">2.7. The Bill of Rights, 1789-09-25 (James Madison)</a></li>
 <li> <a href="#Important-Amendments-(many-of-those)">2.8. Important Amendments (many of those)</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Abstract" class="outline-2"> <h2 id="Abstract"> <span class="section-number-2">1.</span>  <a href="#Abstract">Abstract</a></h2>
 <div class="outline-text-2" id="text-Abstract">
 <p>
This document is for reading and making notes about the different foundational documents of the United States.
</p>
</div>
</section> <section id="outline-container-Documents" class="outline-2"> <h2 id="Documents"> <span class="section-number-2">2.</span>  <a href="#Documents">Documents</a></h2>
 <div class="outline-text-2" id="text-Documents">
</div>

 <div id="outline-container-Give-me-Liberty-or-give-me-Death,-1775-03-23-(Patrick-Henry)" class="outline-3">
 <h3 id="Give-me-Liberty-or-give-me-Death,-1775-03-23-(Patrick-Henry)"> <span class="section-number-3">2.1.</span>  <a href="#Give-me-Liberty-or-give-me-Death,-1775-03-23-(Patrick-Henry)">Give me Liberty or give me Death, 1775-03-23 (Patrick Henry)</a></h3>
 <div class="outline-text-3" id="text-Give-me-Liberty-or-give-me-Death,-1775-03-23-(Patrick-Henry)">
</div>

 <div id="outline-container-Important-phrases" class="outline-4">
 <h4 id="Important-phrases"> <span class="section-number-4">2.1.1.</span>  <a href="#Important-phrases">Important phrases</a></h4>
 <div class="outline-text-4" id="text-Important-phrases">
</div>

 <ol class="org-ol"> <li> <a id="experience-above-all:"></a> <a href="#experience-above-all:">Experience above all:</a> <br></br> <div class="outline-text-5" id="text-experience-above-all:">
 <p>
I have but one lamp by which my feet are guided; and that is the lamp of experience
</p>
</div>
</li>

 <li> <a id="power-is-against-the-people:"></a> <a href="#power-is-against-the-people:">Power is against the people:</a> <br></br> <div class="outline-text-5" id="text-power-is-against-the-people:">
 <p>
Has Great Britain any enemy in this quarter of the world, to call for all this accumulation of navies and armies? No, sir, she has none. They are meant for us: they can be meant for no other.
</p>
</div>
</li>

 <li> <a id="insist-on-the-fact-that-argumentation-has-all-been-exhausted:"></a> <a href="#insist-on-the-fact-that-argumentation-has-all-been-exhausted:">Insist on the fact that argumentation has all been exhausted:</a> <br></br> <div class="outline-text-5" id="text-insist-on-the-fact-that-argumentation-has-all-been-exhausted:">
 <p>
Shall we try argument? Sir, we have been trying that for the last ten years. Have we
anything new to offer upon the subject? Nothing. We have held the subject up in every
light of which it is capable; but it has been all in vain. Shall we resort to
entreaty and humble supplication? What terms shall we find which have not been
already exhausted? Let us not, I beseech you, sir, deceive ourselves longer.
</p>
</div>
</li>

 <li> <a id="insist-that-waiting-is-not-giving-us-any-advantage:"></a> <a href="#insist-that-waiting-is-not-giving-us-any-advantage:">Insist that waiting is not giving us any advantage:</a> <br></br> <div class="outline-text-5" id="text-insist-that-waiting-is-not-giving-us-any-advantage:">
 <p>
They tell us, sir, that we are weak — unable to cope with so formidable an adversary.
But when shall we be stronger? Will it be the next week or the next year? Will it be
when we are totally disarmed, and when a British guard shall be stationed in every
house?
</p>
</div>
</li>

 <li> <a id="overstate-the-numbers:"></a> <a href="#overstate-the-numbers:">Overstate the numbers:</a> <br></br> <div class="outline-text-5" id="text-overstate-the-numbers:">
 <p>
Three millions of people, armed in the holy cause of liberty, and in such a country
as that which we possess, are invincible by any force which our enemy can send
against us.
</p>
</div>
</li>

 <li> <a id="imply-that-we-are-not-alone:"></a> <a href="#imply-that-we-are-not-alone:">Imply that we are not alone:</a> <br></br> <div class="outline-text-5" id="text-imply-that-we-are-not-alone:">
 <p>
Besides, sir, we shall not fight our battles alone. There is a just God who presides
over the destinies of nations; and who will raise up friends to fight our battles for
us.
</p>
</div>
</li>

 <li> <a id="imply-that-raw-power-is-not-enough:"></a> <a href="#imply-that-raw-power-is-not-enough:">Imply that raw power is not enough:</a> <br></br> <div class="outline-text-5" id="text-imply-that-raw-power-is-not-enough:">
 <p>
The battle, sir, is not to the strong alone; it is to the vigilant, the active, the
brave.
</p>
</div>
</li>

 <li> <a id="imply-that-there-is-no-retreat:"></a> <a href="#imply-that-there-is-no-retreat:">Imply that there is no retreat:</a> <br></br> <div class="outline-text-5" id="text-imply-that-there-is-no-retreat:">
 <p>
Besides, sir, we have no election. If we were base enough to desire it, it is now too
late to retire from the contest. There is no retreat but in submission and slavery!
Our chains are forged. Their clanking may be heard on the plains of Boston!
</p>
</div>
</li>

 <li> <a id="imply-that-other-people-are-already-engaged:"></a> <a href="#imply-that-other-people-are-already-engaged:">Imply that other people are already engaged:</a> <br></br> <div class="outline-text-5" id="text-imply-that-other-people-are-already-engaged:">
 <p>
Our brethren are already in the field!
</p>
</div>
</li>

 <li> <a id="throw-a-challenge:"></a> <a href="#throw-a-challenge:">Throw a challenge:</a> <br></br> <div class="outline-text-5" id="text-throw-a-challenge:">
 <p>
Is life so dear, or peace so sweet, as to be purchased at the price of chains and
slavery? Forbid it, Almighty God!
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Hard-Phrases" class="outline-4">
 <h4 id="Hard-Phrases"> <span class="section-number-4">2.1.2.</span>  <a href="#Hard-Phrases">Hard Phrases</a></h4>
 <div class="outline-text-4" id="text-Hard-Phrases">
</div>

 <ol class="org-ol"> <li> <a id="It-is-natural-*to-man*-to-indulge-in-the-illusions-of-hope."></a> <a href="#It-is-natural-*to-man*-to-indulge-in-the-illusions-of-hope.">It is natural  <b>to man</b> to indulge in the illusions of hope.</a> <br></br> <div class="outline-text-5" id="text-It-is-natural-*to-man*-to-indulge-in-the-illusions-of-hope.">
 <p>
Not  <span class="underline">for man</span>.
English is tricky.
</p>
</div>
</li>

 <li> <a id="We-are-*apt-to*-shut-our-eyes"></a> <a href="#We-are-*apt-to*-shut-our-eyes">We are  <b>apt to</b> shut our eyes</a> <br></br> <div class="outline-text-5" id="text-We-are-*apt-to*-shut-our-eyes">
 <p>
"apt to" means what?
</p>
</div>
</li>

 <li> <a id="Is-this-%22the-part-of-wise-men%22"></a> <a href="#Is-this-%22the-part-of-wise-men%22">Is this "the part of wise men"</a> <br></br> <div class="outline-text-5" id="text-Is-this-%22the-part-of-wise-men%22">
 <p>
It proper for wise men?
</p>
</div>
</li>

 <li> <a id="Are-we-*disposed-to*-be-of-the-number-of-those,-who-having-eyes,-see-not,-and-having-ears,-hear-not,-the-things-which-so-nearly-concern-their-temporal-salvation?"></a> <a href="#Are-we-*disposed-to*-be-of-the-number-of-those,-who-having-eyes,-see-not,-and-having-ears,-hear-not,-the-things-which-so-nearly-concern-their-temporal-salvation?">Are we  <b>disposed to</b> be of the number of those, who having eyes, see not, and having ears, hear not, the things which so nearly concern their temporal salvation?</a> <br></br> <div class="outline-text-5" id="text-Are-we-*disposed-to*-be-of-the-number-of-those,-who-having-eyes,-see-not,-and-having-ears,-hear-not,-the-things-which-so-nearly-concern-their-temporal-salvation?">
 <p>
"disposed to" means "destined to"
</p>
</div>
</li>

 <li> <a id="God-of-Hosts"></a> <a href="#God-of-Hosts">God of Hosts</a> <br></br> <div class="outline-text-5" id="text-God-of-Hosts">
 <p>
?
</p>
</div>
</li>
</ol></div>



 <div id="outline-container-Words" class="outline-4">
 <h4 id="Words"> <span class="section-number-4">2.1.3.</span>  <a href="#Words">Words</a></h4>
 <div class="outline-text-4" id="text-Words">
 <table> <colgroup> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">word</th>
 <th scope="col" class="org-left">translation</th>
</tr></thead> <tbody> <tr> <td class="org-left">anguish</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">For my part</td>
 <td class="org-left">as to me</td>
</tr> <tr> <td class="org-left">to provide for it</td>
 <td class="org-left">to prepare for it</td>
</tr> <tr> <td class="org-left">snare</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">comport</td>
 <td class="org-left">match</td>
</tr> <tr> <td class="org-left">remonstrate</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">supplicate</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">slight a petition</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">fond hope</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">contend privilege</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">supinely</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">extenuate</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">gale</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">sweeps</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">resounding</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left"> </td>
 <td class="org-left"> </td>
</tr></tbody></table></div>
</div>
</div>



 <div id="outline-container-Declaration-of-Independence,-1776-07-04-(Thomas-Jefferson-with-the-help-of-Benjamin-Franklin,-John-Adams,-Roger-Sherman,-Robert-Livingston)" class="outline-3">
 <h3 id="Declaration-of-Independence,-1776-07-04-(Thomas-Jefferson-with-the-help-of-Benjamin-Franklin,-John-Adams,-Roger-Sherman,-Robert-Livingston)"> <span class="section-number-3">2.2.</span>  <a href="#Declaration-of-Independence,-1776-07-04-(Thomas-Jefferson-with-the-help-of-Benjamin-Franklin,-John-Adams,-Roger-Sherman,-Robert-Livingston)">Declaration of Independence, 1776-07-04 (Thomas Jefferson with the help of Benjamin Franklin, John Adams, Roger Sherman, Robert Livingston)</a></h3>
 <div class="outline-text-3" id="text-Declaration-of-Independence,-1776-07-04-(Thomas-Jefferson-with-the-help-of-Benjamin-Franklin,-John-Adams,-Roger-Sherman,-Robert-Livingston)">
</div>

 <div id="outline-container-Important-Phrases" class="outline-4">
 <h4 id="Important-Phrases"> <span class="section-number-4">2.2.1.</span>  <a href="#Important-Phrases">Important Phrases</a></h4>
 <div class="outline-text-4" id="text-Important-Phrases">
</div>

 <ol class="org-ol"> <li> <a id="you-must-declare-what-exactly-makes-you-leave-the-union:"></a> <a href="#you-must-declare-what-exactly-makes-you-leave-the-union:">You must declare what exactly makes you leave the union:</a> <br></br> <div class="outline-text-5" id="text-you-must-declare-what-exactly-makes-you-leave-the-union:">
 <p>
When in the Course of human events, it becomes necessary for one people to dissolve
the political bands which have connected them with another, and to assume among the
powers of the earth, the separate and equal station to which the Laws of Nature and
of Nature's God entitle them, a decent respect to the opinions of mankind requires
that they should declare the causes which impel them to the separation.
</p>
</div>
</li>

 <li> <a id="there-are-inalienable-rights:"></a> <a href="#there-are-inalienable-rights:">There are inalienable rights:</a> <br></br> <div class="outline-text-5" id="text-there-are-inalienable-rights:">
 <p>
We hold these truths to be self-evident, that all men are created equal, that they
are endowed by their Creator with certain unalienable Rights, that among these are
Life, Liberty and the pursuit of Happiness.
</p>
</div>
</li>

 <li> <a id="governments-are-to-serve-the-people-and-protect-rights:"></a> <a href="#governments-are-to-serve-the-people-and-protect-rights:">Governments are to serve the people and protect rights:</a> <br></br> <div class="outline-text-5" id="text-governments-are-to-serve-the-people-and-protect-rights:">
 <p>
That to secure these rights, Governments are instituted among Men, deriving their
just powers from the consent of the governed, –That whenever any Form of Government
becomes destructive of these ends, it is the Right of the People to alter or to
abolish it, and to institute new Government, laying its foundation on such principles
and organizing its powers in such form, as to them shall seem most likely to effect
their Safety and Happiness.
</p>
</div>
</li>

 <li> <a id="it-is-generally-not-very-good-to-just-rebel:"></a> <a href="#it-is-generally-not-very-good-to-just-rebel:">It is generally not very good to just rebel:</a> <br></br> <div class="outline-text-5" id="text-it-is-generally-not-very-good-to-just-rebel:">
 <p>
Prudence, indeed, will dictate that Governments long established should not be
changed for light and transient causes;
</p>
</div>
</li>

 <li> <a id="When-suffering-is-no-too-big,-people-keep-suffering:"></a> <a href="#When-suffering-is-no-too-big,-people-keep-suffering:">When suffering is no too big, people keep suffering:</a> <br></br> <div class="outline-text-5" id="text-When-suffering-is-no-too-big,-people-keep-suffering:">
 <p>
all experience hath shewn, that mankind are more disposed to suffer, while evils are
sufferable, than to right themselves by abolishing the forms to which they are
accustomed.
</p>
</div>
</li>

 <li> <a id="stress-that-hardships-are-for-the-future:"></a> <a href="#stress-that-hardships-are-for-the-future:">Stress that hardships are for the future:</a> <br></br> <div class="outline-text-5" id="text-stress-that-hardships-are-for-the-future:">
 <p>
it is their right, it is their duty, to throw off such Government, and to provide new
Guards for their future security
</p>
</div>
</li>

 <li> <a id="list-explicitly-all-the-grievances-of-yours:"></a> <a href="#list-explicitly-all-the-grievances-of-yours:">List explicitly all the grievances of yours:</a> <br></br> <div class="outline-text-5" id="text-list-explicitly-all-the-grievances-of-yours:">
 <p>
To prove this, let Facts be submitted to a candid world.
</p>
</div>
</li>

 <li> <a id="no-feedback:"></a> <a href="#no-feedback:">No feedback:</a> <br></br> <div class="outline-text-5" id="text-no-feedback:">
 <p>
He has refused his Assent to Laws
</p>
</div>
</li>

 <li> <a id="no-delegation-of-power:"></a> <a href="#no-delegation-of-power:">No delegation of power:</a> <br></br> <div class="outline-text-5" id="text-no-delegation-of-power:">
 <p>
He has forbidden his Governors to pass Laws of immediate and pressing importance
</p>
</div>
</li>

 <li> <a id="no-representation:"></a> <a href="#no-representation:">No representation:</a> <br></br> <div class="outline-text-5" id="text-no-representation:">
 <p>
He has refused to pass other Laws for the accommodation of large districts of people
</p>
</div>
</li>

 <li> <a id="made-deliberate-inconveniences-for-people:"></a> <a href="#made-deliberate-inconveniences-for-people:">Made deliberate inconveniences for people:</a> <br></br> <div class="outline-text-5" id="text-made-deliberate-inconveniences-for-people:">
 <p>
He has called together legislative bodies at places unusual, uncomfortable
</p>
</div>
</li>

 <li> <a id="did-infringements-repeatedly:"></a> <a href="#did-infringements-repeatedly:">Did infringements repeatedly:</a> <br></br> <div class="outline-text-5" id="text-did-infringements-repeatedly:">
 <p>
He has dissolved Representative Houses repeatedly
</p>
</div>
</li>

 <li> <a id="legislative-powers-return-to-people:-(!)"></a> <a href="#legislative-powers-return-to-people:-(!)">Legislative powers return to people: (!)</a> <br></br> <div class="outline-text-5" id="text-legislative-powers-return-to-people:-(!)">
 <p>
Legislative powers, incapable of Annihilation, have returned to the People at large
for their exercise;
</p>

 <p>
A very interesting phrase! As a Russian, I would have never thought that Legislative
powers are incapable of annihilation. I would presume that they appear with the
emergence of an assembly and disappear with its dissolution.
</p>
</div>
</li>

 <li> <a id="stress-security:"></a> <a href="#stress-security:">Stress security:</a> <br></br> <div class="outline-text-5" id="text-stress-security:">
 <p>
the State remaining in the mean time exposed to all the dangers of invasion from
without, and convulsions within.
</p>
</div>
</li>

 <li> <a id="The-invitation-of-friends-is-a-_right_-of-a-region:"></a> <a href="#The-invitation-of-friends-is-a-_right_-of-a-region:">The invitation of friends is a  <span class="underline">right</span> of a region:</a> <br></br> <div class="outline-text-5" id="text-The-invitation-of-friends-is-a-_right_-of-a-region:">
 <p>
He has endeavoured to prevent the population of these States; for that purpose
obstructing the Laws for Naturalization of Foreigners;
</p>
</div>
</li>

 <li> <a id="Citizenship-is-_invariably_-tied-to-owning-land:"></a> <a href="#Citizenship-is-_invariably_-tied-to-owning-land:">Citizenship is  <span class="underline">invariably</span> tied to owning land:</a> <br></br> <div class="outline-text-5" id="text-Citizenship-is-_invariably_-tied-to-owning-land:">
 <p>
refusing to pass others to encourage their migrations hither, and raising the
conditions of new  <b>Appropriations of Lands</b>.
</p>
</div>
</li>

 <li> <a id="independent-courts-were-still-a-problem:"></a> <a href="#independent-courts-were-still-a-problem:">Independent courts were still a problem:</a> <br></br> <div class="outline-text-5" id="text-independent-courts-were-still-a-problem:">
 <p>
He has obstructed the Administration of Justice, by refusing his Assent to Laws for
establishing Judiciary powers.
</p>
</div>
</li>

 <li> <a id="dependence-of-judges-was-reinforced-by-salaries-at-that-time-already:"></a> <a href="#dependence-of-judges-was-reinforced-by-salaries-at-that-time-already:">Dependence of judges was reinforced by salaries at that time already:</a> <br></br> <div class="outline-text-5" id="text-dependence-of-judges-was-reinforced-by-salaries-at-that-time-already:">
 <p>
He has made Judges dependent on his Will alone, for the tenure of their offices, and
the amount and payment of their salaries.
</p>
</div>
</li>

 <li> <a id="bureaucracy-was-already-a-problem:"></a> <a href="#bureaucracy-was-already-a-problem:">Bureaucracy was already a problem:</a> <br></br> <div class="outline-text-5" id="text-bureaucracy-was-already-a-problem:">
 <p>
He has erected a multitude of New Offices, and sent hither swarms of Officers to
harrass our people, and eat out their substance.
</p>
</div>
</li>

 <li> <a id="too-much-siloviki-was-already-a-problem:"></a> <a href="#too-much-siloviki-was-already-a-problem:">Too much siloviki was already a problem:</a> <br></br> <div class="outline-text-5" id="text-too-much-siloviki-was-already-a-problem:">
 <p>
He has kept among us, in times of peace, Standing Armies without the Consent of our
legislatures.
</p>
</div>
</li>

 <li> <a id="oprichnina-was-already-a-problem:"></a> <a href="#oprichnina-was-already-a-problem:">Oprichnina was already a problem:</a> <br></br> <div class="outline-text-5" id="text-oprichnina-was-already-a-problem:">
 <p>
He has affected to render the Military independent of and superior to the Civil power.
</p>
</div>
</li>

 <li> <a id="the-over-representation-of-irrelevant-people-in-the-parliament-was-already-a-problem:"></a> <a href="#the-over-representation-of-irrelevant-people-in-the-parliament-was-already-a-problem:">The over-representation of irrelevant people in the parliament was already a problem:</a> <br></br> <div class="outline-text-5" id="text-the-over-representation-of-irrelevant-people-in-the-parliament-was-already-a-problem:">
 <p>
He has combined with others to subject us to a jurisdiction foreign to our
constitution, and unacknowledged by our laws; giving his Assent to their Acts of
pretended Legislation:
</p>
</div>
</li>

 <li> <a id="too-large-of-an-army-was-already-a-problem:"></a> <a href="#too-large-of-an-army-was-already-a-problem:">Too large of an army was already a problem:</a> <br></br> <div class="outline-text-5" id="text-too-large-of-an-army-was-already-a-problem:">
 <p>
For Quartering large bodies of armed troops among us:
</p>
</div>
</li>

 <li> <a id="tiny-prison-sentences-were-already-a-problem:"></a> <a href="#tiny-prison-sentences-were-already-a-problem:">Tiny prison sentences were already a problem:</a> <br></br> <div class="outline-text-5" id="text-tiny-prison-sentences-were-already-a-problem:">
 <p>
For protecting them, by a mock Trial, from punishment for any Murders which they
should commit on the Inhabitants of these States:
</p>
</div>
</li>

 <li> <a id="tariffs-and-sanctions-were-already-a-problem:"></a> <a href="#tariffs-and-sanctions-were-already-a-problem:">Tariffs and sanctions were already a problem:</a> <br></br> <div class="outline-text-5" id="text-tariffs-and-sanctions-were-already-a-problem:">
 <p>
For cutting off our Trade with all parts of the world:
</p>
</div>
</li>

 <li> <a id="raising-taxes-was-already-a-problem:"></a> <a href="#raising-taxes-was-already-a-problem:">Raising taxes was already a problem:</a> <br></br> <div class="outline-text-5" id="text-raising-taxes-was-already-a-problem:">
 <p>
For imposing Taxes on us without our Consent:
</p>
</div>
</li>

 <li> <a id="the-trial-by-jury-was-already-a-problem:"></a> <a href="#the-trial-by-jury-was-already-a-problem:">The trial by jury was already a problem:</a> <br></br> <div class="outline-text-5" id="text-the-trial-by-jury-was-already-a-problem:">
 <p>
For depriving us in many cases, of the benefits of Trial by Jury:
</p>
</div>
</li>

 <li> <a id="being-sent-to-siberia-for-minor-things-was-already-a-problem:"></a> <a href="#being-sent-to-siberia-for-minor-things-was-already-a-problem:">Being sent to Siberia for minor things was already a problem:</a> <br></br> <div class="outline-text-5" id="text-being-sent-to-siberia-for-minor-things-was-already-a-problem:">
 <p>
For transporting us beyond Seas to be tried for pretended offences
</p>
</div>
</li>

 <li> <a id="infringement-of-the-local-government-rights-was-already-a-problem:"></a> <a href="#infringement-of-the-local-government-rights-was-already-a-problem:">Infringement of the Local Government rights was already a problem:</a> <br></br> <div class="outline-text-5" id="text-infringement-of-the-local-government-rights-was-already-a-problem:">
 <p>
For taking away our Charters, abolishing our most valuable Laws, and altering
fundamentally the Forms of our Governments:
</p>
</div>
</li>

 <li> <a id="punishment-operations-were-already-a-problem:"></a> <a href="#punishment-operations-were-already-a-problem:">Punishment operations were already a problem:</a> <br></br> <div class="outline-text-5" id="text-punishment-operations-were-already-a-problem:">
 <p>
He has abdicated Government here, by declaring us out of his Protection and waging
War against us.
</p>

 <p>
He has plundered our seas, ravaged our Coasts, burnt our towns, and destroyed the lives of our people.
</p>
</div>
</li>

 <li> <a id="hiring-of-mercenaries-was-already-a-problem:"></a> <a href="#hiring-of-mercenaries-was-already-a-problem:">Hiring of mercenaries was already a problem:</a> <br></br> <div class="outline-text-5" id="text-hiring-of-mercenaries-was-already-a-problem:">
 <p>
He is at this time transporting large Armies of foreign Mercenaries to compleat the
works of death
</p>
</div>
</li>

 <li> <a id="conscription-was-already-a-problem:"></a> <a href="#conscription-was-already-a-problem:">Conscription was already a problem:</a> <br></br> <div class="outline-text-5" id="text-conscription-was-already-a-problem:">
 <p>
He has constrained our fellow Citizens taken Captive on the high Seas to bear Arms
against their Country, to become the executioners of their friends and Brethren, or
to fall themselves by their Hands.
</p>
</div>
</li>

 <li> <a id="exploration-of-national-minorities-was-already-a-problem:"></a> <a href="#exploration-of-national-minorities-was-already-a-problem:">Exploration of national minorities was already a problem:</a> <br></br> <div class="outline-text-5" id="text-exploration-of-national-minorities-was-already-a-problem:">
 <p>
He has excited domestic insurrections amongst us, and has endeavoured to bring on the
inhabitants of our frontiers, the merciless Indian Savages, whose known rule of
warfare, is an undistinguished destruction of all ages, sexes and conditions.
</p>
</div>
</li>

 <li> <a id="people-should-try-negotiations-first:"></a> <a href="#people-should-try-negotiations-first:">People should try negotiations first:</a> <br></br> <div class="outline-text-5" id="text-people-should-try-negotiations-first:">
 <p>
In every stage of these Oppressions We have Petitioned for Redress in the most humble
terms
</p>
</div>
</li>

 <li> <a id="Sanctions-should-be-against-governments,-not-people:"></a> <a href="#Sanctions-should-be-against-governments,-not-people:">Sanctions should be against governments, not people:</a> <br></br> <div class="outline-text-5" id="text-Sanctions-should-be-against-governments,-not-people:">
 <p>
Nor have We been wanting in attentions to our Brittish brethren.
</p>
</div>
</li>

 <li> <a id="main-things-that-constitute-an-independent-state:"></a> <a href="#main-things-that-constitute-an-independent-state:">Main things that constitute an independent State:</a> <br></br> <div class="outline-text-5" id="text-main-things-that-constitute-an-independent-state:">
 <p>
Free and Independent States, they have full Power to levy War, conclude Peace,
contract Alliances, establish Commerce
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Hard-Phrases-1" class="outline-4">
 <h4 id="Hard-Phrases-1"> <span class="section-number-4">2.2.2.</span>  <a href="#Hard-Phrases-1">Hard Phrases</a></h4>
 <div class="outline-text-4" id="text-Hard-Phrases-1">
</div>

 <ol class="org-ol"> <li> <a id="to-right-themselves"></a> <a href="#to-right-themselves">to right themselves</a> <br></br> <div class="outline-text-5" id="text-to-right-themselves">
 <p>
To correct their position.
</p>
</div>
</li>

 <li> <a id="But-when-a-long-train-of-abuses-and-usurpations,-pursuing-invariably-the-same-Object-evinces-a-design-to-reduce-them-under-absolute-Despotism"></a> <a href="#But-when-a-long-train-of-abuses-and-usurpations,-pursuing-invariably-the-same-Object-evinces-a-design-to-reduce-them-under-absolute-Despotism">But when a long train of abuses and usurpations, pursuing invariably the same Object evinces a design to reduce them under absolute Despotism</a> <br></br> <div class="outline-text-5" id="text-But-when-a-long-train-of-abuses-and-usurpations,-pursuing-invariably-the-same-Object-evinces-a-design-to-reduce-them-under-absolute-Despotism">
 <p>
Very hard to conceive such a sentence. Especially "evince a design". What is
"pursuing the same Object"?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Words-1" class="outline-4">
 <h4 id="Words-1"> <span class="section-number-4">2.2.3.</span>  <a href="#Words-1">Words</a></h4>
 <div class="outline-text-4" id="text-Words-1">
 <table> <colgroup> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">word</th>
 <th scope="col" class="org-left">translation</th>
</tr></thead> <tbody> <tr> <td class="org-left">hath shewn</td>
 <td class="org-left">has shown</td>
</tr> <tr> <td class="org-left">acquiesce</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">Absolve</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left"> </td>
 <td class="org-left"> </td>
</tr></tbody></table></div>
</div>
</div>


 <div id="outline-container-Articles-of-Confederation,-1777-11-15" class="outline-3">
 <h3 id="Articles-of-Confederation,-1777-11-15"> <span class="section-number-3">2.3.</span>  <a href="#Articles-of-Confederation,-1777-11-15">Articles of Confederation, 1777-11-15</a></h3>
 <div class="outline-text-3" id="text-Articles-of-Confederation,-1777-11-15">
</div>

 <div id="outline-container-Important-phrases-1" class="outline-4">
 <h4 id="Important-phrases-1"> <span class="section-number-4">2.3.1.</span>  <a href="#Important-phrases-1">Important phrases</a></h4>
 <div class="outline-text-4" id="text-Important-phrases-1">
</div>

 <ol class="org-ol"> <li> <a id="Articles-of-Confederation-are-seen-as-a-document-sent-outwards,-not-inwards"></a> <a href="#Articles-of-Confederation-are-seen-as-a-document-sent-outwards,-not-inwards">Articles of Confederation are seen as a document sent outwards, not inwards</a> <br></br> <div class="outline-text-5" id="text-Articles-of-Confederation-are-seen-as-a-document-sent-outwards,-not-inwards">
 <p>
To all to whom these Presents shall come, we, the undersigned Delegates of the States
affixed to our Names send greeting.
</p>
</div>
</li>

 <li> <a id="A-Country-is-a-union-of-its-parts,-not-more:"></a> <a href="#A-Country-is-a-union-of-its-parts,-not-more:">A Country is a union of its parts, not more:</a> <br></br> <div class="outline-text-5" id="text-A-Country-is-a-union-of-its-parts,-not-more:">
 <p>
Each state retains its sovereignty, freedom and independence, and every Power,
Jurisdiction and right, which is not by this confederation expressly delegated to the
United States, in Congress assembled.
</p>
</div>
</li>

 <li> <a id="the-main-reason-why-a-country-is-formed-is-foreign-defence:"></a> <a href="#the-main-reason-why-a-country-is-formed-is-foreign-defence:">The main reason why a country is formed is foreign defence:</a> <br></br> <div class="outline-text-5" id="text-the-main-reason-why-a-country-is-formed-is-foreign-defence:">
 <p>
The said states hereby severally enter into a firm league of friendship with each
other, for their common defence, the security of their Liberties, and their mutual
and general welfare
</p>
</div>
</li>

 <li> <a id="criminals-are-not-entitled-to-rights:"></a> <a href="#criminals-are-not-entitled-to-rights:">Criminals are not entitled to rights:</a> <br></br> <div class="outline-text-5" id="text-criminals-are-not-entitled-to-rights:">
 <p>
The better to secure and perpetuate mutual friendship and intercourse among the
people of the different states in this union, the free inhabitants of each of these
states, paupers, vagabonds and fugitives from Justice excepted, shall be entitled to
all privileges and immunities of free citizens
</p>
</div>
</li>

 <li> <a id="Each-citizen-of-any-state-A,-when-he-is-in-a-different-state-B,-has-the-same-rights-and-obligations-as-a-free-citizen-of-B,-except-the-transportation-of-goods-(!)"></a> <a href="#Each-citizen-of-any-state-A,-when-he-is-in-a-different-state-B,-has-the-same-rights-and-obligations-as-a-free-citizen-of-B,-except-the-transportation-of-goods-(!)">Each citizen of any state A, when he is in a different state B, has the same rights and obligations as a free citizen of B, except the transportation of goods (!)</a> <br></br> <div class="outline-text-5" id="text-Each-citizen-of-any-state-A,-when-he-is-in-a-different-state-B,-has-the-same-rights-and-obligations-as-a-free-citizen-of-B,-except-the-transportation-of-goods-(!)">
 <p>
shall have free ingress and regress to and from any other state, and shall enjoy
therein all the privileges of trade and commerce, subject to the same duties,
impositions and restrictions as the inhabitants thereof respectively, provided that
such restrictions shall not extend so far as to prevent the removal of property
imported into any state, to any other State of which the Owner is an inhabitant;
</p>
</div>
</li>

 <li> <a id="a-constituent-state-cannot-tax-shared-property-of-the-country-or-any-other-state:"></a> <a href="#a-constituent-state-cannot-tax-shared-property-of-the-country-or-any-other-state:">A constituent state cannot tax shared property of the country or any other state:</a> <br></br> <div class="outline-text-5" id="text-a-constituent-state-cannot-tax-shared-property-of-the-country-or-any-other-state:">
 <p>
no imposition, duties or restriction shall be laid by any state, on the property of
the united states, or either of them.
</p>
</div>
</li>

 <li> <a id="extradition-is-normal:"></a> <a href="#extradition-is-normal:">Extradition is normal:</a> <br></br> <div class="outline-text-5" id="text-extradition-is-normal:">
 <p>
If any Person guilty of, or charged with, treason, felony, or other high misdemeanor
in any state, shall flee from Justice, and be found in any of the united states, he
shall upon demand of the Governor or executive power of the state from which he fled,
be delivered up, and removed to the state having jurisdiction of his offence
</p>
</div>
</li>

 <li> <a id="court-decisions-are-respected:"></a> <a href="#court-decisions-are-respected:">Court decisions are respected:</a> <br></br> <div class="outline-text-5" id="text-court-decisions-are-respected:">
 <p>
Full faith and credit shall be given in each of these states to the records, acts and
judicial proceedings of the courts and magistrates of every other state.
</p>
</div>
</li>

 <li> <a id="delegates-are-sent-by-local-assemblies:"></a> <a href="#delegates-are-sent-by-local-assemblies:">Delegates are sent by local assemblies:</a> <br></br> <div class="outline-text-5" id="text-delegates-are-sent-by-local-assemblies:">
 <p>
delegates shall be annually appointed in such manner as the legislature of each state
shall direct
</p>
</div>
</li>

 <li> <a id="a-local-assembly-can-recall-any-delegate:"></a> <a href="#a-local-assembly-can-recall-any-delegate:">A local assembly can recall any delegate:</a> <br></br> <div class="outline-text-5" id="text-a-local-assembly-can-recall-any-delegate:">
 <p>
power reserved to each state to recall its delegates
</p>
</div>
</li>

 <li> <a id="a-delegate-cannot-be-a-delegate-for-too-long:"></a> <a href="#a-delegate-cannot-be-a-delegate-for-too-long:">A delegate cannot be a delegate for too long:</a> <br></br> <div class="outline-text-5" id="text-a-delegate-cannot-be-a-delegate-for-too-long:">
 <p>
no person shall be capable of being delegate for more than three years, in any term
of six years
</p>
</div>
</li>

 <li> <a id="One-state----one-vote"></a> <a href="#One-state----one-vote">One state – one vote</a> <br></br> <div class="outline-text-5" id="text-One-state----one-vote">
 <p>
In determining questions in the united states, in Congress assembled, each state
shall have one vote.
</p>
</div>
</li>

 <li> <a id="Freedom-of-Speech-is-holy-(at-least-for-the-delegates):"></a> <a href="#Freedom-of-Speech-is-holy-(at-least-for-the-delegates):">Freedom of Speech is holy (at least for the delegates):</a> <br></br> <div class="outline-text-5" id="text-Freedom-of-Speech-is-holy-(at-least-for-the-delegates):">
 <p>
Freedom of speech and debate in Congress shall not be impeached or questioned in any
Court, or place out of Congress, and the members of congress shall be protected in
their persons from arrests and imprisonments, during the time of their going to and
from, and attendance on congress, except for treason, felony, or breach of the peace.
</p>
</div>
</li>
</ol></div>



 <div id="outline-container-Difficult-words" class="outline-4">
 <h4 id="Difficult-words"> <span class="section-number-4">2.3.2.</span>  <a href="#Difficult-words">Difficult words</a></h4>
 <div class="outline-text-4" id="text-Difficult-words">
 <table> <colgroup> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">word</th>
 <th scope="col" class="org-left">translation</th>
</tr></thead> <tbody> <tr> <td class="org-left">Present</td>
 <td class="org-left">верительная грамота?</td>
</tr> <tr> <td class="org-left">viz.</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left">The Stile</td>
 <td class="org-left">The name, title?</td>
</tr> <tr> <td class="org-left"> </td>
 <td class="org-left"> </td>
</tr></tbody></table></div>
</div>
</div>


 <div id="outline-container-The-Constitution-of-the-United-States,-1787-09-17-(Gouverneur-Morris)" class="outline-3">
 <h3 id="The-Constitution-of-the-United-States,-1787-09-17-(Gouverneur-Morris)"> <span class="section-number-3">2.4.</span>  <a href="#The-Constitution-of-the-United-States,-1787-09-17-(Gouverneur-Morris)">The Constitution of the United States, 1787-09-17 (Gouverneur Morris)</a></h3>
 <div class="outline-text-3" id="text-The-Constitution-of-the-United-States,-1787-09-17-(Gouverneur-Morris)">
</div>
</div>

 <div id="outline-container-The-Federalist,-1787-10-and-1788-04-(Alexander-Hamilton,-James-Madison,-John-Jay)" class="outline-3">
 <h3 id="The-Federalist,-1787-10-and-1788-04-(Alexander-Hamilton,-James-Madison,-John-Jay)"> <span class="section-number-3">2.5.</span>  <a href="#The-Federalist,-1787-10-and-1788-04-(Alexander-Hamilton,-James-Madison,-John-Jay)">The Federalist, 1787-10 and 1788-04 (Alexander Hamilton, James Madison, John Jay)</a></h3>
 <div class="outline-text-3" id="text-The-Federalist,-1787-10-and-1788-04-(Alexander-Hamilton,-James-Madison,-John-Jay)">
</div>
</div>

 <div id="outline-container-The-Anti-Federalist-(Patrick-Henry,-Thomas-Jefferson,-Samuel-Adams,-Joshua-Atherton)" class="outline-3">
 <h3 id="The-Anti-Federalist-(Patrick-Henry,-Thomas-Jefferson,-Samuel-Adams,-Joshua-Atherton)"> <span class="section-number-3">2.6.</span>  <a href="#The-Anti-Federalist-(Patrick-Henry,-Thomas-Jefferson,-Samuel-Adams,-Joshua-Atherton)">The Anti-Federalist (Patrick Henry, Thomas Jefferson, Samuel Adams, Joshua Atherton)</a></h3>
 <div class="outline-text-3" id="text-The-Anti-Federalist-(Patrick-Henry,-Thomas-Jefferson,-Samuel-Adams,-Joshua-Atherton)">
</div>
</div>

 <div id="outline-container-The-Bill-of-Rights,-1789-09-25-(James-Madison)" class="outline-3">
 <h3 id="The-Bill-of-Rights,-1789-09-25-(James-Madison)"> <span class="section-number-3">2.7.</span>  <a href="#The-Bill-of-Rights,-1789-09-25-(James-Madison)">The Bill of Rights, 1789-09-25 (James Madison)</a></h3>
 <div class="outline-text-3" id="text-The-Bill-of-Rights,-1789-09-25-(James-Madison)">
</div>
</div>

 <div id="outline-container-Important-Amendments-(many-of-those)" class="outline-3">
 <h3 id="Important-Amendments-(many-of-those)"> <span class="section-number-3">2.8.</span>  <a href="#Important-Amendments-(many-of-those)">Important Amendments (many of those)</a></h3>
 <div class="outline-text-3" id="text-Important-Amendments-(many-of-those)">
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-12-07_USA-Foundational-Documents/index.html"/>
  <id>https://lockywolf.net/2020-12-07_USA-Foundational-Documents/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A sketch of a brain data flow for an adult in 2021.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A sketch of a brain data flow for an adult in 2021.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Body">1.  <span class="todo TODO">TODO</span> Body</a></li>
</ul></div>
</nav> <p>
This sketch is not (yet) implemented in software, it is just an imaginary construct that may be useful for reference.
</p>

 <section id="outline-container-Body" class="outline-2"> <h2 id="Body"> <span class="section-number-2">1.</span>  <a href="#Body"> <span class="todo TODO">TODO</span> Body</a></h2>
 <div class="outline-text-2" id="text-Body">
 <div class="org-src-container">
 <pre class="src src-plantuml">@startuml

skinparam componentStyle uml2

header some header

footer some footer

title A plan for data flow in 2021

caption Unfinished. Version <2021-02-01 Mon 15:49>

legend
Unfinished
TODO:
1. Style services
2. Style crons
3. Style setups
4. Style TODO/DONE
5. Style friendly/adversarial services
6. Mark points of human intervention (e.g. captcha)
7. Make components consistent
end legend

package "Foreign Services" {
component "Facebook" as cFb
component "Twitter" as cTw
component "Instagram" as cIn
component "Telegram" as cTg
component "Vkontakte" as cVk
component "WeChat" as cWc
component "Discord" as cDi
component "Jabber" as cJa
component "TikTok" as cTt
component "DouYin" as cDy
component "WeiBo" as cWb
component "LinkedIn" as cLi
component "Skype" as cSk
component "LiveJournal" as cLj
component "WordPress" as cWp
component "Blogger" as cBg
component "WhatsApp" as cWa
component "AcademiaEdu" as cAe
component "ResearchGate" as cRg
}

cloud "Assorted Providers <<email>>" as cAP

package DigitalOcean{
database "Dovecot (qmail?)" as dbDovecot
node "RSS-Bridge" as cRB
node "TT-RSS" as cTTRSS
database "PostgreSQL" as dbPG
node "Panopticon (TODO)\nContacts manager" as cPan
}



cFb -> cRB : News
cTw -> cRB : News
cIn -> cRB : News
cTg -> cRB : News
cVk -> cRB : News
cWc -> cRB : News


cAP --> dbDovecot : Via for-site-email@domain.name

dbDovecot --> cRB



cRB --> cTTRSS
cloud "RSS" as cRSS

cRSS --> cTTRSS



cTTRSS --> dbPG



cFb -> cPan : Contacts
cTw -> cPan : Contacts
cIn -> cPan : Contacts
cTg -> cPan : Contacts
cVk -> cPan : Contacts
cWc -> cPan : Contacts


package Google {
database "Google Contacts" as dbGcontacts
database "Gmail" as dbGmail
}



cPan -> dbGcontacts

dbGcontacts -> cRB : Feed information


dbGcontacts --> dbGmail : Context provider
dbGmail     --> dbGcontacts : Other contacts miner

package Android {
database "Android\nAddress\nBook" as dbAndroidContacts
database "Androind\nGmail" as dbAndroidGmail
}


dbGcontacts <--> dbAndroidContacts
dbGmail <--> dbAndroidGmail


package Laptop {
database "vdir" as dbVdir
node "khard" as cKhard
node "mu" as cMu
database "maildir" as dbMaildir
component "Thunderbird" as cTb
cTb <--> dbGcontacts
cTb <--> dbGmail

package Emacs {
node "ebdb" as cEbdb
node "mu4e" as cMu4e
}
}

dbGcontacts <--> dbVdir : vdirsyncer


cKhard<--> dbVdir


cEbdb<--> dbVdir


dbGmail <--> dbMaildir : mbsync




dbMaildir <--> cMu
cMu <--> cMu4e

@enduml
</pre>
</div>


 <figure id="orgab516fc"> <img src="./2021-02-01_overall-component-diagram.png" alt="2021-02-01_overall-component-diagram.png"></img></figure></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2021-02-01_brain-data-flow-in-2021/2021-02-01_brain-data-flow-for-2021.html"/>
  <id>https://lockywolf.net/2021-02-01_brain-data-flow-in-2021/2021-02-01_brain-data-flow-for-2021.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Solving SICP</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Solving SICP</h1>
</header> <div class="abstract" id="org7896565">
 <p>
This report is written as a post-mortem of a project that has,
perhaps, been the author’s most extensive personal project: creating a complete and comprehensive solution to one of the most famous programming problem sets in the modern computer science curriculum 
“Structure and Interpretation of Computer Programs”, by Abelson, Sussman, and Sussman ([ <a href="#Abelson1996">2</a>]).
</p>

 <p>
It measures exactly:
</p>
 <ul class="org-ul"> <li>How much effort SICP requires (729 hours 19 minutes (over eight months), 292 sessions).</li>
 <li>How many computer languages it involves (6).</li>
 <li>How many pieces of software are required (9).</li>
 <li>How much communication with peers is needed.</li>
</ul> <p>
It suggests:
</p>
 <ul class="org-ul"> <li>A practical software-supported task management procedure for solving coursework.</li>
 <li>Several improvements, on the technical side, to any hard skills teaching process.</li>
 <li>Several improvements, on the social side, to any kind of teaching process.</li>
</ul> <p>
The solution is published online (the source code and pdf file):
</p>
 <ul class="org-ul"> <li> <a href="http://gitlab.com/Lockywolf/chibi-sicp">http://gitlab.com/Lockywolf/chibi-sicp</a> ([ <a href="#chibi-sicp">25</a>])</li>
</ul> <p>
This report (and the data in the appendix) can be applied immediately as:
</p>
 <ul class="org-ul"> <li>A single-point estimate of the SICP problem set difficulty.</li>
 <li>A class handout aimed at increasing students’ motivation to study.</li>
 <li>A data source for a study of learning patterns among adult professionals aiming for continuing education.</li>
 <li>An “almost ready” protocol for a convenient problem-set solution procedure, which produces artefacts that can be later used as a student portfolio.</li>
 <li>An “almost ready”, and “almost convenient” protocol for measuring time consumption of almost any problem set expressible in a digital form.</li>
</ul> <p>
Additionally, a time-tracking data analysis can be reproduced
interactively in the org-mode version of this report.
(See:  <a href="#appendix:-Emacs-Lisp-code-for-data-analysis">Appendix: Emacs Lisp code for data analysis</a>)
</p>

</div>

 <p>

</p>

 <section id="outline-container-Introduction" class="outline-2"> <h2 id="Introduction"> <span class="section-number-2">1.</span>  <a href="#Introduction">Introduction</a></h2>
 <div class="outline-text-2" id="text-Introduction">
 <p>
Programming language textbooks are not a frequent object of study, as
they are expected to convey existing knowledge. However, teaching
practitioners, when they face the task of designing a computer science
curriculum for their teaching institution, have to base their decisions
on something. An “ad-hoc” teaching method, primarily based on studying
some particular programming language fashionable at the time of
selection, is still a popular choice. 
</p>

 <p>
There have been attempts to approach course design
with more rigour. The “Structure and Interpretation of Computer Programs” was created as a result of such an attempt. SICP was
revolutionary for its time, and perhaps can be still considered
revolutionary nowadays. Twenty years later, this endeavour was analysed by Felleisen in a paper “Structure and Interpretation of Computer Science Curriculum” ([ <a href="#sicsc">14</a>]). He then reflected upon the benefits and drawbacks of the  <code>deliberately designed</code> syllabus from a pedagogical standpoint. He proposed what he believes to be a pedagogically superior successor to the first generation of  <code>deliberate</code> curriculum. (See: “How to Design Programs” (HTDP) [ <a href="#felleisen2018how">15</a>])
</p>

 <p>
Leaving aside the pedagogical quality of the textbook (as the author is not a practising teacher), this report touches a different (and seldom considered!) aspect of a computer science (and in general, any
other subject’s) curriculum. That is,precisely, how much work is required to pass a particular course. 
</p>

 <p>
This endeavour was spurred by the author’s previous experience of
learning about partial differential equations through a traditional
paper-and-pen based approach, only mildly augmented with a
time-tracking software. But even such a tiny augmentation already
exposed an astonishing disparity between a declared laboriousness of
a task and the empirically measured time required to complete it. 
</p>

 <p>
The author, therefore, decided to build upon the previous experience and to try and design as smooth, manageable, and measurable approach to performing university coursework, as possible. A computer science subject provided an obvious choice.
</p>

 <p>
The solution was planned, broken down into parts, harnessed with a
software support system, and executed in a timely and measured manner by the author, thus proving that the chosen goal is doable. 
The complete measured data are provided. Teaching professionals may
benefit from it when planning coursework specialised to their requirements.
</p>

 <p>
More generally, the author wants to propose a comprehensive
reassessment of university teaching in general, based on
empirical approaches (understanding precisely how, when, and what each party
involved in the teaching process does), in order to select the most
efficient (potentially even using an optimisation
algorithm) strategy when selecting a learning approach for every
particular student.
</p>
</div>
</section> <section id="outline-container-Solution-approach" class="outline-2"> <h2 id="Solution-approach"> <span class="section-number-2">2.</span>  <a href="#Solution-approach">Solution approach</a></h2>
 <div class="outline-text-2" id="text-Solution-approach">
 <p>
 The author wanted to provide a solution that would satisfy the
following principles:
</p>

 <ol class="org-ol"> <li>Be complete.</li>
 <li>Be a reasonably realistic model of a solution process as if executed by the intended audience of the course – that is, freshman university students with little programming experience.</li>
 <li>Be done in a “fully digital”, “digitally native” form.</li>
 <li>Be measurable.</li>
</ol> <p>
These principles need an explanation. 
</p>
</div>

 <div id="outline-container-Completeness" class="outline-3">
 <h3 id="Completeness"> <span class="section-number-3">2.1.</span>  <a href="#Completeness">Completeness</a></h3>
 <div class="outline-text-3" id="text-Completeness">
</div>

 <div id="outline-container-Just-solve-all-of-the-exercises" class="outline-4">
 <h4 id="Just-solve-all-of-the-exercises"> <span class="section-number-4">2.1.1.</span>  <a href="#Just-solve-all-of-the-exercises">Just solve all of the exercises</a></h4>
 <div class="outline-text-4" id="text-Just-solve-all-of-the-exercises">
 <p>
The author considers completeness to be an essential property of every
execution of a teaching syllabus.
</p>

 <p>
In simple words, what does it mean “to pass a course” or “to learn a subject” at all?
How exactly can one formalise the statement “I know calculus”?
Even simpler, what allows a student to say “I have learnt everything that was expected in a university course on calculus”? 
</p>

 <p>
It would be a good idea to survey teachers, students, employers, politicians and random members of the community to establish what it means  <span class="underline">for them</span> that a person “knows a subject”.
</p>

 <p>
Following are some potential answers to these questions:
</p>

 <ul class="org-ul"> <li>Passing an oral examination.</li>
 <li>Passing a written examination.</li>
 <li>Passing a project defence committee questioning.</li>
 <li>Completing a required number of continuous assessment (time-limited) tasks.</li>
 <li>Completing coursework.</li>
 <li>Attending a prescribed number of teaching sessions (lectures or tutorials).</li>
 <li>Reading a prescribed amount of prescribed reading material.</li>
</ul> <p>
Any combination of these can also be chosen to signify the “mastering” of a subject, but the course designer is then met with a typical goal-attainment, multi-objective optimisation problem ([ <a href="#Gembicki_1975">18</a>]); such problems are still usually solved by reducing the multiple goals to a single, engineered goal.
</p>

 <p>
Looking at the list above from a “Martian point of view” ([ <a href="#berne:1973:what_do_you_say_after_you_say_hello">5</a>]), we will see that all the goals listed above are reducible to a single “completing coursework” goal. “Completing coursework” is not reducible to any of those specific sub-goals in general, so the “engineered goal” may take the shape of a tree-structured problem set (task/subtask). “Engineered” tasks may include attending tutorials, watching videos and writing feedback.
</p>

 <p>
Moreover, thinking realistically, doing coursework often is the only way
that a working professional can study without altogether abandoning
her job.
</p>

 <p>
Therefore, choosing a computer science textbook that is known primarily for the problem set that comes with it, even more than for the actual text of the material, was a natural choice.
</p>

 <p>
However, that is not enough, because even though “just solving all of the exercises” may be the most measurable and the most necessary learning outcome, is it sufficient?
</p>

 <p>
As the author intended to “grasp the skill” rather than just “pass the exercises”, he initially considered inventing additional exercises to cover parts of the course material not covered by the original problem set.
</p>

 <p>
For practical reasons (in order for the measured data to reflect the original book’s exercises), in the “reference solution” referred to in this report’s bibliography, the reader will not find exercises that are not a part of the original problem set.
</p>

 <p>
The author, however, re-drew several figures from the book, representing those types of figures that are not required to be drawn by any of the exercises.
</p>

 <p>
This was done in order to “be able to reproduce the material contained in the book from scratch at a later date”. This was done only for the cases for which the author considered the already available exercises insufficient. The additional figures did not demand a large enough amount of working time to change the total difficulty estimate noticeably.
</p>
</div>
</div>

 <div id="outline-container-A-faithful-imitation-of-the-university-experience" class="outline-4">
 <h4 id="A-faithful-imitation-of-the-university-experience"> <span class="section-number-4">2.1.2.</span>  <a href="#A-faithful-imitation-of-the-university-experience">A faithful imitation of the university experience</a></h4>
 <div class="outline-text-4" id="text-A-faithful-imitation-of-the-university-experience">
 <p>
One common objection to the undertaken endeavour may be the following. In most universities (if not all), it is not necessary to solve all exercises in order to complete a course. This is often true, and especially true for mathematics-related courses (whose problem books usually contain several times more exercises than reasonably cover the course content). The author, however, considers SICP exercises not to be an example of such a problem set. The exercises cover the course material with minimal overlap, and the author even considered adding several more for the material that the exercises did not fully cover.
</p>

 <p>
Another objection would be that a self-study experience cannot faithfully imitate a university experience at all because a university course contains tutorials and demonstrations as crucial elements. Problem-solving methods are “cooked” by teaching assistants and delivered to the students in a personalised manner in those tutorials. 
</p>

 <p>
This is indeed a valid argument. However, teaching assistants may not necessarily come from a relevant background; they are often recruited from an available pool and not explicitly trained. For such cases, the present report may serve as a crude estimate of the time needed for the teaching assistants to prepare for the tutorials.
</p>

 <p>
Furthermore, many students choose not to attend classes at all either because they are over-confident, or due to high workload. For these groups, this report may serve similarly as a crude estimate. 
</p>

 <p>
Moreover, prior research suggests that the learning outcome effect of class attendance on the top quartile (by grade) of the students is low. ([ <a href="#St_Clair_1999_a_case_agains_compulsory_class_attendance_policies_in_higher_education">9</a>] and [ <a href="#Kooker:1975:Changes_in_grade_distributions_associated_with_changes_in_class_attendance_policies">21</a>])
</p>

 <p>
For the student groups that benefit most from tutorials, this report (if given as a recommended reading for the first lesson) may serve as additional evidence in favour of attendance.
</p>

 <p>
Additionally, nothing seems to preclude recording videos of tutorials and providing them as a supplementary material at the subsequent deliveries of the course.
The lack of interactivity may be compensated for by a large amount of the material (such as the video recordings of questions and answers) accumulated through many years and a well-functioning query system. 
</p>
</div>
</div>

 <div id="outline-container-Meta-cognitive-exercises" class="outline-4">
 <h4 id="Meta-cognitive-exercises"> <span class="section-number-4">2.1.3.</span>  <a href="#Meta-cognitive-exercises">Meta-cognitive exercises</a></h4>
 <div class="outline-text-4" id="text-Meta-cognitive-exercises">
 <p>
It is often underestimated how much imbalance there is between a teacher and a pupil. The teacher not only better knows the subject of study – which is expected– but is also deciding  <span class="underline">how</span> and  <span class="underline">when</span> a student is going to study.
This is often overlooked by practitioners, who consider themselves simply as either as sources of knowledge or, even worse, as only the examiners.
However, it is worth considering the whole effect that a teacher has on the student’s life.
In particular, a student has no other choice than to trust the teacher on the choice of exercises.
A student will likely mimic the teacher’s choice of tools used for the execution of a solution.
</p>

 <p>
The main point of the previous paragraph is that teaching is not only the process of data transmission.
It is also the process of metadata transmission, the development of meta-cognitive skills. (See [ <a href="#Ku2010">22</a>])
Therefore, meta-cognitive challenges, although they may very well be valuable contributions to the student’s “thinking abilities”, deserve their own share of consideration when preparing a course.
</p>

 <p>
Examples of meta-cognitive challenges include:
</p>

 <ul class="org-ul"> <li>Non-sequentiality of material and exercises, so that earlier exercises are impossible to solve without first solving later ones.</li>
 <li>The incompleteness of the treatise.</li>
 <li>The terseness of the narrative.</li>
 <li>Lack of modern software support.</li>
 <li>Missing difficulty/hardness estimation for tasks.</li>
 <li>The vastly non-uniform difficulty of the problems.</li>
</ul> <p>
An additional challenge to the learning process is the lack of peer support.
There have been attempts by learning institutions to encourage peer support among students, but the successfulness of those attempts is unclear.
Do students really help each other in those artificially created support groups?
Inevitably, communication in this those groups will not be limited only to the subject of study.
To what extent does this side-communication affect the learners?
</p>

 <p>
A support medium is even more critical for adult self-learners, who do not get even those artificial support groups created by the school functionaries and do not get access to teaching assistance.
</p>

 <p>
It should be noted that the support medium (a group chat platform, or a mailing list) choice, no matter how irrelevant to the subject itself it may be, is a significant social factor.
This is not to say that a teacher should create a support group in whatever particular social medium that happens to be fashionable at the start of the course.
This is only to say that  <code>deliberate effort</code> should be spent on finding the best support configuration.
</p>

 <p>
In the author’s  <b>personal experience</b>:
</p>

 <ul class="org-ul"> <li>The  <a href="irc:irc.freenode.org/#scheme">#scheme Freenode channel</a> was used as a place to ask questions in real-time. #emacs was also useful.</li>
 <li> <a href="http://stackoverflow.com">http://stackoverflow.com</a> was used to ask asynchronous questions.</li>
 <li>The Scheme Community Wiki  <a href="http://community.schemewiki.org">http://community.schemewiki.org</a> was used as reference material.</li>
 <li>The author emailed some prominent members of the Scheme community with unsolicited questions.</li>
 <li>The author was reporting errors in the documents generated by the Scheme community process.</li>
 <li>The author was asking for help on the Chibi-Scheme mailing list.</li>
 <li>There was also some help from the Open Data Science Slack chat.</li>
 <li>There was also some help from the Closed-Circles data science community.</li>
 <li>There was also some help from the rulinux@confe\hyph{}rence.jabber.ru community.</li>
 <li>There was also some help from the Shanghai Linux User Group.</li>
 <li>There was also some help from the  <a href="http://www.dxdy.ru">http://www.dxdy.ru</a> scientific forum.</li>
 <li>There was also some help from the Haskell self-study group in Telegram.</li>
</ul> <p>
It should be noted that out of those communities, only the Open Data Science community, and a small Haskell community reside in “fashionable” communication systems.
</p>

 <p>
The summary of the community interaction is under the “meta-cognitive” exercises section because the skill of finding people who can help you with your problems is one of the most useful soft skills and one of the hardest to teach.
Moreover, the very people who  <span class="underline">can</span> and  <span class="underline">may</span> answer questions are, in most situations, not at all obliged to do so, so soliciting an answer from non-deliberately-cooperating people is another cognitive exercise that is worth covering explicitly in a lecture.
</p>

 <p>
Repeating the main point of the previous paragraph in other words: human communities consist of rude people. Naturally, no-one can force anyone to bear rudeness, but no-one can force anyone to be polite, either.
The meta-cognitive skill of extracting valuable knowledge from willing but rude people is critical but seldom taught.
</p>

 <p>
The author considers it vital to convey to students, as well as to teachers, the following idea: it is not the fashion, population, easy availability, promotion, and social acceptability of the support media that matters.
Unfortunately, it is not even the technological sophistication, technological modernity or convenience; it is the availability of information and the availability of people who can help. 
</p>

 <p>
Support communication was measured by the following:
</p>

 <ul class="org-ul"> <li>Scheme-system related email threads in the official mailing list:  <b>28</b>.</li>
 <li>Editor/IDE related email threads + bug reports:  <b>16</b>.</li>
 <li>Presentation/formatting related email threads:  <b>20</b>.</li>
 <li>Syllabus related email threads:  <b>3</b>.</li>
 <li>Documentation related email threads (mostly obsolete link reports):  <b>16</b>.</li>
 <li>IRC chat messages:  <b>2394</b> #scheme messages initiated by the author (the number obtained by simple filtering by the author’s nickname).</li>
 <li>Software packages re-uploaded to Software Forges:  <b>2</b> (recovered from original authors’ personal archives).</li>
</ul> <p>
The author did not collect measures of other communication means.
</p>
</div>
</div>

 <div id="outline-container-Figures-to-re-typeset" class="outline-4">
 <h4 id="Figures-to-re-typeset"> <span class="section-number-4">2.1.4.</span>  <a href="#Figures-to-re-typeset">Figures to re-typeset</a></h4>
 <div class="outline-text-4" id="text-Figures-to-re-typeset">
 <p>
Several figures from SICP were re-drawn using a textual representation.
The choice of figures was driven by the idea that someone who successfully completed the book should also be able to re-create the book material and therefore should know how to draw similar diagrams.
Therefore, those were chosen to be representative of the kinds of figures  <span class="underline">not</span> required to be drawn by any exercise.
</p>

 <p>
The list of re-drawn figures:
</p>
 <ul class="org-ul"> <li>1.1 Tree representation, showing the value of each sub-combination.</li>
 <li>1.2 Procedural decomposition of the sqrt program.</li>
 <li>1.3 A linear recursive process.</li>
 <li>2.2 Box-and-pointer representation of  <code>(cons 1 2)</code>.</li>
 <li>2.8 A solution to the eight-queens puzzle.</li>
 <li>3.32 The integral procedure viewed as a signal-processing system.</li>
 <li>3.36 An RLC circuit.</li>
 <li>5.1 Data paths for a Register Machine.</li>
 <li>5.2 Controller for a GCD Machine.</li>
</ul></div>
</div>
</div>

 <div id="outline-container-Behaviour-modelling,-reenactment-and-the-choice-of-tools" class="outline-3">
 <h3 id="Behaviour-modelling,-reenactment-and-the-choice-of-tools"> <span class="section-number-3">2.2.</span>  <a href="#Behaviour-modelling,-reenactment-and-the-choice-of-tools">Behaviour modelling, reenactment and the choice of tools</a></h3>
 <div class="outline-text-3" id="text-Behaviour-modelling,-reenactment-and-the-choice-of-tools">
</div>

 <div id="outline-container-The-author's-background" class="outline-4">
 <h4 id="The-author's-background"> <span class="section-number-4">2.2.1.</span>  <a href="#The-author's-background">The author’s background</a></h4>
 <div class="outline-text-4" id="text-The-author's-background">
 <p>
On starting the project, the author already possessed a PhD in Informatics, although not in software engineering.
This gave an advantage over a first-year undergraduate student.
However, to a large extent, the author still resembled a newbie, as he never before used a proudly functional programming language, and had never used any programmers’ editor other than Notepad++. Another noticeable difference was that the author could type fast without looking at a keyboard (so-called touch-typing). This skill is taught at some U.S.A. high schools but is still not considered mandatory all over the world.  
</p>

 <p>
 <b>NOTE:</b> This whole report depends  <span class="underline">heavily</span> on the fact that the author had learnt how to touch-type, and can do it relatively quickly. Without the skill of fast touch-typing, almost all of the measurements are meaningless, and the choice of tools may seem counter-intuitive or even arbitrary. 
</p>

 <p>
The goal the author had was slightly ambiguous, in the sense that the intention was to model (reenact) an “idealised” student, that is the one that does not exist, in the sense that the author decided to:
</p>

 <ul class="org-ul"> <li>Perform all exercises honestly, no matter how hard they be or how much time they take.</li>
 <li>Solve all exercises without cheating; this did not prohibit consulting other people’s solutions without direct copying.</li>
 <li>Try to use the tools that may have been available at the disposal of the students in 1987, although possibly the most recent versions.</li>
 <li>Try to follow the “Free Software/Open Source/Unix-way” approach as loosely formulated by well-known organisations, as closely as possible.</li>
 <li>Try to prepare a “problem set solution” in a format that may be potentially presentable to a university teacher in charge of accepting or rejecting it.</li>
</ul> <p>
While the first three principles turned out to be almost self-fulfilling, the last one turned out to be more involved.
</p>

 <p>
The author’s personal experience with university-level programming suggested that, on average, the largest amount of time is spent on debugging input and output procedures.
The second-largest amount is usually dedicated to inventing test cases for the code.
The actual writing of the substantive part of the code comes only third.
</p>

 <p>
It is known that SICP had been intended as a deliberately created introductory course. The author assumed that a large part of the syllabus would be dedicated to solving the two most common difficulties described above.
This assumption turned out to not be the case.
Rather than solving them, SICP just goes around them, enforcing a very rigid standard on the input data instead.
</p>

 <p>
While not originally designed for such a treatment, SICP’s approach greatly simplified formatting the ready-to-submit coursework solution as a single file with prose, code blocks, input blocks, and figures interleaved (a so-called “notebook” format.) 
</p>

 <p>
The ambiguity characteristic comes from the need to find a balance between the two “more realistic” mental models of student behaviour. One would be representing a “lazy” student, who would be only willing to work enough to get a passing score. This model would be responsible for saving time and choosing the tools that would possess the least possible incompatibility with the assessment mechanism. The other would be the model of an “eager” student, who would be willing to study the material as deeply as possible, possibly never finishing the course, and would be responsible for the quality of learning and for choosing the best tools available. 
The idea of two different types of motivation is to some extent similar to the “Theory X and theory Y” approach proposed by McGregor ([ <a href="#mcgregor:1960:theory_x_and_theory_y">23</a>]).
</p>

 <p>
Let us try to imagine being an “ideal student”, a mixture of the two models described above, and make the decisions as if the imaginary student would be doing them.
Informally this can be summarised as “I will learn every tool that is required to get the job done to the extent needed to get the job done, but not the slightest bit more”.
(There exist far more sophisticated models of student behaviour, most of them mathematical, see e.g. [ <a href="#hlosta:2018:modelling_student_online_behaviour_in_a_virtual_learning_environment">19</a>], however, a simple mental model was deemed sufficient in this particular case.)
</p>
</div>
</div>

 <div id="outline-container-The-tools" class="outline-4">
 <h4 id="The-tools"> <span class="section-number-4">2.2.2.</span>  <a href="#The-tools">The tools</a></h4>
 <div class="outline-text-4" id="text-The-tools">
 <p>
The final choice of tools turned out to be the following:
</p>

 <dl class="org-dl"> <dt>Chibi-Scheme</dt> <dd>as the scheme implementation
 <dl class="org-dl"> <dt>srfi-159</dt> <dd>as a petty-printing tool</dd>
 <dt>srfi-27</dt> <dd>as a random bits library</dd>
 <dt>srfi-18</dt> <dd>as a threading library</dd>
 <dt>(chibi time)</dt> <dd>as a timing library</dd>
 <dt>(chibi ast)</dt> <dd>(not strictly necessary) macro expansion tool</dd>
 <dt>(chibi process)</dt> <dd>for calling ImageMagick</dd>
</dl></dd>
 <dt>GNU Emacs</dt> <dd>as the only IDE
 <dl class="org-dl"> <dt>org-mode</dt> <dd>as the main editing mode and the main planning tool</dd>
 <dt>f90-mode</dt> <dd>as a low-level coding adaptor</dd>
 <dt>geiser</dt> <dd>turned out to be not ready for production use, but still useful for simple expressions evaluation</dd>
 <dt>magit</dt> <dd>as the most fashionable GUI for git</dd>
</dl></dd>
 <dt>gfortran</dt> <dd>as the low-level language</dd>
 <dt>PlantUML</dt> <dd>as the principal diagramming language</dd>
 <dt>TikZ + luaLaTeX</dt> <dd>as the secondary diagramming language</dd>
 <dt>Graphviz</dt> <dd>as a tertiary diagramming language</dd>
 <dt>ImageMagick</dt> <dd>as the engine behind the “picture language” chapter</dd>
 <dt>git</dt> <dd>as the main version control tool</dd>
 <dt>GNU diff, bash, grep</dt> <dd>as the tools for simple text manipulation</dd>
</dl> <p>
 <b>Chibi-Scheme</b> was virtually the only scheme system claiming to fully support the latest Scheme standard, r7rs-large (Red Edition), so there was no other choice.
This is especially true when imagining a student unwilling to go deeper into the particular curiosities of various schools of thought, responsible for creating various partly-compliant Scheme systems.
Several libraries (three of which were standardised, and three of which were not) were used to ensure the completeness of the solution.
Effectively, it is not possible to solve all the exercises using  <span class="underline">only</span> the standardised part of the Scheme language.
Even Scheme combined with standardised extensions is not enough.
However, only one non-standard library was strictly required:  <code>(chibi process)</code>, which served as a bridge between Scheme and the graphics toolkit. 
</p>

 <p>
 <b>git</b> is not often taught in schools.
The reasons may include the teachers’ unwillingness to busy themselves with something deemed trivial or impossible to get by without, or due to them being overloaded with work.
However, practice often demonstrates that students still too often graduate without yet having a concept of file version control, which significantly hinders work efficiency.
Git was chosen because it is, arguably, the most widely used version-control system.
</p>

 <p>
 <b>ImageMagick</b> turned out to be the easiest way to draw images consisting of simple straight lines.
There is still no standard way to connect Scheme applications to applications written in other languages.
Therefore, by the principle of minimal extension, ImageMagick was chosen, as it required  <code>just a single</code> non-standard Scheme procedure.
Moreover, this procedure (a simple synchronous application call) is likely to be the most standard interoperability primitive invented.
Almost all operating systems support applications executing other applications.
</p>

 <p>
 <b>PlantUML</b> is a code-driven implementation of the international standard of software visualisation diagrams. 
The syntax is straightforward and well documented.
The PlantUML-Emacs interface exists and is relatively reliable.
The textual representation conveys the hacker spirit and supports easy version control.
UML almost totally dominates the software visualisation market, and almost every university programming degree includes it to some extent.
It seemed, therefore very natural (where the problem permitted) to solve the “diagramming” problems of the SICP with the industry-standard compliant diagrams.
</p>

 <p>
 <b>Graphviz</b> was used in an attempt to use another industry standard for solving diagramming problems not supported by the UML.
The  <code>dot</code> package benefits from being fully machine-parsable and context-independent even more than UML. However, it turned out to be not as convenient as expected. 
</p>

 <p>
 <b>TikZ</b> is practically the only general-purpose, code-driven drawing package.
So, when neither UML nor Graphviz managed to embed the complexity of the models diagrammed properly, TikZ ended up being the only choice.
Just as natural an approach could be to draw everything using a graphical tool, such as Inkscape or Adobe Illustrator.
The first problem with the images generated by such tools, though, is that they are hard to manage under version control.
The second problem is that it was desirable to keep all the product of the course in one digital artefact (i.e., one file). Single-file packaging would reduce confusion caused by the different versions of the same code, make searching more straightforward, and simplify the presentation to a potential examiner.
</p>

 <p>
 <b>gfortran</b>, or GNU Fortran, was the low-level language of choice for the last two problems in the problem set.
The reasons for choosing this not very popular language were:
</p>
 <ul class="org-ul"> <li>The author already knew the C language, so compared to an imaginary first-year student, would have an undue advantage if using C.</li>
 <li>Fortran is low-level enough for the purposes of the book.</li>
 <li>There is a free/GPL implementation of Fortran.</li>
 <li>Fortran 90 already existed by the time SICP 2nd ed. was published.</li>
</ul> <p>
 <b>GNU Unix Utilities</b> the author did not originally intend to use these, but  <code>diff</code> turned out to be extremely effective for illustrating the differences between generated code pieces in Chapter 5. Additionally, in some cases, they were used as a universal glue between different programs.
</p>

 <p>
 <b>GNU Emacs</b> is, de facto, the most popular IDE among Scheme users, the IDE used by the Free Software Foundation founders, likely the editor used when writing SICP, also likely to be chosen by an aspiring freshman to be the most “hacker-like” editor.
It is, perhaps, the most controversial choice, as the most likely IDE to be used by freshmen university students, in general, would be Microsoft Visual Studio.
Another popular option would be Dr.Racket, which packages a component dedicated to supporting solving SICP problems.
However, Emacs turned out to be having the best support for a “generic Lisp” development, even though its support for Scheme is not as good as may be desired.
The decisive victory point ended up being the org-mode (discussed later).
Informally speaking, entirely buying into the Emacs platform ended up being a substantial mind-expanding experience.
The learning curve is steep, however.
</p>

 <p>
As mentioned above, the main point of this report is to supply the problem execution measures for public use. Later sections will elaborate on how data collection about the exercise completion was performed, using org-mode’s time-tracking facility. The time-tracking data in the section  <a href="#appendix:-Full-data-on-the-exercise-completion-times.">8</a> do not include learning Emacs or org-mode. However, some data about these activities were collected nevertheless:
</p>

 <p>
Reading the Emacs Lisp manual required  <b>10</b> study sessions of total length 32 hours 40 minutes.
Additional learning of Emacs  <span class="underline">without</span> reading the manual required 59 hours 14 minutes.
</p>
</div>
</div>
</div>


 <div id="outline-container-Org-mode-as-a-universal-medium-for-reproducible-research" class="outline-3">
 <h3 id="Org-mode-as-a-universal-medium-for-reproducible-research"> <span class="section-number-3">2.3.</span>  <a href="#Org-mode-as-a-universal-medium-for-reproducible-research">Org-mode as a universal medium for reproducible research</a></h3>
 <div class="outline-text-3" id="text-Org-mode-as-a-universal-medium-for-reproducible-research">
 <p>
Org-mode helps to resolve dependencies between exercises.
SICP provides an additional challenge (meta-cognitive exercise) in that its problems are highly dependent on one another.
As an example, problems from Chapter 5 require solutions to the successfully solved problems of Chapter 1.
A standard practice of modern schools is to copy the code (or other forms of solution) and paste it into the solution of a dependent exercise.
However, in the later parts of SICP, the solutions end up requiring tens of pieces of code written in the chapters before.
Sheer copying would not just blow up the solution files immensely and make searching painful;
it would also make it extremely hard to propagate the fixes to the bugs discovered by later usages back into the earlier solutions.
</p>

 <p>
People familiar with the work of Donald Knuth will recognise the similarity of org-mode with his WEB system and its web2c implementation.
Another commonly used WEB-like system is Jupyter Notebook (See [ <a href="#software_jupyter">29</a>]).
</p>

 <p>
Org-mode helps package a complete student’s work into a single file.
Imagine a case in which student needs to send his work to the teacher for examination.
Every additional file that a student sends along with the code is a source of potential confusion.
Even proper file naming, though it increases readability, requires significant concentration to enforce and demands that the teacher dig into peculiarities that will become irrelevant the very moment after he signs the work off.
Things get worse when the teacher has not just to examine the student’s work, but also to test it
(which is a typical situation with computer science exercises.)
</p>

 <p>
Org-mode can be exported into a format convenient for later revisits.
Another reason to carefully consider the solution format is the students’ future employability.
This problem is not unfamiliar to the Arts majors, who have been collecting and arranging “portfolios” of their work for a long time.
However, STEM students generally do not understand the importance of a portfolio.
A prominent discussion topic in job interviews is, “What have you already done?”.
Having a portfolio, in a form easily presentable during an interview, may be immensely helpful to the interviewee.
</p>

 <p>
A potential employer is almost guaranteed not to have any software or equipment to run the former student’s code.
Even the student himself would probably lack a carefully prepared working setup at the interview.
Therefore, the graduation work should be “stored”, or “canned” in a format as portable and time-resistant as possible.
</p>

 <p>
Unsurprisingly, the most portable and time-resistant format for practical use is plain white paper.
Ideally, the solution (after being examined by a teacher) should be printable as a report.
Additionally, the comparatively (in relation to the full size of SICP) small amount of work required to turn a solution that is “just enough to pass” into a readable report would be an emotional incentive for the students to carefully post-process their work.
Naturally, “plain paper” is not a very manageable medium nowadays.
The closest manageable approximation is PDF.
So, the actual “source code” of a solution should be logically and consistently exportable into a PDF file.
Org-mode can serve this purpose through the PDF export backend.
</p>

 <p>
Org-mode has an almost unimaginable number of use cases.
(For example, this report has been written in org-mode.)
While the main benefits of using org-mode for the coursework formatting was the interactivity of code execution, and the possibility of export, another benefit that appeared almost for free was minimal-overhead time-tracking
(human performance profiling.)
Although this initially appeared as a by-product of choosing a specific tool, the measures collected with the aid of org-mode is the main contribution of this report.
</p>

 <p>
The way org-mode particulars were used is described in the next section, along with the statistical summary.
</p>
</div>
</div>

 <div id="outline-container-Different-problem-types" class="outline-3">
 <h3 id="Different-problem-types"> <span class="section-number-3">2.4.</span>  <a href="#Different-problem-types">Different problem types</a></h3>
 <div class="outline-text-3" id="text-Different-problem-types">
 <p>
SICP’s problems can be roughly classified into the following classes:
</p>

 <ul class="org-ul"> <li>Programming problems in Scheme without input.</li>
 <li>Programming problems in Scheme with input (possibly running other programs).</li>
 <li>Programming problems in Scheme with graphical output.</li>
 <li>Programming problems in a “low-level language of your choice”.</li>
 <li>Mathematical problems.</li>
 <li>Standard-fitting drawing exercises.</li>
 <li>Non-standard drawing exercises.</li>
 <li>Essays.</li>
</ul> <p>
Wonderfully absent are the problems of the data analysis kind.
</p>

 <p>
This section will explain how these classes of problem can be solved in a “single document mode”. 
</p>

 <p>
 <b>Essays</b> is the most straightforward case. The student can just write the answer to the question below the heading corresponding to a problem.
Org-mode provides several minimal formatting capabilities that are enough to cover all the use cases required.
</p>

 <p>
 <b>Mathematical problems</b> require that a \TeX-system be present on the student machine, and employ org-mode’s ability to embed \TeX’ mathematics, along with previews, directly into the text. The author ended up conducting almost zero pen-and-paper calculations while doing SICP’s mathematical exercises.
</p>

 <p>
 <b>Programming exercises in Scheme</b> are mostly easily formatted as org-mode “babel-blocks”, with the output being pasted directly into the document body, and updated as needed.
</p>

 <p>
 <b>Programming exercises in Scheme with input</b> require a little bit of effort to make them work correctly. It is sometimes not entirely obvious whether the input should be interpreted as verbatim text, or as executable code. 
Ultimately, it turned out to be possible to format all the input data as either “example” or “code” blocks, feed them into the recipient blocks via an “:stdin’’ block directive and present all the test cases (different inputs) and test results (corresponding outputs) in the same document.
</p>

 <p>
 <b>Programming exercises in a low-level language</b> required wrapping the low-level language code into “babel” blocks, and the result of combining those into a “shell” block. 
This introduces an operating system dependency. However, GNU Unix Utilities are widespread enough to consider this not a limitation.
</p>

 <p>
 <b>Programming exercises with graphical output</b> turned out to be the trickiest part from the software suite perspective.
Eventually,  a Scheme-system (chibi) dependent wrapper around the ImageMagick graphics manipulation tool was written. 
Org-mode has a special syntax for the inclusion of graphic files, so the exercise solutions were generating the image files and pasting the image inclusion code into the org buffer.
</p>

 <p>
 <b>Standard drawing exercises</b> illustrate a problem that is extremely widespread, but seldom well understood, perhaps because people aiming to solve it usually do not come from the programming community.
Indeed, there are several standard visual conventions for industrial illustrations and diagramming, including UML, ArchiMate, SDL, and various others.
Wherever a SICP figure admitted a standard-based representation, the author tried to use that standard to express the answer to the problem.
The PlantUML code-driven diagramming tool was used most often, as its support for UML proved to be superior to the alternatives.
The org-plantuml bridge made it possible to solve these problems in the manner similar to the coding problems – as “org-babel” blocks. 
</p>

 <p>
 <b>Non-standard drawing exercises</b>, the most prominent of those requiring drawing environment diagrams (debugging interfaces), were significantly more challenging.
When a prepared mental model (i.e. an established diagramming standard) was absent, that diagram had to be implemented from scratch in an improvised way.
The TikZ language proved to have enough features to cover the requirements of the book where PlantUML was not enough.
It required much reading of the manual and an appropriate level of familiarity with \TeX.
</p>
</div>
</div>
</section> <section id="outline-container-Time-analysis,-performance-profiling-and-graphs" class="outline-2"> <h2 id="Time-analysis,-performance-profiling-and-graphs"> <span class="section-number-2">3.</span>  <a href="#Time-analysis,-performance-profiling-and-graphs">Time analysis, performance profiling and graphs</a></h2>
 <div class="outline-text-2" id="text-Time-analysis,-performance-profiling-and-graphs">
 <p>
This section deals with explaining exactly how the working process was organised and later shows some aggregated work measures that have been collected.
</p>
</div>

 <div id="outline-container-Workflow-details-and-profiling" class="outline-3">
 <h3 id="Workflow-details-and-profiling"> <span class="section-number-3">3.1.</span>  <a href="#Workflow-details-and-profiling">Workflow details and profiling</a></h3>
 <div class="outline-text-3" id="text-Workflow-details-and-profiling">
 <p>
The execution was performed in the following way: 
</p>

 <p>
At the start of the work, the outline-tree corresponding to the book subsection tree was created.
Most leaves are two-state  <b>TODO</b>-headings.
(Some outline leaves correspond to sections without problems, and thus are not  <b>TODO</b>-styled.)
</p>

 <p>
 <b>TODO</b>-heading is a special type of an org-mode heading, that exports its state (TODO/DONE) to a simple database, which allows monitoring of the overall TODO/DONE ratio of the document.
</p>

 <p>
Intermediate levels are not  <b>TODO</b>-headings, but they contain the field representing the total ratio of  <b>DONE</b> problems in a subtree.
</p>

 <p>
The top-level ratio is the total number of finished problems divided by the total number of problems.
</p>

 <p>
An example of the outline looks the following:
</p>

 <pre class="example" id="org5ba82a6">
* SICP [385/404]
** Chapter 1: Building abstractions ... [57/61]
*** DONE Exercise 1.1 Interpreter result
    CLOSED: [2019-08-20 Tue 14:23]...
*** DONE Exercise 1.2 Prefix form
    CLOSED: [2019-08-20 Tue 14:25]
 #+begin_src scheme :exports both :results value
  (/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 5))))) 
     (* 3 (- 6 2) (- 2 7)))
 #+end_src

 #+RESULTS:
 : -37/150
...
</pre>
 <p>
When work is clearly divided into parts and, for each unit, its completion status is self-evident, the visibility of completeness creates a sense of control in the student. 
The “degree of completeness of the whole project”, available at any moment, provides an important emotional experience of “getting close to the result with each completed exercise”.
</p>

 <p>
Additional research is needed on how persistent this emotion is in students and how much it depends on the uneven distribution of difficulty or the total time consumption.
There is, however, empirical evidence that even very imprecise, self-measured KPIs do positively affect the chance of reaching the goal.
(See: [ <a href="#VanWormer2008">42</a>]) 
</p>

 <p>
From the author’s personal experience, uneven distribution of difficulties at the leaf-level tasks is a major demotivating factor.
However, the real problems we find in daily life are not of consistent difficulty, and therefore managing an uneven distribution of difficulty is a critical meta-cognitive skill. Partitioning a large task into smaller ones (_not necessarily_ in the way suggested by the book) may be a way to tackle this problem. Traces of this approach are visible through the “reference” solution PDF.
</p>

 <p>
The problems were executed almost sequentially.
Work on the subsequent problem was started immediately after the previous problem had been finished. 
</p>

 <p>
Out of more than 350 exercises, only 13 were executed out of order (See section  <a href="#Out-of-order-problems-and-other-measures">3.2</a>). Sequentiality of problems is essential for proper time accounting because the total time attributed to a problem is the sum of durations of all study sessions between the end of the problem considered and the end of the previous problem. It is not strictly required for the problem sequence to be identical to the sequence proposed by the book, but it is important that, if a problem is postponed, the study sessions corresponding to the initial attempt to solve this problem be somehow removed from the session log dataset. 
</p>

 <p>
In this report, study sessions corresponding to the initial attempts of solving out of order problems were simply ignored. This has not affected the overall duration measures much because those sessions were usually short.
</p>

 <p>
Sequentiality is one of the weakest points of this report. It is generally hard to find motivation to work through a problem set sequentially. SICP does enforce sequentiality for a large share of problems by making the later problems depend on solutions of the previous ones, but this “dependence coverage” is not complete. 
</p>

 <p>
As the most straightforward workaround, the author may once again suggest dropping the initial attempts of solving the out-of-order problems from the data set entirely. This should be relatively easy to do because the student (arguably) is likely to decide whether to continue solving the problem or to postpone it within one study session. This study session may then be appropriately trimmed.
</p>

 <p>
The author read the whole book before starting the project. The time to read the prose could also be included in project’s total time consumption, but the author decided against it. In fact, when approached from the viewpoint of completing the exercises, material given in the book appeared to have nothing in common with the perception created by only reading the text.
</p>

 <p>
A deliberate effort was spent on avoiding closing a problem at the same time as closing the study session.
</p>

 <p>
The reason for this is to exploit the well-known tricks (See: [ <a href="#adler_factors_1939">3</a>]): 
</p>
 <ul class="org-ul"> <li>“When you have something left undone, it is easier to make yourself start the next session.”</li>
 <li>Even just reading out the description of a problem makes the reader start thinking about how to solve it.</li>
</ul> <p>
The data come in two datasets, closely related.
</p>

 <p>
 <b>Dataset 1:</b> Exercise completion time was recorded using a standard org-mode closure time tracking mechanism. (See  <a href="#appendix:-Full-data-on-the-exercise-completion-times.">Appendix: Full data on the exercise completion times.</a>) For every exercise, completion time was recorded as an org-mode time-stamp, with minute-scale precision.
</p>

 <p>
 <b>Dataset 2:</b> Study sessions were recorded in a separate org-mode file in the standard org-mode time interval standard (two time-stamps): 
</p>
 <pre class="example" id="org2f91ae2">
"BEGIN_TIME -- END_TIME".
</pre>
 <p>
(See  <a href="#appendix:-Full-data-on-the-study-sessions.">Appendix: Full data on the study sessions.</a>)
</p>

 <p>
During each study session, the author tried to concentrate as much as possible, and to do only the activities related to the problem set. These are not limited to just writing the code and tuning the software setup. They include the whole “package” of activities leading to the declaration of the problem solved. These include, but are not limited to, reading or watching additional material, asking questions, fixing bugs in related software, and similar activities.
</p>

 <p>
Several software problems were discovered in the process of making this solution.
These problems were reported to the software authors.
Several of those problems were fixed after a short time, thus allowing the author to continue with the solution.
For a few of the problems, workarounds were found.
None of the problems prevented full completion of the problem set.
</p>

 <p>
The author found it very helpful to have a simple dependency resolution tool at his disposal.
As has been mentioned above, SICP’s problems make heavy use of one another.
It was therefore critical to find a way to re-use code within a single org-mode document.
Indeed org’s WEB-like capabilities («noweb»-links) proved to be sufficient.
Noweb-links is a method for verbatim inclusion of a code block into other code blocks.
In particular, Exercise 5.48 required inclusion of  <b>58</b> other code blocks into the final solution block.
Pure copying would not suffice because SICP exercises often involve the evaluation of the code written before (in the previous exercises) by the code written during the execution of the current exercise. Therefore, later exercises are likely to expose errors in the earlier exercises’ solutions.
</p>
</div>
</div>

 <div id="outline-container-Out-of-order-problems-and-other-measures" class="outline-3">
 <h3 id="Out-of-order-problems-and-other-measures"> <span class="section-number-3">3.2.</span>  <a href="#Out-of-order-problems-and-other-measures">Out-of-order problems and other measures</a></h3>
 <div class="outline-text-3" id="text-Out-of-order-problems-and-other-measures">
 <p>
The following figure presents some of the aggregated measurements on solving of the problem set.
</p>

 <ul class="org-ul"> <li> <b>729</b> hours total work duration.</li>
 <li> <b>2.184</b> hours mean time spent on solving one problem.</li>
 <li> <b>0.96</b> hours was required for the dataset median problem.</li>
 <li> <b>94.73</b> hours for the hardest problem: writing a Scheme interpreter in a low-level language.</li>
 <li> <b>652</b> study sessions.</li>
 <li> <b>1.79</b> study sessions per problem on average.</li>
 <li> <b>>78000</b>-lines long .org file ( <b>>2.6</b> megabytes) (5300 pages in a PDF).</li>
 <li> <b>1</b> median number of study sessions required to solve a single problem. The difference of almost 2 with the average hints that the few hardest problems required significantly more time than typical ones.</li>
 <li> <b>13</b> problems were solved out of order:
 <ul class="org-ul"> <li>“Figure 1.1 Tree representation…”</li>
 <li>“Exercise 1.3 Sum of squares.”</li>
 <li>“Exercise 1.9 Iterative or recursive?”</li>
 <li>“Exercise 2.45 Split.”</li>
 <li>“Exercise 3.69 Triples.”</li>
 <li>“Exercise 2.61 Sets as ordered lists.”</li>
 <li>“Exercise 4.49 Alyssa’s generator.”</li>
 <li>“Exercise 4.69 Great-grandchildren.”</li>
 <li>“Exercise 4.71 Louis’ simple queries.”</li>
 <li>“Exercise 4.79 Prolog environments.”</li>
 <li>“Figure 5.1 Data paths for a Register Machine.”</li>
 <li>“Exercise 5.17 Printing labels.”</li>
 <li>“Exercise 5.40 Maintaining a compile-time environment.”</li>
</ul></li>
</ul> <p>
Thirteen problems were solved out-of-order.
This means that those problems may have been the trickiest
(although not necessarily the hardest.)
</p>
</div>
</div>

 <div id="outline-container-Ten-hardest-problems-by-raw-time" class="outline-3">
 <h3 id="Ten-hardest-problems-by-raw-time"> <span class="section-number-3">3.3.</span>  <a href="#Ten-hardest-problems-by-raw-time">Ten hardest problems by raw time</a></h3>
 <div class="outline-text-3" id="text-Ten-hardest-problems-by-raw-time">
 <table> <colgroup> <col class="org-left"></col> <col class="org-right"></col> <col class="org-right"></col> <col class="org-right"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">Exercise</th>
 <th scope="col" class="org-right">Days Spent</th>
 <th scope="col" class="org-right">Spans Sessions</th>
 <th scope="col" class="org-right">Minutes Spent</th>
</tr></thead> <tbody> <tr> <td class="org-left">Exercise 2.46  <code>make-vect</code>.</td>
 <td class="org-right">2.578</td>
 <td class="org-right">5</td>
 <td class="org-right">535</td>
</tr> <tr> <td class="org-left">Exercise 4.78 Non-deterministic queries.</td>
 <td class="org-right">0.867</td>
 <td class="org-right">6</td>
 <td class="org-right">602</td>
</tr> <tr> <td class="org-left">Exercise 3.28 Primitive or-gate.</td>
 <td class="org-right">1.316</td>
 <td class="org-right">2</td>
 <td class="org-right">783</td>
</tr> <tr> <td class="org-left">Exercise 4.79 Prolog environments.</td>
 <td class="org-right">4.285</td>
 <td class="org-right">5</td>
 <td class="org-right">940</td>
</tr> <tr> <td class="org-left">Exercise 3.9 Environment structures.</td>
 <td class="org-right">21.030</td>
 <td class="org-right">10</td>
 <td class="org-right">1100</td>
</tr> <tr> <td class="org-left">Exercise 4.77 Lazy queries.</td>
 <td class="org-right">4.129</td>
 <td class="org-right">9</td>
 <td class="org-right">1214</td>
</tr> <tr> <td class="org-left">Exercise 4.5  <code>cond</code> with arrow.</td>
 <td class="org-right">12.765</td>
 <td class="org-right">7</td>
 <td class="org-right">1252</td>
</tr> <tr> <td class="org-left">Exercise 5.52 Making a compiler for Scheme.</td>
 <td class="org-right">22.975</td>
 <td class="org-right">13</td>
 <td class="org-right">2359</td>
</tr> <tr> <td class="org-left">Exercise 2.92 Add, mul for different variables.</td>
 <td class="org-right">4.556</td>
 <td class="org-right">11</td>
 <td class="org-right">2404</td>
</tr> <tr> <td class="org-left">Exercise 5.51 EC-evaluator in low-level language.</td>
 <td class="org-right">28.962</td>
 <td class="org-right">33</td>
 <td class="org-right">5684</td>
</tr></tbody></table> <p>
It is hardly unexpected that writing a Scheme interpreter in a low-level language ( <b>Exercise 5.51</b>) turned out to be the most time-consuming problem of all the problem set.
After all, it required learning an entirely new language from scratch.
In the author’s case, the low-level language happened to be Fortran 2018.
Learning Fortran up to the level required is a relatively straightforward, albeit time-consuming. 
</p>

 <p>
 <b>Exercise 5.52</b>, a compiler for Scheme, implicitly required that the previous exercise be solved already, as the runtime support code is shared between these two problems. All of the compiled EC-evaluator turned out to be just a single (very long) Fortran function.
</p>

 <p>
 <b>Exercise 2.29</b> proves that it is possible to create significantly difficult exercises even without introducing the concept of mutation into the curriculum. 
This problem bears the comment from the SICP authors, “This is not easy!”. 
Indeed, the final solution contained more than eight hundred lines of code, involved designing an expression normalisation algorithm from scratch, and required twenty-five unit tests to ensure consistency.
It is just a huge task.
</p>

 <p>
 <b>Exercise 4.5</b> is probably one of those exercises that would benefit most from a Teaching Assistant’s help. 
In fact, the exercise itself is not that hard. 
The considerable workload comes from the fact that, in order to test that the solution is correct, a fully working interpreter is required.
Therefore, this exercise, in fact, includes reading the whole of Chapter 4 and assembling the interpreter.
Furthermore, the solution involves a lot of list manipulation, which is itself inherently error-prone if using only the functions already provided by SICP.
</p>

 <p>
 <b>Exercise 4.77</b> required heavy modification of the codebase that had already been accumulated. It is likely to be the most architecture-intensive exercise of the book, apart from the exercise requiring a full rewrite of the backtracking engine of Prolog in a non-deterministic evaluator ( <b>Exercise 4.78</b>). 
The code is very hard to implement incrementally, and the system is hardly testable until the last bit is finished.
Furthermore, this exercise required the modification of the lowest-level data structures of the problem domain and modifying all the higher-level functions accordingly.
</p>

 <p>
 <b>Exercise 4.79</b>, is, in fact, an open-ended problem. 
The author considers it done, but the task is formulated so vaguely that it opens up an almost infinite range of possible solutions. This problem can hence consume any amount of time.
</p>

 <p>
 <b>Exercise 3.9</b> required implementing a library for drawing environment diagrams. 
It may seem a trivial demand, as environment diagramming is an expected element of a decent debugger.
However, the Scheme standard does not include many debugging capabilities.
Debugging facilities differ among different Scheme implementation, but even those are usually not visual enough to generate the images required by the book.
There exists an EnvDraw library (and its relatives), but the author failed to embed any of them into easily publishable Scheme code.
It turned out to be more straightforward to implement drawing diagrams as TikZ pictures in embedded \LaTeX-blocks.
</p>

 <p>
The time spent on  <b>Exercise 3.28</b> includes the assembly of the whole circuit simulation code into a working system. The time required actually to solve the problem was comparatively short.
</p>

 <p>
The same can be said about  <b>Exercise 2.46</b>, which required writing a bridge between a Scheme interpreter and a drawing system. The exercise itself is relatively easy.
</p>

 <p>
To sum up this section, the most laborious exercises in the book are the ones that require a student to:
</p>
 <ul class="org-ul"> <li>implement language features that are “assumed to be given”;</li>
 <li>assemble scattered code fragments into a working program;</li>
 <li>solve problems that have little to no theoretical coverage in the book.</li>
</ul> <p>
In total, the ten most challenging problems account for 280 hours of work which is more than a third of the full problem set workload.
</p>
</div>
</div>

 <div id="outline-container-Minutes-spent-per-problem" class="outline-3">
 <h3 id="Minutes-spent-per-problem"> <span class="section-number-3">3.4.</span>  <a href="#Minutes-spent-per-problem">Minutes spent per problem</a></h3>
 <div class="outline-text-3" id="text-Minutes-spent-per-problem">

 <figure id="orga71e77c"> <img src="./experience-report-minutes-per-problem.png" alt="experience-report-minutes-per-problem.png"></img> <figcaption> <span class="figure-number">Figure 1: </span>Minutes spent per problem</figcaption></figure> <p>
This graph is probably the most representative of the whole problem set.
As expected, the last few problems turned out to be among the hardest.
The second part of the course turned out to be more time-consuming than the first one.
</p>
</div>
</div>




 <div id="outline-container-Days-spent-per-problem" class="outline-3">
 <h3 id="Days-spent-per-problem"> <span class="section-number-3">3.5.</span>  <a href="#Days-spent-per-problem">Days spent per problem</a></h3>
 <div class="outline-text-3" id="text-Days-spent-per-problem">
 <p>
The figure depicts the number of days (Y-axis) a problem (enumerated by the X-axis coordinate) was loaded in the author’s brain. 
In simple words, it is the number of days that the state of “trying to solve a problem number X” spanned. 
</p>

 <p>
This measure is less justified than the “high concentration” time presented on the figure in the previous section. However, it may nevertheless be useful for encouraging students who get demotivated when spending a long “high concentration” session on a problem with no apparent success. Naturally, most (but not all) problems are solvable within one session (one day).
</p>


 <figure id="orgd82ebef"> <img src="experience-report-days.png" alt="experience-report-days.png"></img> <figcaption> <span class="figure-number">Figure 2: </span>Days spent per problem</figcaption></figure> <p>
The second spike in the distribution can be attributed to general tiredness while solving such as huge problem set and a need for a break. 
The corresponding spike on the graph of the study sessions is less prominent.
</p>
</div>
</div>

 <div id="outline-container-Study-sessions-per-problem" class="outline-3">
 <h3 id="Study-sessions-per-problem"> <span class="section-number-3">3.6.</span>  <a href="#Study-sessions-per-problem">Study sessions per problem</a></h3>
 <div class="outline-text-3" id="text-Study-sessions-per-problem">

 <figure id="org6d76055"> <img src="experience-report-study-sessions.png" alt="experience-report-study-sessions.png"></img> <figcaption> <span class="figure-number">Figure 3: </span>Study sessions per problem</figcaption></figure> <p>
A “session” may be defined as a period of high concentration when the student is actively trying to solve a problem and get the code (or essay) written. This graph presents the number of sessions (Y-axis) spent on each problem (enumerated by the X-axis), regardless of the session length.
</p>

 <p>
When a student goes on a vacation, the problem, presumably, remains loaded in the student’s brain. However, periodic “assaults” in the form of study sessions may be necessary to feed the subconscious processing with the new data.
</p>

 <p>
During vacation time, there should be a spike on the “days per problem” graph, but not the “sessions per problem graph”. This can be seen on the second spike in the “days per problem” graph, which has its counterpart on the “sessions per problem” graph. The counterpart is much shorter.
</p>
</div>
</div>

 <div id="outline-container-Difficulty-histogram-(linear)" class="outline-3">
 <h3 id="Difficulty-histogram-(linear)"> <span class="section-number-3">3.7.</span>  <a href="#Difficulty-histogram-(linear)">Difficulty histogram (linear)</a></h3>
 <div class="outline-text-3" id="text-Difficulty-histogram-(linear)">
 <p>
The linearly-scaled difficulty histogram depicts how many problems (Y-axis) require up to “bin size” hours for solution.
Naturally, most of the exercises are solvable within one to three hours. 
</p>


 <figure id="orga2abceb"> <img src="experience-report-hardness-histogram-linear.png" alt="experience-report-hardness-histogram-linear.png"></img> <figcaption> <span class="figure-number">Figure 4: </span>Difficulty distribution (linear)</figcaption></figure></div>
</div>


 <div id="outline-container-Difficulty-histogram-(logarithmic)" class="outline-3">
 <h3 id="Difficulty-histogram-(logarithmic)"> <span class="section-number-3">3.8.</span>  <a href="#Difficulty-histogram-(logarithmic)">Difficulty histogram (logarithmic)</a></h3>
 <div class="outline-text-3" id="text-Difficulty-histogram-(logarithmic)">
 <p>
The logarithmically-scaled difficulty histogram depicts how many problems (Y-axis) require up to 2\textsuperscript{X} hours for solution.
It is very interesting to observe that the histogram shape resembles a uni-modal distribution.
It is hard to think of a theoretical foundation on which to base assumptions for the distribution law.
Prior research, however, may imply that the distribution is log-normal. 
(See [ <a href="#crow2018lognormal">10</a>])
</p>



 <figure id="orge01043f"> <img src="experience-report-hardness-histogram-logarithmic.png" alt="experience-report-hardness-histogram-logarithmic.png"></img> <figcaption> <span class="figure-number">Figure 5: </span>Difficulty distribution (logarithmic)</figcaption></figure></div>
</div>
</section> <section id="outline-container-Conclusion-and-Further-Work" class="outline-2"> <h2 id="Conclusion-and-Further-Work"> <span class="section-number-2">4.</span>  <a href="#Conclusion-and-Further-Work">Conclusion and Further Work</a></h2>
 <div class="outline-text-2" id="text-Conclusion-and-Further-Work">
</div>

 <div id="outline-container-Conclusion" class="outline-3">
 <h3 id="Conclusion"> <span class="section-number-3">4.1.</span>  <a href="#Conclusion">Conclusion</a></h3>
 <div class="outline-text-3" id="text-Conclusion">
 <p>
As follows immediately from the introduction, this report is essentially a single-point estimate of the difficulty distribution of a university-level problem set.
</p>

 <p>
As far as the author knows, this is the first such a complete difficulty breakdown of a university-level problem set in existence.
</p>

 <p>
As has been mentioned in section  <a href="#Out-of-order-problems-and-other-measures">3.2</a>, the complete execution of the problem set required 729 hours.
In simple words, this is a very long time.
If a standard working day is assumed to have the length of 8 hours, the complete solution would require 91 days, or 14 weeks, or 3.5 months.
</p>

 <p>
In the preface to the second edition, the authors claim that a redacted version 
(e.g. dropping the logical programming part, the part dedicated to the implementation of the register machine simulator, and most of the compiler-related sections) of the course can be covered in one semester.
This statement is in agreement with the numbers presented in this report.
Nevertheless, as the teachers would probably not want to assign every problem in the book to the student, they would need to make a selection based on both the coverage of the course topics and the time required. The author hopes that this report can provide an insight into the difficulty aspect. 
</p>

 <p>
On the other hand, the author would instead recommend opting for a two-semester course. If several of the hardest problems (i.e. problems discussed in section  <a href="#Ten-hardest-problems-by-raw-time">3.3</a>) are left out, the course can be fitted into two 300-hour modules. Three hundred hours per semester-long course matches the author’s experience of studying partial differential equations at the Moscow Institute of Physics and Technology.
</p>

 <p>
Another important consideration is the amount of time that instructors require to verify solutions and to write feedback for the students.
It is reasonable to assume that marking the solutions and writing feedback would require the same amount of time (within an order of magnitude) as the amount needed to solve the problem set, since every problem solution would have to be visited by a marker at least once. For simplicity, the author assumes that writing feedback would require 72 hours per student.
</p>

 <p>
This parameter would then be multiplied by the expected number of students per group, which may vary between institutions, but can be lower-bounded by 5.
Therefore the rough estimate would be \(\mbox{const} \cdot 72 \cdot 5 \approx 360\) hours, or 45 full working days (2 months).
This duration is hardly practicable for a lone teacher, even if broken down over two semesters. (Each requiring 180 hours.)
On the other hand, if the primary teacher is allowed to hire additional staff for marking, the problem becomes manageable again. 
One of the applications of this report may be as supporting evidence for lead instructors (professors) asking their school administration for teaching assistants.
</p>
</div>
</div>

 <div id="outline-container-Further-work" class="outline-3">
 <h3 id="Further-work"> <span class="section-number-3">4.2.</span>  <a href="#Further-work">Further work</a></h3>
 <div class="outline-text-3" id="text-Further-work">
 <p>
The field of difficulty assessment (especially with the computer-based tools) of university courses still offers a lot to investigate.
As far as the author of this report knows, this is the first exhaustive difficulty assessment of a university course.
(This is not to say that SICP has not been successfully solved in full before.
Various solutions can be found on many well-known software forges.)
</p>

 <p>
The first natural direction of research would then be expanding the same effort towards other problem sets and other subjects.
</p>

 <p>
On the other hand, this report is just a single point estimate, and therefore extremely biased. It may be a significant contribution if the same problem set (or indeed parts or even single problems of it) be solved by different people following the same protocol. 
</p>

 <p>
The provision of the solution protocol, the software setup and the time-tracking procedure, is deemed by the author to be a contribution of this report.
</p>

 <p>
Professors teaching such a course are encouraged to show this report to their students and to suggest executing the problem set required along the lines of the protocol given here.
</p>

 <p>
Another research direction could be towards finding an optimal curriculum design beyond the areas covered by SICP. 
It should not be unexpected if the students decide not to advance further in the course as long as their personal difficulty assessment exceeds a certain unknown threshold.
In other words, the author suspects that, at some point, the students may feel an emotion that may be expressed as, “I have been solving this for too long, and see little progress; I should stop.”
</p>

 <p>
It would be interesting to measure such a threshold and to suggest curriculum design strategies that aim to minimise course drop-out.
Such strategies may include attempts at hooking into students’ intrinsic motivation (and proper measurements of the execution process may provide an insight on where it is hidden), as well as better designing an extrinsic motivation toolset (e.g. finding better KPIs for rewards and penalties, and proper measures should be helpful in this approach as well).
</p>

 <p>
It would be interesting to observe whether the students who follow the protocol (and see their progress after each session) are more or less likely to drop the course than those who do not. 
This could constitute a test of intrinsic motivation in line with the self-determination theory of Deci and Ryan (see [ <a href="#ryan:2017:self_determination_theory">32</a>]).
</p>

 <p>
Another important direction may be the development and formalisation of coursework submission formats, in order to facilitate further collection of similar data on this or other problem sets.
</p>
</div>
</div>

 <div id="outline-container-Informal-review" class="outline-3">
 <h3 id="Informal-review"> <span class="section-number-3">4.3.</span>  <a href="#Informal-review">Informal review</a></h3>
 <div class="outline-text-3" id="text-Informal-review">
 <p>
This section contains the author’s personal view on the problem set and the questions it raises.
</p>

 <p>
The author (Vladimir Nikishkin), enjoyed doing it.
On the other hand, it is hard to believe that teaching this course to first-year undergraduate students can easily be made successful.
It is unlikely that a real-world student can dedicate seven hundred hours to a single subject, even if the subject is broken down into two semesters without significant support
(the more so, recalling that 25 years has passed since the second edition was released, during which time the world of programming has expanded enormously.)
Even if such a student is found, he would probably have other subjects in the semester, as well as the need to attend classes and demonstrations.
</p>

 <p>
Admittedly, out of almost four hundred exercises, the author cannot find a single superfluous one. Even more, the author had to add some extra activities in order to cover several topics better.
Every exercise teaches some valuable concept and nudges the student into thinking more deeply. 
</p>

 <p>
The course could have been improved in the area of garbage collection and other memory management topics.
Indeed, the main  <code>cons</code>-memory garbage collector is explained with sufficient detail to implement it, but several other parts of the interpreter memory model are left without explanation. Very little is said about efficiently storing numbers, strings and other objects.
</p>

 <p>
There is not very much information about a rational process of software development.
While this is not fundamental knowledge, but it would be helpful to undergraduates.
</p>

 <p>
The last two exercises amount to one-fifth of the whole work. 
It was entirely unexpected to see a task to be completed in a language other than Scheme after having already finished most of the exercises.
</p>

 <p>
Probably the biggest drawback of the book is the absence of any conclusion.
Indeed, the book points the reader’s attention into various directions by means of an extensive bibliography.
However, the author, as a willing student, would like to see a narrativised overview of the possible future directions.
</p>
</div>
</div>

 <div id="outline-container-Informal-recommendations" class="outline-3">
 <h3 id="Informal-recommendations"> <span class="section-number-3">4.4.</span>  <a href="#Informal-recommendations">Informal recommendations</a></h3>
 <div class="outline-text-3" id="text-Informal-recommendations">
 <p>
If the author may, by virtue of personally experiencing this transformative experience, give a few suggestions to university curriculum designers, they would be the following:
</p>

 <ul class="org-ul"> <li>Deliberately teach students to use TeX, and especially well technically harnessed TeX (using a professional text editor, additional supportive software, such as syntax checkers, linters, and documentation lookup systems).</li>
</ul> <p>
This is often considered to be a meta-cognitive exercise to be solved by the students, but the author’s personal experience is not reassuring in this aspect. Very few students, and even professionals, use TeX efficiently. It took more than  <b>50</b> hours just to refresh the skill of using \TeX{} that the author had already learnt, in order to write a thesis.
</p>
 <ul class="org-ul"> <li>Deliberately teach students to touch-type. This may not be necessary in the regions where touch-typing is included in the standard high school curriculum, but poor touch-typing skills are still a major problem in most parts of the world.</li>
 <li>Deliberately teach students to read software manuals. Indeed, much modern software has manuals built-in piece-wise right into the software itself. Often reading the whole manual is not required to perform the task. However, doing the reading at least once (i.e. reading  <code>some</code> manual from the first page to the last), is a very enlightening experience, and additionally useful in teaching how to assess the time needed to grasp the skill of using  <code>a</code> piece of software. As a by-product, this experience may help the students to write better manuals for their own software.</li>
 <li>Teach students to use a timer when doing homework, even if it is not an org-mode timer. A realistic assessment of how much effort things actually take is a paradigm-shifting experience.</li>
 <li>When writing a book on any subject, start from designing exercises, and afterwards write the text that helps to develop the skills required to solve those. Reading SICP without doing the exercises proved to be almost useless for this project, which was done two years after the first reading.</li>
 <li>Consider introducing elements of industrial illustration standards (UML, ArchiMate) into the teaching flow of an introductory programming course. Courses created to deliberately cover these standards typically suffer from being disconnected from the problem domain. (Few people would like to draw a yet another model of an ATM machine.) Introductory programming provides a surrogate domain that can be mapped onto the diagrams relatively easily and is unlikely to cause rejection.</li>
</ul></div>
</div>
</section> <section id="outline-container-Materials" class="outline-2"> <h2 id="Materials"> <span class="section-number-2">5.</span>  <a href="#Materials">Materials</a></h2>
 <div class="outline-text-2" id="text-Materials">
 <p>
This section attempts to provide a complete list of materials used in the process of the problem set solution. It is not to be confused with the list of materials used in the preparation of this Experience Report.
</p>
</div>

 <div id="outline-container-Books" class="outline-3">
 <h3 id="Books"> <span class="section-number-3">5.1.</span>  <a href="#Books">Books</a></h3>
 <div class="outline-text-3" id="text-Books">
 <ul class="org-ul"> <li>Structure and Interpretation of Computer Programs 2nd Ed. ([ <a href="#Abelson1996">2</a>])</li>
 <li>Structure and Interpretation of Computer Programs 1st Ed. ([ <a href="#DBLP:books_mit_AbelsonS85">1</a>])</li>
 <li>Modern Fortran Explained 2018. ([ <a href="#Metcalf_2018_fortran">24</a>])</li>
 <li>Revised\(^7\) Report on Algorithmic Language Scheme. ([ <a href="#shinn2013revised">34</a>])</li>
 <li>Logic Programming: A Classified Bibliography. ([ <a href="#Balbin_1985_logic_programming_bibliography">4</a>])</li>
 <li>Chibi-Scheme Manual. ([ <a href="#chibi_manual">33</a>])</li>
 <li>TikZ Manual. ([ <a href="#tikz_manual">39</a>])</li>
 <li>PlantUML Manual. ([ <a href="#plantuml_manual">27</a>])</li>
 <li>UML Weekend Crash Course. ([ <a href="#pender2002uml">26</a>])</li>
 <li>GNU Emacs Manual. ([ <a href="#stallman_emacs_manual">38</a>])</li>
 <li>GNU Emacs Lisp Reference Manual. ([ <a href="#emacs_lisp_manual">37</a>])</li>
 <li>GNU Emacs Org-Mode Manual. ([ <a href="#Dominik2010orgmode">11</a>])</li>
 <li>Debugging With GDB. ([ <a href="#debugging_with_gdb">36</a>])</li>
 <li>Implementations of Prolog. ([ <a href="#DBLP_books_eh_campbell84_C1984">6</a>])</li>
</ul></div>
</div>

 <div id="outline-container-Software" class="outline-3">
 <h3 id="Software"> <span class="section-number-3">5.2.</span>  <a href="#Software">Software</a></h3>
 <div class="outline-text-3" id="text-Software">
 <ul class="org-ul"> <li>GNU Emacs. ([ <a href="#software_gnu_emacs">16</a>])</li>
 <li>Org-mode for Emacs. ([ <a href="#software_org_mode">12</a>])</li>
 <li>Chibi-Scheme. ([ <a href="#software_chibi_scheme">35</a>])</li>
 <li>MIT/GNU Scheme. [For for portability checks]. ([ <a href="#software_mit_scheme">7</a>])</li>
 <li>Geiser. ([ <a href="#software_geiser">31</a>])</li>
 <li>GNU Debugger (GDB). ([ <a href="#software_gnu_gdb">17</a>])</li>
 <li>luaLaTeX/TeX Live. ([ <a href="#software_tex_texlive">41</a>])</li>
 <li>TikZ/PGF. ([ <a href="#software_tex_tikz">40</a>])</li>
 <li>PlantUML. ([ <a href="#software_plantuml">28</a>])</li>
 <li>Graphviz. ([ <a href="#software_graphviz">13</a>])</li>
 <li>Slackware Linux 14.2-current. ([ <a href="#software_slackware_linux">43</a>])</li>
</ul></div>
</div>

 <div id="outline-container-Papers" class="outline-3">
 <h3 id="Papers"> <span class="section-number-3">5.3.</span>  <a href="#Papers">Papers</a></h3>
 <div class="outline-text-3" id="text-Papers">
 <ul class="org-ul"> <li>Revised Report on the Propagator Model. ([ <a href="#radul_2011_propagator">30</a>])</li>
 <li>On Implementing Prolog In Functional Programming. ([ <a href="#DBLPjournals_ngc_Carlsson84">8</a>])</li>
 <li>eu-Prolog, Reference Manual. ([ <a href="#kohlbecker1984eu">20</a>])</li>
</ul> <div id="bibliography">
 <h2>References</h2>

 <table> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="DBLP:books_mit_AbelsonS85">1</a>]
</td>
 <td class="bibtexitem">
Harold Abelson and Gerald J. Sussman.
  <em>Structure and Interpretation of Computer Programs</em>.
 MIT Press, 1 edition, 1985.
[  <a href="bibliography-bib_bib.html#DBLP:books_mit_AbelsonS85">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="Abelson1996">2</a>]
</td>
 <td class="bibtexitem">
Harold Abelson, Gerald J. Sussman, and Julia Sussman.
  <em>Structure and Interpretation of Computer Programs</em>.
 MIT Press, 2 edition, 1996.
[  <a href="bibliography-bib_bib.html#Abelson1996">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="adler_factors_1939">3</a>]
</td>
 <td class="bibtexitem">
Dan L. Adler and Jacob S. Kounin.
 Some factors operating at the moment of resumption of interrupted
  tasks.
 7(2):255--267.
[  <a href="bibliography-bib_bib.html#adler_factors_1939">bib</a> | 
 <a href="http://dx.doi.org/10.1080/00223980.1939.9917632">DOI</a> | 
 <a href="https://doi.org/10.1080/00223980.1939.9917632">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="Balbin_1985_logic_programming_bibliography">4</a>]
</td>
 <td class="bibtexitem">
Isaac Balbin and Koenraad Lecot.
  <em>Logic Programming</em>.
 Springer Netherlands, 1985.
[  <a href="bibliography-bib_bib.html#Balbin_1985_logic_programming_bibliography">bib</a> | 
 <a href="http://dx.doi.org/10.1007/978-94-009-5044-3">DOI</a> | 
 <a href="http://dx.doi.org/10.1007/978-94-009-5044-3">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="berne:1973:what_do_you_say_after_you_say_hello">5</a>]
</td>
 <td class="bibtexitem">
Eric Berne.
  <em>What Do You Say After You Say Hello?</em>
 Bantam Books, New York, 1973.
[  <a href="bibliography-bib_bib.html#berne:1973:what_do_you_say_after_you_say_hello">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="DBLP_books_eh_campbell84_C1984">6</a>]
</td>
 <td class="bibtexitem">
John A. Campbell, editor.
  <em>Implementations of Prolog</em>.
 Ellis Horwood/Halsted Press/Wiley, 1984.
[  <a href="bibliography-bib_bib.html#DBLP_books_eh_campbell84_C1984">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_mit_scheme">7</a>]
</td>
 <td class="bibtexitem">
Taylor Campbell et al.
 MIT/GNU Scheme, 2019.
[  <a href="bibliography-bib_bib.html#software_mit_scheme">bib</a> | 
 <a href="https://www.gnu.org/software/mit-scheme/">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="DBLPjournals_ngc_Carlsson84">8</a>]
</td>
 <td class="bibtexitem">
Mats Carlsson.
 On implementing Prolog in functional programming.
 2(4):347--359, 1984.
[  <a href="bibliography-bib_bib.html#DBLPjournals_ngc_Carlsson84">bib</a> | 
 <a href="http://dx.doi.org/10.1007/BF03037326">DOI</a> | 
 <a href="https://doi.org/10.1007/BF03037326">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="St_Clair_1999_a_case_agains_compulsory_class_attendance_policies_in_higher_education">9</a>]
</td>
 <td class="bibtexitem">
Karen L. St. Clair.
 A case against compulsory class attendance policies in higher
  education.
 23(3):171--180, 1999.
[  <a href="bibliography-bib_bib.html#St_Clair_1999_a_case_agains_compulsory_class_attendance_policies_in_higher_education">bib</a> | 
 <a href="http://dx.doi.org/10.1023/a:1022942400812">DOI</a> | 
 <a href="http://dx.doi.org/10.1023/A:1022942400812">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="crow2018lognormal">10</a>]
</td>
 <td class="bibtexitem">
Edwin L. Crow and Kunio Shimizu.
  <em>Lognormal Distributions: Theory and Applications</em>.
 Routledge, 5 2018.
[  <a href="bibliography-bib_bib.html#crow2018lognormal">bib</a> | 
 <a href="http://dx.doi.org/10.1201/9780203748664">DOI</a> | 
 <a href="http://dx.doi.org/10.1201/9780203748664">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="Dominik2010orgmode">11</a>]
</td>
 <td class="bibtexitem">
Carsten Dominik.
  <em>The Org-Mode 7 Reference Manual: Organize Your Life with GNU
  Emacs</em>.
 Network Theory, UK, 2010.
 with contributions by David O'Toole, Bastien Guerry, Philip Rooke,
  Dan Davison, Eric Schulte, and Thomas Dye.
[  <a href="bibliography-bib_bib.html#Dominik2010orgmode">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_org_mode">12</a>]
</td>
 <td class="bibtexitem">
Carsten Dominik et al.
 Org-mode, 2019.
[  <a href="bibliography-bib_bib.html#software_org_mode">bib</a> | 
 <a href="https://www.orgmode.org">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_graphviz">13</a>]
</td>
 <td class="bibtexitem">
John Ellson et al.
 Graphviz.
[  <a href="bibliography-bib_bib.html#software_graphviz">bib</a> | 
 <a href="https://graphviz.org">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="sicsc">14</a>]
</td>
 <td class="bibtexitem">
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram
  Krishnamurthi.
 The structure and interpretation of the computer science curriculum.
 14:365--378, 07 2004.
[  <a href="bibliography-bib_bib.html#sicsc">bib</a> | 
 <a href="http://dx.doi.org/10.1017/S0956796804005076">DOI</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="felleisen2018how">15</a>]
</td>
 <td class="bibtexitem">
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram
  Krishnamurthi.
  <em>How to Design Programs: an Introduction to Programming and
  Computing</em>.
 The MIT Press, Cambridge, Massachusetts, 2018.
[  <a href="bibliography-bib_bib.html#felleisen2018how">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_gnu_emacs">16</a>]
</td>
 <td class="bibtexitem">
Free Software Foundation.
 GNU Emacs, 2019.
[  <a href="bibliography-bib_bib.html#software_gnu_emacs">bib</a> | 
 <a href="https://www.gnu.org/software/emacs/">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_gnu_gdb">17</a>]
</td>
 <td class="bibtexitem">
Free Software Foundation.
 GNU debugger, 2020.
[  <a href="bibliography-bib_bib.html#software_gnu_gdb">bib</a> | 
 <a href="https://www.gnu.org/software/gdb/">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="Gembicki_1975">18</a>]
</td>
 <td class="bibtexitem">
Floyd W. Gembicki and Yacov Y. Haimes.
 Approach to performance and sensitivity multiobjective optimization:
  The goal attainment method.
 20(6):769--771, December 1975.
[  <a href="bibliography-bib_bib.html#Gembicki_1975">bib</a> | 
 <a href="http://dx.doi.org/10.1109/tac.1975.1101105">DOI</a> | 
 <a href="http://dx.doi.org/10.1109/TAC.1975.1101105">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="hlosta:2018:modelling_student_online_behaviour_in_a_virtual_learning_environment">19</a>]
</td>
 <td class="bibtexitem">
Martin Hlosta, Drahomira Herrmannova, Lucie Vachova, Jakub Kuzilek, Zdenek
  Zdrahal, and Annika Wolff.
 Modelling student online behaviour in a virtual learning environment.
 2018.
[  <a href="bibliography-bib_bib.html#hlosta:2018:modelling_student_online_behaviour_in_a_virtual_learning_environment">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="kohlbecker1984eu">20</a>]
</td>
 <td class="bibtexitem">
Eugene Kohlbecker.
 eu-Prolog, reference manual and report.
 Technical report, University of Indiana (Bloomington), Computer
  Science Department, 04 1984.
[  <a href="bibliography-bib_bib.html#kohlbecker1984eu">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="Kooker:1975:Changes_in_grade_distributions_associated_with_changes_in_class_attendance_policies">21</a>]
</td>
 <td class="bibtexitem">
E. W. Kooker.
 Changes in grade distributions associated with changes in class
  attendance policies.
 13:56--57, 1976.
[  <a href="bibliography-bib_bib.html#Kooker:1975:Changes_in_grade_distributions_associated_with_changes_in_class_attendance_policies">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="Ku2010">22</a>]
</td>
 <td class="bibtexitem">
Kelly Y. L. Ku and Irene T. Ho.
 Metacognitive strategies that enhance critical thinking.
 5(3):251--267, July 2010.
[  <a href="bibliography-bib_bib.html#Ku2010">bib</a> | 
 <a href="http://dx.doi.org/10.1007/s11409-010-9060-6">DOI</a> | 
 <a href="https://doi.org/10.1007/s11409-010-9060-6">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="mcgregor:1960:theory_x_and_theory_y">23</a>]
</td>
 <td class="bibtexitem">
Douglas McGregor.
 Theory X and theory Y.
 358:374, 1960.
[  <a href="bibliography-bib_bib.html#mcgregor:1960:theory_x_and_theory_y">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="Metcalf_2018_fortran">24</a>]
</td>
 <td class="bibtexitem">
Michael Metcalf, John Reid, and Malcolm Cohen.
  <em>Modern Fortran Explained</em>.
 Oxford University Press, 10 2018.
[  <a href="bibliography-bib_bib.html#Metcalf_2018_fortran">bib</a> | 
 <a href="http://dx.doi.org/10.1093/oso/9780198811893.001.0001">DOI</a> | 
 <a href="http://dx.doi.org/10.1093/oso/9780198811893.001.0001">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="chibi-sicp">25</a>]
</td>
 <td class="bibtexitem">
Vladimir Nikishkin.
 A full solution to the structure and interpretation of computer
  programs.
[  <a href="bibliography-bib_bib.html#chibi-sicp">bib</a> | 
 <a href="https://gitlab.com/Lockywolf/chibi-sicp/">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="pender2002uml">26</a>]
</td>
 <td class="bibtexitem">
Thomas Pender.
  <em>UML Weekend Crash Course</em>.
 Hungry Minds, Indianapolis, IN, 2002.
[  <a href="bibliography-bib_bib.html#pender2002uml">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="plantuml_manual">27</a>]
</td>
 <td class="bibtexitem">
PlantUML Developers.
 Drawing UML with plantuml.
[  <a href="bibliography-bib_bib.html#plantuml_manual">bib</a> | 
 <a href="http://plantuml.com/guide">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_plantuml">28</a>]
</td>
 <td class="bibtexitem">
PlantUML Developers.
 PlantUML.
[  <a href="bibliography-bib_bib.html#software_plantuml">bib</a> | 
 <a href="http://plantuml.net">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_jupyter">29</a>]
</td>
 <td class="bibtexitem">
Project Jupyter Developers.
 Jupyter Notebook: a server-client application that allows editing
  and running notebook documents via a web browser., 2019.
[  <a href="bibliography-bib_bib.html#software_jupyter">bib</a> | 
 <a href="https://jupyter.org/">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="radul_2011_propagator">30</a>]
</td>
 <td class="bibtexitem">
Alexey Radul and Gerald J. Sussman.
 Revised report on the propagator model.
[  <a href="bibliography-bib_bib.html#radul_2011_propagator">bib</a> | 
 <a href="http://groups.csail.mit.edu/mac/users/gjs/propagators/">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_geiser">31</a>]
</td>
 <td class="bibtexitem">
Jose A. O. Ruiz et al.
 geiser, 2020.
[  <a href="bibliography-bib_bib.html#software_geiser">bib</a> | 
 <a href="http://www.nongnu.org/geiser/index.html">.html</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="ryan:2017:self_determination_theory">32</a>]
</td>
 <td class="bibtexitem">
Richard M Ryan and Edward L Deci.
  <em>Self-determination theory: Basic psychological needs in
  motivation, development, and wellness</em>.
 Guilford Publications, 2017.
[  <a href="bibliography-bib_bib.html#ryan:2017:self_determination_theory">bib</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="chibi_manual">33</a>]
</td>
 <td class="bibtexitem">
Alex Shinn.
 Chibi-Scheme.
[  <a href="bibliography-bib_bib.html#chibi_manual">bib</a> | 
 <a href="http://synthcode.com/scheme/chibi/">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="shinn2013revised">34</a>]
</td>
 <td class="bibtexitem">
Alex Shinn, John Cowan, Arthur A. Gleckler, et al., editors.
  <em>Revised <sup>7</sup> Report on the Algorithmic Language
  Scheme</em>.
 2013.
[  <a href="bibliography-bib_bib.html#shinn2013revised">bib</a> | 
 <a href="https://small.r7rs.org/">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_chibi_scheme">35</a>]
</td>
 <td class="bibtexitem">
Alex Shinn et al.
 Chibi-Scheme, 2019.
[  <a href="bibliography-bib_bib.html#software_chibi_scheme">bib</a> | 
 <a href="http://synthcode.com/scheme/chibi/">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="debugging_with_gdb">36</a>]
</td>
 <td class="bibtexitem">
Richard Stallman et al.
 Debugging with GDB, 2020.
[  <a href="bibliography-bib_bib.html#debugging_with_gdb">bib</a> | 
 <a href="https://sourceware.org/gdb/download/onlinedocs/gdb/index.html">.html</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="emacs_lisp_manual">37</a>]
</td>
 <td class="bibtexitem">
Richard Stallman et al.
 GNU Emacs Lisp Reference Manual, 2020.
[  <a href="bibliography-bib_bib.html#emacs_lisp_manual">bib</a> | 
 <a href="https://www.gnu.org/software/emacs/manual/pdf/elisp.pdf">.pdf</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="stallman_emacs_manual">38</a>]
</td>
 <td class="bibtexitem">
Richard Stallman et al.
 GNU Emacs Manual, 2020.
[  <a href="bibliography-bib_bib.html#stallman_emacs_manual">bib</a> | 
 <a href="https://www.gnu.org/software/emacs/manual/pdf/emacs.pdf">.pdf</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="tikz_manual">39</a>]
</td>
 <td class="bibtexitem">
Till Tantau.
 The TikZ and PGF Packages.
[  <a href="bibliography-bib_bib.html#tikz_manual">bib</a> | 
 <a href="https://pgf-tikz.github.io/pgf/pgfmanual.pdf">.pdf</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_tex_tikz">40</a>]
</td>
 <td class="bibtexitem">
Till Tantau et al.
 Portable graphics format.
[  <a href="bibliography-bib_bib.html#software_tex_tikz">bib</a> | 
 <a href="https://github.com/pgf-tikz/pgf">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_tex_texlive">41</a>]
</td>
 <td class="bibtexitem">
TeX User Groups.
 TeX Live, 2019.
[  <a href="bibliography-bib_bib.html#software_tex_texlive">bib</a> | 
 <a href="https://tug.org/texlive/">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="VanWormer2008">42</a>]
</td>
 <td class="bibtexitem">
Jeffrey J. VanWormer, Simone A. French, Mark A. Pereira, and Ericka M. Welsh.
 The impact of regular self-weighing on weight management: A
  systematic literature review.
 5(1):54, 2008.
[  <a href="bibliography-bib_bib.html#VanWormer2008">bib</a> | 
 <a href="http://dx.doi.org/10.1186/1479-5868-5-54">DOI</a> | 
 <a href="https://doi.org/10.1186/1479-5868-5-54">http</a> ]

</td>
</tr> <tr valign="top"> <td align="right" class="bibtexnumber">
[ <a name="software_slackware_linux">43</a>]
</td>
 <td class="bibtexitem">
Patric Volkerding et al.
 Slackware Linux, 2019.
[  <a href="bibliography-bib_bib.html#software_slackware_linux">bib</a> | 
 <a href="http://www.slackware.com/">http</a> ]

</td>
</tr></table></div>
</div>
</div>
</section> <section id="outline-container-appendix:-Analysed-data-on-problem-difficulty" class="outline-2"> <h2 id="appendix:-Analysed-data-on-problem-difficulty"> <span class="section-number-2">6.</span>  <a href="#appendix:-Analysed-data-on-problem-difficulty">Appendix: Analysed data on problem difficulty</a></h2>
 <div class="outline-text-2" id="text-appendix:-Analysed-data-on-problem-difficulty">
 <p>
For the code used to generate the tables in the following sections, see:  
 <a href="#appendix:-Emacs-Lisp-code-for-data-analysis">Appendix: Emacs Lisp code for data analysis</a>.
</p>
</div>
 <div id="outline-container-Analysed-time-consumption" class="outline-3">
 <h3 id="Analysed-time-consumption"> <span class="section-number-3">6.1.</span>  <a href="#Analysed-time-consumption">Analysed time consumption</a></h3>
 <div class="outline-text-3" id="text-Analysed-time-consumption">
 <table> <colgroup> <col class="org-right"></col> <col class="org-left"></col> <col class="org-right"></col> <col class="org-right"></col> <col class="org-right"></col></colgroup> <thead> <tr> <th scope="col" class="org-right">No</th>
 <th scope="col" class="org-left">Exercise Name</th>
 <th scope="col" class="org-right">Days Spent</th>
 <th scope="col" class="org-right">Spans Sessions</th>
 <th scope="col" class="org-right">Minutes Spent</th>
</tr></thead> <tbody> <tr> <td class="org-right">1</td>
 <td class="org-left">Exercise 1.1 Interpreter result</td>
 <td class="org-right">1.211</td>
 <td class="org-right">2</td>
 <td class="org-right">459</td>
</tr> <tr> <td class="org-right">2</td>
 <td class="org-left">Exercise 1.2 Prefix form</td>
 <td class="org-right">0.001</td>
 <td class="org-right">1</td>
 <td class="org-right">2</td>
</tr> <tr> <td class="org-right">3</td>
 <td class="org-left">Figure 1.1 Tree representation, showing the value of each su</td>
 <td class="org-right">0.007</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">4</td>
 <td class="org-left">Exercise 1.4 Compound expressions</td>
 <td class="org-right">0.003</td>
 <td class="org-right">1</td>
 <td class="org-right">4</td>
</tr> <tr> <td class="org-right">5</td>
 <td class="org-left">Exercise 1.5 Ben’s test</td>
 <td class="org-right">0.008</td>
 <td class="org-right">1</td>
 <td class="org-right">11</td>
</tr> <tr> <td class="org-right">6</td>
 <td class="org-left">Exercise 1.6 If is a special form</td>
 <td class="org-right">0.969</td>
 <td class="org-right">2</td>
 <td class="org-right">118</td>
</tr> <tr> <td class="org-right">7</td>
 <td class="org-left">Exercise 1.7 Good enough?</td>
 <td class="org-right">0.949</td>
 <td class="org-right">3</td>
 <td class="org-right">436</td>
</tr> <tr> <td class="org-right">8</td>
 <td class="org-left">Exercise 1.8 Newton’s method</td>
 <td class="org-right">0.197</td>
 <td class="org-right">2</td>
 <td class="org-right">193</td>
</tr> <tr> <td class="org-right">9</td>
 <td class="org-left">Exercise 1.10 Ackermann’s function</td>
 <td class="org-right">3.038</td>
 <td class="org-right">2</td>
 <td class="org-right">379</td>
</tr> <tr> <td class="org-right">10</td>
 <td class="org-left">Exercise 1.11 Recursive vs iterative</td>
 <td class="org-right">0.037</td>
 <td class="org-right">1</td>
 <td class="org-right">54</td>
</tr> <tr> <td class="org-right">11</td>
 <td class="org-left">Exercise 1.12 Recursive Pascal’s triangle</td>
 <td class="org-right">0.012</td>
 <td class="org-right">1</td>
 <td class="org-right">17</td>
</tr> <tr> <td class="org-right">12</td>
 <td class="org-left">Exercise 1.13 Fibonacci</td>
 <td class="org-right">0.092</td>
 <td class="org-right">1</td>
 <td class="org-right">132</td>
</tr> <tr> <td class="org-right">13</td>
 <td class="org-left">Exercise 1.9 Iterative or recursive?</td>
 <td class="org-right">3.722</td>
 <td class="org-right">2</td>
 <td class="org-right">65</td>
</tr> <tr> <td class="org-right">14</td>
 <td class="org-left">Exercise 1.14 count-change</td>
 <td class="org-right">1.038</td>
 <td class="org-right">2</td>
 <td class="org-right">50</td>
</tr> <tr> <td class="org-right">15</td>
 <td class="org-left">Exercise 1.15 sine</td>
 <td class="org-right">0.267</td>
 <td class="org-right">2</td>
 <td class="org-right">195</td>
</tr> <tr> <td class="org-right">16</td>
 <td class="org-left">Exercise 1.16 Iterative exponentiation</td>
 <td class="org-right">0.032</td>
 <td class="org-right">1</td>
 <td class="org-right">46</td>
</tr> <tr> <td class="org-right">17</td>
 <td class="org-left">Exercise 1.17 Fast multiplication</td>
 <td class="org-right">0.019</td>
 <td class="org-right">1</td>
 <td class="org-right">28</td>
</tr> <tr> <td class="org-right">18</td>
 <td class="org-left">Exercise 1.18 Iterative multiplication</td>
 <td class="org-right">0.497</td>
 <td class="org-right">2</td>
 <td class="org-right">23</td>
</tr> <tr> <td class="org-right">19</td>
 <td class="org-left">Exercise 1.19 Logarithmic Fibonacci</td>
 <td class="org-right">1.374</td>
 <td class="org-right">2</td>
 <td class="org-right">93</td>
</tr> <tr> <td class="org-right">20</td>
 <td class="org-left">Exercise 1.20 GCD applicative vs normal</td>
 <td class="org-right">0.099</td>
 <td class="org-right">1</td>
 <td class="org-right">142</td>
</tr> <tr> <td class="org-right">21</td>
 <td class="org-left">Exercise 1.21 smallest-divisor</td>
 <td class="org-right">0.027</td>
 <td class="org-right">1</td>
 <td class="org-right">39</td>
</tr> <tr> <td class="org-right">22</td>
 <td class="org-left">Exercise 1.22 timed-prime-test</td>
 <td class="org-right">0.042</td>
 <td class="org-right">1</td>
 <td class="org-right">61</td>
</tr> <tr> <td class="org-right">23</td>
 <td class="org-left">Exercise 1.23 (next test-divisor)</td>
 <td class="org-right">0.383</td>
 <td class="org-right">2</td>
 <td class="org-right">5</td>
</tr> <tr> <td class="org-right">24</td>
 <td class="org-left">Exercise 1.24 Fermat method</td>
 <td class="org-right">0.067</td>
 <td class="org-right">1</td>
 <td class="org-right">96</td>
</tr> <tr> <td class="org-right">25</td>
 <td class="org-left">Exercise 1.25 expmod</td>
 <td class="org-right">0.051</td>
 <td class="org-right">1</td>
 <td class="org-right">74</td>
</tr> <tr> <td class="org-right">26</td>
 <td class="org-left">Exercise 1.26 square vs mul</td>
 <td class="org-right">0.003</td>
 <td class="org-right">1</td>
 <td class="org-right">4</td>
</tr> <tr> <td class="org-right">27</td>
 <td class="org-left">Exercise 1.27 Carmichael numbers</td>
 <td class="org-right">0.333</td>
 <td class="org-right">2</td>
 <td class="org-right">102</td>
</tr> <tr> <td class="org-right">28</td>
 <td class="org-left">Exercise 1.28 Miller-Rabin</td>
 <td class="org-right">0.110</td>
 <td class="org-right">1</td>
 <td class="org-right">158</td>
</tr> <tr> <td class="org-right">29</td>
 <td class="org-left">Exercise 1.29 Simpson’s integral</td>
 <td class="org-right">0.464</td>
 <td class="org-right">2</td>
 <td class="org-right">68</td>
</tr> <tr> <td class="org-right">30</td>
 <td class="org-left">Exercise 1.30 Iterative sum</td>
 <td class="org-right">0.030</td>
 <td class="org-right">2</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">31</td>
 <td class="org-left">Exercise 1.31 Product</td>
 <td class="org-right">0.028</td>
 <td class="org-right">1</td>
 <td class="org-right">40</td>
</tr> <tr> <td class="org-right">32</td>
 <td class="org-left">Exercise 1.32 Accumulator</td>
 <td class="org-right">0.017</td>
 <td class="org-right">1</td>
 <td class="org-right">24</td>
</tr> <tr> <td class="org-right">33</td>
 <td class="org-left">Exercise 1.33 filtered-accumulate</td>
 <td class="org-right">0.092</td>
 <td class="org-right">1</td>
 <td class="org-right">133</td>
</tr> <tr> <td class="org-right">34</td>
 <td class="org-left">Exercise 1.34 lambda</td>
 <td class="org-right">0.006</td>
 <td class="org-right">1</td>
 <td class="org-right">8</td>
</tr> <tr> <td class="org-right">35</td>
 <td class="org-left">Exercise 1.35 fixed-point</td>
 <td class="org-right">0.265</td>
 <td class="org-right">2</td>
 <td class="org-right">87</td>
</tr> <tr> <td class="org-right">36</td>
 <td class="org-left">Exercise 1.36 fixed-point-with-dampening</td>
 <td class="org-right">0.035</td>
 <td class="org-right">1</td>
 <td class="org-right">50</td>
</tr> <tr> <td class="org-right">37</td>
 <td class="org-left">Exercise 1.37 cont-frac</td>
 <td class="org-right">0.569</td>
 <td class="org-right">2</td>
 <td class="org-right">348</td>
</tr> <tr> <td class="org-right">38</td>
 <td class="org-left">Exercise 1.38 euler constant</td>
 <td class="org-right">0.000</td>
 <td class="org-right">1</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">39</td>
 <td class="org-left">Exercise 1.39 tan-cf</td>
 <td class="org-right">0.025</td>
 <td class="org-right">1</td>
 <td class="org-right">36</td>
</tr> <tr> <td class="org-right">40</td>
 <td class="org-left">Exercise 1.40 newtons-method</td>
 <td class="org-right">0.205</td>
 <td class="org-right">2</td>
 <td class="org-right">6</td>
</tr> <tr> <td class="org-right">41</td>
 <td class="org-left">Exercise 1.41 double-double</td>
 <td class="org-right">0.010</td>
 <td class="org-right">1</td>
 <td class="org-right">15</td>
</tr> <tr> <td class="org-right">42</td>
 <td class="org-left">Exercise 1.42 compose</td>
 <td class="org-right">0.004</td>
 <td class="org-right">1</td>
 <td class="org-right">6</td>
</tr> <tr> <td class="org-right">43</td>
 <td class="org-left">Exercise 1.43 repeated</td>
 <td class="org-right">0.019</td>
 <td class="org-right">1</td>
 <td class="org-right">27</td>
</tr> <tr> <td class="org-right">44</td>
 <td class="org-left">Exercise 1.44 smoothing</td>
 <td class="org-right">0.099</td>
 <td class="org-right">2</td>
 <td class="org-right">142</td>
</tr> <tr> <td class="org-right">45</td>
 <td class="org-left">Exercise 1.45 nth-root</td>
 <td class="org-right">0.056</td>
 <td class="org-right">1</td>
 <td class="org-right">80</td>
</tr> <tr> <td class="org-right">46</td>
 <td class="org-left">Exercise 1.46 iterative-improve</td>
 <td class="org-right">0.033</td>
 <td class="org-right">1</td>
 <td class="org-right">48</td>
</tr> <tr> <td class="org-right">47</td>
 <td class="org-left">Exercise 2.1 make-rat</td>
 <td class="org-right">1.608</td>
 <td class="org-right">2</td>
 <td class="org-right">109</td>
</tr> <tr> <td class="org-right">48</td>
 <td class="org-left">Exercise 2.2 make-segment</td>
 <td class="org-right">0.024</td>
 <td class="org-right">1</td>
 <td class="org-right">34</td>
</tr> <tr> <td class="org-right">49</td>
 <td class="org-left">Exercise 2.3 make-rectangle</td>
 <td class="org-right">2.183</td>
 <td class="org-right">2</td>
 <td class="org-right">174</td>
</tr> <tr> <td class="org-right">50</td>
 <td class="org-left">Exercise 2.4 cons-lambda</td>
 <td class="org-right">0.007</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">51</td>
 <td class="org-left">Exercise 2.5 cons-pow</td>
 <td class="org-right">0.041</td>
 <td class="org-right">1</td>
 <td class="org-right">59</td>
</tr> <tr> <td class="org-right">52</td>
 <td class="org-left">Exercise 2.6 Church Numerals</td>
 <td class="org-right">0.024</td>
 <td class="org-right">1</td>
 <td class="org-right">34</td>
</tr> <tr> <td class="org-right">53</td>
 <td class="org-left">Exercise 2.7 make-interval</td>
 <td class="org-right">0.019</td>
 <td class="org-right">1</td>
 <td class="org-right">28</td>
</tr> <tr> <td class="org-right">54</td>
 <td class="org-left">Exercise 2.8 sub-interval</td>
 <td class="org-right">0.124</td>
 <td class="org-right">1</td>
 <td class="org-right">58</td>
</tr> <tr> <td class="org-right">55</td>
 <td class="org-left">Exercise 2.9 interval-width</td>
 <td class="org-right">0.006</td>
 <td class="org-right">1</td>
 <td class="org-right">8</td>
</tr> <tr> <td class="org-right">56</td>
 <td class="org-left">Exercise 2.10 div-interval-better</td>
 <td class="org-right">0.010</td>
 <td class="org-right">1</td>
 <td class="org-right">15</td>
</tr> <tr> <td class="org-right">57</td>
 <td class="org-left">Exercise 2.11 mul-interval-nine-cases</td>
 <td class="org-right">0.052</td>
 <td class="org-right">1</td>
 <td class="org-right">75</td>
</tr> <tr> <td class="org-right">58</td>
 <td class="org-left">Exercise 2.12 make-center-percent</td>
 <td class="org-right">0.393</td>
 <td class="org-right">2</td>
 <td class="org-right">43</td>
</tr> <tr> <td class="org-right">59</td>
 <td class="org-left">Exercise 2.13 formula for tolerance</td>
 <td class="org-right">0.003</td>
 <td class="org-right">1</td>
 <td class="org-right">5</td>
</tr> <tr> <td class="org-right">60</td>
 <td class="org-left">Exercise 2.14 parallel-resistors</td>
 <td class="org-right">0.047</td>
 <td class="org-right">1</td>
 <td class="org-right">68</td>
</tr> <tr> <td class="org-right">61</td>
 <td class="org-left">Exercise 2.15 better-intervals</td>
 <td class="org-right">0.007</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">62</td>
 <td class="org-left">Exercise 2.16 interval-arithmetic</td>
 <td class="org-right">0.002</td>
 <td class="org-right">1</td>
 <td class="org-right">3</td>
</tr> <tr> <td class="org-right">63</td>
 <td class="org-left">Exercise 2.17 last-pair</td>
 <td class="org-right">0.966</td>
 <td class="org-right">2</td>
 <td class="org-right">89</td>
</tr> <tr> <td class="org-right">64</td>
 <td class="org-left">Exercise 2.18 reverse</td>
 <td class="org-right">0.006</td>
 <td class="org-right">1</td>
 <td class="org-right">9</td>
</tr> <tr> <td class="org-right">65</td>
 <td class="org-left">Exercise 2.19 coin-values</td>
 <td class="org-right">0.021</td>
 <td class="org-right">1</td>
 <td class="org-right">30</td>
</tr> <tr> <td class="org-right">66</td>
 <td class="org-left">Exercise 2.20 dotted-tail notation</td>
 <td class="org-right">0.311</td>
 <td class="org-right">2</td>
 <td class="org-right">156</td>
</tr> <tr> <td class="org-right">67</td>
 <td class="org-left">Exercise 2.21 map-square-list</td>
 <td class="org-right">0.013</td>
 <td class="org-right">1</td>
 <td class="org-right">19</td>
</tr> <tr> <td class="org-right">68</td>
 <td class="org-left">Exercise 2.22 wrong list order</td>
 <td class="org-right">0.007</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">69</td>
 <td class="org-left">Exercise 2.23 for-each</td>
 <td class="org-right">0.006</td>
 <td class="org-right">1</td>
 <td class="org-right">9</td>
</tr> <tr> <td class="org-right">70</td>
 <td class="org-left">Exercise 2.24 list-plot-result</td>
 <td class="org-right">0.111</td>
 <td class="org-right">2</td>
 <td class="org-right">75</td>
</tr> <tr> <td class="org-right">71</td>
 <td class="org-left">Exercise 2.25 caddr</td>
 <td class="org-right">0.037</td>
 <td class="org-right">1</td>
 <td class="org-right">54</td>
</tr> <tr> <td class="org-right">72</td>
 <td class="org-left">Exercise 2.26 append cons list</td>
 <td class="org-right">0.011</td>
 <td class="org-right">1</td>
 <td class="org-right">16</td>
</tr> <tr> <td class="org-right">73</td>
 <td class="org-left">Exercise 2.27 deep-reverse</td>
 <td class="org-right">0.433</td>
 <td class="org-right">2</td>
 <td class="org-right">40</td>
</tr> <tr> <td class="org-right">74</td>
 <td class="org-left">Exercise 2.28 fringe</td>
 <td class="org-right">0.026</td>
 <td class="org-right">1</td>
 <td class="org-right">37</td>
</tr> <tr> <td class="org-right">75</td>
 <td class="org-left">Exercise 2.29 mobile</td>
 <td class="org-right">0.058</td>
 <td class="org-right">1</td>
 <td class="org-right">83</td>
</tr> <tr> <td class="org-right">76</td>
 <td class="org-left">Exercise 2.30 square-tree</td>
 <td class="org-right">0.100</td>
 <td class="org-right">2</td>
 <td class="org-right">122</td>
</tr> <tr> <td class="org-right">77</td>
 <td class="org-left">Exercise 2.31 tree-map square tree</td>
 <td class="org-right">0.019</td>
 <td class="org-right">1</td>
 <td class="org-right">27</td>
</tr> <tr> <td class="org-right">78</td>
 <td class="org-left">Exercise 2.32 subsets</td>
 <td class="org-right">0.010</td>
 <td class="org-right">1</td>
 <td class="org-right">15</td>
</tr> <tr> <td class="org-right">79</td>
 <td class="org-left">Exercise 2.33 map-append-length</td>
 <td class="org-right">0.375</td>
 <td class="org-right">2</td>
 <td class="org-right">96</td>
</tr> <tr> <td class="org-right">80</td>
 <td class="org-left">Exercise 2.34 horners-rule</td>
 <td class="org-right">0.006</td>
 <td class="org-right">1</td>
 <td class="org-right">8</td>
</tr> <tr> <td class="org-right">81</td>
 <td class="org-left">Exercise 2.35 count-leaves-accumulate</td>
 <td class="org-right">0.011</td>
 <td class="org-right">1</td>
 <td class="org-right">16</td>
</tr> <tr> <td class="org-right">82</td>
 <td class="org-left">Exercise 2.36 accumulate-n</td>
 <td class="org-right">0.006</td>
 <td class="org-right">1</td>
 <td class="org-right">9</td>
</tr> <tr> <td class="org-right">83</td>
 <td class="org-left">Exercise 2.37 matrix-*-vector</td>
 <td class="org-right">0.017</td>
 <td class="org-right">1</td>
 <td class="org-right">24</td>
</tr> <tr> <td class="org-right">84</td>
 <td class="org-left">Exercise 2.38 fold-left</td>
 <td class="org-right">0.372</td>
 <td class="org-right">2</td>
 <td class="org-right">65</td>
</tr> <tr> <td class="org-right">85</td>
 <td class="org-left">Exercise 2.39 reverse fold-right fold-left</td>
 <td class="org-right">0.005</td>
 <td class="org-right">1</td>
 <td class="org-right">7</td>
</tr> <tr> <td class="org-right">86</td>
 <td class="org-left">Exercise 2.40 unique-pairs</td>
 <td class="org-right">0.029</td>
 <td class="org-right">1</td>
 <td class="org-right">42</td>
</tr> <tr> <td class="org-right">87</td>
 <td class="org-left">Exercise 2.41 triple-sum</td>
 <td class="org-right">2.195</td>
 <td class="org-right">2</td>
 <td class="org-right">57</td>
</tr> <tr> <td class="org-right">88</td>
 <td class="org-left">Figure 2.8 A solution to the eight-queens puzzle.</td>
 <td class="org-right">0.001</td>
 <td class="org-right">1</td>
 <td class="org-right">2</td>
</tr> <tr> <td class="org-right">89</td>
 <td class="org-left">Exercise 2.42 k-queens</td>
 <td class="org-right">3.299</td>
 <td class="org-right">2</td>
 <td class="org-right">122</td>
</tr> <tr> <td class="org-right">90</td>
 <td class="org-left">Exercise 2.43 slow k-queens</td>
 <td class="org-right">0.019</td>
 <td class="org-right">1</td>
 <td class="org-right">28</td>
</tr> <tr> <td class="org-right">91</td>
 <td class="org-left">Exercise 2.46 make-vect</td>
 <td class="org-right">2.578</td>
 <td class="org-right">5</td>
 <td class="org-right">535</td>
</tr> <tr> <td class="org-right">92</td>
 <td class="org-left">Exercise 2.47 make-frame</td>
 <td class="org-right">0.083</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">93</td>
 <td class="org-left">Exercise 2.48 make-segment</td>
 <td class="org-right">0.054</td>
 <td class="org-right">1</td>
 <td class="org-right">78</td>
</tr> <tr> <td class="org-right">94</td>
 <td class="org-left">Exercise 2.49 segments->painter applications</td>
 <td class="org-right">0.294</td>
 <td class="org-right">2</td>
 <td class="org-right">139</td>
</tr> <tr> <td class="org-right">95</td>
 <td class="org-left">Exercise 2.50 flip-horiz and rotate270 and rotate180</td>
 <td class="org-right">0.019</td>
 <td class="org-right">1</td>
 <td class="org-right">27</td>
</tr> <tr> <td class="org-right">96</td>
 <td class="org-left">Exercise 2.51 below</td>
 <td class="org-right">1.801</td>
 <td class="org-right">4</td>
 <td class="org-right">524</td>
</tr> <tr> <td class="org-right">97</td>
 <td class="org-left">Exercise 2.44 up-split</td>
 <td class="org-right">1.169</td>
 <td class="org-right">2</td>
 <td class="org-right">89</td>
</tr> <tr> <td class="org-right">98</td>
 <td class="org-left">Exercise 2.45 split</td>
 <td class="org-right">0.113</td>
 <td class="org-right">2</td>
 <td class="org-right">23</td>
</tr> <tr> <td class="org-right">99</td>
 <td class="org-left">Exercise 2.52 modify square-limit</td>
 <td class="org-right">0.450</td>
 <td class="org-right">2</td>
 <td class="org-right">58</td>
</tr> <tr> <td class="org-right">100</td>
 <td class="org-left">Exercise 2.53 quote introduction</td>
 <td class="org-right">0.008</td>
 <td class="org-right">1</td>
 <td class="org-right">11</td>
</tr> <tr> <td class="org-right">101</td>
 <td class="org-left">Exercise 2.54 equal? implementation</td>
 <td class="org-right">0.050</td>
 <td class="org-right">1</td>
 <td class="org-right">72</td>
</tr> <tr> <td class="org-right">102</td>
 <td class="org-left">Exercise 2.55 quote quote</td>
 <td class="org-right">0.000</td>
 <td class="org-right">1</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">103</td>
 <td class="org-left">Exercise 2.56 differentiation-exponentiation</td>
 <td class="org-right">0.393</td>
 <td class="org-right">2</td>
 <td class="org-right">65</td>
</tr> <tr> <td class="org-right">104</td>
 <td class="org-left">Exercise 2.57 differentiate-three-sum</td>
 <td class="org-right">0.560</td>
 <td class="org-right">3</td>
 <td class="org-right">147</td>
</tr> <tr> <td class="org-right">105</td>
 <td class="org-left">Exercise 2.58 infix-notation</td>
 <td class="org-right">0.112</td>
 <td class="org-right">1</td>
 <td class="org-right">161</td>
</tr> <tr> <td class="org-right">106</td>
 <td class="org-left">Exercise 2.59 union-set</td>
 <td class="org-right">0.277</td>
 <td class="org-right">2</td>
 <td class="org-right">6</td>
</tr> <tr> <td class="org-right">107</td>
 <td class="org-left">Exercise 2.60 duplicate-set</td>
 <td class="org-right">0.012</td>
 <td class="org-right">1</td>
 <td class="org-right">17</td>
</tr> <tr> <td class="org-right">108</td>
 <td class="org-left">Exercise 2.62 ordered-union-set (ordered list)</td>
 <td class="org-right">0.973</td>
 <td class="org-right">2</td>
 <td class="org-right">14</td>
</tr> <tr> <td class="org-right">109</td>
 <td class="org-left">Exercise 2.61 sets as ordered lists</td>
 <td class="org-right">0.004</td>
 <td class="org-right">1</td>
 <td class="org-right">6</td>
</tr> <tr> <td class="org-right">110</td>
 <td class="org-left">Exercise 2.63 tree->list (binary search tree)</td>
 <td class="org-right">0.078</td>
 <td class="org-right">1</td>
 <td class="org-right">113</td>
</tr> <tr> <td class="org-right">111</td>
 <td class="org-left">Exercise 2.64 balanced-tree</td>
 <td class="org-right">2.740</td>
 <td class="org-right">3</td>
 <td class="org-right">106</td>
</tr> <tr> <td class="org-right">112</td>
 <td class="org-left">Exercise 2.65 tree-union-set</td>
 <td class="org-right">9.785</td>
 <td class="org-right">2</td>
 <td class="org-right">47</td>
</tr> <tr> <td class="org-right">113</td>
 <td class="org-left">Exercise 2.66 tree-lookup</td>
 <td class="org-right">0.035</td>
 <td class="org-right">1</td>
 <td class="org-right">50</td>
</tr> <tr> <td class="org-right">114</td>
 <td class="org-left">Exercise 2.67 Huffman decode a simple message</td>
 <td class="org-right">0.303</td>
 <td class="org-right">3</td>
 <td class="org-right">108</td>
</tr> <tr> <td class="org-right">115</td>
 <td class="org-left">Exercise 2.68 Huffman encode a simple message</td>
 <td class="org-right">0.023</td>
 <td class="org-right">1</td>
 <td class="org-right">33</td>
</tr> <tr> <td class="org-right">116</td>
 <td class="org-left">Exercise 2.69 Generate Huffman tree</td>
 <td class="org-right">0.608</td>
 <td class="org-right">2</td>
 <td class="org-right">160</td>
</tr> <tr> <td class="org-right">117</td>
 <td class="org-left">Exercise 2.70 Generate a tree and encode a song</td>
 <td class="org-right">0.072</td>
 <td class="org-right">2</td>
 <td class="org-right">57</td>
</tr> <tr> <td class="org-right">118</td>
 <td class="org-left">Exercise 2.71 Huffman tree for frequencies 5 and 10</td>
 <td class="org-right">0.258</td>
 <td class="org-right">2</td>
 <td class="org-right">202</td>
</tr> <tr> <td class="org-right">119</td>
 <td class="org-left">Exercise 2.72 Huffman order of growth</td>
 <td class="org-right">0.050</td>
 <td class="org-right">2</td>
 <td class="org-right">26</td>
</tr> <tr> <td class="org-right">120</td>
 <td class="org-left">Exercise 2.73 data-driven-deriv</td>
 <td class="org-right">0.605</td>
 <td class="org-right">2</td>
 <td class="org-right">189</td>
</tr> <tr> <td class="org-right">121</td>
 <td class="org-left">Exercise 2.74 Insatiable Enterprises</td>
 <td class="org-right">0.410</td>
 <td class="org-right">4</td>
 <td class="org-right">171</td>
</tr> <tr> <td class="org-right">122</td>
 <td class="org-left">Exercise 2.75 make-from-mag-ang message passing</td>
 <td class="org-right">0.019</td>
 <td class="org-right">1</td>
 <td class="org-right">28</td>
</tr> <tr> <td class="org-right">123</td>
 <td class="org-left">Exercise 2.76 types or functions?</td>
 <td class="org-right">0.003</td>
 <td class="org-right">1</td>
 <td class="org-right">5</td>
</tr> <tr> <td class="org-right">124</td>
 <td class="org-left">Exercise 2.77 generic-algebra-magnitude</td>
 <td class="org-right">0.772</td>
 <td class="org-right">3</td>
 <td class="org-right">190</td>
</tr> <tr> <td class="org-right">125</td>
 <td class="org-left">Exercise 2.78 Ordinary numbers for Scheme</td>
 <td class="org-right">0.212</td>
 <td class="org-right">2</td>
 <td class="org-right">67</td>
</tr> <tr> <td class="org-right">126</td>
 <td class="org-left">Exercise 2.79 generic-equality</td>
 <td class="org-right">1.786</td>
 <td class="org-right">2</td>
 <td class="org-right">28</td>
</tr> <tr> <td class="org-right">127</td>
 <td class="org-left">Exercise 2.80 Generic arithmetic zero?</td>
 <td class="org-right">0.056</td>
 <td class="org-right">1</td>
 <td class="org-right">80</td>
</tr> <tr> <td class="org-right">128</td>
 <td class="org-left">Exercise 2.81 coercion to-itself</td>
 <td class="org-right">0.749</td>
 <td class="org-right">3</td>
 <td class="org-right">330</td>
</tr> <tr> <td class="org-right">129</td>
 <td class="org-left">Exercise 2.82 three-argument-coercion</td>
 <td class="org-right">0.433</td>
 <td class="org-right">2</td>
 <td class="org-right">230</td>
</tr> <tr> <td class="org-right">130</td>
 <td class="org-left">Exercise 2.83 Numeric Tower and (raise)</td>
 <td class="org-right">0.717</td>
 <td class="org-right">3</td>
 <td class="org-right">116</td>
</tr> <tr> <td class="org-right">131</td>
 <td class="org-left">Exercise 2.84 Using  <code>raise</code> ( <code>raise-type</code>) in  <code>apply-generic</code></td>
 <td class="org-right">0.865</td>
 <td class="org-right">2</td>
 <td class="org-right">135</td>
</tr> <tr> <td class="org-right">132</td>
 <td class="org-left">Exercise 2.85 Dropping a type</td>
 <td class="org-right">3.089</td>
 <td class="org-right">5</td>
 <td class="org-right">507</td>
</tr> <tr> <td class="org-right">133</td>
 <td class="org-left">Exercise 2.86 Compound complex numbers</td>
 <td class="org-right">0.274</td>
 <td class="org-right">2</td>
 <td class="org-right">108</td>
</tr> <tr> <td class="org-right">134</td>
 <td class="org-left">Exercise 2.87 Generalized zero?</td>
 <td class="org-right">0.919</td>
 <td class="org-right">4</td>
 <td class="org-right">389</td>
</tr> <tr> <td class="org-right">135</td>
 <td class="org-left">Exercise 2.88 Subtraction of polynomials</td>
 <td class="org-right">0.646</td>
 <td class="org-right">3</td>
 <td class="org-right">50</td>
</tr> <tr> <td class="org-right">136</td>
 <td class="org-left">Exercise 2.89 Dense term-lists</td>
 <td class="org-right">0.083</td>
 <td class="org-right">1</td>
 <td class="org-right">120</td>
</tr> <tr> <td class="org-right">137</td>
 <td class="org-left">Exercise 2.90 Implementing dense polynomials as a separate p</td>
 <td class="org-right">0.400</td>
 <td class="org-right">2</td>
 <td class="org-right">148</td>
</tr> <tr> <td class="org-right">138</td>
 <td class="org-left">Exercise 2.91 Division of polynomials</td>
 <td class="org-right">0.111</td>
 <td class="org-right">2</td>
 <td class="org-right">103</td>
</tr> <tr> <td class="org-right">139</td>
 <td class="org-left">Exercise 2.92 Ordering of variables so that addition and mul</td>
 <td class="org-right">4.556</td>
 <td class="org-right">11</td>
 <td class="org-right">964</td>
</tr> <tr> <td class="org-right">140</td>
 <td class="org-left">Exercise 2.93 Rational polynomials</td>
 <td class="org-right">0.378</td>
 <td class="org-right">3</td>
 <td class="org-right">198</td>
</tr> <tr> <td class="org-right">141</td>
 <td class="org-left">Exercise 2.94 Greatest-common-divisor for polynomials</td>
 <td class="org-right">0.091</td>
 <td class="org-right">1</td>
 <td class="org-right">131</td>
</tr> <tr> <td class="org-right">142</td>
 <td class="org-left">Exercise 2.95 Illustrate the non-integer problem</td>
 <td class="org-right">0.450</td>
 <td class="org-right">2</td>
 <td class="org-right">149</td>
</tr> <tr> <td class="org-right">143</td>
 <td class="org-left">Exercise 2.96 Integerizing factor</td>
 <td class="org-right">0.325</td>
 <td class="org-right">2</td>
 <td class="org-right">275</td>
</tr> <tr> <td class="org-right">144</td>
 <td class="org-left">Exercise 2.97 Reduction of polynomials</td>
 <td class="org-right">0.201</td>
 <td class="org-right">1</td>
 <td class="org-right">140</td>
</tr> <tr> <td class="org-right">145</td>
 <td class="org-left">Exercise 3.1 accumulators</td>
 <td class="org-right">0.425</td>
 <td class="org-right">2</td>
 <td class="org-right">53</td>
</tr> <tr> <td class="org-right">146</td>
 <td class="org-left">Exercise 3.2 make-monitored</td>
 <td class="org-right">0.027</td>
 <td class="org-right">1</td>
 <td class="org-right">39</td>
</tr> <tr> <td class="org-right">147</td>
 <td class="org-left">Exercise 3.3 password protection</td>
 <td class="org-right">0.010</td>
 <td class="org-right">1</td>
 <td class="org-right">14</td>
</tr> <tr> <td class="org-right">148</td>
 <td class="org-left">Exercise 3.4 call-the-cops</td>
 <td class="org-right">0.010</td>
 <td class="org-right">1</td>
 <td class="org-right">15</td>
</tr> <tr> <td class="org-right">149</td>
 <td class="org-left">Exercise 3.5 Monte-Carlo</td>
 <td class="org-right">0.528</td>
 <td class="org-right">2</td>
 <td class="org-right">98</td>
</tr> <tr> <td class="org-right">150</td>
 <td class="org-left">Exercise 3.6 reset a prng</td>
 <td class="org-right">0.479</td>
 <td class="org-right">2</td>
 <td class="org-right">68</td>
</tr> <tr> <td class="org-right">151</td>
 <td class="org-left">Exercise 3.7 Joint accounts</td>
 <td class="org-right">0.059</td>
 <td class="org-right">1</td>
 <td class="org-right">85</td>
</tr> <tr> <td class="org-right">152</td>
 <td class="org-left">Exercise 3.8 Right-to-left vs Left-to-right</td>
 <td class="org-right">0.026</td>
 <td class="org-right">1</td>
 <td class="org-right">38</td>
</tr> <tr> <td class="org-right">153</td>
 <td class="org-left">Exercise 3.9 Environment structures</td>
 <td class="org-right">21.030</td>
 <td class="org-right">10</td>
 <td class="org-right">1100</td>
</tr> <tr> <td class="org-right">154</td>
 <td class="org-left">Exercise 3.10 Using  <code>let</code> to create state variables</td>
 <td class="org-right">4.933</td>
 <td class="org-right">2</td>
 <td class="org-right">138</td>
</tr> <tr> <td class="org-right">155</td>
 <td class="org-left">Exercise 3.11 Internal definitions</td>
 <td class="org-right">0.994</td>
 <td class="org-right">2</td>
 <td class="org-right">219</td>
</tr> <tr> <td class="org-right">156</td>
 <td class="org-left">Exercise 3.12 Drawing  <code>append!</code></td>
 <td class="org-right">2.966</td>
 <td class="org-right">3</td>
 <td class="org-right">347</td>
</tr> <tr> <td class="org-right">157</td>
 <td class="org-left">Exercise 3.13  <code>make-cycle</code></td>
 <td class="org-right">0.010</td>
 <td class="org-right">1</td>
 <td class="org-right">14</td>
</tr> <tr> <td class="org-right">158</td>
 <td class="org-left">Exercise 3.14  <code>mystery</code></td>
 <td class="org-right">0.385</td>
 <td class="org-right">2</td>
 <td class="org-right">77</td>
</tr> <tr> <td class="org-right">159</td>
 <td class="org-left">Exercise 3.15  <code>set-to-wow!</code></td>
 <td class="org-right">1.942</td>
 <td class="org-right">3</td>
 <td class="org-right">117</td>
</tr> <tr> <td class="org-right">160</td>
 <td class="org-left">Exercise 3.16  <code>count-pairs</code></td>
 <td class="org-right">0.171</td>
 <td class="org-right">1</td>
 <td class="org-right">118</td>
</tr> <tr> <td class="org-right">161</td>
 <td class="org-left">Exercise 3.17 Real  <code>count-pairs</code></td>
 <td class="org-right">0.029</td>
 <td class="org-right">1</td>
 <td class="org-right">42</td>
</tr> <tr> <td class="org-right">162</td>
 <td class="org-left">Exercise 3.18 Finding cycles</td>
 <td class="org-right">0.012</td>
 <td class="org-right">1</td>
 <td class="org-right">17</td>
</tr> <tr> <td class="org-right">163</td>
 <td class="org-left">Exercise 3.19 Efficient finding cycles</td>
 <td class="org-right">0.934</td>
 <td class="org-right">2</td>
 <td class="org-right">205</td>
</tr> <tr> <td class="org-right">164</td>
 <td class="org-left">Exercise 3.20 Procedural  <code>set-car!</code></td>
 <td class="org-right">0.633</td>
 <td class="org-right">2</td>
 <td class="org-right">121</td>
</tr> <tr> <td class="org-right">165</td>
 <td class="org-left">Exercise 3.21 queues</td>
 <td class="org-right">0.021</td>
 <td class="org-right">1</td>
 <td class="org-right">30</td>
</tr> <tr> <td class="org-right">166</td>
 <td class="org-left">Exercise 3.22 procedural queue</td>
 <td class="org-right">0.294</td>
 <td class="org-right">2</td>
 <td class="org-right">67</td>
</tr> <tr> <td class="org-right">167</td>
 <td class="org-left">Exercise 3.23 dequeue</td>
 <td class="org-right">0.049</td>
 <td class="org-right">2</td>
 <td class="org-right">71</td>
</tr> <tr> <td class="org-right">168</td>
 <td class="org-left">Exercise 3.24 tolerant tables</td>
 <td class="org-right">0.780</td>
 <td class="org-right">3</td>
 <td class="org-right">33</td>
</tr> <tr> <td class="org-right">169</td>
 <td class="org-left">Exercise 3.25 multilevel tables</td>
 <td class="org-right">2.103</td>
 <td class="org-right">2</td>
 <td class="org-right">486</td>
</tr> <tr> <td class="org-right">170</td>
 <td class="org-left">Exercise 3.26 binary tree table</td>
 <td class="org-right">0.013</td>
 <td class="org-right">1</td>
 <td class="org-right">18</td>
</tr> <tr> <td class="org-right">171</td>
 <td class="org-left">Exercise 3.27 memoization</td>
 <td class="org-right">0.802</td>
 <td class="org-right">2</td>
 <td class="org-right">2</td>
</tr> <tr> <td class="org-right">172</td>
 <td class="org-left">Exercise 3.28 primitive or-gate</td>
 <td class="org-right">1.316</td>
 <td class="org-right">2</td>
 <td class="org-right">783</td>
</tr> <tr> <td class="org-right">173</td>
 <td class="org-left">Exercise 3.29 Compound or-gate</td>
 <td class="org-right">0.001</td>
 <td class="org-right">1</td>
 <td class="org-right">2</td>
</tr> <tr> <td class="org-right">174</td>
 <td class="org-left">Exercise 3.30 ripple-carry adder</td>
 <td class="org-right">0.009</td>
 <td class="org-right">1</td>
 <td class="org-right">13</td>
</tr> <tr> <td class="org-right">175</td>
 <td class="org-left">Exercise 3.31 Initial propagation</td>
 <td class="org-right">0.013</td>
 <td class="org-right">1</td>
 <td class="org-right">18</td>
</tr> <tr> <td class="org-right">176</td>
 <td class="org-left">Exercise 3.32 Order matters</td>
 <td class="org-right">0.007</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">177</td>
 <td class="org-left">Exercise 3.33 averager constraint</td>
 <td class="org-right">9.460</td>
 <td class="org-right">3</td>
 <td class="org-right">198</td>
</tr> <tr> <td class="org-right">178</td>
 <td class="org-left">Exercise 3.34 Wrong squarer</td>
 <td class="org-right">0.042</td>
 <td class="org-right">1</td>
 <td class="org-right">61</td>
</tr> <tr> <td class="org-right">179</td>
 <td class="org-left">Exercise 3.35 Correct squarer</td>
 <td class="org-right">0.012</td>
 <td class="org-right">1</td>
 <td class="org-right">17</td>
</tr> <tr> <td class="org-right">180</td>
 <td class="org-left">Exercise 3.36 Connector environment diagram</td>
 <td class="org-right">3.319</td>
 <td class="org-right">3</td>
 <td class="org-right">263</td>
</tr> <tr> <td class="org-right">181</td>
 <td class="org-left">Exercise 3.37 Expression-based constraints</td>
 <td class="org-right">0.037</td>
 <td class="org-right">1</td>
 <td class="org-right">53</td>
</tr> <tr> <td class="org-right">182</td>
 <td class="org-left">Exercise 3.38 Timing</td>
 <td class="org-right">0.061</td>
 <td class="org-right">1</td>
 <td class="org-right">88</td>
</tr> <tr> <td class="org-right">183</td>
 <td class="org-left">Exercise 3.39 Serializer</td>
 <td class="org-right">1.266</td>
 <td class="org-right">4</td>
 <td class="org-right">269</td>
</tr> <tr> <td class="org-right">184</td>
 <td class="org-left">Exercise 3.40 Three parallel multiplications</td>
 <td class="org-right">5.973</td>
 <td class="org-right">3</td>
 <td class="org-right">332</td>
</tr> <tr> <td class="org-right">185</td>
 <td class="org-left">Exercise 3.41 Better protected account</td>
 <td class="org-right">4.229</td>
 <td class="org-right">2</td>
 <td class="org-right">97</td>
</tr> <tr> <td class="org-right">186</td>
 <td class="org-left">Exercise 3.42 Saving on serializers</td>
 <td class="org-right">0.023</td>
 <td class="org-right">1</td>
 <td class="org-right">33</td>
</tr> <tr> <td class="org-right">187</td>
 <td class="org-left">Exercise 3.43 Multiple serializations</td>
 <td class="org-right">0.040</td>
 <td class="org-right">1</td>
 <td class="org-right">58</td>
</tr> <tr> <td class="org-right">188</td>
 <td class="org-left">Exercise 3.44 Transfer money</td>
 <td class="org-right">0.005</td>
 <td class="org-right">1</td>
 <td class="org-right">7</td>
</tr> <tr> <td class="org-right">189</td>
 <td class="org-left">Exercise 3.45 new plus old serializers</td>
 <td class="org-right">0.004</td>
 <td class="org-right">1</td>
 <td class="org-right">6</td>
</tr> <tr> <td class="org-right">190</td>
 <td class="org-left">Exercise 3.46 broken test-and-set!</td>
 <td class="org-right">0.007</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">191</td>
 <td class="org-left">Exercise 3.47 semaphores</td>
 <td class="org-right">1.044</td>
 <td class="org-right">2</td>
 <td class="org-right">53</td>
</tr> <tr> <td class="org-right">192</td>
 <td class="org-left">Exercise 3.48 serialized-exchange deadlock</td>
 <td class="org-right">0.022</td>
 <td class="org-right">1</td>
 <td class="org-right">31</td>
</tr> <tr> <td class="org-right">193</td>
 <td class="org-left">Exercise 3.49 When numbering accounts doesn’t work</td>
 <td class="org-right">0.008</td>
 <td class="org-right">1</td>
 <td class="org-right">11</td>
</tr> <tr> <td class="org-right">194</td>
 <td class="org-left">Exercise 3.50 stream-map multiple arguments</td>
 <td class="org-right">0.317</td>
 <td class="org-right">3</td>
 <td class="org-right">96</td>
</tr> <tr> <td class="org-right">195</td>
 <td class="org-left">Exercise 3.51 stream-show</td>
 <td class="org-right">0.007</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">196</td>
 <td class="org-left">Exercise 3.52 streams with mind-boggling</td>
 <td class="org-right">0.034</td>
 <td class="org-right">1</td>
 <td class="org-right">49</td>
</tr> <tr> <td class="org-right">197</td>
 <td class="org-left">Exercise 3.53 stream power of two</td>
 <td class="org-right">0.016</td>
 <td class="org-right">1</td>
 <td class="org-right">23</td>
</tr> <tr> <td class="org-right">198</td>
 <td class="org-left">Exercise 3.54 mul-streams</td>
 <td class="org-right">0.005</td>
 <td class="org-right">1</td>
 <td class="org-right">7</td>
</tr> <tr> <td class="org-right">199</td>
 <td class="org-left">Exercise 3.55 streams partial-sums</td>
 <td class="org-right">0.013</td>
 <td class="org-right">1</td>
 <td class="org-right">18</td>
</tr> <tr> <td class="org-right">200</td>
 <td class="org-left">Exercise 3.56 Hamming’s streams-merge</td>
 <td class="org-right">0.015</td>
 <td class="org-right">1</td>
 <td class="org-right">21</td>
</tr> <tr> <td class="org-right">201</td>
 <td class="org-left">Exercise 3.57 exponential additions fibs</td>
 <td class="org-right">0.007</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">202</td>
 <td class="org-left">Exercise 3.58 Cryptic stream</td>
 <td class="org-right">0.010</td>
 <td class="org-right">1</td>
 <td class="org-right">14</td>
</tr> <tr> <td class="org-right">203</td>
 <td class="org-left">Exercise 3.59 power series</td>
 <td class="org-right">0.422</td>
 <td class="org-right">2</td>
 <td class="org-right">30</td>
</tr> <tr> <td class="org-right">204</td>
 <td class="org-left">Exercise 3.60 mul-series</td>
 <td class="org-right">0.048</td>
 <td class="org-right">1</td>
 <td class="org-right">69</td>
</tr> <tr> <td class="org-right">205</td>
 <td class="org-left">Exercise 3.61 power-series-inversion</td>
 <td class="org-right">0.087</td>
 <td class="org-right">1</td>
 <td class="org-right">126</td>
</tr> <tr> <td class="org-right">206</td>
 <td class="org-left">Exercise 3.62 div-series</td>
 <td class="org-right">0.006</td>
 <td class="org-right">1</td>
 <td class="org-right">8</td>
</tr> <tr> <td class="org-right">207</td>
 <td class="org-left">Exercise 3.63 sqrt-stream</td>
 <td class="org-right">0.299</td>
 <td class="org-right">2</td>
 <td class="org-right">8</td>
</tr> <tr> <td class="org-right">208</td>
 <td class="org-left">Exercise 3.64 stream-limit</td>
 <td class="org-right">1.546</td>
 <td class="org-right">2</td>
 <td class="org-right">55</td>
</tr> <tr> <td class="org-right">209</td>
 <td class="org-left">Exercise 3.65 approximating logarithm</td>
 <td class="org-right">0.039</td>
 <td class="org-right">1</td>
 <td class="org-right">56</td>
</tr> <tr> <td class="org-right">210</td>
 <td class="org-left">Exercise 3.66 lazy pairs</td>
 <td class="org-right">0.515</td>
 <td class="org-right">2</td>
 <td class="org-right">107</td>
</tr> <tr> <td class="org-right">211</td>
 <td class="org-left">Exercise 3.67 all possible pairs</td>
 <td class="org-right">0.010</td>
 <td class="org-right">1</td>
 <td class="org-right">14</td>
</tr> <tr> <td class="org-right">212</td>
 <td class="org-left">Exercise 3.68 pairs-louis</td>
 <td class="org-right">0.012</td>
 <td class="org-right">1</td>
 <td class="org-right">17</td>
</tr> <tr> <td class="org-right">213</td>
 <td class="org-left">Exercise 3.70 merge-weighted</td>
 <td class="org-right">0.522</td>
 <td class="org-right">2</td>
 <td class="org-right">188</td>
</tr> <tr> <td class="org-right">214</td>
 <td class="org-left">Exercise 3.71 Ramanujan numbers</td>
 <td class="org-right">0.035</td>
 <td class="org-right">1</td>
 <td class="org-right">51</td>
</tr> <tr> <td class="org-right">215</td>
 <td class="org-left">Exercise 3.72 Ramanujan 3-numbers</td>
 <td class="org-right">0.901</td>
 <td class="org-right">2</td>
 <td class="org-right">187</td>
</tr> <tr> <td class="org-right">216</td>
 <td class="org-left">Figure 3.32</td>
 <td class="org-right">0.022</td>
 <td class="org-right">1</td>
 <td class="org-right">32</td>
</tr> <tr> <td class="org-right">217</td>
 <td class="org-left">Exercise 3.73 RC-circuit</td>
 <td class="org-right">0.090</td>
 <td class="org-right">1</td>
 <td class="org-right">130</td>
</tr> <tr> <td class="org-right">218</td>
 <td class="org-left">Exercise 3.74 zero-crossings</td>
 <td class="org-right">0.153</td>
 <td class="org-right">1</td>
 <td class="org-right">221</td>
</tr> <tr> <td class="org-right">219</td>
 <td class="org-left">Exercise 3.75 filtering signals</td>
 <td class="org-right">0.056</td>
 <td class="org-right">1</td>
 <td class="org-right">81</td>
</tr> <tr> <td class="org-right">220</td>
 <td class="org-left">Exercise 3.76 stream-smooth</td>
 <td class="org-right">0.073</td>
 <td class="org-right">2</td>
 <td class="org-right">36</td>
</tr> <tr> <td class="org-right">221</td>
 <td class="org-left">Exercise 3.77</td>
 <td class="org-right">0.038</td>
 <td class="org-right">1</td>
 <td class="org-right">55</td>
</tr> <tr> <td class="org-right">222</td>
 <td class="org-left">Exercise 3.78 second order differential equation</td>
 <td class="org-right">0.039</td>
 <td class="org-right">1</td>
 <td class="org-right">56</td>
</tr> <tr> <td class="org-right">223</td>
 <td class="org-left">Exercise 3.79 general second-order ode</td>
 <td class="org-right">0.007</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">224</td>
 <td class="org-left">Figure 3.36</td>
 <td class="org-right">0.058</td>
 <td class="org-right">1</td>
 <td class="org-right">84</td>
</tr> <tr> <td class="org-right">225</td>
 <td class="org-left">Exercise 3.80 RLC circuit</td>
 <td class="org-right">0.013</td>
 <td class="org-right">1</td>
 <td class="org-right">19</td>
</tr> <tr> <td class="org-right">226</td>
 <td class="org-left">Exercise 3.81  renerator-in-streams</td>
 <td class="org-right">0.040</td>
 <td class="org-right">1</td>
 <td class="org-right">57</td>
</tr> <tr> <td class="org-right">227</td>
 <td class="org-left">Exercise 3.82 streams Monte-Carlo</td>
 <td class="org-right">0.378</td>
 <td class="org-right">2</td>
 <td class="org-right">57</td>
</tr> <tr> <td class="org-right">228</td>
 <td class="org-left">Exercise 4.1 list-of-values ordered</td>
 <td class="org-right">0.437</td>
 <td class="org-right">2</td>
 <td class="org-right">14</td>
</tr> <tr> <td class="org-right">229</td>
 <td class="org-left">Exercise 4.2 application before assignments</td>
 <td class="org-right">0.021</td>
 <td class="org-right">1</td>
 <td class="org-right">30</td>
</tr> <tr> <td class="org-right">230</td>
 <td class="org-left">Exercise 4.3 data-directed eval</td>
 <td class="org-right">0.030</td>
 <td class="org-right">1</td>
 <td class="org-right">43</td>
</tr> <tr> <td class="org-right">231</td>
 <td class="org-left">Exercise 4.4 eval-and and eval-or</td>
 <td class="org-right">0.035</td>
 <td class="org-right">1</td>
 <td class="org-right">50</td>
</tr> <tr> <td class="org-right">232</td>
 <td class="org-left">Exercise 4.5 cond with arrow</td>
 <td class="org-right">12.765</td>
 <td class="org-right">7</td>
 <td class="org-right">1252</td>
</tr> <tr> <td class="org-right">233</td>
 <td class="org-left">Exercise 4.6 Implementing let</td>
 <td class="org-right">0.019</td>
 <td class="org-right">1</td>
 <td class="org-right">27</td>
</tr> <tr> <td class="org-right">234</td>
 <td class="org-left">Exercise 4.7 Implementing let*</td>
 <td class="org-right">0.046</td>
 <td class="org-right">1</td>
 <td class="org-right">66</td>
</tr> <tr> <td class="org-right">235</td>
 <td class="org-left">Exercise 4.8 Implementing named let</td>
 <td class="org-right">0.070</td>
 <td class="org-right">1</td>
 <td class="org-right">101</td>
</tr> <tr> <td class="org-right">236</td>
 <td class="org-left">Exercise 4.9 Implementing until</td>
 <td class="org-right">0.928</td>
 <td class="org-right">3</td>
 <td class="org-right">102</td>
</tr> <tr> <td class="org-right">237</td>
 <td class="org-left">Exercise 4.10 Modifying syntax</td>
 <td class="org-right">14.168</td>
 <td class="org-right">3</td>
 <td class="org-right">462</td>
</tr> <tr> <td class="org-right">238</td>
 <td class="org-left">Exercise 4.11 Environment as a list of bindings</td>
 <td class="org-right">4.368</td>
 <td class="org-right">2</td>
 <td class="org-right">194</td>
</tr> <tr> <td class="org-right">239</td>
 <td class="org-left">Exercise 4.12 Better abstractions for setting a value</td>
 <td class="org-right">0.529</td>
 <td class="org-right">2</td>
 <td class="org-right">120</td>
</tr> <tr> <td class="org-right">240</td>
 <td class="org-left">Exercise 4.13 Implementing  <code>make-unbound!</code></td>
 <td class="org-right">0.550</td>
 <td class="org-right">2</td>
 <td class="org-right">149</td>
</tr> <tr> <td class="org-right">241</td>
 <td class="org-left">Exercise 4.14 meta map versus built-in map</td>
 <td class="org-right">0.004</td>
 <td class="org-right">1</td>
 <td class="org-right">6</td>
</tr> <tr> <td class="org-right">242</td>
 <td class="org-left">Exercise 4.15 The  <code>halts?</code> predicate</td>
 <td class="org-right">0.018</td>
 <td class="org-right">1</td>
 <td class="org-right">26</td>
</tr> <tr> <td class="org-right">243</td>
 <td class="org-left">Exercise 4.16 Simultaneous internal definitions</td>
 <td class="org-right">0.162</td>
 <td class="org-right">2</td>
 <td class="org-right">177</td>
</tr> <tr> <td class="org-right">244</td>
 <td class="org-left">Exercise 4.17 Environment with simultaneous definitions</td>
 <td class="org-right">0.036</td>
 <td class="org-right">1</td>
 <td class="org-right">52</td>
</tr> <tr> <td class="org-right">245</td>
 <td class="org-left">Exercise 4.18 Alternative scanning</td>
 <td class="org-right">0.018</td>
 <td class="org-right">1</td>
 <td class="org-right">26</td>
</tr> <tr> <td class="org-right">246</td>
 <td class="org-left">Exercise 4.19 Mutual simultaneous definitions</td>
 <td class="org-right">0.220</td>
 <td class="org-right">2</td>
 <td class="org-right">96</td>
</tr> <tr> <td class="org-right">247</td>
 <td class="org-left">Exercise 4.20 letrec</td>
 <td class="org-right">0.206</td>
 <td class="org-right">2</td>
 <td class="org-right">195</td>
</tr> <tr> <td class="org-right">248</td>
 <td class="org-left">Exercise 4.21 Y-combinator</td>
 <td class="org-right">0.013</td>
 <td class="org-right">1</td>
 <td class="org-right">18</td>
</tr> <tr> <td class="org-right">249</td>
 <td class="org-left">Exercise 4.22 Extending evaluator to support  <code>let</code></td>
 <td class="org-right">1.768</td>
 <td class="org-right">3</td>
 <td class="org-right">144</td>
</tr> <tr> <td class="org-right">250</td>
 <td class="org-left">Exercise 4.23 Analysing sequences</td>
 <td class="org-right">0.005</td>
 <td class="org-right">1</td>
 <td class="org-right">7</td>
</tr> <tr> <td class="org-right">251</td>
 <td class="org-left">Exercise 4.24 Analysis time test</td>
 <td class="org-right">0.022</td>
 <td class="org-right">1</td>
 <td class="org-right">32</td>
</tr> <tr> <td class="org-right">252</td>
 <td class="org-left">Exercise 4.25 lazy factorial</td>
 <td class="org-right">0.034</td>
 <td class="org-right">1</td>
 <td class="org-right">49</td>
</tr> <tr> <td class="org-right">253</td>
 <td class="org-left">Exercise 4.26 unless as a special form</td>
 <td class="org-right">0.313</td>
 <td class="org-right">1</td>
 <td class="org-right">451</td>
</tr> <tr> <td class="org-right">254</td>
 <td class="org-left">Exercise 4.27 Working with mutation in lazy interpreters</td>
 <td class="org-right">0.515</td>
 <td class="org-right">2</td>
 <td class="org-right">112</td>
</tr> <tr> <td class="org-right">255</td>
 <td class="org-left">Exercise 4.28 Eval before applying</td>
 <td class="org-right">0.005</td>
 <td class="org-right">1</td>
 <td class="org-right">7</td>
</tr> <tr> <td class="org-right">256</td>
 <td class="org-left">Exercise 4.29 Lazy evaluation is slow without memoization</td>
 <td class="org-right">0.035</td>
 <td class="org-right">1</td>
 <td class="org-right">50</td>
</tr> <tr> <td class="org-right">257</td>
 <td class="org-left">Exercise 4.30 Lazy sequences</td>
 <td class="org-right">0.153</td>
 <td class="org-right">2</td>
 <td class="org-right">74</td>
</tr> <tr> <td class="org-right">258</td>
 <td class="org-left">Exercise 4.31 Lazy arguments with syntax extension</td>
 <td class="org-right">0.092</td>
 <td class="org-right">2</td>
 <td class="org-right">112</td>
</tr> <tr> <td class="org-right">259</td>
 <td class="org-left">Exercise 4.32 streams versus lazy lists</td>
 <td class="org-right">0.503</td>
 <td class="org-right">2</td>
 <td class="org-right">87</td>
</tr> <tr> <td class="org-right">260</td>
 <td class="org-left">Exercise 4.33 quoted lazy lists</td>
 <td class="org-right">0.097</td>
 <td class="org-right">2</td>
 <td class="org-right">103</td>
</tr> <tr> <td class="org-right">261</td>
 <td class="org-left">Exercise 4.34 printing lazy lists</td>
 <td class="org-right">0.219</td>
 <td class="org-right">3</td>
 <td class="org-right">205</td>
</tr> <tr> <td class="org-right">262</td>
 <td class="org-left">Exercise 4.50 The  <code>ramb</code> operator</td>
 <td class="org-right">0.813</td>
 <td class="org-right">4</td>
 <td class="org-right">266</td>
</tr> <tr> <td class="org-right">263</td>
 <td class="org-left">Exercise 4.35  <code>an-integer-between</code> and Pythagorean triples</td>
 <td class="org-right">0.103</td>
 <td class="org-right">2</td>
 <td class="org-right">138</td>
</tr> <tr> <td class="org-right">264</td>
 <td class="org-left">Exercise 3.69 triples</td>
 <td class="org-right">0.115</td>
 <td class="org-right">2</td>
 <td class="org-right">85</td>
</tr> <tr> <td class="org-right">265</td>
 <td class="org-left">Exercise 4.36 infinite search for Pythagorean triples</td>
 <td class="org-right">0.011</td>
 <td class="org-right">1</td>
 <td class="org-right">16</td>
</tr> <tr> <td class="org-right">266</td>
 <td class="org-left">Exercise 4.37 another method for triples</td>
 <td class="org-right">0.035</td>
 <td class="org-right">1</td>
 <td class="org-right">51</td>
</tr> <tr> <td class="org-right">267</td>
 <td class="org-left">Exercise 4.38 Logical puzzle - Not same floor</td>
 <td class="org-right">0.027</td>
 <td class="org-right">1</td>
 <td class="org-right">39</td>
</tr> <tr> <td class="org-right">268</td>
 <td class="org-left">Exercise 4.39 Order of restrictions</td>
 <td class="org-right">0.003</td>
 <td class="org-right">1</td>
 <td class="org-right">5</td>
</tr> <tr> <td class="org-right">269</td>
 <td class="org-left">Exercise 4.40 People to floor assignment</td>
 <td class="org-right">0.019</td>
 <td class="org-right">1</td>
 <td class="org-right">28</td>
</tr> <tr> <td class="org-right">270</td>
 <td class="org-left">Exercise 4.41 Ordinary Scheme to solve the problem</td>
 <td class="org-right">0.072</td>
 <td class="org-right">1</td>
 <td class="org-right">103</td>
</tr> <tr> <td class="org-right">271</td>
 <td class="org-left">Exercise 4.42 The liars puzzle</td>
 <td class="org-right">0.503</td>
 <td class="org-right">1</td>
 <td class="org-right">81</td>
</tr> <tr> <td class="org-right">272</td>
 <td class="org-left">Exercise 4.43 Problematical Recreations</td>
 <td class="org-right">0.052</td>
 <td class="org-right">1</td>
 <td class="org-right">75</td>
</tr> <tr> <td class="org-right">273</td>
 <td class="org-left">Exercise 4.44 Nondeterministic eight queens</td>
 <td class="org-right">0.074</td>
 <td class="org-right">1</td>
 <td class="org-right">106</td>
</tr> <tr> <td class="org-right">274</td>
 <td class="org-left">Exercise 4.45 Five parses</td>
 <td class="org-right">0.186</td>
 <td class="org-right">3</td>
 <td class="org-right">145</td>
</tr> <tr> <td class="org-right">275</td>
 <td class="org-left">Exercise 4.46 Order of parsing</td>
 <td class="org-right">0.007</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">276</td>
 <td class="org-left">Exercise 4.47 Parse verb phrase by Louis</td>
 <td class="org-right">0.013</td>
 <td class="org-right">1</td>
 <td class="org-right">18</td>
</tr> <tr> <td class="org-right">277</td>
 <td class="org-left">Exercise 4.48 Extending the grammar</td>
 <td class="org-right">0.037</td>
 <td class="org-right">1</td>
 <td class="org-right">1</td>
</tr> <tr> <td class="org-right">278</td>
 <td class="org-left">Exercise 4.49 Alyssa’s generator</td>
 <td class="org-right">0.031</td>
 <td class="org-right">1</td>
 <td class="org-right">45</td>
</tr> <tr> <td class="org-right">279</td>
 <td class="org-left">Exercise 4.51 Implementing  <code>permanent-set!</code></td>
 <td class="org-right">0.030</td>
 <td class="org-right">1</td>
 <td class="org-right">43</td>
</tr> <tr> <td class="org-right">280</td>
 <td class="org-left">Exercise 4.52  <code>if-fail</code></td>
 <td class="org-right">0.063</td>
 <td class="org-right">1</td>
 <td class="org-right">91</td>
</tr> <tr> <td class="org-right">281</td>
 <td class="org-left">Exercise 4.53 test evaluation</td>
 <td class="org-right">0.005</td>
 <td class="org-right">1</td>
 <td class="org-right">7</td>
</tr> <tr> <td class="org-right">282</td>
 <td class="org-left">Exercise 4.54  <code>analyze-require</code></td>
 <td class="org-right">0.468</td>
 <td class="org-right">2</td>
 <td class="org-right">31</td>
</tr> <tr> <td class="org-right">283</td>
 <td class="org-left">Exercise 4.55 Simple queries</td>
 <td class="org-right">0.258</td>
 <td class="org-right">2</td>
 <td class="org-right">372</td>
</tr> <tr> <td class="org-right">284</td>
 <td class="org-left">Exercise 4.56 Compound queries</td>
 <td class="org-right">0.018</td>
 <td class="org-right">1</td>
 <td class="org-right">26</td>
</tr> <tr> <td class="org-right">285</td>
 <td class="org-left">Exercise 4.57 custom rules</td>
 <td class="org-right">0.147</td>
 <td class="org-right">3</td>
 <td class="org-right">112</td>
</tr> <tr> <td class="org-right">286</td>
 <td class="org-left">Exercise 4.58 big shot</td>
 <td class="org-right">0.025</td>
 <td class="org-right">1</td>
 <td class="org-right">36</td>
</tr> <tr> <td class="org-right">287</td>
 <td class="org-left">Exercise 4.59 meetings</td>
 <td class="org-right">0.031</td>
 <td class="org-right">1</td>
 <td class="org-right">45</td>
</tr> <tr> <td class="org-right">288</td>
 <td class="org-left">Exercise 4.60 pairs live near</td>
 <td class="org-right">0.016</td>
 <td class="org-right">1</td>
 <td class="org-right">23</td>
</tr> <tr> <td class="org-right">289</td>
 <td class="org-left">Exercise 4.61 next-to relation</td>
 <td class="org-right">0.008</td>
 <td class="org-right">1</td>
 <td class="org-right">11</td>
</tr> <tr> <td class="org-right">290</td>
 <td class="org-left">Exercise 4.62 last-pair</td>
 <td class="org-right">0.033</td>
 <td class="org-right">1</td>
 <td class="org-right">48</td>
</tr> <tr> <td class="org-right">291</td>
 <td class="org-left">Exercise 4.63 Genesis</td>
 <td class="org-right">0.423</td>
 <td class="org-right">2</td>
 <td class="org-right">40</td>
</tr> <tr> <td class="org-right">292</td>
 <td class="org-left">Figure 4.6 How the system works</td>
 <td class="org-right">0.022</td>
 <td class="org-right">1</td>
 <td class="org-right">31</td>
</tr> <tr> <td class="org-right">293</td>
 <td class="org-left">Exercise 4.64 broken outranked-by</td>
 <td class="org-right">0.065</td>
 <td class="org-right">1</td>
 <td class="org-right">94</td>
</tr> <tr> <td class="org-right">294</td>
 <td class="org-left">Exercise 4.65 second-degree subordinates</td>
 <td class="org-right">0.012</td>
 <td class="org-right">1</td>
 <td class="org-right">17</td>
</tr> <tr> <td class="org-right">295</td>
 <td class="org-left">Exercise 4.66 Ben’s accumulation</td>
 <td class="org-right">0.013</td>
 <td class="org-right">1</td>
 <td class="org-right">18</td>
</tr> <tr> <td class="org-right">296</td>
 <td class="org-left">Exercise 4.70 Cons-stream delays its second argument</td>
 <td class="org-right">0.167</td>
 <td class="org-right">3</td>
 <td class="org-right">79</td>
</tr> <tr> <td class="org-right">297</td>
 <td class="org-left">Exercise 4.72 interleave-stream</td>
 <td class="org-right">0.002</td>
 <td class="org-right">1</td>
 <td class="org-right">3</td>
</tr> <tr> <td class="org-right">298</td>
 <td class="org-left">Exercise 4.73 flatten-stream delays</td>
 <td class="org-right">0.006</td>
 <td class="org-right">1</td>
 <td class="org-right">8</td>
</tr> <tr> <td class="org-right">299</td>
 <td class="org-left">Exercise 4.67 loop detector</td>
 <td class="org-right">0.251</td>
 <td class="org-right">1</td>
 <td class="org-right">361</td>
</tr> <tr> <td class="org-right">300</td>
 <td class="org-left">Exercise 4.68 reverse rule</td>
 <td class="org-right">0.686</td>
 <td class="org-right">2</td>
 <td class="org-right">321</td>
</tr> <tr> <td class="org-right">301</td>
 <td class="org-left">Exercise 4.69 great grandchildren</td>
 <td class="org-right">0.080</td>
 <td class="org-right">2</td>
 <td class="org-right">65</td>
</tr> <tr> <td class="org-right">302</td>
 <td class="org-left">Exercise 4.71 Louis’ simple queries</td>
 <td class="org-right">0.134</td>
 <td class="org-right">2</td>
 <td class="org-right">69</td>
</tr> <tr> <td class="org-right">303</td>
 <td class="org-left">Exercise 4.74 Alyssa’s streams</td>
 <td class="org-right">0.044</td>
 <td class="org-right">1</td>
 <td class="org-right">64</td>
</tr> <tr> <td class="org-right">304</td>
 <td class="org-left">Exercise 4.75  <code>unique</code> special form</td>
 <td class="org-right">0.055</td>
 <td class="org-right">1</td>
 <td class="org-right">79</td>
</tr> <tr> <td class="org-right">305</td>
 <td class="org-left">Exercise 4.76 improving  <code>and</code></td>
 <td class="org-right">0.797</td>
 <td class="org-right">2</td>
 <td class="org-right">438</td>
</tr> <tr> <td class="org-right">306</td>
 <td class="org-left">Figure 5.2 Controller for a GCD Machine</td>
 <td class="org-right">0.167</td>
 <td class="org-right">3</td>
 <td class="org-right">124</td>
</tr> <tr> <td class="org-right">307</td>
 <td class="org-left">Exercise 5.1 Register machine plot</td>
 <td class="org-right">0.020</td>
 <td class="org-right">1</td>
 <td class="org-right">29</td>
</tr> <tr> <td class="org-right">308</td>
 <td class="org-left">Figure 5.1 Data paths for a Register Machine</td>
 <td class="org-right">0.599</td>
 <td class="org-right">2</td>
 <td class="org-right">115</td>
</tr> <tr> <td class="org-right">309</td>
 <td class="org-left">Exercise 5.2 Register machine language description of Exerci</td>
 <td class="org-right">0.006</td>
 <td class="org-right">1</td>
 <td class="org-right">8</td>
</tr> <tr> <td class="org-right">310</td>
 <td class="org-left">Exercise 5.3 Machine for  <code>sqrt</code> using Newton Method</td>
 <td class="org-right">0.306</td>
 <td class="org-right">2</td>
 <td class="org-right">286</td>
</tr> <tr> <td class="org-right">311</td>
 <td class="org-left">Exercise 5.4 Recursive register machines</td>
 <td class="org-right">1.001</td>
 <td class="org-right">4</td>
 <td class="org-right">274</td>
</tr> <tr> <td class="org-right">312</td>
 <td class="org-left">Exercise 5.5 Hand simulation for factorial and Fibonacci</td>
 <td class="org-right">0.110</td>
 <td class="org-right">1</td>
 <td class="org-right">158</td>
</tr> <tr> <td class="org-right">313</td>
 <td class="org-left">Exercise 5.6 Fibonacci machine extra instructions</td>
 <td class="org-right">0.011</td>
 <td class="org-right">1</td>
 <td class="org-right">16</td>
</tr> <tr> <td class="org-right">314</td>
 <td class="org-left">Exercise 5.7 Test the 5.4 machine on a simulator</td>
 <td class="org-right">0.458</td>
 <td class="org-right">2</td>
 <td class="org-right">133</td>
</tr> <tr> <td class="org-right">315</td>
 <td class="org-left">Exercise 5.8 Ambiguous labels</td>
 <td class="org-right">0.469</td>
 <td class="org-right">1</td>
 <td class="org-right">160</td>
</tr> <tr> <td class="org-right">316</td>
 <td class="org-left">Exercise 5.9 Prohibit (op)s on labels</td>
 <td class="org-right">0.017</td>
 <td class="org-right">1</td>
 <td class="org-right">25</td>
</tr> <tr> <td class="org-right">317</td>
 <td class="org-left">Exercise 5.10 Changing syntax</td>
 <td class="org-right">0.011</td>
 <td class="org-right">1</td>
 <td class="org-right">16</td>
</tr> <tr> <td class="org-right">318</td>
 <td class="org-left">Exercise 5.11 Save and restore</td>
 <td class="org-right">0.619</td>
 <td class="org-right">3</td>
 <td class="org-right">186</td>
</tr> <tr> <td class="org-right">319</td>
 <td class="org-left">Exercise 5.12 Data paths from controller</td>
 <td class="org-right">0.424</td>
 <td class="org-right">2</td>
 <td class="org-right">183</td>
</tr> <tr> <td class="org-right">320</td>
 <td class="org-left">Exercise 5.13 Registers from controller</td>
 <td class="org-right">0.470</td>
 <td class="org-right">2</td>
 <td class="org-right">101</td>
</tr> <tr> <td class="org-right">321</td>
 <td class="org-left">Exercise 1.3 Sum of squares</td>
 <td class="org-right">1.044</td>
 <td class="org-right">1</td>
 <td class="org-right">6</td>
</tr> <tr> <td class="org-right">322</td>
 <td class="org-left">Exercise 5.14 Profiling</td>
 <td class="org-right">0.347</td>
 <td class="org-right">2</td>
 <td class="org-right">57</td>
</tr> <tr> <td class="org-right">323</td>
 <td class="org-left">Exercise 5.15 Instruction counting</td>
 <td class="org-right">0.052</td>
 <td class="org-right">1</td>
 <td class="org-right">75</td>
</tr> <tr> <td class="org-right">324</td>
 <td class="org-left">Exercise 5.16 Tracing execution</td>
 <td class="org-right">0.058</td>
 <td class="org-right">1</td>
 <td class="org-right">83</td>
</tr> <tr> <td class="org-right">325</td>
 <td class="org-left">Exercise 5.18 Register tracing</td>
 <td class="org-right">0.631</td>
 <td class="org-right">2</td>
 <td class="org-right">90</td>
</tr> <tr> <td class="org-right">326</td>
 <td class="org-left">Exercise 5.19 Breakpoints</td>
 <td class="org-right">0.149</td>
 <td class="org-right">1</td>
 <td class="org-right">215</td>
</tr> <tr> <td class="org-right">327</td>
 <td class="org-left">Exercise 5.17 Printing labels</td>
 <td class="org-right">0.001</td>
 <td class="org-right">1</td>
 <td class="org-right">1</td>
</tr> <tr> <td class="org-right">328</td>
 <td class="org-left">Exercise 5.20 Drawing a list “ <code>(#1=(1 . 2) #1)</code>”</td>
 <td class="org-right">0.189</td>
 <td class="org-right">2</td>
 <td class="org-right">139</td>
</tr> <tr> <td class="org-right">329</td>
 <td class="org-left">Exercise 5.21 Register machines for list operations</td>
 <td class="org-right">0.617</td>
 <td class="org-right">2</td>
 <td class="org-right">115</td>
</tr> <tr> <td class="org-right">330</td>
 <td class="org-left">Exercise 5.22  <code>append</code> and  <code>append!</code> as register machines</td>
 <td class="org-right">0.047</td>
 <td class="org-right">1</td>
 <td class="org-right">68</td>
</tr> <tr> <td class="org-right">331</td>
 <td class="org-left">Exercise 5.23 Extending EC-evaluator with  <code>let</code> and  <code>cond</code></td>
 <td class="org-right">0.862</td>
 <td class="org-right">4</td>
 <td class="org-right">363</td>
</tr> <tr> <td class="org-right">332</td>
 <td class="org-left">Exercise 5.24 Making  <code>cond</code> a primitive</td>
 <td class="org-right">0.160</td>
 <td class="org-right">2</td>
 <td class="org-right">199</td>
</tr> <tr> <td class="org-right">333</td>
 <td class="org-left">Exercise 5.25 Normal-order (lazy) evaluation</td>
 <td class="org-right">1.010</td>
 <td class="org-right">4</td>
 <td class="org-right">342</td>
</tr> <tr> <td class="org-right">334</td>
 <td class="org-left">Exercise 5.26 Explore tail recursion with  <code>factorial</code></td>
 <td class="org-right">0.195</td>
 <td class="org-right">2</td>
 <td class="org-right">26</td>
</tr> <tr> <td class="org-right">335</td>
 <td class="org-left">Exercise 5.27 Stack depth for a recursive factorial</td>
 <td class="org-right">0.008</td>
 <td class="org-right">1</td>
 <td class="org-right">11</td>
</tr> <tr> <td class="org-right">336</td>
 <td class="org-left">Exercise 5.28 Interpreters without tail recursion</td>
 <td class="org-right">0.028</td>
 <td class="org-right">1</td>
 <td class="org-right">40</td>
</tr> <tr> <td class="org-right">337</td>
 <td class="org-left">Exercise 5.29 Stack in tree-recursive Fibonacci</td>
 <td class="org-right">0.015</td>
 <td class="org-right">1</td>
 <td class="org-right">21</td>
</tr> <tr> <td class="org-right">338</td>
 <td class="org-left">Exercise 5.30 Errors</td>
 <td class="org-right">0.615</td>
 <td class="org-right">3</td>
 <td class="org-right">147</td>
</tr> <tr> <td class="org-right">339</td>
 <td class="org-left">Exercise 5.31 a  <code>preserving</code> mechanism</td>
 <td class="org-right">0.417</td>
 <td class="org-right">2</td>
 <td class="org-right">161</td>
</tr> <tr> <td class="org-right">340</td>
 <td class="org-left">Exercise 5.32 symbol-lookup optimization</td>
 <td class="org-right">0.052</td>
 <td class="org-right">1</td>
 <td class="org-right">75</td>
</tr> <tr> <td class="org-right">341</td>
 <td class="org-left">Exercise 5.33 compiling  <code>factorial-alt</code></td>
 <td class="org-right">0.753</td>
 <td class="org-right">2</td>
 <td class="org-right">267</td>
</tr> <tr> <td class="org-right">342</td>
 <td class="org-left">Exercise 5.34 compiling iterative factorial</td>
 <td class="org-right">0.169</td>
 <td class="org-right">1</td>
 <td class="org-right">243</td>
</tr> <tr> <td class="org-right">343</td>
 <td class="org-left">Exercise 5.35 Decompilation</td>
 <td class="org-right">0.022</td>
 <td class="org-right">1</td>
 <td class="org-right">32</td>
</tr> <tr> <td class="org-right">344</td>
 <td class="org-left">Exercise 5.36 Order of evaluation</td>
 <td class="org-right">0.845</td>
 <td class="org-right">4</td>
 <td class="org-right">256</td>
</tr> <tr> <td class="org-right">345</td>
 <td class="org-left">Exercise 5.37  <code>preserving</code></td>
 <td class="org-right">0.135</td>
 <td class="org-right">1</td>
 <td class="org-right">194</td>
</tr> <tr> <td class="org-right">346</td>
 <td class="org-left">Exercise 5.38 open code primitives</td>
 <td class="org-right">0.914</td>
 <td class="org-right">3</td>
 <td class="org-right">378</td>
</tr> <tr> <td class="org-right">347</td>
 <td class="org-left">Exercise 5.41  <code>find-variable</code></td>
 <td class="org-right">0.028</td>
 <td class="org-right">1</td>
 <td class="org-right">40</td>
</tr> <tr> <td class="org-right">348</td>
 <td class="org-left">Exercise 5.39  <code>lexical-address-lookup</code></td>
 <td class="org-right">0.044</td>
 <td class="org-right">1</td>
 <td class="org-right">64</td>
</tr> <tr> <td class="org-right">349</td>
 <td class="org-left">Exercise 5.42 Rewrite  <code>compile-variable</code> and ~compile-assign</td>
 <td class="org-right">0.679</td>
 <td class="org-right">2</td>
 <td class="org-right">118</td>
</tr> <tr> <td class="org-right">350</td>
 <td class="org-left">Exercise 5.40 maintaining a compile-time environment</td>
 <td class="org-right">0.085</td>
 <td class="org-right">2</td>
 <td class="org-right">101</td>
</tr> <tr> <td class="org-right">351</td>
 <td class="org-left">Exercise 5.43 Scanning out defines</td>
 <td class="org-right">0.249</td>
 <td class="org-right">3</td>
 <td class="org-right">261</td>
</tr> <tr> <td class="org-right">352</td>
 <td class="org-left">Exercise 5.44 open code with compile-time environment</td>
 <td class="org-right">0.020</td>
 <td class="org-right">1</td>
 <td class="org-right">29</td>
</tr> <tr> <td class="org-right">353</td>
 <td class="org-left">Exercise 5.45 stack usage analysis for a  <code>factorial</code></td>
 <td class="org-right">0.528</td>
 <td class="org-right">1</td>
 <td class="org-right">61</td>
</tr> <tr> <td class="org-right">354</td>
 <td class="org-left">Exercise 5.46 stack usage analysis for  <code>fibonacci</code></td>
 <td class="org-right">0.017</td>
 <td class="org-right">1</td>
 <td class="org-right">25</td>
</tr> <tr> <td class="org-right">355</td>
 <td class="org-left">Exercise 5.47 calling interpreted procedures</td>
 <td class="org-right">0.049</td>
 <td class="org-right">1</td>
 <td class="org-right">71</td>
</tr> <tr> <td class="org-right">356</td>
 <td class="org-left">Exercise 5.48  <code>compile-and-run</code></td>
 <td class="org-right">1.020</td>
 <td class="org-right">3</td>
 <td class="org-right">264</td>
</tr> <tr> <td class="org-right">357</td>
 <td class="org-left">Exercise 5.49  <code>read-compile-execute-print</code> loop</td>
 <td class="org-right">0.015</td>
 <td class="org-right">1</td>
 <td class="org-right">22</td>
</tr> <tr> <td class="org-right">358</td>
 <td class="org-left">Exercise 4.77 lazy queries</td>
 <td class="org-right">4.129</td>
 <td class="org-right">9</td>
 <td class="org-right">1214</td>
</tr> <tr> <td class="org-right">359</td>
 <td class="org-left">Exercise 5.50 Compiling the metacircular evaluator</td>
 <td class="org-right">0.007</td>
 <td class="org-right">1</td>
 <td class="org-right">10</td>
</tr> <tr> <td class="org-right">360</td>
 <td class="org-left">Exercise 4.78 non-deterministic queries</td>
 <td class="org-right">0.867</td>
 <td class="org-right">6</td>
 <td class="org-right">602</td>
</tr> <tr> <td class="org-right">361</td>
 <td class="org-left">Exercise 5.51 Translating the EC-evaluator into a low-level</td>
 <td class="org-right">28.962</td>
 <td class="org-right">33</td>
 <td class="org-right">5684</td>
</tr> <tr> <td class="org-right">362</td>
 <td class="org-left">Exercise 5.52 Making a compiler for Scheme</td>
 <td class="org-right">22.975</td>
 <td class="org-right">13</td>
 <td class="org-right">2359</td>
</tr> <tr> <td class="org-right">363</td>
 <td class="org-left">Exercise 4.79 prolog environments</td>
 <td class="org-right">4.285</td>
 <td class="org-right">5</td>
 <td class="org-right">940</td>
</tr></tbody></table></div>
</div>

 <div id="outline-container-Time-consumption-histogram-linear" class="outline-3">
 <h3 id="Time-consumption-histogram-linear"> <span class="section-number-3">6.2.</span>  <a href="#Time-consumption-histogram-linear">Time consumption histogram linear</a></h3>
 <div class="outline-text-3" id="text-Time-consumption-histogram-linear">
 <table> <colgroup> <col class="org-right"></col> <col class="org-right"></col></colgroup> <thead> <tr> <th scope="col" class="org-right">Bin Lower Bound (Minutes)</th>
 <th scope="col" class="org-right">N. tasks</th>
</tr></thead> <tbody> <tr> <td class="org-right">0.</td>
 <td class="org-right">301</td>
</tr> <tr> <td class="org-right">177.625</td>
 <td class="org-right">38</td>
</tr> <tr> <td class="org-right">355.25</td>
 <td class="org-right">14</td>
</tr> <tr> <td class="org-right">532.875</td>
 <td class="org-right">2</td>
</tr> <tr> <td class="org-right">710.5</td>
 <td class="org-right">1</td>
</tr> <tr> <td class="org-right">888.125</td>
 <td class="org-right">2</td>
</tr> <tr> <td class="org-right">1065.75</td>
 <td class="org-right">2</td>
</tr> <tr> <td class="org-right">1243.375</td>
 <td class="org-right">1</td>
</tr> <tr> <td class="org-right">1421.</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">1598.625</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">1776.25</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">1953.875</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">2131.5</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">2309.125</td>
 <td class="org-right">1</td>
</tr> <tr> <td class="org-right">2486.75</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">2664.375</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">2842.</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">3019.625</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">3197.25</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">3374.875</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">3552.5</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">3730.125</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">3907.75</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">4085.375</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">4263.</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">4440.625</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">4618.25</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">4795.875</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">4973.5</td>
 <td class="org-right">0</td>
</tr> <tr> <td class="org-right">5151.125</td>
 <td class="org-right">1</td>
</tr></tbody></table></div>
</div>

 <div id="outline-container-Time-consumption-histogram-logarithmic" class="outline-3">
 <h3 id="Time-consumption-histogram-logarithmic"> <span class="section-number-3">6.3.</span>  <a href="#Time-consumption-histogram-logarithmic">Time consumption histogram logarithmic</a></h3>
 <div class="outline-text-3" id="text-Time-consumption-histogram-logarithmic">
 <table> <colgroup> <col class="org-right"></col> <col class="org-right"></col></colgroup> <thead> <tr> <th scope="col" class="org-right">Bin Lower Bound (Minutes)</th>
 <th scope="col" class="org-right">N. tasks</th>
</tr></thead> <tbody> <tr> <td class="org-right">1</td>
 <td class="org-right">2</td>
</tr> <tr> <td class="org-right">2</td>
 <td class="org-right">6</td>
</tr> <tr> <td class="org-right">4</td>
 <td class="org-right">15</td>
</tr> <tr> <td class="org-right">8</td>
 <td class="org-right">41</td>
</tr> <tr> <td class="org-right">16</td>
 <td class="org-right">55</td>
</tr> <tr> <td class="org-right">32</td>
 <td class="org-right">67</td>
</tr> <tr> <td class="org-right">64</td>
 <td class="org-right">85</td>
</tr> <tr> <td class="org-right">128</td>
 <td class="org-right">52</td>
</tr> <tr> <td class="org-right">256</td>
 <td class="org-right">29</td>
</tr> <tr> <td class="org-right">512</td>
 <td class="org-right">6</td>
</tr> <tr> <td class="org-right">1024</td>
 <td class="org-right">3</td>
</tr> <tr> <td class="org-right">2048</td>
 <td class="org-right">1</td>
</tr> <tr> <td class="org-right">4096</td>
 <td class="org-right">1</td>
</tr></tbody></table></div>
</div>
</section> <section id="outline-container-appendix:-Full-data-on-the-study-sessions." class="outline-2"> <h2 id="appendix:-Full-data-on-the-study-sessions."> <span class="section-number-2">7.</span>  <a href="#appendix:-Full-data-on-the-study-sessions.">Appendix: Full data on the study sessions.</a></h2>
 <div class="outline-text-2" id="text-appendix:-Full-data-on-the-study-sessions.">
 <p>
This section lists the data on each study session in the 
</p>
 <p>
“BEGIN_TIMESTAMP-END_TIMESTAMP:duration” 
</p>
 <p>
format.
</p>

 <p>
The earliest time stamp also marks the beginning of the whole project.
</p>

 <div class="org-src-container">
 <pre class="src src-elisp" id="orge64c450">[2020-05-10 Sun 14:39]-[2020-05-10 Sun 18:00]|3:21
[2020-05-09 Sat 19:13]-[2020-05-09 Sat 22:13]|3:00
[2020-05-09 Sat 09:34]-[2020-05-09 Sat 14:34]|5:00
[2020-05-08 Fri 21:45]-[2020-05-08 Fri 23:17]|1:32
[2020-05-08 Fri 18:30]-[2020-05-08 Fri 21:18]|2:48
[2020-05-06 Wed 10:12]-[2020-05-06 Wed 11:09]|0:57
[2020-05-05 Tue 12:11]-[2020-05-06 Wed 00:00]|11:49
[2020-05-04 Mon 18:20]-[2020-05-05 Tue 00:30]|6:10
[2020-05-04 Mon 14:02]-[2020-05-04 Mon 17:43]|3:41
[2020-05-03 Sun 21:03]-[2020-05-03 Sun 22:02]|0:59
[2020-04-30 Thu 09:28]-[2020-04-30 Thu 11:23]|1:55
[2020-04-29 Wed 20:00]-[2020-04-29 Wed 23:25]|3:25
[2020-04-28 Tue 22:55]-[2020-04-29 Wed 00:11]|1:16
[2020-04-28 Tue 21:00]-[2020-04-28 Tue 22:50]|1:50
[2020-04-27 Mon 20:09]-[2020-04-27 Mon 22:09]|2:00
[2020-04-26 Sun 20:10]-[2020-04-26 Sun 23:52]|3:42
[2020-04-21 Tue 11:01]-[2020-04-21 Tue 12:26]|1:25
[2020-04-13 Mon 11:40]-[2020-04-13 Mon 11:55]|0:15
[2020-04-11 Sat 11:50]-[2020-04-11 Sat 15:50]|4:00
[2020-04-10 Fri 09:50]-[2020-04-10 Fri 14:26]|4:36
[2020-04-09 Thu 19:50]-[2020-04-09 Thu 23:10]|3:20
[2020-04-09 Thu 09:55]-[2020-04-09 Thu 13:00]|3:05
[2020-04-08 Wed 22:50]-[2020-04-08 Wed 23:55]|1:05
[2020-04-08 Wed 18:30]-[2020-04-08 Wed 21:11]|2:41
[2020-04-08 Wed 09:15]-[2020-04-08 Wed 12:15]|3:00
[2020-04-07 Tue 20:46]-[2020-04-07 Tue 23:37]|2:51
[2020-04-07 Tue 09:41]-[2020-04-07 Tue 11:57]|2:16
[2020-04-06 Mon 18:58]-[2020-04-06 Mon 21:20]|2:22
[2020-04-06 Mon 12:09]-[2020-04-06 Mon 14:15]|2:06
[2020-04-05 Sun 11:30]-[2020-04-05 Sun 15:11]|3:41
[2020-04-04 Sat 22:08]-[2020-04-04 Sat 22:45]|0:37
[2020-04-04 Sat 17:54]-[2020-04-04 Sat 20:50]|2:56
[2020-04-04 Sat 17:24]-[2020-04-04 Sat 17:41]|0:17
[2020-04-04 Sat 15:15]-[2020-04-04 Sat 16:10]|0:55
[2020-04-03 Fri 20:22]-[2020-04-03 Fri 22:21]|1:59
[2020-04-01 Wed 13:05]-[2020-04-01 Wed 15:05]|2:00
[2020-03-29 Sun 13:05]-[2020-03-29 Sun 22:05]|9:00
[2020-03-28 Sat 13:04]-[2020-03-28 Sat 22:04]|9:00
[2020-03-26 Thu 20:20]-[2020-03-26 Thu 23:33]|3:13
[2020-03-26 Thu 10:43]-[2020-03-26 Thu 14:39]|3:56
[2020-03-24 Tue 20:00]-[2020-03-24 Tue 23:50]|3:50
[2020-03-24 Tue 09:10]-[2020-03-24 Tue 12:34]|3:24
[2020-03-23 Mon 19:56]-[2020-03-23 Mon 23:06]|3:10
[2020-03-23 Mon 10:23]-[2020-03-23 Mon 13:23]|3:00
[2020-03-23 Mon 09:06]-[2020-03-23 Mon 10:56]|1:50
[2020-03-22 Sun 18:46]-[2020-03-22 Sun 22:45]|3:59
[2020-03-22 Sun 12:45]-[2020-03-22 Sun 13:46]|1:01
[2020-03-21 Sat 19:07]-[2020-03-21 Sat 21:35]|2:28
[2020-03-17 Tue 19:11]-[2020-03-17 Tue 22:11]|3:00
[2020-03-15 Sun 09:10]-[2020-03-15 Sun 12:41]|3:31
[2020-03-14 Sat 23:01]-[2020-03-14 Sat 23:54]|0:53
[2020-03-14 Sat 20:46]-[2020-03-14 Sat 23:01]|2:15
[2020-03-14 Sat 20:39]-[2020-03-14 Sat 20:46]|0:07
[2020-03-14 Sat 17:23]-[2020-03-14 Sat 20:39]|3:16
[2020-03-14 Sat 12:00]-[2020-03-14 Sat 15:53]|3:53
[2020-03-13 Fri 20:01]-[2020-03-13 Fri 23:01]|3:00
[2020-03-13 Fri 09:20]-[2020-03-13 Fri 11:58]|2:38
[2020-03-12 Thu 20:30]-[2020-03-12 Thu 23:29]|2:59
[2020-03-11 Wed 12:12]-[2020-03-11 Wed 13:18]|1:06
[2020-03-11 Wed 10:45]-[2020-03-11 Wed 11:09]|0:24
[2020-03-11 Wed 09:15]-[2020-03-11 Wed 10:45]|1:30
[2020-03-10 Tue 20:22]-[2020-03-11 Wed 00:09]|3:47
[2020-03-10 Tue 09:08]-[2020-03-10 Tue 13:44]|4:36
[2020-03-09 Mon 22:28]-[2020-03-09 Mon 23:32]|1:04
[2020-03-09 Mon 09:08]-[2020-03-09 Mon 11:59]|2:51
[2020-03-08 Sun 18:30]-[2020-03-08 Sun 21:29]|2:59
[2020-03-08 Sun 16:51]-[2020-03-08 Sun 18:08]|1:17
[2020-03-08 Sun 13:50]-[2020-03-08 Sun 15:36]|1:46
[2020-03-08 Sun 11:56]-[2020-03-08 Sun 13:28]|1:32
[2020-03-07 Sat 18:00]-[2020-03-07 Sat 21:36]|3:36
[2020-03-07 Sat 11:35]-[2020-03-07 Sat 16:09]|4:34
[2020-03-06 Fri 17:37]-[2020-03-06 Fri 21:48]|4:11
[2020-03-06 Fri 13:11]-[2020-03-06 Fri 14:16]|1:05
[2020-03-06 Fri 09:42]-[2020-03-06 Fri 12:39]|2:57
[2020-03-05 Thu 16:54]-[2020-03-05 Thu 21:34]|4:40
[2020-03-05 Thu 08:58]-[2020-03-05 Thu 13:24]|4:26
[2020-03-04 Wed 19:51]-[2020-03-04 Wed 22:51]|3:00
[2020-03-04 Wed 11:33]-[2020-03-04 Wed 12:31]|0:58
[2020-03-04 Wed 09:32]-[2020-03-04 Wed 11:01]|1:29
[2020-03-03 Tue 19:13]-[2020-03-03 Tue 21:46]|2:33
[2020-03-03 Tue 12:20]-[2020-03-03 Tue 14:58]|2:38
[2020-03-03 Tue 09:13]-[2020-03-03 Tue 11:57]|2:44
[2020-03-02 Mon 18:30]-[2020-03-02 Mon 18:50]|0:20
[2020-03-02 Mon 12:01]-[2020-03-02 Mon 14:43]|2:42
[2020-03-02 Mon 09:02]-[2020-03-02 Mon 11:30]|2:28
[2020-03-01 Sun 19:07]-[2020-03-01 Sun 21:25]|2:18
[2020-03-01 Sun 17:50]-[2020-03-01 Sun 18:41]|0:51
[2020-03-01 Sun 11:09]-[2020-03-01 Sun 15:15]|4:06
[2020-02-29 Sat 21:30]-[2020-02-29 Sat 22:16]|0:46
[2020-02-29 Sat 12:48]-[2020-02-29 Sat 19:17]|6:29
[2020-02-28 Fri 20:21]-[2020-02-28 Fri 23:10]|2:49
[2020-02-28 Fri 18:26]-[2020-02-28 Fri 19:22]|0:56
[2020-02-28 Fri 11:55]-[2020-02-28 Fri 12:02]|0:07
[2020-02-27 Thu 09:20]-[2020-02-27 Thu 10:57]|1:37
[2020-02-26 Wed 20:47]-[2020-02-26 Wed 23:44]|2:57
[2020-02-26 Wed 12:07]-[2020-02-26 Wed 13:40]|1:33
[2020-02-26 Wed 09:29]-[2020-02-26 Wed 11:00]|1:31
[2020-02-25 Tue 19:18]-[2020-02-25 Tue 22:51]|3:33
[2020-02-25 Tue 09:01]-[2020-02-25 Tue 10:42]|1:41
[2020-02-24 Mon 19:23]-[2020-02-25 Tue 00:15]|4:52
[2020-02-24 Mon 13:00]-[2020-02-24 Mon 13:36]|0:36
[2020-02-24 Mon 10:08]-[2020-02-24 Mon 12:39]|2:31
[2020-02-23 Sun 19:20]-[2020-02-23 Sun 20:48]|1:28
[2020-02-23 Sun 12:52]-[2020-02-23 Sun 16:45]|3:53
[2020-02-22 Sat 21:35]-[2020-02-23 Sun 00:25]|2:50
[2020-02-22 Sat 19:59]-[2020-02-22 Sat 21:03]|1:04
[2020-02-22 Sat 12:20]-[2020-02-22 Sat 18:35]|6:15
[2020-02-21 Fri 20:55]-[2020-02-22 Sat 00:30]|3:35
[2020-02-21 Fri 17:30]-[2020-02-21 Fri 18:51]|1:21
[2020-02-21 Fri 10:40]-[2020-02-21 Fri 16:40]|6:00
[2020-02-20 Thu 17:00]-[2020-02-20 Thu 23:33]|6:33
[2020-02-20 Thu 14:43]-[2020-02-20 Thu 15:08]|0:25
[2020-02-20 Thu 10:05]-[2020-02-20 Thu 13:54]|3:49
[2020-02-19 Wed 21:35]-[2020-02-20 Thu 00:36]|3:01
[2020-02-19 Wed 19:50]-[2020-02-19 Wed 21:30]|1:40
[2020-02-19 Wed 13:34]-[2020-02-19 Wed 18:15]|4:41
[2020-02-19 Wed 11:10]-[2020-02-19 Wed 13:34]|2:24
[2020-02-18 Tue 21:05]-[2020-02-19 Wed 00:27]|3:22
[2020-02-18 Tue 19:02]-[2020-02-18 Tue 20:13]|1:11
[2020-02-18 Tue 16:58]-[2020-02-18 Tue 18:36]|1:38
[2020-02-18 Tue 10:55]-[2020-02-18 Tue 15:21]|4:26
[2020-02-17 Mon 19:20]-[2020-02-18 Tue 00:12]|4:52
[2020-02-17 Mon 15:20]-[2020-02-17 Mon 18:00]|2:40
[2020-02-17 Mon 14:17]-[2020-02-17 Mon 15:09]|0:52
[2020-02-16 Sun 21:21]-[2020-02-17 Mon 00:52]|3:31
[2020-02-16 Sun 20:03]-[2020-02-16 Sun 20:14]|0:11
[2020-02-16 Sun 19:00]-[2020-02-16 Sun 19:30]|0:30
[2020-02-16 Sun 16:06]-[2020-02-16 Sun 18:38]|2:32
[2020-02-16 Sun 12:59]-[2020-02-16 Sun 14:37]|1:38
[2020-02-16 Sun 10:30]-[2020-02-16 Sun 12:22]|1:52
[2020-02-15 Sat 22:10]-[2020-02-15 Sat 23:52]|1:42
[2020-02-15 Sat 21:01]-[2020-02-15 Sat 21:50]|0:49
[2020-02-15 Sat 15:03]-[2020-02-15 Sat 18:34]|3:31
[2020-02-14 Fri 18:53]-[2020-02-15 Sat 04:33]|9:40
[2020-02-13 Thu 16:15]-[2020-02-13 Thu 17:21]|1:06
[2020-02-13 Thu 00:12]-[2020-02-13 Thu 01:45]|1:33
[2020-02-12 Wed 18:36]-[2020-02-12 Wed 22:30]|3:54
[2020-02-12 Wed 13:16]-[2020-02-12 Wed 14:55]|1:39
[2020-02-12 Wed 08:37]-[2020-02-12 Wed 12:20]|3:43
[2020-02-11 Tue 18:51]-[2020-02-11 Tue 21:54]|3:03
[2020-02-11 Tue 04:30]-[2020-02-11 Tue 08:09]|3:39
[2020-02-10 Mon 06:42]-[2020-02-10 Mon 07:28]|0:46
[2020-02-06 Thu 15:42]-[2020-02-06 Thu 22:08]|6:26
[2020-02-01 Sat 15:05]-[2020-02-01 Sat 15:36]|0:31
[2020-01-23 Thu 17:06]-[2020-01-23 Thu 18:51]|1:45
[2020-01-22 Wed 20:53]-[2020-01-22 Wed 21:05]|0:12
[2020-01-22 Wed 13:40]-[2020-01-22 Wed 20:20]|6:40
[2020-01-21 Tue 15:33]-[2020-01-21 Tue 16:57]|1:24
[2020-01-17 Fri 19:13]-[2020-01-17 Fri 23:00]|3:47
[2020-01-11 Sat 10:56]-[2020-01-11 Sat 18:24]|7:28
[2020-01-10 Fri 22:20]-[2020-01-10 Fri 23:56]|1:36
[2020-01-10 Fri 09:40]-[2020-01-10 Fri 13:20]|3:40
[2020-01-09 Thu 20:10]-[2020-01-09 Thu 22:15]|2:05
[2020-01-09 Thu 08:50]-[2020-01-09 Thu 09:55]|1:05
[2020-01-08 Wed 19:21]-[2020-01-09 Thu 00:42]|5:21
[2020-01-08 Wed 09:20]-[2020-01-08 Wed 18:12]|8:52
[2020-01-07 Tue 16:31]-[2020-01-07 Tue 18:31]|2:00
[2020-01-07 Tue 08:55]-[2020-01-07 Tue 12:49]|3:54
[2020-01-06 Mon 22:30]-[2020-01-06 Mon 23:31]|1:01
[2020-01-06 Mon 09:20]-[2020-01-06 Mon 11:56]|2:36
[2020-01-04 Sat 20:25]-[2020-01-04 Sat 21:09]|0:44
[2020-01-04 Sat 09:37]-[2020-01-04 Sat 13:22]|3:45
[2020-01-03 Fri 21:13]-[2020-01-03 Fri 23:59]|2:46
[2020-01-03 Fri 18:13]-[2020-01-03 Fri 19:13]|1:00
[2020-01-03 Fri 12:08]-[2020-01-03 Fri 14:12]|2:04
[2020-01-02 Thu 09:35]-[2020-01-02 Thu 11:58]|2:23
[2019-12-29 Sun 02:12]-[2019-12-29 Sun 05:42]|3:30
[2019-12-26 Thu 16:59]-[2019-12-26 Thu 19:51]|2:52
[2019-12-23 Mon 05:03]-[2019-12-23 Mon 05:31]|0:28
[2019-12-23 Mon 03:02]-[2019-12-23 Mon 04:03]|1:01
[2019-12-22 Sun 16:51]-[2019-12-22 Sun 18:40]|1:49
[2019-12-21 Sat 19:23]-[2019-12-22 Sun 00:19]|4:56
[2019-12-20 Fri 14:10]-[2019-12-20 Fri 17:11]|3:01
[2019-12-19 Thu 23:20]-[2019-12-19 Thu 23:38]|0:18
[2019-12-18 Wed 10:47]-[2019-12-18 Wed 12:47]|2:00
[2019-12-09 Mon 10:47]-[2019-12-09 Mon 13:21]|2:34
[2019-12-08 Sun 17:47]-[2019-12-09 Sun 00:28]|6:41
[2019-12-07 Sat 16:07]-[2019-12-07 Sat 23:15]|7:08
[2019-12-06 Fri 19:04]-[2019-12-06 Fri 20:54]|1:50
[2019-12-04 Wed 18:06]-[2019-12-05 Thu 00:42]|6:36
[2019-12-04 Wed 12:36]-[2019-12-04 Wed 13:05]|0:29
[2019-12-03 Tue 22:18]-[2019-12-03 Tue 23:27]|1:09
[2019-12-03 Tue 21:21]-[2019-12-03 Tue 22:18]|0:57
[2019-12-03 Tue 12:40]-[2019-12-03 Tue 15:25]|2:45
[2019-12-02 Mon 20:06]-[2019-12-02 Mon 23:30]|3:24
[2019-12-01 Sun 22:07]-[2019-12-02 Mon 01:06]|2:59
[2019-12-01 Sun 18:59]-[2019-12-01 Sun 19:59]|1:00
[2019-11-30 Sat 14:19]-[2019-11-30 Sat 15:15]|0:56
[2019-11-29 Fri 20:07]-[2019-11-29 Fri 21:24]|1:17
[2019-11-29 Fri 11:51]-[2019-11-29 Fri 12:10]|0:19
[2019-11-28 Thu 09:30]-[2019-11-28 Thu 15:00]|5:30
[2019-11-26 Tue 09:15]-[2019-11-26 Tue 12:57]|3:42
[2019-11-25 Mon 10:35]-[2019-11-25 Mon 13:02]|2:27
[2019-11-20 Wed 12:08]-[2019-11-20 Wed 14:29]|2:21
[2019-11-20 Wed 09:25]-[2019-11-20 Wed 11:32]|2:07
[2019-11-19 Tue 11:45]-[2019-11-19 Tue 14:42]|2:57
[2019-11-13 Wed 20:52]-[2019-11-13 Wed 22:25]|1:33
[2019-11-12 Tue 19:47]-[2019-11-12 Tue 21:14]|1:27
[2019-11-12 Tue 09:30]-[2019-11-12 Tue 11:49]|2:19
[2019-11-11 Mon 21:03]-[2019-11-11 Mon 23:03]|2:00
[2019-11-10 Sun 21:45]-[2019-11-10 Sun 23:25]|1:40
[2019-10-31 Thu 09:20]-[2019-10-31 Thu 11:07]|1:47
[2019-10-30 Wed 10:35]-[2019-10-30 Wed 13:55]|3:20
[2019-10-29 Tue 22:35]-[2019-10-30 Wed 00:13]|1:38
[2019-10-29 Tue 09:33]-[2019-10-29 Tue 11:33]|2:00
[2019-10-28 Mon 21:52]-[2019-10-29 Tue 00:14]|2:22
[2019-10-28 Mon 18:23]-[2019-10-28 Mon 19:23]|1:00
[2019-10-28 Mon 09:07]-[2019-10-28 Mon 15:10]|6:03
[2019-10-27 Sun 20:44]-[2019-10-28 Mon 00:48]|4:04
[2019-10-27 Sun 14:17]-[2019-10-27 Sun 15:42]|1:25
[2019-10-27 Sun 12:15]-[2019-10-27 Sun 13:33]|1:18
[2019-10-26 Sat 13:53]-[2019-10-26 Sat 14:10]|0:17
[2019-10-26 Sat 10:15]-[2019-10-26 Sat 10:58]|0:43
[2019-10-25 Fri 15:12]-[2019-10-25 Fri 17:55]|2:43
[2019-10-25 Fri 09:10]-[2019-10-25 Fri 09:59]|0:49
[2019-10-24 Thu 22:23]-[2019-10-25 Fri 00:05]|1:42
[2019-10-24 Thu 18:45]-[2019-10-24 Thu 21:21]|2:36
[2019-10-24 Thu 09:03]-[2019-10-24 Thu 10:47]|1:44
[2019-10-23 Wed 21:24]-[2019-10-24 Wed 23:49]|2:25
[2019-10-23 Wed 09:09]-[2019-10-23 Wed 10:55]|1:46
[2019-10-22 Tue 22:35]-[2019-10-23 Wed 00:13]|1:33
[2019-10-22 Tue 19:10]-[2019-10-22 Tue 21:38]|2:28
[2019-10-22 Tue 09:18]-[2019-10-22 Tue 12:02]|2:44
[2019-10-21 Mon 23:39]-[2019-10-21 Mon 23:49]|0:10
[2019-10-21 Mon 17:23]-[2019-10-21 Mon 18:28]|1:05
[2019-10-21 Mon 09:05]-[2019-10-21 Mon 13:58]|4:53
[2019-10-20 Sun 23:27]-[2019-10-21 Mon 00:00]|0:33
[2019-10-20 Sun 19:32]-[2019-10-20 Sun 20:23]|0:51
[2019-10-20 Sun 12:55]-[2019-10-20 Sun 14:45]|1:50
[2019-10-19 Sat 19:25]-[2019-10-19 Sat 20:45]|1:20
[2019-10-19 Sat 16:12]-[2019-10-19 Sat 18:47]|2:35
[2019-10-17 Thu 19:18]-[2019-10-17 Thu 22:55]|3:37
[2019-10-17 Thu 09:30]-[2019-10-17 Thu 11:42]|2:12
[2019-10-16 Wed 14:52]-[2019-10-16 Wed 14:59]|0:07
[2019-10-16 Wed 09:08]-[2019-10-16 Wed 10:08]|1:00
[2019-10-15 Tue 22:35]-[2019-10-15 Tue 23:30]|0:55
[2019-10-15 Tue 19:30]-[2019-10-15 Tue 21:40]|2:10
[2019-10-15 Tue 09:10]-[2019-10-15 Tue 12:56]|3:46
[2019-10-14 Mon 19:51]-[2019-10-14 Mon 23:10]|3:19
[2019-10-14 Mon 15:57]-[2019-10-14 Mon 17:23]|1:26
[2019-10-12 Sat 20:05]-[2019-10-12 Sat 21:33]|1:28
[2019-10-12 Sat 15:56]-[2019-10-12 Sat 16:07]|0:11
[2019-10-12 Sat 10:31]-[2019-10-12 Sat 12:31]|2:00
[2019-10-11 Fri 19:55]-[2019-10-11 Fri 22:34]|2:39
[2019-10-11 Fri 17:55]-[2019-10-11 Fri 19:28]|1:33
[2019-10-11 Fri 14:35]-[2019-10-11 Fri 14:47]|0:12
[2019-10-11 Fri 09:10]-[2019-10-11 Fri 11:10]|2:00
[2019-10-10 Thu 20:26]-[2019-10-10 Thu 21:48]|1:22
[2019-10-10 Thu 17:26]-[2019-10-10 Thu 19:40]|2:14
[2019-10-10 Thu 12:15]-[2019-10-10 Thu 14:37]|2:22
[2019-10-10 Thu 08:50]-[2019-10-10 Thu 11:29]|2:39
[2019-10-09 Wed 20:16]-[2019-10-09 Wed 20:55]|0:39
[2019-10-09 Wed 16:46]-[2019-10-09 Wed 17:55]|1:09
[2019-10-09 Wed 11:27]-[2019-10-09 Wed 13:38]|2:11
[2019-09-29 Sun 17:01]-[2019-09-29 Sun 17:23]|0:22
[2019-09-27 Fri 08:56]-[2019-09-27 Fri 10:20]|1:24
[2019-09-26 Thu 21:25]-[2019-09-26 Thu 23:38]|2:13
[2019-09-25 Wed 21:55]-[2019-09-25 Wed 22:18]|0:23
[2019-09-25 Wed 12:20]-[2019-09-25 Wed 15:22]|3:02
[2019-09-25 Wed 09:20]-[2019-09-25 Wed 11:25]|2:05
[2019-09-24 Tue 22:10]-[2019-09-24 Tue 23:16]|1:06
[2019-09-24 Tue 12:05]-[2019-09-24 Tue 13:49]|1:44
[2019-09-24 Tue 01:17]-[2019-09-24 Tue 02:15]|0:58
[2019-09-23 Mon 21:26]-[2019-09-23 Mon 22:57]|1:31
[2019-09-22 Sun 14:52]-[2019-09-22 Sun 18:51]|3:59
[2019-09-21 Sat 16:50]-[2019-09-21 Sat 17:55]|1:05
[2019-09-21 Sat 12:31]-[2019-09-21 Sat 15:44]|3:13
[2019-09-20 Fri 22:05]-[2019-09-21 Sat 00:05]|2:00
[2019-09-20 Fri 14:38]-[2019-09-20 Fri 17:20]|2:42
[2019-09-20 Fri 11:42]-[2019-09-20 Fri 12:48]|1:06
[2019-09-19 Thu 21:14]-[2019-09-20 Fri 00:33]|3:19
[2019-09-19 Thu 09:15]-[2019-09-19 Thu 11:14]|1:59
[2019-09-18 Wed 20:55]-[2019-09-18 Wed 23:25]|2:30
[2019-09-17 Tue 22:05]-[2019-09-17 Tue 22:56]|0:51
[2019-09-14 Sat 14:20]-[2019-09-14 Sat 16:57]|2:37
[2019-09-12 Thu 09:31]-[2019-09-12 Thu 10:36]|1:05
[2019-09-11 Wed 22:40]-[2019-09-12 Thu 01:41]|3:01
[2019-09-11 Wed 12:11]-[2019-09-11 Wed 15:16]|3:05
[2019-09-11 Wed 09:19]-[2019-09-11 Wed 11:49]|2:30
[2019-09-10 Tue 20:60]-[2019-09-10 Tue 23:35]|2:35
[2019-09-10 Tue 16:30]-[2019-09-10 Tue 19:35]|3:05
[2019-09-10 Tue 14:30]-[2019-09-10 Tue 14:41]|0:11
[2019-09-10 Tue 10:27]-[2019-09-10 Tue 11:27]|1:00
[2019-09-09 Mon 09:29]-[2019-09-09 Mon 12:45]|3:16
[2019-09-08 Sun 23:07]-[2019-09-09 Mon 00:46]|1:39
[2019-09-08 Sun 15:10]-[2019-09-08 Sun 21:07]|5:57
[2019-09-06 Fri 12:05]-[2019-09-06 Fri 13:40]|1:35
[2019-09-04 Wed 20:01]-[2019-09-04 Wed 23:19]|3:18
[2019-09-04 Wed 17:01]-[2019-09-04 Wed 20:00]|2:59
[2019-09-04 Wed 09:12]-[2019-09-04 Wed 12:12]|3:00
[2019-09-03 Tue 19:40]-[2019-09-04 Wed 01:20]|5:40
[2019-09-03 Tue 11:12]-[2019-09-03 Tue 14:46]|3:34
[2019-09-03 Tue 10:00]-[2019-09-03 Tue 10:39]|0:39
[2019-09-02 Mon 19:55]-[2019-09-03 Tue 00:00]|4:05
[2019-09-02 Mon 09:53]-[2019-09-02 Mon 13:37]|3:44
[2019-09-01 Sun 19:10]-[2019-09-02 Mon 00:46]|5:36
[2019-08-31 Sat 11:21]-[2019-08-31 Sat 11:44]|0:23
[2019-08-30 Fri 19:21]-[2019-08-30 Fri 23:49]|4:28
[2019-08-30 Fri 15:21]-[2019-08-30 Fri 16:11]|0:50
[2019-08-29 Thu 14:10]-[2019-08-29 Thu 15:16]|1:06
[2019-08-25 Sun 14:15]-[2019-08-25 Sun 21:55]|7:40
[2019-08-22 Thu 15:01]-[2019-08-22 Thu 19:39]|4:38
[2019-08-22 Thu 09:12]-[2019-08-22 Thu 13:30]|4:18
[2019-08-21 Wed 21:15]-[2019-08-22 Thu 00:17]|3:02
[2019-08-21 Wed 12:21]-[2019-08-21 Wed 14:39]|2:18
[2019-08-20 Tue 10:57]-[2019-08-20 Tue 15:04]|4:07
[2019-08-19 Mon 09:19]-[2019-08-19 Mon 13:32]|4:13
</pre>
</div>
</div>
</section> <section id="outline-container-appendix:-Full-data-on-the-exercise-completion-times." class="outline-2"> <h2 id="appendix:-Full-data-on-the-exercise-completion-times."> <span class="section-number-2">8.</span>  <a href="#appendix:-Full-data-on-the-exercise-completion-times.">Appendix: Full data on the exercise completion times.</a></h2>
 <div class="outline-text-2" id="text-appendix:-Full-data-on-the-exercise-completion-times.">
 <p>
This section lists the data on the minute each exercise was considered  <span class="underline">complete</span>.
(Local time.) For statistical purposes the beginning of each exercise is 
considered to be the 
completion time of the previous one. For the first exercise, the beginning 
time is  <span class="timestamp-wrapper"> <span class="timestamp">[2019-08-19 Mon 09:19]</span></span>. 
</p>

 <div class="org-src-container">
 <pre class="src src-elisp" id="org7c49cdc">Figure 1.1 Tree with the values of subcombinations
[2019-08-20 Tue 14:35]
Exercise 1.1 Interpreter result
[2019-08-20 Tue 14:23]
Exercise 1.2 Prefix form
[2019-08-20 Tue 14:25]
Exercise 1.3 Sum of squares
[2020-02-28 Fri 12:01]
Exercise 1.4 Compound expressions
[2019-08-20 Tue 14:39]
Exercise 1.5 Ben's test
[2019-08-20 Tue 14:50]
Exercise 1.6 If is a special form
[2019-08-21 Wed 14:05]
Exercise 1.7 Good enough?
[2019-08-22 Thu 12:52]
Exercise 1.8 Newton's method
[2019-08-22 Thu 17:36]
Exercise 1.9 Iterative or recursive?
[2019-08-29 Thu 15:14]
Exercise 1.10 Ackermann's function
[2019-08-25 Sun 18:31]
Exercise 1.11 Recursive vs iterative
[2019-08-25 Sun 19:25]
Exercise 1.12 Recursive Pascal's triangle
[2019-08-25 Sun 19:42]
Exercise 1.13 Fibonacci
[2019-08-25 Sun 23:04]
Exercise 1.14 ~count-change~
[2019-08-30 Fri 16:09]
Exercise 1.15 ~sine~
[2019-08-30 Fri 22:34]
Exercise 1.16 Iterative exponentiation
[2019-08-30 Fri 23:20]
Exercise 1.17 Fast multiplication
[2019-08-30 Fri 23:48]
Exercise 1.18 Iterative multiplication
[2019-08-31 Sat 11:43]
Exercise 1.19 Logarithmic Fibonacci
[2019-09-01 Sun 20:42]
Exercise 1.20 GCD applicative vs normal
[2019-09-01 Sun 23:04]
Exercise 1.21 ~smallest-divisor~
[2019-09-01 Sun 23:43]
Exercise 1.22 ~timed-prime-test~
[2019-09-02 Mon 00:44]
Exercise 1.23 ~test-divisor~
[2019-09-02 Mon 09:56]
Exercise 1.24 Fermat method
[2019-09-02 Mon 11:32]
Exercise 1.25 ~expmod~
[2019-09-02 Mon 12:46]
Exercise 1.26 ~square~ vs ~mul~
[2019-09-02 Mon 12:50]
Exercise 1.27 Carmichael numbers
[2019-09-02 Mon 20:50]
Exercise 1.28 Miller-Rabin
[2019-09-02 Mon 23:28]
Exercise 1.29 Simpson's integral
[2019-09-03 Tue 10:36]
Exercise 1.30 Iterative sum
[2019-09-03 Tue 11:19]
Exercise 1.31 Product
[2019-09-03 Tue 11:59]
Exercise 1.32 Accumulator
[2019-09-03 Tue 12:23]
Exercise 1.33 ~filtered-accumulate~
[2019-09-03 Tue 14:36]
Exercise 1.34 lambda
[2019-09-03 Tue 14:44]
Exercise 1.35 Fixed-point
[2019-09-03 Tue 21:05]
Exercise 1.36 Fixed-point-with-dampening
[2019-09-03 Tue 21:55]
Exercise 1.37 Cont-frac
[2019-09-04 Wed 11:35]
Exercise 1.38 Euler constant
[2019-09-04 Wed 11:35]
Exercise 1.39 Tan-cf
[2019-09-04 Wed 12:11]
Exercise 1.40 Newtons-method
[2019-09-04 Wed 17:06]
Exercise 1.41 Double-double
[2019-09-04 Wed 17:21]
Exercise 1.42 Compose
[2019-09-04 Wed 17:27]
Exercise 1.43 Repeated
[2019-09-04 Wed 17:54]
Exercise 1.44 Smoothing
[2019-09-04 Wed 20:17]
Exercise 1.45 Nth root
[2019-09-04 Wed 21:37]
Exercise 1.46 ~iterative-improve~
[2019-09-04 Wed 22:25]
Exercise 2.1 ~make-rat~
[2019-09-06 Fri 13:00]
Exercise 2.2 ~make-segment~
[2019-09-06 Fri 13:34]
Exercise 2.3 ~make-rectangle~
[2019-09-08 Sun 17:58]
Exercise 2.4 ~cons~ lambda
[2019-09-08 Sun 18:08]
Exercise 2.5 ~cons~ pow
[2019-09-08 Sun 19:07]
Exercise 2.6 Church Numerals
[2019-09-08 Sun 19:41]
Exercise 2.7 ~make-interval~
[2019-09-08 Sun 20:09]
Exercise 2.8 ~sub-interval~
[2019-09-08 Sun 23:07]
Exercise 2.9 ~interval-width~
[2019-09-08 Sun 23:15]
Exercise 2.10 Div interval better
[2019-09-08 Sun 23:30]
Exercise 2.11 Mul interval nine cases
[2019-09-09 Mon 00:45]
Exercise 2.12 ~make-center-percent~
[2019-09-09 Mon 10:11]
Exercise 2.13 Formula for tolerance
[2019-09-09 Mon 10:16]
Exercise 2.14 Parallel resistors
[2019-09-09 Mon 11:24]
Exercise 2.15 Better intervals
[2019-09-09 Mon 11:34]
Exercise 2.16 Interval arithmetic
[2019-09-09 Mon 11:37]
Exercise 2.17 ~last-pair~
[2019-09-10 Tue 10:48]
Exercise 2.18 ~reverse~
[2019-09-10 Tue 10:57]
Exercise 2.19 Coin values
[2019-09-10 Tue 11:27]
Exercise 2.20 Dotted-tail notation
[2019-09-10 Tue 18:55]
Exercise 2.21 Map square list
[2019-09-10 Tue 19:14]
Exercise 2.22 Wrong list order
[2019-09-10 Tue 19:24]
Exercise 2.23 ~for-each~
[2019-09-10 Tue 19:33]
Exercise 2.24 List plot result
[2019-09-10 Tue 22:13]
Exercise 2.25 ~caddr~
[2019-09-10 Tue 23:07]
Exercise 2.26 ~append~ ~cons~ ~list~
[2019-09-10 Tue 23:23]
Exercise 2.27 Deep reverse
[2019-09-11 Wed 09:47]
Exercise 2.28 Fringe
[2019-09-11 Wed 10:24]
Exercise 2.29 Mobile
[2019-09-11 Wed 11:47]
Exercise 2.30 ~square-tree~
[2019-09-11 Wed 14:11]
Exercise 2.31 Tree-map square tree
[2019-09-11 Wed 14:38]
Exercise 2.32 Subsets
[2019-09-11 Wed 14:53]
Exercise 2.33 Map append length
[2019-09-11 Wed 23:53]
Exercise 2.34 Horners rule
[2019-09-12 Thu 00:01]
Exercise 2.35 ~count-leaves-accumulate~
[2019-09-12 Thu 00:17]
Exercise 2.36 ~accumulate-n~
[2019-09-12 Thu 00:26]
Exercise 2.37 ~matrix-*-vector~
[2019-09-12 Thu 00:50]
Exercise 2.38 ~fold-left~
[2019-09-12 Thu 09:45]
Exercise 2.39 Reverse ~fold-right~ ~fold-left~
[2019-09-12 Thu 09:52]
Exercise 2.40 ~unique-pairs~
[2019-09-12 Thu 10:34]
Exercise 2.41 ~triple-sum~
[2019-09-14 Sat 15:15]
Figure 2.8 A solution to the eight-queens puzzle
[2019-09-14 Sat 15:17]
Exercise 2.42 k-queens
[2019-09-17 Tue 22:27]
Exercise 2.43 Slow k-queens
[2019-09-17 Tue 22:55]
Exercise 2.44 ~up-split~
[2019-09-23 Mon 22:54]
Exercise 2.45 ~split~
[2019-09-24 Tue 01:37]
Exercise 2.46 ~make-vect~
[2019-09-20 Fri 12:48]
Exercise 2.47 ~make-frame~
[2019-09-20 Fri 14:48]
Exercise 2.48 ~make-segment~
[2019-09-20 Fri 16:06]
Exercise 2.49 ~segments->painter~ applications
[2019-09-20 Fri 23:10]
Exercise 2.50 ~flip-horiz~ ~rotate270~ ~rotate180~
[2019-09-20 Fri 23:37]
Exercise 2.51 ~below~
[2019-09-22 Sun 18:50]
Exercise 2.52 Modify square-limit
[2019-09-24 Tue 12:25]
Exercise 2.53 Quote introduction
[2019-09-24 Tue 12:36]
Exercise 2.54 ~equal?~ implementation
[2019-09-24 Tue 13:48]
Exercise 2.55 Quote quote
[2019-09-24 Tue 13:48]
Exercise 2.56 Differentiation exponentiation
[2019-09-24 Tue 23:14]
Exercise 2.57 Differentiate three sum
[2019-09-25 Wed 12:40]
Exercise 2.58 ~infix-notation~
[2019-09-25 Wed 15:21]
Exercise 2.59 ~union-set~
[2019-09-25 Wed 22:00]
Exercise 2.60 ~duplicate-set~
[2019-09-25 Wed 22:17]
Exercise 2.61 Sets as ordered lists
[2019-09-26 Thu 21:44]
Exercise 2.62 ~ordered-union-set~ (ordered list)
[2019-09-26 Thu 21:38]
Exercise 2.63 ~tree->list~ (binary search tree)
[2019-09-26 Thu 23:37]
Exercise 2.64 Balanced tree
[2019-09-29 Sun 17:22]
Exercise 2.65 ~tree-union-set~
[2019-10-09 Wed 12:13]
Exercise 2.66 Tree-lookup
[2019-10-09 Wed 13:03]
Exercise 2.67 Huffman decode a simple message
[2019-10-09 Wed 20:20]
Exercise 2.68 Huffman encode a simple message
[2019-10-09 Wed 20:53]
Exercise 2.69 Generate Huffman tree
[2019-10-10 Thu 11:28]
Exercise 2.70 Generate a tree and encode a song
[2019-10-10 Thu 13:11]
Exercise 2.71 Huffman tree for 5 and 10
[2019-10-10 Thu 19:22]
Exercise 2.72 Huffman order of growth
[2019-10-10 Thu 20:34]
Exercise 2.73 Data-driven ~deriv~
[2019-10-11 Fri 11:05]
Exercise 2.74 Insatiable Enterprises
[2019-10-11 Fri 20:56]
Exercise 2.75 ~make-from-mag-ang~ message passing
[2019-10-11 Fri 21:24]
Exercise 2.76 Types or functions?
[2019-10-11 Fri 21:29]
Exercise 2.77 Generic algebra magnitude
[2019-10-12 Sat 16:01]
Exercise 2.78 Ordinary numbers for Scheme
[2019-10-12 Sat 21:06]
Exercise 2.79 Generic equality
[2019-10-14 Mon 15:58]
Exercise 2.80 Generic arithmetic zero?
[2019-10-14 Mon 17:18]
Exercise 2.81 Coercion to itself
[2019-10-15 Tue 11:16]
Exercise 2.82 Three argument coercion
[2019-10-15 Tue 21:40]
Exercise 2.83 Numeric Tower and (raise)
[2019-10-16 Wed 14:53]
Exercise 2.84 ~raise-type~ in ~apply-generic~
[2019-10-17 Thu 11:39]
Exercise 2.85 Dropping a type
[2019-10-20 Sun 13:47]
Exercise 2.86 Compound complex numbers
[2019-10-20 Sun 20:22]
Exercise 2.87 Generalized zero?
[2019-10-21 Mon 18:25]
Exercise 2.88 Subtraction of polynomials
[2019-10-22 Tue 09:55]
Exercise 2.89 Dense term-lists
[2019-10-22 Tue 11:55]
Exercise 2.90 Dense polynomials as a package
[2019-10-22 Tue 21:31]
Exercise 2.91 Division of polynomials
[2019-10-23 Wed 00:11]
Exercise 2.92 Add, mul for different variables
[2019-10-27 Sun 13:32]
Exercise 2.93 Rational polynomials
[2019-10-27 Sun 22:36]
Exercise 2.94 GCD for polynomials
[2019-10-28 Mon 00:47]
Exercise 2.95 Non-integer problem
[2019-10-28 Mon 11:35]
Exercise 2.96 Integerizing factor
[2019-10-28 Mon 19:23]
Exercise 2.97 Reduction of polynomials
[2019-10-29 Tue 00:12]
Exercise 3.1 Accumulators
[2019-10-29 Tue 10:24]
Exercise 3.2 Make-monitored
[2019-10-29 Tue 11:03]
Exercise 3.3 Password protection
[2019-10-29 Tue 11:17]
Exercise 3.4 Call-the-cops
[2019-10-29 Tue 11:32]
Exercise 3.5 Monte-Carlo
[2019-10-30 Wed 00:12]
Exercise 3.6 reset a prng
[2019-10-30 Wed 11:42]
Exercise 3.7 Joint accounts
[2019-10-30 Wed 13:07]
Exercise 3.8 Right-to-left vs Left-to-right
[2019-10-30 Wed 13:45]
Exercise 3.9 Environment structures
[2019-11-20 Wed 14:28]
Exercise 3.10 ~let~ to create state variables
[2019-11-25 Mon 12:52]
Exercise 3.11 Internal definitions
[2019-11-26 Tue 12:44]
Exercise 3.12 Drawing ~append!~
[2019-11-29 Fri 11:55]
Exercise 3.13 ~make-cycle~
[2019-11-29 Fri 12:09]
Exercise 3.14 ~mystery~
[2019-11-29 Fri 21:23]
Exercise 3.15 ~set-to-wow!~
[2019-12-01 Sun 19:59]
Exercise 3.16 ~count-pairs~
[2019-12-02 Mon 00:05]
Exercise 3.17 Real ~count-pairs~
[2019-12-02 Mon 00:47]
Exercise 3.18 Finding cycles
[2019-12-02 Mon 01:04]
Exercise 3.19 Efficient finding cycles
[2019-12-02 Mon 23:29]
Exercise 3.20 Procedural ~set-car!~
[2019-12-03 Tue 14:40]
Exercise 3.21 Queues
[2019-12-03 Tue 15:10]
Exercise 3.22 Procedural queue
[2019-12-03 Tue 22:13]
Exercise 3.23 Dequeue
[2019-12-03 Tue 23:24]
Exercise 3.24 Tolerant tables
[2019-12-04 Wed 18:07]
Exercise 3.25 Multilevel tables
[2019-12-06 Fri 20:35]
Exercise 3.26 Binary tree table
[2019-12-06 Fri 20:53]
Exercise 3.27 Memoization
[2019-12-07 Sat 16:08]
Exercise 3.28 Primitive or-gate
[2019-12-08 Sun 23:43]
Exercise 3.29 Compound or-gate
[2019-12-08 Sun 23:45]
Exercise 3.30 Ripple-carry adder
[2019-12-08 Sun 23:58]
Exercise 3.31 Initial propagation
[2019-12-09 Mon 00:16]
Exercise 3.32 Order matters
[2019-12-09 Mon 00:26]
Exercise 3.33 Averager constraint
[2019-12-18 Wed 11:29]
Exercise 3.34 Wrong squarer
[2019-12-18 Wed 12:30]
Exercise 3.35 Correct squarer
[2019-12-18 Wed 12:47]
Exercise 3.36 Connector environment diagram
[2019-12-21 Sat 20:27]
Exercise 3.37 Expression-based constraints
[2019-12-21 Sat 21:20]
Exercise 3.38 Timing
[2019-12-21 Sat 22:48]
Exercise 3.39 Serializer
[2019-12-23 Mon 05:11]
Exercise 3.40 Three parallel multiplications
[2019-12-29 Sun 04:32]
Exercise 3.41 Better protected account
[2020-01-02 Thu 10:02]
Exercise 3.42 Saving on serializers
[2020-01-02 Thu 10:35]
Exercise 3.43 Multiple serializations
[2020-01-02 Thu 11:33]
Exercise 3.44 Transfer money
[2020-01-02 Thu 11:40]
Exercise 3.45 New plus old serializers
[2020-01-02 Thu 11:46]
Exercise 3.46 Broken test-and-set!
[2020-01-02 Thu 11:56]
Exercise 3.47 Semaphores
[2020-01-03 Fri 12:59]
Exercise 3.48 Serialized-exchange deadlock
[2020-01-03 Fri 13:30]
Exercise 3.49 When numbering does not work
[2020-01-03 Fri 13:41]
Exercise 3.50 ~stream-map~ multiple arguments
[2020-01-03 Fri 21:18]
Exercise 3.51 ~stream-show~
[2020-01-03 Fri 21:28]
Exercise 3.52 Streams with mind-boggling
[2020-01-03 Fri 22:17]
Exercise 3.53 Stream power of two
[2020-01-03 Fri 22:40]
Exercise 3.54 ~mul-streams~
[2020-01-03 Fri 22:47]
Exercise 3.55 Streams partial-sums
[2020-01-03 Fri 23:05]
Exercise 3.56 Hamming's streams-merge
[2020-01-03 Fri 23:26]
Exercise 3.57 Exponential additions fibs
[2020-01-03 Fri 23:36]
Exercise 3.58 Cryptic stream
[2020-01-03 Fri 23:50]
Exercise 3.59 Power series
[2020-01-04 Sat 09:58]
Exercise 3.60 ~mul-series~
[2020-01-04 Sat 11:07]
Exercise 3.61 ~power-series-inversion~
[2020-01-04 Sat 13:13]
Exercise 3.62 ~div-series~
[2020-01-04 Sat 13:21]
Exercise 3.63 ~sqrt-stream~
[2020-01-04 Sat 20:32]
Exercise 3.64 ~stream-limit~
[2020-01-06 Mon 09:38]
Exercise 3.65 Approximating logarithm
[2020-01-06 Mon 10:34]
Exercise 3.66 Lazy pairs
[2020-01-06 Mon 22:55]
Exercise 3.67 All possible pairs
[2020-01-06 Mon 23:09]
Exercise 3.68 ~pairs-louis~
[2020-01-06 Mon 23:26]
Exercise 3.69 ~triples~
[2020-02-17 Mon 20:10]
Exercise 3.70 ~merge-weighted~
[2020-01-07 Tue 11:58]
Exercise 3.71 Ramanujan numbers
[2020-01-07 Tue 12:49]
Exercise 3.72 Ramanujan 3-numbers
[2020-01-08 Wed 10:27]
Figure 3.32 Integral-signals
[2020-01-08 Wed 10:59]
Exercise 3.73 RC-circuit
[2020-01-08 Wed 13:09]
Exercise 3.74 Zero-crossings
[2020-01-08 Wed 16:50]
Exercise 3.75 Filtering signals
[2020-01-08 Wed 18:11]
Exercise 3.76 ~stream-smooth~
[2020-01-08 Wed 19:56]
Exercise 3.77 Streams integral
[2020-01-08 Wed 20:51]
Exercise 3.78 Second order differential equation
[2020-01-08 Wed 21:47]
Exercise 3.79 General second-order ode
[2020-01-08 Wed 21:57]
Figure 3.36
[2020-01-08 Wed 23:21]
Exercise 3.80 RLC circuit
[2020-01-08 Wed 23:40]
Exercise 3.81 Generator-in-streams
[2020-01-09 Thu 00:37]
Exercise 3.82 Streams Monte-Carlo
[2020-01-09 Thu 09:42]
Exercise 4.1 ~list-of-values~ ordered
[2020-01-09 Thu 20:11]
Exercise 4.2 Application before assignments
[2020-01-09 Thu 20:41]
Exercise 4.3 Data-directed eval
[2020-01-09 Thu 21:24]
Exercise 4.4 ~eval-and~ and ~eval-or~
[2020-01-09 Thu 22:14]
Exercise 4.5 ~cond~ with arrow
[2020-01-22 Wed 16:36]
Exercise 4.6 Implementing let
[2020-01-22 Wed 17:03]
Exercise 4.7 Implementing let*
[2020-01-22 Wed 18:09]
Exercise 4.8 Implementing named let
[2020-01-22 Wed 19:50]
Exercise 4.9 Implementing until
[2020-01-23 Thu 18:06]
Exercise 4.10 Modifying syntax
[2020-02-06 Thu 22:08]
Exercise 4.11 Environment as a list of bindings
[2020-02-11 Tue 06:58]
Exercise 4.12 Better abstractions setting value
[2020-02-11 Tue 19:40]
Exercise 4.13 Implementing ~make-unbound!~
[2020-02-12 Wed 08:52]
Exercise 4.14 Meta map versus built-in map
[2020-02-12 Wed 08:58]
Exercise 4.15 The ~halts?~ predicate
[2020-02-12 Wed 09:24]
Exercise 4.16 Simultaneous internal definitions
[2020-02-12 Wed 13:17]
Exercise 4.17 Environment for internal definitions
[2020-02-12 Wed 14:09]
Exercise 4.18 Alternative scanning
[2020-02-12 Wed 14:35]
Exercise 4.19 Mutual simultaneous definitions
[2020-02-12 Wed 19:52]
Exercise 4.20 ~letrec~
[2020-02-13 Thu 00:49]
Exercise 4.21 Y-combinator
[2020-02-13 Thu 01:07]
Exercise 4.22 Extending evaluator to support ~let~
[2020-02-14 Fri 19:33]
Exercise 4.23 Analysing sequences
[2020-02-14 Fri 19:40]
Exercise 4.24 Analysis time test
[2020-02-14 Fri 20:12]
Exercise 4.25 Lazy factorial
[2020-02-14 Fri 21:01]
Exercise 4.26 ~unless~ as a special form
[2020-02-15 Sat 04:32]
Exercise 4.27 Mutation in lazy interpreters
[2020-02-15 Sat 16:54]
Exercise 4.28 Eval before applying
[2020-02-15 Sat 17:01]
Exercise 4.29 Lazy eval slow without memoization
[2020-02-15 Sat 17:51]
Exercise 4.30 Lazy sequences
[2020-02-15 Sat 21:32]
Exercise 4.31 Lazy arguments with syntax extension
[2020-02-15 Sat 23:44]
Exercise 4.32 Streams versus lazy lists
[2020-02-16 Sun 11:49]
Exercise 4.33 Quoted lazy lists
[2020-02-16 Sun 14:09]
Exercise 4.34 Printing lazy lists
[2020-02-16 Sun 19:25]
Exercise 4.35 Pythagorean triples 
[2020-02-17 Mon 17:25]
Exercise 4.36 Infinite Pythagorean triples
[2020-02-17 Mon 20:26]
Exercise 4.37 Another method for triples
[2020-02-17 Mon 21:17]
Exercise 4.38 Logical puzzle - Not same floor
[2020-02-17 Mon 21:56]
Exercise 4.39 Order of restrictions
[2020-02-17 Mon 22:01]
Exercise 4.40 People to floor assignment
[2020-02-17 Mon 22:29]
Exercise 4.41 Ordinary Scheme floor problem
[2020-02-18 Tue 00:12]
Exercise 4.42 The liars puzzle
[2020-02-18 Tue 12:16]
Exercise 4.43 Problematical Recreations
[2020-02-18 Tue 13:31]
Exercise 4.44 Nondeterministic eight queens
[2020-02-18 Tue 15:17]
Exercise 4.45 Five parses
[2020-02-18 Tue 19:45]
Exercise 4.46 Order of parsing
[2020-02-18 Tue 19:55]
Exercise 4.47 Parse verb phrase by Louis
[2020-02-18 Tue 20:13]
Exercise 4.48 Extending the grammar
[2020-02-18 Tue 21:06]
Exercise 4.49 Alyssa's generator
[2020-02-18 Tue 21:51]
Exercise 4.50 The ~ramb~ operator
[2020-02-17 Mon 14:56]
Exercise 4.51 Implementing ~permanent-set!~
[2020-02-18 Tue 22:34]
Exercise 4.52 ~if-fail~
[2020-02-19 Wed 00:05]
Exercise 4.53 Test evaluation
[2020-02-19 Wed 00:12]
Exercise 4.54 ~analyze-require~
[2020-02-19 Wed 11:26]
Exercise 4.55 Simple queries
[2020-02-19 Wed 17:38]
Exercise 4.56 Compound queries
[2020-02-19 Wed 18:04]
Exercise 4.57 Custom rules
[2020-02-19 Wed 21:36]
Exercise 4.58 Big shot
[2020-02-19 Wed 22:12]
Exercise 4.59 Meetings
[2020-02-19 Wed 22:57]
Exercise 4.60 Pairs live near
[2020-02-19 Wed 23:20]
Exercise 4.61 Next-to relation
[2020-02-19 Wed 23:31]
Exercise 4.62 Last-pair
[2020-02-20 Thu 00:19]
Exercise 4.63 Genesis
[2020-02-20 Thu 10:28]
Figure 4.6 How the system works
[2020-02-20 Thu 10:59]
Exercise 4.64 Broken outranked-by
[2020-02-20 Thu 12:33]
Exercise 4.65 Second-degree subordinates
[2020-02-20 Thu 12:50]
Exercise 4.66 Ben's accumulation
[2020-02-20 Thu 13:08]
Exercise 4.67 Loop detector
[2020-02-20 Thu 23:20]
Exercise 4.68 Reverse rule
[2020-02-21 Fri 15:48]
Exercise 4.69 Great grandchildren
[2020-02-21 Fri 17:43]
Exercise 4.70 Cons-stream delays second argument
[2020-02-20 Thu 17:08]
Exercise 4.71 Louis' simple queries
[2020-02-21 Fri 20:56]
Exercise 4.72 ~interleave-stream~
[2020-02-20 Thu 17:11]
Exercise 4.73 ~flatten-stream~ delays
[2020-02-20 Thu 17:19]
Exercise 4.74 Alyssa's streams
[2020-02-21 Fri 22:00]
Exercise 4.75 ~unique~ special form
[2020-02-21 Fri 23:19]
Exercise 4.76 Improving ~and~
[2020-02-22 Sat 18:27]
Exercise 4.77 Lazy queries
[2020-03-14 Sat 15:42]
Exercise 4.78 Non-deterministic queries
[2020-03-15 Sun 12:40]
Exercise 4.79 Prolog environments
[2020-05-10 Sun 17:59]
Figure 5.1 Data paths for a Register Machine
[2020-02-23 Sun 13:18]
Figure 5.2 Controller for a GCD Machine
[2020-02-22 Sat 22:27]
Exercise 5.1 Register machine plot
[2020-02-22 Sat 22:56]
Exercise 5.2 Register machine Exercise 5.1
[2020-02-23 Sun 13:26]
Exercise 5.3 Machine for ~sqrt~, Newton Method
[2020-02-23 Sun 20:47]
Exercise 5.4 Recursive register machines
[2020-02-24 Mon 20:49]
Exercise 5.5 Manual factorial and Fibonacci
[2020-02-24 Mon 23:27]
Exercise 5.6 Fibonacci machine extra instructions
[2020-02-24 Mon 23:43]
Exercise 5.7 Test the 5.4 machine on a simulator
[2020-02-25 Tue 10:42]
Exercise 5.8 Ambiguous labels
[2020-02-25 Tue 21:58]
Exercise 5.9 Prohibit (op)s on labels
[2020-02-25 Tue 22:23]
Exercise 5.10 Changing syntax
[2020-02-25 Tue 22:39]
Exercise 5.11 Save and restore
[2020-02-26 Wed 13:30]
Exercise 5.12 Data paths from controller
[2020-02-26 Wed 23:40]
Exercise 5.13 Registers from controller
[2020-02-27 Thu 10:57]
Exercise 5.14 Profiling
[2020-02-28 Fri 20:21]
Exercise 5.15 Instruction counting
[2020-02-28 Fri 21:36]
Exercise 5.16 Tracing execution
[2020-02-28 Fri 22:59]
Exercise 5.17 Printing labels
[2020-02-29 Sat 17:43]
Exercise 5.18 Register tracing
[2020-02-29 Sat 14:07]
Exercise 5.19 Breakpoints
[2020-02-29 Sat 17:42]
Exercise 5.20 Drawing a list ~(#1=(1 . 2) #1)~
[2020-02-29 Sat 22:15]
Exercise 5.21 Register machines list operations
[2020-03-01 Sun 13:03]
Exercise 5.22 ~append~ and ~append!~ as machines
[2020-03-01 Sun 14:11]
Exercise 5.23 EC-evaluator with ~let~ and ~cond~
[2020-03-02 Mon 10:52]
Exercise 5.24 Making ~cond~ a primitive
[2020-03-02 Mon 14:42]
Exercise 5.25 Normal-order (lazy) evaluation
[2020-03-03 Tue 14:57]
Exercise 5.26 Tail recursion with ~factorial~
[2020-03-03 Tue 19:38]
Exercise 5.27 Stack depth for recursive factorial
[2020-03-03 Tue 19:49]
Exercise 5.28 Interpreters without tail recursion
[2020-03-03 Tue 20:29]
Exercise 5.29 Stack in tree-recursive Fibonacci
[2020-03-03 Tue 20:50]
Exercise 5.30 Errors
[2020-03-04 Wed 11:35]
Exercise 5.31 a ~preserving~ mechanism
[2020-03-04 Wed 21:36]
Exercise 5.32 Symbol-lookup optimization
[2020-03-04 Wed 22:51]
Exercise 5.33 Compiling ~factorial-alt~
[2020-03-05 Thu 16:55]
Exercise 5.34 Compiling iterative factorial
[2020-03-05 Thu 20:58]
Exercise 5.35 Decompilation
[2020-03-05 Thu 21:30]
Exercise 5.36 Order of evaluation
[2020-03-06 Fri 17:47]
Exercise 5.37 ~preserving~
[2020-03-06 Fri 21:01]
Exercise 5.38 Open code primitives
[2020-03-07 Sat 18:57]
Exercise 5.39 ~lexical-address-lookup~
[2020-03-07 Sat 20:41]
Exercise 5.40 Compile-time environment
[2020-03-08 Sun 15:02]
Exercise 5.41 ~find-variable~
[2020-03-07 Sat 19:37]
Exercise 5.42 Compile variable and assignment
[2020-03-08 Sun 12:59]
Exercise 5.43 Scanning out defines
[2020-03-08 Sun 21:00]
Exercise 5.44 Open code compile-time environment
[2020-03-08 Sun 21:29]
Exercise 5.45 Stack usage for ~factorial~
[2020-03-09 Mon 10:09]
Exercise 5.46 Stack usage for ~fibonacci~
[2020-03-09 Mon 10:34]
Exercise 5.47 Calling interpreted procedures
[2020-03-09 Mon 11:45]
Exercise 5.48 ~compile-and-run~
[2020-03-10 Tue 12:14]
Exercise 5.49 ~read-compile-execute-print~ loop
[2020-03-10 Tue 12:36]
Exercise 5.50 Compiling the metacircular evaluator
[2020-03-14 Sat 15:52]
Exercise 5.51 EC-evaluator in low-level language
[2020-04-13 Mon 11:45]
Exercise 5.52 Making a compiler for Scheme
[2020-05-06 Wed 11:09]
</pre>
</div>
</div>
</section> <section id="outline-container-appendix:-Emacs-Lisp-code-for-data-analysis" class="outline-2"> <h2 id="appendix:-Emacs-Lisp-code-for-data-analysis"> <span class="section-number-2">9.</span>  <a href="#appendix:-Emacs-Lisp-code-for-data-analysis">Appendix: Emacs Lisp code for data analysis</a></h2>
 <div class="outline-text-2" id="text-appendix:-Emacs-Lisp-code-for-data-analysis">
 <p>
This section included the Emacs Lisp code used to analyse the data above.
The code is directly executable in the org-mode version of the report.
Interested readers reading the PDF version are advised to consult the 
org-mode version.
</p>

 <div class="org-src-container">
 <pre class="src src-elisp">  ( <span style="font-weight: bold;">require</span> ' <span style="font-weight: bold; text-decoration: underline;">org-element</span>)
  ( <span style="font-weight: bold;">cl-labels</span> (

   <span style="font-weight: bold; font-style: italic;">; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (decorate-orgtable (tbl)
    (seq-concatenate
     'string
      <span style="font-style: italic;">"("</span>
   <span style="font-style: italic;">"| Exercise | Days | Sessions | Minutes |"</span>
  (char-to-string ?\n)
   <span style="font-style: italic;">"|- + - + - + - |"</span>
  (format-orgtable tbl)
   <span style="font-style: italic;">")"</span>)
  )

   <span style="font-weight: bold; font-style: italic;">; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (format-orgtable (list-of-lists)
  (apply
   #'seq-concatenate
   (cons
    'string
    (seq-map 
       ( <span style="font-weight: bold;">lambda</span> (x) (format-table-line x))
      list-of-lists)))
  )

   <span style="font-weight: bold; font-style: italic;">; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (format-table-line (line)
  (seq-concatenate 'string
   (char-to-string ?\n)
    <span style="font-style: italic;">"|"</span>
   (substring 
     (car line)
     0
     (min 60 (seq-length (car line))))
    <span style="font-style: italic;">"|"</span>
   (format  <span style="font-style: italic;">"%3.3f"</span>(caddr line))
    <span style="font-style: italic;">"|"</span>
   (format  <span style="font-style: italic;">"%3d"</span> (nth 4 line))
    <span style="font-style: italic;">"|"</span>
   (format  <span style="font-style: italic;">"%3.3f"</span> (nth 6 line))
    <span style="font-style: italic;">"|"</span>)
  )

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (get-study-sessions-data ()
    ( <span style="font-weight: bold;">save-excursion</span>
      (org-babel-goto-named-src-block
         <span style="font-style: italic;">"study-sessions-data"</span>)
      (seq-map ( <span style="font-weight: bold;">lambda</span> (x) 
                 (list
                      (org-time-string-to-seconds
                        (substring-no-properties
                          x
                          3
                          23))
                      (org-time-string-to-seconds
                        (substring-no-properties
                          x
                          26
                          46))
                      ))
      (seq-subseq
       (split-string
        (org-element-property 
           <span style="font-weight: bold;">:value</span> 
          (org-element-at-point))
         <span style="font-style: italic;">"\n"</span>)
       0
       -1))) 
   )

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (get-task-sequence-data ()
  ( <span style="font-weight: bold;">save-excursion</span>
      (org-babel-goto-named-src-block 
         <span style="font-style: italic;">"completion-times-data"</span>)
    ( <span style="font-weight: bold;">let</span> ((exercise-index 0))
     (seq-mapn
      ( <span style="font-weight: bold;">lambda</span> (nam dat)
        ( <span style="font-weight: bold;">setq</span> exercise-index
          (+ 1 exercise-index))
        (list nam dat exercise-index))
    (apply #'seq-concatenate 
    (cons 'list
    (seq-map-indexed
       ( <span style="font-weight: bold;">lambda</span> (x idx) 
         ( <span style="font-weight: bold;">if</span> (= 0 (mod idx 2))
           (list x)
           nil))
       (seq-subseq
       (split-string
        (org-element-property 
           <span style="font-weight: bold;">:value</span> (org-element-at-point))
         <span style="font-style: italic;">"\n"</span>)
       0
       -1))))
      (apply #'seq-concatenate 
    (cons 'list
    (seq-map-indexed
       ( <span style="font-weight: bold;">lambda</span> (x idx) 
         ( <span style="font-weight: bold;">if</span> (= 1 (mod idx 2))
            <span style="font-weight: bold; font-style: italic;">;</span> <span style="font-weight: bold; font-style: italic;">(print x)
</span>           (list x)
           nil))
       (seq-subseq
       (split-string
        (org-element-property
           <span style="font-weight: bold;">:value</span> (org-element-at-point))
         <span style="font-style: italic;">"\n"</span>)
       0
       -1)))))))
  )

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (sort-task-seq (task-seq)
   (seq-sort
    ( <span style="font-weight: bold;">lambda</span> (x y)
      ( <span style="font-weight: bold;">if</span> (org-time< (cadr x)
                     (cadr y))
          t
        nil))
    task-seq)
   )

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (find-out-of-order-tasks (task-seq)
  (seq-reduce 
     ( <span style="font-weight: bold;">lambda</span> (acc next-elem)
        ( <span style="font-weight: bold;">if</span> (org-time< 
              (cadr next-elem) (cadr acc))
          (list (+ 1 (car acc))
                (cadr next-elem)
                (cons (cadddr acc) (caddr acc))
                next-elem)
          (list (car acc)
                (cadr next-elem)
                (caddr acc) next-elem)))
   task-seq
   (list 0  <span style="font-style: italic;">"2019-08-19 Mon 09:19"</span> (list) (list)))
  )

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (find-spanning-sessions-and-duration
   (prev-time-stamp 
    next-time-stamp
    study-sessions)
   (seq-reduce
    ( <span style="font-weight: bold;">lambda</span> (acc next-session)
      ( <span style="font-weight: bold;">let</span> ((session-start (car next-session))
            (session-end (cadr next-session)))
        ( <span style="font-weight: bold;">cond</span> ((<= session-end prev-time-stamp) 
               acc)
              ((<= next-time-stamp session-start)
               acc)
              (t (list (+ (car acc) 1)
                       (+ (cadr acc)
 ( <span style="font-weight: bold;">cond</span> (( <span style="font-weight: bold;">and</span> (<= prev-time-stamp session-start)
             (<= session-end next-time-stamp))
        (- session-end session-start))
       (( <span style="font-weight: bold;">and</span> (<= session-start prev-time-stamp)
             (<= prev-time-stamp session-end)
             (<= session-end next-time-stamp))
        (- session-end prev-time-stamp))
       (( <span style="font-weight: bold;">and</span> (<= prev-time-stamp session-start)
             (<= session-start next-time-stamp)
             (<= next-time-stamp session-end))
        (- next-time-stamp session-start))
       (( <span style="font-weight: bold;">and</span> (<= session-start prev-time-stamp)
             (<= next-time-stamp session-end))
        (- next-time-stamp prev-time-stamp))
       (t 0))))))))
    study-sessions
    (list 0 0)))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (summarize-list (sorted-task-seq study-sessions)
  (cadr (seq-reduce
( <span style="font-weight: bold;">lambda</span> (acc next-elem)
  ( <span style="font-weight: bold;">let</span> ((prev-time-stamp (car acc))
        (retval (cadr acc))
        (next-time-stamp
         (org-time-string-to-seconds
          (cadr next-elem)))
        (exercise-name (car next-elem))
        (exercise-index (caddr next-elem)))
    ( <span style="font-weight: bold;">let</span> ((spans-sessions
           (find-spanning-sessions-and-duration
            prev-time-stamp 
            next-time-stamp 
            study-sessions)))
      (list next-time-stamp
            (cons 
(list exercise-name
  <span style="font-weight: bold;">:spent-time-calendar-days</span> 
   (/ (-
       next-time-stamp
       prev-time-stamp)
      (* 60 60 24))
  <span style="font-weight: bold;">:spans-sessions</span> 
   ( <span style="font-weight: bold;">if</span> (not (eq 0 (car spans-sessions)))
     (car spans-sessions)
   ( <span style="font-weight: bold;">error</span> 
      <span style="font-style: italic;">"Fix time: %s, spans-sessions=%s"</span>
     next-elem
     spans-sessions))
  <span style="font-weight: bold;">:spent-time-net-minutes</span> 
   (/ (cadr spans-sessions) 60)
  <span style="font-weight: bold;">:original-index</span> 
   exercise-index)
   retval)))))
         sorted-task-seq
         (list 
 (org-time-string-to-seconds
    <span style="font-style: italic;">"2019-08-19 Mon 09:19"</span>)
   ())))
)

  (r-h (l)
    (seq-reverse (seq-subseq l 0)))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (make-logarithmic-histogram (astrotime-list)
  ( <span style="font-weight: bold;">let*</span> ((numbins
          (ceiling
           (log (+ 1.0
                   (seq-reduce
                    #'max
                    (seq-map 
                      ( <span style="font-weight: bold;">lambda</span> (x) (nth 6 x))
                     (r-h astrotime-list))
                    0))
                2))))

    (seq-reduce
     ( <span style="font-weight: bold;">lambda</span> (acc elem)
       ( <span style="font-weight: bold;">let*</span> ((hardness (nth 6 elem))
              (nbin (floor (log (+ 1.0 hardness)
                                2))))
         (aset acc
               nbin
               (+ 1 (aref acc nbin)))
         acc))
     (r-h astrotime-list)
     (make-vector numbins 0)))
  )

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (make-linear-histogram (astrotime-list)
  ( <span style="font-weight: bold;">let*</span> ((numbins 32)
         (binsize
          (ceiling
           (/ (seq-reduce
               #'max
               (seq-map
                ( <span style="font-weight: bold;">lambda</span> (x) (nth 6 x))
                (r-h astrotime-list))
               0)
              numbins ))))

    (seq-reduce
     ( <span style="font-weight: bold;">lambda</span> (acc elem)
       ( <span style="font-weight: bold;">let*</span> ((hardness (nth 6 elem))
              (nbin (floor (/ hardness binsize))))
         (aset acc
               nbin
               (+ 1 (aref acc nbin)))
         acc))
     (r-h astrotime-list)
     (make-vector numbins 0)))
  )

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (sort-by-hardness (astrotime-list)
   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">6 is the hardness index
</span>  (seq-sort ( <span style="font-weight: bold;">lambda</span> (x y)
              ( <span style="font-weight: bold;">let*</span> ((hardness-x (nth 6 x))
                     (hardness-y (nth 6 y)))
                ( <span style="font-weight: bold;">if</span> (< hardness-x hardness-y)
                    t
                  nil)))
            astrotime-list)
  )

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (sort-by-nsessions (astrotime-list)
   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">4 is the nsessions index
</span>  (seq-sort ( <span style="font-weight: bold;">lambda</span> (x y)
              ( <span style="font-weight: bold;">let*</span> ((nses-x (nth 4 x))
                     (nses-y (nth 4 y)))
                ( <span style="font-weight: bold;">if</span> (< nses-x nses-y)
                    t
                  nil)))
            astrotime-list)
  )

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-defun
</span>  (sort-by-original-index (astrotime-list)
   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">8 is the original index
</span>  (seq-sort ( <span style="font-weight: bold;">lambda</span> (x y)
              ( <span style="font-weight: bold;">let*</span> ((oidx-x (nth 8 x))
                     (oidx-y (nth 8 y)))
                ( <span style="font-weight: bold;">if</span> (< oidx-x oidx-y)
                    t
                  nil)))
            astrotime-list)
  )

  )  <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">end cl-labels defuns
</span>
  ( <span style="font-weight: bold;">let*</span> (

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-define
</span>  (study-sessions (get-study-sessions-data))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-define
</span>  (task-seq (get-task-sequence-data))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-define
</span>  (sorted-task-seq (sort-task-seq task-seq))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-define
</span>  (out-of-order-tasks 
    (find-out-of-order-tasks task-seq))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-define
</span>  (astrotime-list
   (summarize-list 
     sorted-task-seq
     study-sessions))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-define
</span>  (problems-sorted-by-completion-time
   (seq-reverse astrotime-list))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-define
</span>  (logarithmic-histogram
   (make-logarithmic-histogram astrotime-list))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-define
</span>  (linear-histogram
   (make-linear-histogram astrotime-list))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-define
</span>
  (problems-sorted-by-hardness
   (sort-by-hardness astrotime-list))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-define
</span>  (problems-sorted-by-nsessions
   (sort-by-nsessions astrotime-list))

   <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">lexical-define
</span>  (problems-sorted-by-original-index
   (sort-by-original-index astrotime-list))

  )

 (princ (char-to-string ?\())
 (pp  <span style="font-style: italic;">"Amount of the out-of-order-problems: "</span>)
 (princ (char-to-string ?\())
 (pp (number-to-string 
       (car out-of-order-tasks)))
 (princ (char-to-string ?\n))

 (pp  <span style="font-style: italic;">"Out-of-order problems :"</span>)
 (princ (char-to-string ?\n))
 (pp (caddr out-of-order-tasks))
 (princ (char-to-string ?\n))

 (pp  <span style="font-style: italic;">"Task summary (completion time):"</span>)
 (princ (char-to-string ?\n))
 (princ 
  (decorate-orgtable 
   (seq-subseq 
    problems-sorted-by-completion-time
    0 3)))
 (princ (char-to-string ?\n))


 (princ (char-to-string ?\n))
 (pp  <span style="font-style: italic;">"Task summary (original-index):"</span>)
 (princ (char-to-string ?\n))
  <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">(pp (seq-subseq
</span>  <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">problems-sorted-by-original-index 0 2))
</span> (princ 
  (decorate-orgtable 
   (seq-subseq 
    problems-sorted-by-original-index
    0 3)))
 (princ (char-to-string ?\n))

  <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">Hardest 10 problems
</span> (princ (char-to-string ?\n))
 (pp  <span style="font-style: italic;">"Hardest 10 problems (raw):"</span>)
 (princ (char-to-string ?\n))
  <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">(pp (seq-subseq
</span>  <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">problems-sorted-by-original-index 0 2))
</span> (princ 
  (decorate-orgtable 
   (seq-subseq 
    problems-sorted-by-hardness
    -10)))
 (princ (char-to-string ?\n))

  <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">Hardest 10 problems
</span> (princ (char-to-string ?\n))
 (pp  <span style="font-style: italic;">"Hardest 10 problems (sessions):"</span>)
 (princ (char-to-string ?\n))
  <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">(pp (seq-subseq
</span>  <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">problems-sorted-by-original-index 0 2))
</span> (princ 
  (decorate-orgtable 
   (seq-subseq 
    problems-sorted-by-nsessions
    -10)))
 (princ (char-to-string ?\n))


 (princ (char-to-string ?\n))
 (pp  <span style="font-style: italic;">"Logarithmic histogram:"</span>)
  <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">Make a logarithmic histogram
</span> (princ (char-to-string ?\n))

 (pp logarithmic-histogram)
 (princ (char-to-string ?\n))

 (pp  <span style="font-style: italic;">"Linear histogram:"</span>)
 (princ (char-to-string ?\n))
  <span style="font-weight: bold; font-style: italic;">;; </span> <span style="font-weight: bold; font-style: italic;">Make a linear histogram
</span> (pp linear-histogram)
 (princ (char-to-string ?\n))

 (pp  <span style="font-style: italic;">"Median difficulty:"</span>)
 (princ (char-to-string ?\n))

 (pp
  (nth
   (floor (/ (seq-length
              problems-sorted-by-hardness)
             2))
          problems-sorted-by-hardness))

 (pp  <span style="font-style: italic;">"Median n-sessions:"</span>)
 (princ (char-to-string ?\n))

 (pp
  (nth
   (floor (/ (seq-length
              problems-sorted-by-nsessions)
             2))
          problems-sorted-by-nsessions))
 (princ (char-to-string ?\))))
 ))
</pre>
</div>




 <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Introduction">1. Introduction</a></li>
 <li> <a href="#Solution-approach">2. Solution approach</a>
 <ul> <li> <a href="#Completeness">2.1. Completeness</a>
 <ul> <li> <a href="#Just-solve-all-of-the-exercises">2.1.1. Just solve all of the exercises</a></li>
 <li> <a href="#A-faithful-imitation-of-the-university-experience">2.1.2. A faithful imitation of the university experience</a></li>
 <li> <a href="#Meta-cognitive-exercises">2.1.3. Meta-cognitive exercises</a></li>
 <li> <a href="#Figures-to-re-typeset">2.1.4. Figures to re-typeset</a></li>
</ul></li>
 <li> <a href="#Behaviour-modelling,-reenactment-and-the-choice-of-tools">2.2. Behaviour modelling, reenactment and the choice of tools</a>
 <ul> <li> <a href="#The-author's-background">2.2.1. The author’s background</a></li>
 <li> <a href="#The-tools">2.2.2. The tools</a></li>
</ul></li>
 <li> <a href="#Org-mode-as-a-universal-medium-for-reproducible-research">2.3. Org-mode as a universal medium for reproducible research</a></li>
 <li> <a href="#Different-problem-types">2.4. Different problem types</a></li>
</ul></li>
 <li> <a href="#Time-analysis,-performance-profiling-and-graphs">3. Time analysis, performance profiling and graphs</a>
 <ul> <li> <a href="#Workflow-details-and-profiling">3.1. Workflow details and profiling</a></li>
 <li> <a href="#Out-of-order-problems-and-other-measures">3.2. Out-of-order problems and other measures</a></li>
 <li> <a href="#Ten-hardest-problems-by-raw-time">3.3. Ten hardest problems by raw time</a></li>
 <li> <a href="#Minutes-spent-per-problem">3.4. Minutes spent per problem</a></li>
 <li> <a href="#Days-spent-per-problem">3.5. Days spent per problem</a></li>
 <li> <a href="#Study-sessions-per-problem">3.6. Study sessions per problem</a></li>
 <li> <a href="#Difficulty-histogram-(linear)">3.7. Difficulty histogram (linear)</a></li>
 <li> <a href="#Difficulty-histogram-(logarithmic)">3.8. Difficulty histogram (logarithmic)</a></li>
</ul></li>
 <li> <a href="#Conclusion-and-Further-Work">4. Conclusion and Further Work</a>
 <ul> <li> <a href="#Conclusion">4.1. Conclusion</a></li>
 <li> <a href="#Further-work">4.2. Further work</a></li>
 <li> <a href="#Informal-review">4.3. Informal review</a></li>
 <li> <a href="#Informal-recommendations">4.4. Informal recommendations</a></li>
</ul></li>
 <li> <a href="#Materials">5. Materials</a>
 <ul> <li> <a href="#Books">5.1. Books</a></li>
 <li> <a href="#Software">5.2. Software</a></li>
 <li> <a href="#Papers">5.3. Papers</a></li>
</ul></li>
 <li> <a href="#appendix:-Analysed-data-on-problem-difficulty">6. Appendix: Analysed data on problem difficulty</a>
 <ul> <li> <a href="#Analysed-time-consumption">6.1. Analysed time consumption</a></li>
 <li> <a href="#Time-consumption-histogram-linear">6.2. Time consumption histogram linear</a></li>
 <li> <a href="#Time-consumption-histogram-logarithmic">6.3. Time consumption histogram logarithmic</a></li>
</ul></li>
 <li> <a href="#appendix:-Full-data-on-the-study-sessions.">7. Appendix: Full data on the study sessions.</a></li>
 <li> <a href="#appendix:-Full-data-on-the-exercise-completion-times.">8. Appendix: Full data on the exercise completion times.</a></li>
 <li> <a href="#appendix:-Emacs-Lisp-code-for-data-analysis">9. Appendix: Emacs Lisp code for data analysis</a></li>
</ul></div>
</nav></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2021-02-08_Solving-SICP-Experience-Report-on-solving-sicp-from-icfp-scheme-2020-html-version-from-2020-08-29/Experience_Report.html"/>
  <id>https://lockywolf.net/2021-02-08_Solving-SICP-Experience-Report-on-solving-sicp-from-icfp-scheme-2020-html-version-from-2020-08-29/Experience_Report.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>I&apos;ve hacked a simple script for drawing a file system tree as a graph with graphviz. Sounds fun?</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">I’ve hacked a simple script for drawing a file system tree as a graph with graphviz. Sounds fun?</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Once-I-realised-than-a-file-system-tree-is-like-a-MindMap...">1. Once I realised than a file system tree is like a MindMap…</a></li>
</ul></div>
</nav> <section id="outline-container-Once-I-realised-than-a-file-system-tree-is-like-a-MindMap..." class="outline-2"> <h2 id="Once-I-realised-than-a-file-system-tree-is-like-a-MindMap..."> <span class="section-number-2">1.</span>  <a href="#Once-I-realised-than-a-file-system-tree-is-like-a-MindMap...">Once I realised than a file system tree is like a MindMap…</a></h2>
 <div class="outline-text-2" id="text-Once-I-realised-than-a-file-system-tree-is-like-a-MindMap...">
 <p>
Here’s the gitlab link:  <a href="https://gitlab.com/Lockywolf/scsh-xattr-mindmap">https://gitlab.com/Lockywolf/scsh-xattr-mindmap</a>
</p>

 <p>
Contrary to the name, it is actually in Chibi, not in scsh. I initially thought that scsh would be better due to more exensive posix support, but it turned out to be that Chibi was good enough.
</p>

 <p>
It is a small-ish (500 lines of code) script to generate a graph from your filesystem tree. It accepts a few options (editable directly at the file top) and duplicates quite a lot of the GNU Find functionality, but I didn’t find a way to avoid doing that, as it has to use heuristics in order to prune the tree to a reasonable size.
</p>

 <p>
The resulting image is like this:
</p>


 <figure id="org1421d8d"> <img src="2021-04-13_Slarm64-repo-tree.smaller.png" alt="2021-04-13_Slarm64-repo-tree.smaller.png"></img></figure> <p>
 <a href="https://gitlab.com/Lockywolf/scsh-xattr-mindmap/-/raw/master/2021-04-13_Slarm64-repo-tree.smaller.png">Small, 1Mb</a>
</p>

 <p>
 <a href="https://gitlab.com/Lockywolf/scsh-xattr-mindmap/-/blob/master/2021-04-13_Slarm64-repo-tree.png">Large, 44Mb</a>
</p>

 <p>
I plotted the  <a href="https://sarpi64.fatdog.eu/">Slarm64 (Unofficial Slackware for Raspberry Pi)</a> repository tree, just for the demonstration purposes.
</p>

 <p>
The size of the images above is 1x2.5 metres. It’s large, but my original goal was to plot my whole file system. The ’size=’ parameter is tunable. I think it is reasonable to assume that you need to have at least 4 square centimetres per node, so a graph that large would accommodate about 4000 nodes. In my opinion, 8000 is still possible, but too tight.
</p>

 <p>
With the default settings the script ignores regular files, but traverses symlinks. In theory it also supports hardlinks, but you would need to turn on drawing regular files manually.
</p>

 <p>
I made this script, because I started to feel that I am starting to forget what I have on my hard drive, that has amassed quite a lot of life history for the past 20 years. (Since hard drives became reasonably priced.)
</p>

 <p>
Use-cases and pull requests welcome. One more reason to create this script was to prove that Scheme can be a practical programming language.
</p>

 <p>
Technologically, this code is not terribly advanced, the only trick that may be interesting to programming nerds is having the r7rs module and the main function in the same file (like scsh/scheme48 suggest doing), which requires procedural module analysis. 
</p>

 <p>
I had to glue on a couple of C bindings for sys/xattr.h, those are now available at the Snow-Fort repo. Those are Chibi-specific.
</p>

 <p>
Hope you will enjoy it.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2021-04-13_Scheme-Filesystem-Mindmap-Blog-Post/index.html"/>
  <id>https://lockywolf.net/2021-04-13_Scheme-Filesystem-Mindmap-Blog-Post/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Scheme Workshop 2021 announced (translation). (Habr: анонсирован Scheme Workshop 2021) (Russian)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Scheme Workshop 2021 announced (translation). (Habr: анонсирован Scheme Workshop 2021) (Russian)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Содержание</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D0%B0%D0%BD%D0%BE%D0%BD%D1%81%D0%B0.-(Call-for-Papers)">1. Перевод анонса. (Call for Papers)</a></li>
</ul></div>
</nav> <figure id="org73b91e3"> <img src="sfp.png" alt="sfp.png"></img></figure> <p>
Этот пост представляет собой перевод анонса Международной Научно-Прикладной конференции Scheme Workshop 2021.
</p>

 <p>
Для тех, кто не ходит под кат:
</p>

 <ul class="org-ul"> <li>Тема конференции – Lisp, Scheme, Emacs, и другие родственные языки, а также преподавание программирования.</li>
 <li>Приём и рецензирование докладов продлится до 26 июня.</li>
 <li>Сама конференция состоится 27 августа 2021 года, одновременно с Международной Конференцией по Функциональному Программированию.</li>
 <li>Допускаются как научные доклады, так и практические отчёты, и обзоры.</li>
</ul> <section id="outline-container-%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D0%B0%D0%BD%D0%BE%D0%BD%D1%81%D0%B0.-(Call-for-Papers)" class="outline-2"> <h2 id="%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D0%B0%D0%BD%D0%BE%D0%BD%D1%81%D0%B0.-(Call-for-Papers)"> <span class="section-number-2">1.</span>  <a href="#%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D0%B0%D0%BD%D0%BE%D0%BD%D1%81%D0%B0.-(Call-for-Papers)">Перевод анонса. (Call for Papers)</a></h2>
 <div class="outline-text-2" id="text-%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D0%B0%D0%BD%D0%BE%D0%BD%D1%81%D0%B0.-(Call-for-Papers)">
 <p>
The 2021 Scheme and Functional Programming Workshop is calling for submissions.
</p>

 <p>
Объявлена подача заявок на Международную Конференцию по Функциональному Программированию и Языку Scheme.
</p>

 <p>
We invite high-quality papers about novel research results, lessons learned from practical experience in industrial or educational setting, and even new insights on old ideas. We welcome and encourage submissions that apply to any language that can be considered Scheme: from strict subsets of RnRS to other “Scheme” implementations, to Racket, to Lisp dialects including Clojure, Emacs Lisp, Common Lisp, to functional languages with continuations and/or macros (or extended to have them) such as Dylan, ECMAScript, Hop, Lua, Scala, Rust, etc. The elegance of the paper and the relevance of its topic to the interests of Schemers will matter more than the surface syntax of the examples used. Topics of interest include (but are not limited to):
</p>

 <p>
На конференцию приветствуется подача докладов, отчётов и статей о новых научных результатах, практическом опыте их применения в индустрии и образовании, и даже творческое переосмысление старых идей.
Приветствуется труды, посвящённые языкам, в какой-либо степени родственных Scheme: как строго подчиняющимся стандартам серии RnRS, так и более вольно их трактующим, но всё ещё считающих себя Scheme; а также иным диалектам Lisp, Racket, Common Lisp, иным функциональным языкам, поддерживающим замыкания и/или макросы (в том числе в качестве расширений),
например, Dylan, ECMAScript, Hop, Lua, Scala, Rust…
Элегантность статьи и содержательная ценность имеют больший вес при принятии решения о принятии, чем конкретный синтаксис примеров.
</p>

 <p>
Конкретные темы включают (но не ограничиваются):
</p>

 <p>
Interaction: program-development environments, debugging, testing, refactoring
</p>
 <ul class="org-ul"> <li>Взаимодествие с разработчиком: среды разработки, отладка, тестирование и рефакторинг</li>
</ul> <p>
Implementation: interpreters, compilers, tools, garbage collectors, benchmarks
</p>
 <ul class="org-ul"> <li>Реализация: интерпретаторы, компиляторы, инструменты, сборка мусора, профилирование и бенчмарки</li>
</ul> <p>
Extension: macros, hygiene, domain-specific languages, reflection, and how such extension affects interaction.
</p>
 <ul class="org-ul"> <li>Средства расширения: макросы и их гигиена, доменно-специфичные языки, рефлекшен и то, как расширения влияют на взаимодействие системы с программистом</li>
</ul> <p>
Expression: control, modularity, ad hoc and parametric polymorphism, types, aspects, ownership models, concurrency, distribution, parallelism, non-determinism, probabilism, and other programming paradigms
</p>
 <ul class="org-ul"> <li>Средства языковой выразительности: средства управления, модуляризация, свободный и параметрический полиморфизмы, типы, аспекты, модели владения, параллелизация, распределённые вычисления, недетерминированные вычисления, вероятностное программирование, и иные парадигмы программирования</li>
</ul> <p>
Integration: build tools, deployment, interoperation with other languages and systems
</p>
 <ul class="org-ul"> <li>Интеграция: сборочный инструментарий, развётывание, взаимодействие с другими языками и системами</li>
</ul> <p>
Formal semantics: Theory, analyses and transformations, partial evaluation
</p>
 <ul class="org-ul"> <li>Формальная семантика: теория, анализ и преобразования, частичное выполнение</li>
</ul> <p>
Human Factors: Past, present and future history, evolution and sociology of the language Scheme, its standard and its dialects
</p>
 <ul class="org-ul"> <li>Человеческий фактор: прошлое, настоящее и будущее, история, эволюция и социология языка, его стандартов и диалектов</li>
</ul> <p>
Education: approaches, experiences, curricula
</p>
 <ul class="org-ul"> <li>Образование: подходы, отчёты и программы</li>
</ul> <p>
Applications: industrial uses of Scheme
</p>
 <ul class="org-ul"> <li>Приложения: промышленные приложения Scheme</li>
</ul> <p>
Scheme pearls: elegant, instructive uses of Scheme
</p>
 <ul class="org-ul"> <li>Искусство программирования: элегантные и педагогичные примеры применения Scheme</li>
</ul> <p>
Important dates
Даты:
</p>

 <p>
Submission deadline is 26 June 2021.
Финальная дата подачи докладов 26 июня 2021.
Authors will be notified by 12 July 2021.
Авторы будут уведомлены о прохождении рецензирования 12 июля 2021.
Camera-ready versions are due 21 July 2021.
Финальные версии докладов (после рецензирования), должны быть предоставлены 21 июля 2021.
All deadlines are (23:59 UTC-12), “Anywhere on Earth”.
Все даты указаны в часовом поясе (23:59 UTC-12) «в любой точке планеты».
Workshop will be held online 27 August 2021
Конференция будет проводиться онлайн, 27 августа 2021.
</p>

 <p>
Submission Information
Подача докладов
</p>

 <p>
Paper submissions must use the format acmart and its sub-format sigplan. They must be in PDF, printable in black and white on US Letter size. Microsoft Word and LaTeX templates for this format are available at:
</p>

 <p>
Бумажные доклады дожны использовать формат acmart, подформат sigplan.
Подача осуществляется в PDF, допускающем печать в чёрно-белом формате на бумаге US Letter.
Шаблоны для Microsoft Word и LaTeX доступны по адресу:
</p>

 <p>
 <a href="http://www.sigplan.org/Resources/Author/">http://www.sigplan.org/Resources/Author/</a>
</p>

 <p>
This format is in line with ACM conferences (such as ICFP with which we are colocated). It is recommended to use the review option when submitting a paper; this option enables line numbers for easy reference in reviews.
</p>

 <p>
Этот формат согласуется с прочими ACM-конференциями, включая ICFP, которая проходит одновременно.
Рекомендуется при подаче заявки включить опцию «review», это позволят нумеровать строки автоматически и упрощает рецензирование.
</p>

 <p>
We want to encourage all kinds of submissions, including full papers, experience reports and lightning talks. Papers and experience reports are expected to be 10–24 pages in length using the single-column SIGPLAN acmart style. (For reference, this is about 5–12 pages of the older SIGPLAN 2-column 9pt style.) Abstracts submitted for lightning talks should be limited to 192 words. Each accepted paper and report will be presented by its authors in a 25 minute slot including Q&A. Each accepted lightning talk will be presented by its authors in a 5 minute slot, followed by 5 minutes of Q&A.
</p>

 <p>
Приветствуются любые виды докладов, включая традиционные статьи, технические отчёты, и блиц-доклады.
Статьи и отчёты обычно занимают 10-24 страницы «нового» ACM SIGPLAN, свёрстанного в одну колонку.
(Для сравнения, это примерно 5-12 страниц «старого», двухколоночного ACM SIGPLAN 9pt).
Анонсы блиц-докладов ограничены в объёме 192 словами.
На каждую статью и отчёт выделяется 25 минут, включая вопросы докладчику.
На каждый блиц-доклад выделяется 5 минут, а также 5 минут на вопросы докладчику.
</p>

 <p>
The size limits above exclude references and any optional appendices. There are no size limits on appendices, but the papers should stand without the need to read them, and reviewers are not required to read them.
</p>

 <p>
Данные ограничения не включают список литературы и прочие приложения.
Приложения не ограничены в размере, но доклады должны быть понимаемы без них; также приложения могут быть оставлены без рецензирования.
</p>

 <p>
Authors are encouraged to publish any code associated to their papers under an open source license, so that reviewers may try the code and verify the claims.
</p>

 <p>
Публикация ассоциированного с докладами кода под условиями «лицензий открытого кода» приветствуется, с целью того, чтобы рецензенты могли запустить код и проверить его сделанные в докладе утверждения.
</p>

 <p>
Proceedings will be published as a Technical Report at Northeastern University and uploaded to arXiv.org.
</p>

 <p>
Труды конференции будут опубликованы в формате «Технический Отчёт» Северо-Восточного Университета (США, NorthEastern University), а также на сервере препринтов arXiv.org.
</p>

 <p>
Publication of a paper at this workshop is not intended to replace conference or journal publication, and does not preclude re-publication of a more complete or finished version of the paper at some later conference or in a journal.
</p>


 <p>
Презентация доклада на конференции не ставит себе целью заменить публикацию статьи (усовершенствованной редакции) в научном журнале или научной конференции более высокого уровня.
</p>

 <p>
Reviewing Process
Процесс рецензирований
</p>

 <p>
Scheme 2021 will use lightweight-double-blind reviewing. Submitted papers must omit author names and institutions and reference the authors’ own related work in the third person (e.g., not “we build on our previous work…” but rather “we build on the work of…”).
</p>

 <p>
На конференции Scheme 2021 будет применяться метод lightweight-double-blind (облегчённого двойного слепого) рецензирования.
Поданные доклады не должны включать имена авторов и учреждений, и должны ссылаться на иные работы в третьем лице.
(То есть, не «мы используем наш предыдущий результат…», а «мы пользуемся результатами, опубликованными Х»)
</p>

 <p>
The purpose is to help the reviewers come to an initial judgement about the paper without bias, not to make it impossible for them to discover the authors if they were to try. Nothing should be done in the name of anonymity that weakens the submission or makes the job of reviewing the paper more difficult (e.g., important background references should not be omitted or anonymized).
Formatting Information
</p>

 <p>
Такая методика ставит своей целью помочь рецензентам оценить статью без предубеждения, но не исключить установление рецензентами авторства принципиально. Не следует во имя анонимности предпренимать какие-нибудь действия, могущие ухудшить качество подаваемой заявки или затруднить рецензирование. (Ссылки на предыдущие работы не следует опускать или анонимизировать.)
</p>

 <p>
Full papers and experience reports should use the sigplan option to acmart.
Lightning talks can be submitted as either a text file or a PDF file.
It is recommended to use the anonymous and review options to acmart when submitting a paper; these options hide the author names and enable line numbers for easy reference in review.
</p>

 <p>
Статьи и отчёты должны использовать формат «acmart» с опцией «sigplan».
Блиц-доклады могут быть поданы в формате обычного текста, либо как PDF-файл.
Рекомендуется также использовать опции «anonymous» и «review», эти опции автоматически скрывают имя автора и включают нумерацию строк для упрощения рецензирования.
</p>

 <p>
Submission Link
Ссылка на интерфейс подачи заявки
</p>

 <p>
We will post the submission link closer to the deadline.
Будет опубликована ближе к дате подачи заявки
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2021-04-13_Scheme-Workshop-2021-Announcement-Habr/index.html"/>
  <id>https://lockywolf.net/2021-04-13_Scheme-Workshop-2021-Announcement-Habr/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A review on &quot;Little Soldiers&quot; by Lenora Chu.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A review on “Little Soldiers” by Lenora Chu.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#The-Review">1. The Review</a>
 <ul> <li> <a href="#Author">1.1. Author</a></li>
 <li> <a href="#Synopsis">1.2. Synopsis</a></li>
 <li> <a href="#Content">1.3. Content</a></li>
 <li> <a href="#Competition">1.4. Competition</a></li>
 <li> <a href="#Cheating">1.5. Cheating</a></li>
 <li> <a href="#Militarism">1.6. Militarism</a></li>
 <li> <a href="#Migration-and-overpopulation">1.7. Migration and overpopulation</a></li>
 <li> <a href="#Shanghai">1.8. Shanghai</a></li>
 <li> <a href="#Epilogue">1.9. Epilogue</a></li>
 <li> <a href="#Contacts">1.10. Contacts</a></li>
</ul></li>
</ul></div>
</nav> <figure id="org1fba4ce"> <img src="001_book-cover-page_y648.jpg" alt="001_book-cover-page_y648.jpg"></img></figure> <p>
I have gone through the book in the title.
I am no saying “have read”, because for quite some time already, since first grasping this trick while conquering Baudrillard’s “Simulacra”, I am getting through a lot of material via listening to Text-to-Speech, rather than reading directly.
Not just is it very handy when there is a “sunken” time during which it is not possible to execute tasks that require full concentration.
This, however, comes at a price, namely, certain details are perceived differently, compared to reading in a traditional way.
</p>

 <p>
Anyway, I have listened through the book, and it was an enlightening experience, which I would like to share with the world in this short review.
</p>

 <p>
The book tells a story of an American couple with two children living in Shanghai for a few years, who’s elder son had a chance to attend classes in a Chinese kindergarten (as opposed to what typically happens to the expat children in China – they attend foreign-style kindergartens, which are especially plentiful in Shanghai).
</p>

 <p>
The book was especially interesting to me, as I am not an original product of either American, or Chinese culture, so I had a chance to see the story from a third-party perspective.
</p>

 <p>

</p>

 <section id="outline-container-The-Review" class="outline-2"> <h2 id="The-Review"> <span class="section-number-2">1.</span>  <a href="#The-Review">The Review</a></h2>
 <div class="outline-text-2" id="text-The-Review">
</div>

 <div id="outline-container-Author" class="outline-3">
 <h3 id="Author"> <span class="section-number-3">1.1.</span>  <a href="#Author">Author</a></h3>
 <div class="outline-text-3" id="text-Author">

 <figure id="org4803417"> <img src="002_US-China_139704162232550114678744.jpg" alt="002_US-China_139704162232550114678744.jpg"></img></figure> <p>
I have to say in advance, I have read this book in Russian, rather than in the original English.
I generally read in English quite a lot, however, I didn’t bother finding an English version when I had already found a Russian one I don’t remember where from.
(It was on my reading list for quite a while.)
</p>

 <p>
Mrs Chu herself is, or at least used to be, (2017) the chief of an American non-profit organisation Shanghai office.
She is a child of Chinese migrants to the United States, and hence had an opportunity to experience both American and Chinese influence in her upbringing.
</p>

 <p>
She is also a member of the American council on relations with China:
 <a href="https://www.ncuscr.org/program/public-intellectuals-program/PIP-VI-fellows/lenora-chu">https://www.ncuscr.org/program/public-intellectuals-program/PIP-VI-fellows/lenora-chu</a>
</p>

 <p>
This immediately made me wonder where is the Russian Council on Russia-China relations.
Of course, there is a Russian Council on Foreign Affairs, but it is hardly a substitute.
</p>
</div>
</div>

 <div id="outline-container-Synopsis" class="outline-3">
 <h3 id="Synopsis"> <span class="section-number-3">1.2.</span>  <a href="#Synopsis">Synopsis</a></h3>
 <div class="outline-text-3" id="text-Synopsis">

 <figure id="orgfadfbbd"> <img src="003_exam-room_6ad1409d5a34913471b6d7b93700db3f.jpg" alt="003_exam-room_6ad1409d5a34913471b6d7b93700db3f.jpg"></img></figure> <p>
The book starts with her choosing a kindergarten for her kid.
She is contemplating between a foreign-style kindergarten and an authentic Chinese one.
</p>

 <p>
Obviously, curiosity wins over, and she arranges him joining “the most sophisticated Chinese kindergarten in Shanghai”, supposedly, the one which is attended by the cream of the crop of the Shanghainese elite.
</p>

 <p>
As grown-ups, we all know how important is the environment in which we are spending our time.
Even if we are not learning anything, or deliberately changing ourselves in some planned way, the surrounding conditions influence us.
And even if your child is investing strenuous effort into not learning anything at all from the teachers he is made to obey (which is unpredictable, and beyond the parent’s influence), the environment is going to have its effect regardless, and thus choosing a school is, perhaps, the most powerful way to shape your kid’s future, second only the effect of your own behaviour, which the child is bound to imbibe just due to being your offspring.
</p>

 <p>
It is often noticed (at least in Russia), that the most prestigious and competitive universities are, surprisingly, not the ones which have the best programmes or best teachers, but rather the ones which are chosen by the elites as schools for their children.
Needless to say, the strongest weak connections, and those that are the most likely to help you as you progress into your life, are the ones created while attending a University.
</p>

 <p>
It is questionable, however, whether this paradigm applies to kindergartens as well, rather than existing as a projection of an adult way of behaving onto little children.
Personally, I only remember three people I have attended a kindergarten together with, and keep in touch with none of them.
</p>

 <p>
However, this projection of adult fears onto the children’s lives goes through the whole book as a guiding light, and appears in so many places that it could, perhaps, even be promoted to a second title of the book.
</p>
</div>
</div>

 <div id="outline-container-Content" class="outline-3">
 <h3 id="Content"> <span class="section-number-3">1.3.</span>  <a href="#Content">Content</a></h3>
 <div class="outline-text-3" id="text-Content">
 <p>
The book is roughly consisting of two parts: the events in the life of Lenora’s child, and how these events are actually particular cases of general trends in the Chinese society.
</p>

 <p>
Competitiveness, poverty, fear of the future, rapid changes, foreign influence, corruption, migration – each of these things occupies a separate chapter in the book, and each of these chapters is started with a sketch of a situation happening with Lenora’s kid.
</p>

 <p>
She has done a great deal of background research while writing the book – both studying the existing body of knowledge, books, newspapers, and doing fieldwork – interviewing people, studying real events, and engaging in social mechanisms (such as parents’ groups).
</p>

 <p>
The language she is using is very vivid and clear.
I could almost effortlessly imagine the scenes of events happening in the book.
Granted, I have seen quite a lot of China, and especially Shanghai, so I probably can understand the situations better than an average foreigner reading about events so distant.
</p>
</div>
</div>

 <div id="outline-container-Competition" class="outline-3">
 <h3 id="Competition"> <span class="section-number-3">1.4.</span>  <a href="#Competition">Competition</a></h3>
 <div class="outline-text-3" id="text-Competition">

 <figure id="orge7a11de"> <img src="004_most-brutal-exam.jpg" alt="004_most-brutal-exam.jpg"></img></figure> <p>
China is a very competitive society.
</p>

 <p>
When I was a kid, it was widely believed by people around me that the USA is the best example of a competitive society, and that Americans do not have the concept of friendship at all.
In general, there were a few rumors about American life, widely circulating in the society, that were deemed to illustrate the degree to which Americans are cold-blooded, self-centered, merciless people completely devoid of spirituality, that are going to trade you in for a tiny benefit for themselves.
</p>

 <p>
Those rumors included:
</p>
 <ol class="org-ol"> <li>Singing company’s anthem in the morning.</li>
 <li>Team-building events aimed at capturing your soul and stealing your free time.</li>
 <li>Medals and honorary certificates given to you by your company as bonuses (instead of cash).</li>
 <li>Absolute obsession with money.</li>
 <li>Obsession with winning at all costs.</li>
 <li>Complete dependence of waiters on tips instead of a fair salary.</li>
 <li>No holiday leave or maternity leave.</li>
</ol> <p>
Can you imagine my surprise when I experienced almost all of that in China after I had come here for work?
(The largest item missing from this list is tips. Tips are not used in China, and thank God for that. Tips are a complete insanity.)
</p>

 <p>
However, Mrs Chu, who can compare the competitiveness of the two societies first-hand, is surprised by the amount competitiveness too.
She acknowledges that American society is  <code>fairly</code> competitive, but Chinese level is surprising even for her.
</p>

 <p>
She even gives a plausible explanation – Chinese society has grown significantly and very quickly in the last generation’s lifetime.
People also largely attribute this growth to the education system, and hence want to ensure a better future for their children, and keep pushing them to achieve.
</p>

 <p>
The problem here is that, even though the country has grown, not all industries have grown at the same pace.
Naturally, some have a physical limitation on them.
Education cannot grow faster than retail shopping.
</p>

 <p>
Perhaps, this is one of the reasons that this competition starts even at the kindergarten level.
Every little bit helps.
</p>

 <p>
She mentions that the Chinese government acknowledges this problem, and is trying to deal with it using a top-down approach, but so far all the attempts to curb the tsunami have largely been limited in success.
</p>

 <p>
This unbearable competition imposes a colossal strain on human conscience, and, naturally people are imperfect, and they start to cheat.
In fact, they cheat on a massive scale.
</p>
</div>
</div>

 <div id="outline-container-Cheating" class="outline-3">
 <h3 id="Cheating"> <span class="section-number-3">1.5.</span>  <a href="#Cheating">Cheating</a></h3>
 <div class="outline-text-3" id="text-Cheating">
 <p>
She spends a large amount of effort do describe the amount of corruption permeating Chinese society.
</p>

 <p>
Everyone pays for everything to everyone.
She, first and foremost, sees corruption at school, but it is far from the only area of life soaked in corruption.
</p>

 <p>
(Here I have to interrupt myself and refer to another book broadly attributed to the “Chinese domain” in my reading – the “China’s Gilded Age”, by Yuen Yuen Ang.)
</p>

 <p>
What cannot be expressed in raw cash is expressed in services, access to people and gifts.
</p>

 <p>
She spends a large amount of ink describing Chinese obsession with Western brands of clothing and accessories.
I couldn’t prevent myself from seeing Western arrogance in her attitude.
</p>

 <p>
For me it was not surprising at all to see the people with less exposure to marketing and advertisement to be much more pliable to the magic of the brand names and the prestige of the price.
“The Westerners” do it this way → “The Westerners” are successful → We need to do it this way, it is the right way.
</p>

 <p>
It is, perhaps, ironic that people who are so skillful at cheating are, at the same time, so vulnerable to cheating themselves.
And it is also ironic that Chu does not see the whole concept of branding as cheating, although it clearly is.
“Apple” products are not called “Foxconn”, although that would have been earnest.
</p>
</div>
</div>

 <div id="outline-container-Militarism" class="outline-3">
 <h3 id="Militarism"> <span class="section-number-3">1.6.</span>  <a href="#Militarism">Militarism</a></h3>
 <div class="outline-text-3" id="text-Militarism">

 <figure id="org9b609e6"> <img src="005_militarism-toy-soldiers_images.jpg" alt="005_militarism-toy-soldiers_images.jpg"></img></figure> <p>
The books does not bear the word “Soldiers” in its title for nothing.
</p>

 <p>
She uses “soldiers” as a metaphor to describe the atmosphere in the kindergarten her son was visiting, and broadly to describe the atmosphere in the educational institutions in general.
</p>

 <p>
This was, perhaps, the thing from the book, I could relate with to the greatest extent.
</p>

 <p>
Russian school culture is also borrowing a lot from the army culture.
Maybe this is a thing that the Chinese have borrowed from the USSR, and considered useful.
Or, maybe, it penetrated Russian and Chinese cultures independently, coming from Germany (Prussia? Bismarck?).
Is there even a realistic way to build a nation without resorting to some sort of military surrogates?
(Even democracies have Scouts and invest a lot in sport.)
</p>

 <p>
At Alexander Auzan’s lectures on institutional economics, I heard “School, Prison, and Army build nations”.
I kept recalling this phrase while reading the book.
</p>

 <p>
I am entirely ignorant about Chinese prisons;
(Although for the interested, there is a Magazeta podcast about that.),
but the schools and the army certainly do their share in what is modern China.
</p>

 <p>
Mrs Chu believes, that Chinese militarism disappears as swiftly as it appears, when the “Little Soldiers” grow up and start understanding a little more about the world around them.
However, the pictures of her boy marching along the flat corridor were very vivid, and we should not forget that she went to the most prestigious kindergarten in Shanghai.
</p>

 <p>
I remember that in Russia we also had schools that were particularly keen on “militaristic patriotism”, and one of my schools was “leaning towards” that.
</p>
</div>
</div>

 <div id="outline-container-Migration-and-overpopulation" class="outline-3">
 <h3 id="Migration-and-overpopulation"> <span class="section-number-3">1.7.</span>  <a href="#Migration-and-overpopulation">Migration and overpopulation</a></h3>
 <div class="outline-text-3" id="text-Migration-and-overpopulation">
 <p>
China seems to suffer from overpopulation in “Little Soldiers”.
In fact, quite a lot of grievances outlined in the book she attributes to overpopulation.
</p>

 <p>
People have to become migrant workers in big cities, due to the lack of opportunities at home.
Women have to become prostitutes, for similar reasons.
</p>

 <p>
Corruption is largely due to the overpopulation and lack of teachers.
And the overwhelming reverence before teachers also comes from the fact that teachers are just too few.
</p>

 <p>
And while I have seen quite a lot of it with my own eyes, sometimes I wonder which is the cause, and which is the effect.
After all, China comparable in both size and budget with Europe if taken as a whole.
</p>

 <p>
However, I am feeling that this is not all of the picture.
After all, people are not as eager to have children nowadays, as they used to be in the past.
Moreover, with such a giant business opportunity, it is strange that business has not found a solution.
</p>
</div>
</div>

 <div id="outline-container-Shanghai" class="outline-3">
 <h3 id="Shanghai"> <span class="section-number-3">1.8.</span>  <a href="#Shanghai">Shanghai</a></h3>
 <div class="outline-text-3" id="text-Shanghai">

 <figure id="org3dda8c0"> <img src="006_french-concession-shanghai_800px-SIAS_Shanghai.jpg" alt="006_french-concession-shanghai_800px-SIAS_Shanghai.jpg"></img></figure> <p>
In any case, the love to Shanghai is permeating the book from the first page to the last.
And I completely understand!
At least for me, Shanghai was a place that I fell in love with very quickly.
</p>

 <p>
And, honestly, I am quite happy that there are other people who are feeling the same.
</p>

 <p>
Although I have not actually managed to recognise the school that played such a major role in the plot, I have been in contact with a bit of the Chinese education system, and I can very well relate to what she is writing about.
</p>

 <p>
And even so, Shanghai is a lovely place, which is full of marvels, and unexpected discoveries.
</p>

 <p>
Thank you very much, Mrs Chu, for bringing this up once again.
</p>
</div>
</div>

 <div id="outline-container-Epilogue" class="outline-3">
 <h3 id="Epilogue"> <span class="section-number-3">1.9.</span>  <a href="#Epilogue">Epilogue</a></h3>
 <div class="outline-text-3" id="text-Epilogue">
 <p>
This review happened to be written in a much more disorganised way than my previous ones.
This is a little strange, since this book is supposed to be much easier than most of the previous ones I have written the review for.
It is not advanced tech, and not even rigorous science, and was, frankly, an easy listen.
(Yes, I have listened to it using the Text-To-Speech machinery, as I do quite a lot of my books.)
</p>

 <p>
Do I recommend reading it?
Definitely!
It should take no more than a couple of evenings, if reading from paper.
</p>

 <p>
It would be a ton of fun for anyone who is into China, into Shanghai, into education, or is just raising his own child.
</p>

 <p>
Shall it be included in the High School Curriculum?
I guess, my life could have gone a different way if I had read this book as a school student.
Hence, it is very unlikely that anybody is going to let such a book be studied at school.
After all, teachers are depicted there as ordinary human beings, and that is one offence a school would never forgive.
But, if you are a high-school student, and you happen to be passing by this review, by all means, taste it.
You will get plenty of examples to taunt your teachers and become their chief nuisance.
</p>

 <p>
For everyone interested in China, this is also a really nice exposition into the “real” China.
</p>
</div>
</div>


 <div id="outline-container-Contacts" class="outline-3">
 <h3 id="Contacts"> <span class="section-number-3">1.10.</span>  <a href="#Contacts">Contacts</a></h3>
 <div class="outline-text-3" id="text-Contacts">
 <p>
Subscribe and donate if you find anything in this blog and/or other pages useful.
Repost, share and discuss, feedback helps me become better.
</p>

 <p>
I also have:
</p>
 <dl class="org-dl"> <dt>Facebook</dt> <dd> <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a></dd>
 <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>Twitter</dt> <dd> <a href="https://twitter.com/VANikishkin">https://twitter.com/VANikishkin</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2021-07-13_Little-Soldiers-An-American-Boy-a-Chinese-School-and-the-Global-Race-to-Achieve-by-Lenora-Chu/index.html"/>
  <id>https://lockywolf.net/2021-07-13_Little-Soldiers-An-American-Boy-a-Chinese-School-and-the-Global-Race-to-Achieve-by-Lenora-Chu/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A short review on &quot;Professional CMake&quot; by Craig Scott.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A short review on “Professional CMake” by Craig Scott.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Introduction">1. Introduction</a></li>
 <li> <a href="#The-book-structure">2. The book structure</a></li>
 <li> <a href="#The-style">3. The style</a></li>
 <li> <a href="#Cmake">4. Cmake</a></li>
 <li> <a href="#Conclusion">5. Conclusion</a></li>
 <li> <a href="#Contacts">6. Contacts</a></li>
</ul></div>
</nav> <p>
I have read “Professional CMake” by Craig Scott.
This is short review.
This time the review is, indeed, going to be short, because I cannot really say that the book was a paradigm-changing read.
Nevertheless, I have decided to make reviews on most books I read, and this one is not an exception.
</p>


 <figure id="orgf2e203e"> <img src="001_book-cover.png" alt="001_book-cover.png"></img></figure> <p>

</p>

 <section id="outline-container-Introduction" class="outline-2"> <h2 id="Introduction"> <span class="section-number-2">1.</span>  <a href="#Introduction">Introduction</a></h2>
 <div class="outline-text-2" id="text-Introduction">
 <p>
The necessity to learn cmake came to me when I changed my language of work from some other popular engineering language, to C++.
At the new work place, the project build system was not perfectly organized, and I volunteered to update it to modern cmake.
</p>

 <p>
Naturally, I searched for some homework reading about cmake, and although official documentation existed, I still wanted something more narrative.
(Indeed, this happened to be a fairly standard approach of mine, to learning new areas.)
</p>

 <p>
Craig Scott’s book is quite famous, easily google-able, and has positive reviews.
Why not, I thought.
</p>
</div>
</section> <section id="outline-container-The-book-structure" class="outline-2"> <h2 id="The-book-structure"> <span class="section-number-2">2.</span>  <a href="#The-book-structure">The book structure</a></h2>
 <div class="outline-text-2" id="text-The-book-structure">
 <p>
The book can be roughly partitioned into three parts.
</p>

 <p>
The first part gives the reader an general overview of the tool, describes several most common usage patterns, provides a short historical notice.
</p>

 <p>
The second part describes the main area of cmake’s expertise – building projects, that is assembling a pile of C++ (mostly C++, although other C-related languages are supported), into a working system.
</p>

 <p>
The third part, on top of the second one, provides an overview of things that cmake can do, but which are less known. For example, cmake has a built-in tool for testing, CTest, and a tightly related testing results dashboard, CDash.
</p>
</div>
</section> <section id="outline-container-The-style" class="outline-2"> <h2 id="The-style"> <span class="section-number-2">3.</span>  <a href="#The-style">The style</a></h2>
 <div class="outline-text-2" id="text-The-style">
 <p>
At the first glance it may seem that the book is merely restating facts from the official documentation.
Unfortunately, that is true to a large extent.
</p>

 <p>
Obviously, it is hardly possible to make a technical book about a certain artefact (a piece of software), entirely without referring to the official documentation, but I feel that “Professional CMake” is overdoing it.
</p>

 <p>
Compared to, say, “Autotools: a Practitioner’s Guide”, the amount of excerpts from the official documentation is much larger.
</p>

 <p>
However, this is not what we are usually reading technical books for.
We are reading them to get a working intuition – “how to use what you know and find out what you do not know”.
</p>

 <p>
On the other hand, obviously realising this necessity, Professional Cmake is equipped with “Recommended Practices” sections at the end of each chapter.
Those are purely opinionated, and are, supposedly, aimed at that intuition development.
</p>
</div>
</section> <section id="outline-container-Cmake" class="outline-2"> <h2 id="Cmake"> <span class="section-number-2">4.</span>  <a href="#Cmake">Cmake</a></h2>
 <div class="outline-text-2" id="text-Cmake">
 <p>
The author obviously likes cmake.
He praises its policy system, which allows compatibility feature tweaking, and the ease of adding functions to the code base, partly to its good readability.
</p>

 <p>
I, however, am much more a supporter of the idea that a good language is not made by piling a feature on top of a feature.
Obviously, any build system cannot be done without certain idiosyncratic components, catering to particular systems, and dirty hacks.
And in my opinion cmake overdoes it.
Perhaps, not as much as GNU Automake does, but the effort spent on writing heuristics could have been spend rather on improving the cmake language itself.
</p>

 <p>
Yes, you haven’t misread it – cmake is, first and foremost, a programming language.
Yet another language introduced into the C/C++ ecosystem.
</p>

 <p>
Do we need another language in the toolbox?
Okay, it may be said that POSIX Shell, and especially how it is used in Autotools is a horrible language.
However, cmake’s own language is also far from being robust and semantically consistent.
Even having lists delimited by semicolons is a queer idea.
</p>

 <p>
But what is more of that – and what is perhaps, the biggest drawback of the book, the author does not seem to realise those drawbacks, and speaks very little of them.
A huge miss for someone trying to create a professional book!
</p>

 <p>
To me personally the most disappointing was the fact that, seemingly, the author does not really understand not just how macros are different from functions, but what they even exist for.
</p>
</div>
</section> <section id="outline-container-Conclusion" class="outline-2"> <h2 id="Conclusion"> <span class="section-number-2">5.</span>  <a href="#Conclusion">Conclusion</a></h2>
 <div class="outline-text-2" id="text-Conclusion">
 <p>
“Professional CMake” does the job.
If you need a not-so-quick introduction into cmake, which would be more in-depth than a randomly googled howto, but less heavyweight than crunching the original documentation, read it.
It is not a bad choice.
You are also less likely to write “old, hard to maintain”-style cmake code if you follow the book’s tutorials.
</p>

 <p>
Just do not expect that this book will make you a CMake expert, or even warn you about the actually hard cmake trickery.
</p>
</div>
</section> <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">6.</span>  <a href="#Contacts">Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
 <p>
Subscribe and donate if you find anything in this blog and/or other pages useful.
Repost, share and discuss, feedback helps me become better.
</p>

 <p>
I also have:
</p>
 <dl class="org-dl"> <dt>Facebook</dt> <dd> <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a></dd>
 <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>Twitter</dt> <dd> <a href="https://twitter.com/VANikishkin">https://twitter.com/VANikishkin</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2021-11-07_Craig-Scott-Professional-Cmake-Short-Review/index.html"/>
  <id>https://lockywolf.net/2021-11-07_Craig-Scott-Professional-Cmake-Short-Review/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>“专业cmake”(Craig Scott著)之短评论。</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">“专业cmake”(Craig Scott著)之短评论。</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E5%BC%95%E8%A7%81">1. 引见</a></li>
 <li> <a href="#%E4%B9%A6%E7%9A%84%E7%BB%93%E6%9E%84%E3%80%82">2. 书的结构。</a></li>
 <li> <a href="#%E9%A3%8E%E6%A0%BC">3. 风格</a></li>
 <li> <a href="#Cmake">4. Cmake</a></li>
 <li> <a href="#%E7%BB%93%E8%AE%BA">5. 结论</a></li>
 <li> <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">6. 联系方式</a></li>
</ul></div>
</nav> <pre class="example" id="orgf03e71c">
http://lockywolf.files.wordpress.com/2021/11/001_book-cover.png
</pre>

 <p>
我读完了一本Craig Scott的书，叫做“专业CMake”（Professional Cmake）.
这篇文章是我的对这本书的评论。
这篇评论确实会短一点，因为我不觉得它拓展了我的认知。
我决定为所有我读过的书写书评，所以这本书不例外。
</p>

 <section id="outline-container-%E5%BC%95%E8%A7%81" class="outline-2"> <h2 id="%E5%BC%95%E8%A7%81"> <span class="section-number-2">1.</span>  <a href="#%E5%BC%95%E8%A7%81">引见</a></h2>
 <div class="outline-text-2" id="text-%E5%BC%95%E8%A7%81">
 <p>
因为我的工作语言需要转变为C++,所以我需要学习cmake。
在新公司，项目构建系统并不完善，所以我致力于把它更新和重构（重建），转变到现代的cmake。
自然地，我搜索过cmake相关的参考资料。虽然cmake官方的说明书很丰富，
但是我还希望找到某些更通俗的资料。
（在学习新领域的知识时，我通常会搜索一些叙述某些工具使用方法的书。）
Craig Scott的书相对有名且容易搜索到，有很多好评，所以我试着阅读这本书。
</p>
</div>
</section> <section id="outline-container-%E4%B9%A6%E7%9A%84%E7%BB%93%E6%9E%84%E3%80%82" class="outline-2"> <h2 id="%E4%B9%A6%E7%9A%84%E7%BB%93%E6%9E%84%E3%80%82"> <span class="section-number-2">2.</span>  <a href="#%E4%B9%A6%E7%9A%84%E7%BB%93%E6%9E%84%E3%80%82">书的结构。</a></h2>
 <div class="outline-text-2" id="text-%E4%B9%A6%E7%9A%84%E7%BB%93%E6%9E%84%E3%80%82">
 <p>
这本大概可以分为三部分。
第一部分为读者提供了此工具的一般概述，描述几种最常见的使用模式，并简要介绍了它的历史。
第二部分描述cmake的主要的应用领域 – 构建软件项目，即将一堆C++（主要是 C++，虽然也支持其他与 C 相关的语言）组装成一个工作系统。
第三部分，基于第二部分，继续说明cmake的功能，在强调cmake的不常见的的功能，尤其是内装的测试软件工具，CTest，和一个密切相关的测试结果仪表板 Cdash。
</p>
</div>
</section> <section id="outline-container-%E9%A3%8E%E6%A0%BC" class="outline-2"> <h2 id="%E9%A3%8E%E6%A0%BC"> <span class="section-number-2">3.</span>  <a href="#%E9%A3%8E%E6%A0%BC">风格</a></h2>
 <div class="outline-text-2" id="text-%E9%A3%8E%E6%A0%BC">
 <p>
表面上，这本书似乎只是重述官方资料。
不幸的是，这本书真的是这样。
    显然，写科技（或软件）相关的书时很难完全避免让读者参考官方资料，但是我感觉这本书过多使用了这个方法。
把"Autotools: a Practitioner's Guide"和“专业CMake”作对比官方文档的摘录数量要大得多。
然而，这不是我们通常阅读技术类书籍的目的。
反而，我们之所以读技术类书籍是为了获得工作上的感知力“使用你知道的，找出你未知的”。
另一方面，由于理解这个需求，“Professional CMake”的每章结尾都有“recommended practices”子章节。
它们都是按照作者的观点写的，可能是旨在提高对cmake的感知力。
</p>
</div>
</section> <section id="outline-container-Cmake" class="outline-2"> <h2 id="Cmake"> <span class="section-number-2">4.</span>  <a href="#Cmake">Cmake</a></h2>
 <div class="outline-text-2" id="text-Cmake">
 <p>
这位作者显然很喜欢cmake。
他称赞它的“policy”系统，该系统允许用户使用的时候调整cmake的功能来匹配老版本, 同时，它允许对兼容性进行调整，向代码库添加功能的便利性，部分原因是它具有良好的可读性。
但是，我更赞同这样的观点：一种好的程序语言不需要不断增加更多功能。
当然，构建系统一定会需要某些特有的功能，即迎合具体的编程和操作系统又运用不良手段。
在我看来，cmake做过了头。
也许，不如 GNU Automake 所做的那么多，但是花在编写算法上的努力本可以花在改进 cmake 语言本身上。
对，你们没有误读，cmake首先是一种编程语言。
在 C/C++ 生态系统中引入了另一种语言。
为什么我们的工具箱需要附加的一个语言？
好的，可以说 POSIX Shell，尤其是它在 Autotools 的使用中是一种糟糕的语言。
甚至使用分号分隔列表也是一个奇怪的想法。
但更重要的是——也许这本书最大的缺点是，作者似乎没有意识到这些缺点，而且对这些缺点避而不谈。
对于试图创作专业书籍的人来说，这是一个重大的失误！
对我个人而言，最令人失望的是，作者貌似不仅不理解Macro和Function的区别，而且不明白他们存在的目的。
</p>
</div>
</section> <section id="outline-container-%E7%BB%93%E8%AE%BA" class="outline-2"> <h2 id="%E7%BB%93%E8%AE%BA"> <span class="section-number-2">5.</span>  <a href="#%E7%BB%93%E8%AE%BA">结论</a></h2>
 <div class="outline-text-2" id="text-%E7%BB%93%E8%AE%BA">
 <p>
“专业的CMake”可以完成这项工作。
如果你需要一些不那么快速的cmake介绍, 希望看到比随手可以搜索到的网络入门博客文章更深入，但不像官方说明那样重量级的资料，你可以选择阅读它。
这不算是一个糟糕的选择。
如果您遵循本书的教程，您也不太可能编写出旧的、难以维护的 cmake 代码。
但是不要期望这本书会让你成为 CMake 专家，或者给你关于难于理解的 cmake 手段的预报。
所以请你降低对这本书籍的预期。
</p>
</div>
</section> <section id="outline-container-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F" class="outline-2"> <h2 id="%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F"> <span class="section-number-2">6.</span>  <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">联系方式</a></h2>
 <div class="outline-text-2" id="text-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">
 <p>
如果您在此博客或其他页面中发现任何有用的内容，请订阅并打赏。
请您转发、分享和讨论，您的反馈可以帮助我变得更好。
</p>

 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2022-07-18_Craig-Scott-Professional-Cmake-Short-Review-Chinese/index.html"/>
  <id>https://lockywolf.net/2022-07-18_Craig-Scott-Professional-Cmake-Short-Review-Chinese/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Is Chinese Hebei&apos;s ZhangJiaKou the home of Roman Imperial Heritage?</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Is Chinese Hebei’s ZhangJiaKou the home of Roman Imperial Heritage?</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E7%BD%97%E9%A9%AC%E5%B8%9D%E5%9B%BD%E6%AD%A3%E7%BB%9F%E5%9C%A8%E4%B8%AD%E5%9B%BD%E6%B2%B3%E5%8C%97%E5%BC%A0%E5%AE%B6%E5%8F%A3%EF%BC%9F-Is-Chinese-Hebei's-ZhangJiaKou-the-home-of-Roman-Imperial-Heritage?">1. 罗马帝国正统在中国河北张家口？ Is Chinese Hebei’s ZhangJiaKou the home of Roman Imperial Heritage?</a>
 <ul> <li> <a href="#%E7%BD%97%E9%A9%AC%E6%AD%A3%E7%BB%9F%E5%9C%A8%E5%90%9B%E5%A0%A1-Roman-Heritage-in-Lord's-City">1.1. 罗马正统在君堡 Roman Heritage in Lord’s City</a></li>
 <li> <a href="#%E5%90%9B%E5%A0%A1%E6%AD%A3%E7%BB%9F%E4%BF%84%E5%9B%BD%E7%BB%A7-%22Lord's-City-was-succeded-by-Rus%22">1.2. 君堡正统俄国继 “Lord’s City was succeded by Rus”</a></li>
 <li> <a href="#%E8%92%99%E5%8F%A4%E6%AD%A3%E7%BB%9F%E5%AF%9F%E5%93%88%E5%B0%94%EF%BC%8C%E5%AF%9F%E5%93%88%E5%B0%94%E7%9C%81%E4%BC%9A%E5%BC%A0%E5%AE%B6%E5%8F%A3-Mongolian-heritage-is-in-Chahar,-and-Chahar's-capital-is-ZhangJiaKou">1.3. 蒙古正统察哈尔，察哈尔省会张家口 Mongolian heritage is in Chahar, and Chahar’s capital is ZhangJiaKou</a></li>
 <li> <a href="#%E6%88%8F%E8%B0%88%E5%8E%86%E5%8F%B2-Playful-conversation-about-history.">1.4. 戏谈历史 Playful conversation about history.</a></li>
</ul></li>
</ul></div>
</nav> <p>
The origin of this research is here:
 <a href="https://new.qq.com/rain/a/20200901A0OB4100">https://new.qq.com/rain/a/20200901A0OB4100</a>
</p>

 <p>
This is my exercise in translation from Chinese into English.
</p>

 <section id="outline-container-%E7%BD%97%E9%A9%AC%E5%B8%9D%E5%9B%BD%E6%AD%A3%E7%BB%9F%E5%9C%A8%E4%B8%AD%E5%9B%BD%E6%B2%B3%E5%8C%97%E5%BC%A0%E5%AE%B6%E5%8F%A3%EF%BC%9F-Is-Chinese-Hebei's-ZhangJiaKou-the-home-of-Roman-Imperial-Heritage?" class="outline-2"> <h2 id="%E7%BD%97%E9%A9%AC%E5%B8%9D%E5%9B%BD%E6%AD%A3%E7%BB%9F%E5%9C%A8%E4%B8%AD%E5%9B%BD%E6%B2%B3%E5%8C%97%E5%BC%A0%E5%AE%B6%E5%8F%A3%EF%BC%9F-Is-Chinese-Hebei's-ZhangJiaKou-the-home-of-Roman-Imperial-Heritage?"> <span class="section-number-2">1.</span>  <a href="#%E7%BD%97%E9%A9%AC%E5%B8%9D%E5%9B%BD%E6%AD%A3%E7%BB%9F%E5%9C%A8%E4%B8%AD%E5%9B%BD%E6%B2%B3%E5%8C%97%E5%BC%A0%E5%AE%B6%E5%8F%A3%EF%BC%9F-Is-Chinese-Hebei's-ZhangJiaKou-the-home-of-Roman-Imperial-Heritage?">罗马帝国正统在中国河北张家口？ Is Chinese Hebei’s ZhangJiaKou the home of Roman Imperial Heritage?</a></h2>
 <div class="outline-text-2" id="text-%E7%BD%97%E9%A9%AC%E5%B8%9D%E5%9B%BD%E6%AD%A3%E7%BB%9F%E5%9C%A8%E4%B8%AD%E5%9B%BD%E6%B2%B3%E5%8C%97%E5%BC%A0%E5%AE%B6%E5%8F%A3%EF%BC%9F-Is-Chinese-Hebei's-ZhangJiaKou-the-home-of-Roman-Imperial-Heritage?">

 <table border="1"> <tr> <td align="left" valign="top">
      网上流传着这么一个有趣的观点，罗马帝国现 <br></br>
      在的正统在河北省张家口市。这样的说法是怎 <br></br>
      么来的呢？                               <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      There is a certain viewpoint spreading   <br></br>
      recently on the net, that the True Roman <br></br>
      Imperial Heritage is now in the city of  <br></br>
      ZhangJiaKou, in the Chinese province of  <br></br>
      Hebei. Where has this viewpoint come     <br></br>
      from?                                    <br></br>
                                              
    </td>
  </tr> <tr> <td align="left" valign="top">
      众所周知罗马帝国作为西方文明的重要组成部 <br></br>
      分，早在1453年就亡于奥斯曼土耳其帝国，为 <br></br>
      什么会和远在东方的河北张家口联系上呢？让 <br></br>
      我们来看看在网友们神奇的脑洞里，这远隔千 <br></br>
      里的二者是如何联系在一起的呢？           <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      As everyone knows, the Roman Empire has  <br></br>
      made an important contribution to the    <br></br>
      Western Culture. As early as 1453 it was <br></br>
      destroyed by the Ottoman Turkish Empire. <br></br>
      So how can it be connected to            <br></br>
      ZhangJiaKou, Hebei, which a long way to  <br></br>
      the East. Let us have a look at the      <br></br>
      netizens' mystical mind chamber, to      <br></br>
      understand how those two infinitely far  <br></br>
      places can be connected.                 <br></br>
                                              
    </td>
  </tr></table> <figure id="orgafb39e9"> <img src="001_night-in-ZhangJiaKou.webp" alt="001_night-in-ZhangJiaKou.webp"></img> <figcaption> <span class="figure-number">Figure 1: </span>张家口夜景 The night at ZhangJiaKou.</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      这个观点的源头，来自于这么一段文字：     <br></br>
                                              
    </td>
     <td align="left" valign="top">
      This viewpoint is coming from the        <br></br>
      following piece of text:                
    </td>
  </tr> <tr> <td align="left" valign="top">
      罗马正统在君堡                          
    </td>
     <td align="left" valign="top">
      Roman Heritage in the Lord's City       
    </td>
  </tr> <tr> <td align="left" valign="top">
      君堡正统俄国继                          
    </td>
     <td align="left" valign="top">
      Lord's City by Orthodox Rus succeeded   
    </td>
  </tr> <tr> <td align="left" valign="top">
      俄国正统在鞑靼                          
    </td>
     <td align="left" valign="top">
      Russian Heritage in the Tatar           
    </td>
  </tr> <tr> <td align="left" valign="top">
      鞑靼正统在蒙古                          
    </td>
     <td align="left" valign="top">
      Tatar Heritage in Mongolia              
    </td>
  </tr> <tr> <td align="left" valign="top">
      蒙古正统察哈尔                          
    </td>
     <td align="left" valign="top">
      Mongol Heritage in Chahar               
    </td>
  </tr> <tr> <td align="left" valign="top">
      察哈尔省会张家口                        
    </td>
     <td align="left" valign="top">
      Chahar's capital is ZhangJiaKou         
    </td>
  </tr></table> <figure id="orgea8747f"> <img src="002_map-of-chahar.webp" alt="002_map-of-chahar.webp"></img> <figcaption> <span class="figure-number">Figure 2: </span>哈尔省地图 The map of the Chahar province.</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      这种网友们的论证，看起来似乎层层推进，逻 <br></br>
      辑严谨，毫无指摘之处。那么到底有没有道理 <br></br>
      呢？让我们顺着其中逻辑关系，盘一盘其中门 <br></br>
      道吧。                                   <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      The reasoning of those netizens,         <br></br>
      seemingly, advances in a layer after     <br></br>
      layer manner, strictly logical, with no  <br></br>
      step omitted. After all, is there truth  <br></br>
      in it? Let us follow those logical       <br></br>
      connections, move after move.           
    </td>
  </tr></table></div>




 <div id="outline-container-%E7%BD%97%E9%A9%AC%E6%AD%A3%E7%BB%9F%E5%9C%A8%E5%90%9B%E5%A0%A1-Roman-Heritage-in-Lord's-City" class="outline-3">
 <h3 id="%E7%BD%97%E9%A9%AC%E6%AD%A3%E7%BB%9F%E5%9C%A8%E5%90%9B%E5%A0%A1-Roman-Heritage-in-Lord's-City"> <span class="section-number-3">1.1.</span>  <a href="#%E7%BD%97%E9%A9%AC%E6%AD%A3%E7%BB%9F%E5%9C%A8%E5%90%9B%E5%A0%A1-Roman-Heritage-in-Lord's-City">罗马正统在君堡 Roman Heritage in Lord’s City</a></h3>
 <div class="outline-text-3" id="text-%E7%BD%97%E9%A9%AC%E6%AD%A3%E7%BB%9F%E5%9C%A8%E5%90%9B%E5%A0%A1-Roman-Heritage-in-Lord's-City">

 <table border="1"> <tr> <td align="left" valign="top">
      罗马正统在君堡                          
    </td>
     <td align="left" valign="top">
      Roman Heritage in Lord's City           
    </td>
  </tr> <tr> <td align="left" valign="top">
      罗马帝国兴起于罗马城，据传古城的建立者罗 <br></br>
      慕路斯兄弟是战神马尔斯的儿子，二人小时候 <br></br>
      由一头母狼的乳汁喂养长大的，所以至今罗马 <br></br>
      城内还有着母狼哺育两个儿童的雕像。       <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      The Roman Empire arises from the city of <br></br>
      Rome. The rumor says that that the       <br></br>
      founders of the ancient city, Romulus    <br></br>
      brothers, were the sons of Mars, the God <br></br>
      of War; both when they were small, were  <br></br>
      fed she-wolf milk, until they grew, and  <br></br>
      even today, in Rome there is a sculpture <br></br>
      of a she-wolf feeding two babies.       
    </td>
  </tr></table> <figure id="org2b4eb20"> <img src="003_capitolian-she-wolf.webp" alt="003_capitolian-she-wolf.webp"></img></figure> <table border="1"> <tr> <td align="left" valign="top">
      罗马共和国时期征服了地中海大部，建立起了 <br></br>
      一个以地中海为内海的伟大国家。           <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Rome, in the Republican period,         <br></br>
       conquered most of the Mediterranian,   <br></br>
      established a great country with the    <br></br>
      Mediterranean sea as it's enclosed sea. <br></br>
                                             
    </td>
  </tr> <tr> <td align="left" valign="top">
      公元前27年元老院授予恺撒的继承人屋大维“  <br></br>
      奥古斯都”的尊号，屋大维成为罗马帝国的第  <br></br>
      一位皇帝，罗马从此进入了帝国时代。       <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      27 BC, The Senate awarded Caesar's      <br></br>
      successor Octavian the title of         <br></br>
      "August", and Octavian became the first <br></br>
      Roman Emperor, and Rome entered its     <br></br>
      empirial period.                       
    </td>
  </tr></table> <figure id="orga22e487"> <img src="004_roman-statue.webp" alt="004_roman-statue.webp"></img> <figcaption> <span class="figure-number">Figure 3: </span>屋大维 Octavian</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      公元395年，罗马帝国分裂为东西两部分，但  <br></br>
      是西罗马帝国在476年被蛮族日耳曼人攻灭，  <br></br>
      废黜西罗马皇帝的日耳曼人宣誓效忠于东罗马 <br></br>
      。                                       <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      In 395 AD, Roman Empire split into the   <br></br>
      Eastern and Western parts, but Western   <br></br>
      Roman Empire in 476 AD was defeated by   <br></br>
      Germanic Barbarians, and the Germanic    <br></br>
      tribes' deposed the West Roman Emperor   <br></br>
      and took the oath of fealty to the East  <br></br>
      Rome.                                   
    </td>
  </tr> <tr> <td align="left" valign="top">
      于是罗马帝国只剩下了东罗马帝国（又称拜占 <br></br>
      庭帝国）一个火种。                       <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Thereupon the only Roman Empire left was <br></br>
      Eastern Rome Empire (also called         <br></br>
      Bysantine Empire), the only heir.        <br></br>
                                              
    </td>
  </tr> <tr> <td align="left" valign="top">
      而东罗马帝国的都城在君士坦丁堡（今土耳其 <br></br>
      伊斯坦布尔），这里便是罗马正统在君堡的来 <br></br>
      历了。                                   <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Moreover, the Eastern Roman Empire's     <br></br>
      capital Constantinople (present day      <br></br>
      Turkish Istanbul) is that "Lord's City"  <br></br>
      origin.                                 
    </td>
  </tr></table></div>
</div>


 <div id="outline-container-%E5%90%9B%E5%A0%A1%E6%AD%A3%E7%BB%9F%E4%BF%84%E5%9B%BD%E7%BB%A7-%22Lord's-City-was-succeded-by-Rus%22" class="outline-3">
 <h3 id="%E5%90%9B%E5%A0%A1%E6%AD%A3%E7%BB%9F%E4%BF%84%E5%9B%BD%E7%BB%A7-%22Lord's-City-was-succeded-by-Rus%22"> <span class="section-number-3">1.2.</span>  <a href="#%E5%90%9B%E5%A0%A1%E6%AD%A3%E7%BB%9F%E4%BF%84%E5%9B%BD%E7%BB%A7-%22Lord's-City-was-succeded-by-Rus%22">君堡正统俄国继 “Lord’s City was succeded by Rus”</a></h3>
 <div class="outline-text-3" id="text-%E5%90%9B%E5%A0%A1%E6%AD%A3%E7%BB%9F%E4%BF%84%E5%9B%BD%E7%BB%A7-%22Lord's-City-was-succeded-by-Rus%22">

 <table border="1"> <tr> <td align="left" valign="top">
      西罗马帝国灭亡后，东罗马帝国成为了罗马帝 <br></br>
      国实际意义上的继承者。                   <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      After the destruction of the Western     <br></br>
      Roman Empire, the Eastern Roman Empire   <br></br>
      became the true ideological successor to <br></br>
      the Roman Empire.                       
    </td>
  </tr> <tr> <td align="left" valign="top">
      只可惜14世纪奥斯曼土耳其崛起，于1453年攻 <br></br>
      陷君士坦丁堡，东罗马帝国灭亡。           <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Unfortunately, in the 14th centure,      <br></br>
      Ottoman Turks sudenly appeared on the    <br></br>
      horizon, and in 1453 they assault        <br></br>
      Constantinople, and Eastern Roman Empire <br></br>
      is no more.                             
    </td>
  </tr></table> <figure id="org8f63f92"> <img src="005_storming-constantinople.webp" alt="005_storming-constantinople.webp"></img> <figcaption> <span class="figure-number">Figure 4: </span>君士坦丁堡陷落 The fall of Constantinople</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      奥斯曼土耳其攻灭东罗马后，宣称自己是东罗 <br></br>
      马帝国的继承者，然而大家都知道，奥斯曼帝 <br></br>
      国是信仰伊斯兰教的土耳其人，从宗教、文化 <br></br>
      及种族方面，跟东罗马帝国没半毛钱关系。   <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      After the Ottoman Turks have             <br></br>
      extinguished the Eastern Rome, they      <br></br>
      proclaimed tthemselves to be the         <br></br>
      successors to Rome, however, everyone    <br></br>
      knows that the Ottoman Empire consists   <br></br>
      of believing in Islam Turks, so from the <br></br>
      cultural and ethnic perspective, has     <br></br>
      nothing in common with Rome.            
    </td>
  </tr> <tr> <td align="left" valign="top">
      况且他们还宣称自己是突厥帝国的继承人呢， <br></br>
      这种说法，自然是无法令人信服的。         <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Moreover, they also claim to be the      <br></br>
      successors of the Turkic Empire, so      <br></br>
      naturally, nobody would belive them.    
    </td>
  </tr> <tr> <td align="left" valign="top">
      那为什么俄国自称是东罗马的继承呢？       <br></br>
                                              
    </td>
     <td align="left" valign="top">
      So why is Russia the successor of East   <br></br>
      Rome?                                   
    </td>
  </tr> <tr> <td align="left" valign="top">
      原来1473年莫斯科大公伊凡三世娶了拜占廷帝 <br></br>
      国的索菲娅·帕列奥罗格公主，所以俄国宣称  <br></br>
      自己继承了东罗马正统。                   <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Originally, in 1473, the Grand Duke of   <br></br>
      Moscow, Ivan the Third, married Sofia    <br></br>
      Paleologos, the Bysantine princess.      <br></br>
      Because of his, Russia claimed itself to <br></br>
      be the successor to the East Roman       <br></br>
      heritage.                               
    </td>
  </tr> <tr> <td align="left" valign="top">
      欧洲各国的法理继承和中国不同，只要有血缘 <br></br>
      关系，都是有继承权的，所以欧洲各国有很多 <br></br>
      女儿，甚至外甥继承王位的例子。           <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      In Europe, the inheritance law of every  <br></br>
      country is dissimilar to that of China,  <br></br>
      and only requires blood relationship to  <br></br>
      have some rights to inherit. Therefore,  <br></br>
      in Europe, daughters, and even maternal  <br></br>
      nephews sometimes get to inherit the     <br></br>
      crown.                                  
    </td>
  </tr></table> <figure id="orgbd3fbbd"> <img src="006_Ivan-the-Terrible.webp" alt="006_Ivan-the-Terrible.webp"></img> <figcaption> <span class="figure-number">Figure 5: </span>伊凡三世 Ivan the Third</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      和索菲娅公主一起来到莫斯科的，还有东罗马 <br></br>
      帝国的双头鹰标志，以及东罗马国教东正教。 <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Together with Sofia, to Moscow arrived   <br></br>
      the Two-Headed Eagle, the symbol of the  <br></br>
      Eastern Roman Empire, and the Roman      <br></br>
      Faith, the Orthodox Faith.              
    </td>
  </tr> <tr> <td align="left" valign="top">
      双头鹰标志至今还存在于俄罗斯国徽上；而俄 <br></br>
      罗斯目前仍是全球东正教的中心。           <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      The Two-Headed Eagle even today is on    <br></br>
      the State Coat of Arms of Russia. And    <br></br>
      Russia still is the world center of the  <br></br>
      Orthodox Faith.                         
    </td>
  </tr> <tr> <td align="left" valign="top">
      1547年东正教大主教为莫斯科大公伊凡四世加 <br></br>
      冕为帝，称沙皇。                         <br></br>
                                              
    </td>
     <td align="left" valign="top">
      In 1547 the Orthodox Patriarch crowned   <br></br>
      the Grand Duke of Moscow Ivan the Fourth <br></br>
      as the Emperor, also called Tsar.       
    </td>
  </tr> <tr> <td align="left" valign="top">
      在东罗马帝国时期，东罗马帝国皇帝被称为恺 <br></br>
      撒，转化成俄语，便是沙皇。               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      In the times of the East Roman Empire,   <br></br>
      the Emperor was called Caesar, which,    <br></br>
      when pronounced in Russian, sounds like  <br></br>
      Tsar.                                   
    </td>
  </tr> <tr> <td align="left" valign="top">
      沙俄此举就是表明自己是东罗马的正统继承者 <br></br>
      ，甚至还以“第三罗马”自居。               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      This way Tsarist Russia expressed its    <br></br>
      own inheritance and succession of the    <br></br>
      Eastern Rome, and even called itself     <br></br>
      "The Third Rome".                       
    </td>
  </tr></table> <figure id="org5c0ffa9"> <img src="007_patriarch-cyrill.webp" alt="007_patriarch-cyrill.webp"></img> <figcaption> <span class="figure-number">Figure 6: </span>东正教大主教 East Orthdox Patriarch</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      所以，君堡正统俄国继，似乎也没有什么不妥 <br></br>
      的。                                     <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Therefore, there is also almost nothing  <br></br>
      implausible in the stance "Lord's City   <br></br>
      by Orthodox Rus succeeded"              
    </td>
  </tr> <tr> <td align="left" valign="top">
      俄国正统在鞑靼，鞑靼正统在蒙古           <br></br>
                                              
    </td>
     <td align="left" valign="top">
      "Russia was succeeded by the Tatar, and  <br></br>
      Tatar was succeeded by Mongol"          
    </td>
  </tr> <tr> <td align="left" valign="top">
      西方流传着这么一句谚语，剥开一个俄罗斯人 <br></br>
      ，你会发现一个鞑靼人。                   <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Western speakers interpret this saying   <br></br>
      like this: peel the skin off a Russian   <br></br>
      man and you will find a Tatar.          
    </td>
  </tr></table> <figure id="org5214f9a"> <img src="008_tatar-woman.webp" alt="008_tatar-woman.webp"></img> <figcaption> <span class="figure-number">Figure 7: </span>鞑靼姑娘 Tatar woman</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      鞑靼人在西方是蒙古人及蒙古人与当地人融合 <br></br>
      后的后裔的统称。                         <br></br>
                                              
    </td>
     <td align="left" valign="top">
      In the West, "Tatars" is a name given to <br></br>
      the decendants of mongols, as well as    <br></br>
      other peoples living in the same land.  
    </td>
  </tr> <tr> <td align="left" valign="top">
      那么为什么俄罗斯人剥开后会是蒙古人呢？   <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Then why would peeling the skin off a    <br></br>
      Russian give you a mongol?              
    </td>
  </tr> <tr> <td align="left" valign="top">
      这就要从历史上面积最大的帝国——蒙古帝国说 <br></br>
      起了。                                   <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Let us start from the fact that          <br></br>
      historically, Mongolian Empire had the   <br></br>
      biggers area ever achieved.             
    </td>
  </tr> <tr> <td align="left" valign="top">
      成吉思汗有四个儿子，他们的后裔后来因为蒙 <br></br>
      古大汗之位发生争执，蒙古帝国分裂出四大帝 <br></br>
      国，分别是金帐汗国（又称钦察汗国），察合 <br></br>
      台汗国、窝阔台汗国、伊利汗国（又称伊尔汗 <br></br>
      国）。                                   <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Zhenghis Khan had four children, and     <br></br>
      when the time to inherit the Grand Khan  <br></br>
      title came, a conflict arose, and        <br></br>
      Mongolian Empire was divided into four   <br></br>
      empires, called the "Golden Horde" （    <br></br>
      Also called the Kipchak Khanate), the    <br></br>
      Chagatai Khanate, the House of Ögedei,   <br></br>
      and the Ilkhanate (also called           <br></br>
      Iranzamin).                             
    </td>
  </tr> <tr> <td align="left" valign="top">
      四个汗国都奉入主中原的元朝为主，但是各自 <br></br>
      之间矛盾不断，常有战争。                 <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      All the four khanates recognized the     <br></br>
      Chinese Yuan dynasty's seniority, but    <br></br>
      among themselves they incessantly        <br></br>
      conflicted, and often warred.           
    </td>
  </tr></table> <figure id="orgf138b52"> <img src="009_golden-horde.webp" alt="009_golden-horde.webp"></img> <figcaption> <span class="figure-number">Figure 8: </span>金帐汗国 The Golden Horde</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      此时的俄罗斯地区，便是在金帐汗国统治之下 <br></br>
      。                                      
    </td>
     <td align="left" valign="top">
      This time Russian territory was under in <br></br>
      Golden Horde's sphere of domination.    
    </td>
  </tr> <tr> <td align="left" valign="top">
      但是蒙古人口有限，很多事务都交给当地贵族 <br></br>
      管理。                                   <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      But since the manpower of the Golden     <br></br>
      Horde was limited, many government       <br></br>
      affairs were oursourced to the local     <br></br>
      nobility.                               
    </td>
  </tr> <tr> <td align="left" valign="top">
      俄罗斯帝国的先祖，绰号钱包的莫斯科大公伊 <br></br>
      凡一世在金帐汗国大汗的支持下，获得了全俄 <br></br>
      罗斯地区的收税权。                       <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      The Russian founding father, nicknamed   <br></br>
      Kalita, was Ivan the First, Duke of      <br></br>
      Moscow, according to the order of the    <br></br>
      Great Khan, obtained the privilege to    <br></br>
      levy taxes from all of Russia.          
    </td>
  </tr> <tr> <td align="left" valign="top">
      依靠收税权这份肥差，莫斯科大公势力迅速壮 <br></br>
      大，并在大汗的支持下，成为了俄罗斯地区的 <br></br>
      实际统治者。                             <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Obtaining this very lucrative position,  <br></br>
      the Grand Duke of Moscow swiftly started <br></br>
      accumulating strength, and with the      <br></br>
      Grand Knan's support, became the unifier <br></br>
      and the real ruler of all of Russian     <br></br>
      lands.                                  
    </td>
  </tr> <tr> <td align="left" valign="top">
      14世纪末期，金帐汗国逐渐衰落。           <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      By the end of the 14th century,          <br></br>
      gradually, the Golden Horde was steadily <br></br>
      declining.                              
    </td>
  </tr> <tr> <td align="left" valign="top">
      1480年，莫斯科公国最终击败大汗，从蒙古人 <br></br>
      的统治下独立出来。                       <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      In 1480, the Dutchy of Moscow finally    <br></br>
      defeated the Grand Khan, and obtained    <br></br>
      independence from the Mongolian          <br></br>
      domination.                             
    </td>
  </tr></table> <table border="1"> <tr> <td align="left" valign="top">
      从1240年到1480年，蒙古人对俄罗斯地区进行 <br></br>
      了长达240年的统治。                      <br></br>
                                              
    </td>
     <td align="left" valign="top">
      From 1240 to 1480, for the whoopping 240 <br></br>
      years, the Mongols dominated over the    <br></br>
      Russian Land.                           
    </td>
  </tr> <tr> <td align="left" valign="top">
      大量俄罗斯上层贵族同蒙古贵族通婚，据统计 <br></br>
      ，当年在俄国具备蒙古血统的大公足足有九十 <br></br>
      二个之多，他们产生了三百多个贵族姓氏。   <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Many high-ranking Russian nobles married <br></br>
      Mongolian nobles, according to the       <br></br>
      statistics, during that period, as many  <br></br>
      as 92 Grand Dukes were related to the    <br></br>
      Mongols via blood ties, and as many as   <br></br>
      300 family names in Rissia are due to    <br></br>
      those family links.                     
    </td>
  </tr> <tr> <td align="left" valign="top">
      而蒙古人以及随蒙古人出征来到俄罗斯地区的 <br></br>
      各族人和当地人融合的后裔，也孕育出鞑靼等 <br></br>
      多个俄罗斯民族。                         <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Moreover, Mongols, as well as many       <br></br>
      non-Mongols fighting on their side, came <br></br>
      to the Russian Lands and left offsprings <br></br>
      with the natives, thereby giving birth   <br></br>
      to the tatars, as well as many other     <br></br>
      ethnicities inhabiting Russia.          
    </td>
  </tr></table> <figure id="org9f27932"> <img src="010_lenin.webp" alt="010_lenin.webp"></img> <figcaption> <span class="figure-number">Figure 9: </span>列宁 Lenin</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      苏联革命导师列宁的奶奶是卡尔梅克人，和当 <br></br>
      年东归的土尔扈特部蒙古，是同一支蒙古部落 <br></br>
      。                                       <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      The leader of the Soviet Revolution,     <br></br>
      Lenin's grandma (from his mother's       <br></br>
      side), was a Kalmyk, which means that he <br></br>
      belong to the same branch of the         <br></br>
      Mongolian tribes, as the "Tu Er Hu"      <br></br>
      tribe, which migrated to the East the    <br></br>
      same year.                              
    </td>
  </tr> <tr> <td align="left" valign="top">
      而苏联领导人斯大林的母亲也同样有着蒙古血 <br></br>
      统。                                     <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Moreover, Stalin, the Soviet Union       <br></br>
      leader, had a mother, who was also,      <br></br>
      related by blood to the Mongols.        
    </td>
  </tr> <tr> <td align="left" valign="top">
      据说每七个俄罗斯人，就有一个人有蒙古人的 <br></br>
      血统。                                  
    </td>
     <td align="left" valign="top">
      They say that as many as one in seven    <br></br>
      Russians has blood links to the Mongols.
    </td>
  </tr> <tr> <td align="left" valign="top">
      所以我们会看到很多苏联领导人的样貌，都多 <br></br>
      少有一些东方人的特征                     <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Therefore, considering Soviet leadership <br></br>
      looks, we can see that all have at least <br></br>
      a little bit of Eastern facial features.
    </td>
  </tr></table> <figure id="org077cbb7"> <img src="011_brezhnev.webp" alt="011_brezhnev.webp"></img> <figcaption> <span class="figure-number">Figure 10: </span>勃列日涅夫 Brezhnev</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      俄罗斯的建立以及统治制度，都深受蒙古金帐 <br></br>
      汗国的影响。                             <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Russian establishment, as well at the    <br></br>
      political system, in no small measure    <br></br>
      were created under the influence of the  <br></br>
      Mongolian Golden Horde Khanate.         
    </td>
  </tr> <tr> <td align="left" valign="top">
      但是经过百年的延续，目前俄罗斯主体还是以 <br></br>
      斯拉夫人为主，蒙古血统虽然存在，但是影响 <br></br>
      力和存在感，是十分微弱的。               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      However, after hundreds of years have    <br></br>
      passed, presently Russia is still mainly <br></br>
      a Slavic country, and while the          <br></br>
      Mongolian blood is still present, its    <br></br>
      influence must have weaked about         <br></br>
      tenfold.                                
    </td>
  </tr> <tr> <td align="left" valign="top">
      就好像我们汉族其实也融合了大量匈奴鲜卑突 <br></br>
      厥契丹等民族的血脉，但是不能说我们就是匈 <br></br>
      奴鲜卑等民族的后代吧。                   <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Just like us, the Han people, as in fact <br></br>
      we also have a lot of foreign blood      <br></br>
      floating in our veins, including the     <br></br>
      Huns, the Xianbei, the Turks, the        <br></br>
      Khitans. Still, nobody is claiming that  <br></br>
      we are "just" the descendants of the     <br></br>
      Huns, the Xianbei, and the like.        
    </td>
  </tr> <tr> <td align="left" valign="top">
      所以说俄国正统在鞑靼，鞑靼正统在蒙古，在 <br></br>
      一定意义上是说得通的，但是牵强附会的意义 <br></br>
      更大。                                   <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Therefore, saying that the Russian       <br></br>
      heritage is in the Tatars, the Tatar     <br></br>
      heritage is in the Mongols, in some      <br></br>
      sense is saying the same thing,          <br></br>
      although, maybe that's just a little bit <br></br>
      more of a stretch.                      
    </td>
  </tr></table></div>
</div>

 <div id="outline-container-%E8%92%99%E5%8F%A4%E6%AD%A3%E7%BB%9F%E5%AF%9F%E5%93%88%E5%B0%94%EF%BC%8C%E5%AF%9F%E5%93%88%E5%B0%94%E7%9C%81%E4%BC%9A%E5%BC%A0%E5%AE%B6%E5%8F%A3-Mongolian-heritage-is-in-Chahar,-and-Chahar's-capital-is-ZhangJiaKou" class="outline-3">
 <h3 id="%E8%92%99%E5%8F%A4%E6%AD%A3%E7%BB%9F%E5%AF%9F%E5%93%88%E5%B0%94%EF%BC%8C%E5%AF%9F%E5%93%88%E5%B0%94%E7%9C%81%E4%BC%9A%E5%BC%A0%E5%AE%B6%E5%8F%A3-Mongolian-heritage-is-in-Chahar,-and-Chahar's-capital-is-ZhangJiaKou"> <span class="section-number-3">1.3.</span>  <a href="#%E8%92%99%E5%8F%A4%E6%AD%A3%E7%BB%9F%E5%AF%9F%E5%93%88%E5%B0%94%EF%BC%8C%E5%AF%9F%E5%93%88%E5%B0%94%E7%9C%81%E4%BC%9A%E5%BC%A0%E5%AE%B6%E5%8F%A3-Mongolian-heritage-is-in-Chahar,-and-Chahar's-capital-is-ZhangJiaKou">蒙古正统察哈尔，察哈尔省会张家口 Mongolian heritage is in Chahar, and Chahar’s capital is ZhangJiaKou</a></h3>
 <div class="outline-text-3" id="text-%E8%92%99%E5%8F%A4%E6%AD%A3%E7%BB%9F%E5%AF%9F%E5%93%88%E5%B0%94%EF%BC%8C%E5%AF%9F%E5%93%88%E5%B0%94%E7%9C%81%E4%BC%9A%E5%BC%A0%E5%AE%B6%E5%8F%A3-Mongolian-heritage-is-in-Chahar,-and-Chahar's-capital-is-ZhangJiaKou">

 <table border="1"> <tr> <td align="left" valign="top">
      那蒙古又是如何和察哈尔省会张家口联系上的 <br></br>
      呢？                                     <br></br>
                                              
    </td>
     <td align="left" valign="top">
      But what is the connection between       <br></br>
      Mongolia and ZhangJiaKou, the Chahar's   <br></br>
      provincial capital?                     
    </td>
  </tr> <tr> <td align="left" valign="top">
      察哈尔省是民国时期的一个省，省会在今天的 <br></br>
      张家口市桥西区，下辖今天内蒙古中部东部， <br></br>
      河北及山西省北部地区。                   <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      The province of Chahar existed during    <br></br>
      the times of the Republic of China, with <br></br>
      its provincial capital located at the    <br></br>
      present QiaoXi district of the           <br></br>
      ZhangJiaKou city, and administered the   <br></br>
      area corresponding to the present Inner  <br></br>
      Mongolia's center and east, the present  <br></br>
      Hebei province, and the present northern <br></br>
      Shanxi.                                 
    </td>
  </tr> <tr> <td align="left" valign="top">
      而察哈尔省名字则是源于清朝时期的蒙古察哈 <br></br>
      尔部。                                   <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Moreover, the name Chahar comes from the <br></br>
      Qing Dynasty time prefecture in          <br></br>
      Mongolia, called Chahar.                
    </td>
  </tr> <tr> <td align="left" valign="top">
      察哈尔一词源于波斯语，其意为“家人”、“奴  <br></br>
      仆”、“卫士”、“宫殿卫队”之意。            <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      The word "Chahar" itself comes from the  <br></br>
      Persian language, and its meaning is     <br></br>
      something like "family members",         <br></br>
      "servants", "bodyguards", "palace        <br></br>
      guards".                                
    </td>
  </tr> <tr> <td align="left" valign="top">
      成吉思汗生前把以“察哈尔”命名的自己一部分 <br></br>
      家人和贴身仆人赐给幼子拖雷之妻。         <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      During the life of Dzhenghis Khan, the   <br></br>
      name "Chahar" was used by some of the    <br></br>
      family members and close servants,       <br></br>
      attributed to the wife of the infant     <br></br>
      Tolui, the fourth son of Dzhenghis Khan. <br></br>
      (was the wife infant, or Tolui himself?)
    </td>
  </tr> <tr> <td align="left" valign="top">
      北元时期，察哈尔成为了就是蒙古大汗的直属 <br></br>
      部落的名字。                             <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      During the Northern Yuan period,         <br></br>
      "Chahar" became just the name of the     <br></br>
      tribe directly subservient to Grand      <br></br>
      Khan.                                   
    </td>
  </tr> <tr> <td align="left" valign="top">
      从此，察哈尔部就和成吉思汗直系后裔黄金家 <br></br>
      族一样，成为了蒙古宗主的代表。           <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Since then, "Chahar" was associated with <br></br>
      the direct descendants of the Dzhanghis  <br></br>
      Knah, sometimes called the "Golden       <br></br>
      Klan", who were the rulers of Mongolia.  <br></br>
                                              
    </td>
  </tr></table> <table border="1"> <tr> <td align="left" valign="top">
      1634年，察哈尔部首领，蒙古末代大汗林丹汗 <br></br>
      死于青海。                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      In 1634, the head of Chahar, the last    <br></br>
      Mongolian Grand Khan, Ligden Khan, died  <br></br>
      in Qinghai.                             
    </td>
  </tr> <tr> <td align="left" valign="top">
      其子额哲于次年投降满洲后金，皇太极封其为 <br></br>
      察哈尔亲王，将次女固伦温庄长公主马喀塔嫁 <br></br>
      给了他。                                 <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Next year his son Ejei capitulated       <br></br>
      before the Machu dynasty of Later Jin,   <br></br>
      and the Manchu Khan Hong TaiJi gave him  <br></br>
      the title of the "Prince of Chahar", and <br></br>
      made his own daughter, Makata, titled    <br></br>
      Princess WenZhuang, his wife.           
    </td>
  </tr> <tr> <td align="left" valign="top">
      1636年，蒙古各部会聚沈阳，承认皇太极为汗 <br></br>
      。                                       <br></br>
                                              
    </td>
     <td align="left" valign="top">
      In 1636, all-Mongolian council convened  <br></br>
      in Shenyang, and regognized Hong Taiji   <br></br>
      as the next Khan.                       
    </td>
  </tr> <tr> <td align="left" valign="top">
      从此，清朝皇帝就兼任了蒙古大汗。         <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Since then, the Qing Dynasty Emperors    <br></br>
      became at the same time the Mongolian    <br></br>
      Khan.                                   
    </td>
  </tr> <tr> <td align="left" valign="top">
      康熙时期，察哈尔部被清廷迁至后来的察哈尔 <br></br>
      省地区安置。                             <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      During the period of Emperor Kangxi of   <br></br>
      the Qing dynasty,the Court of Chahar was <br></br>
      moved to a more suitable place, which    <br></br>
      happended to be at the territory of the  <br></br>
      later Chahar province.                  
    </td>
  </tr> <tr> <td align="left" valign="top">
      察哈尔省便是来源于此。                   <br></br>
                                              
    </td>
     <td align="left" valign="top">
      This is exactly where the name Chahar    <br></br>
      comes from.                             
    </td>
  </tr></table> <figure id="orgfb53d55"> <img src="012_ligden-khan.webp" alt="012_ligden-khan.webp"></img> <figcaption> <span class="figure-number">Figure 11: </span>末代蒙古大汗林丹汗 The last Mongolian Khan, Ligden Khan.</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      如此看来，所谓的蒙古正统察哈尔，察哈尔省 <br></br>
      会张家口，倒是挺有道理的。               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Looking at the story from this angle,    <br></br>
      the so-called "Mongolian Heritage is in  <br></br>
      Chahar", "Chahar's capital is            <br></br>
      ZhangJiaKou" finally starts making       <br></br>
      sense.                                  
    </td>
  </tr></table></div>
</div>

 <div id="outline-container-%E6%88%8F%E8%B0%88%E5%8E%86%E5%8F%B2-Playful-conversation-about-history." class="outline-3">
 <h3 id="%E6%88%8F%E8%B0%88%E5%8E%86%E5%8F%B2-Playful-conversation-about-history."> <span class="section-number-3">1.4.</span>  <a href="#%E6%88%8F%E8%B0%88%E5%8E%86%E5%8F%B2-Playful-conversation-about-history.">戏谈历史 Playful conversation about history.</a></h3>
 <div class="outline-text-3" id="text-%E6%88%8F%E8%B0%88%E5%8E%86%E5%8F%B2-Playful-conversation-about-history.">

 <table border="1"> <tr> <td align="left" valign="top">
      整个逻辑链条捋下来，前后两端都是毫无破绽 <br></br>
      的，只是中间俄罗斯和蒙古的所谓正统，太过 <br></br>
      于牵强了。                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Walking along all the chain of logical   <br></br>
      inferences, from one end to another, it  <br></br>
      doesn't seem possible to find a single   <br></br>
      weak link, except that so-called Russian <br></br>
      to Mongolian inheritance, which seems    <br></br>
      too much of a stretch.                  
    </td>
  </tr> <tr> <td align="left" valign="top">
      所以，以后大家听到如此的戏闻，只当是玩笑 <br></br>
      ，切莫当真了。                           <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Therefore, those who managed to read     <br></br>
      this anecdote this far, and pretend to   <br></br>
      be not smiling, it's your turn now.     
    </td>
  </tr></table> <figure id="org718c007"> <img src="013_properties-of-Rome.webp" alt="013_properties-of-Rome.webp"></img> <figcaption> <span class="figure-number">Figure 12: </span>另一个版本的罗马正统戏说 One more version of the Roman Heritage anecdote</figcaption></figure> <table border="1"> <tr> <td align="left" valign="top">
      当然历史方面有很多类似的戏谈，粗略看起来 <br></br>
      ，挺有道理，但是细究起来，很多逻辑破绽。 <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Of course, there are many anecdotes      <br></br>
      about history, which, judging            <br></br>
      inaccurately, may seem to make a lot of  <br></br>
      sense, but, when scrutinised carefully,  <br></br>
      most of the logic fails apart.          
    </td>
  </tr> <tr> <td align="left" valign="top">
      很多时候，大家不必当真。                
    </td>
     <td align="left" valign="top">
      Most of the time, we need to be wary.   
    </td>
  </tr> <tr> <td align="left" valign="top">
      当然，也大可不必因为这些戏闻痛心疾首，毕 <br></br>
      竟如果通过对这些戏谈的研究，能够了解更多 <br></br>
      的历史知识和趣闻，何乐而不为呢？         <br></br>
                                               <br></br>
                                               <br></br>
                                               <br></br>
                                              
    </td>
     <td align="left" valign="top">
      Of course, it is not necessary to make   <br></br>
      your heart burn because of a historical  <br></br>
      anecdote, after all, if an anecdate made <br></br>
      you do some historical research,         <br></br>
      understand history some more, and get    <br></br>
      some more knowledge (even if of dubious  <br></br>
      utility), isn't it worth it, after all? 
    </td>
  </tr></table></div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2022-08-07_Roman-Imperial-Heritage-in-Chinese-Hebei-ZhangJiaKou/index.html"/>
  <id>https://lockywolf.net/2022-08-07_Roman-Imperial-Heritage-in-Chinese-Hebei-ZhangJiaKou/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Notes and words for reading The Prince by Niccolo Machiavelli.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Notes and words for reading The Prince by Niccolo Machiavelli.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Words">1. Words</a></li>
 <li> <a href="#Unknown-things">2. Unknown things</a>
 <ul> <li> <a href="#Ninian-Hill-Thomson">2.1. Ninian Hill Thomson</a></li>
 <li> <a href="#Lorenzo-Di-Piero-De%E2%80%99-Medici">2.2. Lorenzo Di Piero De’ Medici</a></li>
 <li> <a href="#Francesco-Sforza">2.3. Francesco Sforza</a></li>
 <li> <a href="#Princedom-of-Milan-of-Francesco-Sforza">2.4. Princedom of Milan of Francesco Sforza</a></li>
 <li> <a href="#Duke-of-Ferrara">2.5. Duke of Ferrara</a></li>
 <li> <a href="#Attack-of-Venetians-on-Ferrara-in-1484">2.6. Attack of Venetians on Ferrara in 1484</a></li>
 <li> <a href="#Attack-of-Pope-Julius-(The-Second?)-on-Ferrara-1510">2.7. Attack of Pope Julius (The Second?) on Ferrara 1510</a></li>
 <li> <a href="#Louis-XII-of-France">2.8. Louis XII of France</a></li>
 <li> <a href="#Louis-XII-of-France-obtaining-Milan-(which-year?)">2.9. Louis XII of France obtaining Milan (which year?)</a></li>
 <li> <a href="#Lodovico-Sforza">2.10. Lodovico Sforza</a></li>
 <li> <a href="#Lodovico-Sforza-retakes-Milan-from-Louis-XII-of-France-quite-easily">2.11. Lodovico Sforza retakes Milan from Louis XII of France quite easily</a></li>
 <li> <a href="#King-of-France-retakes-Milan">2.12. King of France retakes Milan</a></li>
 <li> <a href="#Lodovico-Sforza-again-retakes-Milan,-with-a-lot-of-casualties">2.13. Lodovico Sforza again retakes Milan, with a lot of casualties</a></li>
 <li> <a href="#Romans-brought-into-Greece-by-the-Aetolians">2.14. Romans brought into Greece by the Aetolians</a></li>
 <li> <a href="#In-Greece-the-Romans-took-the-Achaians-and-Aetolians-into-their-pay">2.15. In Greece the Romans took the Achaians and Aetolians into their pay</a></li>
 <li> <a href="#In-Greece-the-Romans-humbled-the-Macedon">2.16. In Greece the Romans humbled the Macedon</a></li>
 <li> <a href="#In-Greece-the-Romans-driven-out-Antiochus-(who-is-that?)">2.17. In Greece the Romans driven out Antiochus (who is that?)</a></li>
 <li> <a href="#Philip-of-Macedon-who-was-humbled-by-Romans,-not-_that_-Philip">2.18. Philip of Macedon who was humbled by Romans, not  <span class="underline">that</span> Philip</a></li>
 <li> <a href="#King-Charles-of-France">2.19. King Charles of France</a></li>
 <li> <a href="#State-of-Lombardy">2.20. State of Lombardy</a></li>
 <li> <a href="#State-of-Genoa">2.21. State of Genoa</a></li>
 <li> <a href="#Florentines-(Republic?)">2.22. Florentines (Republic?)</a></li>
 <li> <a href="#Bentivogli">2.23. Bentivogli</a></li>
 <li> <a href="#Countess-of-Forli">2.24. Countess of Forli</a></li>
 <li> <a href="#Lords-of-Faenza">2.25. Lords of Faenza</a></li>
 <li> <a href="#Pesaro">2.26. Pesaro</a></li>
 <li> <a href="#Rimini">2.27. Rimini</a></li>
 <li> <a href="#Camerino">2.28. Camerino</a></li>
 <li> <a href="#Piombino">2.29. Piombino</a></li>
 <li> <a href="#Lucca">2.30. Lucca</a></li>
 <li> <a href="#citizens-of-Lucca,-Pisa,-and-Siena">2.31. citizens of Lucca, Pisa, and Siena</a></li>
 <li> <a href="#Pope-Alexander-VI-Borgia-a.k.a.-Pope-Alexander">2.32. Pope Alexander VI Borgia a.k.a. Pope Alexander</a></li>
 <li> <a href="#Romagna">2.33. Romagna</a></li>
 <li> <a href="#Tuscany">2.34. Tuscany</a></li>
 <li> <a href="#Duke-Valentino,-Cesare-Borgia,-was-occuping-Romagna">2.35. Duke Valentino, Cesare Borgia, was occuping Romagna</a></li>
 <li> <a href="#Pisa-rose-against-the-Florentines-after-a-hundred-years-of-servitude-(???)">2.36. Pisa rose against the Florentines after a hundred years of servitude (???)</a></li>
 <li> <a href="#Cyrus-(he-was-the-first-of-his-dynasty?)">2.37. Cyrus (he was the first of his dynasty?)</a></li>
 <li> <a href="#Alba-(Romulus-that-he-found-no-home-in-Alba)">2.38. Alba (Romulus that he found no home in Alba)</a></li>
 <li> <a href="#Medes-(king-of-Persians)">2.39. Medes (king of Persians)</a></li>
 <li> <a href="#Hiero-the-Syracusan">2.40. Hiero the Syracusan</a></li>
 <li> <a href="#Duke-of-Milan">2.41. Duke of Milan</a></li>
 <li> <a href="#Cesare-Borgia-a.k.a.-Duke-Valentino">2.42. Cesare Borgia a.k.a. Duke Valentino</a></li>
 <li> <a href="#Orsini">2.43. Orsini</a></li>
 <li> <a href="#Colonnesi">2.44. Colonnesi</a></li>
 <li> <a href="#Dukedom-of-Urbino">2.45. Dukedom of Urbino</a></li>
 <li> <a href="#Magione-in-the-Perugian-territory">2.46. Magione in the Perugian territory</a></li>
 <li> <a href="#revolt-of-Urbino">2.47. revolt of Urbino</a></li>
 <li> <a href="#commotions-in-Romagna">2.48. commotions in Romagna</a></li>
 <li> <a href="#Signor-Paolo">2.49. Signor Paolo</a></li>
 <li> <a href="#Sinigaglia-/-Senigallia">2.50. Sinigaglia / Senigallia</a></li>
 <li> <a href="#drawn-in-...-into-his-(Cesare-Borgia)-hands-at-Sinigaglia">2.51. drawn in … into his (Cesare Borgia) hands at Sinigaglia</a></li>
 <li> <a href="#Messer-Remiro-d%E2%80%99Orco">2.52. Messer Remiro d’Orco</a></li>
 <li> <a href="#Cesena">2.53. Cesena</a></li>
 <li> <a href="#French,-then-occupied-with-their-expedition-into-the-Kingdom-of-Naples-against-the-Spaniards">2.54. French, then occupied with their expedition into the Kingdom of Naples against the Spaniards</a></li>
 <li> <a href="#siege-to-Gaeta-by-French">2.55. siege to Gaeta by French</a></li>
 <li> <a href="#Perugia">2.56. Perugia</a></li>
 <li> <a href="#Baglioni">2.57. Baglioni</a></li>
 <li> <a href="#Vitelli">2.58. Vitelli</a></li>
 <li> <a href="#Pope-Julius-II">2.59. Pope Julius II</a></li>
 <li> <a href="#San-Pietro-ad-Vincula">2.60. San Pietro ad Vincula</a></li>
 <li> <a href="#Colonna">2.61. Colonna</a></li>
 <li> <a href="#San-Giorgio">2.62. San Giorgio</a></li>
 <li> <a href="#Ascanio">2.63. Ascanio</a></li>
 <li> <a href="#d%E2%80%99Amboise">2.64. d’Amboise</a></li>
 <li> <a href="#Spanish-Cardinals">2.65. Spanish Cardinals</a></li>
 <li> <a href="#Agathocles-the-Sicilian">2.66. Agathocles the Sicilian</a></li>
 <li> <a href="#Syracuse">2.67. Syracuse</a></li>
 <li> <a href="#Hamilcar">2.68. Hamilcar</a></li>
 <li> <a href="#Oliverotto-of-Fermo">2.69. Oliverotto of Fermo</a></li>
 <li> <a href="#Giovanni-Fogliani,-uncle-of-Oliverotto-of-Fermo,-killed-by-him">2.70. Giovanni Fogliani, uncle of Oliverotto of Fermo, killed by him</a></li>
 <li> <a href="#Paolo-Vitelli">2.71. Paolo Vitelli</a></li>
 <li> <a href="#Vitellozzo-Vitelli,-brother-of-%5B%5B*Paolo-Vitelli%5D%5D">2.72. Vitellozzo Vitelli, brother of *Paolo Vitelli</a></li>
 <li> <a href="#Vitelleschi">2.73. Vitelleschi</a></li>
 <li> <a href="#Nabis,-Prince-of-Sparta">2.74. Nabis, Prince of Sparta</a></li>
 <li> <a href="#the-Gracchi-in-Rome">2.75. the Gracchi in Rome</a></li>
 <li> <a href="#Messer-Giorgio-Scali-in-Florence">2.76. Messer Giorgio Scali in Florence</a></li>
 <li> <a href="#Potentates-of-Italy">2.77. Potentates of Italy</a></li>
 <li> <a href="#Pope-Sixtus">2.78. Pope Sixtus</a></li>
 <li> <a href="#Pope-Leo">2.79. Pope Leo</a></li>
 <li> <a href="#Epaminondas,-and-the-Thebans">2.80. Epaminondas, and the Thebans</a></li>
 <li> <a href="#Duke-Filippo-of-the-Milanese">2.81. Duke Filippo of the Milanese</a></li>
 <li> <a href="#Caravaggio,-and-the-battle-there">2.82. Caravaggio, and the battle there</a></li>
 <li> <a href="#Giovanna,-Queen-of-Naples">2.83. Giovanna, Queen of Naples</a></li>
 <li> <a href="#Giovanni-Acuto">2.84. Giovanni Acuto</a></li>
 <li> <a href="#Bracceschi">2.85. Bracceschi</a></li>
 <li> <a href="#Carmagnola-and-its-conquest-by-the-Venetians">2.86. Carmagnola and its conquest by the Venetians</a></li>
 <li> <a href="#Alberico-of-Conio-in-Romagna">2.87. Alberico of Conio in Romagna</a></li>
 <li> <a href="#King-of-Spain-(Ferdinand-II-of-Aragon)">2.88. King of Spain (Ferdinand II of Aragon)</a></li>
 <li> <a href="#Emperor-of-Constantinople">2.89. Emperor of Constantinople</a></li>
 <li> <a href="#The-Turk,-probably-means-Seljuq-Turks,-led-by-Mehmend-II">2.90. The Turk, probably means Seljuq Turks, led by Mehmend II</a></li>
 <li> <a href="#Imola">2.91. Imola</a></li>
 <li> <a href="#Forli">2.92. Forli</a></li>
 <li> <a href="#Philopoemon,-Prince-of-the-Achaians">2.93. Philopoemon, Prince of the Achaians</a></li>
 <li> <a href="#Xenophon">2.94. Xenophon</a></li>
 <li> <a href="#Pistoja">2.95. Pistoja</a></li>
 <li> <a href="#Hannibal">2.96. Hannibal</a></li>
 <li> <a href="#Fabius-Maximus-(Quintus-Fabius-Maximus-Verrucosus)">2.97. Fabius Maximus (Quintus Fabius Maximus Verrucosus)</a></li>
 <li> <a href="#Locrians">2.98. Locrians</a></li>
 <li> <a href="#Chiron-the-Centaur">2.99. Chiron the Centaur</a></li>
 <li> <a href="#Messer-Annibale-Bentivoglio">2.100. Messer Annibale Bentivoglio</a></li>
 <li> <a href="#Canneschi">2.101. Canneschi</a></li>
 <li> <a href="#Marcus-the-Philosopher-(Marcus-Aurelius?)">2.102. Marcus the Philosopher (Marcus Aurelius?)</a></li>
 <li> <a href="#Commodus-son-of-Marcus-Aurelius-(Lucius-Aelius-Aurelius-Commodus)">2.103. Commodus son of Marcus Aurelius (Lucius Aelius Aurelius Commodus)</a></li>
 <li> <a href="#Pertinax-(Publius-Helvius-Pertinax)">2.104. Pertinax (Publius Helvius Pertinax)</a></li>
 <li> <a href="#Julianus-(Marcus-Didius-Julianus)">2.105. Julianus (Marcus Didius Julianus)</a></li>
 <li> <a href="#Severus-(Lucius-Septimius-Severus)">2.106. Severus (Lucius Septimius Severus)</a></li>
 <li> <a href="#Caracalla-son-of-Severus-(Marcus-Aurelius-Antoninus-%22Caracalla%22)">2.107. Caracalla son of Severus (Marcus Aurelius Antoninus “Caracalla”)</a></li>
 <li> <a href="#Macrinus-(Marcus-Opellius-Macrinus)">2.108. Macrinus (Marcus Opellius Macrinus)</a></li>
 <li> <a href="#Heliogabalus-(Marcus-Aurelius-Antoninus-%22Elagabalus%22)">2.109. Heliogabalus (Marcus Aurelius Antoninus “Elagabalus”)</a></li>
 <li> <a href="#(Severus)-Alexander">2.110. (Severus) Alexander</a></li>
 <li> <a href="#Maximinus-(Gaius-Julius-Verus-Maximinus-%22Thrax%22)">2.111. Maximinus (Gaius Julius Verus Maximinus “Thrax”)</a></li>
 <li> <a href="#Illyria">2.112. Illyria</a></li>
 <li> <a href="#Niger-(Gaius-Pescennius-Niger)">2.113. Niger (Gaius Pescennius Niger)</a></li>
 <li> <a href="#Albinus-Emperor">2.114. Albinus Emperor</a></li>
 <li> <a href="#siege-of-Aquileja">2.115. siege of Aquileja</a></li>
 <li> <a href="#Soldan">2.116. Soldan</a></li>
 <li> <a href="#Guelf-and-Ghibelline">2.117. Guelf and Ghibelline</a></li>
 <li> <a href="#defeat-at-Vaila-(of-the-Venetian-Republic)">2.118. defeat at Vaila (of the Venetian Republic)</a></li>
 <li> <a href="#Pandolfo-Petrucci,-Lord-of-Siena">2.119. Pandolfo Petrucci, Lord of Siena</a></li>
 <li> <a href="#Messer-Niccolo-Vitelli">2.120. Messer Niccolo Vitelli</a></li>
 <li> <a href="#Citt%C3%A0-di-Castello">2.121. Città di Castello</a></li>
 <li> <a href="#Guido-Ubaldo,-Duke-of-Urbino">2.122. Guido Ubaldo, Duke of Urbino</a></li>
 <li> <a href="#her-husband-Count-Girolamo">2.123. her husband Count Girolamo</a></li>
 <li> <a href="#The-war-of-Ferdinand-of-Aragon-on-Granada">2.124. The war of Ferdinand of Aragon on Granada</a></li>
 <li> <a href="#Barons-of-Castile">2.125. Barons of Castile</a></li>
 <li> <a href="#the-Moors-(a.k.a.-Maurs?)">2.126. the Moors (a.k.a. Maurs?)</a></li>
 <li> <a href="#Messer-Bernabo-of-Milan">2.127. Messer Bernabo of Milan</a></li>
 <li> <a href="#Messer-Antonio-of-Venafro,-as-Minister-of-Pandolfo-Petrucci,-Lord-of-Siena">2.128. Messer Antonio of Venafro, as Minister of Pandolfo Petrucci, Lord of Siena</a></li>
 <li> <a href="#Father-Luke,-who-is-attached-to-the-Court-of-the-present-Emperor-Maximilian">2.129. Father Luke, who is attached to the Court of the present Emperor Maximilian</a></li>
 <li> <a href="#Philip-V-of-Macedon,-not-the-father-of-Alexander-the-Great,-but-he-who-was-vanquished-by-Titus-Quintius">2.130. Philip V of Macedon, not the father of Alexander the Great, but he who was vanquished by Titus Quintius</a></li>
 <li> <a href="#Titus-Quintius">2.131. Titus Quintius</a></li>
 <li> <a href="#Messer-Giovanni-Bentivoglio">2.132. Messer Giovanni Bentivoglio</a></li>
 <li> <a href="#Kingdom-of-Naples">2.133. Kingdom of Naples</a></li>
 <li> <a href="#battle-of-Ravenna,-where-the-Spanish-infantry-confronted-the-German-companies">2.134. battle of Ravenna, where the Spanish infantry confronted the German companies</a></li>
</ul></li>
 <li> <a href="#Notes">3. Notes</a>
 <ul> <li> <a href="#Chapter-1-Of-the-Various-Kinds-of-Princedom,-and-of-the-Ways-in-Which-They-Are-Acquired">3.1. Chapter 1 Of the Various Kinds of Princedom, and of the Ways in Which They Are Acquired</a>
 <ul> <li> <a href="#Kinds-of-States">3.1.1. Kinds of States</a></li>
</ul></li>
 <li> <a href="#Chapter-2-Of-Hereditary-Princedoms">3.2. Chapter 2 Of Hereditary Princedoms</a>
 <ul> <li> <a href="#I-say,-then,-that-hereditary-States,-accustomed-to-the-family-of-their-Prince,-are-maintained-with-far-less-difficulty-than-new-States,">3.2.1. I say, then, that hereditary States, accustomed to the family of their Prince, are maintained with far less difficulty than new States,</a></li>
 <li> <a href="#one-change-always-leaves-a-dovetail-into-which-another-will-fit">3.2.2. one change always leaves a dovetail into which another will fit</a></li>
</ul></li>
 <li> <a href="#Chapter-3-Of-Mixed-Princedoms">3.3. Chapter 3 Of Mixed Princedoms</a>
 <ul> <li> <a href="#cause-common-to-all-new-States,-namely,-that-men,-thinking-to-better-their-condition,-are-always-ready-to-change-masters">3.3.1. cause common to all new States, namely, that men, thinking to better their condition, are always ready to change masters</a></li>
 <li> <a href="#Prince-cannot-avoid-giving-offence-to-his-new-subjects">3.3.2. Prince cannot avoid giving offence to his new subjects</a></li>
 <li> <a href="#And-in-this-way-you-may-find-that-you-have-enemies-in-all-those-whom-you-have-injured-in-seizing-the-Princedom,-yet-cannot-keep-the-friendship-of-those-who-helped-you-to-gain-it;-since-you-can-neither-reward-them-as-they-expect,-nor-yet,-being-under-obligations-to-them,-use-violent-remedies-against-them.">3.3.3. And in this way you may find that you have enemies in all those whom you have injured in seizing the Princedom, yet cannot keep the friendship of those who helped you to gain it; since you can neither reward them as they expect, nor yet, being under obligations to them, use violent remedies against them.</a></li>
 <li> <a href="#For-the-Prince,-using-the-rebellion-as-a-pretext,-will-not-scruple-to-secure-himself-by-punishing-the-guilty,-bringing-the-suspected-to-trial,-and-otherwise-strengthening-his-position-in-the-points-where-it-was-weak.">3.3.4. For the Prince, using the rebellion as a pretext, will not scruple to secure himself by punishing the guilty, bringing the suspected to trial, and otherwise strengthening his position in the points where it was weak.</a></li>
 <li> <a href="#States-which-upon-their-acquisition-are-joined-on-to-the-ancient-dominions-of-the-Prince-who-acquires-them,-are-either-of-the-same-Province-and-tongue-as-the-people-of-these-dominions,-or-they-are-not.">3.3.5. States which upon their acquisition are joined on to the ancient dominions of the Prince who acquires them, are either of the same Province and tongue as the people of these dominions, or they are not.</a></li>
 <li> <a href="#When-they-are,-there-is-a-great-ease-in-retaining-them,-especially-when-they-have-not-been-accustomed-to-live-in-freedom.">3.3.6. When they are, there is a great ease in retaining them, especially when they have not been accustomed to live in freedom.</a></li>
 <li> <a href="#To-hold-them-securely-itis-enough-to-have-rooted-out-the-line-of-the-reigning-Prince">3.3.7. To hold them securely itis enough to have rooted out the line of the reigning Prince</a></li>
 <li> <a href="#if-in-other-respects-the-old-condition-of-things-be-continued,-and-there-be-no-discordance-in-their-customs,-men-live-peaceably-with-one-another">3.3.8. if in other respects the old condition of things be continued, and there be no discordance in their customs, men live peaceably with one another</a></li>
 <li> <a href="#Brittany,-Burgundy,-Gascony,-and-Normandy,-which-have-so-long-been-united-to-France">3.3.9. Brittany, Burgundy, Gascony, and Normandy, which have so long been united to France</a></li>
 <li> <a href="#But-when-States-are-acquired-in-a-country-differing-in-language,-usages,-and-laws,-difficulties-multiply">3.3.10. But when States are acquired in a country differing in language, usages, and laws, difficulties multiply</a></li>
 <li> <a href="#best-and-most-efficacious-methods-for-dealing-with-such-a-State,-is-for-the-Prince-who-acquires-it-to-go-and-dwell-there-in-person">3.3.11. best and most efficacious methods for dealing with such a State, is for the Prince who acquires it to go and dwell there in person</a></li>
 <li> <a href="#Another-excellent-expedient-is-to-send-colonies-into-one-or-two-places,-so-that-these-may-become,-as-it-were,-the-keys-of-the-Province">3.3.12. Another excellent expedient is to send colonies into one or two places, so that these may become, as it were, the keys of the Province</a></li>
 <li> <a href="#A-Prince-need-not-spend-much-on-colonies.-He-can-send-them-out-and-support-them-at-little-or-no-charge-to-himself,-and-the-only-persons-to-whom-he-gives-offence-are-those-whom-he-deprives-of-their-fields-and-houses-to-bestow-them-on-the-new-inhabitants.">3.3.13. A Prince need not spend much on colonies. He can send them out and support them at little or no charge to himself, and the only persons to whom he gives offence are those whom he deprives of their fields and houses to bestow them on the new inhabitants.</a></li>
 <li> <a href="#if-instead-of-colonies-you-send-troops,-the-cost-is-vastly-greater,-and-the-whole-revenues-of-the-country-are-spent-in-guarding-it;-so-that-the-gain-becomes-a-loss,-and-much-deeper-offence-is-given">3.3.14. if instead of colonies you send troops, the cost is vastly greater, and the whole revenues of the country are spent in guarding it; so that the gain becomes a loss, and much deeper offence is given</a></li>
 <li> <a href="#The-Prince-who-establishes-himself-in-a-Province-whose-laws-and-language-differ-from-those-of-his-own-people,-ought-also-to-make-himself-the-head-and-protector-of-his-feebler-neighbours,-and-endeavour-to-weaken-the-stronger,-and-must-see-that-by-no-accident-shall-any-other-stranger-as-powerful-as-himself-find-an-entrance-there.">3.3.15. The Prince who establishes himself in a Province whose laws and language differ from those of his own people, ought also to make himself the head and protector of his feebler neighbours, and endeavour to weaken the stronger, and must see that by no accident shall any other stranger as powerful as himself find an entrance there.</a></li>
 <li> <a href="#realizing-what-the-physicians-tell-us-of-hectic-fever,">3.3.16. realizing what the physicians tell us of hectic fever,</a></li>
 <li> <a href="#But-no-sooner-was-he-in-Milan-than-he-took-a-contrary-course,-in-helping-Pope-Alexander-to-occupy-Romagna;-not-perceiving-that-in-seconding-this-enterprise-he-weakened-himself-by-alienating-friends-and-those-who-had-thrown-themselves-into-his-arms">3.3.17. But no sooner was he in Milan than he took a contrary course, in helping Pope Alexander to occupy Romagna; not perceiving that in seconding this enterprise he weakened himself by alienating friends and those who had thrown themselves into his arms</a></li>
 <li> <a href="#The-wish-to-acquire-is-no-doubt-a-natural-and-common-sentiment,-and-when-men-attemptthings-within-their-power,-they-will-always-be-praised-rather-than-blamed.-But-when-they-persist-in-attempts-that-are-beyond-their-power,-mishaps-and-blame-ensue.">3.3.18. The wish to acquire is no doubt a natural and common sentiment, and when men attemptthings within their power, they will always be praised rather than blamed. But when they persist in attempts that are beyond their power, mishaps and blame ensue.</a></li>
 <li> <a href="#If-France,-therefore,-with-her-own-forces-could-have-attacked-Naples,-she-should-have-done-so.-If-she-could-not,-she-ought-not-to-have-divided-it.">3.3.19. If France, therefore, with her own forces could have attacked Naples, she should have done so. If she could not, she ought not to have divided it.</a></li>
 <li> <a href="#war-is-not-so-to-be-avoided,-but-is-only-deferred-to-your-disadvantage.">3.3.20. war is not so to be avoided, but is only deferred to your disadvantage.</a></li>
</ul></li>
 <li> <a href="#Chapter-4-Why-the-Kingdom-of-Darius,-Conquered-by-Alexander,-Did-Not,-on-Alexander%E2%80%99s-Death,-Rebel-Against-His-Successors">3.4. Chapter 4 Why the Kingdom of Darius, Conquered by Alexander, Did Not, on Alexander’s Death, Rebel Against His Successors</a>
 <ul> <li> <a href="#If-any-one-think-this-strange-and-ask-the-cause,-I-answer,-that-all-the-Princedoms-of-which-we-have-record-have-been-governed-in-one-or-other-of-two-ways,-either-by-a-sole-Prince,-all-others-being-his-servants-permitted-by-his-grace-and-favour-to-assist-in-governing-the-kingdom-as-his-ministers;-or-else,-by-a-Prince-with-his-Barons-who-hold-their-rank,-not-by-the-favour-of-a-superior-Lord,-but-by-antiquity-of-blood,-and-who-have-States-and-subjects-of-their-own-who-recognize-them-as-their-rulers-and-entertain-for-them-a-natural-affection.">3.4.1. If any one think this strange and ask the cause, I answer, that all the Princedoms of which we have record have been governed in one or other of two ways, either by a sole Prince, all others being his servants permitted by his grace and favour to assist in governing the kingdom as his ministers; or else, by a Prince with his Barons who hold their rank, not by the favour of a superior Lord, but by antiquity of blood, and who have States and subjects of their own who recognize them as their rulers and entertain for them a natural affection.</a></li>
</ul></li>
 <li> <a href="#Chapter-5-How-Cities-or-Provinces-Which-Before-Their-Acquisition-Have-Lived-Under-Their-Own-Laws-Are-To-Be-Governed">3.5. Chapter 5 How Cities or Provinces Which Before Their Acquisition Have Lived Under Their Own Laws Are To Be Governed</a>
 <ul> <li> <a href="#When-a-newly-acquired-State-has-been-accustomed,-as-I-have-said,-to-live-under-its-own-laws-and-in-freedom,-there-are-three-methods-whereby-it-may-be-held.">3.5.1. When a newly acquired State has been accustomed, as I have said, to live under its own laws and in freedom, there are three methods whereby it may be held.</a></li>
 <li> <a href="#For,-in-truth,-there-is-no-sure-way-of-holding-other-than-by-destroying,">3.5.2. For, in truth, there is no sure way of holding other than by destroying,</a></li>
 <li> <a href="#For-if-it-should-rebel,-it-can-always-screen-itself-under-the-name-of-liberty-and-its-ancient-laws,-which-no-length-of-time,-nor-any-benefits-conferred-will-ever-cause-it-to-forget">3.5.3. For if it should rebel, it can always screen itself under the name of liberty and its ancient laws, which no length of time, nor any benefits conferred will ever cause it to forget</a></li>
 <li> <a href="#Pisa-rose-against-the-Florentines-after-a-hundred-years-of-servitude">3.5.4. Pisa rose against the Florentines after a hundred years of servitude</a></li>
 <li> <a href="#If,-however,-the-newly-acquired-City-or-Province-has-been-accustomed-to-live-under-a-Prince,-and-his-line-is-extinguished,-it-will-be-impossible-for-the-citizens,-used,-on-the-one-hand,-to-obey,-and-deprived,-on-the-other,-of-their-old-ruler,-to-agree-to-choose-a-leader-from-among-themselves;-and-as-they-know-not-how-to-live-as-freemen,-and-are-therefore-slow-to-take-up-arms,-a-stranger-may-readily-gain-them-over-and-attach-them-to-his-cause.">3.5.5. If, however, the newly acquired City or Province has been accustomed to live under a Prince, and his line is extinguished, it will be impossible for the citizens, used, on the one hand, to obey, and deprived, on the other, of their old ruler, to agree to choose a leader from among themselves; and as they know not how to live as freemen, and are therefore slow to take up arms, a stranger may readily gain them over and attach them to his cause.</a></li>
</ul></li>
 <li> <a href="#Chapter-6-Of-New-Princedoms-Which-a-Prince-Acquires-With-His-Own-Arms-and-by-Merit">3.6. Chapter 6 Of New Princedoms Which a Prince Acquires With His Own Arms and by Merit</a>
 <ul> <li> <a href="#men-for-the-most-part-follow-in-the-footsteps-and-imitate-the-actions-of-others,-and-yet-are-unable-to-adhere-exactly-to-those-paths-which-others-have-taken">3.6.1. men for the most part follow in the footsteps and imitate the actions of others, and yet are unable to adhere exactly to those paths which others have taken</a></li>
 <li> <a href="#Romulus-that-he-found-no-home-in-Alba">3.6.2. Romulus that he found no home in Alba</a></li>
 <li> <a href="#They-who-come-to-the-Princedom,-as-these-did,-by-virtuous-paths,-acquire-with-difficulty,-but-keep-with-ease.">3.6.3. They who come to the Princedom, as these did, by virtuous paths, acquire with difficulty, but keep with ease.</a></li>
 <li> <a href="#Hence-it-comes-that-all-armed-Prophets-have-been-victorious,-and-all-unarmed-Prophets-have-been-destroyed.">3.6.4. Hence it comes that all armed Prophets have been victorious, and all unarmed Prophets have been destroyed.</a></li>
</ul></li>
 <li> <a href="#Chapter-7-Of-New-Princedoms-Acquired-By-the-Aid-of-Others-and-By-Good-Fortune">3.7. Chapter 7 Of New Princedoms Acquired By the Aid of Others and By Good Fortune</a>
 <ul> <li> <a href="#They-who-from-a-private-station-become-Princes-by-mere-good-fortune,-do-so-with-little-trouble,-but-have-much-trouble-to-maintain-themselves.">3.7.1. They who from a private station become Princes by mere good fortune, do so with little trouble, but have much trouble to maintain themselves.</a></li>
 <li> <a href="#This-design-he-accordingly-did-not-oppose,-but-furthered-by-annulling-the-first-marriage-of-the-French-King.">3.7.2. This design he accordingly did not oppose, but furthered by annulling the first marriage of the French King.</a></li>
 <li> <a href="#Those-of-their-following-who-were-of-good-birth,-he-gained-over-by-making-them-his-own-gentlemen,-assigning-them-a-liberal-provision,-and-conferring-upon-them-commands-and-appointments-suited-to-their-rank;-so-that-in-a-few-months-their-old-partisan-attachments-died-out">3.7.3. Those of their following who were of good birth, he gained over by making them his own gentlemen, assigning them a liberal provision, and conferring upon them commands and appointments suited to their rank; so that in a few months their old partisan attachments died out</a></li>
 <li> <a href="#he-had-to-apprehend-that-a-new-Head-of-the-Church-might-not-be-his-friend,-and-might-even-seek-to-deprive-him-of-what-Alexander-had-given.-This-he-thought-to-provide-against-in-four-ways.-First,-by-exterminating-all-who-were-of-kin-to-those-Lords-whom-he-had-despoiled-of-their-possessions,-that-they-might-not-become-instruments-in-the-hands-of-a-new-Pope.-Second,-by-gaining-over-all-the-Roman-nobles,-so-as-to-be-able-with-their-help-to-put-a-bridle,-as-the-saying-is,-in-the-Pope%E2%80%99s-mouth.-Third,-by-bringing-the-college-of-Cardinals,-so-far-as-he-could,-under-his-control.-And-fourth,-by-establishing-his-authority-so-firmly-before-his-father%E2%80%99s-death,-as-to-be-able-by-himself-to-withstand-the-shock-of-a-first-onset.">3.7.4. he had to apprehend that a new Head of the Church might not be his friend, and might even seek to deprive him of what Alexander had given. This he thought to provide against in four ways. First, by exterminating all who were of kin to those Lords whom he had despoiled of their possessions, that they might not become instruments in the hands of a new Pope. Second, by gaining over all the Roman nobles, so as to be able with their help to put a bridle, as the saying is, in the Pope’s mouth. Third, by bringing the college of Cardinals, so far as he could, under his control. And fourth, by establishing his authority so firmly before his father’s death, as to be able by himself to withstand the shock of a first onset.</a></li>
</ul></li>
 <li> <a href="#Chapter-8-Of-Those-Who-By-Their-Crimes-Come-to-Be-Princes">3.8. Chapter 8 Of Those Who By Their Crimes Come to Be Princes</a>
 <ul> <li> <a href="#There-are-two-ways-for-a-private-citizen-to-become-a-Prince">3.8.1. There are two ways for a private citizen to become a Prince</a></li>
 <li> <a href="#The-banquet-at-Fermo,-where-Oliverotto-killed-Giovanni-Fogliani">3.8.2. The banquet at Fermo, where Oliverotto killed Giovanni Fogliani</a></li>
</ul></li>
 <li> <a href="#Chapter-9-Of-the-Civil-Princedom">3.9. Chapter 9 Of the Civil Princedom</a>
 <ul> <li> <a href="#people-desire-not-to-be-domineered-over-or-oppressed-by-the-nobles,-while-the-nobles-desire-to-oppress-and-domineer-over-the-people.-And-from-these-two-contrary-appetites-there-arises-in-cities-one-of-three-results,-a-Princedom,-or-Liberty,-or-Licence.">3.9.1. people desire not to be domineered over or oppressed by the nobles, while the nobles desire to oppress and domineer over the people. And from these two contrary appetites there arises in cities one of three results, a Princedom, or Liberty, or Licence.</a></li>
 <li> <a href="#He-who-is-made-Prince-by-the-favour-of-the-nobles,-has-greater-difficulty-to-maintain-himself-than-he-who-comes-to-the-Princedom-by-aid-of-the-people,-since-he-finds-many-about-him-who-think-themselves-as-good-as-he,-and-whom,-on-that-account,-he-cannot-guide-or-govern-as-he-would.">3.9.2. He who is made Prince by the favour of the nobles, has greater difficulty to maintain himself than he who comes to the Princedom by aid of the people, since he finds many about him who think themselves as good as he, and whom, on that account, he cannot guide or govern as he would.</a></li>
 <li> <a href="#Add-to-this,-that-a-Prince-can-never-secure-himself-against-a-disaffected-people,-their-number-being-too-great,-while-he-may-against-a-disaffected-nobility,-since-their-number-is-small.">3.9.3. Add to this, that a Prince can never secure himself against a disaffected people, their number being too great, while he may against a disaffected nobility, since their number is small.</a></li>
 <li> <a href="#But-he-who-against-the-will-of-the-people-is-made-a-Prince-by-the-favour-of-the-nobles,-must,-above-all-things,-seek-to-conciliate-the-people,-which-he-readily-may-by-taking-them-under-his-protection.">3.9.4. But he who against the will of the people is made a Prince by the favour of the nobles, must, above all things, seek to conciliate the people, which he readily may by taking them under his protection.</a></li>
 <li> <a href="#For-since-men-who-are-well-treated-by-one-whom-they-expected-to-treat-them-ill,-feel-the-more-beholden-to-their-benefactor,-the-people-will-at-once-become-better-disposed-to-such-a-Prince-when-he-protects-them,-than-if-he-owed-his-Princedom-to-them.">3.9.5. For since men who are well treated by one whom they expected to treat them ill, feel the more beholden to their benefactor, the people will at once become better disposed to such a Prince when he protects them, than if he owed his Princedom to them.</a></li>
 <li> <a href="#%E2%80%99he-who-builds-on-the-people-builds-on-mire,%E2%80%99-for-that-may-be-true-of-a-private-citizen-who-presumes-on-his-favour-with-the-people,-and-counts-on-being-rescued-by-them-when-overpowered-by-his-enemies-or-by-the-magistrates">3.9.6. ’he who builds on the people builds on mire,’ for that may be true of a private citizen who presumes on his favour with the people, and counts on being rescued by them when overpowered by his enemies or by the magistrates</a></li>
 <li> <a href="#in-tranquil-times-when-the-citizens-feel-the-need-of-the-State.-For-then-every-one-is-ready-to-run,-to-promise,-and,-danger-of-death-being-remote,-even-to-die-for-the-State.">3.9.7. in tranquil times when the citizens feel the need of the State. For then every one is ready to run, to promise, and, danger of death being remote, even to die for the State.</a></li>
 <li> <a href="#in-troubled-times,-when-the-State-has-need-of-its-citizens,-few-of-them-are-to-be-found">3.9.8. in troubled times, when the State has need of its citizens, few of them are to be found</a></li>
 <li> <a href="#a-wise-Prince-should-devise-means-whereby-his-subjects-may-at-all-times,-whether-favourable-or-adverse,-feel-the-need-of-the-State-and-of-him,-and-then-they-will-always-be-faithful-to-him.">3.9.9. a wise Prince should devise means whereby his subjects may at all times, whether favourable or adverse, feel the need of the State and of him, and then they will always be faithful to him.</a></li>
</ul></li>
 <li> <a href="#Chapter-10-How-the-Strength-of-All-Princedoms-Should-Be-Measured">3.10. Chapter 10 How the Strength of All Princedoms Should Be Measured</a>
 <ul> <li> <a href="#in-order-to-support-the-poorer-class-of-citizens-without-public-loss,-they-lay-in-a-common-stock-of-materials-for-these-to-work-on-for-a-year,-in-the-handicrafts-which-are-the-life-and-sinews-of-such-cities,-and-by-which-the-common-people-live.">3.10.1. in order to support the poorer class of citizens without public loss, they lay in a common stock of materials for these to work on for a year, in the handicrafts which are the life and sinews of such cities, and by which the common people live.</a></li>
 <li> <a href="#Should-it-be-objected-that-if-the-citizens-have-possessions-outside-the-town,-and-see-them-burned,-they-will-lose-patience,-and-that-self-interest,-together-with-the-hardships-of-a-protracted-siege,-will-cause-them-to-forget-their-loyalty;-I-answer-that-a-capable-and-courageous-Prince-will-always-overcome-these-difficulties,-now,-by-holding-out-hopes-to-his-subjects-that-the-evil-will-not-be-of-long-continuance;-now,-by-exciting-their-fears-of-the-enemy%E2%80%99s-cruelty;-and,-again,-by-dexterously-silencing-those-who-seem-to-himtoo-forward-in-their-complaints.">3.10.2. Should it be objected that if the citizens have possessions outside the town, and see them burned, they will lose patience, and that self-interest, together with the hardships of a protracted siege, will cause them to forget their loyalty; I answer that a capable and courageous Prince will always overcome these difficulties, now, by holding out hopes to his subjects that the evil will not be of long continuance; now, by exciting their fears of the enemy’s cruelty; and, again, by dexterously silencing those who seem to himtoo forward in their complaints.</a></li>
 <li> <a href="#Moreover,-it-is-to-be-expected-that-the-enemy-will-burn-and-lay-waste-the-country-immediately-on-their-arrival,-at-a-time-when-men%E2%80%99s-minds-are-still-heated-and-resolute-for-defence.">3.10.3. Moreover, it is to be expected that the enemy will burn and lay waste the country immediately on their arrival, at a time when men’s minds are still heated and resolute for defence.</a></li>
 <li> <a href="#And-for-this-very-reason-the-Prince-ought-the-less-to-fear,-because-after-a-few-days,-when-the-first-ardour-has-abated,-the-injury-is-already-done-and-suffered,-and-cannot-be-undone;-and-the-people-will-now,-all-the-more-readily,-make-common-cause-with-their-Prince-from-his-seeming-to-be-under-obligations-to-them,-their-houses-having-been-burned-and-their-lands-wasted-in-his-defence.">3.10.4. And for this very reason the Prince ought the less to fear, because after a few days, when the first ardour has abated, the injury is already done and suffered, and cannot be undone; and the people will now, all the more readily, make common cause with their Prince from his seeming to be under obligations to them, their houses having been burned and their lands wasted in his defence.</a></li>
 <li> <a href="#For-it-is-the-nature-of-men-to-incur-obligation-as-much-by-the-benefits-they-render-as-by-those-they-receive.">3.10.5. For it is the nature of men to incur obligation as much by the benefits they render as by those they receive.</a></li>
</ul></li>
 <li> <a href="#Chapter-11-Of-Ecclesiastical-Princedoms">3.11. Chapter 11 Of Ecclesiastical Princedoms</a></li>
 <li> <a href="#Chapter-12-How-Many-Different-Kinds-of-Soldiers-There-Are,-and-of-Mercenaries">3.12. Chapter 12 How Many Different Kinds of Soldiers There Are, and of Mercenaries</a>
 <ul> <li> <a href="#Now-the-main-foundations-of-all-States,-whether-new,-old,-or-mixed,-are-good-laws-and-good-arms.">3.12.1. Now the main foundations of all States, whether new, old, or mixed, are good laws and good arms.</a></li>
 <li> <a href="#But-since-you-cannot-have-the-former-without-the-latter,-and-where-you-have-the-latter,-are-likely-to-have-the-former">3.12.2. But since you cannot have the former without the latter, and where you have the latter, are likely to have the former</a></li>
 <li> <a href="#Kinds-of-Armies">3.12.3. Kinds of Armies</a></li>
 <li> <a href="#Mercenaries-and-auxiliaries-are-at-once-useless-and-dangerous,-and-he-who-holds-his-State-by-means-of-mercenary-troops-can-never-be-solidly-or-securely-seated.-For-such-troops-are-disunited,-ambitious,-insubordinate,-treacherous,-insolent-amongfriends,-cowardly-before-foes,-and-without-fear-of-God-or-faith-with-man.">3.12.4. Mercenaries and auxiliaries are at once useless and dangerous, and he who holds his State by means of mercenary troops can never be solidly or securely seated. For such troops are disunited, ambitious, insubordinate, treacherous, insolent amongfriends, cowardly before foes, and without fear of God or faith with man.</a></li>
 <li> <a href="#The-Swiss-are-at-once-the-best-armed-and-the-freest-people-in-the-world.">3.12.5. The Swiss are at once the best armed and the freest people in the world.</a></li>
 <li> <a href="#The-first-object-of-these-mercenaries-was-to-bring-foot-soldiers-into-disrepute">3.12.6. The first object of these mercenaries was to bring foot soldiers into disrepute</a></li>
</ul></li>
 <li> <a href="#Chapter-13-Of-Auxiliary,-Mixed,-and-National-Arms">3.13. Chapter 13 Of Auxiliary, Mixed, and National Arms</a>
 <ul> <li> <a href="#Auxiliaries-may-be-excellent-and-useful-soldiers-for-themselves,-but-are-always-hurtful-to-him-who-calls-them-in;-for-if-they-are-defeated,-he-is-undone,-if-victorious,-he-becomes-their-prisoner.">3.13.1. Auxiliaries may be excellent and useful soldiers for themselves, but are always hurtful to him who calls them in; for if they are defeated, he is undone, if victorious, he becomes their prisoner.</a></li>
 <li> <a href="#the-armour-of-others-is-too-wide,-or-too-strait-for-us;-it-falls-off-us,-or-it-weighs-us-down.">3.13.2. the armour of others is too wide, or too strait for us; it falls off us, or it weighs us down.</a></li>
 <li> <a href="#For-from-their-infantry-being-done-away-with,-their-men-at-arms-are-made-wholly-dependent-on-foreign-assistance,-and-being-accustomed-to-co-operate-with-the-Swiss,-have-grown-to-think-they-can-do-nothing-without-them.">3.13.3. For from their infantry being done away with, their men-at-arms are made wholly dependent on foreign assistance, and being accustomed to co-operate with the Swiss, have grown to think they can do nothing without them.</a></li>
</ul></li>
 <li> <a href="#Chapter-14-Of-the-Duty-of-a-Prince-In-Respect-of-Military-Affairs">3.14. Chapter 14 Of the Duty of a Prince In Respect of Military Affairs</a>
 <ul> <li> <a href="#A-Prince,-therefore,-should-have-no-care-or-thought-but-for-war,-and-for-the-regulations-and-training-it-requires,-and-should-apply-himself-exclusively-to-this-as-his-peculiar-province">3.14.1. A Prince, therefore, should have no care or thought but for war, and for the regulations and training it requires, and should apply himself exclusively to this as his peculiar province</a></li>
 <li> <a href="#Prince-who-is-ignorant-of-military-affairs,-besides-other-disadvantages,-can-neither-be-respected-by-his-soldiers,-nor-can-he-trust-them.">3.14.2. Prince who is ignorant of military affairs, besides other disadvantages, can neither be respected by his soldiers, nor can he trust them.</a></li>
 <li> <a href="#This-he-can-do-in-two-ways,-by-practice-or-by-study.">3.14.3. This he can do in two ways, by practice or by study.</a></li>
 <li> <a href="#never-resting-idle-in-times-of-peace">3.14.4. never resting idle in times of peace</a></li>
</ul></li>
 <li> <a href="#Chapter-15-Of-the-Qualities-In-Respect-of-Which-Men,-and-Most-of-all-Princes,-Are-Praised-or-Blamed">3.15. Chapter 15 Of the Qualities In Respect of Which Men, and Most of all Princes, Are Praised or Blamed</a>
 <ul> <li> <a href="#any-one-who-would-act-up-to-a-perfect-standard-of-goodness-in-everything,-must-be-ruined-among-so-many-who-are-not-good">3.15.1. any one who would act up to a perfect standard of goodness in everything, must be ruined among so many who are not good</a></li>
 <li> <a href="#It-is-essential,-therefore,-for-a-Prince-who-desires-to-maintain-his-position,-to-have-learned-how-to-be-other-than-good,-and-to-use-or-not-to-use-his-goodness-as-necessity-requires.">3.15.2. It is essential, therefore, for a Prince who desires to maintain his position, to have learned how to be other than good, and to use or not to use his goodness as necessity requires.</a></li>
 <li> <a href="#men-when-they-are-spoken-of,-and-Princes-more-than-others-from-their-being-set-so-high,-are-characterized-by-some-one-of-those-qualities-which-attach-either-praise-or-blame">3.15.3. men when they are spoken of, and Princes more than others from their being set so high, are characterized by some one of those qualities which attach either praise or blame</a></li>
 <li> <a href="#there-may-be-a-line-of-conduct-having-theappearance-of-virtue,-to-follow-which-would-be-his-ruin,-and-that-there-may-be-another-course-having-the-appearance-of-vice,-by-following-which-his-safety-and-well-being-are-secured">3.15.4. there may be a line of conduct having theappearance of virtue, to follow which would be his ruin, and that there may be another course having the appearance of vice, by following which his safety and well-being are secured</a></li>
</ul></li>
 <li> <a href="#Chapter-16-Of-Liberality-and-Miserliness">3.16. Chapter 16 Of Liberality and Miserliness</a>
 <ul> <li> <a href="#Hence,-to-have-credit-for-liberality-with-the-world-at-large,-you-must-neglect-no-circumstance-of-sumptuous-display">3.16.1. Hence, to have credit for liberality with the world at large, you must neglect no circumstance of sumptuous display</a></li>
 <li> <a href="#Because-in-time-he-will-come-to-be-regarded-as-more-and-more-liberal,-when-it-is-seen-that-through-his-parsimony-his-revenues-aresufficient">3.16.2. Because in time he will come to be regarded as more and more liberal, when it is seen that through his parsimony his revenues aresufficient</a></li>
 <li> <a href="#In-our-own-days-we-have-seen-no-Princes-accomplish-great-results-save-those-who-have-been-accounted-miserly.">3.16.3. In our own days we have seen no Princes accomplish great results save those who have been accounted miserly.</a></li>
 <li> <a href="#a-Prince-spends-either-what-belongs-to-himself-and-his-subjects,-or-what-belongs-to-others;-and-that-in-the-former-case-he-ought-to-be-sparing,-but-in-the-latter-ought-not-to-refrain-from-any-kind-of-liberality.">3.16.4. a Prince spends either what belongs to himself and his subjects, or what belongs to others; and that in the former case he ought to be sparing, but in the latter ought not to refrain from any kind of liberality.</a></li>
 <li> <a href="#miserly,-which-breeds-ignominy,-but-without-hate">3.16.5. miserly, which breeds ignominy, but without hate</a></li>
</ul></li>
 <li> <a href="#Chapter-17-Of-Cruelty-and-Clemency,-and-Whether-It-Is-Better-To-Be-Loved-or-Feared">3.17. Chapter 17 Of Cruelty and Clemency, and Whether It Is Better To Be Loved or Feared</a>
 <ul> <li> <a href="#every-Prince-should-desire-to-be-accounted-merciful-and-not-cruel">3.17.1. every Prince should desire to be accounted merciful and not cruel</a></li>
 <li> <a href="#he-who-quells-disorder-by-a-very-few-signal-examples-will-in-the-end-be-more-merciful-than-he-who-from-too-great-leniency-permits-things-to-take-their-course-and-so-to-result-in-rapine-and-bloodshed">3.17.2. he who quells disorder by a very few signal examples will in the end be more merciful than he who from too great leniency permits things to take their course and so to result in rapine and bloodshed</a></li>
 <li> <a href="#And-here-comes-in-the-question-whether-it-is-better-to-be-loved-rather-than-feared,-or-feared-rather-than-loved.">3.17.3. And here comes in the question whether it is better to be loved rather than feared, or feared rather than loved.</a></li>
 <li> <a href="#For-of-men-it-may-generally-be-affirmed,-that-they-are-thankless,-fickle,-false-studious-to-avoid-danger,-greedy-of-gain,-devoted-to-you-while-you-are-able-to-confer-benefits-upon-them,-and-ready,-as-I-said-before,-while-danger-is-distant,-to-shed-their-blood,-and-sacrifice-their-property,-their-lives,-and-their-children-for-you;-but-in-the-hour-of-need-they-turn-against-you.">3.17.4. For of men it may generally be affirmed, that they are thankless, fickle, false studious to avoid danger, greedy of gain, devoted to you while you are able to confer benefits upon them, and ready, as I said before, while danger is distant, to shed their blood, and sacrifice their property, their lives, and their children for you; but in the hour of need they turn against you.</a></li>
 <li> <a href="#love-is-held-by-the-tie-of-obligation,-which,-because-men-are-a-sorry-breed,-is-broken-on-everywhisper-of-private-interest;-but-fear-is-bound-by-the-apprehension-of-punishment-which-never-relaxes-its-grasp.">3.17.5. love is held by the tie of obligation, which, because men are a sorry breed, is broken on everywhisper of private interest; but fear is bound by the apprehension of punishment which never relaxes its grasp.</a></li>
 <li> <a href="#men-will-sooner-forget-the-death-of-their-father-than-the-loss-of-their-patrimony.">3.17.6. men will sooner forget the death of their father than the loss of their patrimony.</a></li>
</ul></li>
 <li> <a href="#Chapter-18-How-Princes-Should-Keep-Faith">3.18. Chapter 18 How Princes Should Keep Faith</a>
 <ul> <li> <a href="#Be-it-known,-then,-that-there-are-two-ways-of-contending,-one-in-accordance-with-the-laws,-the-other-by-force;-the-first-of-which-is-proper-to-men,-the-second-to-beasts.-But-since-the-first-method-is-often-ineffectual,-it-becomes-necessary-to-resort-to-the-second.">3.18.1. Be it known, then, that there are two ways of contending, one in accordance with the laws, the other by force; the first of which is proper to men, the second to beasts. But since the first method is often ineffectual, it becomes necessary to resort to the second.</a></li>
 <li> <a href="#To-rely-wholly-on-the-lion-is-unwise;-and-for-this-reason-a-prudent-Prince-neither-can-nor-ought-to-keep-his-word-when-to-keep-it-is-hurtful-to-him-and-the-causes-which-led-him-to-pledge-it-are-removed.-If-all-men-were-good,-this-would-not-be-good-advice,-but-since-they-are-dishonest-and-do-not-keep-faith-with-you,-you-in-return,-need-not-keep-faith-with-them;-and-no-prince-was-ever-at-a-loss-for-plausible-reasons-to-cloak-a-breach-of-faith.">3.18.2. To rely wholly on the lion is unwise; and for this reason a prudent Prince neither can nor ought to keep his word when to keep it is hurtful to him and the causes which led him to pledge it are removed. If all men were good, this would not be good advice, but since they are dishonest and do not keep faith with you, you in return, need not keep faith with them; and no prince was ever at a loss for plausible reasons to cloak a breach of faith.</a></li>
 <li> <a href="#But-men-are-so-simple,-and-governed-so-absolutely-by-their-present-needs,-that-he-who-wishes-to-deceive-will-never-fail-in-finding-willing-dupes.">3.18.3. But men are so simple, and governed so absolutely by their present needs, that he who wishes to deceive will never fail in finding willing dupes.</a></li>
 <li> <a href="#A-Prince-should-therefore-be-very-careful-that-nothing-ever-escapes-his-lips-which-is-not-replete-with-the-five-qualities-above-named,-so-that-to-see-and-hear-him,-one-would-think-him-the-embodiment-of-mercy,-good-faith,-integrity,-humanity,-and-religion.">3.18.4. A Prince should therefore be very careful that nothing ever escapes his lips which is not replete with the five qualities above named, so that to see and hear him, one would think him the embodiment of mercy, good faith, integrity, humanity, and religion.</a></li>
 <li> <a href="#And-the-most-important-virtue-to-seem-to-possess-is-religion.">3.18.5. And the most important virtue to seem to possess is religion.</a></li>
 <li> <a href="#For-the-vulgar-are-always-taken-by-appearances-and-by-results,-and-the-world-is-made-up-of-the-vulgar.">3.18.6. For the vulgar are always taken by appearances and by results, and the world is made up of the vulgar.</a></li>
</ul></li>
 <li> <a href="#Chapter-19-That-a-Prince-Should-Seek-to-Escape-Contempt-and-Hatred">3.19. Chapter 19 That a Prince Should Seek to Escape Contempt and Hatred</a>
 <ul> <li> <a href="#And-well-ordered-States-and-wise-Princes-have-provided-with-extreme-care-that-the-nobility-shall-not-be-driven-to-desperation,-and-that-the-commons-shall-be-kept-satisfied-and-contented;-for-this-is-one-of-the-most-important-matters-that-a-Prince-has-to-look-to.">3.19.1. And well ordered States and wise Princes have provided with extreme care that the nobility shall not be driven to desperation, and that the commons shall be kept satisfied and contented; for this is one of the most important matters that a Prince has to look to.</a></li>
 <li> <a href="#Among-the-well-ordered-and-governed-Kingdoms-of-our-day-is-that-of-France,-wherein-we-find-an-infinite-number-of-wise-institutions,-upon-which-depend-the-freedom-and-the-security-of-the-King,-and-of-which-the-most-important-are-the-Parliament-and-its-authority.">3.19.2. Among the well ordered and governed Kingdoms of our day is that of France, wherein we find an infinite number of wise institutions, upon which depend the freedom and the security of the King, and of which the most important are the Parliament and its authority.</a></li>
 <li> <a href="#Princes-should-devolve-on-others-those-matters-that-entail-responsibility,-and-reserve-to-themselves-those-that-relate-to-grace-and-favour.">3.19.3. Princes should devolve on others those matters that entail responsibility, and reserve to themselves those that relate to grace and favour.</a></li>
 <li> <a href="#by-an-utter-disregard-of-his-dignity,-in-frequently-descending-into-the-arena-to-fight-with-gladiators,-and-by-other-base-acts-wholly-unworthy-of-the-Imperial-station,-he-became-contemptible-in-the-eyes-of-the-soldiery">3.19.4. by an utter disregard of his dignity, in frequently descending into the arena to fight with gladiators, and by other base acts wholly unworthy of the Imperial station, he became contemptible in the eyes of the soldiery</a></li>
 <li> <a href="#And-if-it-was-then-necessary-to-satisfy-the-soldiers-rather-than-the-people,-because-the-soldiers-were-more-powerful-than-the-people,-now-it-is-more-necessary-for-all-Princes,-except-the-Turk-and-the-Soldan,-to-satisfy-the-people-rather-than-the-soldiery,-since-the-former-are-more-powerful-than-the-latter.">3.19.5. And if it was then necessary to satisfy the soldiers rather than the people, because the soldiers were more powerful than the people, now it is more necessary for all Princes, except the Turk and the Soldan, to satisfy the people rather than the soldiery, since the former are more powerful than the latter.</a></li>
 <li> <a href="#For-although-the-Prince-be-new,-the-institutions-of-the-State-are-old,-and-are-so-contrived-that-the-elected-Prince-is-accepted-as-though-he-were-an-hereditary-Sovereign.">3.19.6. For although the Prince be new, the institutions of the State are old, and are so contrived that the elected Prince is accepted as though he were an hereditary Sovereign.</a></li>
</ul></li>
 <li> <a href="#Chapter-20-Whether-Fortresses,-and-Certain-Other-Expedients-to-Which-Princes-Often-Have-Recourse,-are-Profitable-or-Hurtful">3.20. Chapter 20 Whether Fortresses, and Certain Other Expedients to Which Princes Often Have Recourse, are Profitable or Hurtful</a>
 <ul> <li> <a href="#To-govern-more-securely-some-Princes-have-disarmed-their-subjects">3.20.1. To govern more securely some Princes have disarmed their subjects</a></li>
 <li> <a href="#some-have-built-fortresses,-others-have-dismantled-and-destroyed-them;">3.20.2. some have built fortresses, others have dismantled and destroyed them;</a></li>
 <li> <a href="#It-has-never-chanced-that-any-new-Prince-has-disarmed-his-subjects.-On-the-contrary,-when-he-has-found-them-unarmed-he-has-always-armed-them.">3.20.3. It has never chanced that any new Prince has disarmed his subjects. On the contrary, when he has found them unarmed he has always armed them.</a></li>
 <li> <a href="#But-when-a-Prince-acquires-a-new-State,-which-thus-becomes-joined-on-like-a-limb-to-his-old-possessions,-he-must-disarm-its-inhabitants">3.20.4. But when a Prince acquires a new State, which thus becomes joined on like a limb to his old possessions, he must disarm its inhabitants</a></li>
 <li> <a href="#used-to-promote-dissensions-in-various-subject-towns-with-a-view-to-retain-them-with-less-effort.">3.20.5. used to promote dissensions in various subject towns with a view to retain them with less effort.</a></li>
 <li> <a href="#Fortune,-on-that-account,-when-she-desires-to-aggrandize-a-new-Prince,-who-has-more-need-than-an-hereditary-Prince-to-win-reputation,-causes-enemies-to-spring-up,-and-urges-them-on-to-attack-him,-to-the-end-that-he-may-have-opportunities-toovercome-them,-and-make-his-ascent-by-the-very-ladder-which-they-have-planted.-For-which-reason,-many-are-of-the-opinion-that-a-wise-Prince,-when-he-has-the-occasion,-ought-dexterously-to-promote-hostility-to-himself-in-certain-quarters,-in-order-that-his-greatness-may-be-enhanced-by-crushing-it.">3.20.6. Fortune, on that account, when she desires to aggrandize a new Prince, who has more need than an hereditary Prince to win reputation, causes enemies to spring up, and urges them on to attack him, to the end that he may have opportunities toovercome them, and make his ascent by the very ladder which they have planted. For which reason, many are of the opinion that a wise Prince, when he has the occasion, ought dexterously to promote hostility to himself in certain quarters, in order that his greatness may be enhanced by crushing it.</a></li>
 <li> <a href="#those-men-who-at-the-beginning-of-a-reign-have-been-hostile,-if-of-a-sort-requiring-support-to-maintain-them,-may-always-be-won-over-by-the-Prince-with-much-ease,-and-are-the-more-bound-to-serve-him-faithfully-because-they-know-that-they-have-to-efface-by-their-conduct-the-unfavourable-impression-he-had-formed-of-them">3.20.7. those men who at the beginning of a reign have been hostile, if of a sort requiring support to maintain them, may always be won over by the Prince with much ease, and are the more bound to serve him faithfully because they know that they have to efface by their conduct the unfavourable impression he had formed of them</a></li>
 <li> <a href="#the-Prince-who-is-more-afraid-of-his-subjects-than-of-strangers-ought-to-build-fortresses,-while-he-who-is-more-afraid-of-strangers-than-of-his-subjects,-should-leave-them-alone.">3.20.8. the Prince who is more afraid of his subjects than of strangers ought to build fortresses, while he who is more afraid of strangers than of his subjects, should leave them alone.</a></li>
</ul></li>
 <li> <a href="#Chapter-21-How-a-Prince-Should-Bear-Himself-So-As-to-Acquire-Reputation">3.21. Chapter 21 How a Prince Should Bear Himself So As to Acquire Reputation</a>
 <ul> <li> <a href="#Nothing-makes-a-Prince-so-well-thought-of-as-to-undertake-great-enterprises-and-give-striking-proofs-of-his-capacity.">3.21.1. Nothing makes a Prince so well thought of as to undertake great enterprises and give striking proofs of his capacity.</a></li>
 <li> <a href="#he-kept-the-minds-of-his-subjects-in-suspense-and-admiration,-and-occupied-with-the-results-of-his-actions,-which-arose-one-out-of-another-in-such-close-succession-as-left-neither-time-nor-opportunity-to-oppose-them.">3.21.2. he kept the minds of his subjects in suspense and admiration, and occupied with the results of his actions, which arose one out of another in such close succession as left neither time nor opportunity to oppose them.</a></li>
 <li> <a href="#A-Prince-is-likewise-esteemed-who-is-a-stanch-friend-and-a-thorough-foe,-that-is-to-say,-who-without-reserve-openly-declares-for-one-against-another,-this-being-always-a-more-advantageous-course-than-to-stand-neutral.">3.21.3. A Prince is likewise esteemed who is a stanch friend and a thorough foe, that is to say, who without reserve openly declares for one against another, this being always a more advantageous course than to stand neutral.</a></li>
 <li> <a href="#Irresolute-Princes,-to-escape-immediate-danger,-commonly-follow-the-neutral-path,-in-most-instances-to-their-destruction.">3.21.4. Irresolute Princes, to escape immediate danger, commonly follow the neutral path, in most instances to their destruction.</a></li>
 <li> <a href="#And-here-let-it-be-noted-that-a-Prince-should-be-careful-never-to-join-with-one-stronger-than-himself-in-attacking-others,-unless,-as-already-said,-he-be-driven-to-it-by-necessity.">3.21.5. And here let it be noted that a Prince should be careful never to join with one stronger than himself in attacking others, unless, as already said, he be driven to it by necessity.</a></li>
</ul></li>
 <li> <a href="#Chapter-22-Of-the-Secretaries-of-Princes">3.22. Chapter 22 Of the Secretaries of Princes</a>
 <ul> <li> <a href="#And-since-there-are-three-scales-of-intelligence,-one-which-understands-by-itself,-a-second-which-understands-what-is-shown-it-by-others,-and-a-third-which-understands-neither-by-itself-nor-on-the-showing-of-others">3.22.1. And since there are three scales of intelligence, one which understands by itself, a second which understands what is shown it by others, and a third which understands neither by itself nor on the showing of others</a></li>
 <li> <a href="#When-you-see-a-Minister-thinking-more-of-himself-than-of-you,-and-in-all-his-actions-seeking-his-own-ends,-that-man-can-never-be-a-good-Minister-or-one-that-you-can-trust.">3.22.2. When you see a Minister thinking more of himself than of you, and in all his actions seeking his own ends, that man can never be a good Minister or one that you can trust.</a></li>
</ul></li>
 <li> <a href="#Chapter-23-That-Flatterers-Should-Be-Shunned">3.23. Chapter 23 That Flatterers Should Be Shunned</a>
 <ul> <li> <a href="#there-is-no-way-to-guard-against-flattery-but-by-letting-it-be-seen-that-you-take-no-offense-in-hearing-the-truth">3.23.1. there is no way to guard against flattery but by letting it be seen that you take no offense in hearing the truth</a></li>
 <li> <a href="#but-when-every-one-is-free-to-tell-you-the-truth-respect-falls-short">3.23.2. but when every one is free to tell you the truth respect falls short</a></li>
 <li> <a href="#he-never-discloses-his-intentions-to-any,-nor-asks-their-opinion;-and-it-is-only-when-his-plans-are-to-be-carried-out-that-they-begin-to-be-discovered-and-known">3.23.3. he never discloses his intentions to any, nor asks their opinion; and it is only when his plans are to be carried out that they begin to be discovered and known</a></li>
 <li> <a href="#A-Prince,-therefore,-ought-always-to-take-counsel,-but-at-such-times-and-reasons-only-as-he-himself-pleases,-and-not-when-it-pleases-others">3.23.4. A Prince, therefore, ought always to take counsel, but at such times and reasons only as he himself pleases, and not when it pleases others</a></li>
 <li> <a href="#discourage-every-one-from-obtruding-advice-on-matters-on-which-it-is-not-sought">3.23.5. discourage every one from obtruding advice on matters on which it is not sought</a></li>
</ul></li>
 <li> <a href="#Chapter-24-Why-the-Princes-of-Italy-Have-Lost-Their-States">3.24. Chapter 24 Why the Princes of Italy Have Lost Their States</a>
 <ul> <li> <a href="#For-men-are-more-nearly-touched-by-things-present-than-by-things-past,-and-when-they-find-themselves-well-off-as-they-are,-enjoy-their-felicity-and-seek-no-further;-nay,-are-ready-to-do-their-utmost-in-defence-of-the-new-Prince,-provided-he-be-not-wanting-to-himself-in-other-respects.">3.24.1. For men are more nearly touched by things present than by things past, and when they find themselves well off as they are, enjoy their felicity and seek no further; nay, are ready to do their utmost in defence of the new Prince, provided he be not wanting to himself in other respects.</a></li>
</ul></li>
 <li> <a href="#Chapter-25-What-Fortune-Can-Effect-in-Human-Affairs,-and-How-She-May-Be-Withstood">3.25. Chapter 25 What Fortune Can Effect in Human Affairs, and How She May Be Withstood</a>
 <ul> <li> <a href="#Fortune-is-a-woman-who-to-be-kept-under-must-be-beaten-and-roughly-handled;-and-we-see-that-she-suffers-herself-to-be-more-readily-mastered-by-those-who-so-treat-her-than-by-those-who-are-more-timid-in-their-approaches.">3.25.1. Fortune is a woman who to be kept under must be beaten and roughly handled; and we see that she suffers herself to be more readily mastered by those who so treat her than by those who are more timid in their approaches.</a></li>
 <li> <a href="#And-always,-like-a-woman,-she-favours-the-young,-because-they-are-less-scrupulous-and-fiercer,-and-command-her-with-greater-audacity.">3.25.2. And always, like a woman, she favours the young, because they are less scrupulous and fiercer, and command her with greater audacity.</a></li>
</ul></li>
 <li> <a href="#Chapter-26-An-Exhortation-to-Liberate-Italy-from-the-Barbarians">3.26. Chapter 26 An Exhortation to Liberate Italy from the Barbarians</a>
 <ul> <li> <a href="#our-country,-left-almost-without-life,-still-waits-to-know-who-it-is-that-is-to-heal-her-bruises,-to-put-an-end-to-the-devastation-and-plunder-of-Lombardy,-to-the-exactions-and-imposts-of-Naples-and-Tuscany,-and-to-stanch-those-wounds-of-hers-which-long-neglect-has-changed-into-running-sores.">3.26.1. our country, left almost without life, still waits to know who it is that is to heal her bruises, to put an end to the devastation and plunder of Lombardy, to the exactions and imposts of Naples and Tuscany, and to stanch those wounds of hers which long neglect has changed into running sores.</a></li>
 <li> <a href="#For-their-undertakings-were-not-more-just-than-this,-nor-more-easy,-nor-was-God-more-their-friend-than-yours.">3.26.2. For their undertakings were not more just than this, nor more easy, nor was God more their friend than yours.</a></li>
 <li> <a href="#What-remains-to-be-done-must-be-done-by-you;-since-in-order-not-to-deprive-us-of-our-free-will-and-such-share-of-glory-as-belongs-to-us,-God-will-not-do-everything-himself.">3.26.3. What remains to be done must be done by you; since in order not to deprive us of our free will and such share of glory as belongs to us, God will not do everything himself.</a></li>
 <li> <a href="#For-those-who-are-skilful-in-arms-will-not-obey,-and-every-one-thinkshimself-skillful,-since-hitherto-we-have-had-none-among-us-so-raised-by-merit-or-by-fortune-above-his-fellows-that-they-should-yield-him-the-palm.">3.26.4. For those who are skilful in arms will not obey, and every one thinkshimself skillful, since hitherto we have had none among us so raised by merit or by fortune above his fellows that they should yield him the palm.</a></li>
 <li> <a href="#before-all-things-necessary,-as-the-true-foundation-of-every-such-attempt,-to-be-provided-with-national-troops,-since-you-can-have-no-braver,-truer,-or-more-faithful-soldiers">3.26.5. before all things necessary, as the true foundation of every such attempt, to be provided with national troops, since you can have no braver, truer, or more faithful soldiers</a></li>
 <li> <a href="#This-barbarian-tyranny-stinks-in-all-nostrils.">3.26.6. This barbarian tyranny stinks in all nostrils.</a></li>
</ul></li>
</ul></li>
</ul></div>
</nav> <p>
This documents is a notes file for reading Niccolo Machiavelli’s “Prince”.
</p>

 <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">1.</span>  <a href="#Words">Words</a></h2>
 <div class="outline-text-2" id="text-Words">
 <table> <colgroup> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">Word</th>
 <th scope="col" class="org-left">Translation</th>
</tr></thead> <tbody> <tr> <td class="org-left">prudence</td>
 <td class="org-left">wisdom in the way of caution an provision</td>
</tr> <tr> <td class="org-left">weir( and mole)</td>
 <td class="org-left">запруда</td>
</tr> <tr> <td class="org-left">(weir and) mole</td>
 <td class="org-left">кротовый дренаж</td>
</tr> <tr> <td class="org-left">vicissitudes</td>
 <td class="org-left">regular change from one to another</td>
</tr> <tr> <td class="org-left">propitious</td>
 <td class="org-left">благосклонный</td>
</tr> <tr> <td class="org-left">impetuously</td>
 <td class="org-left">порывистый и импульсивный</td>
</tr> <tr> <td class="org-left">hardihood</td>
 <td class="org-left">unyielding boldness and daring</td>
</tr> <tr> <td class="org-left">pretexts</td>
 <td class="org-left">excuse, false reason</td>
</tr> <tr> <td class="org-left">audacity</td>
 <td class="org-left">boldness and or fearlessness</td>
</tr> <tr> <td class="org-left">scrupulous</td>
 <td class="org-left">exact and careful</td>
</tr> <tr> <td class="org-left">confer honour on</td>
 <td class="org-left">grant an honour tto</td>
</tr> <tr> <td class="org-left">heretofore</td>
 <td class="org-left">before now</td>
</tr> <tr> <td class="org-left">discerned</td>
 <td class="org-left">suspected to be discovered</td>
</tr> <tr> <td class="org-left">whence</td>
 <td class="org-left">from which place or source</td>
</tr> <tr> <td class="org-left">exactions</td>
 <td class="org-left">the act of demanding with authority</td>
</tr> <tr> <td class="org-left">imposts</td>
 <td class="org-left">tax, or exact duty</td>
</tr> <tr> <td class="org-left">pre-eminent</td>
 <td class="org-left">exceeding others in quality or rank</td>
</tr> <tr> <td class="org-left">hitherto</td>
 <td class="org-left">so far?, until now</td>
</tr> <tr> <td class="org-left">put X to rout</td>
 <td class="org-left">make them retreat chaotically</td>
</tr> <tr> <td class="org-left">inundation</td>
 <td class="org-left">overflow, deluge</td>
</tr> <tr> <td class="org-left">many authors are wont to set off</td>
 <td class="org-left">get accustomed, make X accustomed</td>
</tr> <tr> <td class="org-left">presumption</td>
 <td class="org-left">presupposition, belief</td>
</tr> <tr> <td class="org-left">wrest</td>
 <td class="org-left">выкручивание</td>
</tr> <tr> <td class="org-left">rooted out</td>
 <td class="org-left">искоренять</td>
</tr> <tr> <td class="org-left">thereto</td>
 <td class="org-left">to him, to it, to that</td>
</tr> <tr> <td class="org-left">distemper</td>
 <td class="org-left">вызывать хаос</td>
</tr> <tr> <td class="org-left">inchoate</td>
 <td class="org-left">just started, immature and thus chaotic</td>
</tr> <tr> <td class="org-left">sagacious</td>
 <td class="org-left">farsighted, with sound judgement</td>
</tr> <tr> <td class="org-left">rash game</td>
 <td class="org-left">risky, hasty</td>
</tr> <tr> <td class="org-left">wrought by</td>
 <td class="org-left">p.p. of work, caused by</td>
</tr> <tr> <td class="org-left">thither</td>
 <td class="org-left">to that point, to that place</td>
</tr> <tr> <td class="org-left">wherewith</td>
 <td class="org-left">with which</td>
</tr> <tr> <td class="org-left">trodden by</td>
 <td class="org-left">crushed by being walked on</td>
</tr> <tr> <td class="org-left">enervated</td>
 <td class="org-left">weakened and debilitated</td>
</tr> <tr> <td class="org-left">incredulity</td>
 <td class="org-left">disbelief</td>
</tr> <tr> <td class="org-left">entreaty</td>
 <td class="org-left">respectively ask, entertain</td>
</tr> <tr> <td class="org-left">borne in mind</td>
 <td class="org-left">p.p. of bear</td>
</tr> <tr> <td class="org-left">wherefore</td>
 <td class="org-left">because of what</td>
</tr> <tr> <td class="org-left">availed himself of smth</td>
 <td class="org-left">turn smth to the advantage of himself</td>
</tr> <tr> <td class="org-left">quelling</td>
 <td class="org-left">subdue or suppress</td>
</tr> <tr> <td class="org-left">waywardness</td>
 <td class="org-left">Obstinate, contrary and unpredictable</td>
</tr> <tr> <td class="org-left">desist (from a plan)</td>
 <td class="org-left">cease to proceed</td>
</tr> <tr> <td class="org-left">commotions</td>
 <td class="org-left">turbulent motion</td>
</tr> <tr> <td class="org-left">dissemble his designs</td>
 <td class="org-left">disguise or conceal</td>
</tr> <tr> <td class="org-left">exigencies</td>
 <td class="org-left">demand or requirement</td>
</tr> <tr> <td class="org-left">affable</td>
 <td class="org-left">friendly, courteous</td>
</tr> <tr> <td class="org-left">magnanimous</td>
 <td class="org-left">noble and generous</td>
</tr> <tr> <td class="org-left">dregs of the people</td>
 <td class="org-left">worst and lowest</td>
</tr> <tr> <td class="org-left">conjoin</td>
 <td class="org-left">v of conjugation, marry, unite</td>
</tr> <tr> <td class="org-left">imparting his design</td>
 <td class="org-left">give, disclose, share</td>
</tr> <tr> <td class="org-left">extricated</td>
 <td class="org-left">free from bounds</td>
</tr> <tr> <td class="org-left">connivance</td>
 <td class="org-left">conspiracy</td>
</tr> <tr> <td class="org-left">at a stroke</td>
 <td class="org-left">with a single effort, at once</td>
</tr> <tr> <td class="org-left">ill savour</td>
 <td class="org-left">bad taste</td>
</tr> <tr> <td class="org-left">relished</td>
 <td class="org-left">take pleasure in</td>
</tr> <tr> <td class="org-left">leniency</td>
 <td class="org-left">mercy or forgiveness</td>
</tr> <tr> <td class="org-left">pusillanimity</td>
 <td class="org-left">vice of being timid and cowardly</td>
</tr> <tr> <td class="org-left">old saw</td>
 <td class="org-left">old saying</td>
</tr> <tr> <td class="org-left">mire</td>
 <td class="org-left">swamp?</td>
</tr> <tr> <td class="org-left">assailant</td>
 <td class="org-left">attacker</td>
</tr> <tr> <td class="org-left">circumspection</td>
 <td class="org-left">caution, attention to all facts of a case</td>
</tr> <tr> <td class="org-left">rampart</td>
 <td class="org-left">оборонительный вал</td>
</tr> <tr> <td class="org-left">public magazines</td>
 <td class="org-left">storages (not journals!)</td>
</tr> <tr> <td class="org-left">victual</td>
 <td class="org-left">food for humans</td>
</tr> <tr> <td class="org-left">posted in leaguer</td>
 <td class="org-left">besiege</td>
</tr> <tr> <td class="org-left">forbear</td>
 <td class="org-left">keep away from, refrain</td>
</tr> <tr> <td class="org-left">rash and presumptuous</td>
 <td class="org-left">excessively self-confident, arrogant</td>
</tr> <tr> <td class="org-left">lintel</td>
 <td class="org-left">притолока</td>
</tr> <tr> <td class="org-left">well-nigh</td>
 <td class="org-left">almost, nearly</td>
</tr> <tr> <td class="org-left">valiant</td>
 <td class="org-left">possessing, showing courage</td>
</tr> <tr> <td class="org-left">eschew</td>
 <td class="org-left">avoid an idea</td>
</tr> <tr> <td class="org-left">fickle</td>
 <td class="org-left">quick to change opinion, insincere</td>
</tr> <tr> <td class="org-left">reproach</td>
 <td class="org-left">disgrace or shame</td>
</tr> <tr> <td class="org-left">wide asunder</td>
 <td class="org-left">torn apart, in halves</td>
</tr> <tr> <td class="org-left">betake himself</td>
 <td class="org-left">take yourself to do something</td>
</tr> <tr> <td class="org-left">haughty</td>
 <td class="org-left">arrogant, presumptuous</td>
</tr> <tr> <td class="org-left">crafty</td>
 <td class="org-left">deceiving</td>
</tr> <tr> <td class="org-left">facile (not firm)</td>
 <td class="org-left">lazy, simplistic, easy to convince</td>
</tr> <tr> <td class="org-left">grave</td>
 <td class="org-left">serious</td>
</tr> <tr> <td class="org-left">reckoned</td>
 <td class="org-left">considered</td>
</tr> <tr> <td class="org-left">incur the reproach</td>
 <td class="org-left">make oneself suffer disgrace</td>
</tr> <tr> <td class="org-left">sumptuous</td>
 <td class="org-left">magnificent, lavish, luxurious</td>
</tr> <tr> <td class="org-left">parsimony</td>
 <td class="org-left">thriftiness, stinginess</td>
</tr> <tr> <td class="org-left">rapacious</td>
 <td class="org-left">voracious, avaricious</td>
</tr> <tr> <td class="org-left">lavish</td>
 <td class="org-left">luxurious, superabundant, unrestrained</td>
</tr> <tr> <td class="org-left">ignominy</td>
 <td class="org-left">great dishonour</td>
</tr> <tr> <td class="org-left">rapine</td>
 <td class="org-left">plunder, pillage</td>
</tr> <tr> <td class="org-left">patrimony</td>
 <td class="org-left">наследство</td>
</tr> <tr> <td class="org-left">transcendent</td>
 <td class="org-left">surpass usual limits</td>
</tr> <tr> <td class="org-left">guard X from the toils</td>
 <td class="org-left">toil here means “trouble”, not “labour”</td>
</tr> <tr> <td class="org-left">discern</td>
 <td class="org-left">perceive, detect, distinguish</td>
</tr> <tr> <td class="org-left">dupe</td>
 <td class="org-left">deceived person</td>
</tr> <tr> <td class="org-left">asseverate</td>
 <td class="org-left">assert earnestly, confidently</td>
</tr> <tr> <td class="org-left">licentious</td>
 <td class="org-left">disregarding accepted rules (esp. sexual)</td>
</tr> <tr> <td class="org-left">ascribe</td>
 <td class="org-left">attribute smth to smb</td>
</tr> <tr> <td class="org-left">odium</td>
 <td class="org-left">hatred, dislike</td>
</tr> <tr> <td class="org-left">scorn</td>
 <td class="org-left">display disdain for something</td>
</tr> <tr> <td class="org-left">pronounce</td>
 <td class="org-left">declare formally</td>
</tr> <tr> <td class="org-left">imputations</td>
 <td class="org-left">charging, accusing someone</td>
</tr> <tr> <td class="org-left">begets hatred</td>
 <td class="org-left">to father, to produce, to cause</td>
</tr> <tr> <td class="org-left">dissensions</td>
 <td class="org-left">dissent, esp. spoken</td>
</tr> <tr> <td class="org-left">fomented</td>
 <td class="org-left">incite or encourage</td>
</tr> <tr> <td class="org-left">succour</td>
 <td class="org-left">aid or assistance, refuge, shelter</td>
</tr> <tr> <td class="org-left">had recourse to</td>
 <td class="org-left">use smth as a source of help</td>
</tr> <tr> <td class="org-left">stanch friend</td>
 <td class="org-left">persistent and loyal</td>
</tr> <tr> <td class="org-left">sagacity</td>
 <td class="org-left">the property of being a sage</td>
</tr> <tr> <td class="org-left">hearken to</td>
 <td class="org-left">listen and hear with attention</td>
</tr> <tr> <td class="org-left">vacillating</td>
 <td class="org-left">wavering, irresolute</td>
</tr> <tr> <td class="org-left">whencesoever</td>
 <td class="org-left">from whatever place</td>
</tr> <tr> <td class="org-left">height of folly</td>
 <td class="org-left">thoughtless action</td>
</tr></tbody></table></div>
</section> <section id="outline-container-Unknown-things" class="outline-2"> <h2 id="Unknown-things"> <span class="section-number-2">2.</span>  <a href="#Unknown-things">Unknown things</a></h2>
 <div class="outline-text-2" id="text-Unknown-things">
</div>

 <div id="outline-container-Ninian-Hill-Thomson" class="outline-3">
 <h3 id="Ninian-Hill-Thomson"> <span class="section-number-3">2.1.</span>  <a href="#Ninian-Hill-Thomson">Ninian Hill Thomson</a></h3>
 <div class="outline-text-3" id="text-Ninian-Hill-Thomson">
 <p>
Apparently, was an Oxford University alumna, and scholar. She also seems
to have studied British India law.
</p>

 <p>
Discourses On Livy by Niccolò Machiavelli (1883)
The Prince by Niccolò Machiavelli (1910)
</p>
</div>
</div>

 <div id="outline-container-Lorenzo-Di-Piero-De%E2%80%99-Medici" class="outline-3">
 <h3 id="Lorenzo-Di-Piero-De%E2%80%99-Medici"> <span class="section-number-3">2.2.</span>  <a href="#Lorenzo-Di-Piero-De%E2%80%99-Medici">Lorenzo Di Piero De’ Medici</a></h3>
 <div class="outline-text-3" id="text-Lorenzo-Di-Piero-De%E2%80%99-Medici">
 <p>
 <a href="https://en.wikipedia.org/wiki/Lorenzo_de%27_Medici,_Duke_of_Urbino">https://en.wikipedia.org/wiki/Lorenzo_de%27_Medici,_Duke_of_Urbino</a>
Lorenzo di Piero de’ Medici (Italian pronunciation: [loˈrɛntso di ˈpjɛːro
de ˈmɛːditʃi]; 12 September 1492 – 4 May 1519) was the ruler of Florence
from 1516 until his death in 1519. He was also Duke of Urbino during the
same period. His daughter Catherine de’ Medici became Queen Consort of
France, while his illegitimate son, Alessandro de’ Medici, became the
first Duke of Florence.
</p>
</div>
</div>

 <div id="outline-container-Francesco-Sforza" class="outline-3">
 <h3 id="Francesco-Sforza"> <span class="section-number-3">2.3.</span>  <a href="#Francesco-Sforza">Francesco Sforza</a></h3>
 <div class="outline-text-3" id="text-Francesco-Sforza">
 <p>
 <a href="https://en.wikipedia.org/wiki/Francesco_I_Sforza#Issue">https://en.wikipedia.org/wiki/Francesco_I_Sforza#Issue</a>
Francesco I Sforza KG (Italian pronunciation: [franˈtʃesko ˈpriːmo
ˈsfɔrtsa]; 23 July 1401 – 8 March 1466) was an Italian condottiero who
founded the Sforza dynasty in the duchy of Milan, ruling as its (fourth)
duke from 1450 until his death. In the 1420s, he participated in the War
of L’Aquila and in the 1430s fought for the Papal States and Milan against
Venice. Once war between Milan and Venice ended in 1441 under mediation by
Sforza, he successfully invaded southern Italy alongside René of Anjou,
pretender to the throne of Naples, and after that returned to Milan. He
was instrumental in the Treaty of Lodi (1454) which ensured peace in the
Italian realms for a time by ensuring a strategic balance of power.
 <a href="#Lodovico-Sforza">2.10</a> is his son. 
</p>
</div>
</div>

 <div id="outline-container-Princedom-of-Milan-of-Francesco-Sforza" class="outline-3">
 <h3 id="Princedom-of-Milan-of-Francesco-Sforza"> <span class="section-number-3">2.4.</span>  <a href="#Princedom-of-Milan-of-Francesco-Sforza">Princedom of Milan of Francesco Sforza</a></h3>
 <div class="outline-text-3" id="text-Princedom-of-Milan-of-Francesco-Sforza">
 <p>
 <a href="https://en.wikipedia.org/wiki/List_of_rulers_of_Milan#House_of_Sforza_(1st_rule)">https://en.wikipedia.org/wiki/List_of_rulers_of_Milan#House_of_Sforza_(1st_rule)</a>
Taking advantage of the state’s weakness and the resurgent
Guelph-Ghibelline conflict, the commander-in-chief of the Milanese forces,
Francesco I Sforza, defected from Milan to Venice in 1448,[12] and two
years later, after several side switches and cunning strategies, Sforza
entered the city during Annunciation. He was then declared the new Duke of
Milan by the City Council,[13] using as a claim his marriage with Bianca
Maria Visconti, illegitimate daughter of Filippo Maria.
</p>
</div>
</div>

 <div id="outline-container-Duke-of-Ferrara" class="outline-3">
 <h3 id="Duke-of-Ferrara"> <span class="section-number-3">2.5.</span>  <a href="#Duke-of-Ferrara">Duke of Ferrara</a></h3>
 <div class="outline-text-3" id="text-Duke-of-Ferrara">
 <p>
 <a href="https://en.wikipedia.org/wiki/Duchy_of_Ferrara">https://en.wikipedia.org/wiki/Duchy_of_Ferrara</a>
The Duchy of Ferrara (Latin: Ducatus Ferrariensis; Italian: Ducato di
Ferrara; Emilian: Ducà ad Frara) was a state in what is now northern
Italy. It consisted of about 1,100 km2 south of the lower Po River,
stretching to the valley of the lower Reno River, including the city of
Ferrara. The territory that was part of the Duchy was ruled by the House
of Este from 1146 to 1597.[1]
</p>

 <p>
In 1471, the territory was transferred to the Papal States. Borso d’Este,
already Duke of Modena and Reggio, was created Duke of Ferrara by Pope
Paul II. Borso and his successors ruled Ferrara as a quasi-sovereign state
until 1597, when it came under direct papal rule.[2]
</p>
</div>
</div>

 <div id="outline-container-Attack-of-Venetians-on-Ferrara-in-1484" class="outline-3">
 <h3 id="Attack-of-Venetians-on-Ferrara-in-1484"> <span class="section-number-3">2.6.</span>  <a href="#Attack-of-Venetians-on-Ferrara-in-1484">Attack of Venetians on Ferrara in 1484</a></h3>
 <div class="outline-text-3" id="text-Attack-of-Venetians-on-Ferrara-in-1484">
 <p>
 <a href="https://en.wikipedia.org/wiki/Duchy_of_Ferrara">https://en.wikipedia.org/wiki/Duchy_of_Ferrara</a>
</p>

 <p>
 <a href="https://en.wikipedia.org/wiki/War_of_Ferrara">https://en.wikipedia.org/wiki/War_of_Ferrara</a>
</p>

 <p>
“Alfonso married the notorious Lucrezia Borgia, and continued the war with
Venice with success.”
</p>
</div>
</div>

 <div id="outline-container-Attack-of-Pope-Julius-(The-Second?)-on-Ferrara-1510" class="outline-3">
 <h3 id="Attack-of-Pope-Julius-(The-Second?)-on-Ferrara-1510"> <span class="section-number-3">2.7.</span>  <a href="#Attack-of-Pope-Julius-(The-Second?)-on-Ferrara-1510">Attack of Pope Julius (The Second?) on Ferrara 1510</a></h3>
 <div class="outline-text-3" id="text-Attack-of-Pope-Julius-(The-Second?)-on-Ferrara-1510">
 <p>
 <a href="https://en.wikipedia.org/wiki/Duchy_of_Ferrara">https://en.wikipedia.org/wiki/Duchy_of_Ferrara</a> In 1509 he was
excommunicated by Pope Julius II, and he overcame the pontifical army in
1512 defending Ravenna. (Gaston de Foix fell in this battle, as an ally of
Alfonso.)
</p>
</div>
</div>

 <div id="outline-container-Louis-XII-of-France" class="outline-3">
 <h3 id="Louis-XII-of-France"> <span class="section-number-3">2.8.</span>  <a href="#Louis-XII-of-France">Louis XII of France</a></h3>
 <div class="outline-text-3" id="text-Louis-XII-of-France">
 <p>
 <a href="https://en.wikipedia.org/wiki/Louis_XII">https://en.wikipedia.org/wiki/Louis_XII</a> Louis XII (27 June 1462 – 1
January 1515) was King of France from 1498 to 1515 and King of Naples from
1501 to 1504. The son of Charles, Duke of Orléans, and Maria of Cleves, he
succeeded his 2nd cousin once removed and brother in law at the time,
Charles VIII, who died without direct heirs in 1498.
</p>
</div>
</div>

 <div id="outline-container-Louis-XII-of-France-obtaining-Milan-(which-year?)" class="outline-3">
 <h3 id="Louis-XII-of-France-obtaining-Milan-(which-year?)"> <span class="section-number-3">2.9.</span>  <a href="#Louis-XII-of-France-obtaining-Milan-(which-year?)">Louis XII of France obtaining Milan (which year?)</a></h3>
 <div class="outline-text-3" id="text-Louis-XII-of-France-obtaining-Milan-(which-year?)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Louis_XII">https://en.wikipedia.org/wiki/Louis_XII</a>
Louis opened negotiations with the Duchy of Savoy and by May 1499 had
hammered out an agreement that allowed French troops to cross Savoy to
reach the Duchy of Milan.
</p>
</div>
</div>

 <div id="outline-container-Lodovico-Sforza" class="outline-3">
 <h3 id="Lodovico-Sforza"> <span class="section-number-3">2.10.</span>  <a href="#Lodovico-Sforza">Lodovico Sforza</a></h3>
 <div class="outline-text-3" id="text-Lodovico-Sforza">
 <p>
Note! Lodovico Sforza is  <span class="underline">not</span> Francesco Sforza.
 <a href="https://en.wikipedia.org/wiki/Ludovico_Sforza">https://en.wikipedia.org/wiki/Ludovico_Sforza</a>
Ludovico Maria Sforza (Italian: [ludoˈviːko maˈriːa ˈsfɔrtsa]; 27 July
1452 – 27 May 1508), also known as Ludovico il Moro (Italian: [il ˈmɔːro];
“the Moor”).[b] “Arbiter of Italy”, according to the expression used by
Guicciardini,[3] was an Italian Renaissance nobleman who ruled as Duke of
Milan from 1494 to 1499. His ascendancy followed the death of his nephew
Gian Galeazzo Sforza. A member of the Sforza family, he was the fourth son
of  <a href="#Francesco-Sforza">Francesco I Sforza</a>. A patron of the arts during the Milanese
Renaissance, he commissioned the fresco of The Last Supper by Leonardo da
Vinci. He also played a central role in the Italian Wars.
</p>
</div>
</div>

 <div id="outline-container-Lodovico-Sforza-retakes-Milan-from-Louis-XII-of-France-quite-easily" class="outline-3">
 <h3 id="Lodovico-Sforza-retakes-Milan-from-Louis-XII-of-France-quite-easily"> <span class="section-number-3">2.11.</span>  <a href="#Lodovico-Sforza-retakes-Milan-from-Louis-XII-of-France-quite-easily">Lodovico Sforza retakes Milan from Louis XII of France quite easily</a></h3>
 <div class="outline-text-3" id="text-Lodovico-Sforza-retakes-Milan-from-Louis-XII-of-France-quite-easily">
 <p>
 <a href="https://en.wikipedia.org/wiki/Louis_XII">https://en.wikipedia.org/wiki/Louis_XII</a>
Meanwhile, Ludovico Sforza had been gathering an army, mainly among the
Swiss, to take Milan back. In mid-January 1500, his army crossed the
border into the Duchy of Milan and marched toward the city of Milan.[38]
Upon hearing the news of Sforza’s return, some of his partisans in the
city rose up. On 1 February 1500, Marshal Trivulzio decided that he could
not hold the city, and the French retreated to the fortresses west of the
city. Sforza was welcomed back into the city by a joyous crowd of his
supporters on 5 February 1500.[39]
</p>
</div>
</div>

 <div id="outline-container-King-of-France-retakes-Milan" class="outline-3">
 <h3 id="King-of-France-retakes-Milan"> <span class="section-number-3">2.12.</span>  <a href="#King-of-France-retakes-Milan">King of France retakes Milan</a></h3>
 <div class="outline-text-3" id="text-King-of-France-retakes-Milan">
 <p>
Same war, very shortly after.
</p>
</div>
</div>

 <div id="outline-container-Lodovico-Sforza-again-retakes-Milan,-with-a-lot-of-casualties" class="outline-3">
 <h3 id="Lodovico-Sforza-again-retakes-Milan,-with-a-lot-of-casualties"> <span class="section-number-3">2.13.</span>  <a href="#Lodovico-Sforza-again-retakes-Milan,-with-a-lot-of-casualties">Lodovico Sforza again retakes Milan, with a lot of casualties</a></h3>
 <div class="outline-text-3" id="text-Lodovico-Sforza-again-retakes-Milan,-with-a-lot-of-casualties">
 <p>
Same war, go read some books, not worth detailing here.
</p>
</div>
</div>

 <div id="outline-container-Romans-brought-into-Greece-by-the-Aetolians" class="outline-3">
 <h3 id="Romans-brought-into-Greece-by-the-Aetolians"> <span class="section-number-3">2.14.</span>  <a href="#Romans-brought-into-Greece-by-the-Aetolians">Romans brought into Greece by the Aetolians</a></h3>
 <div class="outline-text-3" id="text-Romans-brought-into-Greece-by-the-Aetolians">
 <p>
 <a href="https://en.wikipedia.org/wiki/Aetolian_League">https://en.wikipedia.org/wiki/Aetolian_League</a>
</p>

 <p>
However, during the Hellenistic period, they emerged as a dominant state
in central Greece and expanded by the voluntary annexation of several
Greek city-states to the League. Still, the Aetolian League had to fight
against Macedonia and were driven to an alliance with Rome, which resulted
in the final conquest of Greece by the Romans.
</p>
</div>
</div>

 <div id="outline-container-In-Greece-the-Romans-took-the-Achaians-and-Aetolians-into-their-pay" class="outline-3">
 <h3 id="In-Greece-the-Romans-took-the-Achaians-and-Aetolians-into-their-pay"> <span class="section-number-3">2.15.</span>  <a href="#In-Greece-the-Romans-took-the-Achaians-and-Aetolians-into-their-pay">In Greece the Romans took the Achaians and Aetolians into their pay</a></h3>
 <div class="outline-text-3" id="text-In-Greece-the-Romans-took-the-Achaians-and-Aetolians-into-their-pay">
 <p>
 <a href="https://en.wikipedia.org/wiki/Greece_in_the_Roman_era">https://en.wikipedia.org/wiki/Greece_in_the_Roman_era</a>
</p>
</div>
</div>

 <div id="outline-container-In-Greece-the-Romans-humbled-the-Macedon" class="outline-3">
 <h3 id="In-Greece-the-Romans-humbled-the-Macedon"> <span class="section-number-3">2.16.</span>  <a href="#In-Greece-the-Romans-humbled-the-Macedon">In Greece the Romans humbled the Macedon</a></h3>
 <div class="outline-text-3" id="text-In-Greece-the-Romans-humbled-the-Macedon">
 <p>
 <a href="https://en.wikipedia.org/wiki/Macedonian_Wars">https://en.wikipedia.org/wiki/Macedonian_Wars</a>
</p>

 <p>
Macedonian Wars (214–148 BC) were a series of conflicts fought by the
Roman Republic and its Greek allies in the eastern Mediterranean against
several different major Greek kingdoms. They resulted in Roman control or
influence over Greece and the rest of the eastern Mediterranean basin, in
addition to their hegemony in the western Mediterranean after the Punic
Wars. Traditionally, the “Macedonian Wars” include the four wars with
Macedonia, in addition to one war with the Seleucid Empire, and a final
minor war with the Achaean League (which is often considered to be the
final stage of the final Macedonian war). The most significant war was
fought with the Seleucid Empire, while the war with Macedonia was the
second, and both of these wars effectively marked the end of these empires
as major world powers, even though neither of them led immediately to
overt Roman domination.[1] Four separate wars were fought against the
weaker power, Macedonia, due to its geographic proximity to Rome, though
the last two of these wars were against haphazard insurrections rather
than powerful armies.[2] Roman influence gradually dissolved Macedonian
independence and digested it into what was becoming a leading empire.
</p>
</div>
</div>

 <div id="outline-container-In-Greece-the-Romans-driven-out-Antiochus-(who-is-that?)" class="outline-3">
 <h3 id="In-Greece-the-Romans-driven-out-Antiochus-(who-is-that?)"> <span class="section-number-3">2.17.</span>  <a href="#In-Greece-the-Romans-driven-out-Antiochus-(who-is-that?)">In Greece the Romans driven out Antiochus (who is that?)</a></h3>
 <div class="outline-text-3" id="text-In-Greece-the-Romans-driven-out-Antiochus-(who-is-that?)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Antiochus_III_the_Great">https://en.wikipedia.org/wiki/Antiochus_III_the_Great</a> ntiochus III the
Great ( <i>ænˈtaɪəkəs</i>; Greek: Ἀντίoχoς Μέγας Antiochos Megas; c. 241 – 3
July 187 BC)[1] was a Greek Hellenistic king and the 6th ruler of the
Seleucid Empire, reigning from 222 to 187 BC.[2][3][4] He ruled over the
region of Syria and large parts of the rest of western Asia towards the
end of the 3rd century BC. Rising to the throne at the age of eighteen in
222 BC, his early campaigns against the Ptolemaic Kingdom were
unsuccessful, but in the following years Antiochus gained several military
victories and substantially expanded the empire’s territory. His
traditional designation, the Great, reflects an epithet he assumed. He
also assumed the title Basileus Megas (Greek for “Great King”), the
traditional title of the Persian kings. A militarily active ruler,
Antiochus restored much of the territory of the Seleucid Empire, before
suffering a serious setback, towards the end of his reign, in his war
against Rome.
</p>

 <p>
Declaring himself the “champion of Greek freedom against Roman
domination”, Antiochus III waged a four-year war against the Roman
Republic beginning in mainland Greece in the autumn of 192 BC[5][6] before
being decisively defeated at the Battle of Magnesia. He died three years
later on campaign in the east.
</p>
</div>
</div>

 <div id="outline-container-Philip-of-Macedon-who-was-humbled-by-Romans,-not-_that_-Philip" class="outline-3">
 <h3 id="Philip-of-Macedon-who-was-humbled-by-Romans,-not-_that_-Philip"> <span class="section-number-3">2.18.</span>  <a href="#Philip-of-Macedon-who-was-humbled-by-Romans,-not-_that_-Philip">Philip of Macedon who was humbled by Romans, not  <span class="underline">that</span> Philip</a></h3>
 <div class="outline-text-3" id="text-Philip-of-Macedon-who-was-humbled-by-Romans,-not-_that_-Philip">
 <p>
 <a href="https://en.wikipedia.org/wiki/Philip_V_of_Macedon">https://en.wikipedia.org/wiki/Philip_V_of_Macedon</a>
</p>

 <p>
Philip V (Greek: Φίλιππος Philippos; 238–179 BC) was king (Basileus) of
Macedonia from 221 to 179 BC. Philip’s reign was principally marked by an
unsuccessful struggle with the emerging power of the Roman Republic. He
would lead Macedon against Rome in the First and Second Macedonian Wars,
losing the latter but allying with Rome in the Roman-Seleucid War towards
the end of his reign.
</p>
</div>
</div>

 <div id="outline-container-King-Charles-of-France" class="outline-3">
 <h3 id="King-Charles-of-France"> <span class="section-number-3">2.19.</span>  <a href="#King-Charles-of-France">King Charles of France</a></h3>
 <div class="outline-text-3" id="text-King-Charles-of-France">
 <p>
Charles VIII, called the Affable (French: l’Affable; 30 June 1470 – 7
April 1498), was King of France from 1483 to his death in 1498. He
succeeded his father Louis XI at the age of 13.[1]
</p>

 <p>
To secure his rights to the Neapolitan throne that René of Anjou had left
to his father, Charles made a series of concessions to neighbouring
monarchs and conquered the Italian peninsula without much opposition. A
coalition formed against the French invasion of 1494–98 attempted to stop
Charles’ army at Fornovo, but failed and Charles marched his army back to
France.
</p>

 <p>
In an event that was to prove a watershed in Italian history,[16] Charles
invaded Italy with 25,000 men (including 8,000 Swiss mercenaries) in
September 1494 and marched across the peninsula virtually unopposed. He
arrived in Pavia on 21 October 1494 and entered Pisa on 8 November
1494.[17] The French army subdued Florence in passing on their way south.
Reaching Naples on 22 February 1495,[18] the French Army took Naples
without a pitched battle or siege; Alfonso was expelled, and Charles was
crowned King of Naples.
</p>
</div>
</div>

 <div id="outline-container-State-of-Lombardy" class="outline-3">
 <h3 id="State-of-Lombardy"> <span class="section-number-3">2.20.</span>  <a href="#State-of-Lombardy">State of Lombardy</a></h3>
 <div class="outline-text-3" id="text-State-of-Lombardy">
 <p>
?
</p>
</div>
</div>
 <div id="outline-container-State-of-Genoa" class="outline-3">
 <h3 id="State-of-Genoa"> <span class="section-number-3">2.21.</span>  <a href="#State-of-Genoa">State of Genoa</a></h3>
 <div class="outline-text-3" id="text-State-of-Genoa">
 <p>
 <a href="https://en.wikipedia.org/wiki/Republic_of_Genoa">https://en.wikipedia.org/wiki/Republic_of_Genoa</a>
</p>

 <p>
Threatened by Alfonso V of Aragon, the Doge of Genoa in 1458 handed the
Republic over to the French, making it the Duchy of Genoa under the
control of John of Anjou, a French royal governor. However, with support
from Milan, Genoa revolted and the Republic was restored in 1461. The
Milanese then changed sides, conquering Genoa in 1464 and holding it as a
fief of the French crown.[29][30][31] Between 1463–1478 and 1488–1499,
Genoa was held by the Milanese House of Sforza.[28] From 1499 to 1528, the
Republic reached its nadir, being under nearly continual French
occupation. The Spanish, with their intramural allies, the “old nobility”
entrenched in the mountain fastnesses behind Genoa, captured the city on
May 30, 1522, and subjected the city to a pillage. When the admiral Andrea
Doria of the powerful Doria family allied with the Emperor Charles V to
oust the French and restore Genoa’s independence, a renewed prospect
opened: 1528 marks the first loan from Genoese banks to Charles.[32]
</p>
</div>
</div>

 <div id="outline-container-Florentines-(Republic?)" class="outline-3">
 <h3 id="Florentines-(Republic?)"> <span class="section-number-3">2.22.</span>  <a href="#Florentines-(Republic?)">Florentines (Republic?)</a></h3>
 <div class="outline-text-3" id="text-Florentines-(Republic?)">
 <p>
The Republic of Florence, officially the Florentine Republic (Italian:
Repubblica Fiorentina, pronounced [reˈpubblika fjorenˈtiːna], or
Repubblica di Firenze), was a medieval and early modern state that was
centered on the Italian city of Florence in Tuscany.[1][2] The republic
originated in 1115, when the Florentine people rebelled against the
Margraviate of Tuscany upon the death of Matilda of Tuscany, who
controlled vast territories that included Florence. The Florentines formed
a commune in her successors’ place.[3] The republic was ruled by a council
known as the Signoria of Florence. The signoria was chosen by the
gonfaloniere (titular ruler of the city), who was elected every two months
by Florentine guild members.
</p>

 <p>
During the Republic’s history, Florence was an important cultural,
economic, political and artistic force in Europe. Its coin, the florin,
became a world monetary standard.[4] During the Republican period,
Florence was also the birthplace of the Renaissance, which is considered a
fervent period of European cultural, artistic, political and economic
“rebirth”.[5]
</p>

 <p>
The republic had a checkered history of coups and countercoups against
various factions. The Medici faction gained governance of the city in 1434
under Cosimo de’ Medici. The Medici kept control of Florence until 1494.
Giovanni de’ Medici (later Pope Leo X) reconquered the republic in 1512.
</p>

 <p>
Florence repudiated Medici authority for a second time in 1527, during the
War of the League of Cognac. The Medici reassumed their rule in 1531 after
an 11-month siege of the city, aided by Emperor Charles V.[6] Pope Clement
VII, himself a Medici, appointed his relative Alessandro de’ Medici as the
first “Duke of the Florentine Republic”, thereby transforming the Republic
into a hereditary monarchy.[6][7]
</p>

 <p>
The second Duke, Cosimo I, established a strong Florentine navy and
expanded his territory, conquering Siena. In 1569, the pope declared
Cosimo the first grand duke of Tuscany. The Medici ruled the Grand Duchy
of Tuscany until 1737.
</p>
</div>
</div>

 <div id="outline-container-Bentivogli" class="outline-3">
 <h3 id="Bentivogli"> <span class="section-number-3">2.23.</span>  <a href="#Bentivogli">Bentivogli</a></h3>
 <div class="outline-text-3" id="text-Bentivogli">
 <p>
 <a href="https://en.wikipedia.org/wiki/Bentivoglio_family">https://en.wikipedia.org/wiki/Bentivoglio_family</a>
</p>

 <p>
Bentivoglio (Latin: Bentivoius) was an Italian family that became the de
facto rulers of Bologna and responsible for giving the city its political
autonomy during the Renaissance, although their rule did not survive a
century. 1401-1512
</p>
</div>
</div>

 <div id="outline-container-Countess-of-Forli" class="outline-3">
 <h3 id="Countess-of-Forli"> <span class="section-number-3">2.24.</span>  <a href="#Countess-of-Forli">Countess of Forli</a></h3>
 <div class="outline-text-3" id="text-Countess-of-Forli">
 <p>
 <a href="https://en.wikipedia.org/wiki/Caterina_Sforza">https://en.wikipedia.org/wiki/Caterina_Sforza</a>
Caterina Sforza (1463 – 28 May 1509) was an Italian noblewoman, the
Countess of Forlì and Lady of Imola, firstly with her husband Girolamo
Riario, and after his death as a regent of her son Ottaviano.
</p>

 <p>
The descendant of a dynasty of noted condottieri, from an early age,
Caterina distinguished herself through her bold and impetuous actions
taken to safeguard her possessions from possible usurpers and to defend
her dominions from attack, when they were involved in political intrigues.
</p>
</div>
</div>

 <div id="outline-container-Lords-of-Faenza" class="outline-3">
 <h3 id="Lords-of-Faenza"> <span class="section-number-3">2.25.</span>  <a href="#Lords-of-Faenza">Lords of Faenza</a></h3>
 <div class="outline-text-3" id="text-Lords-of-Faenza">
 <p>
 <a href="https://en.wikipedia.org/wiki/Manfredi_family#Manfredi_family_members_who_were_Lords_of_Faenza">https://en.wikipedia.org/wiki/Manfredi_family#Manfredi_family_members_who_were_Lords_of_Faenza</a>
The Manfredi were a noble family of northern Italy, who, with some
interruptions, held the seigniory of the city of Faenza in Romagna from
the beginning of the 14th century to the end of the 15th century. The
family also held the seigniory of Imola for several decades at the same
time.
</p>
</div>
</div>

 <div id="outline-container-Pesaro" class="outline-3">
 <h3 id="Pesaro"> <span class="section-number-3">2.26.</span>  <a href="#Pesaro">Pesaro</a></h3>
 <div class="outline-text-3" id="text-Pesaro">
 <p>
 <a href="https://en.wikipedia.org/wiki/Pesaro">https://en.wikipedia.org/wiki/Pesaro</a>
During the Renaissance it was ruled successively by the houses of
Montefeltro (1285–1445), Sforza (1445–1512) and Della Rovere (1513–1631).
Under the last family, who selected it as capital of their duchy, Pesaro
saw its most flourishing age, with the construction of numerous public and
private palaces, and the erection of a new line of walls (the Mura
Roveresche). In 1475, a legendary wedding took place in Pesaro, when
Costanzo Sforza and Camilla d’Aragona married.[5]
</p>
</div>
</div>

 <div id="outline-container-Rimini" class="outline-3">
 <h3 id="Rimini"> <span class="section-number-3">2.27.</span>  <a href="#Rimini">Rimini</a></h3>
 <div class="outline-text-3" id="text-Rimini">
 <p>
 <a href="https://en.wikipedia.org/wiki/Rimini#Renaissance_and_Enlightenment">https://en.wikipedia.org/wiki/Rimini#Renaissance_and_Enlightenment</a>
</p>

 <p>
Capital of Romagna. Wiki does not really include that much information
about Rimini during the Italian Wars.
</p>
</div>
</div>

 <div id="outline-container-Camerino" class="outline-3">
 <h3 id="Camerino"> <span class="section-number-3">2.28.</span>  <a href="#Camerino">Camerino</a></h3>
 <div class="outline-text-3" id="text-Camerino">
 <p>
Town in central Italy.
</p>

 <p>
 <a href="https://en.wikipedia.org/wiki/Camerino">https://en.wikipedia.org/wiki/Camerino</a>
</p>

 <p>
In 1382, his descendant Giovanni Da Varano built a 12-kilometre (7.5 mi)
long wall to defend the city, while a sumptuous Ducal Palace was built by
Giulio Cesare in 1460. Giulio Cesare’s daughter, Camilla Battista da
Varano, was canonized a saint by Pope Benedict XVI in 2010. In 1336 the
University was founded. The Da Varano were nearly extinguished by Cesare
Borgia in 1502, and in 1545 the city fell under direct Papal
administration.
</p>
</div>
</div>

 <div id="outline-container-Piombino" class="outline-3">
 <h3 id="Piombino"> <span class="section-number-3">2.29.</span>  <a href="#Piombino">Piombino</a></h3>
 <div class="outline-text-3" id="text-Piombino">
 <p>
Town in Toscana.
 <a href="https://en.wikipedia.org/wiki/Piombino#The_Battle_of_Piombino">https://en.wikipedia.org/wiki/Piombino#The_Battle_of_Piombino</a>
The Castle of Piombino remained a Pisan possession until Gerardo Appiani,
ceding Pisa to the Milanese Visconti, carved out the independent state of
the Principality of Piombino that included the islands of the Tuscan
Archipelago: Elba, Pianosa, Montecristo, Capraia, Gorgona, and Giglio, for
his family who held it until 1634. In 1445, through his marriage with
Caterina Appiani, Rinaldo Orsini acquired the lordship. In 1501–1503 the
principality was under Cesare Borgia. In 1509 the Appiani became princes
of the Holy Roman Empire with the title of Piombino.
</p>
</div>
</div>

 <div id="outline-container-Lucca" class="outline-3">
 <h3 id="Lucca"> <span class="section-number-3">2.30.</span>  <a href="#Lucca">Lucca</a></h3>
 <div class="outline-text-3" id="text-Lucca">
 <p>
Town in Toscana.
</p>

 <p>
 <a href="https://en.wikipedia.org/wiki/Lucca">https://en.wikipedia.org/wiki/Lucca</a>
</p>
</div>
</div>

 <div id="outline-container-citizens-of-Lucca,-Pisa,-and-Siena" class="outline-3">
 <h3 id="citizens-of-Lucca,-Pisa,-and-Siena"> <span class="section-number-3">2.31.</span>  <a href="#citizens-of-Lucca,-Pisa,-and-Siena">citizens of Lucca, Pisa, and Siena</a></h3>
 <div class="outline-text-3" id="text-citizens-of-Lucca,-Pisa,-and-Siena">
 <p>
Okay, I do not remember exactly, what was with them.
</p>
</div>
</div>

 <div id="outline-container-Pope-Alexander-VI-Borgia-a.k.a.-Pope-Alexander" class="outline-3">
 <h3 id="Pope-Alexander-VI-Borgia-a.k.a.-Pope-Alexander"> <span class="section-number-3">2.32.</span>  <a href="#Pope-Alexander-VI-Borgia-a.k.a.-Pope-Alexander">Pope Alexander VI Borgia a.k.a. Pope Alexander</a></h3>
 <div class="outline-text-3" id="text-Pope-Alexander-VI-Borgia-a.k.a.-Pope-Alexander">
 <p>
Father of  <a href="#Cesare-Borgia-a.k.a.-Duke-Valentino">2.42</a>
He followed  <a href="#Pope-Sixtus">2.78</a>
He preceded  <a href="#Pope-Julius-II">2.59</a>
</p>

 <p>
Alexander is considered one of the most controversial of the Renaissance
popes, partly because he acknowledged fathering several children by his
mistresses. As a result, his Italianized Valencian surname, Borgia, became
a byword for libertinism and nepotism, which are traditionally considered
as characterizing his pontificate. On the other hand, two of Alexander’s
successors, Sixtus V and Urban VIII, described him as one of the most
outstanding popes since Saint Peter.[5]
</p>
</div>
</div>

 <div id="outline-container-Romagna" class="outline-3">
 <h3 id="Romagna"> <span class="section-number-3">2.33.</span>  <a href="#Romagna">Romagna</a></h3>
 <div class="outline-text-3" id="text-Romagna">
 <p>
 <a href="https://en.wikipedia.org/wiki/Romagna">https://en.wikipedia.org/wiki/Romagna</a>
Romagna (Romagnol: Rumâgna) is an Italian historical region that
approximately corresponds to the south-eastern portion of present-day
Emilia-Romagna, North Italy. Traditionally, it is limited by the Apennines
to the south-west, the Adriatic to the east, and the rivers Reno and
Sillaro to the north and west. The region’s major cities include Cesena,
Faenza, Forlì, Imola, Ravenna, Rimini and City of San Marino (San Marino
is a landlocked state inside the Romagna historical region).
</p>
</div>
</div>

 <div id="outline-container-Tuscany" class="outline-3">
 <h3 id="Tuscany"> <span class="section-number-3">2.34.</span>  <a href="#Tuscany">Tuscany</a></h3>
 <div class="outline-text-3" id="text-Tuscany">
 <p>
 <a href="https://en.wikipedia.org/wiki/Tuscany#Renaissance">https://en.wikipedia.org/wiki/Tuscany#Renaissance</a>
Tuscany, especially Florence, is regarded as the birthplace of the
Renaissance. Though “Tuscany” remained a linguistic, cultural, and
geographic conception rather than a political reality, in the 15th
century, Florence extended its dominion in Tuscany through the annexation
of Arezzo in 1384, the purchase of Pisa in 1405, and the suppression of a
local resistance there (1406). Livorno was bought in 1421 and became the
harbour of Florence.
</p>

 <p>
From the leading city of Florence, the republic was from 1434 onward
dominated by the increasingly monarchical Medici family. Initially, under
Cosimo, Piero the Gouty, Lorenzo and Piero the Unfortunate, the forms of
the republic were retained and the Medici ruled without a title, usually
without even a formal office. These rulers presided over the Florentine
Renaissance. There was a return to the republic from 1494 to 1512, when
first Girolamo Savonarola then Piero Soderini oversaw the state. Cardinal
Giovanni di Lorenzo de’ Medici retook the city with Spanish forces in
1512, before going to Rome to become Pope Leo X. Florence was dominated by
a series of papal proxies until 1527 when the citizens declared the
republic again, only to have it taken from them again in 1530 after a
siege by an Imperial and Spanish army. At this point Pope Clement VII and
Charles V appointed Alessandro de’ Medici as the first formal hereditary
ruler.
</p>
</div>
</div>

 <div id="outline-container-Duke-Valentino,-Cesare-Borgia,-was-occuping-Romagna" class="outline-3">
 <h3 id="Duke-Valentino,-Cesare-Borgia,-was-occuping-Romagna"> <span class="section-number-3">2.35.</span>  <a href="#Duke-Valentino,-Cesare-Borgia,-was-occuping-Romagna">Duke Valentino, Cesare Borgia, was occuping Romagna</a></h3>
 <div class="outline-text-3" id="text-Duke-Valentino,-Cesare-Borgia,-was-occuping-Romagna">
 <p>
 <a href="https://en.wikipedia.org/wiki/Cesare_Borgia#Later_years_and_death">https://en.wikipedia.org/wiki/Cesare_Borgia#Later_years_and_death</a>
Duke of Valentinois (French: Duc de Valentinois; Italian: Duca Valentino)
is a title of nobility, originally in the French peerage. It is currently
one of the many hereditary titles claimed by the Prince of Monaco despite
its extinction in French law in 1949. Though it originally indicated
administrative control of the Duchy of Valentinois, based around the city
of Valence, the duchy has since become part of France, making the title
simply one of courtesy.
</p>

 <p>
It has been created at least four times: on August 17, 1498, for Cesare
Borgia, in 1548 for Diane of Poitiers, in 1642 for Prince Honoré II of
Monaco, and most recently in 1715 for Prince Jacques I of Monaco.
</p>
</div>
</div>

 <div id="outline-container-Pisa-rose-against-the-Florentines-after-a-hundred-years-of-servitude-(???)" class="outline-3">
 <h3 id="Pisa-rose-against-the-Florentines-after-a-hundred-years-of-servitude-(???)"> <span class="section-number-3">2.36.</span>  <a href="#Pisa-rose-against-the-Florentines-after-a-hundred-years-of-servitude-(???)">Pisa rose against the Florentines after a hundred years of servitude (???)</a></h3>
 <div class="outline-text-3" id="text-Pisa-rose-against-the-Florentines-after-a-hundred-years-of-servitude-(???)">
 <p>
Always Ghibelline, Pisa tried to build up its power in the course of the
14th century, and even managed to defeat Florence in the Battle of
Montecatini (1315), under the command of Uguccione della Faggiuola.
Eventually, however, after a long siege, Pisa was occupied by Florentines
in 1405.[9] Florentines corrupted the capitano del popolo (“people’s
chieftain”), Giovanni Gambacorta, who at night opened the city gate of San
Marco. Pisa was never conquered by an army. In 1409, Pisa was the seat of
a council trying to set the question of the Great Schism. In the 15th
century, access to the sea became more difficult, as the port was silting
up and was cut off from the sea. When in 1494, Charles VIII of France
invaded the Italian states to claim the Kingdom of Naples,[9] Pisa
reclaimed its independence as the Second Pisan Republic.
</p>
</div>
</div>

 <div id="outline-container-Cyrus-(he-was-the-first-of-his-dynasty?)" class="outline-3">
 <h3 id="Cyrus-(he-was-the-first-of-his-dynasty?)"> <span class="section-number-3">2.37.</span>  <a href="#Cyrus-(he-was-the-first-of-his-dynasty?)">Cyrus (he was the first of his dynasty?)</a></h3>
 <div class="outline-text-3" id="text-Cyrus-(he-was-the-first-of-his-dynasty?)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Cyrus_the_Great">https://en.wikipedia.org/wiki/Cyrus_the_Great</a>
</p>
</div>
</div>


 <div id="outline-container-Alba-(Romulus-that-he-found-no-home-in-Alba)" class="outline-3">
 <h3 id="Alba-(Romulus-that-he-found-no-home-in-Alba)"> <span class="section-number-3">2.38.</span>  <a href="#Alba-(Romulus-that-he-found-no-home-in-Alba)">Alba (Romulus that he found no home in Alba)</a></h3>
 <div class="outline-text-3" id="text-Alba-(Romulus-that-he-found-no-home-in-Alba)">
 <p>
This Alba is not the “British Albion”! It is the village of Alba Longa in Lazio.
</p>
</div>
</div>

 <div id="outline-container-Medes-(king-of-Persians)" class="outline-3">
 <h3 id="Medes-(king-of-Persians)"> <span class="section-number-3">2.39.</span>  <a href="#Medes-(king-of-Persians)">Medes (king of Persians)</a></h3>
 <div class="outline-text-3" id="text-Medes-(king-of-Persians)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Medes">https://en.wikipedia.org/wiki/Medes</a>
Predecessors of Persians.
</p>
</div>
</div>

 <div id="outline-container-Hiero-the-Syracusan" class="outline-3">
 <h3 id="Hiero-the-Syracusan"> <span class="section-number-3">2.40.</span>  <a href="#Hiero-the-Syracusan">Hiero the Syracusan</a></h3>
 <div class="outline-text-3" id="text-Hiero-the-Syracusan">
 <p>
 <a href="https://en.wikipedia.org/wiki/Hiero_II_of_Syracuse">https://en.wikipedia.org/wiki/Hiero_II_of_Syracuse</a>
Hiero II (Greek: Ἱέρων Β΄; c. 308 BC – 215 BC) was the Greek tyrant of
Syracuse from 275 to 215 BC, and the illegitimate son of a Syracusan
noble, Hierocles, who claimed descent from Gelon. He was a former general
of Pyrrhus of Epirus and an important figure of the First Punic War.[1] He
figures in the story of famed thinker Archimedes shouting “Eureka”.
</p>
</div>
</div>

 <div id="outline-container-Duke-of-Milan" class="outline-3">
 <h3 id="Duke-of-Milan"> <span class="section-number-3">2.41.</span>  <a href="#Duke-of-Milan">Duke of Milan</a></h3>
 <div class="outline-text-3" id="text-Duke-of-Milan">
 <p>
Apparently, either  <a href="#Francesco-Sforza">2.3</a> or  <a href="#Lodovico-Sforza">2.10</a>.
</p>
</div>
</div>
 <div id="outline-container-Cesare-Borgia-a.k.a.-Duke-Valentino" class="outline-3">
 <h3 id="Cesare-Borgia-a.k.a.-Duke-Valentino"> <span class="section-number-3">2.42.</span>  <a href="#Cesare-Borgia-a.k.a.-Duke-Valentino">Cesare Borgia a.k.a. Duke Valentino</a></h3>
 <div class="outline-text-3" id="text-Cesare-Borgia-a.k.a.-Duke-Valentino">
 <p>
 <a href="https://en.wikipedia.org/wiki/Cesare_Borgia">https://en.wikipedia.org/wiki/Cesare_Borgia</a> Cesare Borgia (Italian
pronunciation: [ˈtʃeːzare ˈbɔrdʒa, ˈtʃɛː-]; Valencian: Cèsar Borja [ˈsɛzaɾ
ˈbɔɾdʒa]; Spanish: César Borja [ˈθesaɾ ˈβoɾxa]; 13 September 1475 – 12
March 1507) was an Italian[3][4] ex-cardinal[5] and condottiero (mercenary
leader)[6][7] of Aragonese (Spanish) origin,[8] whose fight for power was
a major inspiration for The Prince by Niccolò Machiavelli. He was an
illegitimate son of Pope Alexander VI and member of the Spanish-Aragonese
House of Borgia.[9]
</p>

 <p>
After initially entering the Church and becoming a cardinal on his
father’s election to the Papacy, he became, after the death of his brother
in 1498, the first person to resign a cardinalate. He served as a
condottiero for King Louis XII of France around 1500, and occupied Milan
and Naples during the Italian Wars. At the same time he carved out a state
for himself in Central Italy, but after his father’s death he was unable
to retain power for long.
</p>
</div>
</div>

 <div id="outline-container-Orsini" class="outline-3">
 <h3 id="Orsini"> <span class="section-number-3">2.43.</span>  <a href="#Orsini">Orsini</a></h3>
 <div class="outline-text-3" id="text-Orsini">
 <p>
One of the two factions of Roman Barons, fought the  <a href="#Colonnesi">2.44</a>
</p>
</div>
</div>
 <div id="outline-container-Colonnesi" class="outline-3">
 <h3 id="Colonnesi"> <span class="section-number-3">2.44.</span>  <a href="#Colonnesi">Colonnesi</a></h3>
 <div class="outline-text-3" id="text-Colonnesi">
 <p>
One for the two factions of Roman Barons, fought the  <a href="#Orsini">2.43</a>
</p>

 <p>
The House of Colonna, also known as Sciarrillo or Sciarra, is an Italian
noble family, forming part of the papal nobility. It was powerful in
medieval and Renaissance Rome, supplying one Pope (Martin V) and many
other church and political leaders. The family is notable for its bitter
feud with the Orsini family over influence in Rome, until it was stopped
by Papal Bull in 1511. In 1571, the heads of both families married nieces
of Pope Sixtus V. Thereafter, historians recorded that “no peace had been
concluded between the princes of Christendom, in which they had not been
included by name”.[4]
 <a href="https://en.wikipedia.org/wiki/Colonna_family">https://en.wikipedia.org/wiki/Colonna_family</a>
</p>
</div>
</div>
 <div id="outline-container-Dukedom-of-Urbino" class="outline-3">
 <h3 id="Dukedom-of-Urbino"> <span class="section-number-3">2.45.</span>  <a href="#Dukedom-of-Urbino">Dukedom of Urbino</a></h3>
 <div class="outline-text-3" id="text-Dukedom-of-Urbino">
 <p>
Urbino (UK:  <i>ɜːrˈbiːnoʊ</i> ur-BEE-noh;[3] Italian: [urˈbiːno] (listen);
Romagnol: Urbìn) is a walled city in the Marche region of Italy,
south-west of Pesaro, a World Heritage Site notable for a remarkable
historical legacy of independent Renaissance culture, especially under the
patronage of Federico da Montefeltro, duke of Urbino from 1444 to 1482.
</p>

 <p>
Cesare Borgia dispossessed Guidobaldo da Montefeltro, Duke of Urbino, and
Elisabetta Gonzaga in 1502, with the complicity of his father, Pope
Alexander VI. After the attempt of Pope Leo X to appoint a young Medici as
duke, thwarted by the early death of Lorenzo II de Medici in 1519, Urbino
was part of the Papal States, under the dynasty of the dukes Della Rovere
(1508–1631). They moved the court to the city of Pesaro in 1523 and Urbino
began a slow decline that would continue until the last decades of the
seventeenth century.[5]
</p>
</div>
</div>

 <div id="outline-container-Magione-in-the-Perugian-territory" class="outline-3">
 <h3 id="Magione-in-the-Perugian-territory"> <span class="section-number-3">2.46.</span>  <a href="#Magione-in-the-Perugian-territory">Magione in the Perugian territory</a></h3>
 <div class="outline-text-3" id="text-Magione-in-the-Perugian-territory">
 <p>
Magione (Italian pronunciation: [maˈdʒoːne]) is a comune (municipality) in
the Province of Perugia in the Italian region Umbria, located about 15 km
west of Perugia.
</p>
</div>
</div>

 <div id="outline-container-revolt-of-Urbino" class="outline-3">
 <h3 id="revolt-of-Urbino"> <span class="section-number-3">2.47.</span>  <a href="#revolt-of-Urbino">revolt of Urbino</a></h3>
 <div class="outline-text-3" id="text-revolt-of-Urbino">
 <p>
Haven’ found.
</p>
</div>
</div>

 <div id="outline-container-commotions-in-Romagna" class="outline-3">
 <h3 id="commotions-in-Romagna"> <span class="section-number-3">2.48.</span>  <a href="#commotions-in-Romagna">commotions in Romagna</a></h3>
 <div class="outline-text-3" id="text-commotions-in-Romagna">
 <p>
Haven’t found.
</p>
</div>
</div>

 <div id="outline-container-Signor-Paolo" class="outline-3">
 <h3 id="Signor-Paolo"> <span class="section-number-3">2.49.</span>  <a href="#Signor-Paolo">Signor Paolo</a></h3>
 <div class="outline-text-3" id="text-Signor-Paolo">
 <p>
 <a href="https://en.wikipedia.org/wiki/Paolo_Orsini_(condottiero,_born_1450)">https://en.wikipedia.org/wiki/Paolo_Orsini_(condottiero,_born_1450)</a>
</p>

 <p>
Paolo Orsini (1450 – 18 January 1503) was an Italian condottiero in the
service of the Papal States, Ferdinand of Aragon and the Republic of
Florence.
</p>

 <p>
He commanded the papal guards in 1485 when he and his cousin Virginio
tried to take over Rome, but Paolo had all his goods confiscated as a
result in 1496. He entered pope Alexander VI’s service in 1497 and served
alongside Cesare Borgia in the latter’s attempt to conquer Bologna.[2]
</p>

 <p>
He supported il Valentino in aiding the Duchy of Urbino who wished to
return to ruling their state despite the Borgias’ refusal to allow this.
After capturing Senigallia the Borgia used deception to arrest the four
noblemen it wished to eliminate for taking part in the Magione conspiracy,
with Vitellozzo Vitelli and Oliverotto da Fermo killed on 31 December 1502
by the assassin Michelotto Corella. Paolo and his cousin Francesco (fourth
duke of Gravina and son of Raimondo Orsini) were both handed over at Città
della Pieve, where they were strangled on 18 January 1503.[3]
</p>
</div>
</div>

 <div id="outline-container-Sinigaglia-/-Senigallia" class="outline-3">
 <h3 id="Sinigaglia-/-Senigallia"> <span class="section-number-3">2.50.</span>  <a href="#Sinigaglia-/-Senigallia">Sinigaglia / Senigallia</a></h3>
 <div class="outline-text-3" id="text-Sinigaglia-/-Senigallia">
 <p>
Senigallia (or Sinigaglia in Old Italian, Romagnol: S’nigaja) is a comune
and port town on Italy’s Adriatic coast. It is situated in the province of
Ancona in the Marche region and lies approximately 30 kilometers
north-west of the provincial capital city Ancona. Senigallia’s small port
is located at the mouth of the river Misa. It is one of the endpoints of
the Massa-Senigallia Line, one of the most important dividing lines
(isoglosses) in the classification of the Romance languages.
</p>
</div>
</div>
 <div id="outline-container-drawn-in-...-into-his-(Cesare-Borgia)-hands-at-Sinigaglia" class="outline-3">
 <h3 id="drawn-in-...-into-his-(Cesare-Borgia)-hands-at-Sinigaglia"> <span class="section-number-3">2.51.</span>  <a href="#drawn-in-...-into-his-(Cesare-Borgia)-hands-at-Sinigaglia">drawn in … into his (Cesare Borgia) hands at Sinigaglia</a></h3>
 <div class="outline-text-3" id="text-drawn-in-...-into-his-(Cesare-Borgia)-hands-at-Sinigaglia">
 <p>
Note that Sinigaglia is  <span class="underline">not</span> Senegal.
</p>
</div>
</div>
 <div id="outline-container-Messer-Remiro-d%E2%80%99Orco" class="outline-3">
 <h3 id="Messer-Remiro-d%E2%80%99Orco"> <span class="section-number-3">2.52.</span>  <a href="#Messer-Remiro-d%E2%80%99Orco">Messer Remiro d’Orco</a></h3>
 <div class="outline-text-3" id="text-Messer-Remiro-d%E2%80%99Orco">
 <p>
 <a href="https://en.wikipedia.org/wiki/Ramiro_de_Lorca">https://en.wikipedia.org/wiki/Ramiro_de_Lorca</a>
</p>

 <p>
On 26 December 1502, Ramiro was executed in the main plaza of Cesena, his
body cut in two and his head stuck on a pike. Niccolò Machiavelli wrote in
The Prince that Ramiro’s bloody actions were what prompted Cesare to
execute him and distance himself from his crimes.
</p>
</div>
</div>

 <div id="outline-container-Cesena" class="outline-3">
 <h3 id="Cesena"> <span class="section-number-3">2.53.</span>  <a href="#Cesena">Cesena</a></h3>
 <div class="outline-text-3" id="text-Cesena">
 <p>
 <a href="https://en.wikipedia.org/wiki/Cesena">https://en.wikipedia.org/wiki/Cesena</a> Cesena (Italian pronunciation:
[tʃeˈzɛːna]; Romagnol: Cisêna) is a city and comune in the Emilia-Romagna
region of Italy, served by Autostrada A14, and located near the Apennine
Mountains, about 15 kilometres (9 miles) from the Adriatic Sea.
</p>

 <p>
After Novello’s death (1465), Cesena returned to the Papal States, but was
again seized by a local seignor, Cesare Borgia, in 1500. The city was
elevated to capital of his powerful though short-lived duchy.
</p>
</div>
</div>

 <div id="outline-container-French,-then-occupied-with-their-expedition-into-the-Kingdom-of-Naples-against-the-Spaniards" class="outline-3">
 <h3 id="French,-then-occupied-with-their-expedition-into-the-Kingdom-of-Naples-against-the-Spaniards"> <span class="section-number-3">2.54.</span>  <a href="#French,-then-occupied-with-their-expedition-into-the-Kingdom-of-Naples-against-the-Spaniards">French, then occupied with their expedition into the Kingdom of Naples against the Spaniards</a></h3>
 <div class="outline-text-3" id="text-French,-then-occupied-with-their-expedition-into-the-Kingdom-of-Naples-against-the-Spaniards">
 <p>
Which year?
</p>

 <p>
 <a href="https://en.wikipedia.org/wiki/Italian_Wars">https://en.wikipedia.org/wiki/Italian_Wars</a>
Combined with the ambition of Ludovico Sforza, its collapse allowed
Charles VIII of France to invade Naples in 1494, which drew in Spain and
the Holy Roman Empire.
</p>
</div>
</div>

 <div id="outline-container-siege-to-Gaeta-by-French" class="outline-3">
 <h3 id="siege-to-Gaeta-by-French"> <span class="section-number-3">2.55.</span>  <a href="#siege-to-Gaeta-by-French">siege to Gaeta by French</a></h3>
 <div class="outline-text-3" id="text-siege-to-Gaeta-by-French">
 <p>
 <a href="https://en.wikipedia.org/wiki/Gaeta#Middle_Ages">https://en.wikipedia.org/wiki/Gaeta#Middle_Ages</a>
In 1495, king Charles VIII of France conquered the city and sacked it. The
following year, however, Frederick I of Aragon regained it with a
tremendous siege which lasted from 8 September to 18 November.
</p>

 <p>
   In 1501 Gaeta was retaken by the French; however, after their defeat at
the Garigliano (3 January 1504), they abandoned it to Gonzalo Fernández de
Córdoba, Ferdinand the Catholic’s general.
</p>

 <p>
In 1528 Andrea Doria, admiral of Charles V, defeated a French fleet in the
waters off Gaeta and gave the city to its emperor. Gaeta was thenceforth
protected with a new and more extensive wall, which also encompassed Monte
Orlando.
</p>
</div>
</div>

 <div id="outline-container-Perugia" class="outline-3">
 <h3 id="Perugia"> <span class="section-number-3">2.56.</span>  <a href="#Perugia">Perugia</a></h3>
 <div class="outline-text-3" id="text-Perugia">
 <p>
 <a href="https://en.wikipedia.org/wiki/Perugia#History">https://en.wikipedia.org/wiki/Perugia#History</a>
Perugia ( <i>pəˈruːdʒə</i>,[3][4] US also  <i>-dʒiə, peɪˈ-</i>,[5] Italian:
[peˈruːdʒa] (listen); Latin: Perusia) is the capital city of Umbria in
central Italy, crossed by the River Tiber, and of the province of Perugia.
The city is located about 164 km (102 mi) north of Rome and 148 km (92 mi)
southeast of Florence. It covers a high hilltop and part of the valleys
around the area. The region of Umbria is bordered by Tuscany, Lazio, and
Marche.
</p>

 <p>
After the assassination in 1398 of Biordo Michelotti, who had made himself
lord of Perugia, the city became a pawn in the Italian Wars, passing to
Gian Galeazzo Visconti (1400), to Pope Boniface IX (1403), and to
Ladislaus of Naples (1408–14), before it settled into a period of sound
governance under the Signoria of the condottiero Braccio da Montone
(1416–24), who reached a concordance with the papacy. Following mutual
atrocities of the Oddi and the Baglioni families, power was at last
concentrated in the Baglioni, who though they had no legal position,
defied all other authority, though their bloody internal squabbles
culminated in a massacre, 14 July 1500.[24] Gian Paolo Baglioni was lured
to Rome in 1520 and beheaded by Leo X; and in 1540, Rodolfo, who had slain
a papal legate, was defeated by Pier Luigi Farnese, and the city, captured
and plundered by his soldiery, was deprived of its privileges.
</p>
</div>
</div>

 <div id="outline-container-Baglioni" class="outline-3">
 <h3 id="Baglioni"> <span class="section-number-3">2.57.</span>  <a href="#Baglioni">Baglioni</a></h3>
 <div class="outline-text-3" id="text-Baglioni">
 <p>
 <a href="https://en.wikipedia.org/wiki/Baglioni_family">https://en.wikipedia.org/wiki/Baglioni_family</a>
</p>

 <p>
The House of Baglioni is an Umbrian noble family that ruled over the city
of Perugia between 1438 and 1540, when Rodolfo II Baglioni had to
surrender the city to the papal troops of Pope Paul III after the Salt
War.[1] At that point, Perugia came under the control of the Papal
States.[2]
</p>
</div>
</div>

 <div id="outline-container-Vitelli" class="outline-3">
 <h3 id="Vitelli"> <span class="section-number-3">2.58.</span>  <a href="#Vitelli">Vitelli</a></h3>
 <div class="outline-text-3" id="text-Vitelli">
 <p>
 <a href="https://en.wikipedia.org/wiki/Vitelli_family">https://en.wikipedia.org/wiki/Vitelli_family</a>
The House of Vitelli, among other families so named, were a prominent
noble family of Umbria, rulers of Città di Castello and lesser rocche.
</p>

 <p>
Vitellozzo Vitelli, brother of  <a href="#Paolo-Vitelli">2.71</a>
</p>
</div>
</div>

 <div id="outline-container-Pope-Julius-II" class="outline-3">
 <h3 id="Pope-Julius-II"> <span class="section-number-3">2.59.</span>  <a href="#Pope-Julius-II">Pope Julius II</a></h3>
 <div class="outline-text-3" id="text-Pope-Julius-II">
 <p>
 <a href="https://en.wikipedia.org/wiki/Pope_Julius_II">https://en.wikipedia.org/wiki/Pope_Julius_II</a> Pope Julius II (Latin: Iulius
II; Italian: Giulio II; born Giuliano della Rovere; 5 December 1443 – 21
February 1513) was head of the Catholic Church and ruler of the Papal
States from 1503 to his death in 1513. Nicknamed the Warrior Pope or the
Fearsome Pope, he chose his papal name not in honour of Pope Julius I but
in emulation of Julius Caesar.[1] One of the most powerful and influential
popes, Julius II was a central figure of the High Renaissance and left a
significant cultural and political legacy.[2]
</p>

 <p>
In 1506, Julius II established the Vatican Museums and initiated the
rebuilding of the St. Peter’s Basilica. The same year he organized the
famous Swiss Guards for his personal protection and commanded a successful
campaign in Romagna against local lords. The interests of Julius II lay
also in the New World, as he ratified the Treaty of Tordesillas,
establishing the first bishoprics in the Americas and beginning the
catholicization of Latin America. In 1508, he commissioned the Raphael
Rooms and Michelangelo’s paintings in the Sistine Chapel.
</p>

 <p>
Julius II was described by Machiavelli in his works as an ideal prince.
Pope Julius II allowed people seeking indulgences to donate money to the
Church which would be used for the construction of Saint Peter’s
Basilica.[3] In his Julius Excluded from Heaven, the scholar Erasmus of
Rotterdam described a Pope Julius II in the afterlife planning to storm
Heaven when he is denied entry.[4]
</p>
</div>
</div>

 <div id="outline-container-San-Pietro-ad-Vincula" class="outline-3">
 <h3 id="San-Pietro-ad-Vincula"> <span class="section-number-3">2.60.</span>  <a href="#San-Pietro-ad-Vincula">San Pietro ad Vincula</a></h3>
 <div class="outline-text-3" id="text-San-Pietro-ad-Vincula">
 <p>
 <a href="https://en.wikipedia.org/wiki/St._Peter_ad_Vincula">https://en.wikipedia.org/wiki/St._Peter_ad_Vincula</a>
Saint Peter ad Vincula (Saint Peter in Chains) alludes to the Bible story
of the Liberation of Saint Peter, when the Apostle Peter, imprisoned by
King Herod Agrippa, was rescued by an angel.
</p>

 <p>
Perhaps, was also someone’s surname, but I haven’t found it.
</p>
</div>
</div>

 <div id="outline-container-Colonna" class="outline-3">
 <h3 id="Colonna"> <span class="section-number-3">2.61.</span>  <a href="#Colonna">Colonna</a></h3>
 <div class="outline-text-3" id="text-Colonna">
 <p>
 <a href="https://en.wikipedia.org/wiki/Colonna,_Lazio">https://en.wikipedia.org/wiki/Colonna,_Lazio</a>
</p>

 <p>
In 1298 Pope Boniface VIII ordered the destruction of Colonna and its
castle as punishment against the Colonna family. With the advent of Pope
Clement V (1305) the Colonna family resumed the fief with all of its
territories.
</p>
</div>
</div>

 <div id="outline-container-San-Giorgio" class="outline-3">
 <h3 id="San-Giorgio"> <span class="section-number-3">2.62.</span>  <a href="#San-Giorgio">San Giorgio</a></h3>
 <div class="outline-text-3" id="text-San-Giorgio">
 <p>
Who is that?  <a href="https://en.wikipedia.org/wiki/Giovanni_Antonio_Sangiorgio">https://en.wikipedia.org/wiki/Giovanni_Antonio_Sangiorgio</a> ?
</p>
</div>
</div>

 <div id="outline-container-Ascanio" class="outline-3">
 <h3 id="Ascanio"> <span class="section-number-3">2.63.</span>  <a href="#Ascanio">Ascanio</a></h3>
 <div class="outline-text-3" id="text-Ascanio">
 <p>
Must be  <a href="https://en.wikipedia.org/wiki/Ascanio_Sforza">https://en.wikipedia.org/wiki/Ascanio_Sforza</a>
</p>
</div>
</div>

 <div id="outline-container-d%E2%80%99Amboise" class="outline-3">
 <h3 id="d%E2%80%99Amboise"> <span class="section-number-3">2.64.</span>  <a href="#d%E2%80%99Amboise">d’Amboise</a></h3>
 <div class="outline-text-3" id="text-d%E2%80%99Amboise">
 <p>
 <a href="https://en.wikipedia.org/wiki/Jacques_d%27Amboise_(bishop)">https://en.wikipedia.org/wiki/Jacques_d%27Amboise_(bishop)</a> ?
But he was not a cardinal?
</p>
</div>
</div>

 <div id="outline-container-Spanish-Cardinals" class="outline-3">
 <h3 id="Spanish-Cardinals"> <span class="section-number-3">2.65.</span>  <a href="#Spanish-Cardinals">Spanish Cardinals</a></h3>
 <div class="outline-text-3" id="text-Spanish-Cardinals">
 <p>
Apparently, Cardinals from Spain, who elected Pope Julius II.
</p>
</div>
</div>

 <div id="outline-container-Agathocles-the-Sicilian" class="outline-3">
 <h3 id="Agathocles-the-Sicilian"> <span class="section-number-3">2.66.</span>  <a href="#Agathocles-the-Sicilian">Agathocles the Sicilian</a></h3>
 <div class="outline-text-3" id="text-Agathocles-the-Sicilian">
 <p>
 <a href="https://en.wikipedia.org/wiki/Agathocles_of_Syracuse">https://en.wikipedia.org/wiki/Agathocles_of_Syracuse</a>
Agathocles (Greek: Ἀγαθοκλῆς, Agathoklḗs; 361–289 BC) was a Greek tyrant
of Syracuse (317–289 BC) and self-styled king of Sicily (304–289 BC).
</p>
</div>
</div>

 <div id="outline-container-Syracuse" class="outline-3">
 <h3 id="Syracuse"> <span class="section-number-3">2.67.</span>  <a href="#Syracuse">Syracuse</a></h3>
 <div class="outline-text-3" id="text-Syracuse">
 <p>
Seemingly, not much has happened in Syracuse during the Italian Wars.
</p>
</div>
</div>

 <div id="outline-container-Hamilcar" class="outline-3">
 <h3 id="Hamilcar"> <span class="section-number-3">2.68.</span>  <a href="#Hamilcar">Hamilcar</a></h3>
 <div class="outline-text-3" id="text-Hamilcar">
 <p>
Apparently,  <a href="https://en.wikipedia.org/wiki/Hamilcar">https://en.wikipedia.org/wiki/Hamilcar</a>
</p>

 <p>
Hamilcar, son of Gisgo and grandson of Hanno the Great, led a campaign
against Agathocles of Syracuse during the Third Sicilian War. He defeated
Agathocles in the Battle of the Himera River in 311 BC. He was captured
during the Siege of Syracuse and then killed in 309 BC.
</p>
</div>
</div>

 <div id="outline-container-Oliverotto-of-Fermo" class="outline-3">
 <h3 id="Oliverotto-of-Fermo"> <span class="section-number-3">2.69.</span>  <a href="#Oliverotto-of-Fermo">Oliverotto of Fermo</a></h3>
 <div class="outline-text-3" id="text-Oliverotto-of-Fermo">
 <p>
 <a href="https://en.wikipedia.org/wiki/Oliverotto_Euffreducci">https://en.wikipedia.org/wiki/Oliverotto_Euffreducci</a>
</p>

 <p>
Oliverotto Euffreducci, known as Oliverotto of Fermo (1475, Fermo – 31
December 1502, Senigallia), was an Italian condottiero and lord of Fermo
during the pontificate of Alexander VI.
</p>
</div>
</div>

 <div id="outline-container-Giovanni-Fogliani,-uncle-of-Oliverotto-of-Fermo,-killed-by-him" class="outline-3">
 <h3 id="Giovanni-Fogliani,-uncle-of-Oliverotto-of-Fermo,-killed-by-him"> <span class="section-number-3">2.70.</span>  <a href="#Giovanni-Fogliani,-uncle-of-Oliverotto-of-Fermo,-killed-by-him">Giovanni Fogliani, uncle of Oliverotto of Fermo, killed by him</a></h3>
 <div class="outline-text-3" id="text-Giovanni-Fogliani,-uncle-of-Oliverotto-of-Fermo,-killed-by-him">
</div>
</div>
 <div id="outline-container-Paolo-Vitelli" class="outline-3">
 <h3 id="Paolo-Vitelli"> <span class="section-number-3">2.71.</span>  <a href="#Paolo-Vitelli">Paolo Vitelli</a></h3>
 <div class="outline-text-3" id="text-Paolo-Vitelli">
 <p>
 <a href="https://en.wikipedia.org/wiki/Paolo_Vitelli_(condottiero)">https://en.wikipedia.org/wiki/Paolo_Vitelli_(condottiero)</a>
</p>

 <p>
Paolo Vitelli (1461 – 1 October 1499) was an Italian knight and
condottiero as well as lord of Montone. He was born in Città di Castello,
which had been captured by his father, Niccolò Vitelli. He was the brother
of Vitellozo and Chiappino, both condottieri.[1] He worked as a mercenary
for the republic of Florence, where he was later suspected of treachery
and executed. This led his brother Vitellozzo to repeatedly assail Tuscan
properties.[2]
</p>
</div>
</div>

 <div id="outline-container-Vitellozzo-Vitelli,-brother-of-%5B%5B*Paolo-Vitelli%5D%5D" class="outline-3">
 <h3 id="Vitellozzo-Vitelli,-brother-of-%5B%5B*Paolo-Vitelli%5D%5D"> <span class="section-number-3">2.72.</span>  <a href="#Vitellozzo-Vitelli,-brother-of-%5B%5B*Paolo-Vitelli%5D%5D">Vitellozzo Vitelli, brother of </a> <a href="#Paolo-Vitelli">2.71</a></h3>
 <div class="outline-text-3" id="text-Vitellozzo-Vitelli,-brother-of-%5B%5B*Paolo-Vitelli%5D%5D">
 <p>
 <a href="https://en.wikipedia.org/wiki/Vitellozzo_Vitelli">https://en.wikipedia.org/wiki/Vitellozzo_Vitelli</a>
</p>

 <p>
Vitellozzo Vitelli (c. 1458 – December 31, 1502) was an Italian
condottiero. He was lord of Montone, Città di Castello, Monterchi and
Anghiari.
</p>

 <p>
Friend of Leonardo Da Vinci.
</p>
</div>
</div>

 <div id="outline-container-Vitelleschi" class="outline-3">
 <h3 id="Vitelleschi"> <span class="section-number-3">2.73.</span>  <a href="#Vitelleschi">Vitelleschi</a></h3>
 <div class="outline-text-3" id="text-Vitelleschi">
 <p>
 <a href="https://en.wikipedia.org/wiki/Giovanni_Vitelleschi">https://en.wikipedia.org/wiki/Giovanni_Vitelleschi</a>
</p>
</div>
</div>


 <div id="outline-container-Nabis,-Prince-of-Sparta" class="outline-3">
 <h3 id="Nabis,-Prince-of-Sparta"> <span class="section-number-3">2.74.</span>  <a href="#Nabis,-Prince-of-Sparta">Nabis, Prince of Sparta</a></h3>
 <div class="outline-text-3" id="text-Nabis,-Prince-of-Sparta">
 <p>
 <a href="https://en.wikipedia.org/wiki/Nabis">https://en.wikipedia.org/wiki/Nabis</a>
</p>

 <p>
Nabis (Greek: Νάβις) was the last king of independent Sparta.[2] He was
probably a member of the Heracleidae,[3] and he ruled from 207 BC to 192
BC, during the years of the First and Second Macedonian Wars and the
eponymous “War against Nabis”, i.e. against him. After taking the throne
by executing two claimants, he began rebuilding Sparta’s power.[2] During
the Second Macedonian War, Nabis sided with King Philip V of Macedon and
in return he received the city of Argos. However, when the war began to
turn against the Macedonians, he defected to Rome. After the war, the
Romans, urged by the Achaean League, attacked Nabis and defeated him. He
then was assassinated in 192 BC by the Aetolian League. He represented the
last phase of Sparta’s reformist period.[4]
</p>
</div>
</div>

 <div id="outline-container-the-Gracchi-in-Rome" class="outline-3">
 <h3 id="the-Gracchi-in-Rome"> <span class="section-number-3">2.75.</span>  <a href="#the-Gracchi-in-Rome">the Gracchi in Rome</a></h3>
 <div class="outline-text-3" id="text-the-Gracchi-in-Rome">
 <p>
 <a href="https://en.wikipedia.org/wiki/Gracchi_brothers">https://en.wikipedia.org/wiki/Gracchi_brothers</a>
</p>

 <p>
The Gracchi brothers were two Roman brothers, sons of Tiberius Sempronius
Gracchus who was consul in 177 BC. Tiberius, the elder brother, was
tribune of the plebs in 133 BC and Gaius, the younger brother, was tribune
a decade later in 123–122 BC.[1]
</p>

 <p>
They attempted to redistribute the ager publicus – the public land
hitherto controlled principally by aristocrats – to the urban poor[dubious
– discuss] and military veterans, in addition to other social and
constitutional reforms. After achieving some early success, both were
assassinated by the Optimates, the conservative faction in the Senate that
opposed these reforms.[dubious – discuss]
</p>
</div>
</div>

 <div id="outline-container-Messer-Giorgio-Scali-in-Florence" class="outline-3">
 <h3 id="Messer-Giorgio-Scali-in-Florence"> <span class="section-number-3">2.76.</span>  <a href="#Messer-Giorgio-Scali-in-Florence">Messer Giorgio Scali in Florence</a></h3>
 <div class="outline-text-3" id="text-Messer-Giorgio-Scali-in-Florence">
 <p>
Have not found detail.
</p>
</div>
</div>

 <div id="outline-container-Potentates-of-Italy" class="outline-3">
 <h3 id="Potentates-of-Italy"> <span class="section-number-3">2.77.</span>  <a href="#Potentates-of-Italy">Potentates of Italy</a></h3>
 <div class="outline-text-3" id="text-Potentates-of-Italy">
 <p>
I think, here he means all the powerful and important people who are not
formally princes. Like Condottieri.
</p>
</div>
</div>

 <div id="outline-container-Pope-Sixtus" class="outline-3">
 <h3 id="Pope-Sixtus"> <span class="section-number-3">2.78.</span>  <a href="#Pope-Sixtus">Pope Sixtus</a></h3>
 <div class="outline-text-3" id="text-Pope-Sixtus">
 <p>
 <a href="https://en.wikipedia.org/wiki/Pope_Sixtus_IV">https://en.wikipedia.org/wiki/Pope_Sixtus_IV</a>
Pope Sixtus IV (Italian: Sisto IV: 21 July 1414 – 12 August 1484), born
Francesco della Rovere, was head of the Catholic Church and ruler of the
Papal States from 9 August 1471 to his death. His accomplishments as pope
included the construction of the Sistine Chapel and the creation of the
Vatican Archives. A patron of the arts, he brought together the group of
artists who ushered the Early Renaissance into Rome with the first
masterpieces of the city’s new artistic age.
</p>

 <p>
Sixtus founded the Spanish Inquisition through the bull Exigit sincerae
devotionis affectus (1478), and he annulled the decrees of the Council of
Constance. He was noted for his nepotism and was personally involved in
the infamous Pazzi conspiracy.[1]
</p>

 <p>
He was followed by  <a href="#Pope-Alexander-VI-Borgia-a.k.a.-Pope-Alexander">2.32</a>
</p>
</div>
</div>
 <div id="outline-container-Pope-Leo" class="outline-3">
 <h3 id="Pope-Leo"> <span class="section-number-3">2.79.</span>  <a href="#Pope-Leo">Pope Leo</a></h3>
 <div class="outline-text-3" id="text-Pope-Leo">
 <p>
 <a href="https://en.wikipedia.org/wiki/Pope_Leo_X">https://en.wikipedia.org/wiki/Pope_Leo_X</a>
Pope Leo X (Italian: Leone X; born Giovanni di Lorenzo de’ Medici, 11
December 1475 – 1 December 1521) was head of the Catholic Church and ruler
of the Papal States from 9 March 1513 to his death in 1521.[1]
</p>

 <p>
Born into the prominent political and banking Medici family of Florence,
Giovanni was the second son of Lorenzo de’ Medici, ruler of the Florentine
Republic, and was elevated to the cardinalate in 1489. Following the death
of Pope Julius II, Giovanni was elected pope after securing the backing of
the younger members of the Sacred College. Early on in his rule he oversaw
the closing sessions of the Fifth Council of the Lateran, but struggled to
implement the reforms agreed. In 1517 he led a costly war that succeeded
in securing his nephew as Duke of Urbino, but reduced papal finances.
</p>
</div>
</div>

 <div id="outline-container-Epaminondas,-and-the-Thebans" class="outline-3">
 <h3 id="Epaminondas,-and-the-Thebans"> <span class="section-number-3">2.80.</span>  <a href="#Epaminondas,-and-the-Thebans">Epaminondas, and the Thebans</a></h3>
 <div class="outline-text-3" id="text-Epaminondas,-and-the-Thebans">
 <p>
 <a href="https://en.wikipedia.org/wiki/Epaminondas">https://en.wikipedia.org/wiki/Epaminondas</a>
</p>

 <p>
Epaminondas ( <i>ɪˌpæmɪˈnɒndəs</i>; Greek: Ἐπαμεινώνδας; 419/411–362 BC) was a
Greek general of Thebes and statesman of the 4th century BC who
transformed the Ancient Greek city-state, leading it out of Spartan
subjugation into a pre-eminent position in Greek politics called the
Theban Hegemony. In the process, he broke Spartan military power with his
victory at Leuctra and liberated the Messenian helots, a group of
Peloponnesian Greeks who had been enslaved under Spartan rule for some 230
years after being defeated in the Messenian War ending in 600 BC.
</p>
</div>
</div>

 <div id="outline-container-Duke-Filippo-of-the-Milanese" class="outline-3">
 <h3 id="Duke-Filippo-of-the-Milanese"> <span class="section-number-3">2.81.</span>  <a href="#Duke-Filippo-of-the-Milanese">Duke Filippo of the Milanese</a></h3>
 <div class="outline-text-3" id="text-Duke-Filippo-of-the-Milanese">
 <p>
 <a href="https://en.wikipedia.org/wiki/Filippo_Maria_Visconti">https://en.wikipedia.org/wiki/Filippo_Maria_Visconti</a> ?
 <a href="https://en.wikipedia.org/wiki/Milanese_War_of_Succession">https://en.wikipedia.org/wiki/Milanese_War_of_Succession</a> ?
</p>
</div>
</div>

 <div id="outline-container-Caravaggio,-and-the-battle-there" class="outline-3">
 <h3 id="Caravaggio,-and-the-battle-there"> <span class="section-number-3">2.82.</span>  <a href="#Caravaggio,-and-the-battle-there">Caravaggio, and the battle there</a></h3>
 <div class="outline-text-3" id="text-Caravaggio,-and-the-battle-there">
 <p>
 <a href="https://en.wikipedia.org/wiki/Caravaggio,_Lombardy#History">https://en.wikipedia.org/wiki/Caravaggio,_Lombardy#History</a>
</p>

 <p>
The battle description I have not found.
</p>
</div>
</div>

 <div id="outline-container-Giovanna,-Queen-of-Naples" class="outline-3">
 <h3 id="Giovanna,-Queen-of-Naples"> <span class="section-number-3">2.83.</span>  <a href="#Giovanna,-Queen-of-Naples">Giovanna, Queen of Naples</a></h3>
 <div class="outline-text-3" id="text-Giovanna,-Queen-of-Naples">
 <p>
 <a href="https://en.wikipedia.org/wiki/Joanna_of_Naples_(1478%E2%80%931518)">https://en.wikipedia.org/wiki/Joanna_of_Naples_(1478%E2%80%931518)</a>
</p>

 <p>
Joanna of Naples (15 April 1478 – 27 August 1518) was Queen of Naples by
marriage to her nephew, Ferdinand II of Naples. After the death of her
spouse, she was for a short while a candidate for the throne.
</p>
</div>
</div>

 <div id="outline-container-Giovanni-Acuto" class="outline-3">
 <h3 id="Giovanni-Acuto"> <span class="section-number-3">2.84.</span>  <a href="#Giovanni-Acuto">Giovanni Acuto</a></h3>
 <div class="outline-text-3" id="text-Giovanni-Acuto">
 <p>
 <a href="https://en.wikipedia.org/wiki/John_Hawkwood">https://en.wikipedia.org/wiki/John_Hawkwood</a>
</p>

 <p>
Sir John Hawkwood (c. 1323 – 17 March 1394) was an English soldier who
served as a mercenary leader or condottiero in Italy. As his name was
difficult to pronounce for non-English-speaking contemporaries, there are
many variations of it in the historical record. He often referred to
himself as Haukevvod and in Italy he was known as Giovanni Acuto,
literally meaning “John Sharp” (or “John the Astute”) in reference to his
“cleverness or cunning”.[1] His name was Latinised as Johannes Acutus
(“John Sharp”).[2] Other recorded forms are Aucgunctur, Haughd, Hauvod,
Hankelvode, Augudh, Auchevud, Haukwode and Haucod.[3] His exploits made
him a man shrouded in myth in both England and Italy. Much of his enduring
fame results from the surviving large and prominent fresco portrait of him
in the Duomo, Florence, made in 1436 by Paolo Uccello, seen every year by
4½ million[4] tourists.
</p>
</div>
</div>

 <div id="outline-container-Bracceschi" class="outline-3">
 <h3 id="Bracceschi"> <span class="section-number-3">2.85.</span>  <a href="#Bracceschi">Bracceschi</a></h3>
 <div class="outline-text-3" id="text-Bracceschi">
 <p>
 <a href="https://en.wikipedia.org/wiki/Milanese_War_of_Succession">https://en.wikipedia.org/wiki/Milanese_War_of_Succession</a>
</p>

 <p>
Wealthy Italian family, famous for fighting in the War of Milanese
Succcession.
</p>
</div>
</div>

 <div id="outline-container-Carmagnola-and-its-conquest-by-the-Venetians" class="outline-3">
 <h3 id="Carmagnola-and-its-conquest-by-the-Venetians"> <span class="section-number-3">2.86.</span>  <a href="#Carmagnola-and-its-conquest-by-the-Venetians">Carmagnola and its conquest by the Venetians</a></h3>
 <div class="outline-text-3" id="text-Carmagnola-and-its-conquest-by-the-Venetians">
 <p>
 <a href="https://en.wikipedia.org/wiki/Carmagnola">https://en.wikipedia.org/wiki/Carmagnola</a>
</p>

 <p>
Carmagnola (Italian: [karmaɲˈɲɔːla]; Piedmontese: Carmagnòla [karmaˈɲɔla]
(listen)) is a comune (municipality) in the Metropolitan City of Turin in
the Italian region Piedmont, located 29 kilometres (18 mi) south of
Turin.[3] The town is on the right side of the Po river.
</p>
</div>
</div>

 <div id="outline-container-Alberico-of-Conio-in-Romagna" class="outline-3">
 <h3 id="Alberico-of-Conio-in-Romagna"> <span class="section-number-3">2.87.</span>  <a href="#Alberico-of-Conio-in-Romagna">Alberico of Conio in Romagna</a></h3>
 <div class="outline-text-3" id="text-Alberico-of-Conio-in-Romagna">
 <p>
 <a href="https://en.wikipedia.org/wiki/Alberico_da_Barbiano">https://en.wikipedia.org/wiki/Alberico_da_Barbiano</a>
</p>

 <p>
Alberico da Barbiano (c. 1344–1409) was the first of the Italian
condottieri. His master in military matters was the English mercenary John
Hawkwood, known in Italy as Giovanni Acuto. Alberico’s compagnia fought
under the banner of Saint George, as the compagnia San Giorgio.[1]
</p>
</div>
</div>

 <div id="outline-container-King-of-Spain-(Ferdinand-II-of-Aragon)" class="outline-3">
 <h3 id="King-of-Spain-(Ferdinand-II-of-Aragon)"> <span class="section-number-3">2.88.</span>  <a href="#King-of-Spain-(Ferdinand-II-of-Aragon)">King of Spain (Ferdinand II of Aragon)</a></h3>
 <div class="outline-text-3" id="text-King-of-Spain-(Ferdinand-II-of-Aragon)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Ferdinand_II_of_Aragon">https://en.wikipedia.org/wiki/Ferdinand_II_of_Aragon</a>
</p>

 <p>
Ferdinand II (Aragonese: Ferrando; Catalan: Ferran; Basque: Errando;
Italian: Ferdinando; Latin: Ferdinandus; Spanish: Fernando; 10 March 1452
– 23 January 1516), also called Ferdinand the Catholic (Spanish: el
Católico), was King of Aragon and Sardinia from 1479, King of Sicily from
1468, King of Naples (as Ferdinand III) from 1504 and King of Navarre (as
Ferdinand I) from 1512 until his death in 1516. He was also the Duke
(nominal) of the ancient Duchies of Athens and Neopatria. He was King of
Castile and León (as Ferdinand V) from 1475 to 1504, alongside his wife
Queen Isabella I. From 1506 to 1516, he was the Regent of the Crown of
Castile, making him the effective ruler of Castile. From 1511 to 1516, he
styled himself as Imperator totius Africa (Emperor of All Africa) after
having conquered Tlemcen and making the Zayyanid Sultan, Abu Abdallah V,
his vassal.[1] He was also the Grandmaster of the Spanish Military Orders
of Santiago (1499-1516), Calatrava (1487-1516), Alcantara (1492-1516) and
Montesa (1499-1516), after he permanently annexed them into the Spanish
Crown. He reigned jointly with Isabella over a dynastically unified Spain;
together they are known as the Catholic Monarchs. Ferdinand is considered
the de facto first King of Spain, and was described as such during his
reign (Latin: Rex Hispaniarum; Spanish: Rey de España).
</p>
</div>
</div>

 <div id="outline-container-Emperor-of-Constantinople" class="outline-3">
 <h3 id="Emperor-of-Constantinople"> <span class="section-number-3">2.89.</span>  <a href="#Emperor-of-Constantinople">Emperor of Constantinople</a></h3>
 <div class="outline-text-3" id="text-Emperor-of-Constantinople">
 <p>
 <a href="https://en.wikipedia.org/wiki/Constantine_XI_Palaiologos">https://en.wikipedia.org/wiki/Constantine_XI_Palaiologos</a>
</p>

 <p>
Constantine XI Dragases Palaiologos or Dragaš Palaeologus (Greek:
Κωνσταντῖνος Δραγάσης Παλαιολόγος, Kōnstantînos Dragásēs Palaiológos; 8
February 1405 – 29 May 1453) was the last Roman emperor, reigning from
1449 until his death in battle at the Fall of Constantinople in 1453.
Constantine’s death marked the end of the Byzantine Empire, which traced
its origin to Constantine the Great’s foundation of Constantinople as the
Roman Empire’s new capital in 330. Given that the Byzantine Empire was the
Roman Empire’s medieval continuation, with its citizens continuing to
refer to themselves as Romans, Constantine XI’s death and Constantinople’s
fall also marked the definitive end of the Roman Empire, founded by
Augustus almost 1,500 years earlier.
</p>
</div>
</div>

 <div id="outline-container-The-Turk,-probably-means-Seljuq-Turks,-led-by-Mehmend-II" class="outline-3">
 <h3 id="The-Turk,-probably-means-Seljuq-Turks,-led-by-Mehmend-II"> <span class="section-number-3">2.90.</span>  <a href="#The-Turk,-probably-means-Seljuq-Turks,-led-by-Mehmend-II">The Turk, probably means Seljuq Turks, led by Mehmend II</a></h3>
 <div class="outline-text-3" id="text-The-Turk,-probably-means-Seljuq-Turks,-led-by-Mehmend-II">
 <p>
 <a href="https://en.wikipedia.org/wiki/Ottoman_Sultanate">https://en.wikipedia.org/wiki/Ottoman_Sultanate</a>
</p>
</div>
</div>

 <div id="outline-container-Imola" class="outline-3">
 <h3 id="Imola"> <span class="section-number-3">2.91.</span>  <a href="#Imola">Imola</a></h3>
 <div class="outline-text-3" id="text-Imola">
 <p>
 <a href="https://en.wikipedia.org/wiki/Imola">https://en.wikipedia.org/wiki/Imola</a>
</p>

 <p>
Imola (Italian: [ˈiːmola]; Romagnol: Jômla or Jemula) is a city and comune
in the Metropolitan City of Bologna, located on the river Santerno, in the
Emilia-Romagna region of northern Italy. The city is traditionally
considered the western entrance to the historical region Romagna.
</p>

 <p>
Pope Benedict XII turned the city and its territory over to Lippo II
Alidosi with the title of pontifical vicar, the power remaining in the
family Alidosi until 1424, when the condottiero Angelo della Pergola,
“capitano” for Filippo Maria Visconti, gained the supremacy (see also Wars
in Lombardy). In 1426 the city was restored to the Holy See, and the
legate (later Cardinal) Capranica inaugurated a new regime in public
affairs.
</p>

 <p>
Various condottieri later ruled in the city, such as the Visconti; several
landmark fortresses remain from this period. In 1434, 1438, and 1470,
Imola was conferred on the Sforza, who had become dukes of Milan
(Lombardy). It was again brought under papal authority when it was
bestowed as dowry on Caterina Sforza, the bride of Girolamo Riario, nephew
of Pope Sixtus IV. Riario was invested with the Principality of Forlì and
Imola. This proved advantageous to Imola, which was embellished with
beautiful palaces and works of art (e.g. in the cathedral, the tomb of
Girolamo, murdered in 1488 by conspirators of Forli). The rule of the
Riarii, however, was brief, as Pope Alexander VI deprived the son of
Girolamo, Ottaviano, of power, and on 25 November 1499, the city
surrendered to Cesare Borgia. After his death, two factions, that of
Galeazzo Riario and that of the Church, competed for control of the city.
The ecclesiastical party was victorious, and in 1504 Imola submitted to
Pope Julius II. The last trace of these contests was a bitter enmity
between the Vaini and Sassatelli families.
</p>
</div>
</div>

 <div id="outline-container-Forli" class="outline-3">
 <h3 id="Forli"> <span class="section-number-3">2.92.</span>  <a href="#Forli">Forli</a></h3>
 <div class="outline-text-3" id="text-Forli">
 <p>
 <a href="https://en.wikipedia.org/wiki/Forl%C3%AC">https://en.wikipedia.org/wiki/Forl%C3%AC</a>
</p>

 <p>
Forlì ( <i>fɔːrˈliː</i> for-LEE, Italian: [forˈli] (listen); Romagnol: Furlè
[furˈlɛ]; Latin: Forum Livii) is a comune (municipality) and city in
Emilia-Romagna, Northern Italy, and is the capital of the province of
Forlì-Cesena. It is the central city of Romagna.
</p>

 <p>
Local factions with papal support ousted the family in 1327–29 and again
in 1359–75, and at other turns of events the bishops were expelled by the
Ordelaffi. Until the Renaissance the Ordelaffi strived to maintain the
possession of the city and its countryside, especially against Papal
attempts to assert back their authority. Often civil wars between members
of the family occurred. They also fought as condottieri for other states
to earn themselves money to protect or embellish Forlì.
</p>
</div>
</div>

 <div id="outline-container-Philopoemon,-Prince-of-the-Achaians" class="outline-3">
 <h3 id="Philopoemon,-Prince-of-the-Achaians"> <span class="section-number-3">2.93.</span>  <a href="#Philopoemon,-Prince-of-the-Achaians">Philopoemon, Prince of the Achaians</a></h3>
 <div class="outline-text-3" id="text-Philopoemon,-Prince-of-the-Achaians">
 <p>
 <a href="https://en.wikipedia.org/wiki/Philopoemen">https://en.wikipedia.org/wiki/Philopoemen</a>
</p>

 <p>
Philopoemen  <i>ˌfɪləˈpiːmən</i> (Greek: Φιλοποίμην Philopoímēn; 253 BC,
Megalopolis – 183 BC, Messene) was a skilled Greek general and statesman,
who was Achaean strategos on eight occasions.
</p>

 <p>
From the time he was appointed as strategos in 209 BC, Philopoemen helped
turn the Achaean League into an important military power in Greece. He was
called “the last of the Greeks” by an anonymous Roman.
</p>
</div>
</div>

 <div id="outline-container-Xenophon" class="outline-3">
 <h3 id="Xenophon"> <span class="section-number-3">2.94.</span>  <a href="#Xenophon">Xenophon</a></h3>
 <div class="outline-text-3" id="text-Xenophon">
 <p>
 <a href="https://en.wikipedia.org/wiki/Xenophon">https://en.wikipedia.org/wiki/Xenophon</a>
</p>

 <p>
Xenophon of Athens ( <i>ˈzɛnəfən, zi-, -fɒn</i>; Ancient Greek: Ξενοφῶν
[ksenopʰɔ̂ːn]; c. 430[1] – probably 355 or 354 BC[4]) was a Greek military
leader, philosopher, and historian, born in Athens. At the age of 30,
Xenophon was elected commander of one of the biggest Greek mercenary
armies of the Achaemenid Empire, the Ten Thousand, that marched on and
came close to capturing Babylon in 401 BC.
</p>

 <p>
Today, Xenophon is best known for his historical works. The Hellenica
continues directly from the final sentence of Thucydides’ History of the
Peloponnesian War covering the last seven years of the Peloponnesian War
(431–404 BC) and the subsequent forty-two years (404 BC–362 BC) ending
with the Second Battle of Mantinea.
</p>
</div>
</div>

 <div id="outline-container-Pistoja" class="outline-3">
 <h3 id="Pistoja"> <span class="section-number-3">2.95.</span>  <a href="#Pistoja">Pistoja</a></h3>
 <div class="outline-text-3" id="text-Pistoja">
 <p>
 <a href="https://en.wikipedia.org/wiki/Pistoia">https://en.wikipedia.org/wiki/Pistoia</a>
</p>

 <p>
Pistoia (US:  <i>pɪˈstɔɪə,piːˈstoʊjɑː</i>,[3][4] Italian: [pisˈtoːja]
(listen)[5] is a city and comune in the Italian region of Tuscany, the
capital of a province of the same name, located about 30 kilometres (19
mi) west and north of Florence and is crossed by the Ombrone Pistoiese, a
tributary of the River Arno.
</p>

 <p>
In 1254 the Ghibelline town of Pistoia was conquered by the Guelph
Florence; this did not pacify the town, but led to marked civil violence
between “Black” and “White” Guelph factions, pitting different noble
families against one another. In the Inferno of Dante, we encounter a
particularly violent member of the Black faction of Pistoia, Vanni Fucci,
tangled up in a knot of snakes while cursing God, who states: (I am a)
beast and Pistoia my worthy lair. Pistoia remained a Florentine holding
except for a brief period in the 14th century, when a former abbott,
Ormanno Tedici, became Lord of the city. This did not last long, since his
nephew Filippo sold the town to Castruccio Castracani of Lucca. The town
was officially annexed to Florence in 1530.
</p>
</div>
</div>

 <div id="outline-container-Hannibal" class="outline-3">
 <h3 id="Hannibal"> <span class="section-number-3">2.96.</span>  <a href="#Hannibal">Hannibal</a></h3>
 <div class="outline-text-3" id="text-Hannibal">
 <p>
 <a href="https://en.wikipedia.org/wiki/Hannibal">https://en.wikipedia.org/wiki/Hannibal</a>
</p>

 <p>
Hannibal ( <i>ˈhænɪbəl</i>; Punic: 𐤇𐤍𐤁𐤏𐤋, Ḥannibaʿl; 247 – between 183 and 181
BC) was a Carthaginian general and statesman who commanded the forces of
Carthage in their battle against the Roman Republic during the Second
Punic War. He is widely regarded as one of the greatest military
commanders in history.
</p>
</div>
</div>

 <div id="outline-container-Fabius-Maximus-(Quintus-Fabius-Maximus-Verrucosus)" class="outline-3">
 <h3 id="Fabius-Maximus-(Quintus-Fabius-Maximus-Verrucosus)"> <span class="section-number-3">2.97.</span>  <a href="#Fabius-Maximus-(Quintus-Fabius-Maximus-Verrucosus)">Fabius Maximus (Quintus Fabius Maximus Verrucosus)</a></h3>
 <div class="outline-text-3" id="text-Fabius-Maximus-(Quintus-Fabius-Maximus-Verrucosus)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Quintus_Fabius_Maximus_Verrucosus">https://en.wikipedia.org/wiki/Quintus_Fabius_Maximus_Verrucosus</a>
</p>

 <p>
Quintus Fabius Maximus Verrucosus, surnamed Cunctator (c. 280 – 203 BC),
was a Roman statesman and general of the third century BC. He was consul
five times (233, 228, 215, 214, and 209 BC) and was appointed dictator in
221 and 217 BC. He was censor in 230 BC. His agnomen, Cunctator, usually
translated as “the delayer”, refers to the strategy that he employed
against Hannibal’s forces during the Second Punic War. Facing an
outstanding commander with superior numbers, he pursued a then-novel
strategy of targeting the enemy’s supply lines, and accepting only smaller
engagements on favourable ground, rather than risking his entire army on
direct confrontation with Hannibal himself. As a result, he is regarded as
the originator of many tactics used in guerrilla warfare.[1]
</p>
</div>
</div>

 <div id="outline-container-Locrians" class="outline-3">
 <h3 id="Locrians"> <span class="section-number-3">2.98.</span>  <a href="#Locrians">Locrians</a></h3>
 <div class="outline-text-3" id="text-Locrians">
 <p>
 <a href="https://en.wikipedia.org/wiki/Locrians">https://en.wikipedia.org/wiki/Locrians</a>
</p>

 <p>
The Locrians (Greek: Λοκροί, Locri) were an ancient Greek tribe that
inhabited the region of Locris in Central Greece, around Parnassus. They
spoke the Locrian dialect, a Doric-Northwest dialect, and were closely
related to their neighbouring tribes, the Phocians and the Dorians. They
were divided into two geographically distinct tribes, the western Ozolians
and the eastern Opuntians; their primary towns were Amphissa and Opus
respectively, and their most important colony was the city of Epizephyrian
Locris in Magna Graecia, which still bears the name “Locri”. Among others,
Ajax the Lesser and Patroclus were the most famous Locrian heroes, both
distinguished in the Trojan War; Zaleucus from Epizephyrian Locris devised
the first written Greek law code, the Locrian code.
</p>
</div>
</div>

 <div id="outline-container-Chiron-the-Centaur" class="outline-3">
 <h3 id="Chiron-the-Centaur"> <span class="section-number-3">2.99.</span>  <a href="#Chiron-the-Centaur">Chiron the Centaur</a></h3>
 <div class="outline-text-3" id="text-Chiron-the-Centaur">
 <p>
 <a href="https://en.wikipedia.org/wiki/Chiron">https://en.wikipedia.org/wiki/Chiron</a>
</p>

 <p>
In Greek mythology, Chiron ( <i>ˈkaɪrən</i> KY-rən; also Cheiron or Kheiron;
Ancient Greek: Χείρων, romanized: Kheírōn, lit. ’hand’)[1] was held to be
the superlative centaur amongst his brethren since he was called the
“wisest and justest of all the centaurs”.[2]
</p>

 <p>
Presumably, taught:
</p>
 <ol class="org-ol"> <li>Achilles</li>
 <li>Asclepius</li>
 <li>Jason</li>
</ol></div>
</div>

 <div id="outline-container-Messer-Annibale-Bentivoglio" class="outline-3">
 <h3 id="Messer-Annibale-Bentivoglio"> <span class="section-number-3">2.100.</span>  <a href="#Messer-Annibale-Bentivoglio">Messer Annibale Bentivoglio</a></h3>
 <div class="outline-text-3" id="text-Messer-Annibale-Bentivoglio">
 <p>
Probably, the Second, not the First:
 <a href="https://en.wikipedia.org/wiki/Annibale_II_Bentivoglio">https://en.wikipedia.org/wiki/Annibale_II_Bentivoglio</a>
</p>

 <p>
Annibale II Bentivoglio (1467[1] – June 1540) was an Italian condottiero,
who was shortly lord of Bologna in 1511–1512. He was the last member of
his family to hold power in the city. He was the son of Giovanni II
Bentivoglio.
</p>


 <p>
Bentivoglio Altarpiece by Lorenzo Costa, detail with the portrait of
Annibale II Bentivoglio. In 1487 he married Lucrezia d’Este. He served
Florence and fought against the French invasion of Charles VIII in 1494.
In 1500, in a changing of side ordered by his father, he paid 50,000
ducats to Gian Giacomo Trivulzio, French plenipotentiary in Milan, to save
his city from any attack.
</p>

 <p>
In 1506 Giovanni II was ousted from Bologna. Annibale and his brother
Ermes remained in the city in order to favour the family’s return, but in
vain. In 1511, thanks to Trivulzio’s intercession, he managed to return as
ruler. But he was able to maintain his position only until June 10, 1512,
after the French defeat at Ravenna.
</p>

 <p>
He took refuge in Ferrara, where he died in 1540. He is portrayed in
Lorenzo Costa the Elder’s Bentivoglio Altarpiece, commissioned by his
father in 1488.
</p>
</div>
</div>

 <div id="outline-container-Canneschi" class="outline-3">
 <h3 id="Canneschi"> <span class="section-number-3">2.101.</span>  <a href="#Canneschi">Canneschi</a></h3>
 <div class="outline-text-3" id="text-Canneschi">
 <p>
Some competitors to the Bentivoglio family?
</p>
</div>
</div>

 <div id="outline-container-Marcus-the-Philosopher-(Marcus-Aurelius?)" class="outline-3">
 <h3 id="Marcus-the-Philosopher-(Marcus-Aurelius?)"> <span class="section-number-3">2.102.</span>  <a href="#Marcus-the-Philosopher-(Marcus-Aurelius?)">Marcus the Philosopher (Marcus Aurelius?)</a></h3>
 <div class="outline-text-3" id="text-Marcus-the-Philosopher-(Marcus-Aurelius?)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Marcus_Aurelius">https://en.wikipedia.org/wiki/Marcus_Aurelius</a>
</p>

 <p>
Marcus Aurelius Antoninus ( <i>ɔːˈriːliəs</i> aw-REE-lee-əs;[2] 26 April 121 –
17 March 180) was Roman emperor from 161 to 180 and a Stoic philosopher.
He was the last of the rulers known as the Five Good Emperors (a term
coined some 13 centuries later by Niccolò Machiavelli), and the last
emperor of the Pax Romana, an age of relative peace and stability for the
Roman Empire lasting from 27 BC to 180 AD. He served as Roman consul in
140, 145, and 161.
</p>
</div>
</div>

 <div id="outline-container-Commodus-son-of-Marcus-Aurelius-(Lucius-Aelius-Aurelius-Commodus)" class="outline-3">
 <h3 id="Commodus-son-of-Marcus-Aurelius-(Lucius-Aelius-Aurelius-Commodus)"> <span class="section-number-3">2.103.</span>  <a href="#Commodus-son-of-Marcus-Aurelius-(Lucius-Aelius-Aurelius-Commodus)">Commodus son of Marcus Aurelius (Lucius Aelius Aurelius Commodus)</a></h3>
 <div class="outline-text-3" id="text-Commodus-son-of-Marcus-Aurelius-(Lucius-Aelius-Aurelius-Commodus)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Commodus">https://en.wikipedia.org/wiki/Commodus</a>
</p>

 <p>
Commodus ( <i>ˈkɒmədəs</i>;[4] 31 August 161 – 31 December 192) was a Roman
emperor who ruled from 176 to 192. He served jointly with his father
Marcus Aurelius from 176 until the latter’s death in 180, and thereafter
he reigned alone until his assassination. His reign is commonly thought of
as marking the end of a golden period of peace in the history of the Roman
Empire, known as the Pax Romana.
</p>
</div>
</div>

 <div id="outline-container-Pertinax-(Publius-Helvius-Pertinax)" class="outline-3">
 <h3 id="Pertinax-(Publius-Helvius-Pertinax)"> <span class="section-number-3">2.104.</span>  <a href="#Pertinax-(Publius-Helvius-Pertinax)">Pertinax (Publius Helvius Pertinax)</a></h3>
 <div class="outline-text-3" id="text-Pertinax-(Publius-Helvius-Pertinax)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Pertinax">https://en.wikipedia.org/wiki/Pertinax</a>
</p>

 <p>
Publius Helvius Pertinax ( <i>ˈpɜːrtɪnæks</i>; 1 August 126 – 28 March 193) was
Roman emperor for the first three months of 193. He succeeded Commodus to
become the first emperor during the tumultuous Year of the Five Emperors.
</p>
</div>
</div>

 <div id="outline-container-Julianus-(Marcus-Didius-Julianus)" class="outline-3">
 <h3 id="Julianus-(Marcus-Didius-Julianus)"> <span class="section-number-3">2.105.</span>  <a href="#Julianus-(Marcus-Didius-Julianus)">Julianus (Marcus Didius Julianus)</a></h3>
 <div class="outline-text-3" id="text-Julianus-(Marcus-Didius-Julianus)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Didius_Julianus">https://en.wikipedia.org/wiki/Didius_Julianus</a>
</p>

 <p>
Marcus Didius Julianus ( <i>ˈdɪdiəs</i>; 29 January 133 or 137 – 2 June 193)[3]
was Roman emperor for nine weeks from March to June 193, during the Year
of the Five Emperors. Julianus had a promising political career, governing
several provinces, including Dalmatia and Germania Inferior, and defeated
the Chauci and Chatti, two invading Germanic tribes. He was even appointed
to the consulship in 175 along with Pertinax as a reward, before being
demoted by Commodus. After this demotion, his early, promising political
career languished.
</p>
</div>
</div>

 <div id="outline-container-Severus-(Lucius-Septimius-Severus)" class="outline-3">
 <h3 id="Severus-(Lucius-Septimius-Severus)"> <span class="section-number-3">2.106.</span>  <a href="#Severus-(Lucius-Septimius-Severus)">Severus (Lucius Septimius Severus)</a></h3>
 <div class="outline-text-3" id="text-Severus-(Lucius-Septimius-Severus)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Septimius_Severus">https://en.wikipedia.org/wiki/Septimius_Severus</a>
</p>

 <p>
Lucius Septimius Severus (Latin: [sɛˈweːrʊs]; 11 April 145 – 4
February 211) was Roman emperor from 193 to 211. He was born in Leptis
Magna (present-day Al-Khums, Libya) in the Roman province of Africa. As a
young man he advanced through the customary succession of offices under
the reigns of Marcus Aurelius and Commodus. Severus seized power after the
death of the emperor Pertinax in 193 during the Year of the Five Emperors.
</p>
</div>
</div>

 <div id="outline-container-Caracalla-son-of-Severus-(Marcus-Aurelius-Antoninus-%22Caracalla%22)" class="outline-3">
 <h3 id="Caracalla-son-of-Severus-(Marcus-Aurelius-Antoninus-%22Caracalla%22)"> <span class="section-number-3">2.107.</span>  <a href="#Caracalla-son-of-Severus-(Marcus-Aurelius-Antoninus-%22Caracalla%22)">Caracalla son of Severus (Marcus Aurelius Antoninus “Caracalla”)</a></h3>
 <div class="outline-text-3" id="text-Caracalla-son-of-Severus-(Marcus-Aurelius-Antoninus-%22Caracalla%22)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Caracalla">https://en.wikipedia.org/wiki/Caracalla</a>
</p>

 <p>
Marcus Aurelius Antoninus “Caracalla” ( <i>ˌkærəˈkælə</i>;[2] born Lucius
Septimius Bassianus, 4 April 188 – 8 April 217) was Roman emperor from 198
to 217. He was a member of the Severan dynasty, the elder son of Emperor
Septimius Severus and Empress Julia Domna.
</p>
</div>
</div>

 <div id="outline-container-Macrinus-(Marcus-Opellius-Macrinus)" class="outline-3">
 <h3 id="Macrinus-(Marcus-Opellius-Macrinus)"> <span class="section-number-3">2.108.</span>  <a href="#Macrinus-(Marcus-Opellius-Macrinus)">Macrinus (Marcus Opellius Macrinus)</a></h3>
 <div class="outline-text-3" id="text-Macrinus-(Marcus-Opellius-Macrinus)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Macrinus">https://en.wikipedia.org/wiki/Macrinus</a>
</p>

 <p>
Marcus Opellius Macrinus ( <i>məˈkraɪnəs</i>; c. 165 – June 218) was Roman
emperor from April 217 to June 218, reigning jointly with his young son
Diadumenianus. As a member of the equestrian class, he became the first
emperor who did not hail from the senatorial class and also the first
emperor who never visited Rome during his reign.
</p>
</div>
</div>

 <div id="outline-container-Heliogabalus-(Marcus-Aurelius-Antoninus-%22Elagabalus%22)" class="outline-3">
 <h3 id="Heliogabalus-(Marcus-Aurelius-Antoninus-%22Elagabalus%22)"> <span class="section-number-3">2.109.</span>  <a href="#Heliogabalus-(Marcus-Aurelius-Antoninus-%22Elagabalus%22)">Heliogabalus (Marcus Aurelius Antoninus “Elagabalus”)</a></h3>
 <div class="outline-text-3" id="text-Heliogabalus-(Marcus-Aurelius-Antoninus-%22Elagabalus%22)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Elagabalus">https://en.wikipedia.org/wiki/Elagabalus</a>
</p>

 <p>
Marcus Aurelius Antoninus “Elagabalus” ( <i>ˌɛləˈɡæbələs</i> EL-ə-GAB-ə-ləs;[a]
born Sextus Varius Avitus Bassianus, c. 204 – 11/12 March 222), was Roman
emperor from 218 to 222, while he was still a teenager. His short reign
was conspicuous for sex scandals and religious controversy.
</p>
</div>
</div>

 <div id="outline-container-(Severus)-Alexander" class="outline-3">
 <h3 id="(Severus)-Alexander"> <span class="section-number-3">2.110.</span>  <a href="#(Severus)-Alexander">(Severus) Alexander</a></h3>
 <div class="outline-text-3" id="text-(Severus)-Alexander">
 <p>
 <a href="https://en.wikipedia.org/wiki/Severus_Alexander">https://en.wikipedia.org/wiki/Severus_Alexander</a>
</p>

 <p>
Marcus Aurelius Severus Alexander[1] (1 October 208 – 21/22 March 235) was
a Roman emperor, who reigned from 222 until 235. He was the last emperor
from the Severan dynasty. He succeeded his slain cousin Elagabalus in 222.
Alexander himself was eventually assassinated, and his death marked the
beginning of the events of the Third Century Crisis, which included nearly
fifty years of civil war, foreign invasion, and the collapse of the
monetary economy.
</p>
</div>
</div>

 <div id="outline-container-Maximinus-(Gaius-Julius-Verus-Maximinus-%22Thrax%22)" class="outline-3">
 <h3 id="Maximinus-(Gaius-Julius-Verus-Maximinus-%22Thrax%22)"> <span class="section-number-3">2.111.</span>  <a href="#Maximinus-(Gaius-Julius-Verus-Maximinus-%22Thrax%22)">Maximinus (Gaius Julius Verus Maximinus “Thrax”)</a></h3>
 <div class="outline-text-3" id="text-Maximinus-(Gaius-Julius-Verus-Maximinus-%22Thrax%22)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Maximinus_Thrax">https://en.wikipedia.org/wiki/Maximinus_Thrax</a>
</p>

 <p>
Gaius Julius Verus Maximinus “Thrax” (“the Thracian”; c. 173 – 238) was
Roman emperor from 235 to 238.
</p>

 <p>
His father was an accountant in the governor’s office and sprang from
ancestors who were Carpi (a Dacian tribe), a people whom Diocletian would
eventually drive from their ancient abode (in Dacia) and transfer to
Pannonia.[4] Maximinus was the commander of the Legio IV Italica when
Severus Alexander was assassinated by his own troops in 235. The Pannonian
army then elected Maximinus emperor.[5]
</p>
</div>
</div>

 <div id="outline-container-Illyria" class="outline-3">
 <h3 id="Illyria"> <span class="section-number-3">2.112.</span>  <a href="#Illyria">Illyria</a></h3>
 <div class="outline-text-3" id="text-Illyria">
 <p>
The geographical term Illyris (distinct from Illyria) was sometimes used
to define approximately the area of northern and central Albania down to
the Aoös valley (modern Vjosa), including in most periods much of the
lakeland area.[6][7] In Roman times the terms Illyria / Illyris /
Illyricum were extended from the territory that was roughly located in the
area of the south-eastern Adriatic coast (modern Albania and Montenegro)
and its hinterland, to a broader region stretching between the Adriatic
Sea and the Danube, and from the upper reaches of the Adriatic down to the
Ardiaei.[8][9][10]
</p>

 <p>
From about mid-1st century BC the term Illyricum was used by the Romans
for the province of the Empire that stretched along the eastern Adriatic
coast north of the Drin river, south of which the Roman province of
Macedonia began.[11]
</p>
</div>
</div>

 <div id="outline-container-Niger-(Gaius-Pescennius-Niger)" class="outline-3">
 <h3 id="Niger-(Gaius-Pescennius-Niger)"> <span class="section-number-3">2.113.</span>  <a href="#Niger-(Gaius-Pescennius-Niger)">Niger (Gaius Pescennius Niger)</a></h3>
 <div class="outline-text-3" id="text-Niger-(Gaius-Pescennius-Niger)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Pescennius_Niger">https://en.wikipedia.org/wiki/Pescennius_Niger</a>
</p>

 <p>
Gaius Pescennius Niger (c. 135 – 194) was Roman Emperor from 193 to 194
during the Year of the Five Emperors. He claimed the imperial throne in
response to the murder of Pertinax and the elevation of Didius Julianus,
but was defeated by a rival claimant, Septimius Severus, and killed while
attempting to flee from Antioch.
</p>
</div>
</div>

 <div id="outline-container-Albinus-Emperor" class="outline-3">
 <h3 id="Albinus-Emperor"> <span class="section-number-3">2.114.</span>  <a href="#Albinus-Emperor">Albinus Emperor</a></h3>
 <div class="outline-text-3" id="text-Albinus-Emperor">
 <p>
 <a href="https://en.wikipedia.org/wiki/Clodius_Albinus">https://en.wikipedia.org/wiki/Clodius_Albinus</a>
</p>

 <p>
Decimus Clodius Albinus (c. 150 – 19 February 197) was a Roman imperial
pretender between 193 and 197. He was proclaimed emperor by the legions in
Britain and Hispania (the Iberian Peninsula, comprising modern Spain and
Portugal) after the murder of Pertinax in 193 (known as the “Year of the
Five Emperors”), and proclaimed himself emperor again in 196, before his
final defeat and death the following year.[1]
</p>
</div>
</div>

 <div id="outline-container-siege-of-Aquileja" class="outline-3">
 <h3 id="siege-of-Aquileja"> <span class="section-number-3">2.115.</span>  <a href="#siege-of-Aquileja">siege of Aquileja</a></h3>
 <div class="outline-text-3" id="text-siege-of-Aquileja">
 <p>
Aquileia is a city-town at the north coast of Adriatic sea.
Was important. During the siege, Maximinus was KIA.
</p>
</div>
</div>

 <div id="outline-container-Soldan" class="outline-3">
 <h3 id="Soldan"> <span class="section-number-3">2.116.</span>  <a href="#Soldan">Soldan</a></h3>
 <div class="outline-text-3" id="text-Soldan">
 <p>
I am not very sure, but seemingly, the Sultan of Egypt.
</p>

 <p>
A consistent accession process occurred with every new Mamluk sultan.[151]
It more or less involved the election of a sultan by a council of emirs
and mamluks (who would give him an oath of loyalty), the sultan’s
assumption of the monarchical title al-malik, a state-organized procession
through Cairo at the head of which was the sultan, and the reading of the
sultan’s name in the khutbah (Friday prayer sermon).[151] The process was
not formalized and the electoral body was never defined, but typically
consisted of the emirs and mamluks of whatever Mamluk faction held sway;
usurpations of the throne by rival factions were relatively common.
</p>
</div>
</div>

 <div id="outline-container-Guelf-and-Ghibelline" class="outline-3">
 <h3 id="Guelf-and-Ghibelline"> <span class="section-number-3">2.117.</span>  <a href="#Guelf-and-Ghibelline">Guelf and Ghibelline</a></h3>
 <div class="outline-text-3" id="text-Guelf-and-Ghibelline">
 <p>
 <a href="https://en.wikipedia.org/wiki/Guelphs_and_Ghibellines#White_and_Black_Guelphs">https://en.wikipedia.org/wiki/Guelphs_and_Ghibellines#White_and_Black_Guelphs</a>
</p>

 <p>
Guelf, Broadly speaking, supported the Pope.
Ghibelline, broadly speaking, supported the Holy Roman Emperor.
</p>
</div>
</div>

 <div id="outline-container-defeat-at-Vaila-(of-the-Venetian-Republic)" class="outline-3">
 <h3 id="defeat-at-Vaila-(of-the-Venetian-Republic)"> <span class="section-number-3">2.118.</span>  <a href="#defeat-at-Vaila-(of-the-Venetian-Republic)">defeat at Vaila (of the Venetian Republic)</a></h3>
 <div class="outline-text-3" id="text-defeat-at-Vaila-(of-the-Venetian-Republic)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Battle_of_Agnadello">https://en.wikipedia.org/wiki/Battle_of_Agnadello</a>
</p>

 <p>
The Battle of Agnadello, also known as Vailà, was one of the most
significant battles of the War of the League of Cambrai and one of the
major battles of the Italian Wars.
</p>

 <p>
Louis XII won over the Republic of Venice.
</p>
</div>
</div>

 <div id="outline-container-Pandolfo-Petrucci,-Lord-of-Siena" class="outline-3">
 <h3 id="Pandolfo-Petrucci,-Lord-of-Siena"> <span class="section-number-3">2.119.</span>  <a href="#Pandolfo-Petrucci,-Lord-of-Siena">Pandolfo Petrucci, Lord of Siena</a></h3>
 <div class="outline-text-3" id="text-Pandolfo-Petrucci,-Lord-of-Siena">
 <p>
 <a href="https://en.wikipedia.org/wiki/Pandolfo_Petrucci">https://en.wikipedia.org/wiki/Pandolfo_Petrucci</a>
Pandolfo Petrucci (14 February 1452 – 21 May 1512) was a ruler of the
Italian Republic of Siena during the Renaissance.
</p>
</div>
</div>

 <div id="outline-container-Messer-Niccolo-Vitelli" class="outline-3">
 <h3 id="Messer-Niccolo-Vitelli"> <span class="section-number-3">2.120.</span>  <a href="#Messer-Niccolo-Vitelli">Messer Niccolo Vitelli</a></h3>
 <div class="outline-text-3" id="text-Messer-Niccolo-Vitelli">
 <p>
 <a href="https://en.wikipedia.org/wiki/Niccol%C3%B2_Vitelli">https://en.wikipedia.org/wiki/Niccol%C3%B2_Vitelli</a>
</p>

 <p>
Niccolò Vitelli (1414–1486) was an Italian condottiero of the Vitelli
family from Città di Castello.
</p>

 <p>
The son of Giovanni Vitelli and Maddalena dei Marchesi di Petriolo, he was
orphaned and grew up under the tutelage of his uncle Vitellozzo who
introduced him into the political life of the area. He was podestà in some
of the major Italian cities, such as Florence, Siena, Genoa and Perugia.
</p>
</div>
</div>

 <div id="outline-container-Citt%C3%A0-di-Castello" class="outline-3">
 <h3 id="Citt%C3%A0-di-Castello"> <span class="section-number-3">2.121.</span>  <a href="#Citt%C3%A0-di-Castello">Città di Castello</a></h3>
 <div class="outline-text-3" id="text-Citt%C3%A0-di-Castello">
 <p>
 <a href="https://en.wikipedia.org/wiki/Citt%C3%A0_di_Castello">https://en.wikipedia.org/wiki/Citt%C3%A0_di_Castello</a>
</p>

 <p>
Città di Castello (Italian pronunciation: [tʃitˈta ddi kasˈtɛllo]);[2]
“Castle Town”) is a city and comune in the province of Perugia, in the
northern part of Umbria.[3] It is situated on a slope of the Apennines, on
the flood plain along the upper part of the river Tiber. The city is 56 km
(35 mi) north of Perugia and 104 km (65 mi) south of Cesena on the
motorway SS 3 bis.
</p>

 <p>
Under Pope Martin V in 1420 it was taken by the condottiero Braccio da
Montone. Later Niccolò Vitelli, aided by Florence and Milan, became
absolute ruler or tiranno. Antonio da Sangallo the Younger built an
extensive palace for the Vitelli family.
</p>

 <p>
In 1474 Sixtus IV sent his nephew Cardinal Giuliano della Rovere, later
Pope Julius II, to rule the town. After fruitless negotiations he laid
siege to the city, but Vitelli did not surrender until he knew that the
command of the army had been given to Duke Federico III da Montefeltro.
The following year Vitelli tried unsuccessfully to recapture the city.
Cesare Borgia through a conspiracy in Senigallia ordered Vitelli was
strangled in the evening of 12/31/1502 and Città di Castello were added to
the Papal possessions.
</p>
</div>
</div>

 <div id="outline-container-Guido-Ubaldo,-Duke-of-Urbino" class="outline-3">
 <h3 id="Guido-Ubaldo,-Duke-of-Urbino"> <span class="section-number-3">2.122.</span>  <a href="#Guido-Ubaldo,-Duke-of-Urbino">Guido Ubaldo, Duke of Urbino</a></h3>
 <div class="outline-text-3" id="text-Guido-Ubaldo,-Duke-of-Urbino">
 <p>
 <a href="https://en.wikipedia.org/wiki/Guidobaldo_da_Montefeltro">https://en.wikipedia.org/wiki/Guidobaldo_da_Montefeltro</a>
</p>

 <p>
Guidobaldo (Guido Ubaldo) da Montefeltro (25 January 1472 – 10 April
1508), also known as Guidobaldo I, was an Italian condottiero and the Duke
of Urbino from 1482 to 1508.
</p>

 <p>
He fought as one of Pope Alexander VI’s captains alongside the French
troops of King Charles VIII of France during the latter’s invasion of
southern Italy; later, he was hired by the Republic of Venice against
Charles. In 1496, while fighting for the pope near Bracciano, Guidobaldo
was taken prisoner by the Orsini and the Vitelli, being freed the
following year.
</p>

 <p>
Guidobaldo was forced to flee Urbino in 1502 to escape the armies of
Cesare Borgia, but returned after the death of Cesare Borgia’s father,
Pope Alexander VI, in 1503.
</p>
</div>
</div>

 <div id="outline-container-her-husband-Count-Girolamo" class="outline-3">
 <h3 id="her-husband-Count-Girolamo"> <span class="section-number-3">2.123.</span>  <a href="#her-husband-Count-Girolamo">her husband Count Girolamo</a></h3>
 <div class="outline-text-3" id="text-her-husband-Count-Girolamo">
 <p>
 <a href="https://en.wikipedia.org/wiki/Girolamo_Riario">https://en.wikipedia.org/wiki/Girolamo_Riario</a>
</p>

 <p>
Girolamo Riario (1443 – 14 April 1488) was Lord of Imola (from 1473) and
Forlì (from 1480). He served as Captain General of the Church under his
uncle Pope Sixtus IV. He took part in the 1478 Pazzi conspiracy against
the Medici, and was assassinated 10 years later by members of the
Forlivese Orsi family.
</p>
</div>
</div>

 <div id="outline-container-The-war-of-Ferdinand-of-Aragon-on-Granada" class="outline-3">
 <h3 id="The-war-of-Ferdinand-of-Aragon-on-Granada"> <span class="section-number-3">2.124.</span>  <a href="#The-war-of-Ferdinand-of-Aragon-on-Granada">The war of Ferdinand of Aragon on Granada</a></h3>
 <div class="outline-text-3" id="text-The-war-of-Ferdinand-of-Aragon-on-Granada">
 <p>
 <a href="https://en.wikipedia.org/wiki/Treaty_of_Granada_(1491)">https://en.wikipedia.org/wiki/Treaty_of_Granada_(1491)</a>
</p>
</div>
</div>

 <div id="outline-container-Barons-of-Castile" class="outline-3">
 <h3 id="Barons-of-Castile"> <span class="section-number-3">2.125.</span>  <a href="#Barons-of-Castile">Barons of Castile</a></h3>
 <div class="outline-text-3" id="text-Barons-of-Castile">
 <p>
Haven’t found much about them.
</p>
</div>
</div>

 <div id="outline-container-the-Moors-(a.k.a.-Maurs?)" class="outline-3">
 <h3 id="the-Moors-(a.k.a.-Maurs?)"> <span class="section-number-3">2.126.</span>  <a href="#the-Moors-(a.k.a.-Maurs?)">the Moors (a.k.a. Maurs?)</a></h3>
 <div class="outline-text-3" id="text-the-Moors-(a.k.a.-Maurs?)">
 <p>
 <a href="https://en.wikipedia.org/wiki/Emirate_of_Granada">https://en.wikipedia.org/wiki/Emirate_of_Granada</a>
</p>

 <p>
The Emirate of Granada (Arabic: إمارة غرﻧﺎﻃﺔ, romanized: Imārat Ġarnāṭah),
also known as the Nasrid Kingdom of Granada (Spanish: Reino Nazarí de
Granada), was an Islamic realm in southern Iberia during the Late Middle
Ages. It was the last independent Muslim state in Western Europe.[2]
</p>
</div>
</div>

 <div id="outline-container-Messer-Bernabo-of-Milan" class="outline-3">
 <h3 id="Messer-Bernabo-of-Milan"> <span class="section-number-3">2.127.</span>  <a href="#Messer-Bernabo-of-Milan">Messer Bernabo of Milan</a></h3>
 <div class="outline-text-3" id="text-Messer-Bernabo-of-Milan">
 <p>
Haven’t actually found who he was.
</p>
</div>
</div>

 <div id="outline-container-Messer-Antonio-of-Venafro,-as-Minister-of-Pandolfo-Petrucci,-Lord-of-Siena" class="outline-3">
 <h3 id="Messer-Antonio-of-Venafro,-as-Minister-of-Pandolfo-Petrucci,-Lord-of-Siena"> <span class="section-number-3">2.128.</span>  <a href="#Messer-Antonio-of-Venafro,-as-Minister-of-Pandolfo-Petrucci,-Lord-of-Siena">Messer Antonio of Venafro, as Minister of Pandolfo Petrucci, Lord of Siena</a></h3>
 <div class="outline-text-3" id="text-Messer-Antonio-of-Venafro,-as-Minister-of-Pandolfo-Petrucci,-Lord-of-Siena">
 <p>
 <a href="https://en.wikipedia.org/wiki/Antonio_de_Venafro">https://en.wikipedia.org/wiki/Antonio_de_Venafro</a>
</p>

 <p>
Da Venafro was born in 1459 in Venafro, Molise. He moved to Siena and
attended the university there graduating in jurisprudence. In 1488 Venafro
was elected professor of law at the University of Siena. In November 1493
Antonio was elected Appellate Judge. As such he was arrested by the
avant-garde of Charles VIII and forced to follow them in their march to
Rome. He was freed a few days later only by a direct order of the King
himself. A trusted adviser and private secretary of the Lord of Siena,
Pandolfo Petrucci, he was named by the latter counselor and prime
minister. In the month of October 1502 Venafro represented Pandolfo
Petrucci at the Diet of La Magione; and later he went to Imola with Paolo
Orsini, where a peace agreement was signed between Cesare Borgia and the
conspirators of La Magione represented by Paolo Orsini.
</p>
</div>
</div>

 <div id="outline-container-Father-Luke,-who-is-attached-to-the-Court-of-the-present-Emperor-Maximilian" class="outline-3">
 <h3 id="Father-Luke,-who-is-attached-to-the-Court-of-the-present-Emperor-Maximilian"> <span class="section-number-3">2.129.</span>  <a href="#Father-Luke,-who-is-attached-to-the-Court-of-the-present-Emperor-Maximilian">Father Luke, who is attached to the Court of the present Emperor Maximilian</a></h3>
 <div class="outline-text-3" id="text-Father-Luke,-who-is-attached-to-the-Court-of-the-present-Emperor-Maximilian">
 <p>
Haven’t found who he was.
</p>
</div>
</div>

 <div id="outline-container-Philip-V-of-Macedon,-not-the-father-of-Alexander-the-Great,-but-he-who-was-vanquished-by-Titus-Quintius" class="outline-3">
 <h3 id="Philip-V-of-Macedon,-not-the-father-of-Alexander-the-Great,-but-he-who-was-vanquished-by-Titus-Quintius"> <span class="section-number-3">2.130.</span>  <a href="#Philip-V-of-Macedon,-not-the-father-of-Alexander-the-Great,-but-he-who-was-vanquished-by-Titus-Quintius">Philip V of Macedon, not the father of Alexander the Great, but he who was vanquished by Titus Quintius</a></h3>
 <div class="outline-text-3" id="text-Philip-V-of-Macedon,-not-the-father-of-Alexander-the-Great,-but-he-who-was-vanquished-by-Titus-Quintius">
 <p>
 <a href="https://en.wikipedia.org/wiki/Philip_V_of_Macedon">https://en.wikipedia.org/wiki/Philip_V_of_Macedon</a>
</p>

 <p>
Philip V (Greek: Φίλιππος Philippos; 238–179 BC) was king (Basileus) of
Macedonia from 221 to 179 BC. Philip’s reign was principally marked by an
unsuccessful struggle with the emerging power of the Roman Republic. He
would lead Macedon against Rome in the First and Second Macedonian Wars,
losing the latter but allying with Rome in the Roman-Seleucid War towards
the end of his reign.
</p>
</div>
</div>

 <div id="outline-container-Titus-Quintius" class="outline-3">
 <h3 id="Titus-Quintius"> <span class="section-number-3">2.131.</span>  <a href="#Titus-Quintius">Titus Quintius</a></h3>
 <div class="outline-text-3" id="text-Titus-Quintius">
 <p>
 <a href="https://en.wikipedia.org/wiki/Titus_Quinctius_Flamininus">https://en.wikipedia.org/wiki/Titus_Quinctius_Flamininus</a>
</p>

 <p>
Titus Quinctius Flamininus (c. 228 – 174 BC) was a Roman politician and
general instrumental in the Roman conquest of Greece.[1]
</p>
</div>
</div>

 <div id="outline-container-Messer-Giovanni-Bentivoglio" class="outline-3">
 <h3 id="Messer-Giovanni-Bentivoglio"> <span class="section-number-3">2.132.</span>  <a href="#Messer-Giovanni-Bentivoglio">Messer Giovanni Bentivoglio</a></h3>
 <div class="outline-text-3" id="text-Messer-Giovanni-Bentivoglio">
 <p>
 <a href="https://en.wikipedia.org/wiki/Giovanni_II_Bentivoglio">https://en.wikipedia.org/wiki/Giovanni_II_Bentivoglio</a>
</p>

 <p>
Giovanni II Bentivoglio (12 February 1443 – 15 February 1508) was an
Italian nobleman who ruled as tyrant of Bologna from 1463 until 1506. He
had no formal position, but held power as the city’s “first citizen.” The
Bentivoglio family ruled over Bologna from 1443, and repeatedly attempted
to consolidate their hold of the Signoria of the city.
</p>
</div>
</div>

 <div id="outline-container-Kingdom-of-Naples" class="outline-3">
 <h3 id="Kingdom-of-Naples"> <span class="section-number-3">2.133.</span>  <a href="#Kingdom-of-Naples">Kingdom of Naples</a></h3>
 <div class="outline-text-3" id="text-Kingdom-of-Naples">
 <p>
 <a href="https://en.wikipedia.org/wiki/Kingdom_of_Naples">https://en.wikipedia.org/wiki/Kingdom_of_Naples</a>
</p>

 <p>
The Kingdom of Naples (Latin: Regnum Neapolitanum; Italian: Regno di
Napoli; Neapolitan: Regno ’e Napule), also known as the Kingdom of Sicily,
was a state that ruled the part of the Italian Peninsula south of the
Papal States between 1282 and 1816. It was established by the War of the
Sicilian Vespers (1282–1302), when the island of Sicily revolted and was
conquered by the Crown of Aragon, becoming a separate kingdom also called
the Kingdom of Sicily.[3]
</p>
</div>
</div>

 <div id="outline-container-battle-of-Ravenna,-where-the-Spanish-infantry-confronted-the-German-companies" class="outline-3">
 <h3 id="battle-of-Ravenna,-where-the-Spanish-infantry-confronted-the-German-companies"> <span class="section-number-3">2.134.</span>  <a href="#battle-of-Ravenna,-where-the-Spanish-infantry-confronted-the-German-companies">battle of Ravenna, where the Spanish infantry confronted the German companies</a></h3>
 <div class="outline-text-3" id="text-battle-of-Ravenna,-where-the-Spanish-infantry-confronted-the-German-companies">
 <p>
 <a href="https://en.wikipedia.org/wiki/Battle_of_Ravenna_(1512)">https://en.wikipedia.org/wiki/Battle_of_Ravenna_(1512)</a>
</p>

 <p>
The Battle of Ravenna, fought on 11 April 1512, was a major battle of the
War of the League of Cambrai. It pitted forces of the Holy League against
France and their Ferrarese allies. Although the French and Ferrarese
eliminated the Papal-Spanish forces as a serious threat, their
extraordinary triumph was overshadowed by the loss of their brilliant
young general Gaston of Foix. The victory therefore did not help them
secure northern Italy. The French withdrew entirely from Italy in the
summer of 1512, as Swiss mercenaries hired by Pope Julius II and Imperial
troops under Emperor Maximilian I arrived in Lombardy. The Sforza were
restored to power in Milan.
</p>
</div>
</div>
</section> <section id="outline-container-Notes" class="outline-2"> <h2 id="Notes"> <span class="section-number-2">3.</span>  <a href="#Notes">Notes</a></h2>
 <div class="outline-text-2" id="text-Notes">
</div>

 <div id="outline-container-Chapter-1-Of-the-Various-Kinds-of-Princedom,-and-of-the-Ways-in-Which-They-Are-Acquired" class="outline-3">
 <h3 id="Chapter-1-Of-the-Various-Kinds-of-Princedom,-and-of-the-Ways-in-Which-They-Are-Acquired"> <span class="section-number-3">3.1.</span>  <a href="#Chapter-1-Of-the-Various-Kinds-of-Princedom,-and-of-the-Ways-in-Which-They-Are-Acquired">Chapter 1 Of the Various Kinds of Princedom, and of the Ways in Which They Are Acquired</a></h3>
 <div class="outline-text-3" id="text-Chapter-1-Of-the-Various-Kinds-of-Princedom,-and-of-the-Ways-in-Which-They-Are-Acquired">
</div>

 <div id="outline-container-Kinds-of-States" class="outline-4">
 <h4 id="Kinds-of-States"> <span class="section-number-4">3.1.1.</span>  <a href="#Kinds-of-States">Kinds of States</a></h4>
 <div class="outline-text-4" id="text-Kinds-of-States">
 <ol class="org-ol"> <li>Republics</li>
 <li>Princedoms
 <ol class="org-ol"> <li>Hereditary</li>
 <li> <p>
New
</p>
 <ol class="org-ol"> <li>Wholly new
 <ol class="org-ol"> <li>Previously fee</li>
 <li>Previously princedoms</li>
</ol></li>
 <li>Limbs joined on to the hereditary possessions (Mixed princedom)
 <ol class="org-ol"> <li>Previously free</li>
 <li>Previously princedoms</li>
</ol></li>
</ol> <p>
+. Acquired
</p>
 <ol class="org-ol"> <li class="off"> <input type="checkbox"></input> With own force</li>
 <li class="off"> <input type="checkbox"></input> With others’ force</li>
 <li class="off"> <input type="checkbox"></input> With luck</li>
 <li class="off"> <input type="checkbox"></input> With merit</li>
</ol></li>
</ol></li>
</ol></div>
</div>
</div>

 <div id="outline-container-Chapter-2-Of-Hereditary-Princedoms" class="outline-3">
 <h3 id="Chapter-2-Of-Hereditary-Princedoms"> <span class="section-number-3">3.2.</span>  <a href="#Chapter-2-Of-Hereditary-Princedoms">Chapter 2 Of Hereditary Princedoms</a></h3>
 <div class="outline-text-3" id="text-Chapter-2-Of-Hereditary-Princedoms">
</div>

 <div id="outline-container-I-say,-then,-that-hereditary-States,-accustomed-to-the-family-of-their-Prince,-are-maintained-with-far-less-difficulty-than-new-States," class="outline-4">
 <h4 id="I-say,-then,-that-hereditary-States,-accustomed-to-the-family-of-their-Prince,-are-maintained-with-far-less-difficulty-than-new-States,"> <span class="section-number-4">3.2.1.</span>  <a href="#I-say,-then,-that-hereditary-States,-accustomed-to-the-family-of-their-Prince,-are-maintained-with-far-less-difficulty-than-new-States,">I say, then, that hereditary States, accustomed to the family of their Prince, are maintained with far less difficulty than new States,</a></h4>
 <div class="outline-text-4" id="text-I-say,-then,-that-hereditary-States,-accustomed-to-the-family-of-their-Prince,-are-maintained-with-far-less-difficulty-than-new-States,">
 <p>
This is that “Traditional authority” by Max Weber:  <a href="https://en.wikipedia.org/wiki/Traditional_authority">https://en.wikipedia.org/wiki/Traditional_authority</a>
</p>
</div>
</div>

 <div id="outline-container-one-change-always-leaves-a-dovetail-into-which-another-will-fit" class="outline-4">
 <h4 id="one-change-always-leaves-a-dovetail-into-which-another-will-fit"> <span class="section-number-4">3.2.2.</span>  <a href="#one-change-always-leaves-a-dovetail-into-which-another-will-fit">one change always leaves a dovetail into which another will fit</a></h4>
 <div class="outline-text-4" id="text-one-change-always-leaves-a-dovetail-into-which-another-will-fit">
</div>
</div>
</div>

 <div id="outline-container-Chapter-3-Of-Mixed-Princedoms" class="outline-3">
 <h3 id="Chapter-3-Of-Mixed-Princedoms"> <span class="section-number-3">3.3.</span>  <a href="#Chapter-3-Of-Mixed-Princedoms">Chapter 3 Of Mixed Princedoms</a></h3>
 <div class="outline-text-3" id="text-Chapter-3-Of-Mixed-Princedoms">
</div>

 <div id="outline-container-cause-common-to-all-new-States,-namely,-that-men,-thinking-to-better-their-condition,-are-always-ready-to-change-masters" class="outline-4">
 <h4 id="cause-common-to-all-new-States,-namely,-that-men,-thinking-to-better-their-condition,-are-always-ready-to-change-masters"> <span class="section-number-4">3.3.1.</span>  <a href="#cause-common-to-all-new-States,-namely,-that-men,-thinking-to-better-their-condition,-are-always-ready-to-change-masters">cause common to all new States, namely, that men, thinking to better their condition, are always ready to change masters</a></h4>
 <div class="outline-text-4" id="text-cause-common-to-all-new-States,-namely,-that-men,-thinking-to-better-their-condition,-are-always-ready-to-change-masters">
 <p>
So, a state with turmoil is more likely to continue being in turmoil? Is this what Putin relied upon, thinking that the DPR and LPR will be willing to change allegiance? Assuming that the fall of the Soviet Union is considered a “change of masters”?
</p>
</div>
</div>

 <div id="outline-container-Prince-cannot-avoid-giving-offence-to-his-new-subjects" class="outline-4">
 <h4 id="Prince-cannot-avoid-giving-offence-to-his-new-subjects"> <span class="section-number-4">3.3.2.</span>  <a href="#Prince-cannot-avoid-giving-offence-to-his-new-subjects">Prince cannot avoid giving offence to his new subjects</a></h4>
 <div class="outline-text-4" id="text-Prince-cannot-avoid-giving-offence-to-his-new-subjects">
 <p>
Like, limiting the use of Russian Language.
</p>
</div>
</div>

 <div id="outline-container-And-in-this-way-you-may-find-that-you-have-enemies-in-all-those-whom-you-have-injured-in-seizing-the-Princedom,-yet-cannot-keep-the-friendship-of-those-who-helped-you-to-gain-it;-since-you-can-neither-reward-them-as-they-expect,-nor-yet,-being-under-obligations-to-them,-use-violent-remedies-against-them." class="outline-4">
 <h4 id="And-in-this-way-you-may-find-that-you-have-enemies-in-all-those-whom-you-have-injured-in-seizing-the-Princedom,-yet-cannot-keep-the-friendship-of-those-who-helped-you-to-gain-it;-since-you-can-neither-reward-them-as-they-expect,-nor-yet,-being-under-obligations-to-them,-use-violent-remedies-against-them."> <span class="section-number-4">3.3.3.</span>  <a href="#And-in-this-way-you-may-find-that-you-have-enemies-in-all-those-whom-you-have-injured-in-seizing-the-Princedom,-yet-cannot-keep-the-friendship-of-those-who-helped-you-to-gain-it;-since-you-can-neither-reward-them-as-they-expect,-nor-yet,-being-under-obligations-to-them,-use-violent-remedies-against-them.">And in this way you may find that you have enemies in all those whom you have injured in seizing the Princedom, yet cannot keep the friendship of those who helped you to gain it; since you can neither reward them as they expect, nor yet, being under obligations to them, use violent remedies against them.</a></h4>
 <div class="outline-text-4" id="text-And-in-this-way-you-may-find-that-you-have-enemies-in-all-those-whom-you-have-injured-in-seizing-the-Princedom,-yet-cannot-keep-the-friendship-of-those-who-helped-you-to-gain-it;-since-you-can-neither-reward-them-as-they-expect,-nor-yet,-being-under-obligations-to-them,-use-violent-remedies-against-them.">
 <p>
Can we imply that those who “helped to gain it”, are more Ukrainian-enthusiastic Ukrainians? They would want total domination of Ukrainian as a language, and thus “cannot be rewarded”.
</p>
</div>
</div>

 <div id="outline-container-For-the-Prince,-using-the-rebellion-as-a-pretext,-will-not-scruple-to-secure-himself-by-punishing-the-guilty,-bringing-the-suspected-to-trial,-and-otherwise-strengthening-his-position-in-the-points-where-it-was-weak." class="outline-4">
 <h4 id="For-the-Prince,-using-the-rebellion-as-a-pretext,-will-not-scruple-to-secure-himself-by-punishing-the-guilty,-bringing-the-suspected-to-trial,-and-otherwise-strengthening-his-position-in-the-points-where-it-was-weak."> <span class="section-number-4">3.3.4.</span>  <a href="#For-the-Prince,-using-the-rebellion-as-a-pretext,-will-not-scruple-to-secure-himself-by-punishing-the-guilty,-bringing-the-suspected-to-trial,-and-otherwise-strengthening-his-position-in-the-points-where-it-was-weak.">For the Prince, using the rebellion as a pretext, will not scruple to secure himself by punishing the guilty, bringing the suspected to trial, and otherwise strengthening his position in the points where it was weak.</a></h4>
 <div class="outline-text-4" id="text-For-the-Prince,-using-the-rebellion-as-a-pretext,-will-not-scruple-to-secure-himself-by-punishing-the-guilty,-bringing-the-suspected-to-trial,-and-otherwise-strengthening-his-position-in-the-points-where-it-was-weak.">
 <p>
The Kievan government is already promising a lot of punishments for the “collaborators”.
</p>
</div>
</div>

 <div id="outline-container-States-which-upon-their-acquisition-are-joined-on-to-the-ancient-dominions-of-the-Prince-who-acquires-them,-are-either-of-the-same-Province-and-tongue-as-the-people-of-these-dominions,-or-they-are-not." class="outline-4">
 <h4 id="States-which-upon-their-acquisition-are-joined-on-to-the-ancient-dominions-of-the-Prince-who-acquires-them,-are-either-of-the-same-Province-and-tongue-as-the-people-of-these-dominions,-or-they-are-not."> <span class="section-number-4">3.3.5.</span>  <a href="#States-which-upon-their-acquisition-are-joined-on-to-the-ancient-dominions-of-the-Prince-who-acquires-them,-are-either-of-the-same-Province-and-tongue-as-the-people-of-these-dominions,-or-they-are-not.">States which upon their acquisition are joined on to the ancient dominions of the Prince who acquires them, are either of the same Province and tongue as the people of these dominions, or they are not.</a></h4>
 <div class="outline-text-4" id="text-States-which-upon-their-acquisition-are-joined-on-to-the-ancient-dominions-of-the-Prince-who-acquires-them,-are-either-of-the-same-Province-and-tongue-as-the-people-of-these-dominions,-or-they-are-not.">
 <ol class="org-ol"> <li>This is, basically, nation-state way of thinking. The year is 1532, but they already know what a nation-state is.</li>
 <li>Can DPR and LPR be considered “being of the same Province and tongue”? Not sure.</li>
</ol></div>
</div>

 <div id="outline-container-When-they-are,-there-is-a-great-ease-in-retaining-them,-especially-when-they-have-not-been-accustomed-to-live-in-freedom." class="outline-4">
 <h4 id="When-they-are,-there-is-a-great-ease-in-retaining-them,-especially-when-they-have-not-been-accustomed-to-live-in-freedom."> <span class="section-number-4">3.3.6.</span>  <a href="#When-they-are,-there-is-a-great-ease-in-retaining-them,-especially-when-they-have-not-been-accustomed-to-live-in-freedom.">When they are, there is a great ease in retaining them, especially when they have not been accustomed to live in freedom.</a></h4>
 <div class="outline-text-4" id="text-When-they-are,-there-is-a-great-ease-in-retaining-them,-especially-when-they-have-not-been-accustomed-to-live-in-freedom.">
 <ol class="org-ol"> <li>Has the Donbass been accustomed to living in freedom?</li>
 <li>Keeping them in the state of DPR and LPR, is it really “retaining”?</li>
</ol></div>
</div>

 <div id="outline-container-To-hold-them-securely-itis-enough-to-have-rooted-out-the-line-of-the-reigning-Prince" class="outline-4">
 <h4 id="To-hold-them-securely-itis-enough-to-have-rooted-out-the-line-of-the-reigning-Prince"> <span class="section-number-4">3.3.7.</span>  <a href="#To-hold-them-securely-itis-enough-to-have-rooted-out-the-line-of-the-reigning-Prince">To hold them securely itis enough to have rooted out the line of the reigning Prince</a></h4>
 <div class="outline-text-4" id="text-To-hold-them-securely-itis-enough-to-have-rooted-out-the-line-of-the-reigning-Prince">
 <p>
Okay, first problem. “Root out” the line of “Ukrainian Government” has not happened.
</p>
</div>
</div>

 <div id="outline-container-if-in-other-respects-the-old-condition-of-things-be-continued,-and-there-be-no-discordance-in-their-customs,-men-live-peaceably-with-one-another" class="outline-4">
 <h4 id="if-in-other-respects-the-old-condition-of-things-be-continued,-and-there-be-no-discordance-in-their-customs,-men-live-peaceably-with-one-another"> <span class="section-number-4">3.3.8.</span>  <a href="#if-in-other-respects-the-old-condition-of-things-be-continued,-and-there-be-no-discordance-in-their-customs,-men-live-peaceably-with-one-another">if in other respects the old condition of things be continued, and there be no discordance in their customs, men live peaceably with one another</a></h4>
 <div class="outline-text-4" id="text-if-in-other-respects-the-old-condition-of-things-be-continued,-and-there-be-no-discordance-in-their-customs,-men-live-peaceably-with-one-another">
 <p>
How much exactly was it possible to keep the “old condition of things” to be continued? Seemingly, not entirely.
</p>
</div>
</div>

 <div id="outline-container-Brittany,-Burgundy,-Gascony,-and-Normandy,-which-have-so-long-been-united-to-France" class="outline-4">
 <h4 id="Brittany,-Burgundy,-Gascony,-and-Normandy,-which-have-so-long-been-united-to-France"> <span class="section-number-4">3.3.9.</span>  <a href="#Brittany,-Burgundy,-Gascony,-and-Normandy,-which-have-so-long-been-united-to-France">Brittany, Burgundy, Gascony, and Normandy, which have so long been united to France</a></h4>
 <div class="outline-text-4" id="text-Brittany,-Burgundy,-Gascony,-and-Normandy,-which-have-so-long-been-united-to-France">
 <p>
How much of their “independent spirit” is still there? I know that Brittany still speaks their own Gaelic language, which is neither Roman, nor German. What about Burgundy, Gascony, and Normandy
</p>
</div>
</div>

 <div id="outline-container-But-when-States-are-acquired-in-a-country-differing-in-language,-usages,-and-laws,-difficulties-multiply" class="outline-4">
 <h4 id="But-when-States-are-acquired-in-a-country-differing-in-language,-usages,-and-laws,-difficulties-multiply"> <span class="section-number-4">3.3.10.</span>  <a href="#But-when-States-are-acquired-in-a-country-differing-in-language,-usages,-and-laws,-difficulties-multiply">But when States are acquired in a country differing in language, usages, and laws, difficulties multiply</a></h4>
 <div class="outline-text-4" id="text-But-when-States-are-acquired-in-a-country-differing-in-language,-usages,-and-laws,-difficulties-multiply">
 <p>
So, there are  <span class="underline">two</span> problems here actually.
</p>

 <ol class="org-ol"> <li>How do you actually estimate, or measure, that degree of “differing”? Seemingly, Putin sincerely believed some numbers that are not accurate.</li>
 <li>How would you “retain their customs”, if modern States expect a uniformity of laws?</li>
</ol></div>
</div>

 <div id="outline-container-best-and-most-efficacious-methods-for-dealing-with-such-a-State,-is-for-the-Prince-who-acquires-it-to-go-and-dwell-there-in-person" class="outline-4">
 <h4 id="best-and-most-efficacious-methods-for-dealing-with-such-a-State,-is-for-the-Prince-who-acquires-it-to-go-and-dwell-there-in-person"> <span class="section-number-4">3.3.11.</span>  <a href="#best-and-most-efficacious-methods-for-dealing-with-such-a-State,-is-for-the-Prince-who-acquires-it-to-go-and-dwell-there-in-person">best and most efficacious methods for dealing with such a State, is for the Prince who acquires it to go and dwell there in person</a></h4>
 <div class="outline-text-4" id="text-best-and-most-efficacious-methods-for-dealing-with-such-a-State,-is-for-the-Prince-who-acquires-it-to-go-and-dwell-there-in-person">
 <p>
Note: Putin did not do that.
</p>
</div>

 <ol class="org-ol"> <li> <a id="This-course-has-been-followed-by-the-Turk-with-regard-to-Greece"></a> <a href="#This-course-has-been-followed-by-the-Turk-with-regard-to-Greece">This course has been followed by the Turk with regard to Greece</a> <br></br> <div class="outline-text-5" id="text-This-course-has-been-followed-by-the-Turk-with-regard-to-Greece">
 <p>
Hmm… Constantinople had fallen in 1453, and later Constantinople became Istanbul. 1532-1453=79. People who have remembered that are mostly dead, but the memory probably remains. 2022-79=1943.
</p>
</div>
</li>

 <li> <a id="Moreover,-the-Province-in-which-you-take-up-your-abode-is-not-pillaged-by-your-officers"></a> <a href="#Moreover,-the-Province-in-which-you-take-up-your-abode-is-not-pillaged-by-your-officers">Moreover, the Province in which you take up your abode is not pillaged by your officers</a> <br></br> <div class="outline-text-5" id="text-Moreover,-the-Province-in-which-you-take-up-your-abode-is-not-pillaged-by-your-officers">
 <p>
Comments are superfluous.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Another-excellent-expedient-is-to-send-colonies-into-one-or-two-places,-so-that-these-may-become,-as-it-were,-the-keys-of-the-Province" class="outline-4">
 <h4 id="Another-excellent-expedient-is-to-send-colonies-into-one-or-two-places,-so-that-these-may-become,-as-it-were,-the-keys-of-the-Province"> <span class="section-number-4">3.3.12.</span>  <a href="#Another-excellent-expedient-is-to-send-colonies-into-one-or-two-places,-so-that-these-may-become,-as-it-were,-the-keys-of-the-Province">Another excellent expedient is to send colonies into one or two places, so that these may become, as it were, the keys of the Province</a></h4>
 <div class="outline-text-4" id="text-Another-excellent-expedient-is-to-send-colonies-into-one-or-two-places,-so-that-these-may-become,-as-it-were,-the-keys-of-the-Province">
 <p>
Note that flats have been sold out widely in Crimea. Did this tactic actually work? Anyway, it does not seem to have worked for the Donbass.
</p>
</div>
</div>

 <div id="outline-container-A-Prince-need-not-spend-much-on-colonies.-He-can-send-them-out-and-support-them-at-little-or-no-charge-to-himself,-and-the-only-persons-to-whom-he-gives-offence-are-those-whom-he-deprives-of-their-fields-and-houses-to-bestow-them-on-the-new-inhabitants." class="outline-4">
 <h4 id="A-Prince-need-not-spend-much-on-colonies.-He-can-send-them-out-and-support-them-at-little-or-no-charge-to-himself,-and-the-only-persons-to-whom-he-gives-offence-are-those-whom-he-deprives-of-their-fields-and-houses-to-bestow-them-on-the-new-inhabitants."> <span class="section-number-4">3.3.13.</span>  <a href="#A-Prince-need-not-spend-much-on-colonies.-He-can-send-them-out-and-support-them-at-little-or-no-charge-to-himself,-and-the-only-persons-to-whom-he-gives-offence-are-those-whom-he-deprives-of-their-fields-and-houses-to-bestow-them-on-the-new-inhabitants.">A Prince need not spend much on colonies. He can send them out and support them at little or no charge to himself, and the only persons to whom he gives offence are those whom he deprives of their fields and houses to bestow them on the new inhabitants.</a></h4>
 <div class="outline-text-4" id="text-A-Prince-need-not-spend-much-on-colonies.-He-can-send-them-out-and-support-them-at-little-or-no-charge-to-himself,-and-the-only-persons-to-whom-he-gives-offence-are-those-whom-he-deprives-of-their-fields-and-houses-to-bestow-them-on-the-new-inhabitants.">
 <p>
One of the things that are hard to imagine in the 21st century. “Give them land”, haha. Try to imagine giving out free land to your own citizens!
</p>

 <p>
On the other hand, if you start massively building property on the territory of a new princedom, and give it out cheaply, it might work out. Cf. Israel building settlements on the West Bank, and the Turk massively selling flats and other property to everyone on the Northern Cyprus.
</p>
</div>
</div>

 <div id="outline-container-if-instead-of-colonies-you-send-troops,-the-cost-is-vastly-greater,-and-the-whole-revenues-of-the-country-are-spent-in-guarding-it;-so-that-the-gain-becomes-a-loss,-and-much-deeper-offence-is-given" class="outline-4">
 <h4 id="if-instead-of-colonies-you-send-troops,-the-cost-is-vastly-greater,-and-the-whole-revenues-of-the-country-are-spent-in-guarding-it;-so-that-the-gain-becomes-a-loss,-and-much-deeper-offence-is-given"> <span class="section-number-4">3.3.14.</span>  <a href="#if-instead-of-colonies-you-send-troops,-the-cost-is-vastly-greater,-and-the-whole-revenues-of-the-country-are-spent-in-guarding-it;-so-that-the-gain-becomes-a-loss,-and-much-deeper-offence-is-given">if instead of colonies you send troops, the cost is vastly greater, and the whole revenues of the country are spent in guarding it; so that the gain becomes a loss, and much deeper offence is given</a></h4>
 <div class="outline-text-4" id="text-if-instead-of-colonies-you-send-troops,-the-cost-is-vastly-greater,-and-the-whole-revenues-of-the-country-are-spent-in-guarding-it;-so-that-the-gain-becomes-a-loss,-and-much-deeper-offence-is-given">
 <p>
Which is effectively happening with so many of the regions “pacified” in the recent years.
</p>
</div>
</div>

 <div id="outline-container-The-Prince-who-establishes-himself-in-a-Province-whose-laws-and-language-differ-from-those-of-his-own-people,-ought-also-to-make-himself-the-head-and-protector-of-his-feebler-neighbours,-and-endeavour-to-weaken-the-stronger,-and-must-see-that-by-no-accident-shall-any-other-stranger-as-powerful-as-himself-find-an-entrance-there." class="outline-4">
 <h4 id="The-Prince-who-establishes-himself-in-a-Province-whose-laws-and-language-differ-from-those-of-his-own-people,-ought-also-to-make-himself-the-head-and-protector-of-his-feebler-neighbours,-and-endeavour-to-weaken-the-stronger,-and-must-see-that-by-no-accident-shall-any-other-stranger-as-powerful-as-himself-find-an-entrance-there."> <span class="section-number-4">3.3.15.</span>  <a href="#The-Prince-who-establishes-himself-in-a-Province-whose-laws-and-language-differ-from-those-of-his-own-people,-ought-also-to-make-himself-the-head-and-protector-of-his-feebler-neighbours,-and-endeavour-to-weaken-the-stronger,-and-must-see-that-by-no-accident-shall-any-other-stranger-as-powerful-as-himself-find-an-entrance-there.">The Prince who establishes himself in a Province whose laws and language differ from those of his own people, ought also to make himself the head and protector of his feebler neighbours, and endeavour to weaken the stronger, and must see that by no accident shall any other stranger as powerful as himself find an entrance there.</a></h4>
 <div class="outline-text-4" id="text-The-Prince-who-establishes-himself-in-a-Province-whose-laws-and-language-differ-from-those-of-his-own-people,-ought-also-to-make-himself-the-head-and-protector-of-his-feebler-neighbours,-and-endeavour-to-weaken-the-stronger,-and-must-see-that-by-no-accident-shall-any-other-stranger-as-powerful-as-himself-find-an-entrance-there.">
 <p>
I think, the “feebler neighbours” here would be the Crimean Tatars. Putin, instead of suppressing the Mejlis, should have given them all power they wanted. Then he would have had obtained a relatively weak, but extremely loyal and vocal supporting group, who would have been crucially interested in staying in Russia forever. “Divide and Conquer”
</p>
</div>
</div>

 <div id="outline-container-realizing-what-the-physicians-tell-us-of-hectic-fever," class="outline-4">
 <h4 id="realizing-what-the-physicians-tell-us-of-hectic-fever,"> <span class="section-number-4">3.3.16.</span>  <a href="#realizing-what-the-physicians-tell-us-of-hectic-fever,">realizing what the physicians tell us of hectic fever,</a></h4>
 <div class="outline-text-4" id="text-realizing-what-the-physicians-tell-us-of-hectic-fever,">
 <p>
I wonder, what is the original word for “physician”? What kind of medical services were even available in 1532?
</p>
</div>
</div>

 <div id="outline-container-But-no-sooner-was-he-in-Milan-than-he-took-a-contrary-course,-in-helping-Pope-Alexander-to-occupy-Romagna;-not-perceiving-that-in-seconding-this-enterprise-he-weakened-himself-by-alienating-friends-and-those-who-had-thrown-themselves-into-his-arms" class="outline-4">
 <h4 id="But-no-sooner-was-he-in-Milan-than-he-took-a-contrary-course,-in-helping-Pope-Alexander-to-occupy-Romagna;-not-perceiving-that-in-seconding-this-enterprise-he-weakened-himself-by-alienating-friends-and-those-who-had-thrown-themselves-into-his-arms"> <span class="section-number-4">3.3.17.</span>  <a href="#But-no-sooner-was-he-in-Milan-than-he-took-a-contrary-course,-in-helping-Pope-Alexander-to-occupy-Romagna;-not-perceiving-that-in-seconding-this-enterprise-he-weakened-himself-by-alienating-friends-and-those-who-had-thrown-themselves-into-his-arms">But no sooner was he in Milan than he took a contrary course, in helping Pope Alexander to occupy Romagna; not perceiving that in seconding this enterprise he weakened himself by alienating friends and those who had thrown themselves into his arms</a></h4>
 <div class="outline-text-4" id="text-But-no-sooner-was-he-in-Milan-than-he-took-a-contrary-course,-in-helping-Pope-Alexander-to-occupy-Romagna;-not-perceiving-that-in-seconding-this-enterprise-he-weakened-himself-by-alienating-friends-and-those-who-had-thrown-themselves-into-his-arms">
 <p>
Is Putin’s endeavour in Syria a similar example? Alienating friends? But who are those friends? Iran?
</p>
</div>
</div>

 <div id="outline-container-The-wish-to-acquire-is-no-doubt-a-natural-and-common-sentiment,-and-when-men-attemptthings-within-their-power,-they-will-always-be-praised-rather-than-blamed.-But-when-they-persist-in-attempts-that-are-beyond-their-power,-mishaps-and-blame-ensue." class="outline-4">
 <h4 id="The-wish-to-acquire-is-no-doubt-a-natural-and-common-sentiment,-and-when-men-attemptthings-within-their-power,-they-will-always-be-praised-rather-than-blamed.-But-when-they-persist-in-attempts-that-are-beyond-their-power,-mishaps-and-blame-ensue."> <span class="section-number-4">3.3.18.</span>  <a href="#The-wish-to-acquire-is-no-doubt-a-natural-and-common-sentiment,-and-when-men-attemptthings-within-their-power,-they-will-always-be-praised-rather-than-blamed.-But-when-they-persist-in-attempts-that-are-beyond-their-power,-mishaps-and-blame-ensue.">The wish to acquire is no doubt a natural and common sentiment, and when men attemptthings within their power, they will always be praised rather than blamed. But when they persist in attempts that are beyond their power, mishaps and blame ensue.</a></h4>
 <div class="outline-text-4" id="text-The-wish-to-acquire-is-no-doubt-a-natural-and-common-sentiment,-and-when-men-attemptthings-within-their-power,-they-will-always-be-praised-rather-than-blamed.-But-when-they-persist-in-attempts-that-are-beyond-their-power,-mishaps-and-blame-ensue.">
 <p>
Hence, we see some not very bright perspective.
</p>
</div>
</div>

 <div id="outline-container-If-France,-therefore,-with-her-own-forces-could-have-attacked-Naples,-she-should-have-done-so.-If-she-could-not,-she-ought-not-to-have-divided-it." class="outline-4">
 <h4 id="If-France,-therefore,-with-her-own-forces-could-have-attacked-Naples,-she-should-have-done-so.-If-she-could-not,-she-ought-not-to-have-divided-it."> <span class="section-number-4">3.3.19.</span>  <a href="#If-France,-therefore,-with-her-own-forces-could-have-attacked-Naples,-she-should-have-done-so.-If-she-could-not,-she-ought-not-to-have-divided-it.">If France, therefore, with her own forces could have attacked Naples, she should have done so. If she could not, she ought not to have divided it.</a></h4>
 <div class="outline-text-4" id="text-If-France,-therefore,-with-her-own-forces-could-have-attacked-Naples,-she-should-have-done-so.-If-she-could-not,-she-ought-not-to-have-divided-it.">
 <p>
Interesting. So Machiavelli is making a claim that “dividing” is usually a bad idea. It is interesting to compare this with the modern world, where there have been many divided states.
</p>

 <p>
In any case, dividing the Donbass between the NRs and the rest seems to be a bad idea.
</p>
</div>
</div>

 <div id="outline-container-war-is-not-so-to-be-avoided,-but-is-only-deferred-to-your-disadvantage." class="outline-4">
 <h4 id="war-is-not-so-to-be-avoided,-but-is-only-deferred-to-your-disadvantage."> <span class="section-number-4">3.3.20.</span>  <a href="#war-is-not-so-to-be-avoided,-but-is-only-deferred-to-your-disadvantage.">war is not so to be avoided, but is only deferred to your disadvantage.</a></h4>
 <div class="outline-text-4" id="text-war-is-not-so-to-be-avoided,-but-is-only-deferred-to-your-disadvantage.">
 <p>
Seems like the story of 2014 and 2022.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-4-Why-the-Kingdom-of-Darius,-Conquered-by-Alexander,-Did-Not,-on-Alexander%E2%80%99s-Death,-Rebel-Against-His-Successors" class="outline-3">
 <h3 id="Chapter-4-Why-the-Kingdom-of-Darius,-Conquered-by-Alexander,-Did-Not,-on-Alexander%E2%80%99s-Death,-Rebel-Against-His-Successors"> <span class="section-number-3">3.4.</span>  <a href="#Chapter-4-Why-the-Kingdom-of-Darius,-Conquered-by-Alexander,-Did-Not,-on-Alexander%E2%80%99s-Death,-Rebel-Against-His-Successors">Chapter 4 Why the Kingdom of Darius, Conquered by Alexander, Did Not, on Alexander’s Death, Rebel Against His Successors</a></h3>
 <div class="outline-text-3" id="text-Chapter-4-Why-the-Kingdom-of-Darius,-Conquered-by-Alexander,-Did-Not,-on-Alexander%E2%80%99s-Death,-Rebel-Against-His-Successors">
</div>

 <div id="outline-container-If-any-one-think-this-strange-and-ask-the-cause,-I-answer,-that-all-the-Princedoms-of-which-we-have-record-have-been-governed-in-one-or-other-of-two-ways,-either-by-a-sole-Prince,-all-others-being-his-servants-permitted-by-his-grace-and-favour-to-assist-in-governing-the-kingdom-as-his-ministers;-or-else,-by-a-Prince-with-his-Barons-who-hold-their-rank,-not-by-the-favour-of-a-superior-Lord,-but-by-antiquity-of-blood,-and-who-have-States-and-subjects-of-their-own-who-recognize-them-as-their-rulers-and-entertain-for-them-a-natural-affection." class="outline-4">
 <h4 id="If-any-one-think-this-strange-and-ask-the-cause,-I-answer,-that-all-the-Princedoms-of-which-we-have-record-have-been-governed-in-one-or-other-of-two-ways,-either-by-a-sole-Prince,-all-others-being-his-servants-permitted-by-his-grace-and-favour-to-assist-in-governing-the-kingdom-as-his-ministers;-or-else,-by-a-Prince-with-his-Barons-who-hold-their-rank,-not-by-the-favour-of-a-superior-Lord,-but-by-antiquity-of-blood,-and-who-have-States-and-subjects-of-their-own-who-recognize-them-as-their-rulers-and-entertain-for-them-a-natural-affection."> <span class="section-number-4">3.4.1.</span>  <a href="#If-any-one-think-this-strange-and-ask-the-cause,-I-answer,-that-all-the-Princedoms-of-which-we-have-record-have-been-governed-in-one-or-other-of-two-ways,-either-by-a-sole-Prince,-all-others-being-his-servants-permitted-by-his-grace-and-favour-to-assist-in-governing-the-kingdom-as-his-ministers;-or-else,-by-a-Prince-with-his-Barons-who-hold-their-rank,-not-by-the-favour-of-a-superior-Lord,-but-by-antiquity-of-blood,-and-who-have-States-and-subjects-of-their-own-who-recognize-them-as-their-rulers-and-entertain-for-them-a-natural-affection.">If any one think this strange and ask the cause, I answer, that all the Princedoms of which we have record have been governed in one or other of two ways, either by a sole Prince, all others being his servants permitted by his grace and favour to assist in governing the kingdom as his ministers; or else, by a Prince with his Barons who hold their rank, not by the favour of a superior Lord, but by antiquity of blood, and who have States and subjects of their own who recognize them as their rulers and entertain for them a natural affection.</a></h4>
 <div class="outline-text-4" id="text-If-any-one-think-this-strange-and-ask-the-cause,-I-answer,-that-all-the-Princedoms-of-which-we-have-record-have-been-governed-in-one-or-other-of-two-ways,-either-by-a-sole-Prince,-all-others-being-his-servants-permitted-by-his-grace-and-favour-to-assist-in-governing-the-kingdom-as-his-ministers;-or-else,-by-a-Prince-with-his-Barons-who-hold-their-rank,-not-by-the-favour-of-a-superior-Lord,-but-by-antiquity-of-blood,-and-who-have-States-and-subjects-of-their-own-who-recognize-them-as-their-rulers-and-entertain-for-them-a-natural-affection.">
 <p>
Seems like a very modern reasoning on Unitary States versus Federations.
</p>

 <p>
Unitary states are hard to conquer, but once conquered, they do not rebel.
Federations do the opposite. Splitting the opinion is easy, but completely subverting is hard, as there are many centres of legitimacy.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-5-How-Cities-or-Provinces-Which-Before-Their-Acquisition-Have-Lived-Under-Their-Own-Laws-Are-To-Be-Governed" class="outline-3">
 <h3 id="Chapter-5-How-Cities-or-Provinces-Which-Before-Their-Acquisition-Have-Lived-Under-Their-Own-Laws-Are-To-Be-Governed"> <span class="section-number-3">3.5.</span>  <a href="#Chapter-5-How-Cities-or-Provinces-Which-Before-Their-Acquisition-Have-Lived-Under-Their-Own-Laws-Are-To-Be-Governed">Chapter 5 How Cities or Provinces Which Before Their Acquisition Have Lived Under Their Own Laws Are To Be Governed</a></h3>
 <div class="outline-text-3" id="text-Chapter-5-How-Cities-or-Provinces-Which-Before-Their-Acquisition-Have-Lived-Under-Their-Own-Laws-Are-To-Be-Governed">
</div>

 <div id="outline-container-When-a-newly-acquired-State-has-been-accustomed,-as-I-have-said,-to-live-under-its-own-laws-and-in-freedom,-there-are-three-methods-whereby-it-may-be-held." class="outline-4">
 <h4 id="When-a-newly-acquired-State-has-been-accustomed,-as-I-have-said,-to-live-under-its-own-laws-and-in-freedom,-there-are-three-methods-whereby-it-may-be-held."> <span class="section-number-4">3.5.1.</span>  <a href="#When-a-newly-acquired-State-has-been-accustomed,-as-I-have-said,-to-live-under-its-own-laws-and-in-freedom,-there-are-three-methods-whereby-it-may-be-held.">When a newly acquired State has been accustomed, as I have said, to live under its own laws and in freedom, there are three methods whereby it may be held.</a></h4>
 <div class="outline-text-4" id="text-When-a-newly-acquired-State-has-been-accustomed,-as-I-have-said,-to-live-under-its-own-laws-and-in-freedom,-there-are-three-methods-whereby-it-may-be-held.">
 <ol class="org-ol"> <li>destroy it</li>
 <li>go and reside there in person</li>
 <li>suffer it to live on under its own laws, subjecting it to a tribute, and entrusting its government to a few of the inhabitants who will keep the rest your friends</li>
</ol> <p>
Which one did Putin choose? The third one.
</p>
</div>
</div>

 <div id="outline-container-For,-in-truth,-there-is-no-sure-way-of-holding-other-than-by-destroying," class="outline-4">
 <h4 id="For,-in-truth,-there-is-no-sure-way-of-holding-other-than-by-destroying,"> <span class="section-number-4">3.5.2.</span>  <a href="#For,-in-truth,-there-is-no-sure-way-of-holding-other-than-by-destroying,">For, in truth, there is no sure way of holding other than by destroying,</a></h4>
 <div class="outline-text-4" id="text-For,-in-truth,-there-is-no-sure-way-of-holding-other-than-by-destroying,">
 <p>
A bitter truth.
</p>
</div>
</div>

 <div id="outline-container-For-if-it-should-rebel,-it-can-always-screen-itself-under-the-name-of-liberty-and-its-ancient-laws,-which-no-length-of-time,-nor-any-benefits-conferred-will-ever-cause-it-to-forget" class="outline-4">
 <h4 id="For-if-it-should-rebel,-it-can-always-screen-itself-under-the-name-of-liberty-and-its-ancient-laws,-which-no-length-of-time,-nor-any-benefits-conferred-will-ever-cause-it-to-forget"> <span class="section-number-4">3.5.3.</span>  <a href="#For-if-it-should-rebel,-it-can-always-screen-itself-under-the-name-of-liberty-and-its-ancient-laws,-which-no-length-of-time,-nor-any-benefits-conferred-will-ever-cause-it-to-forget">For if it should rebel, it can always screen itself under the name of liberty and its ancient laws, which no length of time, nor any benefits conferred will ever cause it to forget</a></h4>
 <div class="outline-text-4" id="text-For-if-it-should-rebel,-it-can-always-screen-itself-under-the-name-of-liberty-and-its-ancient-laws,-which-no-length-of-time,-nor-any-benefits-conferred-will-ever-cause-it-to-forget">
 <p>
Commentary superfluous.
</p>
</div>
</div>

 <div id="outline-container-Pisa-rose-against-the-Florentines-after-a-hundred-years-of-servitude" class="outline-4">
 <h4 id="Pisa-rose-against-the-Florentines-after-a-hundred-years-of-servitude"> <span class="section-number-4">3.5.4.</span>  <a href="#Pisa-rose-against-the-Florentines-after-a-hundred-years-of-servitude">Pisa rose against the Florentines after a hundred years of servitude</a></h4>
 <div class="outline-text-4" id="text-Pisa-rose-against-the-Florentines-after-a-hundred-years-of-servitude">
 <p>
We still have hope.
</p>
</div>
</div>

 <div id="outline-container-If,-however,-the-newly-acquired-City-or-Province-has-been-accustomed-to-live-under-a-Prince,-and-his-line-is-extinguished,-it-will-be-impossible-for-the-citizens,-used,-on-the-one-hand,-to-obey,-and-deprived,-on-the-other,-of-their-old-ruler,-to-agree-to-choose-a-leader-from-among-themselves;-and-as-they-know-not-how-to-live-as-freemen,-and-are-therefore-slow-to-take-up-arms,-a-stranger-may-readily-gain-them-over-and-attach-them-to-his-cause." class="outline-4">
 <h4 id="If,-however,-the-newly-acquired-City-or-Province-has-been-accustomed-to-live-under-a-Prince,-and-his-line-is-extinguished,-it-will-be-impossible-for-the-citizens,-used,-on-the-one-hand,-to-obey,-and-deprived,-on-the-other,-of-their-old-ruler,-to-agree-to-choose-a-leader-from-among-themselves;-and-as-they-know-not-how-to-live-as-freemen,-and-are-therefore-slow-to-take-up-arms,-a-stranger-may-readily-gain-them-over-and-attach-them-to-his-cause."> <span class="section-number-4">3.5.5.</span>  <a href="#If,-however,-the-newly-acquired-City-or-Province-has-been-accustomed-to-live-under-a-Prince,-and-his-line-is-extinguished,-it-will-be-impossible-for-the-citizens,-used,-on-the-one-hand,-to-obey,-and-deprived,-on-the-other,-of-their-old-ruler,-to-agree-to-choose-a-leader-from-among-themselves;-and-as-they-know-not-how-to-live-as-freemen,-and-are-therefore-slow-to-take-up-arms,-a-stranger-may-readily-gain-them-over-and-attach-them-to-his-cause.">If, however, the newly acquired City or Province has been accustomed to live under a Prince, and his line is extinguished, it will be impossible for the citizens, used, on the one hand, to obey, and deprived, on the other, of their old ruler, to agree to choose a leader from among themselves; and as they know not how to live as freemen, and are therefore slow to take up arms, a stranger may readily gain them over and attach them to his cause.</a></h4>
 <div class="outline-text-4" id="text-If,-however,-the-newly-acquired-City-or-Province-has-been-accustomed-to-live-under-a-Prince,-and-his-line-is-extinguished,-it-will-be-impossible-for-the-citizens,-used,-on-the-one-hand,-to-obey,-and-deprived,-on-the-other,-of-their-old-ruler,-to-agree-to-choose-a-leader-from-among-themselves;-and-as-they-know-not-how-to-live-as-freemen,-and-are-therefore-slow-to-take-up-arms,-a-stranger-may-readily-gain-them-over-and-attach-them-to-his-cause.">
 <p>
But this one is not very hopeful. Also, the important bit here is “taking arms”.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-6-Of-New-Princedoms-Which-a-Prince-Acquires-With-His-Own-Arms-and-by-Merit" class="outline-3">
 <h3 id="Chapter-6-Of-New-Princedoms-Which-a-Prince-Acquires-With-His-Own-Arms-and-by-Merit"> <span class="section-number-3">3.6.</span>  <a href="#Chapter-6-Of-New-Princedoms-Which-a-Prince-Acquires-With-His-Own-Arms-and-by-Merit">Chapter 6 Of New Princedoms Which a Prince Acquires With His Own Arms and by Merit</a></h3>
 <div class="outline-text-3" id="text-Chapter-6-Of-New-Princedoms-Which-a-Prince-Acquires-With-His-Own-Arms-and-by-Merit">
</div>

 <div id="outline-container-men-for-the-most-part-follow-in-the-footsteps-and-imitate-the-actions-of-others,-and-yet-are-unable-to-adhere-exactly-to-those-paths-which-others-have-taken" class="outline-4">
 <h4 id="men-for-the-most-part-follow-in-the-footsteps-and-imitate-the-actions-of-others,-and-yet-are-unable-to-adhere-exactly-to-those-paths-which-others-have-taken"> <span class="section-number-4">3.6.1.</span>  <a href="#men-for-the-most-part-follow-in-the-footsteps-and-imitate-the-actions-of-others,-and-yet-are-unable-to-adhere-exactly-to-those-paths-which-others-have-taken">men for the most part follow in the footsteps and imitate the actions of others, and yet are unable to adhere exactly to those paths which others have taken</a></h4>
 <div class="outline-text-4" id="text-men-for-the-most-part-follow-in-the-footsteps-and-imitate-the-actions-of-others,-and-yet-are-unable-to-adhere-exactly-to-those-paths-which-others-have-taken">
 <p>
So, do not be afraid to follow other’s example, and be unoriginal. If you have Virtu, you will make your own path anyway.
</p>
</div>
</div>

 <div id="outline-container-Romulus-that-he-found-no-home-in-Alba" class="outline-4">
 <h4 id="Romulus-that-he-found-no-home-in-Alba"> <span class="section-number-4">3.6.2.</span>  <a href="#Romulus-that-he-found-no-home-in-Alba">Romulus that he found no home in Alba</a></h4>
 <div class="outline-text-4" id="text-Romulus-that-he-found-no-home-in-Alba">
 <p>
That “Alba Longa” is  <span class="underline">not</span>
</p>
</div>
</div>

 <div id="outline-container-They-who-come-to-the-Princedom,-as-these-did,-by-virtuous-paths,-acquire-with-difficulty,-but-keep-with-ease." class="outline-4">
 <h4 id="They-who-come-to-the-Princedom,-as-these-did,-by-virtuous-paths,-acquire-with-difficulty,-but-keep-with-ease."> <span class="section-number-4">3.6.3.</span>  <a href="#They-who-come-to-the-Princedom,-as-these-did,-by-virtuous-paths,-acquire-with-difficulty,-but-keep-with-ease.">They who come to the Princedom, as these did, by virtuous paths, acquire with difficulty, but keep with ease.</a></h4>
 <div class="outline-text-4" id="text-They-who-come-to-the-Princedom,-as-these-did,-by-virtuous-paths,-acquire-with-difficulty,-but-keep-with-ease.">
 <p>
No millionaires from the slums.
</p>
</div>
</div>

 <div id="outline-container-Hence-it-comes-that-all-armed-Prophets-have-been-victorious,-and-all-unarmed-Prophets-have-been-destroyed." class="outline-4">
 <h4 id="Hence-it-comes-that-all-armed-Prophets-have-been-victorious,-and-all-unarmed-Prophets-have-been-destroyed."> <span class="section-number-4">3.6.4.</span>  <a href="#Hence-it-comes-that-all-armed-Prophets-have-been-victorious,-and-all-unarmed-Prophets-have-been-destroyed.">Hence it comes that all armed Prophets have been victorious, and all unarmed Prophets have been destroyed.</a></h4>
 <div class="outline-text-4" id="text-Hence-it-comes-that-all-armed-Prophets-have-been-victorious,-and-all-unarmed-Prophets-have-been-destroyed.">
 <p>
What about Gandhi?
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-7-Of-New-Princedoms-Acquired-By-the-Aid-of-Others-and-By-Good-Fortune" class="outline-3">
 <h3 id="Chapter-7-Of-New-Princedoms-Acquired-By-the-Aid-of-Others-and-By-Good-Fortune"> <span class="section-number-3">3.7.</span>  <a href="#Chapter-7-Of-New-Princedoms-Acquired-By-the-Aid-of-Others-and-By-Good-Fortune">Chapter 7 Of New Princedoms Acquired By the Aid of Others and By Good Fortune</a></h3>
 <div class="outline-text-3" id="text-Chapter-7-Of-New-Princedoms-Acquired-By-the-Aid-of-Others-and-By-Good-Fortune">
</div>

 <div id="outline-container-They-who-from-a-private-station-become-Princes-by-mere-good-fortune,-do-so-with-little-trouble,-but-have-much-trouble-to-maintain-themselves." class="outline-4">
 <h4 id="They-who-from-a-private-station-become-Princes-by-mere-good-fortune,-do-so-with-little-trouble,-but-have-much-trouble-to-maintain-themselves."> <span class="section-number-4">3.7.1.</span>  <a href="#They-who-from-a-private-station-become-Princes-by-mere-good-fortune,-do-so-with-little-trouble,-but-have-much-trouble-to-maintain-themselves.">They who from a private station become Princes by mere good fortune, do so with little trouble, but have much trouble to maintain themselves.</a></h4>
 <div class="outline-text-4" id="text-They-who-from-a-private-station-become-Princes-by-mere-good-fortune,-do-so-with-little-trouble,-but-have-much-trouble-to-maintain-themselves.">
 <p>
This seems to be exactly about Putin. And still, he has managed to stay where he is for 22 years. On the other hand, he has never been confident in his power.
</p>
</div>
</div>

 <div id="outline-container-This-design-he-accordingly-did-not-oppose,-but-furthered-by-annulling-the-first-marriage-of-the-French-King." class="outline-4">
 <h4 id="This-design-he-accordingly-did-not-oppose,-but-furthered-by-annulling-the-first-marriage-of-the-French-King."> <span class="section-number-4">3.7.2.</span>  <a href="#This-design-he-accordingly-did-not-oppose,-but-furthered-by-annulling-the-first-marriage-of-the-French-King.">This design he accordingly did not oppose, but furthered by annulling the first marriage of the French King.</a></h4>
 <div class="outline-text-4" id="text-This-design-he-accordingly-did-not-oppose,-but-furthered-by-annulling-the-first-marriage-of-the-French-King.">
 <p>
What does this mean? How could Cesare Borgia annul a King’s marriage? I
remember, he was a Cardinal, but I thought that only the Pope could annul
marriages.
</p>
</div>
</div>

 <div id="outline-container-Those-of-their-following-who-were-of-good-birth,-he-gained-over-by-making-them-his-own-gentlemen,-assigning-them-a-liberal-provision,-and-conferring-upon-them-commands-and-appointments-suited-to-their-rank;-so-that-in-a-few-months-their-old-partisan-attachments-died-out" class="outline-4">
 <h4 id="Those-of-their-following-who-were-of-good-birth,-he-gained-over-by-making-them-his-own-gentlemen,-assigning-them-a-liberal-provision,-and-conferring-upon-them-commands-and-appointments-suited-to-their-rank;-so-that-in-a-few-months-their-old-partisan-attachments-died-out"> <span class="section-number-4">3.7.3.</span>  <a href="#Those-of-their-following-who-were-of-good-birth,-he-gained-over-by-making-them-his-own-gentlemen,-assigning-them-a-liberal-provision,-and-conferring-upon-them-commands-and-appointments-suited-to-their-rank;-so-that-in-a-few-months-their-old-partisan-attachments-died-out">Those of their following who were of good birth, he gained over by making them his own gentlemen, assigning them a liberal provision, and conferring upon them commands and appointments suited to their rank; so that in a few months their old partisan attachments died out</a></h4>
 <div class="outline-text-4" id="text-Those-of-their-following-who-were-of-good-birth,-he-gained-over-by-making-them-his-own-gentlemen,-assigning-them-a-liberal-provision,-and-conferring-upon-them-commands-and-appointments-suited-to-their-rank;-so-that-in-a-few-months-their-old-partisan-attachments-died-out">
 <p>
In a few months??? Seriously?
</p>
</div>
</div>

 <div id="outline-container-he-had-to-apprehend-that-a-new-Head-of-the-Church-might-not-be-his-friend,-and-might-even-seek-to-deprive-him-of-what-Alexander-had-given.-This-he-thought-to-provide-against-in-four-ways.-First,-by-exterminating-all-who-were-of-kin-to-those-Lords-whom-he-had-despoiled-of-their-possessions,-that-they-might-not-become-instruments-in-the-hands-of-a-new-Pope.-Second,-by-gaining-over-all-the-Roman-nobles,-so-as-to-be-able-with-their-help-to-put-a-bridle,-as-the-saying-is,-in-the-Pope%E2%80%99s-mouth.-Third,-by-bringing-the-college-of-Cardinals,-so-far-as-he-could,-under-his-control.-And-fourth,-by-establishing-his-authority-so-firmly-before-his-father%E2%80%99s-death,-as-to-be-able-by-himself-to-withstand-the-shock-of-a-first-onset." class="outline-4">
 <h4 id="he-had-to-apprehend-that-a-new-Head-of-the-Church-might-not-be-his-friend,-and-might-even-seek-to-deprive-him-of-what-Alexander-had-given.-This-he-thought-to-provide-against-in-four-ways.-First,-by-exterminating-all-who-were-of-kin-to-those-Lords-whom-he-had-despoiled-of-their-possessions,-that-they-might-not-become-instruments-in-the-hands-of-a-new-Pope.-Second,-by-gaining-over-all-the-Roman-nobles,-so-as-to-be-able-with-their-help-to-put-a-bridle,-as-the-saying-is,-in-the-Pope%E2%80%99s-mouth.-Third,-by-bringing-the-college-of-Cardinals,-so-far-as-he-could,-under-his-control.-And-fourth,-by-establishing-his-authority-so-firmly-before-his-father%E2%80%99s-death,-as-to-be-able-by-himself-to-withstand-the-shock-of-a-first-onset."> <span class="section-number-4">3.7.4.</span>  <a href="#he-had-to-apprehend-that-a-new-Head-of-the-Church-might-not-be-his-friend,-and-might-even-seek-to-deprive-him-of-what-Alexander-had-given.-This-he-thought-to-provide-against-in-four-ways.-First,-by-exterminating-all-who-were-of-kin-to-those-Lords-whom-he-had-despoiled-of-their-possessions,-that-they-might-not-become-instruments-in-the-hands-of-a-new-Pope.-Second,-by-gaining-over-all-the-Roman-nobles,-so-as-to-be-able-with-their-help-to-put-a-bridle,-as-the-saying-is,-in-the-Pope%E2%80%99s-mouth.-Third,-by-bringing-the-college-of-Cardinals,-so-far-as-he-could,-under-his-control.-And-fourth,-by-establishing-his-authority-so-firmly-before-his-father%E2%80%99s-death,-as-to-be-able-by-himself-to-withstand-the-shock-of-a-first-onset.">he had to apprehend that a new Head of the Church might not be his friend, and might even seek to deprive him of what Alexander had given. This he thought to provide against in four ways. First, by exterminating all who were of kin to those Lords whom he had despoiled of their possessions, that they might not become instruments in the hands of a new Pope. Second, by gaining over all the Roman nobles, so as to be able with their help to put a bridle, as the saying is, in the Pope’s mouth. Third, by bringing the college of Cardinals, so far as he could, under his control. And fourth, by establishing his authority so firmly before his father’s death, as to be able by himself to withstand the shock of a first onset.</a></h4>
 <div class="outline-text-4" id="text-he-had-to-apprehend-that-a-new-Head-of-the-Church-might-not-be-his-friend,-and-might-even-seek-to-deprive-him-of-what-Alexander-had-given.-This-he-thought-to-provide-against-in-four-ways.-First,-by-exterminating-all-who-were-of-kin-to-those-Lords-whom-he-had-despoiled-of-their-possessions,-that-they-might-not-become-instruments-in-the-hands-of-a-new-Pope.-Second,-by-gaining-over-all-the-Roman-nobles,-so-as-to-be-able-with-their-help-to-put-a-bridle,-as-the-saying-is,-in-the-Pope%E2%80%99s-mouth.-Third,-by-bringing-the-college-of-Cardinals,-so-far-as-he-could,-under-his-control.-And-fourth,-by-establishing-his-authority-so-firmly-before-his-father%E2%80%99s-death,-as-to-be-able-by-himself-to-withstand-the-shock-of-a-first-onset.">
 <p>
We see points, but they all are not very systematic.
</p>

 <ol class="org-ol"> <li>Get rid of Khodorkovsky, Gusinski, and all other oligarchs who used to be critics and beneficiaries of the old regime.</li>
 <li>Corrupt the rest of the oligarchs, make them rich, but clearly criminally rich, so that they would depend on you only.</li>
 <li>Make the Council of the Federation a puppet council, since the President appoints the governors.</li>
 <li>Promote yourself very strongly on TV, so that even if you have to temporarily become a Prime Minister, you would retain enough power long enough.</li>
</ol></div>
</div>
</div>

 <div id="outline-container-Chapter-8-Of-Those-Who-By-Their-Crimes-Come-to-Be-Princes" class="outline-3">
 <h3 id="Chapter-8-Of-Those-Who-By-Their-Crimes-Come-to-Be-Princes"> <span class="section-number-3">3.8.</span>  <a href="#Chapter-8-Of-Those-Who-By-Their-Crimes-Come-to-Be-Princes">Chapter 8 Of Those Who By Their Crimes Come to Be Princes</a></h3>
 <div class="outline-text-3" id="text-Chapter-8-Of-Those-Who-By-Their-Crimes-Come-to-Be-Princes">
</div>

 <div id="outline-container-There-are-two-ways-for-a-private-citizen-to-become-a-Prince" class="outline-4">
 <h4 id="There-are-two-ways-for-a-private-citizen-to-become-a-Prince"> <span class="section-number-4">3.8.1.</span>  <a href="#There-are-two-ways-for-a-private-citizen-to-become-a-Prince">There are two ways for a private citizen to become a Prince</a></h4>
 <div class="outline-text-4" id="text-There-are-two-ways-for-a-private-citizen-to-become-a-Prince">
 <ol class="org-ol"> <li>Wickedness and Crime</li>
 <li>Favour of his fellow-citizens</li>
</ol></div>
</div>

 <div id="outline-container-The-banquet-at-Fermo,-where-Oliverotto-killed-Giovanni-Fogliani" class="outline-4">
 <h4 id="The-banquet-at-Fermo,-where-Oliverotto-killed-Giovanni-Fogliani"> <span class="section-number-4">3.8.2.</span>  <a href="#The-banquet-at-Fermo,-where-Oliverotto-killed-Giovanni-Fogliani">The banquet at Fermo, where Oliverotto killed Giovanni Fogliani</a></h4>
 <div class="outline-text-4" id="text-The-banquet-at-Fermo,-where-Oliverotto-killed-Giovanni-Fogliani">
</div>
</div>
</div>

 <div id="outline-container-Chapter-9-Of-the-Civil-Princedom" class="outline-3">
 <h3 id="Chapter-9-Of-the-Civil-Princedom"> <span class="section-number-3">3.9.</span>  <a href="#Chapter-9-Of-the-Civil-Princedom">Chapter 9 Of the Civil Princedom</a></h3>
 <div class="outline-text-3" id="text-Chapter-9-Of-the-Civil-Princedom">
</div>

 <div id="outline-container-people-desire-not-to-be-domineered-over-or-oppressed-by-the-nobles,-while-the-nobles-desire-to-oppress-and-domineer-over-the-people.-And-from-these-two-contrary-appetites-there-arises-in-cities-one-of-three-results,-a-Princedom,-or-Liberty,-or-Licence." class="outline-4">
 <h4 id="people-desire-not-to-be-domineered-over-or-oppressed-by-the-nobles,-while-the-nobles-desire-to-oppress-and-domineer-over-the-people.-And-from-these-two-contrary-appetites-there-arises-in-cities-one-of-three-results,-a-Princedom,-or-Liberty,-or-Licence."> <span class="section-number-4">3.9.1.</span>  <a href="#people-desire-not-to-be-domineered-over-or-oppressed-by-the-nobles,-while-the-nobles-desire-to-oppress-and-domineer-over-the-people.-And-from-these-two-contrary-appetites-there-arises-in-cities-one-of-three-results,-a-Princedom,-or-Liberty,-or-Licence.">people desire not to be domineered over or oppressed by the nobles, while the nobles desire to oppress and domineer over the people. And from these two contrary appetites there arises in cities one of three results, a Princedom, or Liberty, or Licence.</a></h4>
 <div class="outline-text-4" id="text-people-desire-not-to-be-domineered-over-or-oppressed-by-the-nobles,-while-the-nobles-desire-to-oppress-and-domineer-over-the-people.-And-from-these-two-contrary-appetites-there-arises-in-cities-one-of-three-results,-a-Princedom,-or-Liberty,-or-Licence.">
 <p>
A Prince is proclaimed in order to make peace between the Nobles and the People.
</p>
</div>
</div>

 <div id="outline-container-He-who-is-made-Prince-by-the-favour-of-the-nobles,-has-greater-difficulty-to-maintain-himself-than-he-who-comes-to-the-Princedom-by-aid-of-the-people,-since-he-finds-many-about-him-who-think-themselves-as-good-as-he,-and-whom,-on-that-account,-he-cannot-guide-or-govern-as-he-would." class="outline-4">
 <h4 id="He-who-is-made-Prince-by-the-favour-of-the-nobles,-has-greater-difficulty-to-maintain-himself-than-he-who-comes-to-the-Princedom-by-aid-of-the-people,-since-he-finds-many-about-him-who-think-themselves-as-good-as-he,-and-whom,-on-that-account,-he-cannot-guide-or-govern-as-he-would."> <span class="section-number-4">3.9.2.</span>  <a href="#He-who-is-made-Prince-by-the-favour-of-the-nobles,-has-greater-difficulty-to-maintain-himself-than-he-who-comes-to-the-Princedom-by-aid-of-the-people,-since-he-finds-many-about-him-who-think-themselves-as-good-as-he,-and-whom,-on-that-account,-he-cannot-guide-or-govern-as-he-would.">He who is made Prince by the favour of the nobles, has greater difficulty to maintain himself than he who comes to the Princedom by aid of the people, since he finds many about him who think themselves as good as he, and whom, on that account, he cannot guide or govern as he would.</a></h4>
 <div class="outline-text-4" id="text-He-who-is-made-Prince-by-the-favour-of-the-nobles,-has-greater-difficulty-to-maintain-himself-than-he-who-comes-to-the-Princedom-by-aid-of-the-people,-since-he-finds-many-about-him-who-think-themselves-as-good-as-he,-and-whom,-on-that-account,-he-cannot-guide-or-govern-as-he-would.">
 <p>
How has Putin gained his power? By people or by the nobles? Can he
actually govern “as he would”.
</p>

 <p>
Indeed, certain argument can be made whether Boyars/Dvoryans are the real
nobles, but still?
</p>
</div>
</div>

 <div id="outline-container-Add-to-this,-that-a-Prince-can-never-secure-himself-against-a-disaffected-people,-their-number-being-too-great,-while-he-may-against-a-disaffected-nobility,-since-their-number-is-small." class="outline-4">
 <h4 id="Add-to-this,-that-a-Prince-can-never-secure-himself-against-a-disaffected-people,-their-number-being-too-great,-while-he-may-against-a-disaffected-nobility,-since-their-number-is-small."> <span class="section-number-4">3.9.3.</span>  <a href="#Add-to-this,-that-a-Prince-can-never-secure-himself-against-a-disaffected-people,-their-number-being-too-great,-while-he-may-against-a-disaffected-nobility,-since-their-number-is-small.">Add to this, that a Prince can never secure himself against a disaffected people, their number being too great, while he may against a disaffected nobility, since their number is small.</a></h4>
 <div class="outline-text-4" id="text-Add-to-this,-that-a-Prince-can-never-secure-himself-against-a-disaffected-people,-their-number-being-too-great,-while-he-may-against-a-disaffected-nobility,-since-their-number-is-small.">
 <p>
This means that no matter how much of a tyrant one is, when he loses
popular support, he fails.
</p>
</div>
</div>

 <div id="outline-container-But-he-who-against-the-will-of-the-people-is-made-a-Prince-by-the-favour-of-the-nobles,-must,-above-all-things,-seek-to-conciliate-the-people,-which-he-readily-may-by-taking-them-under-his-protection." class="outline-4">
 <h4 id="But-he-who-against-the-will-of-the-people-is-made-a-Prince-by-the-favour-of-the-nobles,-must,-above-all-things,-seek-to-conciliate-the-people,-which-he-readily-may-by-taking-them-under-his-protection."> <span class="section-number-4">3.9.4.</span>  <a href="#But-he-who-against-the-will-of-the-people-is-made-a-Prince-by-the-favour-of-the-nobles,-must,-above-all-things,-seek-to-conciliate-the-people,-which-he-readily-may-by-taking-them-under-his-protection.">But he who against the will of the people is made a Prince by the favour of the nobles, must, above all things, seek to conciliate the people, which he readily may by taking them under his protection.</a></h4>
 <div class="outline-text-4" id="text-But-he-who-against-the-will-of-the-people-is-made-a-Prince-by-the-favour-of-the-nobles,-must,-above-all-things,-seek-to-conciliate-the-people,-which-he-readily-may-by-taking-them-under-his-protection.">
 <p>
Putin does that a lot!
</p>
</div>
</div>

 <div id="outline-container-For-since-men-who-are-well-treated-by-one-whom-they-expected-to-treat-them-ill,-feel-the-more-beholden-to-their-benefactor,-the-people-will-at-once-become-better-disposed-to-such-a-Prince-when-he-protects-them,-than-if-he-owed-his-Princedom-to-them." class="outline-4">
 <h4 id="For-since-men-who-are-well-treated-by-one-whom-they-expected-to-treat-them-ill,-feel-the-more-beholden-to-their-benefactor,-the-people-will-at-once-become-better-disposed-to-such-a-Prince-when-he-protects-them,-than-if-he-owed-his-Princedom-to-them."> <span class="section-number-4">3.9.5.</span>  <a href="#For-since-men-who-are-well-treated-by-one-whom-they-expected-to-treat-them-ill,-feel-the-more-beholden-to-their-benefactor,-the-people-will-at-once-become-better-disposed-to-such-a-Prince-when-he-protects-them,-than-if-he-owed-his-Princedom-to-them.">For since men who are well treated by one whom they expected to treat them ill, feel the more beholden to their benefactor, the people will at once become better disposed to such a Prince when he protects them, than if he owed his Princedom to them.</a></h4>
 <div class="outline-text-4" id="text-For-since-men-who-are-well-treated-by-one-whom-they-expected-to-treat-them-ill,-feel-the-more-beholden-to-their-benefactor,-the-people-will-at-once-become-better-disposed-to-such-a-Prince-when-he-protects-them,-than-if-he-owed-his-Princedom-to-them.">
 <p>
Was this the case with Putin? I mean, he was from the FSB, so presumably,
he was expected to be cruel, and that is why during his first years he
tried to placate the people.
</p>
</div>
</div>

 <div id="outline-container-%E2%80%99he-who-builds-on-the-people-builds-on-mire,%E2%80%99-for-that-may-be-true-of-a-private-citizen-who-presumes-on-his-favour-with-the-people,-and-counts-on-being-rescued-by-them-when-overpowered-by-his-enemies-or-by-the-magistrates" class="outline-4">
 <h4 id="%E2%80%99he-who-builds-on-the-people-builds-on-mire,%E2%80%99-for-that-may-be-true-of-a-private-citizen-who-presumes-on-his-favour-with-the-people,-and-counts-on-being-rescued-by-them-when-overpowered-by-his-enemies-or-by-the-magistrates"> <span class="section-number-4">3.9.6.</span>  <a href="#%E2%80%99he-who-builds-on-the-people-builds-on-mire,%E2%80%99-for-that-may-be-true-of-a-private-citizen-who-presumes-on-his-favour-with-the-people,-and-counts-on-being-rescued-by-them-when-overpowered-by-his-enemies-or-by-the-magistrates">’he who builds on the people builds on mire,’ for that may be true of a private citizen who presumes on his favour with the people, and counts on being rescued by them when overpowered by his enemies or by the magistrates</a></h4>
 <div class="outline-text-4" id="text-%E2%80%99he-who-builds-on-the-people-builds-on-mire,%E2%80%99-for-that-may-be-true-of-a-private-citizen-who-presumes-on-his-favour-with-the-people,-and-counts-on-being-rescued-by-them-when-overpowered-by-his-enemies-or-by-the-magistrates">
 <p>
This is what happened to Navalny. He was building his support on the
people, but people did not save him from getting arrested by the
“magistrates”.
</p>
</div>
</div>

 <div id="outline-container-in-tranquil-times-when-the-citizens-feel-the-need-of-the-State.-For-then-every-one-is-ready-to-run,-to-promise,-and,-danger-of-death-being-remote,-even-to-die-for-the-State." class="outline-4">
 <h4 id="in-tranquil-times-when-the-citizens-feel-the-need-of-the-State.-For-then-every-one-is-ready-to-run,-to-promise,-and,-danger-of-death-being-remote,-even-to-die-for-the-State."> <span class="section-number-4">3.9.7.</span>  <a href="#in-tranquil-times-when-the-citizens-feel-the-need-of-the-State.-For-then-every-one-is-ready-to-run,-to-promise,-and,-danger-of-death-being-remote,-even-to-die-for-the-State.">in tranquil times when the citizens feel the need of the State. For then every one is ready to run, to promise, and, danger of death being remote, even to die for the State.</a></h4>
 <div class="outline-text-4" id="text-in-tranquil-times-when-the-citizens-feel-the-need-of-the-State.-For-then-every-one-is-ready-to-run,-to-promise,-and,-danger-of-death-being-remote,-even-to-die-for-the-State.">
 <p>
Very true indeed.
</p>
</div>
</div>

 <div id="outline-container-in-troubled-times,-when-the-State-has-need-of-its-citizens,-few-of-them-are-to-be-found" class="outline-4">
 <h4 id="in-troubled-times,-when-the-State-has-need-of-its-citizens,-few-of-them-are-to-be-found"> <span class="section-number-4">3.9.8.</span>  <a href="#in-troubled-times,-when-the-State-has-need-of-its-citizens,-few-of-them-are-to-be-found">in troubled times, when the State has need of its citizens, few of them are to be found</a></h4>
 <div class="outline-text-4" id="text-in-troubled-times,-when-the-State-has-need-of-its-citizens,-few-of-them-are-to-be-found">
 <p>
Sure. Nobody wants to serve in the Army.
</p>
</div>
</div>

 <div id="outline-container-a-wise-Prince-should-devise-means-whereby-his-subjects-may-at-all-times,-whether-favourable-or-adverse,-feel-the-need-of-the-State-and-of-him,-and-then-they-will-always-be-faithful-to-him." class="outline-4">
 <h4 id="a-wise-Prince-should-devise-means-whereby-his-subjects-may-at-all-times,-whether-favourable-or-adverse,-feel-the-need-of-the-State-and-of-him,-and-then-they-will-always-be-faithful-to-him."> <span class="section-number-4">3.9.9.</span>  <a href="#a-wise-Prince-should-devise-means-whereby-his-subjects-may-at-all-times,-whether-favourable-or-adverse,-feel-the-need-of-the-State-and-of-him,-and-then-they-will-always-be-faithful-to-him.">a wise Prince should devise means whereby his subjects may at all times, whether favourable or adverse, feel the need of the State and of him, and then they will always be faithful to him.</a></h4>
 <div class="outline-text-4" id="text-a-wise-Prince-should-devise-means-whereby-his-subjects-may-at-all-times,-whether-favourable-or-adverse,-feel-the-need-of-the-State-and-of-him,-and-then-they-will-always-be-faithful-to-him.">
 <p>
And this is called SOCIALISM.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-10-How-the-Strength-of-All-Princedoms-Should-Be-Measured" class="outline-3">
 <h3 id="Chapter-10-How-the-Strength-of-All-Princedoms-Should-Be-Measured"> <span class="section-number-3">3.10.</span>  <a href="#Chapter-10-How-the-Strength-of-All-Princedoms-Should-Be-Measured">Chapter 10 How the Strength of All Princedoms Should Be Measured</a></h3>
 <div class="outline-text-3" id="text-Chapter-10-How-the-Strength-of-All-Princedoms-Should-Be-Measured">
</div>

 <div id="outline-container-in-order-to-support-the-poorer-class-of-citizens-without-public-loss,-they-lay-in-a-common-stock-of-materials-for-these-to-work-on-for-a-year,-in-the-handicrafts-which-are-the-life-and-sinews-of-such-cities,-and-by-which-the-common-people-live." class="outline-4">
 <h4 id="in-order-to-support-the-poorer-class-of-citizens-without-public-loss,-they-lay-in-a-common-stock-of-materials-for-these-to-work-on-for-a-year,-in-the-handicrafts-which-are-the-life-and-sinews-of-such-cities,-and-by-which-the-common-people-live."> <span class="section-number-4">3.10.1.</span>  <a href="#in-order-to-support-the-poorer-class-of-citizens-without-public-loss,-they-lay-in-a-common-stock-of-materials-for-these-to-work-on-for-a-year,-in-the-handicrafts-which-are-the-life-and-sinews-of-such-cities,-and-by-which-the-common-people-live.">in order to support the poorer class of citizens without public loss, they lay in a common stock of materials for these to work on for a year, in the handicrafts which are the life and sinews of such cities, and by which the common people live.</a></h4>
 <div class="outline-text-4" id="text-in-order-to-support-the-poorer-class-of-citizens-without-public-loss,-they-lay-in-a-common-stock-of-materials-for-these-to-work-on-for-a-year,-in-the-handicrafts-which-are-the-life-and-sinews-of-such-cities,-and-by-which-the-common-people-live.">
 <p>
SOCIALISM! In 1500s. They have “public works”, on which anyone who has
lost his job may earn a little. Note that this is not a “benefit”.
</p>
</div>
</div>

 <div id="outline-container-Should-it-be-objected-that-if-the-citizens-have-possessions-outside-the-town,-and-see-them-burned,-they-will-lose-patience,-and-that-self-interest,-together-with-the-hardships-of-a-protracted-siege,-will-cause-them-to-forget-their-loyalty;-I-answer-that-a-capable-and-courageous-Prince-will-always-overcome-these-difficulties,-now,-by-holding-out-hopes-to-his-subjects-that-the-evil-will-not-be-of-long-continuance;-now,-by-exciting-their-fears-of-the-enemy%E2%80%99s-cruelty;-and,-again,-by-dexterously-silencing-those-who-seem-to-himtoo-forward-in-their-complaints." class="outline-4">
 <h4 id="Should-it-be-objected-that-if-the-citizens-have-possessions-outside-the-town,-and-see-them-burned,-they-will-lose-patience,-and-that-self-interest,-together-with-the-hardships-of-a-protracted-siege,-will-cause-them-to-forget-their-loyalty;-I-answer-that-a-capable-and-courageous-Prince-will-always-overcome-these-difficulties,-now,-by-holding-out-hopes-to-his-subjects-that-the-evil-will-not-be-of-long-continuance;-now,-by-exciting-their-fears-of-the-enemy%E2%80%99s-cruelty;-and,-again,-by-dexterously-silencing-those-who-seem-to-himtoo-forward-in-their-complaints."> <span class="section-number-4">3.10.2.</span>  <a href="#Should-it-be-objected-that-if-the-citizens-have-possessions-outside-the-town,-and-see-them-burned,-they-will-lose-patience,-and-that-self-interest,-together-with-the-hardships-of-a-protracted-siege,-will-cause-them-to-forget-their-loyalty;-I-answer-that-a-capable-and-courageous-Prince-will-always-overcome-these-difficulties,-now,-by-holding-out-hopes-to-his-subjects-that-the-evil-will-not-be-of-long-continuance;-now,-by-exciting-their-fears-of-the-enemy%E2%80%99s-cruelty;-and,-again,-by-dexterously-silencing-those-who-seem-to-himtoo-forward-in-their-complaints.">Should it be objected that if the citizens have possessions outside the town, and see them burned, they will lose patience, and that self-interest, together with the hardships of a protracted siege, will cause them to forget their loyalty; I answer that a capable and courageous Prince will always overcome these difficulties, now, by holding out hopes to his subjects that the evil will not be of long continuance; now, by exciting their fears of the enemy’s cruelty; and, again, by dexterously silencing those who seem to himtoo forward in their complaints.</a></h4>
 <div class="outline-text-4" id="text-Should-it-be-objected-that-if-the-citizens-have-possessions-outside-the-town,-and-see-them-burned,-they-will-lose-patience,-and-that-self-interest,-together-with-the-hardships-of-a-protracted-siege,-will-cause-them-to-forget-their-loyalty;-I-answer-that-a-capable-and-courageous-Prince-will-always-overcome-these-difficulties,-now,-by-holding-out-hopes-to-his-subjects-that-the-evil-will-not-be-of-long-continuance;-now,-by-exciting-their-fears-of-the-enemy%E2%80%99s-cruelty;-and,-again,-by-dexterously-silencing-those-who-seem-to-himtoo-forward-in-their-complaints.">
 <p>
So, for the less vocal opponents you release Arestovich, and the more
vocal you strip of their Verkhovna Rada membership, and even strip of
their citizenship.
</p>
</div>
</div>

 <div id="outline-container-Moreover,-it-is-to-be-expected-that-the-enemy-will-burn-and-lay-waste-the-country-immediately-on-their-arrival,-at-a-time-when-men%E2%80%99s-minds-are-still-heated-and-resolute-for-defence." class="outline-4">
 <h4 id="Moreover,-it-is-to-be-expected-that-the-enemy-will-burn-and-lay-waste-the-country-immediately-on-their-arrival,-at-a-time-when-men%E2%80%99s-minds-are-still-heated-and-resolute-for-defence."> <span class="section-number-4">3.10.3.</span>  <a href="#Moreover,-it-is-to-be-expected-that-the-enemy-will-burn-and-lay-waste-the-country-immediately-on-their-arrival,-at-a-time-when-men%E2%80%99s-minds-are-still-heated-and-resolute-for-defence.">Moreover, it is to be expected that the enemy will burn and lay waste the country immediately on their arrival, at a time when men’s minds are still heated and resolute for defence.</a></h4>
 <div class="outline-text-4" id="text-Moreover,-it-is-to-be-expected-that-the-enemy-will-burn-and-lay-waste-the-country-immediately-on-their-arrival,-at-a-time-when-men%E2%80%99s-minds-are-still-heated-and-resolute-for-defence.">
 <p>
Indeed, during the first months Putin’s troops were bombing the cities much more than in the later days.
</p>
</div>
</div>

 <div id="outline-container-And-for-this-very-reason-the-Prince-ought-the-less-to-fear,-because-after-a-few-days,-when-the-first-ardour-has-abated,-the-injury-is-already-done-and-suffered,-and-cannot-be-undone;-and-the-people-will-now,-all-the-more-readily,-make-common-cause-with-their-Prince-from-his-seeming-to-be-under-obligations-to-them,-their-houses-having-been-burned-and-their-lands-wasted-in-his-defence." class="outline-4">
 <h4 id="And-for-this-very-reason-the-Prince-ought-the-less-to-fear,-because-after-a-few-days,-when-the-first-ardour-has-abated,-the-injury-is-already-done-and-suffered,-and-cannot-be-undone;-and-the-people-will-now,-all-the-more-readily,-make-common-cause-with-their-Prince-from-his-seeming-to-be-under-obligations-to-them,-their-houses-having-been-burned-and-their-lands-wasted-in-his-defence."> <span class="section-number-4">3.10.4.</span>  <a href="#And-for-this-very-reason-the-Prince-ought-the-less-to-fear,-because-after-a-few-days,-when-the-first-ardour-has-abated,-the-injury-is-already-done-and-suffered,-and-cannot-be-undone;-and-the-people-will-now,-all-the-more-readily,-make-common-cause-with-their-Prince-from-his-seeming-to-be-under-obligations-to-them,-their-houses-having-been-burned-and-their-lands-wasted-in-his-defence.">And for this very reason the Prince ought the less to fear, because after a few days, when the first ardour has abated, the injury is already done and suffered, and cannot be undone; and the people will now, all the more readily, make common cause with their Prince from his seeming to be under obligations to them, their houses having been burned and their lands wasted in his defence.</a></h4>
 <div class="outline-text-4" id="text-And-for-this-very-reason-the-Prince-ought-the-less-to-fear,-because-after-a-few-days,-when-the-first-ardour-has-abated,-the-injury-is-already-done-and-suffered,-and-cannot-be-undone;-and-the-people-will-now,-all-the-more-readily,-make-common-cause-with-their-Prince-from-his-seeming-to-be-under-obligations-to-them,-their-houses-having-been-burned-and-their-lands-wasted-in-his-defence.">
 <p>
So, say it again: destroying civilian property is absolutely useless in a
way. If anything, it helps your enemy more than you.
</p>
</div>
</div>

 <div id="outline-container-For-it-is-the-nature-of-men-to-incur-obligation-as-much-by-the-benefits-they-render-as-by-those-they-receive." class="outline-4">
 <h4 id="For-it-is-the-nature-of-men-to-incur-obligation-as-much-by-the-benefits-they-render-as-by-those-they-receive."> <span class="section-number-4">3.10.5.</span>  <a href="#For-it-is-the-nature-of-men-to-incur-obligation-as-much-by-the-benefits-they-render-as-by-those-they-receive.">For it is the nature of men to incur obligation as much by the benefits they render as by those they receive.</a></h4>
 <div class="outline-text-4" id="text-For-it-is-the-nature-of-men-to-incur-obligation-as-much-by-the-benefits-they-render-as-by-those-they-receive.">
 <p>
This is very important. Totally not obvious to newbies. People love you
more when  <span class="underline">they help you</span>. This works even better than  <span class="underline">you help them</span>.
There are exceptions though.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-11-Of-Ecclesiastical-Princedoms" class="outline-3">
 <h3 id="Chapter-11-Of-Ecclesiastical-Princedoms"> <span class="section-number-3">3.11.</span>  <a href="#Chapter-11-Of-Ecclesiastical-Princedoms">Chapter 11 Of Ecclesiastical Princedoms</a></h3>
 <div class="outline-text-3" id="text-Chapter-11-Of-Ecclesiastical-Princedoms">
 <p>
I don’t think I have found many prominent thoughts in this chapter.
</p>
</div>
</div>

 <div id="outline-container-Chapter-12-How-Many-Different-Kinds-of-Soldiers-There-Are,-and-of-Mercenaries" class="outline-3">
 <h3 id="Chapter-12-How-Many-Different-Kinds-of-Soldiers-There-Are,-and-of-Mercenaries"> <span class="section-number-3">3.12.</span>  <a href="#Chapter-12-How-Many-Different-Kinds-of-Soldiers-There-Are,-and-of-Mercenaries">Chapter 12 How Many Different Kinds of Soldiers There Are, and of Mercenaries</a></h3>
 <div class="outline-text-3" id="text-Chapter-12-How-Many-Different-Kinds-of-Soldiers-There-Are,-and-of-Mercenaries">
</div>

 <div id="outline-container-Now-the-main-foundations-of-all-States,-whether-new,-old,-or-mixed,-are-good-laws-and-good-arms." class="outline-4">
 <h4 id="Now-the-main-foundations-of-all-States,-whether-new,-old,-or-mixed,-are-good-laws-and-good-arms."> <span class="section-number-4">3.12.1.</span>  <a href="#Now-the-main-foundations-of-all-States,-whether-new,-old,-or-mixed,-are-good-laws-and-good-arms.">Now the main foundations of all States, whether new, old, or mixed, are good laws and good arms.</a></h4>
 <div class="outline-text-4" id="text-Now-the-main-foundations-of-all-States,-whether-new,-old,-or-mixed,-are-good-laws-and-good-arms.">
 <p>
Commentary superfluous.
</p>
</div>
</div>

 <div id="outline-container-But-since-you-cannot-have-the-former-without-the-latter,-and-where-you-have-the-latter,-are-likely-to-have-the-former" class="outline-4">
 <h4 id="But-since-you-cannot-have-the-former-without-the-latter,-and-where-you-have-the-latter,-are-likely-to-have-the-former"> <span class="section-number-4">3.12.2.</span>  <a href="#But-since-you-cannot-have-the-former-without-the-latter,-and-where-you-have-the-latter,-are-likely-to-have-the-former">But since you cannot have the former without the latter, and where you have the latter, are likely to have the former</a></h4>
 <div class="outline-text-4" id="text-But-since-you-cannot-have-the-former-without-the-latter,-and-where-you-have-the-latter,-are-likely-to-have-the-former">
 <p>
This will be a big problem with the “New Russia”. For many years, the
logic has been to make good police (“magistrates” in the Machiavelli’s
terminology), not good arms.
</p>

 <p>
Whereas, indeed, we can see that every good country that we can see
nowadays, has a good army. Israel, USA, China, Singapore, Switzerland.
Conversely, countries that are managed worse and worse each year, have
either small, or corrupt armies: Germany (small), Russia (corrupt).
</p>
</div>
</div>

 <div id="outline-container-Kinds-of-Armies" class="outline-4">
 <h4 id="Kinds-of-Armies"> <span class="section-number-4">3.12.3.</span>  <a href="#Kinds-of-Armies">Kinds of Armies</a></h4>
 <div class="outline-text-4" id="text-Kinds-of-Armies">
 <ol class="org-ol"> <li>Citizens</li>
 <li>Mercenaries</li>
 <li>Auxiliaries</li>
</ol> <p>
In our days, I would say, that there are “foreign mercenaries”, and “own
mercenries”.
</p>
</div>
</div>

 <div id="outline-container-Mercenaries-and-auxiliaries-are-at-once-useless-and-dangerous,-and-he-who-holds-his-State-by-means-of-mercenary-troops-can-never-be-solidly-or-securely-seated.-For-such-troops-are-disunited,-ambitious,-insubordinate,-treacherous,-insolent-amongfriends,-cowardly-before-foes,-and-without-fear-of-God-or-faith-with-man." class="outline-4">
 <h4 id="Mercenaries-and-auxiliaries-are-at-once-useless-and-dangerous,-and-he-who-holds-his-State-by-means-of-mercenary-troops-can-never-be-solidly-or-securely-seated.-For-such-troops-are-disunited,-ambitious,-insubordinate,-treacherous,-insolent-amongfriends,-cowardly-before-foes,-and-without-fear-of-God-or-faith-with-man."> <span class="section-number-4">3.12.4.</span>  <a href="#Mercenaries-and-auxiliaries-are-at-once-useless-and-dangerous,-and-he-who-holds-his-State-by-means-of-mercenary-troops-can-never-be-solidly-or-securely-seated.-For-such-troops-are-disunited,-ambitious,-insubordinate,-treacherous,-insolent-amongfriends,-cowardly-before-foes,-and-without-fear-of-God-or-faith-with-man.">Mercenaries and auxiliaries are at once useless and dangerous, and he who holds his State by means of mercenary troops can never be solidly or securely seated. For such troops are disunited, ambitious, insubordinate, treacherous, insolent amongfriends, cowardly before foes, and without fear of God or faith with man.</a></h4>
 <div class="outline-text-4" id="text-Mercenaries-and-auxiliaries-are-at-once-useless-and-dangerous,-and-he-who-holds-his-State-by-means-of-mercenary-troops-can-never-be-solidly-or-securely-seated.-For-such-troops-are-disunited,-ambitious,-insubordinate,-treacherous,-insolent-amongfriends,-cowardly-before-foes,-and-without-fear-of-God-or-faith-with-man.">
 <p>
Seemingly, true. But are the Wagnerites really that cowardly? According
to the reports, they are more or less like the rest.
</p>
</div>
</div>

 <div id="outline-container-The-Swiss-are-at-once-the-best-armed-and-the-freest-people-in-the-world." class="outline-4">
 <h4 id="The-Swiss-are-at-once-the-best-armed-and-the-freest-people-in-the-world."> <span class="section-number-4">3.12.5.</span>  <a href="#The-Swiss-are-at-once-the-best-armed-and-the-freest-people-in-the-world.">The Swiss are at once the best armed and the freest people in the world.</a></h4>
 <div class="outline-text-4" id="text-The-Swiss-are-at-once-the-best-armed-and-the-freest-people-in-the-world.">
 <p>
And still are!
</p>
</div>
</div>

 <div id="outline-container-The-first-object-of-these-mercenaries-was-to-bring-foot-soldiers-into-disrepute" class="outline-4">
 <h4 id="The-first-object-of-these-mercenaries-was-to-bring-foot-soldiers-into-disrepute"> <span class="section-number-4">3.12.6.</span>  <a href="#The-first-object-of-these-mercenaries-was-to-bring-foot-soldiers-into-disrepute">The first object of these mercenaries was to bring foot soldiers into disrepute</a></h4>
 <div class="outline-text-4" id="text-The-first-object-of-these-mercenaries-was-to-bring-foot-soldiers-into-disrepute">
 <p>
That is partly what Wagnerites are doing.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-13-Of-Auxiliary,-Mixed,-and-National-Arms" class="outline-3">
 <h3 id="Chapter-13-Of-Auxiliary,-Mixed,-and-National-Arms"> <span class="section-number-3">3.13.</span>  <a href="#Chapter-13-Of-Auxiliary,-Mixed,-and-National-Arms">Chapter 13 Of Auxiliary, Mixed, and National Arms</a></h3>
 <div class="outline-text-3" id="text-Chapter-13-Of-Auxiliary,-Mixed,-and-National-Arms">
</div>

 <div id="outline-container-Auxiliaries-may-be-excellent-and-useful-soldiers-for-themselves,-but-are-always-hurtful-to-him-who-calls-them-in;-for-if-they-are-defeated,-he-is-undone,-if-victorious,-he-becomes-their-prisoner." class="outline-4">
 <h4 id="Auxiliaries-may-be-excellent-and-useful-soldiers-for-themselves,-but-are-always-hurtful-to-him-who-calls-them-in;-for-if-they-are-defeated,-he-is-undone,-if-victorious,-he-becomes-their-prisoner."> <span class="section-number-4">3.13.1.</span>  <a href="#Auxiliaries-may-be-excellent-and-useful-soldiers-for-themselves,-but-are-always-hurtful-to-him-who-calls-them-in;-for-if-they-are-defeated,-he-is-undone,-if-victorious,-he-becomes-their-prisoner.">Auxiliaries may be excellent and useful soldiers for themselves, but are always hurtful to him who calls them in; for if they are defeated, he is undone, if victorious, he becomes their prisoner.</a></h4>
 <div class="outline-text-4" id="text-Auxiliaries-may-be-excellent-and-useful-soldiers-for-themselves,-but-are-always-hurtful-to-him-who-calls-them-in;-for-if-they-are-defeated,-he-is-undone,-if-victorious,-he-becomes-their-prisoner.">
 <p>
This is seemingly, what has happened with Bashar al Assad in Syria,
bringing Russians as Auxiliaries.
</p>
</div>
</div>

 <div id="outline-container-the-armour-of-others-is-too-wide,-or-too-strait-for-us;-it-falls-off-us,-or-it-weighs-us-down." class="outline-4">
 <h4 id="the-armour-of-others-is-too-wide,-or-too-strait-for-us;-it-falls-off-us,-or-it-weighs-us-down."> <span class="section-number-4">3.13.2.</span>  <a href="#the-armour-of-others-is-too-wide,-or-too-strait-for-us;-it-falls-off-us,-or-it-weighs-us-down.">the armour of others is too wide, or too strait for us; it falls off us, or it weighs us down.</a></h4>
 <div class="outline-text-4" id="text-the-armour-of-others-is-too-wide,-or-too-strait-for-us;-it-falls-off-us,-or-it-weighs-us-down.">
 <p>
Commentary superfluous.
</p>
</div>
</div>

 <div id="outline-container-For-from-their-infantry-being-done-away-with,-their-men-at-arms-are-made-wholly-dependent-on-foreign-assistance,-and-being-accustomed-to-co-operate-with-the-Swiss,-have-grown-to-think-they-can-do-nothing-without-them." class="outline-4">
 <h4 id="For-from-their-infantry-being-done-away-with,-their-men-at-arms-are-made-wholly-dependent-on-foreign-assistance,-and-being-accustomed-to-co-operate-with-the-Swiss,-have-grown-to-think-they-can-do-nothing-without-them."> <span class="section-number-4">3.13.3.</span>  <a href="#For-from-their-infantry-being-done-away-with,-their-men-at-arms-are-made-wholly-dependent-on-foreign-assistance,-and-being-accustomed-to-co-operate-with-the-Swiss,-have-grown-to-think-they-can-do-nothing-without-them.">For from their infantry being done away with, their men-at-arms are made wholly dependent on foreign assistance, and being accustomed to co-operate with the Swiss, have grown to think they can do nothing without them.</a></h4>
 <div class="outline-text-4" id="text-For-from-their-infantry-being-done-away-with,-their-men-at-arms-are-made-wholly-dependent-on-foreign-assistance,-and-being-accustomed-to-co-operate-with-the-Swiss,-have-grown-to-think-they-can-do-nothing-without-them.">
 <p>
This is what happened with the Afghan “democratic” army after the
US troops left.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-14-Of-the-Duty-of-a-Prince-In-Respect-of-Military-Affairs" class="outline-3">
 <h3 id="Chapter-14-Of-the-Duty-of-a-Prince-In-Respect-of-Military-Affairs"> <span class="section-number-3">3.14.</span>  <a href="#Chapter-14-Of-the-Duty-of-a-Prince-In-Respect-of-Military-Affairs">Chapter 14 Of the Duty of a Prince In Respect of Military Affairs</a></h3>
 <div class="outline-text-3" id="text-Chapter-14-Of-the-Duty-of-a-Prince-In-Respect-of-Military-Affairs">
</div>

 <div id="outline-container-A-Prince,-therefore,-should-have-no-care-or-thought-but-for-war,-and-for-the-regulations-and-training-it-requires,-and-should-apply-himself-exclusively-to-this-as-his-peculiar-province" class="outline-4">
 <h4 id="A-Prince,-therefore,-should-have-no-care-or-thought-but-for-war,-and-for-the-regulations-and-training-it-requires,-and-should-apply-himself-exclusively-to-this-as-his-peculiar-province"> <span class="section-number-4">3.14.1.</span>  <a href="#A-Prince,-therefore,-should-have-no-care-or-thought-but-for-war,-and-for-the-regulations-and-training-it-requires,-and-should-apply-himself-exclusively-to-this-as-his-peculiar-province">A Prince, therefore, should have no care or thought but for war, and for the regulations and training it requires, and should apply himself exclusively to this as his peculiar province</a></h4>
 <div class="outline-text-4" id="text-A-Prince,-therefore,-should-have-no-care-or-thought-but-for-war,-and-for-the-regulations-and-training-it-requires,-and-should-apply-himself-exclusively-to-this-as-his-peculiar-province">
 <p>
This is very important. In 1500s he already understands that the only meaningful reason to exist for the Government is Defence.
</p>
</div>
</div>

 <div id="outline-container-Prince-who-is-ignorant-of-military-affairs,-besides-other-disadvantages,-can-neither-be-respected-by-his-soldiers,-nor-can-he-trust-them." class="outline-4">
 <h4 id="Prince-who-is-ignorant-of-military-affairs,-besides-other-disadvantages,-can-neither-be-respected-by-his-soldiers,-nor-can-he-trust-them."> <span class="section-number-4">3.14.2.</span>  <a href="#Prince-who-is-ignorant-of-military-affairs,-besides-other-disadvantages,-can-neither-be-respected-by-his-soldiers,-nor-can-he-trust-them.">Prince who is ignorant of military affairs, besides other disadvantages, can neither be respected by his soldiers, nor can he trust them.</a></h4>
 <div class="outline-text-4" id="text-Prince-who-is-ignorant-of-military-affairs,-besides-other-disadvantages,-can-neither-be-respected-by-his-soldiers,-nor-can-he-trust-them.">
 <p>
Putin hasn’t had a lot of respect from the soldiers recently, I guess. And he never trusted the military as well.
</p>
</div>
</div>

 <div id="outline-container-This-he-can-do-in-two-ways,-by-practice-or-by-study." class="outline-4">
 <h4 id="This-he-can-do-in-two-ways,-by-practice-or-by-study."> <span class="section-number-4">3.14.3.</span>  <a href="#This-he-can-do-in-two-ways,-by-practice-or-by-study.">This he can do in two ways, by practice or by study.</a></h4>
 <div class="outline-text-4" id="text-This-he-can-do-in-two-ways,-by-practice-or-by-study.">
 <p>
I should say “must do in two ways”.
</p>

 <ol class="org-ol"> <li>Prepare yourself for the future all the time, for the problems likely, or those that you might encounter.</li>
 <li>Read what other people have written on the subject, and learn from their experience, constantly. Don’t be afraid to imitate.</li>
</ol></div>
</div>

 <div id="outline-container-never-resting-idle-in-times-of-peace" class="outline-4">
 <h4 id="never-resting-idle-in-times-of-peace"> <span class="section-number-4">3.14.4.</span>  <a href="#never-resting-idle-in-times-of-peace">never resting idle in times of peace</a></h4>
 <div class="outline-text-4" id="text-never-resting-idle-in-times-of-peace">
 <p>
Hard training - easy combat; easy training - hard combat. (Suvorov)
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-15-Of-the-Qualities-In-Respect-of-Which-Men,-and-Most-of-all-Princes,-Are-Praised-or-Blamed" class="outline-3">
 <h3 id="Chapter-15-Of-the-Qualities-In-Respect-of-Which-Men,-and-Most-of-all-Princes,-Are-Praised-or-Blamed"> <span class="section-number-3">3.15.</span>  <a href="#Chapter-15-Of-the-Qualities-In-Respect-of-Which-Men,-and-Most-of-all-Princes,-Are-Praised-or-Blamed">Chapter 15 Of the Qualities In Respect of Which Men, and Most of all Princes, Are Praised or Blamed</a></h3>
 <div class="outline-text-3" id="text-Chapter-15-Of-the-Qualities-In-Respect-of-Which-Men,-and-Most-of-all-Princes,-Are-Praised-or-Blamed">
</div>

 <div id="outline-container-any-one-who-would-act-up-to-a-perfect-standard-of-goodness-in-everything,-must-be-ruined-among-so-many-who-are-not-good" class="outline-4">
 <h4 id="any-one-who-would-act-up-to-a-perfect-standard-of-goodness-in-everything,-must-be-ruined-among-so-many-who-are-not-good"> <span class="section-number-4">3.15.1.</span>  <a href="#any-one-who-would-act-up-to-a-perfect-standard-of-goodness-in-everything,-must-be-ruined-among-so-many-who-are-not-good">any one who would act up to a perfect standard of goodness in everything, must be ruined among so many who are not good</a></h4>
 <div class="outline-text-4" id="text-any-one-who-would-act-up-to-a-perfect-standard-of-goodness-in-everything,-must-be-ruined-among-so-many-who-are-not-good">
 <p>
Can be seen as “Living with wolves, learn to hunt game.”, or “The Good
must have greater fists than the Evil.”
</p>
</div>
</div>

 <div id="outline-container-It-is-essential,-therefore,-for-a-Prince-who-desires-to-maintain-his-position,-to-have-learned-how-to-be-other-than-good,-and-to-use-or-not-to-use-his-goodness-as-necessity-requires." class="outline-4">
 <h4 id="It-is-essential,-therefore,-for-a-Prince-who-desires-to-maintain-his-position,-to-have-learned-how-to-be-other-than-good,-and-to-use-or-not-to-use-his-goodness-as-necessity-requires."> <span class="section-number-4">3.15.2.</span>  <a href="#It-is-essential,-therefore,-for-a-Prince-who-desires-to-maintain-his-position,-to-have-learned-how-to-be-other-than-good,-and-to-use-or-not-to-use-his-goodness-as-necessity-requires.">It is essential, therefore, for a Prince who desires to maintain his position, to have learned how to be other than good, and to use or not to use his goodness as necessity requires.</a></h4>
 <div class="outline-text-4" id="text-It-is-essential,-therefore,-for-a-Prince-who-desires-to-maintain-his-position,-to-have-learned-how-to-be-other-than-good,-and-to-use-or-not-to-use-his-goodness-as-necessity-requires.">
 <p>
It is essential for the Free People to learn how to act practically.
</p>
</div>
</div>

 <div id="outline-container-men-when-they-are-spoken-of,-and-Princes-more-than-others-from-their-being-set-so-high,-are-characterized-by-some-one-of-those-qualities-which-attach-either-praise-or-blame" class="outline-4">
 <h4 id="men-when-they-are-spoken-of,-and-Princes-more-than-others-from-their-being-set-so-high,-are-characterized-by-some-one-of-those-qualities-which-attach-either-praise-or-blame"> <span class="section-number-4">3.15.3.</span>  <a href="#men-when-they-are-spoken-of,-and-Princes-more-than-others-from-their-being-set-so-high,-are-characterized-by-some-one-of-those-qualities-which-attach-either-praise-or-blame">men when they are spoken of, and Princes more than others from their being set so high, are characterized by some one of those qualities which attach either praise or blame</a></h4>
 <div class="outline-text-4" id="text-men-when-they-are-spoken-of,-and-Princes-more-than-others-from-their-being-set-so-high,-are-characterized-by-some-one-of-those-qualities-which-attach-either-praise-or-blame">
 <p>
Qualities have attached praise or blame, but it is not necessary that you  <span class="underline">must</span> follow the ones which are praised only.
</p>
</div>
</div>

 <div id="outline-container-there-may-be-a-line-of-conduct-having-theappearance-of-virtue,-to-follow-which-would-be-his-ruin,-and-that-there-may-be-another-course-having-the-appearance-of-vice,-by-following-which-his-safety-and-well-being-are-secured" class="outline-4">
 <h4 id="there-may-be-a-line-of-conduct-having-theappearance-of-virtue,-to-follow-which-would-be-his-ruin,-and-that-there-may-be-another-course-having-the-appearance-of-vice,-by-following-which-his-safety-and-well-being-are-secured"> <span class="section-number-4">3.15.4.</span>  <a href="#there-may-be-a-line-of-conduct-having-theappearance-of-virtue,-to-follow-which-would-be-his-ruin,-and-that-there-may-be-another-course-having-the-appearance-of-vice,-by-following-which-his-safety-and-well-being-are-secured">there may be a line of conduct having theappearance of virtue, to follow which would be his ruin, and that there may be another course having the appearance of vice, by following which his safety and well-being are secured</a></h4>
 <div class="outline-text-4" id="text-there-may-be-a-line-of-conduct-having-theappearance-of-virtue,-to-follow-which-would-be-his-ruin,-and-that-there-may-be-another-course-having-the-appearance-of-vice,-by-following-which-his-safety-and-well-being-are-secured">
 <p>
Nothing is good or bad intrinsically, but everything according to the
circumstances.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-16-Of-Liberality-and-Miserliness" class="outline-3">
 <h3 id="Chapter-16-Of-Liberality-and-Miserliness"> <span class="section-number-3">3.16.</span>  <a href="#Chapter-16-Of-Liberality-and-Miserliness">Chapter 16 Of Liberality and Miserliness</a></h3>
 <div class="outline-text-3" id="text-Chapter-16-Of-Liberality-and-Miserliness">
 <p>
Liberality here means wastefulness and overspending here.
</p>
</div>

 <div id="outline-container-Hence,-to-have-credit-for-liberality-with-the-world-at-large,-you-must-neglect-no-circumstance-of-sumptuous-display" class="outline-4">
 <h4 id="Hence,-to-have-credit-for-liberality-with-the-world-at-large,-you-must-neglect-no-circumstance-of-sumptuous-display"> <span class="section-number-4">3.16.1.</span>  <a href="#Hence,-to-have-credit-for-liberality-with-the-world-at-large,-you-must-neglect-no-circumstance-of-sumptuous-display">Hence, to have credit for liberality with the world at large, you must neglect no circumstance of sumptuous display</a></h4>
 <div class="outline-text-4" id="text-Hence,-to-have-credit-for-liberality-with-the-world-at-large,-you-must-neglect-no-circumstance-of-sumptuous-display">
 <p>
So, wine and dine your friends. Doesn’t cost much, but makes you look good.
</p>
</div>
</div>

 <div id="outline-container-Because-in-time-he-will-come-to-be-regarded-as-more-and-more-liberal,-when-it-is-seen-that-through-his-parsimony-his-revenues-aresufficient" class="outline-4">
 <h4 id="Because-in-time-he-will-come-to-be-regarded-as-more-and-more-liberal,-when-it-is-seen-that-through-his-parsimony-his-revenues-aresufficient"> <span class="section-number-4">3.16.2.</span>  <a href="#Because-in-time-he-will-come-to-be-regarded-as-more-and-more-liberal,-when-it-is-seen-that-through-his-parsimony-his-revenues-aresufficient">Because in time he will come to be regarded as more and more liberal, when it is seen that through his parsimony his revenues aresufficient</a></h4>
 <div class="outline-text-4" id="text-Because-in-time-he-will-come-to-be-regarded-as-more-and-more-liberal,-when-it-is-seen-that-through-his-parsimony-his-revenues-aresufficient">
 <p>
Have never seen that in reality. The British even have the word
“austerity”, which has been said too many times.
</p>
</div>
</div>

 <div id="outline-container-In-our-own-days-we-have-seen-no-Princes-accomplish-great-results-save-those-who-have-been-accounted-miserly." class="outline-4">
 <h4 id="In-our-own-days-we-have-seen-no-Princes-accomplish-great-results-save-those-who-have-been-accounted-miserly."> <span class="section-number-4">3.16.3.</span>  <a href="#In-our-own-days-we-have-seen-no-Princes-accomplish-great-results-save-those-who-have-been-accounted-miserly.">In our own days we have seen no Princes accomplish great results save those who have been accounted miserly.</a></h4>
 <div class="outline-text-4" id="text-In-our-own-days-we-have-seen-no-Princes-accomplish-great-results-save-those-who-have-been-accounted-miserly.">
 <p>
Again, this maxim seem to have gone obsolete. Roosevelt has spent a giant amount of taxpayers’ money, and is still seen as a hero.
</p>
</div>
</div>

 <div id="outline-container-a-Prince-spends-either-what-belongs-to-himself-and-his-subjects,-or-what-belongs-to-others;-and-that-in-the-former-case-he-ought-to-be-sparing,-but-in-the-latter-ought-not-to-refrain-from-any-kind-of-liberality." class="outline-4">
 <h4 id="a-Prince-spends-either-what-belongs-to-himself-and-his-subjects,-or-what-belongs-to-others;-and-that-in-the-former-case-he-ought-to-be-sparing,-but-in-the-latter-ought-not-to-refrain-from-any-kind-of-liberality."> <span class="section-number-4">3.16.4.</span>  <a href="#a-Prince-spends-either-what-belongs-to-himself-and-his-subjects,-or-what-belongs-to-others;-and-that-in-the-former-case-he-ought-to-be-sparing,-but-in-the-latter-ought-not-to-refrain-from-any-kind-of-liberality.">a Prince spends either what belongs to himself and his subjects, or what belongs to others; and that in the former case he ought to be sparing, but in the latter ought not to refrain from any kind of liberality.</a></h4>
 <div class="outline-text-4" id="text-a-Prince-spends-either-what-belongs-to-himself-and-his-subjects,-or-what-belongs-to-others;-and-that-in-the-former-case-he-ought-to-be-sparing,-but-in-the-latter-ought-not-to-refrain-from-any-kind-of-liberality.">
 <p>
So the Ukrainian Government is trying to get as much money from the USA, as possible. Makes sense.
</p>
</div>
</div>

 <div id="outline-container-miserly,-which-breeds-ignominy,-but-without-hate" class="outline-4">
 <h4 id="miserly,-which-breeds-ignominy,-but-without-hate"> <span class="section-number-4">3.16.5.</span>  <a href="#miserly,-which-breeds-ignominy,-but-without-hate">miserly, which breeds ignominy, but without hate</a></h4>
 <div class="outline-text-4" id="text-miserly,-which-breeds-ignominy,-but-without-hate">
 <p>
Also not bad.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-17-Of-Cruelty-and-Clemency,-and-Whether-It-Is-Better-To-Be-Loved-or-Feared" class="outline-3">
 <h3 id="Chapter-17-Of-Cruelty-and-Clemency,-and-Whether-It-Is-Better-To-Be-Loved-or-Feared"> <span class="section-number-3">3.17.</span>  <a href="#Chapter-17-Of-Cruelty-and-Clemency,-and-Whether-It-Is-Better-To-Be-Loved-or-Feared">Chapter 17 Of Cruelty and Clemency, and Whether It Is Better To Be Loved or Feared</a></h3>
 <div class="outline-text-3" id="text-Chapter-17-Of-Cruelty-and-Clemency,-and-Whether-It-Is-Better-To-Be-Loved-or-Feared">
</div>

 <div id="outline-container-every-Prince-should-desire-to-be-accounted-merciful-and-not-cruel" class="outline-4">
 <h4 id="every-Prince-should-desire-to-be-accounted-merciful-and-not-cruel"> <span class="section-number-4">3.17.1.</span>  <a href="#every-Prince-should-desire-to-be-accounted-merciful-and-not-cruel">every Prince should desire to be accounted merciful and not cruel</a></h4>
 <div class="outline-text-4" id="text-every-Prince-should-desire-to-be-accounted-merciful-and-not-cruel">
 <p>
Again, having this image is good.
</p>
</div>
</div>

 <div id="outline-container-he-who-quells-disorder-by-a-very-few-signal-examples-will-in-the-end-be-more-merciful-than-he-who-from-too-great-leniency-permits-things-to-take-their-course-and-so-to-result-in-rapine-and-bloodshed" class="outline-4">
 <h4 id="he-who-quells-disorder-by-a-very-few-signal-examples-will-in-the-end-be-more-merciful-than-he-who-from-too-great-leniency-permits-things-to-take-their-course-and-so-to-result-in-rapine-and-bloodshed"> <span class="section-number-4">3.17.2.</span>  <a href="#he-who-quells-disorder-by-a-very-few-signal-examples-will-in-the-end-be-more-merciful-than-he-who-from-too-great-leniency-permits-things-to-take-their-course-and-so-to-result-in-rapine-and-bloodshed">he who quells disorder by a very few signal examples will in the end be more merciful than he who from too great leniency permits things to take their course and so to result in rapine and bloodshed</a></h4>
 <div class="outline-text-4" id="text-he-who-quells-disorder-by-a-very-few-signal-examples-will-in-the-end-be-more-merciful-than-he-who-from-too-great-leniency-permits-things-to-take-their-course-and-so-to-result-in-rapine-and-bloodshed">
 <p>
Hehe, but how do you decide? Putin seems to sincerely believe that “pointwise repressions” prevent “rapine and bloodshed”.
</p>
</div>
</div>

 <div id="outline-container-And-here-comes-in-the-question-whether-it-is-better-to-be-loved-rather-than-feared,-or-feared-rather-than-loved." class="outline-4">
 <h4 id="And-here-comes-in-the-question-whether-it-is-better-to-be-loved-rather-than-feared,-or-feared-rather-than-loved."> <span class="section-number-4">3.17.3.</span>  <a href="#And-here-comes-in-the-question-whether-it-is-better-to-be-loved-rather-than-feared,-or-feared-rather-than-loved.">And here comes in the question whether it is better to be loved rather than feared, or feared rather than loved.</a></h4>
 <div class="outline-text-4" id="text-And-here-comes-in-the-question-whether-it-is-better-to-be-loved-rather-than-feared,-or-feared-rather-than-loved.">
 <p>
Well… apparently, feared is better.
</p>
</div>
</div>

 <div id="outline-container-For-of-men-it-may-generally-be-affirmed,-that-they-are-thankless,-fickle,-false-studious-to-avoid-danger,-greedy-of-gain,-devoted-to-you-while-you-are-able-to-confer-benefits-upon-them,-and-ready,-as-I-said-before,-while-danger-is-distant,-to-shed-their-blood,-and-sacrifice-their-property,-their-lives,-and-their-children-for-you;-but-in-the-hour-of-need-they-turn-against-you." class="outline-4">
 <h4 id="For-of-men-it-may-generally-be-affirmed,-that-they-are-thankless,-fickle,-false-studious-to-avoid-danger,-greedy-of-gain,-devoted-to-you-while-you-are-able-to-confer-benefits-upon-them,-and-ready,-as-I-said-before,-while-danger-is-distant,-to-shed-their-blood,-and-sacrifice-their-property,-their-lives,-and-their-children-for-you;-but-in-the-hour-of-need-they-turn-against-you."> <span class="section-number-4">3.17.4.</span>  <a href="#For-of-men-it-may-generally-be-affirmed,-that-they-are-thankless,-fickle,-false-studious-to-avoid-danger,-greedy-of-gain,-devoted-to-you-while-you-are-able-to-confer-benefits-upon-them,-and-ready,-as-I-said-before,-while-danger-is-distant,-to-shed-their-blood,-and-sacrifice-their-property,-their-lives,-and-their-children-for-you;-but-in-the-hour-of-need-they-turn-against-you.">For of men it may generally be affirmed, that they are thankless, fickle, false studious to avoid danger, greedy of gain, devoted to you while you are able to confer benefits upon them, and ready, as I said before, while danger is distant, to shed their blood, and sacrifice their property, their lives, and their children for you; but in the hour of need they turn against you.</a></h4>
 <div class="outline-text-4" id="text-For-of-men-it-may-generally-be-affirmed,-that-they-are-thankless,-fickle,-false-studious-to-avoid-danger,-greedy-of-gain,-devoted-to-you-while-you-are-able-to-confer-benefits-upon-them,-and-ready,-as-I-said-before,-while-danger-is-distant,-to-shed-their-blood,-and-sacrifice-their-property,-their-lives,-and-their-children-for-you;-but-in-the-hour-of-need-they-turn-against-you.">
 <p>
Probably will happen with Putin too, eventually.
</p>
</div>
</div>

 <div id="outline-container-love-is-held-by-the-tie-of-obligation,-which,-because-men-are-a-sorry-breed,-is-broken-on-everywhisper-of-private-interest;-but-fear-is-bound-by-the-apprehension-of-punishment-which-never-relaxes-its-grasp." class="outline-4">
 <h4 id="love-is-held-by-the-tie-of-obligation,-which,-because-men-are-a-sorry-breed,-is-broken-on-everywhisper-of-private-interest;-but-fear-is-bound-by-the-apprehension-of-punishment-which-never-relaxes-its-grasp."> <span class="section-number-4">3.17.5.</span>  <a href="#love-is-held-by-the-tie-of-obligation,-which,-because-men-are-a-sorry-breed,-is-broken-on-everywhisper-of-private-interest;-but-fear-is-bound-by-the-apprehension-of-punishment-which-never-relaxes-its-grasp.">love is held by the tie of obligation, which, because men are a sorry breed, is broken on everywhisper of private interest; but fear is bound by the apprehension of punishment which never relaxes its grasp.</a></h4>
 <div class="outline-text-4" id="text-love-is-held-by-the-tie-of-obligation,-which,-because-men-are-a-sorry-breed,-is-broken-on-everywhisper-of-private-interest;-but-fear-is-bound-by-the-apprehension-of-punishment-which-never-relaxes-its-grasp.">
</div>
</div>

 <div id="outline-container-men-will-sooner-forget-the-death-of-their-father-than-the-loss-of-their-patrimony." class="outline-4">
 <h4 id="men-will-sooner-forget-the-death-of-their-father-than-the-loss-of-their-patrimony."> <span class="section-number-4">3.17.6.</span>  <a href="#men-will-sooner-forget-the-death-of-their-father-than-the-loss-of-their-patrimony.">men will sooner forget the death of their father than the loss of their patrimony.</a></h4>
 <div class="outline-text-4" id="text-men-will-sooner-forget-the-death-of-their-father-than-the-loss-of-their-patrimony.">
 <p>
Also, true.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-18-How-Princes-Should-Keep-Faith" class="outline-3">
 <h3 id="Chapter-18-How-Princes-Should-Keep-Faith"> <span class="section-number-3">3.18.</span>  <a href="#Chapter-18-How-Princes-Should-Keep-Faith">Chapter 18 How Princes Should Keep Faith</a></h3>
 <div class="outline-text-3" id="text-Chapter-18-How-Princes-Should-Keep-Faith">
</div>

 <div id="outline-container-Be-it-known,-then,-that-there-are-two-ways-of-contending,-one-in-accordance-with-the-laws,-the-other-by-force;-the-first-of-which-is-proper-to-men,-the-second-to-beasts.-But-since-the-first-method-is-often-ineffectual,-it-becomes-necessary-to-resort-to-the-second." class="outline-4">
 <h4 id="Be-it-known,-then,-that-there-are-two-ways-of-contending,-one-in-accordance-with-the-laws,-the-other-by-force;-the-first-of-which-is-proper-to-men,-the-second-to-beasts.-But-since-the-first-method-is-often-ineffectual,-it-becomes-necessary-to-resort-to-the-second."> <span class="section-number-4">3.18.1.</span>  <a href="#Be-it-known,-then,-that-there-are-two-ways-of-contending,-one-in-accordance-with-the-laws,-the-other-by-force;-the-first-of-which-is-proper-to-men,-the-second-to-beasts.-But-since-the-first-method-is-often-ineffectual,-it-becomes-necessary-to-resort-to-the-second.">Be it known, then, that there are two ways of contending, one in accordance with the laws, the other by force; the first of which is proper to men, the second to beasts. But since the first method is often ineffectual, it becomes necessary to resort to the second.</a></h4>
 <div class="outline-text-4" id="text-Be-it-known,-then,-that-there-are-two-ways-of-contending,-one-in-accordance-with-the-laws,-the-other-by-force;-the-first-of-which-is-proper-to-men,-the-second-to-beasts.-But-since-the-first-method-is-often-ineffectual,-it-becomes-necessary-to-resort-to-the-second.">
</div>
</div>

 <div id="outline-container-To-rely-wholly-on-the-lion-is-unwise;-and-for-this-reason-a-prudent-Prince-neither-can-nor-ought-to-keep-his-word-when-to-keep-it-is-hurtful-to-him-and-the-causes-which-led-him-to-pledge-it-are-removed.-If-all-men-were-good,-this-would-not-be-good-advice,-but-since-they-are-dishonest-and-do-not-keep-faith-with-you,-you-in-return,-need-not-keep-faith-with-them;-and-no-prince-was-ever-at-a-loss-for-plausible-reasons-to-cloak-a-breach-of-faith." class="outline-4">
 <h4 id="To-rely-wholly-on-the-lion-is-unwise;-and-for-this-reason-a-prudent-Prince-neither-can-nor-ought-to-keep-his-word-when-to-keep-it-is-hurtful-to-him-and-the-causes-which-led-him-to-pledge-it-are-removed.-If-all-men-were-good,-this-would-not-be-good-advice,-but-since-they-are-dishonest-and-do-not-keep-faith-with-you,-you-in-return,-need-not-keep-faith-with-them;-and-no-prince-was-ever-at-a-loss-for-plausible-reasons-to-cloak-a-breach-of-faith."> <span class="section-number-4">3.18.2.</span>  <a href="#To-rely-wholly-on-the-lion-is-unwise;-and-for-this-reason-a-prudent-Prince-neither-can-nor-ought-to-keep-his-word-when-to-keep-it-is-hurtful-to-him-and-the-causes-which-led-him-to-pledge-it-are-removed.-If-all-men-were-good,-this-would-not-be-good-advice,-but-since-they-are-dishonest-and-do-not-keep-faith-with-you,-you-in-return,-need-not-keep-faith-with-them;-and-no-prince-was-ever-at-a-loss-for-plausible-reasons-to-cloak-a-breach-of-faith.">To rely wholly on the lion is unwise; and for this reason a prudent Prince neither can nor ought to keep his word when to keep it is hurtful to him and the causes which led him to pledge it are removed. If all men were good, this would not be good advice, but since they are dishonest and do not keep faith with you, you in return, need not keep faith with them; and no prince was ever at a loss for plausible reasons to cloak a breach of faith.</a></h4>
 <div class="outline-text-4" id="text-To-rely-wholly-on-the-lion-is-unwise;-and-for-this-reason-a-prudent-Prince-neither-can-nor-ought-to-keep-his-word-when-to-keep-it-is-hurtful-to-him-and-the-causes-which-led-him-to-pledge-it-are-removed.-If-all-men-were-good,-this-would-not-be-good-advice,-but-since-they-are-dishonest-and-do-not-keep-faith-with-you,-you-in-return,-need-not-keep-faith-with-them;-and-no-prince-was-ever-at-a-loss-for-plausible-reasons-to-cloak-a-breach-of-faith.">
 <p>
So, basically, treat other people the way they treat you. Reasonable.
</p>
</div>
</div>

 <div id="outline-container-But-men-are-so-simple,-and-governed-so-absolutely-by-their-present-needs,-that-he-who-wishes-to-deceive-will-never-fail-in-finding-willing-dupes." class="outline-4">
 <h4 id="But-men-are-so-simple,-and-governed-so-absolutely-by-their-present-needs,-that-he-who-wishes-to-deceive-will-never-fail-in-finding-willing-dupes."> <span class="section-number-4">3.18.3.</span>  <a href="#But-men-are-so-simple,-and-governed-so-absolutely-by-their-present-needs,-that-he-who-wishes-to-deceive-will-never-fail-in-finding-willing-dupes.">But men are so simple, and governed so absolutely by their present needs, that he who wishes to deceive will never fail in finding willing dupes.</a></h4>
 <div class="outline-text-4" id="text-But-men-are-so-simple,-and-governed-so-absolutely-by-their-present-needs,-that-he-who-wishes-to-deceive-will-never-fail-in-finding-willing-dupes.">
 <p>
Commentary superfluous.
</p>
</div>
</div>

 <div id="outline-container-A-Prince-should-therefore-be-very-careful-that-nothing-ever-escapes-his-lips-which-is-not-replete-with-the-five-qualities-above-named,-so-that-to-see-and-hear-him,-one-would-think-him-the-embodiment-of-mercy,-good-faith,-integrity,-humanity,-and-religion." class="outline-4">
 <h4 id="A-Prince-should-therefore-be-very-careful-that-nothing-ever-escapes-his-lips-which-is-not-replete-with-the-five-qualities-above-named,-so-that-to-see-and-hear-him,-one-would-think-him-the-embodiment-of-mercy,-good-faith,-integrity,-humanity,-and-religion."> <span class="section-number-4">3.18.4.</span>  <a href="#A-Prince-should-therefore-be-very-careful-that-nothing-ever-escapes-his-lips-which-is-not-replete-with-the-five-qualities-above-named,-so-that-to-see-and-hear-him,-one-would-think-him-the-embodiment-of-mercy,-good-faith,-integrity,-humanity,-and-religion.">A Prince should therefore be very careful that nothing ever escapes his lips which is not replete with the five qualities above named, so that to see and hear him, one would think him the embodiment of mercy, good faith, integrity, humanity, and religion.</a></h4>
 <div class="outline-text-4" id="text-A-Prince-should-therefore-be-very-careful-that-nothing-ever-escapes-his-lips-which-is-not-replete-with-the-five-qualities-above-named,-so-that-to-see-and-hear-him,-one-would-think-him-the-embodiment-of-mercy,-good-faith,-integrity,-humanity,-and-religion.">
 <p>
This seems to be still observed today. Always say good things, that’s
expected. But do as you must.
</p>
</div>
</div>

 <div id="outline-container-And-the-most-important-virtue-to-seem-to-possess-is-religion." class="outline-4">
 <h4 id="And-the-most-important-virtue-to-seem-to-possess-is-religion."> <span class="section-number-4">3.18.5.</span>  <a href="#And-the-most-important-virtue-to-seem-to-possess-is-religion.">And the most important virtue to seem to possess is religion.</a></h4>
 <div class="outline-text-4" id="text-And-the-most-important-virtue-to-seem-to-possess-is-religion.">
 <p>
The Communists used “Communism” as the pledge to religion.
</p>
</div>
</div>

 <div id="outline-container-For-the-vulgar-are-always-taken-by-appearances-and-by-results,-and-the-world-is-made-up-of-the-vulgar." class="outline-4">
 <h4 id="For-the-vulgar-are-always-taken-by-appearances-and-by-results,-and-the-world-is-made-up-of-the-vulgar."> <span class="section-number-4">3.18.6.</span>  <a href="#For-the-vulgar-are-always-taken-by-appearances-and-by-results,-and-the-world-is-made-up-of-the-vulgar.">For the vulgar are always taken by appearances and by results, and the world is made up of the vulgar.</a></h4>
 <div class="outline-text-4" id="text-For-the-vulgar-are-always-taken-by-appearances-and-by-results,-and-the-world-is-made-up-of-the-vulgar.">
 <p>
Sounds fresh.
</p>

 <p>
Finis sanctificat media.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-19-That-a-Prince-Should-Seek-to-Escape-Contempt-and-Hatred" class="outline-3">
 <h3 id="Chapter-19-That-a-Prince-Should-Seek-to-Escape-Contempt-and-Hatred"> <span class="section-number-3">3.19.</span>  <a href="#Chapter-19-That-a-Prince-Should-Seek-to-Escape-Contempt-and-Hatred">Chapter 19 That a Prince Should Seek to Escape Contempt and Hatred</a></h3>
 <div class="outline-text-3" id="text-Chapter-19-That-a-Prince-Should-Seek-to-Escape-Contempt-and-Hatred">
</div>

 <div id="outline-container-And-well-ordered-States-and-wise-Princes-have-provided-with-extreme-care-that-the-nobility-shall-not-be-driven-to-desperation,-and-that-the-commons-shall-be-kept-satisfied-and-contented;-for-this-is-one-of-the-most-important-matters-that-a-Prince-has-to-look-to." class="outline-4">
 <h4 id="And-well-ordered-States-and-wise-Princes-have-provided-with-extreme-care-that-the-nobility-shall-not-be-driven-to-desperation,-and-that-the-commons-shall-be-kept-satisfied-and-contented;-for-this-is-one-of-the-most-important-matters-that-a-Prince-has-to-look-to."> <span class="section-number-4">3.19.1.</span>  <a href="#And-well-ordered-States-and-wise-Princes-have-provided-with-extreme-care-that-the-nobility-shall-not-be-driven-to-desperation,-and-that-the-commons-shall-be-kept-satisfied-and-contented;-for-this-is-one-of-the-most-important-matters-that-a-Prince-has-to-look-to.">And well ordered States and wise Princes have provided with extreme care that the nobility shall not be driven to desperation, and that the commons shall be kept satisfied and contented; for this is one of the most important matters that a Prince has to look to.</a></h4>
 <div class="outline-text-4" id="text-And-well-ordered-States-and-wise-Princes-have-provided-with-extreme-care-that-the-nobility-shall-not-be-driven-to-desperation,-and-that-the-commons-shall-be-kept-satisfied-and-contented;-for-this-is-one-of-the-most-important-matters-that-a-Prince-has-to-look-to.">
 <p>
So, still, good government is the main way of escaping calamities.
</p>
</div>
</div>

 <div id="outline-container-Among-the-well-ordered-and-governed-Kingdoms-of-our-day-is-that-of-France,-wherein-we-find-an-infinite-number-of-wise-institutions,-upon-which-depend-the-freedom-and-the-security-of-the-King,-and-of-which-the-most-important-are-the-Parliament-and-its-authority." class="outline-4">
 <h4 id="Among-the-well-ordered-and-governed-Kingdoms-of-our-day-is-that-of-France,-wherein-we-find-an-infinite-number-of-wise-institutions,-upon-which-depend-the-freedom-and-the-security-of-the-King,-and-of-which-the-most-important-are-the-Parliament-and-its-authority."> <span class="section-number-4">3.19.2.</span>  <a href="#Among-the-well-ordered-and-governed-Kingdoms-of-our-day-is-that-of-France,-wherein-we-find-an-infinite-number-of-wise-institutions,-upon-which-depend-the-freedom-and-the-security-of-the-King,-and-of-which-the-most-important-are-the-Parliament-and-its-authority.">Among the well ordered and governed Kingdoms of our day is that of France, wherein we find an infinite number of wise institutions, upon which depend the freedom and the security of the King, and of which the most important are the Parliament and its authority.</a></h4>
 <div class="outline-text-4" id="text-Among-the-well-ordered-and-governed-Kingdoms-of-our-day-is-that-of-France,-wherein-we-find-an-infinite-number-of-wise-institutions,-upon-which-depend-the-freedom-and-the-security-of-the-King,-and-of-which-the-most-important-are-the-Parliament-and-its-authority.">
</div>

 <ol class="org-ol"> <li> <a id="to-relieve-him-of-the-ill-will-which-he-might-incur-with-the-nobles-by-favouring-the-commons,-or-with-the-commons-by-favouring-the-nobles,-appointed-a-third-party-to-be-arbitrator,-who-without-committing-the-King,-might-depress-the-nobles-and-uphold-the-commons"></a> <a href="#to-relieve-him-of-the-ill-will-which-he-might-incur-with-the-nobles-by-favouring-the-commons,-or-with-the-commons-by-favouring-the-nobles,-appointed-a-third-party-to-be-arbitrator,-who-without-committing-the-King,-might-depress-the-nobles-and-uphold-the-commons">to relieve him of the ill-will which he might incur with the nobles by favouring the commons, or with the commons by favouring the nobles, appointed a third party to be arbitrator, who without committing the King, might depress the nobles and uphold the commons</a> <br></br> <div class="outline-text-5" id="text-to-relieve-him-of-the-ill-will-which-he-might-incur-with-the-nobles-by-favouring-the-commons,-or-with-the-commons-by-favouring-the-nobles,-appointed-a-third-party-to-be-arbitrator,-who-without-committing-the-King,-might-depress-the-nobles-and-uphold-the-commons">
 <p>
1500
</p>
</div>
</li>
</ol></div>




 <div id="outline-container-Princes-should-devolve-on-others-those-matters-that-entail-responsibility,-and-reserve-to-themselves-those-that-relate-to-grace-and-favour." class="outline-4">
 <h4 id="Princes-should-devolve-on-others-those-matters-that-entail-responsibility,-and-reserve-to-themselves-those-that-relate-to-grace-and-favour."> <span class="section-number-4">3.19.3.</span>  <a href="#Princes-should-devolve-on-others-those-matters-that-entail-responsibility,-and-reserve-to-themselves-those-that-relate-to-grace-and-favour.">Princes should devolve on others those matters that entail responsibility, and reserve to themselves those that relate to grace and favour.</a></h4>
 <div class="outline-text-4" id="text-Princes-should-devolve-on-others-those-matters-that-entail-responsibility,-and-reserve-to-themselves-those-that-relate-to-grace-and-favour.">
 <p>
Commentary superfluous.
</p>
</div>
</div>

 <div id="outline-container-by-an-utter-disregard-of-his-dignity,-in-frequently-descending-into-the-arena-to-fight-with-gladiators,-and-by-other-base-acts-wholly-unworthy-of-the-Imperial-station,-he-became-contemptible-in-the-eyes-of-the-soldiery" class="outline-4">
 <h4 id="by-an-utter-disregard-of-his-dignity,-in-frequently-descending-into-the-arena-to-fight-with-gladiators,-and-by-other-base-acts-wholly-unworthy-of-the-Imperial-station,-he-became-contemptible-in-the-eyes-of-the-soldiery"> <span class="section-number-4">3.19.4.</span>  <a href="#by-an-utter-disregard-of-his-dignity,-in-frequently-descending-into-the-arena-to-fight-with-gladiators,-and-by-other-base-acts-wholly-unworthy-of-the-Imperial-station,-he-became-contemptible-in-the-eyes-of-the-soldiery">by an utter disregard of his dignity, in frequently descending into the arena to fight with gladiators, and by other base acts wholly unworthy of the Imperial station, he became contemptible in the eyes of the soldiery</a></h4>
 <div class="outline-text-4" id="text-by-an-utter-disregard-of-his-dignity,-in-frequently-descending-into-the-arena-to-fight-with-gladiators,-and-by-other-base-acts-wholly-unworthy-of-the-Imperial-station,-he-became-contemptible-in-the-eyes-of-the-soldiery">
 <p>
Huh? Putin doesn’t seem to lose much from flying with the cranes.
</p>
</div>
</div>

 <div id="outline-container-And-if-it-was-then-necessary-to-satisfy-the-soldiers-rather-than-the-people,-because-the-soldiers-were-more-powerful-than-the-people,-now-it-is-more-necessary-for-all-Princes,-except-the-Turk-and-the-Soldan,-to-satisfy-the-people-rather-than-the-soldiery,-since-the-former-are-more-powerful-than-the-latter." class="outline-4">
 <h4 id="And-if-it-was-then-necessary-to-satisfy-the-soldiers-rather-than-the-people,-because-the-soldiers-were-more-powerful-than-the-people,-now-it-is-more-necessary-for-all-Princes,-except-the-Turk-and-the-Soldan,-to-satisfy-the-people-rather-than-the-soldiery,-since-the-former-are-more-powerful-than-the-latter."> <span class="section-number-4">3.19.5.</span>  <a href="#And-if-it-was-then-necessary-to-satisfy-the-soldiers-rather-than-the-people,-because-the-soldiers-were-more-powerful-than-the-people,-now-it-is-more-necessary-for-all-Princes,-except-the-Turk-and-the-Soldan,-to-satisfy-the-people-rather-than-the-soldiery,-since-the-former-are-more-powerful-than-the-latter.">And if it was then necessary to satisfy the soldiers rather than the people, because the soldiers were more powerful than the people, now it is more necessary for all Princes, except the Turk and the Soldan, to satisfy the people rather than the soldiery, since the former are more powerful than the latter.</a></h4>
 <div class="outline-text-4" id="text-And-if-it-was-then-necessary-to-satisfy-the-soldiers-rather-than-the-people,-because-the-soldiers-were-more-powerful-than-the-people,-now-it-is-more-necessary-for-all-Princes,-except-the-Turk-and-the-Soldan,-to-satisfy-the-people-rather-than-the-soldiery,-since-the-former-are-more-powerful-than-the-latter.">
 <p>
What about now?
</p>
</div>
</div>

 <div id="outline-container-For-although-the-Prince-be-new,-the-institutions-of-the-State-are-old,-and-are-so-contrived-that-the-elected-Prince-is-accepted-as-though-he-were-an-hereditary-Sovereign." class="outline-4">
 <h4 id="For-although-the-Prince-be-new,-the-institutions-of-the-State-are-old,-and-are-so-contrived-that-the-elected-Prince-is-accepted-as-though-he-were-an-hereditary-Sovereign."> <span class="section-number-4">3.19.6.</span>  <a href="#For-although-the-Prince-be-new,-the-institutions-of-the-State-are-old,-and-are-so-contrived-that-the-elected-Prince-is-accepted-as-though-he-were-an-hereditary-Sovereign.">For although the Prince be new, the institutions of the State are old, and are so contrived that the elected Prince is accepted as though he were an hereditary Sovereign.</a></h4>
 <div class="outline-text-4" id="text-For-although-the-Prince-be-new,-the-institutions-of-the-State-are-old,-and-are-so-contrived-that-the-elected-Prince-is-accepted-as-though-he-were-an-hereditary-Sovereign.">
 <p>
I cannot repeat this as many times as needed. This should be the case
with every civil country. Rules of succession should be complicated. This
by itself brings balance and gives legitimacy.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-20-Whether-Fortresses,-and-Certain-Other-Expedients-to-Which-Princes-Often-Have-Recourse,-are-Profitable-or-Hurtful" class="outline-3">
 <h3 id="Chapter-20-Whether-Fortresses,-and-Certain-Other-Expedients-to-Which-Princes-Often-Have-Recourse,-are-Profitable-or-Hurtful"> <span class="section-number-3">3.20.</span>  <a href="#Chapter-20-Whether-Fortresses,-and-Certain-Other-Expedients-to-Which-Princes-Often-Have-Recourse,-are-Profitable-or-Hurtful">Chapter 20 Whether Fortresses, and Certain Other Expedients to Which Princes Often Have Recourse, are Profitable or Hurtful</a></h3>
 <div class="outline-text-3" id="text-Chapter-20-Whether-Fortresses,-and-Certain-Other-Expedients-to-Which-Princes-Often-Have-Recourse,-are-Profitable-or-Hurtful">
</div>

 <div id="outline-container-To-govern-more-securely-some-Princes-have-disarmed-their-subjects" class="outline-4">
 <h4 id="To-govern-more-securely-some-Princes-have-disarmed-their-subjects"> <span class="section-number-4">3.20.1.</span>  <a href="#To-govern-more-securely-some-Princes-have-disarmed-their-subjects">To govern more securely some Princes have disarmed their subjects</a></h4>
 <div class="outline-text-4" id="text-To-govern-more-securely-some-Princes-have-disarmed-their-subjects">
 <p>
It is year 1532, and they are already talking about the gun laws.
</p>
</div>
</div>

 <div id="outline-container-some-have-built-fortresses,-others-have-dismantled-and-destroyed-them;" class="outline-4">
 <h4 id="some-have-built-fortresses,-others-have-dismantled-and-destroyed-them;"> <span class="section-number-4">3.20.2.</span>  <a href="#some-have-built-fortresses,-others-have-dismantled-and-destroyed-them;">some have built fortresses, others have dismantled and destroyed them;</a></h4>
 <div class="outline-text-4" id="text-some-have-built-fortresses,-others-have-dismantled-and-destroyed-them;">
 <p>
I remember that many castles in Scotland only have 3 walls.
</p>

 <p>
I also remember that the Maginot Line, which failed. But also the Mannerheim line, which withstood.
</p>
</div>
</div>

 <div id="outline-container-It-has-never-chanced-that-any-new-Prince-has-disarmed-his-subjects.-On-the-contrary,-when-he-has-found-them-unarmed-he-has-always-armed-them." class="outline-4">
 <h4 id="It-has-never-chanced-that-any-new-Prince-has-disarmed-his-subjects.-On-the-contrary,-when-he-has-found-them-unarmed-he-has-always-armed-them."> <span class="section-number-4">3.20.3.</span>  <a href="#It-has-never-chanced-that-any-new-Prince-has-disarmed-his-subjects.-On-the-contrary,-when-he-has-found-them-unarmed-he-has-always-armed-them.">It has never chanced that any new Prince has disarmed his subjects. On the contrary, when he has found them unarmed he has always armed them.</a></h4>
 <div class="outline-text-4" id="text-It-has-never-chanced-that-any-new-Prince-has-disarmed-his-subjects.-On-the-contrary,-when-he-has-found-them-unarmed-he-has-always-armed-them.">
</div>

 <ol class="org-ol"> <li> <a id="For-the-arms-thus-provided-become-yours,-those-whom-you-suspected-grow-faithful,-while-those-who-were-faithful-at-the-first,-continue-so,-and-from-your-subjects-become-your-partisans.-And-though-all-your-subjects-cannot-be-armed,-yet-if-those-of-them-whom-you-arm-be-treated-with-marked-favour,-you-can-deal-more-securely-with-the"></a> <a href="#For-the-arms-thus-provided-become-yours,-those-whom-you-suspected-grow-faithful,-while-those-who-were-faithful-at-the-first,-continue-so,-and-from-your-subjects-become-your-partisans.-And-though-all-your-subjects-cannot-be-armed,-yet-if-those-of-them-whom-you-arm-be-treated-with-marked-favour,-you-can-deal-more-securely-with-the">For the arms thus provided become yours, those whom you suspected grow faithful, while those who were faithful at the first, continue so, and from your subjects become your partisans. And though all your subjects cannot be armed, yet if those of them whom you arm be treated with marked favour, you can deal more securely with the</a> <br></br> <div class="outline-text-5" id="text-For-the-arms-thus-provided-become-yours,-those-whom-you-suspected-grow-faithful,-while-those-who-were-faithful-at-the-first,-continue-so,-and-from-your-subjects-become-your-partisans.-And-though-all-your-subjects-cannot-be-armed,-yet-if-those-of-them-whom-you-arm-be-treated-with-marked-favour,-you-can-deal-more-securely-with-the">
 <p>
Again, as long as you are not a tyrant, arming the people  <span class="underline">increases</span>
stability.
</p>
</div>
</li>
</ol></div>
 <div id="outline-container-But-when-a-Prince-acquires-a-new-State,-which-thus-becomes-joined-on-like-a-limb-to-his-old-possessions,-he-must-disarm-its-inhabitants" class="outline-4">
 <h4 id="But-when-a-Prince-acquires-a-new-State,-which-thus-becomes-joined-on-like-a-limb-to-his-old-possessions,-he-must-disarm-its-inhabitants"> <span class="section-number-4">3.20.4.</span>  <a href="#But-when-a-Prince-acquires-a-new-State,-which-thus-becomes-joined-on-like-a-limb-to-his-old-possessions,-he-must-disarm-its-inhabitants">But when a Prince acquires a new State, which thus becomes joined on like a limb to his old possessions, he must disarm its inhabitants</a></h4>
 <div class="outline-text-4" id="text-But-when-a-Prince-acquires-a-new-State,-which-thus-becomes-joined-on-like-a-limb-to-his-old-possessions,-he-must-disarm-its-inhabitants">
 <p>
Which, again, proves that Russia is a colony.
</p>
</div>
</div>

 <div id="outline-container-used-to-promote-dissensions-in-various-subject-towns-with-a-view-to-retain-them-with-less-effort." class="outline-4">
 <h4 id="used-to-promote-dissensions-in-various-subject-towns-with-a-view-to-retain-them-with-less-effort."> <span class="section-number-4">3.20.5.</span>  <a href="#used-to-promote-dissensions-in-various-subject-towns-with-a-view-to-retain-them-with-less-effort.">used to promote dissensions in various subject towns with a view to retain them with less effort.</a></h4>
 <div class="outline-text-4" id="text-used-to-promote-dissensions-in-various-subject-towns-with-a-view-to-retain-them-with-less-effort.">
 <p>
Isn’t the KGB home-growing nazis in U.S.S.R. the example of this? Trying
to use the “divide and conquer” strategy.
</p>

 <p>
On the other hand, maybe he just argues about a multiparty system?
</p>
</div>

 <ol class="org-ol"> <li> <a id="at-the-present-day-it-seems-impossible-to-recommend-it-as-a-general-rule-of-policy.-For-I-do-not-believe-that-divisions-purposely-caused-can-ever-lead-to-good;-on-the-contrary,-when-an-enemy-approaches,-divided-cities-are-lost-at-once,-for-the-weaker-faction-will-always-side-with-the-invader,-and-the-other-will-not-be-able-to-stand-alone."></a> <a href="#at-the-present-day-it-seems-impossible-to-recommend-it-as-a-general-rule-of-policy.-For-I-do-not-believe-that-divisions-purposely-caused-can-ever-lead-to-good;-on-the-contrary,-when-an-enemy-approaches,-divided-cities-are-lost-at-once,-for-the-weaker-faction-will-always-side-with-the-invader,-and-the-other-will-not-be-able-to-stand-alone.">at the present day it seems impossible to recommend it as a general rule of policy. For I do not believe that divisions purposely caused can ever lead to good; on the contrary, when an enemy approaches, divided cities are lost at once, for the weaker faction will always side with the invader, and the other will not be able to stand alone.</a> <br></br> <div class="outline-text-5" id="text-at-the-present-day-it-seems-impossible-to-recommend-it-as-a-general-rule-of-policy.-For-I-do-not-believe-that-divisions-purposely-caused-can-ever-lead-to-good;-on-the-contrary,-when-an-enemy-approaches,-divided-cities-are-lost-at-once,-for-the-weaker-faction-will-always-side-with-the-invader,-and-the-other-will-not-be-able-to-stand-alone.">
 <p>
I think, we have seen several confirmations to that.
</p>

 <p>
If he is actually speaking about the multi-party system, then the
“opposition bloc” in Ukraine may be an example of “siding with the
enemy”.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-Fortune,-on-that-account,-when-she-desires-to-aggrandize-a-new-Prince,-who-has-more-need-than-an-hereditary-Prince-to-win-reputation,-causes-enemies-to-spring-up,-and-urges-them-on-to-attack-him,-to-the-end-that-he-may-have-opportunities-toovercome-them,-and-make-his-ascent-by-the-very-ladder-which-they-have-planted.-For-which-reason,-many-are-of-the-opinion-that-a-wise-Prince,-when-he-has-the-occasion,-ought-dexterously-to-promote-hostility-to-himself-in-certain-quarters,-in-order-that-his-greatness-may-be-enhanced-by-crushing-it." class="outline-4">
 <h4 id="Fortune,-on-that-account,-when-she-desires-to-aggrandize-a-new-Prince,-who-has-more-need-than-an-hereditary-Prince-to-win-reputation,-causes-enemies-to-spring-up,-and-urges-them-on-to-attack-him,-to-the-end-that-he-may-have-opportunities-toovercome-them,-and-make-his-ascent-by-the-very-ladder-which-they-have-planted.-For-which-reason,-many-are-of-the-opinion-that-a-wise-Prince,-when-he-has-the-occasion,-ought-dexterously-to-promote-hostility-to-himself-in-certain-quarters,-in-order-that-his-greatness-may-be-enhanced-by-crushing-it."> <span class="section-number-4">3.20.6.</span>  <a href="#Fortune,-on-that-account,-when-she-desires-to-aggrandize-a-new-Prince,-who-has-more-need-than-an-hereditary-Prince-to-win-reputation,-causes-enemies-to-spring-up,-and-urges-them-on-to-attack-him,-to-the-end-that-he-may-have-opportunities-toovercome-them,-and-make-his-ascent-by-the-very-ladder-which-they-have-planted.-For-which-reason,-many-are-of-the-opinion-that-a-wise-Prince,-when-he-has-the-occasion,-ought-dexterously-to-promote-hostility-to-himself-in-certain-quarters,-in-order-that-his-greatness-may-be-enhanced-by-crushing-it.">Fortune, on that account, when she desires to aggrandize a new Prince, who has more need than an hereditary Prince to win reputation, causes enemies to spring up, and urges them on to attack him, to the end that he may have opportunities toovercome them, and make his ascent by the very ladder which they have planted. For which reason, many are of the opinion that a wise Prince, when he has the occasion, ought dexterously to promote hostility to himself in certain quarters, in order that his greatness may be enhanced by crushing it.</a></h4>
 <div class="outline-text-4" id="text-Fortune,-on-that-account,-when-she-desires-to-aggrandize-a-new-Prince,-who-has-more-need-than-an-hereditary-Prince-to-win-reputation,-causes-enemies-to-spring-up,-and-urges-them-on-to-attack-him,-to-the-end-that-he-may-have-opportunities-toovercome-them,-and-make-his-ascent-by-the-very-ladder-which-they-have-planted.-For-which-reason,-many-are-of-the-opinion-that-a-wise-Prince,-when-he-has-the-occasion,-ought-dexterously-to-promote-hostility-to-himself-in-certain-quarters,-in-order-that-his-greatness-may-be-enhanced-by-crushing-it.">
 <p>
A very long thought, but, seemingly, exactly what happened to Zelensky.
</p>
</div>
</div>

 <div id="outline-container-those-men-who-at-the-beginning-of-a-reign-have-been-hostile,-if-of-a-sort-requiring-support-to-maintain-them,-may-always-be-won-over-by-the-Prince-with-much-ease,-and-are-the-more-bound-to-serve-him-faithfully-because-they-know-that-they-have-to-efface-by-their-conduct-the-unfavourable-impression-he-had-formed-of-them" class="outline-4">
 <h4 id="those-men-who-at-the-beginning-of-a-reign-have-been-hostile,-if-of-a-sort-requiring-support-to-maintain-them,-may-always-be-won-over-by-the-Prince-with-much-ease,-and-are-the-more-bound-to-serve-him-faithfully-because-they-know-that-they-have-to-efface-by-their-conduct-the-unfavourable-impression-he-had-formed-of-them"> <span class="section-number-4">3.20.7.</span>  <a href="#those-men-who-at-the-beginning-of-a-reign-have-been-hostile,-if-of-a-sort-requiring-support-to-maintain-them,-may-always-be-won-over-by-the-Prince-with-much-ease,-and-are-the-more-bound-to-serve-him-faithfully-because-they-know-that-they-have-to-efface-by-their-conduct-the-unfavourable-impression-he-had-formed-of-them">those men who at the beginning of a reign have been hostile, if of a sort requiring support to maintain them, may always be won over by the Prince with much ease, and are the more bound to serve him faithfully because they know that they have to efface by their conduct the unfavourable impression he had formed of them</a></h4>
 <div class="outline-text-4" id="text-those-men-who-at-the-beginning-of-a-reign-have-been-hostile,-if-of-a-sort-requiring-support-to-maintain-them,-may-always-be-won-over-by-the-Prince-with-much-ease,-and-are-the-more-bound-to-serve-him-faithfully-because-they-know-that-they-have-to-efface-by-their-conduct-the-unfavourable-impression-he-had-formed-of-them">
 <p>
Keep in mind.
</p>
</div>
</div>

 <div id="outline-container-the-Prince-who-is-more-afraid-of-his-subjects-than-of-strangers-ought-to-build-fortresses,-while-he-who-is-more-afraid-of-strangers-than-of-his-subjects,-should-leave-them-alone." class="outline-4">
 <h4 id="the-Prince-who-is-more-afraid-of-his-subjects-than-of-strangers-ought-to-build-fortresses,-while-he-who-is-more-afraid-of-strangers-than-of-his-subjects,-should-leave-them-alone."> <span class="section-number-4">3.20.8.</span>  <a href="#the-Prince-who-is-more-afraid-of-his-subjects-than-of-strangers-ought-to-build-fortresses,-while-he-who-is-more-afraid-of-strangers-than-of-his-subjects,-should-leave-them-alone.">the Prince who is more afraid of his subjects than of strangers ought to build fortresses, while he who is more afraid of strangers than of his subjects, should leave them alone.</a></h4>
 <div class="outline-text-4" id="text-the-Prince-who-is-more-afraid-of-his-subjects-than-of-strangers-ought-to-build-fortresses,-while-he-who-is-more-afraid-of-strangers-than-of-his-subjects,-should-leave-them-alone.">
 <p>
Cf. Putin’s oligarchs building huge isolated palaces, and those castles
in Scotland.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-21-How-a-Prince-Should-Bear-Himself-So-As-to-Acquire-Reputation" class="outline-3">
 <h3 id="Chapter-21-How-a-Prince-Should-Bear-Himself-So-As-to-Acquire-Reputation"> <span class="section-number-3">3.21.</span>  <a href="#Chapter-21-How-a-Prince-Should-Bear-Himself-So-As-to-Acquire-Reputation">Chapter 21 How a Prince Should Bear Himself So As to Acquire Reputation</a></h3>
 <div class="outline-text-3" id="text-Chapter-21-How-a-Prince-Should-Bear-Himself-So-As-to-Acquire-Reputation">
</div>

 <div id="outline-container-Nothing-makes-a-Prince-so-well-thought-of-as-to-undertake-great-enterprises-and-give-striking-proofs-of-his-capacity." class="outline-4">
 <h4 id="Nothing-makes-a-Prince-so-well-thought-of-as-to-undertake-great-enterprises-and-give-striking-proofs-of-his-capacity."> <span class="section-number-4">3.21.1.</span>  <a href="#Nothing-makes-a-Prince-so-well-thought-of-as-to-undertake-great-enterprises-and-give-striking-proofs-of-his-capacity.">Nothing makes a Prince so well thought of as to undertake great enterprises and give striking proofs of his capacity.</a></h4>
 <div class="outline-text-4" id="text-Nothing-makes-a-Prince-so-well-thought-of-as-to-undertake-great-enterprises-and-give-striking-proofs-of-his-capacity.">
 <p>
Proofs! Collect your chips, Sir! Roleplaying awaits: patents, papers,
whatever.
</p>
</div>
</div>

 <div id="outline-container-he-kept-the-minds-of-his-subjects-in-suspense-and-admiration,-and-occupied-with-the-results-of-his-actions,-which-arose-one-out-of-another-in-such-close-succession-as-left-neither-time-nor-opportunity-to-oppose-them." class="outline-4">
 <h4 id="he-kept-the-minds-of-his-subjects-in-suspense-and-admiration,-and-occupied-with-the-results-of-his-actions,-which-arose-one-out-of-another-in-such-close-succession-as-left-neither-time-nor-opportunity-to-oppose-them."> <span class="section-number-4">3.21.2.</span>  <a href="#he-kept-the-minds-of-his-subjects-in-suspense-and-admiration,-and-occupied-with-the-results-of-his-actions,-which-arose-one-out-of-another-in-such-close-succession-as-left-neither-time-nor-opportunity-to-oppose-them.">he kept the minds of his subjects in suspense and admiration, and occupied with the results of his actions, which arose one out of another in such close succession as left neither time nor opportunity to oppose them.</a></h4>
 <div class="outline-text-4" id="text-he-kept-the-minds-of-his-subjects-in-suspense-and-admiration,-and-occupied-with-the-results-of-his-actions,-which-arose-one-out-of-another-in-such-close-succession-as-left-neither-time-nor-opportunity-to-oppose-them.">
 <p>
Interesting. Seems like that Army Principle: sweep your drilling square
with a digging bar, not a broom.
</p>
</div>
</div>

 <div id="outline-container-A-Prince-is-likewise-esteemed-who-is-a-stanch-friend-and-a-thorough-foe,-that-is-to-say,-who-without-reserve-openly-declares-for-one-against-another,-this-being-always-a-more-advantageous-course-than-to-stand-neutral." class="outline-4">
 <h4 id="A-Prince-is-likewise-esteemed-who-is-a-stanch-friend-and-a-thorough-foe,-that-is-to-say,-who-without-reserve-openly-declares-for-one-against-another,-this-being-always-a-more-advantageous-course-than-to-stand-neutral."> <span class="section-number-4">3.21.3.</span>  <a href="#A-Prince-is-likewise-esteemed-who-is-a-stanch-friend-and-a-thorough-foe,-that-is-to-say,-who-without-reserve-openly-declares-for-one-against-another,-this-being-always-a-more-advantageous-course-than-to-stand-neutral.">A Prince is likewise esteemed who is a stanch friend and a thorough foe, that is to say, who without reserve openly declares for one against another, this being always a more advantageous course than to stand neutral.</a></h4>
 <div class="outline-text-4" id="text-A-Prince-is-likewise-esteemed-who-is-a-stanch-friend-and-a-thorough-foe,-that-is-to-say,-who-without-reserve-openly-declares-for-one-against-another,-this-being-always-a-more-advantageous-course-than-to-stand-neutral.">
 <p>
Here he is speaking of the actors of the same statue.
</p>

 <p>
Hm. Seems like this stance has become complete obsolete. Switzerland,
Turkey, China, seem to be only becoming more respected due to their
ambiguous or neutral position.
</p>
</div>
</div>

 <div id="outline-container-Irresolute-Princes,-to-escape-immediate-danger,-commonly-follow-the-neutral-path,-in-most-instances-to-their-destruction." class="outline-4">
 <h4 id="Irresolute-Princes,-to-escape-immediate-danger,-commonly-follow-the-neutral-path,-in-most-instances-to-their-destruction."> <span class="section-number-4">3.21.4.</span>  <a href="#Irresolute-Princes,-to-escape-immediate-danger,-commonly-follow-the-neutral-path,-in-most-instances-to-their-destruction.">Irresolute Princes, to escape immediate danger, commonly follow the neutral path, in most instances to their destruction.</a></h4>
 <div class="outline-text-4" id="text-Irresolute-Princes,-to-escape-immediate-danger,-commonly-follow-the-neutral-path,-in-most-instances-to-their-destruction.">
 <p>
Here we can have a look at the “general population” of Russia, who are
seemingly neutral and “not political”, who think that his is the safest
way. But they still bear the tax burden, and the sanctions.
</p>
</div>
</div>

 <div id="outline-container-And-here-let-it-be-noted-that-a-Prince-should-be-careful-never-to-join-with-one-stronger-than-himself-in-attacking-others,-unless,-as-already-said,-he-be-driven-to-it-by-necessity." class="outline-4">
 <h4 id="And-here-let-it-be-noted-that-a-Prince-should-be-careful-never-to-join-with-one-stronger-than-himself-in-attacking-others,-unless,-as-already-said,-he-be-driven-to-it-by-necessity."> <span class="section-number-4">3.21.5.</span>  <a href="#And-here-let-it-be-noted-that-a-Prince-should-be-careful-never-to-join-with-one-stronger-than-himself-in-attacking-others,-unless,-as-already-said,-he-be-driven-to-it-by-necessity.">And here let it be noted that a Prince should be careful never to join with one stronger than himself in attacking others, unless, as already said, he be driven to it by necessity.</a></h4>
 <div class="outline-text-4" id="text-And-here-let-it-be-noted-that-a-Prince-should-be-careful-never-to-join-with-one-stronger-than-himself-in-attacking-others,-unless,-as-already-said,-he-be-driven-to-it-by-necessity.">
 <p>
Europe supporting Ukraine? Who is weaker than Russia, but with Europe
combined may happen to be stronger?
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-22-Of-the-Secretaries-of-Princes" class="outline-3">
 <h3 id="Chapter-22-Of-the-Secretaries-of-Princes"> <span class="section-number-3">3.22.</span>  <a href="#Chapter-22-Of-the-Secretaries-of-Princes">Chapter 22 Of the Secretaries of Princes</a></h3>
 <div class="outline-text-3" id="text-Chapter-22-Of-the-Secretaries-of-Princes">
</div>

 <div id="outline-container-And-since-there-are-three-scales-of-intelligence,-one-which-understands-by-itself,-a-second-which-understands-what-is-shown-it-by-others,-and-a-third-which-understands-neither-by-itself-nor-on-the-showing-of-others" class="outline-4">
 <h4 id="And-since-there-are-three-scales-of-intelligence,-one-which-understands-by-itself,-a-second-which-understands-what-is-shown-it-by-others,-and-a-third-which-understands-neither-by-itself-nor-on-the-showing-of-others"> <span class="section-number-4">3.22.1.</span>  <a href="#And-since-there-are-three-scales-of-intelligence,-one-which-understands-by-itself,-a-second-which-understands-what-is-shown-it-by-others,-and-a-third-which-understands-neither-by-itself-nor-on-the-showing-of-others">And since there are three scales of intelligence, one which understands by itself, a second which understands what is shown it by others, and a third which understands neither by itself nor on the showing of others</a></h4>
 <div class="outline-text-4" id="text-And-since-there-are-three-scales-of-intelligence,-one-which-understands-by-itself,-a-second-which-understands-what-is-shown-it-by-others,-and-a-third-which-understands-neither-by-itself-nor-on-the-showing-of-others">
 <p>
In simple words:
</p>
 <ol class="org-ol"> <li>Learn by yourself</li>
 <li>Learn by learning tools</li>
 <li>Do not learn</li>
</ol></div>
</div>

 <div id="outline-container-When-you-see-a-Minister-thinking-more-of-himself-than-of-you,-and-in-all-his-actions-seeking-his-own-ends,-that-man-can-never-be-a-good-Minister-or-one-that-you-can-trust." class="outline-4">
 <h4 id="When-you-see-a-Minister-thinking-more-of-himself-than-of-you,-and-in-all-his-actions-seeking-his-own-ends,-that-man-can-never-be-a-good-Minister-or-one-that-you-can-trust."> <span class="section-number-4">3.22.2.</span>  <a href="#When-you-see-a-Minister-thinking-more-of-himself-than-of-you,-and-in-all-his-actions-seeking-his-own-ends,-that-man-can-never-be-a-good-Minister-or-one-that-you-can-trust.">When you see a Minister thinking more of himself than of you, and in all his actions seeking his own ends, that man can never be a good Minister or one that you can trust.</a></h4>
 <div class="outline-text-4" id="text-When-you-see-a-Minister-thinking-more-of-himself-than-of-you,-and-in-all-his-actions-seeking-his-own-ends,-that-man-can-never-be-a-good-Minister-or-one-that-you-can-trust.">
 <p>
Too true.
</p>

 <p>
Also, true for almost all civil servants over there.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-23-That-Flatterers-Should-Be-Shunned" class="outline-3">
 <h3 id="Chapter-23-That-Flatterers-Should-Be-Shunned"> <span class="section-number-3">3.23.</span>  <a href="#Chapter-23-That-Flatterers-Should-Be-Shunned">Chapter 23 That Flatterers Should Be Shunned</a></h3>
 <div class="outline-text-3" id="text-Chapter-23-That-Flatterers-Should-Be-Shunned">
</div>

 <div id="outline-container-there-is-no-way-to-guard-against-flattery-but-by-letting-it-be-seen-that-you-take-no-offense-in-hearing-the-truth" class="outline-4">
 <h4 id="there-is-no-way-to-guard-against-flattery-but-by-letting-it-be-seen-that-you-take-no-offense-in-hearing-the-truth"> <span class="section-number-4">3.23.1.</span>  <a href="#there-is-no-way-to-guard-against-flattery-but-by-letting-it-be-seen-that-you-take-no-offense-in-hearing-the-truth">there is no way to guard against flattery but by letting it be seen that you take no offense in hearing the truth</a></h4>
 <div class="outline-text-4" id="text-there-is-no-way-to-guard-against-flattery-but-by-letting-it-be-seen-that-you-take-no-offense-in-hearing-the-truth">
 <p>
Important!
</p>
</div>
</div>

 <div id="outline-container-but-when-every-one-is-free-to-tell-you-the-truth-respect-falls-short" class="outline-4">
 <h4 id="but-when-every-one-is-free-to-tell-you-the-truth-respect-falls-short"> <span class="section-number-4">3.23.2.</span>  <a href="#but-when-every-one-is-free-to-tell-you-the-truth-respect-falls-short">but when every one is free to tell you the truth respect falls short</a></h4>
 <div class="outline-text-4" id="text-but-when-every-one-is-free-to-tell-you-the-truth-respect-falls-short">
 <p>
This is one of the most important thoughts of this book. Some controlled
degree of flattery is unavoidable.
</p>
</div>
</div>

 <div id="outline-container-he-never-discloses-his-intentions-to-any,-nor-asks-their-opinion;-and-it-is-only-when-his-plans-are-to-be-carried-out-that-they-begin-to-be-discovered-and-known" class="outline-4">
 <h4 id="he-never-discloses-his-intentions-to-any,-nor-asks-their-opinion;-and-it-is-only-when-his-plans-are-to-be-carried-out-that-they-begin-to-be-discovered-and-known"> <span class="section-number-4">3.23.3.</span>  <a href="#he-never-discloses-his-intentions-to-any,-nor-asks-their-opinion;-and-it-is-only-when-his-plans-are-to-be-carried-out-that-they-begin-to-be-discovered-and-known">he never discloses his intentions to any, nor asks their opinion; and it is only when his plans are to be carried out that they begin to be discovered and known</a></h4>
 <div class="outline-text-4" id="text-he-never-discloses-his-intentions-to-any,-nor-asks-their-opinion;-and-it-is-only-when-his-plans-are-to-be-carried-out-that-they-begin-to-be-discovered-and-known">
 <p>
Heh. True. Never tell anyone your plans.
</p>
</div>
</div>

 <div id="outline-container-A-Prince,-therefore,-ought-always-to-take-counsel,-but-at-such-times-and-reasons-only-as-he-himself-pleases,-and-not-when-it-pleases-others" class="outline-4">
 <h4 id="A-Prince,-therefore,-ought-always-to-take-counsel,-but-at-such-times-and-reasons-only-as-he-himself-pleases,-and-not-when-it-pleases-others"> <span class="section-number-4">3.23.4.</span>  <a href="#A-Prince,-therefore,-ought-always-to-take-counsel,-but-at-such-times-and-reasons-only-as-he-himself-pleases,-and-not-when-it-pleases-others">A Prince, therefore, ought always to take counsel, but at such times and reasons only as he himself pleases, and not when it pleases others</a></h4>
 <div class="outline-text-4" id="text-A-Prince,-therefore,-ought-always-to-take-counsel,-but-at-such-times-and-reasons-only-as-he-himself-pleases,-and-not-when-it-pleases-others">
 <p>
Ask people for advice! Really. They will reveal their thoughts.
</p>
</div>
</div>

 <div id="outline-container-discourage-every-one-from-obtruding-advice-on-matters-on-which-it-is-not-sought" class="outline-4">
 <h4 id="discourage-every-one-from-obtruding-advice-on-matters-on-which-it-is-not-sought"> <span class="section-number-4">3.23.5.</span>  <a href="#discourage-every-one-from-obtruding-advice-on-matters-on-which-it-is-not-sought">discourage every one from obtruding advice on matters on which it is not sought</a></h4>
 <div class="outline-text-4" id="text-discourage-every-one-from-obtruding-advice-on-matters-on-which-it-is-not-sought">
 <p>
True, although not always. True, because it allows filtering the noise.
Not entirely, because still, getting other people’s thoughts is
important.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-24-Why-the-Princes-of-Italy-Have-Lost-Their-States" class="outline-3">
 <h3 id="Chapter-24-Why-the-Princes-of-Italy-Have-Lost-Their-States"> <span class="section-number-3">3.24.</span>  <a href="#Chapter-24-Why-the-Princes-of-Italy-Have-Lost-Their-States">Chapter 24 Why the Princes of Italy Have Lost Their States</a></h3>
 <div class="outline-text-3" id="text-Chapter-24-Why-the-Princes-of-Italy-Have-Lost-Their-States">
</div>

 <div id="outline-container-For-men-are-more-nearly-touched-by-things-present-than-by-things-past,-and-when-they-find-themselves-well-off-as-they-are,-enjoy-their-felicity-and-seek-no-further;-nay,-are-ready-to-do-their-utmost-in-defence-of-the-new-Prince,-provided-he-be-not-wanting-to-himself-in-other-respects." class="outline-4">
 <h4 id="For-men-are-more-nearly-touched-by-things-present-than-by-things-past,-and-when-they-find-themselves-well-off-as-they-are,-enjoy-their-felicity-and-seek-no-further;-nay,-are-ready-to-do-their-utmost-in-defence-of-the-new-Prince,-provided-he-be-not-wanting-to-himself-in-other-respects."> <span class="section-number-4">3.24.1.</span>  <a href="#For-men-are-more-nearly-touched-by-things-present-than-by-things-past,-and-when-they-find-themselves-well-off-as-they-are,-enjoy-their-felicity-and-seek-no-further;-nay,-are-ready-to-do-their-utmost-in-defence-of-the-new-Prince,-provided-he-be-not-wanting-to-himself-in-other-respects.">For men are more nearly touched by things present than by things past, and when they find themselves well off as they are, enjoy their felicity and seek no further; nay, are ready to do their utmost in defence of the new Prince, provided he be not wanting to himself in other respects.</a></h4>
 <div class="outline-text-4" id="text-For-men-are-more-nearly-touched-by-things-present-than-by-things-past,-and-when-they-find-themselves-well-off-as-they-are,-enjoy-their-felicity-and-seek-no-further;-nay,-are-ready-to-do-their-utmost-in-defence-of-the-new-Prince,-provided-he-be-not-wanting-to-himself-in-other-respects.">
 <p>
I think, this thought is still the biggest harbinger of hope for the
Russian Freedom. The ideology is transient, the life is real. The Fridge
will beat the TV eventually.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-25-What-Fortune-Can-Effect-in-Human-Affairs,-and-How-She-May-Be-Withstood" class="outline-3">
 <h3 id="Chapter-25-What-Fortune-Can-Effect-in-Human-Affairs,-and-How-She-May-Be-Withstood"> <span class="section-number-3">3.25.</span>  <a href="#Chapter-25-What-Fortune-Can-Effect-in-Human-Affairs,-and-How-She-May-Be-Withstood">Chapter 25 What Fortune Can Effect in Human Affairs, and How She May Be Withstood</a></h3>
 <div class="outline-text-3" id="text-Chapter-25-What-Fortune-Can-Effect-in-Human-Affairs,-and-How-She-May-Be-Withstood">
</div>

 <div id="outline-container-Fortune-is-a-woman-who-to-be-kept-under-must-be-beaten-and-roughly-handled;-and-we-see-that-she-suffers-herself-to-be-more-readily-mastered-by-those-who-so-treat-her-than-by-those-who-are-more-timid-in-their-approaches." class="outline-4">
 <h4 id="Fortune-is-a-woman-who-to-be-kept-under-must-be-beaten-and-roughly-handled;-and-we-see-that-she-suffers-herself-to-be-more-readily-mastered-by-those-who-so-treat-her-than-by-those-who-are-more-timid-in-their-approaches."> <span class="section-number-4">3.25.1.</span>  <a href="#Fortune-is-a-woman-who-to-be-kept-under-must-be-beaten-and-roughly-handled;-and-we-see-that-she-suffers-herself-to-be-more-readily-mastered-by-those-who-so-treat-her-than-by-those-who-are-more-timid-in-their-approaches.">Fortune is a woman who to be kept under must be beaten and roughly handled; and we see that she suffers herself to be more readily mastered by those who so treat her than by those who are more timid in their approaches.</a></h4>
 <div class="outline-text-4" id="text-Fortune-is-a-woman-who-to-be-kept-under-must-be-beaten-and-roughly-handled;-and-we-see-that-she-suffers-herself-to-be-more-readily-mastered-by-those-who-so-treat-her-than-by-those-who-are-more-timid-in-their-approaches.">
 <p>
Times have changed indeed.
</p>
</div>
</div>

 <div id="outline-container-And-always,-like-a-woman,-she-favours-the-young,-because-they-are-less-scrupulous-and-fiercer,-and-command-her-with-greater-audacity." class="outline-4">
 <h4 id="And-always,-like-a-woman,-she-favours-the-young,-because-they-are-less-scrupulous-and-fiercer,-and-command-her-with-greater-audacity."> <span class="section-number-4">3.25.2.</span>  <a href="#And-always,-like-a-woman,-she-favours-the-young,-because-they-are-less-scrupulous-and-fiercer,-and-command-her-with-greater-audacity.">And always, like a woman, she favours the young, because they are less scrupulous and fiercer, and command her with greater audacity.</a></h4>
 <div class="outline-text-4" id="text-And-always,-like-a-woman,-she-favours-the-young,-because-they-are-less-scrupulous-and-fiercer,-and-command-her-with-greater-audacity.">
 <p>
Young are less scrupulous than old? Does not seem to be so in our times.
</p>
</div>
</div>
</div>

 <div id="outline-container-Chapter-26-An-Exhortation-to-Liberate-Italy-from-the-Barbarians" class="outline-3">
 <h3 id="Chapter-26-An-Exhortation-to-Liberate-Italy-from-the-Barbarians"> <span class="section-number-3">3.26.</span>  <a href="#Chapter-26-An-Exhortation-to-Liberate-Italy-from-the-Barbarians">Chapter 26 An Exhortation to Liberate Italy from the Barbarians</a></h3>
 <div class="outline-text-3" id="text-Chapter-26-An-Exhortation-to-Liberate-Italy-from-the-Barbarians">
 <p>
Who are the “barbarians” he is writing of? The arabs?
</p>
</div>

 <div id="outline-container-our-country,-left-almost-without-life,-still-waits-to-know-who-it-is-that-is-to-heal-her-bruises,-to-put-an-end-to-the-devastation-and-plunder-of-Lombardy,-to-the-exactions-and-imposts-of-Naples-and-Tuscany,-and-to-stanch-those-wounds-of-hers-which-long-neglect-has-changed-into-running-sores." class="outline-4">
 <h4 id="our-country,-left-almost-without-life,-still-waits-to-know-who-it-is-that-is-to-heal-her-bruises,-to-put-an-end-to-the-devastation-and-plunder-of-Lombardy,-to-the-exactions-and-imposts-of-Naples-and-Tuscany,-and-to-stanch-those-wounds-of-hers-which-long-neglect-has-changed-into-running-sores."> <span class="section-number-4">3.26.1.</span>  <a href="#our-country,-left-almost-without-life,-still-waits-to-know-who-it-is-that-is-to-heal-her-bruises,-to-put-an-end-to-the-devastation-and-plunder-of-Lombardy,-to-the-exactions-and-imposts-of-Naples-and-Tuscany,-and-to-stanch-those-wounds-of-hers-which-long-neglect-has-changed-into-running-sores.">our country, left almost without life, still waits to know who it is that is to heal her bruises, to put an end to the devastation and plunder of Lombardy, to the exactions and imposts of Naples and Tuscany, and to stanch those wounds of hers which long neglect has changed into running sores.</a></h4>
 <div class="outline-text-4" id="text-our-country,-left-almost-without-life,-still-waits-to-know-who-it-is-that-is-to-heal-her-bruises,-to-put-an-end-to-the-devastation-and-plunder-of-Lombardy,-to-the-exactions-and-imposts-of-Naples-and-Tuscany,-and-to-stanch-those-wounds-of-hers-which-long-neglect-has-changed-into-running-sores.">
 <p>
Our country, left almost without life, still waits to know who it is that
is to heal her bruises, to put an end to the devastation and plunder of
Primorie, to the exactions and imposts of Krasnoyarsk and Krasnodar, and
to stanch those wounds of hers which long neglect has changed into
running sores.
</p>
</div>
</div>

 <div id="outline-container-For-their-undertakings-were-not-more-just-than-this,-nor-more-easy,-nor-was-God-more-their-friend-than-yours." class="outline-4">
 <h4 id="For-their-undertakings-were-not-more-just-than-this,-nor-more-easy,-nor-was-God-more-their-friend-than-yours."> <span class="section-number-4">3.26.2.</span>  <a href="#For-their-undertakings-were-not-more-just-than-this,-nor-more-easy,-nor-was-God-more-their-friend-than-yours.">For their undertakings were not more just than this, nor more easy, nor was God more their friend than yours.</a></h4>
 <div class="outline-text-4" id="text-For-their-undertakings-were-not-more-just-than-this,-nor-more-easy,-nor-was-God-more-their-friend-than-yours.">
 <p>
Indeed.
</p>
</div>
</div>

 <div id="outline-container-What-remains-to-be-done-must-be-done-by-you;-since-in-order-not-to-deprive-us-of-our-free-will-and-such-share-of-glory-as-belongs-to-us,-God-will-not-do-everything-himself." class="outline-4">
 <h4 id="What-remains-to-be-done-must-be-done-by-you;-since-in-order-not-to-deprive-us-of-our-free-will-and-such-share-of-glory-as-belongs-to-us,-God-will-not-do-everything-himself."> <span class="section-number-4">3.26.3.</span>  <a href="#What-remains-to-be-done-must-be-done-by-you;-since-in-order-not-to-deprive-us-of-our-free-will-and-such-share-of-glory-as-belongs-to-us,-God-will-not-do-everything-himself.">What remains to be done must be done by you; since in order not to deprive us of our free will and such share of glory as belongs to us, God will not do everything himself.</a></h4>
 <div class="outline-text-4" id="text-What-remains-to-be-done-must-be-done-by-you;-since-in-order-not-to-deprive-us-of-our-free-will-and-such-share-of-glory-as-belongs-to-us,-God-will-not-do-everything-himself.">
 <p>
Yes, “dear” Russian Free People. Neither God, nor anyone else will do your
work instead of you.
</p>
</div>
</div>

 <div id="outline-container-For-those-who-are-skilful-in-arms-will-not-obey,-and-every-one-thinkshimself-skillful,-since-hitherto-we-have-had-none-among-us-so-raised-by-merit-or-by-fortune-above-his-fellows-that-they-should-yield-him-the-palm." class="outline-4">
 <h4 id="For-those-who-are-skilful-in-arms-will-not-obey,-and-every-one-thinkshimself-skillful,-since-hitherto-we-have-had-none-among-us-so-raised-by-merit-or-by-fortune-above-his-fellows-that-they-should-yield-him-the-palm."> <span class="section-number-4">3.26.4.</span>  <a href="#For-those-who-are-skilful-in-arms-will-not-obey,-and-every-one-thinkshimself-skillful,-since-hitherto-we-have-had-none-among-us-so-raised-by-merit-or-by-fortune-above-his-fellows-that-they-should-yield-him-the-palm.">For those who are skilful in arms will not obey, and every one thinkshimself skillful, since hitherto we have had none among us so raised by merit or by fortune above his fellows that they should yield him the palm.</a></h4>
 <div class="outline-text-4" id="text-For-those-who-are-skilful-in-arms-will-not-obey,-and-every-one-thinkshimself-skillful,-since-hitherto-we-have-had-none-among-us-so-raised-by-merit-or-by-fortune-above-his-fellows-that-they-should-yield-him-the-palm.">
 <p>
Indeed, the skillful in arms will not obey, and nobody has yet risen to
be respected enough.
</p>
</div>
</div>

 <div id="outline-container-before-all-things-necessary,-as-the-true-foundation-of-every-such-attempt,-to-be-provided-with-national-troops,-since-you-can-have-no-braver,-truer,-or-more-faithful-soldiers" class="outline-4">
 <h4 id="before-all-things-necessary,-as-the-true-foundation-of-every-such-attempt,-to-be-provided-with-national-troops,-since-you-can-have-no-braver,-truer,-or-more-faithful-soldiers"> <span class="section-number-4">3.26.5.</span>  <a href="#before-all-things-necessary,-as-the-true-foundation-of-every-such-attempt,-to-be-provided-with-national-troops,-since-you-can-have-no-braver,-truer,-or-more-faithful-soldiers">before all things necessary, as the true foundation of every such attempt, to be provided with national troops, since you can have no braver, truer, or more faithful soldiers</a></h4>
 <div class="outline-text-4" id="text-before-all-things-necessary,-as-the-true-foundation-of-every-such-attempt,-to-be-provided-with-national-troops,-since-you-can-have-no-braver,-truer,-or-more-faithful-soldiers">
 <p>
 <span class="underline">National troops</span>
</p>
</div>
</div>

 <div id="outline-container-This-barbarian-tyranny-stinks-in-all-nostrils." class="outline-4">
 <h4 id="This-barbarian-tyranny-stinks-in-all-nostrils."> <span class="section-number-4">3.26.6.</span>  <a href="#This-barbarian-tyranny-stinks-in-all-nostrils.">This barbarian tyranny stinks in all nostrils.</a></h4>
 <div class="outline-text-4" id="text-This-barbarian-tyranny-stinks-in-all-nostrils.">
 <p>
Emotional statement!
</p>
</div>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2022-08-29_Machiavelli-Prince-Notes-and-Words/index.html"/>
  <id>https://lockywolf.net/2022-08-29_Machiavelli-Prince-Notes-and-Words/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Which networked filesystem I want.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Which networked filesystem I want.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Body">1.  <span class="todo TODO">TODO</span> Body</a>
 <ul> <li> <a href="#What-we-have-now.">1.1. What we have now.</a>
 <ul> <li> <a href="#NFS">1.1.1. NFS</a></li>
 <li> <a href="#Google-Drive">1.1.2. Google Drive</a></li>
 <li> <a href="#rsync">1.1.3. rsync</a></li>
</ul></li>
 <li> <a href="#What-is-the-problem?">1.2. What is the problem?</a></li>
 <li> <a href="#How-would-a-perfect-networked-fs-look-like?">1.3. How would a perfect networked fs look like?</a></li>
</ul></li>
</ul></div>
</nav> <p>
This files is about “how to design a good networked FS in 2022”.
</p>

 <section id="outline-container-Body" class="outline-2"> <h2 id="Body"> <span class="section-number-2">1.</span>  <a href="#Body"> <span class="todo TODO">TODO</span> Body</a></h2>
 <div class="outline-text-2" id="text-Body">
</div>

 <div id="outline-container-What-we-have-now." class="outline-3">
 <h3 id="What-we-have-now."> <span class="section-number-3">1.1.</span>  <a href="#What-we-have-now.">What we have now.</a></h3>
 <div class="outline-text-3" id="text-What-we-have-now.">
 <p>
At the moment we have three kinds of network synchronisation tools:
</p>
 <ol class="org-ol"> <li>NFS</li>
 <li>Google Drive</li>
 <li>rsync</li>
</ol></div>

 <div id="outline-container-NFS" class="outline-4">
 <h4 id="NFS"> <span class="section-number-4">1.1.1.</span>  <a href="#NFS">NFS</a></h4>
 <div class="outline-text-4" id="text-NFS">
 <p>
NFS is immune to conflicts, because it relies on not storing files on the
target machine. It is also quite fast and does not occupy too much space
on the clients.
</p>

 <p>
However, it cannot pre-cache anything, and is relying on having a fairly
low ping, because it constantly performs synchronisation.
</p>
</div>
</div>

 <div id="outline-container-Google-Drive" class="outline-4">
 <h4 id="Google-Drive"> <span class="section-number-4">1.1.2.</span>  <a href="#Google-Drive">Google Drive</a></h4>
 <div class="outline-text-4" id="text-Google-Drive">
 <p>
Google Drive allows selective sync, can work completely offline, but has
difficulties resolving conflicts. It also requires the user to select
cached files manually.
</p>
</div>
</div>

 <div id="outline-container-rsync" class="outline-4">
 <h4 id="rsync"> <span class="section-number-4">1.1.3.</span>  <a href="#rsync">rsync</a></h4>
 <div class="outline-text-4" id="text-rsync">
 <p>
rsync makes synchronisation efficient, but is completely manual.
</p>
</div>
</div>
</div>

 <div id="outline-container-What-is-the-problem?" class="outline-3">
 <h3 id="What-is-the-problem?"> <span class="section-number-3">1.2.</span>  <a href="#What-is-the-problem?">What is the problem?</a></h3>
 <div class="outline-text-3" id="text-What-is-the-problem?">
 <p>
Fundamentally, the problems are:
</p>
 <ol class="org-ol"> <li>“what to cache” (we do not want to choose files manually)</li>
 <li>“when to cache” (we do not want to waste mobile traffic)</li>
 <li>“how to resolve conflicts” (we do not want to be forced to merge)</li>
</ol></div>
</div>

 <div id="outline-container-How-would-a-perfect-networked-fs-look-like?" class="outline-3">
 <h3 id="How-would-a-perfect-networked-fs-look-like?"> <span class="section-number-3">1.3.</span>  <a href="#How-would-a-perfect-networked-fs-look-like?">How would a perfect networked fs look like?</a></h3>
 <div class="outline-text-3" id="text-How-would-a-perfect-networked-fs-look-like?">
 <p>
For simplicity, let us assume we have a client-server infrastructure. This
is not necessarily the case, but for simplicity let us start there.
</p>

 <p>
As said above, main problems are synchronisation and conflicts. When do
they happen?
</p>

 <ol class="org-ol"> <li>The user should define maximal cache size. This can be a “mount”
option, like “-o,cache_size=66G”.</li>
 <li>Opening files for reading should be transparent :: this should not even
be an issue, and should work like NFS. However, as soon as the file is
opened, and it fits into the cache, it should be downloaded to the
client. If it does not fit into the cache, it may be cached partially.
Cached percentage can be shown in an Xattr.</li>
 <li>When a file is cached, opening it for reading should be still possible
when the client is offline.</li>
</ol></div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2022-09-02_which-networked-filesystem-I-want/index.html"/>
  <id>https://lockywolf.net/2022-09-02_which-networked-filesystem-I-want/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A Review for The Prince by Niccolo Machiavelli</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A Review for The Prince by Niccolo Machiavelli</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a></li>
 <li> <a href="#Contacts">2. Contacts</a></li>
</ul></div>
</nav> <figure id="org3453210"> <img src="GettyImages-179558112.jpeg" alt="GettyImages-179558112.jpeg"></img></figure> <p>
I have read “The Prince” by Niccolo Machiavelli.
Feel free to read my review.
</p>

 <p>

</p>

 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
 <p>
 <b>Books</b> Books are, undoubtedly, very different.
Some books are hard to read, some are easy.
Some books are fun, some leave you with a feeling of sorrow.
Some require preparation to be read, some can be read at once.
</p>

 <p>
 <b>Context</b> “The Prince” by Machiavelli is certainly from that kind which requires preparation.
I should say, this was one of the most Google-intensive books I have read.
He somehow expects his readers to be familiar with his contemporary history, as well as ancient history almost from the beginning of time.
</p>

 <p>
 <b>Google</b> Auspiciously, we have Google at our disposal, so we can compensate for the typical lack of context that a modern reader would have with respect to a book of some 500 years old.
</p>

 <p>
 <b>Translation</b> The book was translated by Ninian Hill Thomson, whom I have not found an abundance of information about, but apparently she was an Oxford University graduate, and a Scholar of British India law, living in the XIX century.
</p>

 <p>
 <b>Language</b> The translation language is a bit archaic, I believe, even for her times; this embellished the narrative quite substantively, but was a bit challenging at first for me, but I dealt with it in my usual manner. Having a vocabulary prepared made that read just one more exercise.
</p>

 <p>
 <b>Narrative</b> As opposed to the language, the narrative looks surprisingly fresh. I haven’t managed to resist writing out a lot of parallels with contemporary life and politics, of both the plots unwrapping in the times of Machiavelli, and the plots from long B.C.
</p>

 <p>
 <b>Topics</b> Indeed, it is hard to avoid covertly smiling when you see politicians in the XXI century making exactly the same mistakes as the ones from the XVI. It is also interesting to notice how many modern controversial discussion points Machiavelli is already aware of, 500 years ago. In particular, he touches the ideas of a “nation state”, “armed citizenry”, the “sources of political legitimacy” (although he, obviously, does not call them the way Max Weber does), “republics and autoritiarianisms”, “government by consent”, and even “importance of being ethical” (which he completely refutes).
</p>

 <p>
 <b>References</b> So, the book is discussing things that have not aged pretty much at all for the past 500 years, and if not for the necessity to Google a lot, would have been an easy (although not simple) read. Unfortunately, the tradition of making reference lists have not yet been rooted deeply by his time, so unequivocally identifying, who exactly it mentioning in his examples requires a little work, but the good thing is that, because The Prince is so well-known, there is plenty of commentary on the Internet that polyfill the lacunae.
</p>

 <p>
 <b>Puzzle</b> The obvious benefit of having so many references to historical events is that this book foments that web of knowledge that an erudite is expected to have, covering European history. We all kind of know what is Roman Empire, who is Alexander, and what was the difference between Guelfs and Ghibellines, but having been nudged into re-googling a lot about them helped me to put those disperse pieces of a jigsaw puzzle into a cohesive picture.
</p>

 <p>
 <b>Depth</b> With respect to the actual advices given to the aspiring princes, Machiavelli does a nice job of systematising many aspects of a prince’s life, but I cannot say that his study is sufficiently deep.
Naturally, when a researcher is one of the first in his field, it is acceptable for him to do the broad stroke picture.
Many other researchers of the nature of power have continued his track.
Still, I would like to read much more about a prince’s interaction with his ministers and advisers, a single short chapter is just not enough.
</p>

 <p>
 <b>Ethics</b> One of the important points in his reasoning is the difference between “being” and “seeming”. Both should serve the purposes of the prince. This is what “machiavellianism” owns its name to. And hence the biggest controversy of this book. If it is hardly possible to maintain authority without telling the truth, is every authority ever immoral? And, this is the place where we see prominently the attitude that “effectiveness of things should be judged by experiment”.
</p>

 <p>
 <b>Republics</b> Machiavelli also speaks about republics, and I even found out that he has a prequel to The Prince, where he discusses republican power.
He certainly understands the benefits of giving power to the people, such as stability, faithfulness of the army, and so on, although, I believe, a lot of his reasoning only applies to small city-states where social cohesion is much higher than in big countries, such as Russia.
On the other hand, he seems to be positively convinced that only princedoms are really capable of big change, and this is, arguably, the main raison d’être for the book: to make an all-Italy reform.
</p>

 <p>
 <b>Summary</b> In general, I believe that The Prince is a very good book, which every aspiring tyrant should read.
(I remember a rumour that Stalin had The Prince in his library.)
Even a non-prince could benefit from it, trying to make a career in an office environment.
History lovers would relish in its rich historical context.
Excellent, enjoyable, and useful book, if you are not afraid to digress and do some googling.
</p>
</div>
</section> <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">2.</span>  <a href="#Contacts">Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
 <p>
Subscribe and donate if you find anything in this blog and/or other pages useful.
Repost, share and discuss, feedback helps me become better.
</p>

 <p>
I also have:
</p>
 <dl class="org-dl"> <dt>Facebook</dt> <dd> <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a></dd>
 <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>Twitter</dt> <dd> <a href="https://twitter.com/VANikishkin">https://twitter.com/VANikishkin</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2022-09-06_Review-for-Niccolo-Machiavelli-The-Prince/index.html"/>
  <id>https://lockywolf.net/2022-09-06_Review-for-Niccolo-Machiavelli-The-Prince/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>《UNIX网络编程》（Richard Stevens著）之短评</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">《UNIX网络编程》（Richard Stevens著）之短评</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E8%83%8C%E6%99%AF">1. 背景</a>
 <ul> <li> <a href="#%E6%88%91%E7%9A%84%E9%9C%80%E6%B1%82">1.1. 我的需求</a></li>
 <li> <a href="#%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AFUNIX%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AFLINUX">1.2. 为什么是UNIX，而不是LINUX</a></li>
 <li> <a href="#TCP/IP%E8%8C%83%E5%9B%B4%E5%BE%88%E5%A4%A7%EF%BC%8C%E9%99%88%E6%97%A7%E4%BA%86%EF%BC%9F">1.3. TCP/IP范围很大，陈旧了？</a></li>
</ul></li>
 <li> <a href="#%E5%86%85%E5%AE%B9">2. 内容</a></li>
 <li> <a href="#%E7%BB%93%E8%AE%BA">3. 结论</a></li>
 <li> <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">4. 联系方式</a></li>
</ul></div>
</nav> <p>
本文将为大家介绍笔者关于Richard Stevens的《UNIX网络编程》这本书的观点。
UNP(UNIX Network Programming)是全世界最经典的关于网络编程的书籍。
</p>

 <p>
在这个领域还有以下经典书目：
</p>
 <ol class="org-ol"> <li>David L. Comer - Internetworking with TCP/IP</li>
 <li>Richard Stevens - TCP/IP Illustrated</li>
</ol> <p>
不骗你们，经典网络编程书目包括两本Richard Stevens的书，占到了2/3的比例。
这是怎么一回事呢？
</p>

 <p>
事实上，Stevens就是真正的领袖，本领域的创始人之一。
UNP也可以说是显然经受住了时间的考验，被重印了三次。
</p>

 <p>
我想借这篇文章概述这本书给我的影响。
</p>

 <section id="outline-container-%E8%83%8C%E6%99%AF" class="outline-2"> <h2 id="%E8%83%8C%E6%99%AF"> <span class="section-number-2">1.</span>  <a href="#%E8%83%8C%E6%99%AF">背景</a></h2>
 <div class="outline-text-2" id="text-%E8%83%8C%E6%99%AF">
</div>

 <div id="outline-container-%E6%88%91%E7%9A%84%E9%9C%80%E6%B1%82" class="outline-3">
 <h3 id="%E6%88%91%E7%9A%84%E9%9C%80%E6%B1%82"> <span class="section-number-3">1.1.</span>  <a href="#%E6%88%91%E7%9A%84%E9%9C%80%E6%B1%82">我的需求</a></h3>
 <div class="outline-text-3" id="text-%E6%88%91%E7%9A%84%E9%9C%80%E6%B1%82">
 <p>
为什么我要开始学网络编程？ 与很多事情不同，我是由于工作需要才开始学这项技能。
我从来没有要仔细理解socket和TCP-IP的细节。
我很早之前学过CURL，我以为那就足够了，因为我以为互联网会一年比一年更好更稳定。
</p>

 <p>
实际上，互联网一年比一年更差。
我年轻的时候的态度“只要用默认设置，就可以了”已经完全不适合今天的情况了。
所以即使我是其他专业的，但是应该知晓互联网原理和调整方法。
</p>

 <p>
首先，我希望避免去学习过于底层的逻辑。但是，在调试使中，会使用到很多高层工具，
我经常发现——它们要么在假设上出错，要么还是需要用户理解网的络底层逻辑。
</p>

 <p>
有一次，简单地说，我发现，为了debug自己的网络连接不良问题，
我就必须详细理解网络、协议、数据包结构和用户面加密等知识。
</p>
</div>
</div>

 <div id="outline-container-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AFUNIX%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AFLINUX" class="outline-3">
 <h3 id="%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AFUNIX%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AFLINUX"> <span class="section-number-3">1.2.</span>  <a href="#%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AFUNIX%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AFLINUX">为什么是UNIX，而不是LINUX</a></h3>
 <div class="outline-text-3" id="text-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AFUNIX%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AFLINUX">
 <p>
Stevens的书是关于UNIX套接字（socket）编程接口讲解。
UNIX本来是最早支持网路的操作系统之一。
实际上，甚至连Windows也使用BSD的套接字接口。
</p>

 <p>
从这方面来说，Linux把它的网络接口完全从老UNIX接过来了。
虽然今天基本上没有任何人还在使用UNIX，但大部分操作系统对其API不敢做任何改动。
</p>

 <p>
所以学会理解SocketAPI对我们来说应该是最广泛适用的技能了。
</p>

 <p>
除了SocketAPI以外，Linux还有自己的国产API，叫做Netlink，但是我尚未使用过它。
</p>
</div>
</div>

 <div id="outline-container-TCP/IP%E8%8C%83%E5%9B%B4%E5%BE%88%E5%A4%A7%EF%BC%8C%E9%99%88%E6%97%A7%E4%BA%86%EF%BC%9F" class="outline-3">
 <h3 id="TCP/IP%E8%8C%83%E5%9B%B4%E5%BE%88%E5%A4%A7%EF%BC%8C%E9%99%88%E6%97%A7%E4%BA%86%EF%BC%9F"> <span class="section-number-3">1.3.</span>  <a href="#TCP/IP%E8%8C%83%E5%9B%B4%E5%BE%88%E5%A4%A7%EF%BC%8C%E9%99%88%E6%97%A7%E4%BA%86%EF%BC%9F">TCP/IP范围很大，陈旧了？</a></h3>
 <div class="outline-text-3" id="text-TCP/IP%E8%8C%83%E5%9B%B4%E5%BE%88%E5%A4%A7%EF%BC%8C%E9%99%88%E6%97%A7%E4%BA%86%EF%BC%9F">
 <p>
TCP/IP诞生的时候还是80年代,那时的网络和现在很不一样。
所以TCP/IP包括很多那时工程预计会很好用的功能，现在已经不那么适应时代了。
比如说，完整的互联网协议套件包含15以上的第二层协议，但是只要4个涵盖99%的用例。
</p>

 <p>
时代进步不会停止。悲观者会说：“如果从协议套件里只使用两个协议，这等于失败，因此是差得设计”。
但是我反而会说，“如果你的协议能持续被使用40多年，
尤其是40年前制造的设备仍然可以继续操作，那么你的设计其实很好。”
</p>
</div>
</div>
</section> <section id="outline-container-%E5%86%85%E5%AE%B9" class="outline-2"> <h2 id="%E5%86%85%E5%AE%B9"> <span class="section-number-2">2.</span>  <a href="#%E5%86%85%E5%AE%B9">内容</a></h2>
 <div class="outline-text-2" id="text-%E5%86%85%E5%AE%B9">
 <p>
  <b>大纲</b> 这本书涉及的内容非常详细。除了基本的TCP和UDP以外，
还包括原始（RAW）套接字，虚拟专用网络（VPN），路由和其它类型套接字。
</p>

 <p>
其实，本书原来的版本包括两个册。第一册远程操作，第二册包括本地操作，比如
UNIX-domain套接字和SUNRPC。
</p>

 <p>
本书还包括域名识别系统（DNS）相关的内容。
</p>

 <p>
阅读这本书之后…不能说你会成为本领域最好的专家，
但是你肯定会超过比80%的程序员。
</p>

 <p>
  <b>多层次设计</b> 作为本领域最好的教材之一，本书追求内容上多层次设计。
我可以至少将它分为数3个层次。
</p>
 <ol class="org-ol"> <li>在第一个层次Stevens给读者作了简单介绍，让初学者从零开始尝试传输一段数据，理解基本的想法。</li>
 <li>在第二个层次Stevens介绍了基本的socket函数，描述如何实现简单的网络服务。</li>
</ol> <p>
第二层次中有关于TCP，UDP和SCTP的几章,给阅读者介绍了几个交流协议的区别，操作依据和常见的用法。
对大部分开发者来说第二层次应该能满足做大部分工作的要求…如果开发者写纯C的话。
</p>
 <ol class="org-ol"> <li>第三层次反映了第二层结构，但是增加了更多细节和深度。</li>
</ol> <p>
在这阶段,书中的内容更为为复杂。其实第三层次不包含太多复杂的功能，但是它还是继续使用纯C。
纯C语言很贴近硬件，但是并不对用户十分友好。
其实第三层次对开发者来说应该会更好用，但是由于TCP/IP的设计者必须把比较复杂的结构放在比较底层的C语言中，
因此第三层的内容确实比较难理解和实践。
</p>

 <p>
在阅读第三层次的几个章节时，我不禁开始思考C++相对于纯C的优势。
其实，套接字API从我的角度来说,比较适合用C++绑定包装。
</p>

 <p>
不过，本书中涉及更复杂内容的几个章节写得的比较准确，如果严格跟着本书的指引做的话，
可以写出较为可靠的代码。
</p>

 <p>
个三个层次之外，Stevens的书里还有几个辅助性的章节。
其中一章详细介绍了域名系统，其它章节则描述了原始套接字(RAW SOCKET)，VPN，其它话题。
</p>

 <p>
我没有阅读所有的辅助性章节，但是如果我有需要，我能够知道在哪里找到相关内容。
</p>

 <p>
  <b>UNIX</b> 这本书的第二册(???!!)没有那么多版本。比如最新的版本就不包括第二册(???!!!)。
第二册大多内容涉及虑本地性，以及操作系统级别进程间的通信，比如UNIX套节字。
关于这个话题,教材中有很多内容。
甚至Stevens本人写了“Advanced Programming in UNIX Environment”.
如果我的粉丝们好奇的话，我可以推荐“Mark J Rockind”的"Advanced Unix Programming"给你.
</p>

 <p>
但是,有一个主题我感觉在UNP这本书里是讲得最好的：
这个是SUNRPC。SUN公司遥控执行步骤，或者称为"远端程序呼叫"。
(Remote Procedure Call).
</p>

 <p>
  <b>SUNRPC</b> 虽然UNIX中多处使用了SUNRPC，尤其是在NFS（网络文件系统）等，但是官方的资料比较薄弱。
Stevens在书中对此的介绍也比较短，但是很容易理解，逻辑描述得很清楚。
</p>

 <p>
  <b>安全</b> 我觉得TCP/IP最大的缺点是IPsec的协议套件。
 确实,如今我们已经有了一定的经验,明白IPsec并不是最适合实际情况的加密方法。
Stevens在书中用(化??!!)一章了描述IPsec的密钥交换方案，
尽管(?)还有若干更方便的密钥加交换流方案。
</p>

 <p>
 <b>练习题</b> ：本书附上大量练习题，每一章都有若干，但是我没有完成这些题,
因为我开始阅读的时候已经有了自己的问题和计划。
</p>
</div>
</section> <section id="outline-container-%E7%BB%93%E8%AE%BA" class="outline-2"> <h2 id="%E7%BB%93%E8%AE%BA"> <span class="section-number-2">3.</span>  <a href="#%E7%BB%93%E8%AE%BA">结论</a></h2>
 <div class="outline-text-2" id="text-%E7%BB%93%E8%AE%BA">
 <p>
大部分我需要掌握的知识，都能从UNP学到（除了加密以外）。
</p>

 <p>
把这本书读完之后，我成功地写了一个内核修补，一个网络程序，
然后计划了如何改善3个其它的（非紧急）项目。
</p>

 <p>
总体来说，Stevens的书，虽然有点干货，有点过时，但是可以给阅读者它们所需要的基础知识。
</p>
</div>
</section> <section id="outline-container-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F" class="outline-2"> <h2 id="%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F"> <span class="section-number-2">4.</span>  <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">联系方式</a></h2>
 <div class="outline-text-2" id="text-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">
 <p>
如果您在此博客或其他页面中发现任何对您有用的内容，请订阅并打赏。
请您转发、分享和讨论，您的反馈可以帮助我变得更好。
</p>

 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-05-09_Richard-Stevens-UNIX-Network-Programming-Chinese.d/index.html"/>
  <id>https://lockywolf.net/2023-05-09_Richard-Stevens-UNIX-Network-Programming-Chinese.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Review for Practical Packet Analysis by Chris Sanders.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Review for Practical Packet Analysis by Chris Sanders.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#chris-sanders:-Practical-Packet-Analysis">1. Chris Sanders: Practical Packet Analysis</a>
 <ul> <li> <a href="#Introduction">1.1. Introduction</a></li>
 <li> <a href="#Topics-covered">1.2. Topics covered</a></li>
 <li> <a href="#Topics-not-covered">1.3. Topics not covered</a></li>
 <li> <a href="#General-impression-and-conclusion">1.4. General impression and conclusion</a></li>
 <li> <a href="#Feedback-and-donate">1.5. Feedback and donate</a></li>
</ul></li>
</ul></div>
</nav> <figure id="orgf9c3ecd"> <img src="001_cover_PracticalPacketAnalysis3E_cover.png" alt="001_cover_PracticalPacketAnalysis3E_cover.png"></img></figure> <p>
In this document I want to review a book my Chris Sanders, “Practical Packet
Analysis”, published by “No Starch Press”. It took me about a week to read the
whole book, and actually more time to revise what I have learnt and to write a
review.
</p>

 <p>

</p>

 <section id="outline-container-chris-sanders:-Practical-Packet-Analysis" class="outline-2"> <h2 id="chris-sanders:-Practical-Packet-Analysis"> <span class="section-number-2">1.</span>  <a href="#chris-sanders:-Practical-Packet-Analysis">Chris Sanders: Practical Packet Analysis</a></h2>
 <div class="outline-text-2" id="text-chris-sanders:-Practical-Packet-Analysis">
</div>

 <div id="outline-container-Introduction" class="outline-3">
 <h3 id="Introduction"> <span class="section-number-3">1.1.</span>  <a href="#Introduction">Introduction</a></h3>
 <div class="outline-text-3" id="text-Introduction">

 <figure id="orgb7dc2f2"> <img src="002_linux-debugging-resized.jpg" alt="002_linux-debugging-resized.jpg"></img></figure> <p>
So, what made me want to write about a book on packet analysis, and what is packet
analysis in the first place? Well, speaking non-strictly, packets are the words of
the Internet. Small-ish digestible pieces of information that computers exchange
among themselves. Digestible here is a very good metaphor.
</p>

 <p>
Suppose you are having a dinner, and together with your main food, you also have a
glass of soda. Well, soda water is liquid, and can be consumed, in theory,
continuously. However, it is hard to drink something continuously for a long time.
People tend to swallow even liquid products gulp by gulp – that is, in portions.
</p>

 <p>
Computers in this respect are surprisingly not different to humans. Even when
communication appears to be continuous, (such as with the TCP/IP protocol), in
reality it goes in small portions called “packets”.
</p>

 <p>
Why would we need to analyse those packets at all? When, when communication goes
well, and not problems are perceived, packet analysis is only needed by the
networking professionals, for their professional purposes. However, when thing go
South, even people who are non-experts, but simply want to debug their Internet
connection, might need to try and see what is actually going in and out of their
network card – packets.
</p>

 <p>
Another case when packet analysis may be of value is when one is writing a
distributed application (which I have been doing at my job), and needs to check
whether network load is distributed evenly, or at least rationally over the
network.
</p>

 <p>
I ended up reading Chris Sanders’ book after skimming through a few similar ones in
a library, and I have to say, there were quite a few alternatives. In fact, taught
by my previous bitter experience, I had suspected that I would have to read more
than one book on the topic. However, jumping ahead, I have to say that that is what
really happened, but also that Practical Packet Analysis (PPA) turned out to be
good enough of a book so that I didn’t have to read those additional books in their
entirety; I only needed to consume a few chapters filling in the lacunae.
</p>

 <p>
One more thing that I used as a heuristic when choosing PPA is that it is published
by “No Starch Press”. I do not know how this is happening, but No Starch guys seem
to always be able to publish really good handbooks on technologies, even if for
sometimes very exotic technologies. (The only recent book on GNU Autotools is
published by them!)
</p>
</div>
</div>


 <div id="outline-container-Topics-covered" class="outline-3">
 <h3 id="Topics-covered"> <span class="section-number-3">1.2.</span>  <a href="#Topics-covered">Topics covered</a></h3>
 <div class="outline-text-3" id="text-Topics-covered">

 <figure id="orgce5dd87"> <img src="003_covered_what-is-wireshark.jpg" alt="003_covered_what-is-wireshark.jpg"></img></figure> <p>
So, Practical Packet Analysis turned out to be a handy, simple, and, indeed,
practical book. It does very little about explaining TCP/IP itself, offloading this
duty to other books, for example, to “TCP/IP Illustrated” and “Internetworking with
TCP/IP”.
</p>

 <p>
What it does, however, it covers practical cases that a systems administrator
debugging his system might be interested in: slow network, address conflicts,
packet loss, name resolution failures, traffic hijacking by adversaries.
</p>

 <p>
It does it by gradually, bit by bit, unfolding the GUI of the Wireshark packet
capture tool. As Wireshark’s interface is quite naturally adapted for debugging
certain kinds of network failures, going over it, screen after screen, allows to,
at the same time, explain Wireshark’s usage, and comment on which issues led to the
appearance of those screens, and how to resolve them.
</p>

 <p>
For the cases when Wireshark does not have a suitable GUI page, it is possible to
do simple packet capture, and to hand over the analysis of those packet dumps to
some other tool.
</p>

 <p>
Unfortunately, PPA does not talk much about analysing packets with a script. It
does mention, thought that Wireshark has a plugin framework, and supports applying
packet analysing scripts (which can be written in different languages) to packet
streams being captured.
</p>

 <p>
It also covers in the console usage of tshark (TUI Wireshark). I even ended up
using it for some of my tasks, because some machines do not have a GUI. In addition
to tshark, the same chapter also discusses tcpdump, the only other tool in the
book.
</p>
</div>
</div>

 <div id="outline-container-Topics-not-covered" class="outline-3">
 <h3 id="Topics-not-covered"> <span class="section-number-3">1.3.</span>  <a href="#Topics-not-covered">Topics not covered</a></h3>
 <div class="outline-text-3" id="text-Topics-not-covered">

 <figure id="org47983cb"> <img src="004_non-covered_shutterstock_1378498457_hack-system-2048x1410.jpg" alt="004_non-covered_shutterstock_1378498457_hack-system-2048x1410.jpg"></img></figure> <p>
I was a bit disappointed by the fact that the book actually is saying almost
nothing about reverse-engineering protocols. Its basic assumption is that whatever
is going within a network either has been already defined in the Wireshark library,
or has a description, say, in asn1, which can be converted to a Wireshark packet
dissector with a little work.
</p>

 <p>
However, the library that does network communication in my case, and which I need
to debug, is not transparent, its protocol is not known, so there is no ready to
use packet dissector. The book, however, does refer to the Wireshark’s official
manual, which, seemingly, is quite decent and even exists in two volumes, one for
the GUI, and one for writing dissectors, so the direction to head on after the end
of the book becomes clear.
</p>

 <p>
It also does not cover Wireshark’s GUI entirely, some features, were left as an
exercise to reader. I do hope that they will be easy enough to grasp by oneself.
</p>
</div>
</div>

 <div id="outline-container-General-impression-and-conclusion" class="outline-3">
 <h3 id="General-impression-and-conclusion"> <span class="section-number-3">1.4.</span>  <a href="#General-impression-and-conclusion">General impression and conclusion</a></h3>
 <div class="outline-text-3" id="text-General-impression-and-conclusion">
 <p>
The book is not hard, allows solving certain frequently seen problems at first
reading, and gives decent references on where to continue the study of network
programming.
</p>

 <p>
I am a little disappointed that it does not mention mausezahn, the tool used by
Linux kernel developers for testing network, and does not teach how to write a
packet dissector, for example, for some very simple protocol.
</p>

 <p>
I would recommend it as a homework for beginner network programmers, and network
administrators.
</p>
</div>
</div>


 <div id="outline-container-Feedback-and-donate" class="outline-3">
 <h3 id="Feedback-and-donate"> <span class="section-number-3">1.5.</span>  <a href="#Feedback-and-donate">Feedback and donate</a></h3>
 <div class="outline-text-3" id="text-Feedback-and-donate">
 <p>
Subscribe and donate if you find anything in this blog and/or other pages useful.
Repost, share and discuss, feedback helps me become better.
</p>

 <p>
I also have:
</p>
 <dl class="org-dl"> <dt>Facebook</dt> <dd> <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a></dd>
 <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>Twitter</dt> <dd> <a href="https://twitter.com/VANikishkin">https://twitter.com/VANikishkin</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-05-12_Chris-Sanders-Practical-Packet-Analysis.org.d/index.html"/>
  <id>https://lockywolf.net/2023-05-12_Chris-Sanders-Practical-Packet-Analysis.org.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Review on &quot;Spin Dictators by Sergei Guriev and Daniel Treisman&quot; and notes-and-words.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Review on “Spin Dictators by Sergei Guriev and Daniel Treisman” and notes-and-words.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a></li>
 <li> <a href="#Notes">2. Notes</a>
 <ul> <li> <a href="#chapter-1-:-Fear-and-Spin">2.1. Chapter 1 : Fear and Spin</a>
 <ul> <li> <a href="#THE-PUTIN-PUZZLE">2.1.1. THE PUTIN PUZZLE</a></li>
 <li> <a href="#TWENTIETH-CENTURY-TYRANTS">2.1.2. TWENTIETH-CENTURY TYRANTS</a></li>
 <li> <a href="#THE-RULES-OF-SPIN">2.1.3. THE RULES OF SPIN</a></li>
 <li> <a href="#OTHER-EXPLANATIONS">2.1.4. OTHER EXPLANATIONS</a></li>
 <li> <a href="#DIVIDING-LINES">2.1.5. DIVIDING LINES</a></li>
 <li> <a href="#WHAT'S-NEXT?">2.1.6. WHAT’S NEXT?</a></li>
</ul></li>
 <li> <a href="#PART-I-HOW-IT'S-DONE">2.2. PART I HOW IT’S DONE</a></li>
 <li> <a href="#CHAPTER-2-DISCIPLINE,-BUT-DON'T-PUNISH">2.3. CHAPTER 2 DISCIPLINE, BUT DON’T PUNISH</a>
 <ul> <li> <a href="#BLOOD-LANDS">2.3.1. BLOOD LANDS</a></li>
 <li> <a href="#CALCULUS-OF-KILLING">2.3.2. CALCULUS OF KILLING</a></li>
 <li> <a href="#LEE%E2%80%99S-SOFTER-TOUCH">2.3.3. LEE’S SOFTER TOUCH</a></li>
 <li> <a href="#MOSCOW-METHODS">2.3.4. MOSCOW METHODS</a></li>
 <li> <a href="#THE-NEW-PLAYBOOK">2.3.5. THE NEW PLAYBOOK</a></li>
 <li> <a href="#CHECKING-THE-EVIDENCE">2.3.6. CHECKING THE EVIDENCE</a></li>
</ul></li>
 <li> <a href="#CHAPTER-3-POSTMODERN-PROPAGANDA">2.4. CHAPTER 3 POSTMODERN PROPAGANDA</a>
 <ul> <li> <a href="#RHETORIC-OF-REPRESSION">2.4.1. RHETORIC OF REPRESSION</a></li>
 <li> <a href="#IDIOMS-OF-INTIMIDATION">2.4.2. IDIOMS OF INTIMIDATION</a></li>
 <li> <a href="#SPINSPEAK">2.4.3. SPINSPEAK</a></li>
 <li> <a href="#CHECKING-THE-EVIDENCE-1">2.4.4. CHECKING THE EVIDENCE</a></li>
</ul></li>
 <li> <a href="#CHAPTER-4-SENSIBLE-CENSORSHIP">2.5. CHAPTER 4 SENSIBLE CENSORSHIP</a>
 <ul> <li> <a href="#FIGHTING-WORDS">2.5.1. FIGHTING WORDS</a></li>
 <li> <a href="#COMMAND-+-DELETE">2.5.2. COMMAND + DELETE</a></li>
 <li> <a href="#CHECKING-THE-EVIDENCE-1-2">2.5.3. CHECKING THE EVIDENCE</a></li>
</ul></li>
 <li> <a href="#CHAPTER-5-DEMOCRACY-FOR-DICTATORS">2.6. CHAPTER 5 DEMOCRACY FOR DICTATORS</a>
 <ul> <li> <a href="#ELECTING-THE-PEOPLE">2.6.1. ELECTING THE PEOPLE</a></li>
 <li> <a href="#SPINNING-THE-BALLOT">2.6.2. SPINNING THE BALLOT</a></li>
 <li> <a href="#FRAUD-AND-ABUSE">2.6.3. FRAUD AND ABUSE</a></li>
 <li> <a href="#CHECKING-THE-EVIDENCE-1-2-3">2.6.4. CHECKING THE EVIDENCE</a></li>
</ul></li>
 <li> <a href="#CHAPTER-6-GLOBAL-PILLAGE">2.7. CHAPTER 6 GLOBAL PILLAGE</a>
 <ul> <li> <a href="#WORLD-WARY">2.7.1. WORLD WARY</a></li>
 <li> <a href="#SPINNING-THE-GLOBE">2.7.2. SPINNING THE GLOBE</a></li>
 <li> <a href="#FOREIGN-ASSISTANTS">2.7.3. FOREIGN ASSISTANTS</a></li>
 <li> <a href="#MAKING-FRIENDS-AND-INFLUENCING-PEOPLE">2.7.4. MAKING FRIENDS AND INFLUENCING PEOPLE</a></li>
 <li> <a href="#FEAR-VS.-SPIN">2.7.5. FEAR VS. SPIN</a></li>
</ul></li>
 <li> <a href="#PART-II-WHY-IT%E2%80%99S-HAPPENING-AND-WHAT-TO-DO-ABOUT-IT">2.8. PART II WHY IT’S HAPPENING AND WHAT TO DO ABOUT IT</a>
 <ul> <li> <a href="#CHAPTER-7-THE-MODERNIZATION-COCKTAIL">2.8.1. CHAPTER 7 THE MODERNIZATION COCKTAIL</a></li>
 <li> <a href="#POSTINDUSTRIAL-STRENGTH">2.8.2. POSTINDUSTRIAL STRENGTH</a></li>
 <li> <a href="#NETWORK-EFFECTS">2.8.3. NETWORK EFFECTS</a></li>
 <li> <a href="#THE-RIGHTS-STUFF">2.8.4. THE RIGHTS STUFF</a></li>
 <li> <a href="#COLD-WAR-AND-AFTER">2.8.5. COLD WAR AND AFTER</a></li>
 <li> <a href="#CHAPTER-8-THE-FUTURE-OF-SPIN">2.8.6. CHAPTER 8 THE FUTURE OF SPIN</a></li>
 <li> <a href="#SPINNING-UPWARD">2.8.7. SPINNING UPWARD</a></li>
 <li> <a href="#OUTSIDE-INFLUENCES">2.8.8. OUTSIDE INFLUENCES</a></li>
 <li> <a href="#DIAGNOSING-THE-THREAT">2.8.9. DIAGNOSING THE THREAT</a></li>
 <li> <a href="#HOW-TO-RESPOND?">2.8.10. HOW TO RESPOND?</a></li>
 <li> <a href="#A-POWERFUL-IDEA">2.8.11. A POWERFUL IDEA</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Words-%5B0/0%5D">3. Words  <code>[0/0]</code></a></li>
</ul></div>
</nav> <figure id="org698f5c0"> <img src="001_cover_9780691211411.jpg" alt="001_cover_9780691211411.jpg"></img></figure> <p>
I have read “Spin Dictators” by Sergei Guriev and Daniel Treisman.
My review is below.
</p>

 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
 <p>
The book took me 7 hours 22 minutes to read, that is 442 minutes.
With about 220 pages of readable text (the whole book is almost twice larger, but the rest contains mostly references), this makes it about 2 minutes per page.
Not exactly a book for slow reading.
</p>

 <p>
Why is that?
</p>

 <p>
When reading “Spin Dictators”, I couldn’t get rid of a feeling that I had already heard most of the propositions made.
Where?
In the Russian opposition-leaning media, for the most part, as well as the Western media, mostly left-leaning.
</p>

 <p>
This made me…
be critical about the text.
I guess I have to give this disclaimer, because to an extent it means that I cannot review the book in an unbiased way.
Not because I am pre-disposed to the book, but because I just have had too much exposure to a partisan political agenda.
</p>

 <p>
Does it mean that things said there are a priori false?
Not at all, after all, political agendas are sometimes built on genuine understanding, and in the case of “Spin Dictators”, most claims are supported by evidence, even though I haven’t bothered to verify that evidence.
However, it did make me approach the text from a critical viewpoint.
</p>

 <p>
So what the authors are saying can be roughly summarised as the following: since the last quarter of the twentieth century, dictatorships are much more based on manipulating and misleading people, rather than on inflicting fear upon them.
</p>

 <p>
The first part of the book defines what a “Spin Dictatorship” is more precisely, and continues to describe its properties, such as its paradigmatic policies to democracy, international relations, propaganda, repression, censorship.
</p>

 <p>
The seconds part of the book tries to establish how those “Spin Dictatorship” appeared, how they might evolve, and how democratic states should work with them.
</p>

 <p>
Overall, this book left me with a feeling of unease.
I cannot specify exactly where and why.
Those interested may have a look at the notes in the next section of this file.
</p>

 <p>
Perhaps, the most disturbing thought for me is the authors’ firm belief in “international institutions”.
After all, international institutions are just institutions, prone to all problems of bureaucratic organisations.
</p>

 <p>
One more thing that bothers me is a really slacky attitude to sovereignty.
I mean, naturally, some countries are richer than others.
But that approach “do what we tell, and only then we will help you” sounds too fragile to actually work as intended.
</p>

 <p>
Also, they mention that presently countries have about 43% of their economies being used for import-export.
This sounds way off from being reasonable.
I mean, I like Japanese knives, but do I want to have no domestic knives in a shop nearby?
I doubt.
</p>

 <p>
Similarly, I find it hard to believe that “progress” can be achieved by instilling it into people by the more progressive.
Something just doesn’t sound right here.
Without independence how can there be adulthood?
</p>

 <p>

</p>
</div>
</section> <section id="outline-container-Notes" class="outline-2"> <h2 id="Notes"> <span class="section-number-2">2.</span>  <a href="#Notes">Notes</a></h2>
 <div class="outline-text-2" id="text-Notes">
</div>

 <div id="outline-container-chapter-1-:-Fear-and-Spin" class="outline-3">
 <h3 id="chapter-1-:-Fear-and-Spin"> <span class="section-number-3">2.1.</span>  <a href="#chapter-1-:-Fear-and-Spin">Chapter 1 : Fear and Spin</a></h3>
 <div class="outline-text-3" id="text-chapter-1-:-Fear-and-Spin">
</div>

 <div id="outline-container-THE-PUTIN-PUZZLE" class="outline-4">
 <h4 id="THE-PUTIN-PUZZLE"> <span class="section-number-4">2.1.1.</span>  <a href="#THE-PUTIN-PUZZLE">THE PUTIN PUZZLE</a></h4>
 <div class="outline-text-4" id="text-THE-PUTIN-PUZZLE">
</div>

 <ol class="org-ol"> <li> <a id="From-Hugo-Ch%C3%A1vez-in-Venezuela-to-Viktor-Orb%C3%A1n-in-Hungary,-nondemocratic-leaders-were-using-a-common-set-of-techniques.-Quite-a-few-drew-inspiration-from-the-pioneer-of-this-new-brand,-Lee-Kuan-Yew."></a> <a href="#From-Hugo-Ch%C3%A1vez-in-Venezuela-to-Viktor-Orb%C3%A1n-in-Hungary,-nondemocratic-leaders-were-using-a-common-set-of-techniques.-Quite-a-few-drew-inspiration-from-the-pioneer-of-this-new-brand,-Lee-Kuan-Yew.">From Hugo Chávez in Venezuela to Viktor Orbán in Hungary, nondemocratic leaders were using a common set of techniques. Quite a few drew inspiration from the pioneer of this new brand, Lee Kuan Yew.</a> <br></br> <div class="outline-text-5" id="text-From-Hugo-Ch%C3%A1vez-in-Venezuela-to-Viktor-Orb%C3%A1n-in-Hungary,-nondemocratic-leaders-were-using-a-common-set-of-techniques.-Quite-a-few-drew-inspiration-from-the-pioneer-of-this-new-brand,-Lee-Kuan-Yew.">
</div>
</li>
</ol></div>

 <div id="outline-container-TWENTIETH-CENTURY-TYRANTS" class="outline-4">
 <h4 id="TWENTIETH-CENTURY-TYRANTS"> <span class="section-number-4">2.1.2.</span>  <a href="#TWENTIETH-CENTURY-TYRANTS">TWENTIETH-CENTURY TYRANTS</a></h4>
 <div class="outline-text-4" id="text-TWENTIETH-CENTURY-TYRANTS">
</div>

 <ol class="org-ol"> <li> <a id="Raymond-Aron-called-these-%3CNazism-and-Communism%3E-%E2%80%9Csecular-religions%E2%80%9D"></a> <a href="#Raymond-Aron-called-these-%3CNazism-and-Communism%3E-%E2%80%9Csecular-religions%E2%80%9D">Raymond Aron called these <Nazism and Communism> “secular religions”</a> <br></br> <div class="outline-text-5" id="text-Raymond-Aron-called-these-%3CNazism-and-Communism%3E-%E2%80%9Csecular-religions%E2%80%9D">
</div>
</li>

 <li> <a id="Socialist-revolutionaries-like-Nasser-in-Egypt-(mobilizational)-shared-the-world-stagewith-freemarket-reactionaries-like-Pinochet-in-Chile-(demobilizational)-and-kleptocrats-like-Mobutu-in-Zaire-(demobilizational)."></a> <a href="#Socialist-revolutionaries-like-Nasser-in-Egypt-(mobilizational)-shared-the-world-stagewith-freemarket-reactionaries-like-Pinochet-in-Chile-(demobilizational)-and-kleptocrats-like-Mobutu-in-Zaire-(demobilizational).">Socialist revolutionaries like Nasser in Egypt (mobilizational) shared the world stagewith freemarket reactionaries like Pinochet in Chile (demobilizational) and kleptocrats like Mobutu in Zaire (demobilizational).</a> <br></br> <div class="outline-text-5" id="text-Socialist-revolutionaries-like-Nasser-in-Egypt-(mobilizational)-shared-the-world-stagewith-freemarket-reactionaries-like-Pinochet-in-Chile-(demobilizational)-and-kleptocrats-like-Mobutu-in-Zaire-(demobilizational).">
</div>
</li>

 <li> <a id="Many-scholars,-for-instance,-have-sought-to-explain-the-stability-of-classic,-violent-autocracies-%E2%80%94-the-regimes-that-we-call-dictatorships-of-fear.-How-do-such-rulers-avoid-being-overthrown-in-revolutions?"></a> <a href="#Many-scholars,-for-instance,-have-sought-to-explain-the-stability-of-classic,-violent-autocracies-%E2%80%94-the-regimes-that-we-call-dictatorships-of-fear.-How-do-such-rulers-avoid-being-overthrown-in-revolutions?">Many scholars, for instance, have sought to explain the stability of classic, violent autocracies — the regimes that we call dictatorships of fear. How do such rulers avoid being overthrown in revolutions?</a> <br></br> <div class="outline-text-5" id="text-Many-scholars,-for-instance,-have-sought-to-explain-the-stability-of-classic,-violent-autocracies-%E2%80%94-the-regimes-that-we-call-dictatorships-of-fear.-How-do-such-rulers-avoid-being-overthrown-in-revolutions?">
 <p>
It is not normal for people to rebel. People have an “emotional barrier” before they allow that violence to rise up.  (?)
</p>

 <ol class="org-ol"> <li>intimidate citizens</li>
 <li>keep potential rebels from coordinating on a plan</li>
 <li>keep them divided—and terrified</li>
</ol></div>
</li>

 <li> <a id="most-assume-that-citizens-hate-the-dictator:-only-fear-keeps-them-from-revolting.-But-what-if-citizens-actually-like-their-ruler-and-do-not-want-to-storm-the-barricades?"></a> <a href="#most-assume-that-citizens-hate-the-dictator:-only-fear-keeps-them-from-revolting.-But-what-if-citizens-actually-like-their-ruler-and-do-not-want-to-storm-the-barricades?">Most assume that citizens hate the dictator: only fear keeps them from revolting. But what if citizens actually like their ruler and do not want to storm the barricades?</a> <br></br> <div class="outline-text-5" id="text-most-assume-that-citizens-hate-the-dictator:-only-fear-keeps-them-from-revolting.-But-what-if-citizens-actually-like-their-ruler-and-do-not-want-to-storm-the-barricades?">
 <p>
Is not that democracy?
</p>
</div>
</li>

 <li> <a id="some-features-of-spin-dictatorship"></a> <a href="#some-features-of-spin-dictatorship">some features of spin dictatorship</a> <br></br> <div class="outline-text-5" id="text-some-features-of-spin-dictatorship">
 <ol class="org-ol"> <li>hold elections, and not all are empty rituals (ploys, con games, and bureaucratic abuses that autocrats around the world have used to secure victories)</li>
 <li>control the media</li>
 <li>surveillance and information technologies</li>
</ol></div>
</li>

 <li> <a id="The-key-elements"></a> <a href="#The-key-elements">The key elements</a> <br></br> <div class="outline-text-5" id="text-The-key-elements">
 <ol class="org-ol"> <li>manipulating the media</li>
 <li>engineering popularity</li>
 <li>faking democracy</li>
 <li>limiting public violence</li>
 <li>opening up to the world</li>
</ol></div>
</li>
</ol></div>


 <div id="outline-container-THE-RULES-OF-SPIN" class="outline-4">
 <h4 id="THE-RULES-OF-SPIN"> <span class="section-number-4">2.1.3.</span>  <a href="#THE-RULES-OF-SPIN">THE RULES OF SPIN</a></h4>
 <div class="outline-text-4" id="text-THE-RULES-OF-SPIN">
</div>

 <ol class="org-ol"> <li> <a id="aristotle:--ruler-claimed-to-be-not-a-violent-usurper-but-%E2%80%9Ca-steward-and-a-king,%E2%80%9D-governing-for-the-benefit-of-all.-spent-money-to-%E2%80%9Cadorn-and-improve-his-city%E2%80%9D-and-cultivated-an-image-of-moderation-and-piety.-%E2%80%9Cnot-harsh,-but-dignified.%E2%80%9D"></a> <a href="#aristotle:--ruler-claimed-to-be-not-a-violent-usurper-but-%E2%80%9Ca-steward-and-a-king,%E2%80%9D-governing-for-the-benefit-of-all.-spent-money-to-%E2%80%9Cadorn-and-improve-his-city%E2%80%9D-and-cultivated-an-image-of-moderation-and-piety.-%E2%80%9Cnot-harsh,-but-dignified.%E2%80%9D">Aristotle:  ruler claimed to be not a violent usurper but “a steward and a king,” governing for the benefit of all. spent money to “adorn and improve his city” and cultivated an image of moderation and piety. “not harsh, but dignified.”</a> <br></br> <div class="outline-text-5" id="text-aristotle:--ruler-claimed-to-be-not-a-violent-usurper-but-%E2%80%9Ca-steward-and-a-king,%E2%80%9D-governing-for-the-benefit-of-all.-spent-money-to-%E2%80%9Cadorn-and-improve-his-city%E2%80%9D-and-cultivated-an-image-of-moderation-and-piety.-%E2%80%9Cnot-harsh,-but-dignified.%E2%80%9D">
</div>
</li>

 <li> <a id="machiavelli:-use-%E2%80%9Csimu%E2%80%90lation-and-dissimulation.%E2%80%9D-Since-most-people-are-influenced-by-ap%E2%80%90pearances-rather-than-reality,-an-ambitious-ruler-should-create-illu%E2%80%90sions.-He-%E2%80%9Cneed-not-have-all-the-good-qualities-%E2%80%A6-but-he-must-seem-to-have-them."></a> <a href="#machiavelli:-use-%E2%80%9Csimu%E2%80%90lation-and-dissimulation.%E2%80%9D-Since-most-people-are-influenced-by-ap%E2%80%90pearances-rather-than-reality,-an-ambitious-ruler-should-create-illu%E2%80%90sions.-He-%E2%80%9Cneed-not-have-all-the-good-qualities-%E2%80%A6-but-he-must-seem-to-have-them.">Machiavelli: use “simu‐lation and dissimulation.” Since most people are influenced by ap‐pearances rather than reality, an ambitious ruler should create illu‐sions. He “need not have all the good qualities … but he must seem to have them.</a> <br></br> <div class="outline-text-5" id="text-machiavelli:-use-%E2%80%9Csimu%E2%80%90lation-and-dissimulation.%E2%80%9D-Since-most-people-are-influenced-by-ap%E2%80%90pearances-rather-than-reality,-an-ambitious-ruler-should-create-illu%E2%80%90sions.-He-%E2%80%9Cneed-not-have-all-the-good-qualities-%E2%80%A6-but-he-must-seem-to-have-them.">
</div>
</li>

 <li> <a id="Rules"></a> <a href="#Rules">Rules</a> <br></br> <div class="outline-text-5" id="text-Rules">
 <ol class="org-ol"> <li>be pop­u­lar (for example, due to economic prosperity)</li>
 <li>ma­nip­u­late in­for­ma­tion</li>
 <li></li>
</ol></div>
</li>

 <li> <a id="here-twentieth-century-strongmen-relished-violent-imagery-%E2%80%94-recall-Saddam%E2%80%99s-%E2%80%9Cpoisoned-dagger%E2%80%9D"></a> <a href="#here-twentieth-century-strongmen-relished-violent-imagery-%E2%80%94-recall-Saddam%E2%80%99s-%E2%80%9Cpoisoned-dagger%E2%80%9D">here twentieth-century strongmen relished violent imagery — recall Saddam’s “poisoned dagger”</a> <br></br> <div class="outline-text-5" id="text-here-twentieth-century-strongmen-relished-violent-imagery-%E2%80%94-recall-Saddam%E2%80%99s-%E2%80%9Cpoisoned-dagger%E2%80%9D">
 <p>
TODO: thought!
Maybe the content of the propaganda does not matter whatsoever?
Maybe the mere presence is enough?
Make people always have you onto their mind?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-OTHER-EXPLANATIONS" class="outline-4">
 <h4 id="OTHER-EXPLANATIONS"> <span class="section-number-4">2.1.4.</span>  <a href="#OTHER-EXPLANATIONS">OTHER EXPLANATIONS</a></h4>
 <div class="outline-text-4" id="text-OTHER-EXPLANATIONS">
</div>
</div>

 <div id="outline-container-DIVIDING-LINES" class="outline-4">
 <h4 id="DIVIDING-LINES"> <span class="section-number-4">2.1.5.</span>  <a href="#DIVIDING-LINES">DIVIDING LINES</a></h4>
 <div class="outline-text-4" id="text-DIVIDING-LINES">
</div>
</div>

 <div id="outline-container-WHAT'S-NEXT?" class="outline-4">
 <h4 id="WHAT'S-NEXT?"> <span class="section-number-4">2.1.6.</span>  <a href="#WHAT'S-NEXT?">WHAT’S NEXT?</a></h4>
 <div class="outline-text-4" id="text-WHAT'S-NEXT?">
</div>
</div>
</div>

 <div id="outline-container-PART-I-HOW-IT'S-DONE" class="outline-3">
 <h3 id="PART-I-HOW-IT'S-DONE"> <span class="section-number-3">2.2.</span>  <a href="#PART-I-HOW-IT'S-DONE">PART I HOW IT’S DONE</a></h3>
 <div class="outline-text-3" id="text-PART-I-HOW-IT'S-DONE">
</div>
</div>

 <div id="outline-container-CHAPTER-2-DISCIPLINE,-BUT-DON'T-PUNISH" class="outline-3">
 <h3 id="CHAPTER-2-DISCIPLINE,-BUT-DON'T-PUNISH"> <span class="section-number-3">2.3.</span>  <a href="#CHAPTER-2-DISCIPLINE,-BUT-DON'T-PUNISH">CHAPTER 2 DISCIPLINE, BUT DON’T PUNISH</a></h3>
 <div class="outline-text-3" id="text-CHAPTER-2-DISCIPLINE,-BUT-DON'T-PUNISH">
</div>

 <ol class="org-ol"> <li> <a id="Vis%C2%ADit%C2%ADing-Sin%C2%ADga%C2%ADpore-in-1978,-Deng-had-been-amazed-at-what-Lee-had-made-of-the-once-im%C2%ADpov%C2%ADer%C2%ADished-colo%C2%ADnial-out%C2%ADpost.-In-the-eleven-years-since-then,-Lee-had-set-out-to-men%C2%ADtor-Deng-and-his-team,-ad%C2%ADvis%C2%ADing-them-on-eco%C2%ADnomic-pol%C2%ADicy."></a> <a href="#Vis%C2%ADit%C2%ADing-Sin%C2%ADga%C2%ADpore-in-1978,-Deng-had-been-amazed-at-what-Lee-had-made-of-the-once-im%C2%ADpov%C2%ADer%C2%ADished-colo%C2%ADnial-out%C2%ADpost.-In-the-eleven-years-since-then,-Lee-had-set-out-to-men%C2%ADtor-Deng-and-his-team,-ad%C2%ADvis%C2%ADing-them-on-eco%C2%ADnomic-pol%C2%ADicy.">Vis­it­ing Sin­ga­pore in 1978, Deng had been amazed at what Lee had made of the once im­pov­er­ished colo­nial out­post. In the eleven years since then, Lee had set out to men­tor Deng and his team, ad­vis­ing them on eco­nomic pol­icy.</a> <br></br> <div class="outline-text-5" id="text-Vis%C2%ADit%C2%ADing-Sin%C2%ADga%C2%ADpore-in-1978,-Deng-had-been-amazed-at-what-Lee-had-made-of-the-once-im%C2%ADpov%C2%ADer%C2%ADished-colo%C2%ADnial-out%C2%ADpost.-In-the-eleven-years-since-then,-Lee-had-set-out-to-men%C2%ADtor-Deng-and-his-team,-ad%C2%ADvis%C2%ADing-them-on-eco%C2%ADnomic-pol%C2%ADicy.">
 <p>
REALLY???
</p>
</div>
</li>

 <li> <a id="The-next-year,-Li-Peng,-who,-as-China%E2%80%99s-pre%E2%80%90mier,-had-or%C2%ADdered-the-troops-into-Tianan%C2%ADmen-Square,-vis%C2%ADited-Sin%C2%ADga%E2%80%90pore.-Lee-be%C2%ADrated-him-for-stag%C2%ADing-such-a-%E2%80%9Cgrand-show%E2%80%9D-be%C2%ADfore-the-world-me%C2%ADdia.-Li-Peng,-ac%C2%ADcord%C2%ADing-to-Lee,-replied-with-hu%C2%ADmil%C2%ADity:-%E2%80%9CWe-are-com%C2%ADpletely-in%C2%ADex%C2%ADpe%C2%ADri%C2%ADenced-in-these-mat%C2%ADters.%E2%80%9D"></a> <a href="#The-next-year,-Li-Peng,-who,-as-China%E2%80%99s-pre%E2%80%90mier,-had-or%C2%ADdered-the-troops-into-Tianan%C2%ADmen-Square,-vis%C2%ADited-Sin%C2%ADga%E2%80%90pore.-Lee-be%C2%ADrated-him-for-stag%C2%ADing-such-a-%E2%80%9Cgrand-show%E2%80%9D-be%C2%ADfore-the-world-me%C2%ADdia.-Li-Peng,-ac%C2%ADcord%C2%ADing-to-Lee,-replied-with-hu%C2%ADmil%C2%ADity:-%E2%80%9CWe-are-com%C2%ADpletely-in%C2%ADex%C2%ADpe%C2%ADri%C2%ADenced-in-these-mat%C2%ADters.%E2%80%9D">The next year, Li Peng, who, as China’s pre‐mier, had or­dered the troops into Tianan­men Square, vis­ited Sin­ga‐pore. Lee be­rated him for stag­ing such a “grand show” be­fore the world me­dia. Li Peng, ac­cord­ing to Lee, replied with hu­mil­ity: “We are com­pletely in­ex­pe­ri­enced in these mat­ters.”</a> <br></br> <div class="outline-text-5" id="text-The-next-year,-Li-Peng,-who,-as-China%E2%80%99s-pre%E2%80%90mier,-had-or%C2%ADdered-the-troops-into-Tianan%C2%ADmen-Square,-vis%C2%ADited-Sin%C2%ADga%E2%80%90pore.-Lee-be%C2%ADrated-him-for-stag%C2%ADing-such-a-%E2%80%9Cgrand-show%E2%80%9D-be%C2%ADfore-the-world-me%C2%ADdia.-Li-Peng,-ac%C2%ADcord%C2%ADing-to-Lee,-replied-with-hu%C2%ADmil%C2%ADity:-%E2%80%9CWe-are-com%C2%ADpletely-in%C2%ADex%C2%ADpe%C2%ADri%C2%ADenced-in-these-mat%C2%ADters.%E2%80%9D">
 <p>
FFS. I didn’t know that.
</p>
</div>
</li>
</ol> <div id="outline-container-BLOOD-LANDS" class="outline-4">
 <h4 id="BLOOD-LANDS"> <span class="section-number-4">2.3.1.</span>  <a href="#BLOOD-LANDS">BLOOD LANDS</a></h4>
 <div class="outline-text-4" id="text-BLOOD-LANDS">
</div>

 <ol class="org-ol"> <li> <a id="West-un%C2%ADder%C2%ADwent-a-rev%C2%ADo%C2%ADlu%C2%ADtion-in-pe%C2%ADnal-phi%C2%ADlos%C2%ADo%C2%ADphy-and-prac%C2%ADtices-be%C2%ADtween-1760-and-1840.-The-de%C2%ADlib%E2%80%90%C2%ADer%C2%ADate-in%C2%ADflic%C2%ADtion-of-pain-gave-way-to-more-%E2%80%9Chu%C2%ADmane%E2%80%9D-and-in%C2%ADvis%C2%ADi%C2%ADblepun%C2%ADish%C2%ADments,-some%C2%ADtimes-com%C2%ADbined-with-at%C2%ADtempts-at-re%C2%ADha%C2%ADbil%C2%ADi%C2%ADta%C2%ADtion-%3C...%3E-Why-things-changed-is-not-en%C2%ADtirely-clear,-al%C2%ADthough-many-sup%C2%ADpose-that-En%C2%ADlight%C2%ADen%C2%ADment-val%C2%ADues-played-a-key-part."></a> <a href="#West-un%C2%ADder%C2%ADwent-a-rev%C2%ADo%C2%ADlu%C2%ADtion-in-pe%C2%ADnal-phi%C2%ADlos%C2%ADo%C2%ADphy-and-prac%C2%ADtices-be%C2%ADtween-1760-and-1840.-The-de%C2%ADlib%E2%80%90%C2%ADer%C2%ADate-in%C2%ADflic%C2%ADtion-of-pain-gave-way-to-more-%E2%80%9Chu%C2%ADmane%E2%80%9D-and-in%C2%ADvis%C2%ADi%C2%ADblepun%C2%ADish%C2%ADments,-some%C2%ADtimes-com%C2%ADbined-with-at%C2%ADtempts-at-re%C2%ADha%C2%ADbil%C2%ADi%C2%ADta%C2%ADtion-%3C...%3E-Why-things-changed-is-not-en%C2%ADtirely-clear,-al%C2%ADthough-many-sup%C2%ADpose-that-En%C2%ADlight%C2%ADen%C2%ADment-val%C2%ADues-played-a-key-part.">West un­der­went a rev­o­lu­tion in pe­nal phi­los­o­phy and prac­tices be­tween 1760 and 1840. The de­lib‐­er­ate in­flic­tion of pain gave way to more “hu­mane” and in­vis­i­blepun­ish­ments, some­times com­bined with at­tempts at re­ha­bil­i­ta­tion <…> Why things changed is not en­tirely clear, al­though many sup­pose that En­light­en­ment val­ues played a key part.</a> <br></br> <div class="outline-text-5" id="text-West-un%C2%ADder%C2%ADwent-a-rev%C2%ADo%C2%ADlu%C2%ADtion-in-pe%C2%ADnal-phi%C2%ADlos%C2%ADo%C2%ADphy-and-prac%C2%ADtices-be%C2%ADtween-1760-and-1840.-The-de%C2%ADlib%E2%80%90%C2%ADer%C2%ADate-in%C2%ADflic%C2%ADtion-of-pain-gave-way-to-more-%E2%80%9Chu%C2%ADmane%E2%80%9D-and-in%C2%ADvis%C2%ADi%C2%ADblepun%C2%ADish%C2%ADments,-some%C2%ADtimes-com%C2%ADbined-with-at%C2%ADtempts-at-re%C2%ADha%C2%ADbil%C2%ADi%C2%ADta%C2%ADtion-%3C...%3E-Why-things-changed-is-not-en%C2%ADtirely-clear,-al%C2%ADthough-many-sup%C2%ADpose-that-En%C2%ADlight%C2%ADen%C2%ADment-val%C2%ADues-played-a-key-part.">
 <p>
Very interesting. (TODO?) I doubt the values.
</p>
</div>
</li>

 <li> <a id="Fou%C2%ADcault-also-ar%C2%ADgued,-more-con%C2%ADtro%C2%ADver%C2%ADsially,-that-the-re%C2%ADplace%C2%ADment-of-cor%C2%ADpo%C2%ADral-pun%E2%80%90%C2%ADish%C2%ADment-with-less-vis%C2%ADi%C2%ADble-forms-of-dis%C2%ADci%C2%ADpline-fa%C2%ADcil%C2%ADi%C2%ADtated-the-spread-of-such-power-mech%C2%ADa%C2%ADnisms-into-a-broad-range-of-so%C2%ADcial-set%C2%ADtings."></a> <a href="#Fou%C2%ADcault-also-ar%C2%ADgued,-more-con%C2%ADtro%C2%ADver%C2%ADsially,-that-the-re%C2%ADplace%C2%ADment-of-cor%C2%ADpo%C2%ADral-pun%E2%80%90%C2%ADish%C2%ADment-with-less-vis%C2%ADi%C2%ADble-forms-of-dis%C2%ADci%C2%ADpline-fa%C2%ADcil%C2%ADi%C2%ADtated-the-spread-of-such-power-mech%C2%ADa%C2%ADnisms-into-a-broad-range-of-so%C2%ADcial-set%C2%ADtings.">Fou­cault also ar­gued, more con­tro­ver­sially, that the re­place­ment of cor­po­ral pun‐­ish­ment with less vis­i­ble forms of dis­ci­pline fa­cil­i­tated the spread of such power mech­a­nisms into a broad range of so­cial set­tings.</a> <br></br> <div class="outline-text-5" id="text-Fou%C2%ADcault-also-ar%C2%ADgued,-more-con%C2%ADtro%C2%ADver%C2%ADsially,-that-the-re%C2%ADplace%C2%ADment-of-cor%C2%ADpo%C2%ADral-pun%E2%80%90%C2%ADish%C2%ADment-with-less-vis%C2%ADi%C2%ADble-forms-of-dis%C2%ADci%C2%ADpline-fa%C2%ADcil%C2%ADi%C2%ADtated-the-spread-of-such-power-mech%C2%ADa%C2%ADnisms-into-a-broad-range-of-so%C2%ADcial-set%C2%ADtings.">
 <p>
Hm… ?  I need to read Foucault.
</p>
</div>
</li>

 <li> <a id="Un%C2%ADder-him,-Ital%C2%ADians-fought-a-%E2%80%9CBat%C2%ADtle-for-Grain,%E2%80%9D-a-%E2%80%9CBat%C2%ADtle-for-Land,%E2%80%9D-and-even-a-%E2%80%9CWar-on-Flies.%E2%80%9D53-Com%E2%80%90%C2%ADmu%C2%ADnists-en%C2%ADgaged-in-%E2%80%9C-%E2%80%98strug%C2%ADgle%E2%80%99-and-%E2%80%98com%C2%ADbat%E2%80%99-on-%E2%80%98fronts%E2%80%99-to-achieve-%E2%80%98break%C2%ADthroughs%E2%80%99-in-pro%C2%ADduc%C2%ADtion-and-cul%C2%ADtural-%E2%80%98vic%C2%ADto%C2%ADries.%E2%80%99"></a> <a href="#Un%C2%ADder-him,-Ital%C2%ADians-fought-a-%E2%80%9CBat%C2%ADtle-for-Grain,%E2%80%9D-a-%E2%80%9CBat%C2%ADtle-for-Land,%E2%80%9D-and-even-a-%E2%80%9CWar-on-Flies.%E2%80%9D53-Com%E2%80%90%C2%ADmu%C2%ADnists-en%C2%ADgaged-in-%E2%80%9C-%E2%80%98strug%C2%ADgle%E2%80%99-and-%E2%80%98com%C2%ADbat%E2%80%99-on-%E2%80%98fronts%E2%80%99-to-achieve-%E2%80%98break%C2%ADthroughs%E2%80%99-in-pro%C2%ADduc%C2%ADtion-and-cul%C2%ADtural-%E2%80%98vic%C2%ADto%C2%ADries.%E2%80%99">Un­der him, Ital­ians fought a “Bat­tle for Grain,” a “Bat­tle for Land,” and even a “War on Flies.”53 Com‐­mu­nists en­gaged in “ ‘strug­gle’ and ‘com­bat’ on ‘fronts’ to achieve ‘break­throughs’ in pro­duc­tion and cul­tural ‘vic­to­ries.’</a> <br></br> <div class="outline-text-5" id="text-Un%C2%ADder-him,-Ital%C2%ADians-fought-a-%E2%80%9CBat%C2%ADtle-for-Grain,%E2%80%9D-a-%E2%80%9CBat%C2%ADtle-for-Land,%E2%80%9D-and-even-a-%E2%80%9CWar-on-Flies.%E2%80%9D53-Com%E2%80%90%C2%ADmu%C2%ADnists-en%C2%ADgaged-in-%E2%80%9C-%E2%80%98strug%C2%ADgle%E2%80%99-and-%E2%80%98com%C2%ADbat%E2%80%99-on-%E2%80%98fronts%E2%80%99-to-achieve-%E2%80%98break%C2%ADthroughs%E2%80%99-in-pro%C2%ADduc%C2%ADtion-and-cul%C2%ADtural-%E2%80%98vic%C2%ADto%C2%ADries.%E2%80%99">
 <p>
Easy to process, but hard to keep the brain focused.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-CALCULUS-OF-KILLING" class="outline-4">
 <h4 id="CALCULUS-OF-KILLING"> <span class="section-number-4">2.3.2.</span>  <a href="#CALCULUS-OF-KILLING">CALCULUS OF KILLING</a></h4>
 <div class="outline-text-4" id="text-CALCULUS-OF-KILLING">
</div>

 <ol class="org-ol"> <li> <a id="Psy%C2%ADcho%C2%ADlog%C2%ADi%C2%ADcal-re%C2%ADsearch-sug%E2%80%90%C2%ADgests-per%C2%ADceived-dan%C2%ADgers%E2%80%94even-those-un%C2%ADre%C2%ADlated-to-pol%C2%ADi%C2%ADtics%E2%80%94can-make-peo%C2%ADple-more-pes%C2%ADsimistic,-risk-averse,-and-sup%C2%ADport%C2%ADive-of-au%C2%ADthor%C2%ADi%C2%ADtar%C2%ADian-poli%C2%ADcies-and-lead%C2%ADers."></a> <a href="#Psy%C2%ADcho%C2%ADlog%C2%ADi%C2%ADcal-re%C2%ADsearch-sug%E2%80%90%C2%ADgests-per%C2%ADceived-dan%C2%ADgers%E2%80%94even-those-un%C2%ADre%C2%ADlated-to-pol%C2%ADi%C2%ADtics%E2%80%94can-make-peo%C2%ADple-more-pes%C2%ADsimistic,-risk-averse,-and-sup%C2%ADport%C2%ADive-of-au%C2%ADthor%C2%ADi%C2%ADtar%C2%ADian-poli%C2%ADcies-and-lead%C2%ADers.">Psy­cho­log­i­cal re­search sug‐­gests per­ceived dan­gers—even those un­re­lated to pol­i­tics—can make peo­ple more pes­simistic, risk averse, and sup­port­ive of au­thor­i­tar­ian poli­cies and lead­ers.</a> <br></br> <div class="outline-text-5" id="text-Psy%C2%ADcho%C2%ADlog%C2%ADi%C2%ADcal-re%C2%ADsearch-sug%E2%80%90%C2%ADgests-per%C2%ADceived-dan%C2%ADgers%E2%80%94even-those-un%C2%ADre%C2%ADlated-to-pol%C2%ADi%C2%ADtics%E2%80%94can-make-peo%C2%ADple-more-pes%C2%ADsimistic,-risk-averse,-and-sup%C2%ADport%C2%ADive-of-au%C2%ADthor%C2%ADi%C2%ADtar%C2%ADian-poli%C2%ADcies-and-lead%C2%ADers.">
 <p>
Indeed! Making people confused is more efficient than making them scared of something definite.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-LEE%E2%80%99S-SOFTER-TOUCH" class="outline-4">
 <h4 id="LEE%E2%80%99S-SOFTER-TOUCH"> <span class="section-number-4">2.3.3.</span>  <a href="#LEE%E2%80%99S-SOFTER-TOUCH">LEE’S SOFTER TOUCH</a></h4>
 <div class="outline-text-4" id="text-LEE%E2%80%99S-SOFTER-TOUCH">
</div>

 <ol class="org-ol"> <li> <a id="His-of%C2%ADfi%C2%ADcials-tightly-reg%C2%ADu%C2%ADlated-stu%C2%ADdent-or%C2%ADga%C2%ADni%C2%ADza%C2%ADtions-and-vet%C2%ADted-new-fac%C2%ADulty-for-sound%C2%ADness."></a> <a href="#His-of%C2%ADfi%C2%ADcials-tightly-reg%C2%ADu%C2%ADlated-stu%C2%ADdent-or%C2%ADga%C2%ADni%C2%ADza%C2%ADtions-and-vet%C2%ADted-new-fac%C2%ADulty-for-sound%C2%ADness.">His of­fi­cials tightly reg­u­lated stu­dent or­ga­ni­za­tions and vet­ted new fac­ulty for sound­ness.</a> <br></br> <div class="outline-text-5" id="text-His-of%C2%ADfi%C2%ADcials-tightly-reg%C2%ADu%C2%ADlated-stu%C2%ADdent-or%C2%ADga%C2%ADni%C2%ADza%C2%ADtions-and-vet%C2%ADted-new-fac%C2%ADulty-for-sound%C2%ADness.">
 <p>
Regulating something is a surer way to kill something than outright prohibiting it.
</p>
</div>
</li>

 <li> <a id="Kazakh-of%C2%ADfi%C2%ADcials-made-fre%C2%ADquent-study-trips-to-Sin%C2%ADga%C2%ADpore."></a> <a href="#Kazakh-of%C2%ADfi%C2%ADcials-made-fre%C2%ADquent-study-trips-to-Sin%C2%ADga%C2%ADpore.">Kazakh of­fi­cials made fre­quent study trips to Sin­ga­pore.</a> <br></br> <div class="outline-text-5" id="text-Kazakh-of%C2%ADfi%C2%ADcials-made-fre%C2%ADquent-study-trips-to-Sin%C2%ADga%C2%ADpore.">
 <p>
!!!
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-MOSCOW-METHODS" class="outline-4">
 <h4 id="MOSCOW-METHODS"> <span class="section-number-4">2.3.4.</span>  <a href="#MOSCOW-METHODS">MOSCOW METHODS</a></h4>
 <div class="outline-text-4" id="text-MOSCOW-METHODS">
</div>

 <ol class="org-ol"> <li> <a id="The-mind-games-could-be-sub%C2%ADtle.-In-one-case,-Stasi-agents-snuck-into-a-woman%E2%80%99s-apart%C2%ADment-and-re%C2%ADar%C2%ADranged-the-fur%C2%ADni%C2%ADture."></a> <a href="#The-mind-games-could-be-sub%C2%ADtle.-In-one-case,-Stasi-agents-snuck-into-a-woman%E2%80%99s-apart%C2%ADment-and-re%C2%ADar%C2%ADranged-the-fur%C2%ADni%C2%ADture.">The mind games could be sub­tle. In one case, Stasi agents snuck into a woman’s apart­ment and re­ar­ranged the fur­ni­ture.</a> <br></br> <div class="outline-text-5" id="text-The-mind-games-could-be-sub%C2%ADtle.-In-one-case,-Stasi-agents-snuck-into-a-woman%E2%80%99s-apart%C2%ADment-and-re%C2%ADar%C2%ADranged-the-fur%C2%ADni%C2%ADture.">
 <p>
Very important. Corrosion should be subtle.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-THE-NEW-PLAYBOOK" class="outline-4">
 <h4 id="THE-NEW-PLAYBOOK"> <span class="section-number-4">2.3.5.</span>  <a href="#THE-NEW-PLAYBOOK">THE NEW PLAYBOOK</a></h4>
 <div class="outline-text-4" id="text-THE-NEW-PLAYBOOK">
 <p>
More or less lists the things that are used.
</p>
</div>
</div>

 <div id="outline-container-CHECKING-THE-EVIDENCE" class="outline-4">
 <h4 id="CHECKING-THE-EVIDENCE"> <span class="section-number-4">2.3.6.</span>  <a href="#CHECKING-THE-EVIDENCE">CHECKING THE EVIDENCE</a></h4>
 <div class="outline-text-4" id="text-CHECKING-THE-EVIDENCE">
</div>
</div>
</div>

 <div id="outline-container-CHAPTER-3-POSTMODERN-PROPAGANDA" class="outline-3">
 <h3 id="CHAPTER-3-POSTMODERN-PROPAGANDA"> <span class="section-number-3">2.4.</span>  <a href="#CHAPTER-3-POSTMODERN-PROPAGANDA">CHAPTER 3 POSTMODERN PROPAGANDA</a></h3>
 <div class="outline-text-3" id="text-CHAPTER-3-POSTMODERN-PROPAGANDA">
</div>

 <ol class="org-ol"> <li> <a id="In-Asian-so%C2%ADci%C2%ADety-dis%C2%ADci%C2%ADpline-and-or%C2%ADder-are-more-im%C2%ADpor%C2%ADtant-than-democ%C2%ADracy,-which-has-to-de%C2%ADvelop-over-time.%E2%80%9D"></a> <a href="#In-Asian-so%C2%ADci%C2%ADety-dis%C2%ADci%C2%ADpline-and-or%C2%ADder-are-more-im%C2%ADpor%C2%ADtant-than-democ%C2%ADracy,-which-has-to-de%C2%ADvelop-over-time.%E2%80%9D">In Asian so­ci­ety dis­ci­pline and or­der are more im­por­tant than democ­racy, which has to de­velop over time.”</a> <br></br> <div class="outline-text-5" id="text-In-Asian-so%C2%ADci%C2%ADety-dis%C2%ADci%C2%ADpline-and-or%C2%ADder-are-more-im%C2%ADpor%C2%ADtant-than-democ%C2%ADracy,-which-has-to-de%C2%ADvelop-over-time.%E2%80%9D">
</div>
</li>
</ol> <div id="outline-container-RHETORIC-OF-REPRESSION" class="outline-4">
 <h4 id="RHETORIC-OF-REPRESSION"> <span class="section-number-4">2.4.1.</span>  <a href="#RHETORIC-OF-REPRESSION">RHETORIC OF REPRESSION</a></h4>
 <div class="outline-text-4" id="text-RHETORIC-OF-REPRESSION">
 <p>
Well, dictators use both mobilising and de-mobilising propaganda.
</p>
</div>
</div>

 <div id="outline-container-IDIOMS-OF-INTIMIDATION" class="outline-4">
 <h4 id="IDIOMS-OF-INTIMIDATION"> <span class="section-number-4">2.4.2.</span>  <a href="#IDIOMS-OF-INTIMIDATION">IDIOMS OF INTIMIDATION</a></h4>
 <div class="outline-text-4" id="text-IDIOMS-OF-INTIMIDATION">
</div>

 <ol class="org-ol"> <li> <a id="Why-bother-to-con%C2%ADtrol-what-peo%C2%ADple-said-or-thought-if-they-had-al%E2%80%90%C2%ADready-been-ter%C2%ADror%C2%ADized-into-obe%C2%ADdi%C2%ADence?-Our-an%C2%ADswer-is-that-all-these-mea%C2%ADsures-helped-make-re%C2%ADpres%C2%ADsion-more-ef%C2%ADfec%C2%ADtive."></a> <a href="#Why-bother-to-con%C2%ADtrol-what-peo%C2%ADple-said-or-thought-if-they-had-al%E2%80%90%C2%ADready-been-ter%C2%ADror%C2%ADized-into-obe%C2%ADdi%C2%ADence?-Our-an%C2%ADswer-is-that-all-these-mea%C2%ADsures-helped-make-re%C2%ADpres%C2%ADsion-more-ef%C2%ADfec%C2%ADtive.">Why bother to con­trol what peo­ple said or thought if they had al‐­ready been ter­ror­ized into obe­di­ence? Our an­swer is that all these mea­sures helped make re­pres­sion more ef­fec­tive.</a> <br></br> <div class="outline-text-5" id="text-Why-bother-to-con%C2%ADtrol-what-peo%C2%ADple-said-or-thought-if-they-had-al%E2%80%90%C2%ADready-been-ter%C2%ADror%C2%ADized-into-obe%C2%ADdi%C2%ADence?-Our-an%C2%ADswer-is-that-all-these-mea%C2%ADsures-helped-make-re%C2%ADpres%C2%ADsion-more-ef%C2%ADfec%C2%ADtive.">
</div>
</li>

 <li> <a id="To-the-lin%C2%ADguist-Vic%C2%ADtor-Klem%C2%ADperer,-who-lived-through-the-Nazi-years-in-Dres%C2%ADden,-Hitler%E2%80%99s-tirades-gen%C2%ADer%C2%ADated-a-kind-of-sus%C2%ADpense-rem%C2%ADi%C2%ADnis%C2%ADcent-of-%E2%80%9CAmer%C2%ADi%C2%ADcan-cin%C2%ADema-and-thrillers.%E2%80%9D-This-was-de%C2%ADlib%C2%ADer%C2%ADate.-Goebbels-aimed-to-cre%C2%ADate-an-at%C2%ADmos%C2%ADphere-of-tense-fore%C2%ADbod%C2%ADing,-what-he-called-%E2%80%9Cthick-air%E2%80%9C-(dicke-luft)."></a> <a href="#To-the-lin%C2%ADguist-Vic%C2%ADtor-Klem%C2%ADperer,-who-lived-through-the-Nazi-years-in-Dres%C2%ADden,-Hitler%E2%80%99s-tirades-gen%C2%ADer%C2%ADated-a-kind-of-sus%C2%ADpense-rem%C2%ADi%C2%ADnis%C2%ADcent-of-%E2%80%9CAmer%C2%ADi%C2%ADcan-cin%C2%ADema-and-thrillers.%E2%80%9D-This-was-de%C2%ADlib%C2%ADer%C2%ADate.-Goebbels-aimed-to-cre%C2%ADate-an-at%C2%ADmos%C2%ADphere-of-tense-fore%C2%ADbod%C2%ADing,-what-he-called-%E2%80%9Cthick-air%E2%80%9C-(dicke-luft).">To the lin­guist Vic­tor Klem­perer, who lived through the Nazi years in Dres­den, Hitler’s tirades gen­er­ated a kind of sus­pense rem­i­nis­cent of “Amer­i­can cin­ema and thrillers.” This was de­lib­er­ate. Goebbels aimed to cre­ate an at­mos­phere of tense fore­bod­ing, what he called “thick air“ (dicke luft).</a> <br></br> <div class="outline-text-5" id="text-To-the-lin%C2%ADguist-Vic%C2%ADtor-Klem%C2%ADperer,-who-lived-through-the-Nazi-years-in-Dres%C2%ADden,-Hitler%E2%80%99s-tirades-gen%C2%ADer%C2%ADated-a-kind-of-sus%C2%ADpense-rem%C2%ADi%C2%ADnis%C2%ADcent-of-%E2%80%9CAmer%C2%ADi%C2%ADcan-cin%C2%ADema-and-thrillers.%E2%80%9D-This-was-de%C2%ADlib%C2%ADer%C2%ADate.-Goebbels-aimed-to-cre%C2%ADate-an-at%C2%ADmos%C2%ADphere-of-tense-fore%C2%ADbod%C2%ADing,-what-he-called-%E2%80%9Cthick-air%E2%80%9C-(dicke-luft).">
 <p>
“Amer­i­can cin­ema and thrillers.” (sic!)
</p>
</div>
</li>

 <li> <a id="Be%C2%ADsides-dis%C2%ADtin%C2%ADguish%C2%ADing-%E2%80%9Cgood%E2%80%9D-from-%E2%80%9Cbad%E2%80%9D-and-jus%C2%ADti%C2%ADfy%C2%ADing-vi%C2%ADo%C2%ADlence,-ide%C2%ADolo%C2%ADgies-de%C2%ADcen%C2%ADtral%C2%ADized-re%C2%ADpres%C2%ADsion-to-or%C2%ADdi%E2%80%90%C2%ADnary-cit%C2%ADi%C2%ADzens."></a> <a href="#Be%C2%ADsides-dis%C2%ADtin%C2%ADguish%C2%ADing-%E2%80%9Cgood%E2%80%9D-from-%E2%80%9Cbad%E2%80%9D-and-jus%C2%ADti%C2%ADfy%C2%ADing-vi%C2%ADo%C2%ADlence,-ide%C2%ADolo%C2%ADgies-de%C2%ADcen%C2%ADtral%C2%ADized-re%C2%ADpres%C2%ADsion-to-or%C2%ADdi%E2%80%90%C2%ADnary-cit%C2%ADi%C2%ADzens.">Be­sides dis­tin­guish­ing “good” from “bad” and jus­ti­fy­ing vi­o­lence, ide­olo­gies de­cen­tral­ized re­pres­sion to or­di‐­nary cit­i­zens.</a> <br></br> <div class="outline-text-5" id="text-Be%C2%ADsides-dis%C2%ADtin%C2%ADguish%C2%ADing-%E2%80%9Cgood%E2%80%9D-from-%E2%80%9Cbad%E2%80%9D-and-jus%C2%ADti%C2%ADfy%C2%ADing-vi%C2%ADo%C2%ADlence,-ide%C2%ADolo%C2%ADgies-de%C2%ADcen%C2%ADtral%C2%ADized-re%C2%ADpres%C2%ADsion-to-or%C2%ADdi%E2%80%90%C2%ADnary-cit%C2%ADi%C2%ADzens.">
</div>
</li>

 <li> <a id="A-smart-in%C2%ADflu%C2%ADencer,-the-same-ex%C2%ADpert-adds,-will-make-his-ap%C2%ADpeals-%E2%80%9Csim%C2%ADple-and-mem%C2%ADo%C2%ADrable.%E2%80%9D50-The-com%C2%ADmu%C2%ADnists-cre%C2%ADated-a-dis%C2%ADcourse-that-was-bor%C2%ADing-and-ar%C2%ADcane."></a> <a href="#A-smart-in%C2%ADflu%C2%ADencer,-the-same-ex%C2%ADpert-adds,-will-make-his-ap%C2%ADpeals-%E2%80%9Csim%C2%ADple-and-mem%C2%ADo%C2%ADrable.%E2%80%9D50-The-com%C2%ADmu%C2%ADnists-cre%C2%ADated-a-dis%C2%ADcourse-that-was-bor%C2%ADing-and-ar%C2%ADcane.">A smart in­flu­encer, the same ex­pert adds, will make his ap­peals “sim­ple and mem­o­rable.”50 The com­mu­nists cre­ated a dis­course that was bor­ing and ar­cane.</a> <br></br> <div class="outline-text-5" id="text-A-smart-in%C2%ADflu%C2%ADencer,-the-same-ex%C2%ADpert-adds,-will-make-his-ap%C2%ADpeals-%E2%80%9Csim%C2%ADple-and-mem%C2%ADo%C2%ADrable.%E2%80%9D50-The-com%C2%ADmu%C2%ADnists-cre%C2%ADated-a-dis%C2%ADcourse-that-was-bor%C2%ADing-and-ar%C2%ADcane.">
</div>
</li>

 <li> <a id="old-model%E2%80%99s-strength-was-not-in-its-power-to-per%C2%ADsuade.-%3C...%3E-Hitler%E2%80%99s-speeches-dur%C2%ADing-his-rise-to-power-had-a-%E2%80%9Cneg%C2%ADli%C2%ADgi%C2%ADble%E2%80%9D-im%C2%ADpact-on-his-elec%C2%ADtoral-per%C2%ADfor%C2%ADmance."></a> <a href="#old-model%E2%80%99s-strength-was-not-in-its-power-to-per%C2%ADsuade.-%3C...%3E-Hitler%E2%80%99s-speeches-dur%C2%ADing-his-rise-to-power-had-a-%E2%80%9Cneg%C2%ADli%C2%ADgi%C2%ADble%E2%80%9D-im%C2%ADpact-on-his-elec%C2%ADtoral-per%C2%ADfor%C2%ADmance.">old model’s strength was not in its power to per­suade. <…> Hitler’s speeches dur­ing his rise to power had a “neg­li­gi­ble” im­pact on his elec­toral per­for­mance.</a> <br></br> <div class="outline-text-5" id="text-old-model%E2%80%99s-strength-was-not-in-its-power-to-per%C2%ADsuade.-%3C...%3E-Hitler%E2%80%99s-speeches-dur%C2%ADing-his-rise-to-power-had-a-%E2%80%9Cneg%C2%ADli%C2%ADgi%C2%ADble%E2%80%9D-im%C2%ADpact-on-his-elec%C2%ADtoral-per%C2%ADfor%C2%ADmance.">
</div>
</li>
</ol></div>

 <div id="outline-container-SPINSPEAK" class="outline-4">
 <h4 id="SPINSPEAK"> <span class="section-number-4">2.4.3.</span>  <a href="#SPINSPEAK">SPINSPEAK</a></h4>
 <div class="outline-text-4" id="text-SPINSPEAK">
</div>

 <ol class="org-ol"> <li> <a id="In%C2%ADstead-of-the-old-threat%E2%80%94%E2%80%9CBe-obe%E2%80%90%C2%ADdi%C2%ADent,-or-else!%E2%80%9D%E2%80%94the-new-line-seems-to-be:-%E2%80%9CLook-what-a-great-job-we%E2%80%99re-do%C2%ADing!"></a> <a href="#In%C2%ADstead-of-the-old-threat%E2%80%94%E2%80%9CBe-obe%E2%80%90%C2%ADdi%C2%ADent,-or-else!%E2%80%9D%E2%80%94the-new-line-seems-to-be:-%E2%80%9CLook-what-a-great-job-we%E2%80%99re-do%C2%ADing!">In­stead of the old threat—“Be obe‐­di­ent, or else!”—the new line seems to be: “Look what a great job we’re do­ing!</a> <br></br> <div class="outline-text-5" id="text-In%C2%ADstead-of-the-old-threat%E2%80%94%E2%80%9CBe-obe%E2%80%90%C2%ADdi%C2%ADent,-or-else!%E2%80%9D%E2%80%94the-new-line-seems-to-be:-%E2%80%9CLook-what-a-great-job-we%E2%80%99re-do%C2%ADing!">
 <p>
Important!
</p>
</div>
</li>

 <li> <a id="The-act-is-more-chal%C2%ADleng%C2%ADing-when-per%C2%ADfor%C2%ADmance-is-clearly-bad."></a> <a href="#The-act-is-more-chal%C2%ADleng%C2%ADing-when-per%C2%ADfor%C2%ADmance-is-clearly-bad.">The act is more chal­leng­ing when per­for­mance is clearly bad.</a> <br></br> <div class="outline-text-5" id="text-The-act-is-more-chal%C2%ADleng%C2%ADing-when-per%C2%ADfor%C2%ADmance-is-clearly-bad.">
 <p>
Can a “spin dictatorship” really exist in a closed system?
</p>
</div>
</li>

 <li> <a id="We-are-prag%C2%ADma%C2%ADtists,%E2%80%9D-Lee-Kuan-Yew-in%C2%ADsisted.-%E2%80%9CWe-are-not-en%C2%ADam%C2%ADored-of-any-ide%C2%ADol%C2%ADogy.%E2%80%9D"></a> <a href="#We-are-prag%C2%ADma%C2%ADtists,%E2%80%9D-Lee-Kuan-Yew-in%C2%ADsisted.-%E2%80%9CWe-are-not-en%C2%ADam%C2%ADored-of-any-ide%C2%ADol%C2%ADogy.%E2%80%9D">We are prag­ma­tists,” Lee Kuan Yew in­sisted. “We are not en­am­ored of any ide­ol­ogy.”</a> <br></br> <div class="outline-text-5" id="text-We-are-prag%C2%ADma%C2%ADtists,%E2%80%9D-Lee-Kuan-Yew-in%C2%ADsisted.-%E2%80%9CWe-are-not-en%C2%ADam%C2%ADored-of-any-ide%C2%ADol%C2%ADogy.%E2%80%9D">
 <p>
Make it more confusing!
</p>
</div>
</li>

 <li> <a id="Some-have-at%C2%ADtrib%C2%ADuted-com%C2%ADpa%C2%ADra%C2%ADble-per%C2%ADson%C2%ADal%C2%ADity-cults-to-spin-dic%C2%ADta%E2%80%90%C2%ADtors-such-as-Ch%C3%A1vez-and-Putin.85-But,-in-fact,-what-these-lead%C2%ADers-de%C2%ADvel%E2%80%90%C2%ADoped-were-not-per%C2%ADson%C2%ADal%C2%ADity-cults-but-celebrity%E2%80%94of-the-tacky-kind-that-sur%C2%ADrounds-West%C2%ADern-per%C2%ADform%C2%ADers"></a> <a href="#Some-have-at%C2%ADtrib%C2%ADuted-com%C2%ADpa%C2%ADra%C2%ADble-per%C2%ADson%C2%ADal%C2%ADity-cults-to-spin-dic%C2%ADta%E2%80%90%C2%ADtors-such-as-Ch%C3%A1vez-and-Putin.85-But,-in-fact,-what-these-lead%C2%ADers-de%C2%ADvel%E2%80%90%C2%ADoped-were-not-per%C2%ADson%C2%ADal%C2%ADity-cults-but-celebrity%E2%80%94of-the-tacky-kind-that-sur%C2%ADrounds-West%C2%ADern-per%C2%ADform%C2%ADers">Some have at­trib­uted com­pa­ra­ble per­son­al­ity cults to spin dic­ta‐­tors such as Chávez and Putin.85 But, in fact, what these lead­ers de­vel‐­oped were not per­son­al­ity cults but celebrity—of the tacky kind that sur­rounds West­ern per­form­ers</a> <br></br> <div class="outline-text-5" id="text-Some-have-at%C2%ADtrib%C2%ADuted-com%C2%ADpa%C2%ADra%C2%ADble-per%C2%ADson%C2%ADal%C2%ADity-cults-to-spin-dic%C2%ADta%E2%80%90%C2%ADtors-such-as-Ch%C3%A1vez-and-Putin.85-But,-in-fact,-what-these-lead%C2%ADers-de%C2%ADvel%E2%80%90%C2%ADoped-were-not-per%C2%ADson%C2%ADal%C2%ADity-cults-but-celebrity%E2%80%94of-the-tacky-kind-that-sur%C2%ADrounds-West%C2%ADern-per%C2%ADform%C2%ADers">
 <p>
Very important!
</p>
</div>
</li>

 <li> <a id="Be%C2%ADsides-redi%C2%ADrect%C2%ADing-blame-for-poor-per%C2%ADfor%C2%ADmance,-spin-dic%C2%ADta%C2%ADtors-who-can%C2%ADnot-con%C2%ADceal-bad-news-try-to-con%C2%ADvince-the-pub%C2%ADlic-that-any-al%E2%80%90%C2%ADter%C2%ADna%C2%ADtive-leader-would-do-worse."></a> <a href="#Be%C2%ADsides-redi%C2%ADrect%C2%ADing-blame-for-poor-per%C2%ADfor%C2%ADmance,-spin-dic%C2%ADta%C2%ADtors-who-can%C2%ADnot-con%C2%ADceal-bad-news-try-to-con%C2%ADvince-the-pub%C2%ADlic-that-any-al%E2%80%90%C2%ADter%C2%ADna%C2%ADtive-leader-would-do-worse.">Be­sides redi­rect­ing blame for poor per­for­mance, spin dic­ta­tors who can­not con­ceal bad news try to con­vince the pub­lic that any al‐­ter­na­tive leader would do worse.</a> <br></br> <div class="outline-text-5" id="text-Be%C2%ADsides-redi%C2%ADrect%C2%ADing-blame-for-poor-per%C2%ADfor%C2%ADmance,-spin-dic%C2%ADta%C2%ADtors-who-can%C2%ADnot-con%C2%ADceal-bad-news-try-to-con%C2%ADvince-the-pub%C2%ADlic-that-any-al%E2%80%90%C2%ADter%C2%ADna%C2%ADtive-leader-would-do-worse.">
 <p>
Very important!
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-CHECKING-THE-EVIDENCE-1" class="outline-4">
 <h4 id="CHECKING-THE-EVIDENCE-1"> <span class="section-number-4">2.4.4.</span>  <a href="#CHECKING-THE-EVIDENCE-1">CHECKING THE EVIDENCE</a></h4>
 <div class="outline-text-4" id="text-CHECKING-THE-EVIDENCE-1">
</div>

 <ol class="org-ol"> <li> <a id="The-one-ex%C2%ADcep%C2%ADtion-is-Pres%C2%ADi%C2%ADdent-Eisen%C2%ADhower,-who%E2%80%94al%C2%ADthough-a-demo%C2%ADcrat%E2%80%94served-at-an-in%C2%ADtense-mo%E2%80%90%C2%ADment-of-Cold-War-con%C2%ADfronta%C2%ADtion-and-so-had-much-to-say-about-mis%E2%80%90%C2%ADsiles-and-mil%C2%ADi%C2%ADtary-threats."></a> <a href="#The-one-ex%C2%ADcep%C2%ADtion-is-Pres%C2%ADi%C2%ADdent-Eisen%C2%ADhower,-who%E2%80%94al%C2%ADthough-a-demo%C2%ADcrat%E2%80%94served-at-an-in%C2%ADtense-mo%E2%80%90%C2%ADment-of-Cold-War-con%C2%ADfronta%C2%ADtion-and-so-had-much-to-say-about-mis%E2%80%90%C2%ADsiles-and-mil%C2%ADi%C2%ADtary-threats.">The one ex­cep­tion is Pres­i­dent Eisen­hower, who—al­though a demo­crat—served at an in­tense mo‐­ment of Cold War con­fronta­tion and so had much to say about mis‐­siles and mil­i­tary threats.</a> <br></br> <div class="outline-text-5" id="text-The-one-ex%C2%ADcep%C2%ADtion-is-Pres%C2%ADi%C2%ADdent-Eisen%C2%ADhower,-who%E2%80%94al%C2%ADthough-a-demo%C2%ADcrat%E2%80%94served-at-an-in%C2%ADtense-mo%E2%80%90%C2%ADment-of-Cold-War-con%C2%ADfronta%C2%ADtion-and-so-had-much-to-say-about-mis%E2%80%90%C2%ADsiles-and-mil%C2%ADi%C2%ADtary-threats.">
 <p>
Note: read Eisenhower’s speeches for colourful epithets.
</p>
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-CHAPTER-4-SENSIBLE-CENSORSHIP" class="outline-3">
 <h3 id="CHAPTER-4-SENSIBLE-CENSORSHIP"> <span class="section-number-3">2.5.</span>  <a href="#CHAPTER-4-SENSIBLE-CENSORSHIP">CHAPTER 4 SENSIBLE CENSORSHIP</a></h3>
 <div class="outline-text-3" id="text-CHAPTER-4-SENSIBLE-CENSORSHIP">
 <p>
Alberto Fujimori
</p>
</div>

 <ol class="org-ol"> <li> <a id="Fu%C2%ADji%C2%ADmori-had-made-two-mis%C2%ADcal%C2%ADcu%C2%ADla%C2%ADtions.-First,-his-at%C2%ADtack-on-democ%C2%ADracy-and-the-press-had-pro%C2%ADvoked-the-fury-of-hu%E2%80%90%C2%ADman-rights-or%C2%ADga%C2%ADni%C2%ADza%C2%ADtions-around-the-world.-The-U.S.,-Ger%C2%ADman,-and-Span%C2%ADish-gov%C2%ADern%C2%ADments-froze-all-aid-ex%C2%ADcept-hu%C2%ADman%C2%ADi%C2%ADtar%C2%ADian-as%C2%ADsis%C2%ADtance.-Venezuela-and-Colom%C2%ADbia-sus%C2%ADpended-diplo%C2%ADmatic-re%C2%ADla%C2%ADtions-and-Ar%E2%80%90%C2%ADgentina-re%C2%ADcalled-its-am%C2%ADbas%C2%ADsador.-The-Or%C2%ADga%C2%ADni%C2%ADza%C2%ADtion-of-Amer%C2%ADi%C2%ADcan-States-be%C2%ADgan-dis%C2%ADcussing-sanc%C2%ADtions;-some-mem%C2%ADbers-called-for-Peru%E2%80%99s-sus%E2%80%90%C2%ADpen%C2%ADsion."></a> <a href="#Fu%C2%ADji%C2%ADmori-had-made-two-mis%C2%ADcal%C2%ADcu%C2%ADla%C2%ADtions.-First,-his-at%C2%ADtack-on-democ%C2%ADracy-and-the-press-had-pro%C2%ADvoked-the-fury-of-hu%E2%80%90%C2%ADman-rights-or%C2%ADga%C2%ADni%C2%ADza%C2%ADtions-around-the-world.-The-U.S.,-Ger%C2%ADman,-and-Span%C2%ADish-gov%C2%ADern%C2%ADments-froze-all-aid-ex%C2%ADcept-hu%C2%ADman%C2%ADi%C2%ADtar%C2%ADian-as%C2%ADsis%C2%ADtance.-Venezuela-and-Colom%C2%ADbia-sus%C2%ADpended-diplo%C2%ADmatic-re%C2%ADla%C2%ADtions-and-Ar%E2%80%90%C2%ADgentina-re%C2%ADcalled-its-am%C2%ADbas%C2%ADsador.-The-Or%C2%ADga%C2%ADni%C2%ADza%C2%ADtion-of-Amer%C2%ADi%C2%ADcan-States-be%C2%ADgan-dis%C2%ADcussing-sanc%C2%ADtions;-some-mem%C2%ADbers-called-for-Peru%E2%80%99s-sus%E2%80%90%C2%ADpen%C2%ADsion.">Fu­ji­mori had made two mis­cal­cu­la­tions. First, his at­tack on democ­racy and the press had pro­voked the fury of hu‐­man rights or­ga­ni­za­tions around the world. The U.S., Ger­man, and Span­ish gov­ern­ments froze all aid ex­cept hu­man­i­tar­ian as­sis­tance. Venezuela and Colom­bia sus­pended diplo­matic re­la­tions and Ar‐­gentina re­called its am­bas­sador. The Or­ga­ni­za­tion of Amer­i­can States be­gan dis­cussing sanc­tions; some mem­bers called for Peru’s sus‐­pen­sion.</a> <br></br> <div class="outline-text-5" id="text-Fu%C2%ADji%C2%ADmori-had-made-two-mis%C2%ADcal%C2%ADcu%C2%ADla%C2%ADtions.-First,-his-at%C2%ADtack-on-democ%C2%ADracy-and-the-press-had-pro%C2%ADvoked-the-fury-of-hu%E2%80%90%C2%ADman-rights-or%C2%ADga%C2%ADni%C2%ADza%C2%ADtions-around-the-world.-The-U.S.,-Ger%C2%ADman,-and-Span%C2%ADish-gov%C2%ADern%C2%ADments-froze-all-aid-ex%C2%ADcept-hu%C2%ADman%C2%ADi%C2%ADtar%C2%ADian-as%C2%ADsis%C2%ADtance.-Venezuela-and-Colom%C2%ADbia-sus%C2%ADpended-diplo%C2%ADmatic-re%C2%ADla%C2%ADtions-and-Ar%E2%80%90%C2%ADgentina-re%C2%ADcalled-its-am%C2%ADbas%C2%ADsador.-The-Or%C2%ADga%C2%ADni%C2%ADza%C2%ADtion-of-Amer%C2%ADi%C2%ADcan-States-be%C2%ADgan-dis%C2%ADcussing-sanc%C2%ADtions;-some-mem%C2%ADbers-called-for-Peru%E2%80%99s-sus%E2%80%90%C2%ADpen%C2%ADsion.">
 <p>
Why is any of that important?
</p>
</div>
</li>
</ol> <div id="outline-container-FIGHTING-WORDS" class="outline-4">
 <h4 id="FIGHTING-WORDS"> <span class="section-number-4">2.5.1.</span>  <a href="#FIGHTING-WORDS">FIGHTING WORDS</a></h4>
 <div class="outline-text-4" id="text-FIGHTING-WORDS">
</div>

 <ol class="org-ol"> <li> <a id="If-a-block%C2%ADage-can-be-blamed-on-tech%C2%ADnol%C2%ADogy,-gov%C2%ADern%C2%ADments-can-avoid-po%C2%ADlit%C2%ADi%C2%ADcal-back%C2%ADlash."></a> <a href="#If-a-block%C2%ADage-can-be-blamed-on-tech%C2%ADnol%C2%ADogy,-gov%C2%ADern%C2%ADments-can-avoid-po%C2%ADlit%C2%ADi%C2%ADcal-back%C2%ADlash.">If a block­age can be blamed on tech­nol­ogy, gov­ern­ments can avoid po­lit­i­cal back­lash.</a> <br></br> <div class="outline-text-5" id="text-If-a-block%C2%ADage-can-be-blamed-on-tech%C2%ADnol%C2%ADogy,-gov%C2%ADern%C2%ADments-can-avoid-po%C2%ADlit%C2%ADi%C2%ADcal-back%C2%ADlash.">
</div>
</li>
</ol></div>

 <div id="outline-container-COMMAND-+-DELETE" class="outline-4">
 <h4 id="COMMAND-+-DELETE"> <span class="section-number-4">2.5.2.</span>  <a href="#COMMAND-+-DELETE">COMMAND + DELETE</a></h4>
 <div class="outline-text-4" id="text-COMMAND-+-DELETE">
 <p>
Fear dictatorships censor openly, Spin dictatorships censor covertly.
</p>
</div>
</div>

 <div id="outline-container-CHECKING-THE-EVIDENCE-1-2" class="outline-4">
 <h4 id="CHECKING-THE-EVIDENCE-1-2"> <span class="section-number-4">2.5.3.</span>  <a href="#CHECKING-THE-EVIDENCE-1-2">CHECKING THE EVIDENCE</a></h4>
 <div class="outline-text-4" id="text-CHECKING-THE-EVIDENCE-1-2">
</div>

 <ol class="org-ol"> <li> <a id="Mov%C2%ADing-from-no-3G-cov%C2%ADer%C2%ADage-to-full-cov%C2%ADer%C2%ADage-led-to-a-drop-in-gov%C2%ADern%C2%ADment-ap%C2%ADproval-of-6-per%C2%ADcent%C2%ADage-points."></a> <a href="#Mov%C2%ADing-from-no-3G-cov%C2%ADer%C2%ADage-to-full-cov%C2%ADer%C2%ADage-led-to-a-drop-in-gov%C2%ADern%C2%ADment-ap%C2%ADproval-of-6-per%C2%ADcent%C2%ADage-points.">Mov­ing from no 3G cov­er­age to full cov­er­age led to a drop in gov­ern­ment ap­proval of 6 per­cent­age points.</a> <br></br> <div class="outline-text-5" id="text-Mov%C2%ADing-from-no-3G-cov%C2%ADer%C2%ADage-to-full-cov%C2%ADer%C2%ADage-led-to-a-drop-in-gov%C2%ADern%C2%ADment-ap%C2%ADproval-of-6-per%C2%ADcent%C2%ADage-points.">
 <p>
Haha.
</p>
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-CHAPTER-5-DEMOCRACY-FOR-DICTATORS" class="outline-3">
 <h3 id="CHAPTER-5-DEMOCRACY-FOR-DICTATORS"> <span class="section-number-3">2.6.</span>  <a href="#CHAPTER-5-DEMOCRACY-FOR-DICTATORS">CHAPTER 5 DEMOCRACY FOR DICTATORS</a></h3>
 <div class="outline-text-3" id="text-CHAPTER-5-DEMOCRACY-FOR-DICTATORS">
 <p>
Hugo Chávez
</p>
</div>

 <div id="outline-container-ELECTING-THE-PEOPLE" class="outline-4">
 <h4 id="ELECTING-THE-PEOPLE"> <span class="section-number-4">2.6.1.</span>  <a href="#ELECTING-THE-PEOPLE">ELECTING THE PEOPLE</a></h4>
 <div class="outline-text-4" id="text-ELECTING-THE-PEOPLE">
</div>

 <ol class="org-ol"> <li> <a id="Carl-Schmitt,-%3C...%3E-re%C2%ADjected-the-as%C2%ADso%C2%ADci%C2%ADa%C2%ADtion-of-democ%C2%ADracy-with-any-par%C2%ADtic%C2%ADu%C2%ADlar-way-of-elect%C2%ADing-gov%C2%ADern%C2%ADments.-%3C...%3E-it-meant-sim%C2%ADply-iden%C2%ADtity-of-pur%C2%ADpose-be%C2%ADtween-a-leader-and-his-fol%C2%ADlow%C2%ADers."></a> <a href="#Carl-Schmitt,-%3C...%3E-re%C2%ADjected-the-as%C2%ADso%C2%ADci%C2%ADa%C2%ADtion-of-democ%C2%ADracy-with-any-par%C2%ADtic%C2%ADu%C2%ADlar-way-of-elect%C2%ADing-gov%C2%ADern%C2%ADments.-%3C...%3E-it-meant-sim%C2%ADply-iden%C2%ADtity-of-pur%C2%ADpose-be%C2%ADtween-a-leader-and-his-fol%C2%ADlow%C2%ADers.">Carl Schmitt, <…> re­jected the as­so­ci­a­tion of democ­racy with any par­tic­u­lar way of elect­ing gov­ern­ments. <…> it meant sim­ply iden­tity of pur­pose be­tween a leader and his fol­low­ers.</a> <br></br> <div class="outline-text-5" id="text-Carl-Schmitt,-%3C...%3E-re%C2%ADjected-the-as%C2%ADso%C2%ADci%C2%ADa%C2%ADtion-of-democ%C2%ADracy-with-any-par%C2%ADtic%C2%ADu%C2%ADlar-way-of-elect%C2%ADing-gov%C2%ADern%C2%ADments.-%3C...%3E-it-meant-sim%C2%ADply-iden%C2%ADtity-of-pur%C2%ADpose-be%C2%ADtween-a-leader-and-his-fol%C2%ADlow%C2%ADers.">
</div>
</li>
</ol></div>

 <div id="outline-container-SPINNING-THE-BALLOT" class="outline-4">
 <h4 id="SPINNING-THE-BALLOT"> <span class="section-number-4">2.6.2.</span>  <a href="#SPINNING-THE-BALLOT">SPINNING THE BALLOT</a></h4>
 <div class="outline-text-4" id="text-SPINNING-THE-BALLOT">
</div>

 <ol class="org-ol"> <li> <a id="Fu%C2%ADji%C2%ADmori%E2%80%99s-se%C2%ADcu%C2%ADrity-chief,-Vladimiro-Mon%C2%ADtesinos,-sent-teams-of-SIN-agents-to-pose-as-taxi-driv%E2%80%90%C2%ADers-and-gather-in%C2%ADsights-from-chat%C2%ADting-with-their-clients."></a> <a href="#Fu%C2%ADji%C2%ADmori%E2%80%99s-se%C2%ADcu%C2%ADrity-chief,-Vladimiro-Mon%C2%ADtesinos,-sent-teams-of-SIN-agents-to-pose-as-taxi-driv%E2%80%90%C2%ADers-and-gather-in%C2%ADsights-from-chat%C2%ADting-with-their-clients.">Fu­ji­mori’s se­cu­rity chief, Vladimiro Mon­tesinos, sent teams of SIN agents to pose as taxi driv‐­ers and gather in­sights from chat­ting with their clients.</a> <br></br> <div class="outline-text-5" id="text-Fu%C2%ADji%C2%ADmori%E2%80%99s-se%C2%ADcu%C2%ADrity-chief,-Vladimiro-Mon%C2%ADtesinos,-sent-teams-of-SIN-agents-to-pose-as-taxi-driv%E2%80%90%C2%ADers-and-gather-in%C2%ADsights-from-chat%C2%ADting-with-their-clients.">
 <p>
Interesting!
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-FRAUD-AND-ABUSE" class="outline-4">
 <h4 id="FRAUD-AND-ABUSE"> <span class="section-number-4">2.6.3.</span>  <a href="#FRAUD-AND-ABUSE">FRAUD AND ABUSE</a></h4>
 <div class="outline-text-4" id="text-FRAUD-AND-ABUSE">
 <p>
Dictators use fraud to increase their outcome from 55% to 65%.
</p>
</div>
</div>

 <div id="outline-container-CHECKING-THE-EVIDENCE-1-2-3" class="outline-4">
 <h4 id="CHECKING-THE-EVIDENCE-1-2-3"> <span class="section-number-4">2.6.4.</span>  <a href="#CHECKING-THE-EVIDENCE-1-2-3">CHECKING THE EVIDENCE</a></h4>
 <div class="outline-text-4" id="text-CHECKING-THE-EVIDENCE-1-2-3">
</div>

 <ol class="org-ol"> <li> <a id="mul%C2%ADti%E2%80%90%C2%ADparty-elec%C2%ADtions-surged-again-in-the-age-of-spin,-reach%C2%ADing-78-per%C2%ADcent-of-au%C2%ADtoc%C2%ADra%C2%ADcies-in-2018"></a> <a href="#mul%C2%ADti%E2%80%90%C2%ADparty-elec%C2%ADtions-surged-again-in-the-age-of-spin,-reach%C2%ADing-78-per%C2%ADcent-of-au%C2%ADtoc%C2%ADra%C2%ADcies-in-2018">mul­ti‐­party elec­tions surged again in the age of spin, reach­ing 78 per­cent of au­toc­ra­cies in 2018</a> <br></br> <div class="outline-text-5" id="text-mul%C2%ADti%E2%80%90%C2%ADparty-elec%C2%ADtions-surged-again-in-the-age-of-spin,-reach%C2%ADing-78-per%C2%ADcent-of-au%C2%ADtoc%C2%ADra%C2%ADcies-in-2018">
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-CHAPTER-6-GLOBAL-PILLAGE" class="outline-3">
 <h3 id="CHAPTER-6-GLOBAL-PILLAGE"> <span class="section-number-3">2.7.</span>  <a href="#CHAPTER-6-GLOBAL-PILLAGE">CHAPTER 6 GLOBAL PILLAGE</a></h3>
 <div class="outline-text-3" id="text-CHAPTER-6-GLOBAL-PILLAGE">
 <p>
What is this chapter about? International relations? Emigration?
</p>
</div>

 <div id="outline-container-WORLD-WARY" class="outline-4">
 <h4 id="WORLD-WARY"> <span class="section-number-4">2.7.1.</span>  <a href="#WORLD-WARY">WORLD WARY</a></h4>
 <div class="outline-text-4" id="text-WORLD-WARY">
</div>

 <ol class="org-ol"> <li> <a id="From-the-1960s,-East-Ger%C2%ADmany-ef%C2%ADfec%C2%ADtively-sold-thou%C2%ADsands-of-would-be-%C3%A9migr%C3%A9s-to-Bonn-for-around-$2,500-a-head.-By-the-1980s,-East-Ger%E2%80%90%C2%ADman-tech%C2%ADnocrats-were-said-to-fac%C2%ADtor-such-pay%C2%ADments%E2%80%94now-made-in-bartered-cop%C2%ADper-and-oil%E2%80%94into-the-coun%C2%ADtry%E2%80%99s-five-year-plans."></a> <a href="#From-the-1960s,-East-Ger%C2%ADmany-ef%C2%ADfec%C2%ADtively-sold-thou%C2%ADsands-of-would-be-%C3%A9migr%C3%A9s-to-Bonn-for-around-$2,500-a-head.-By-the-1980s,-East-Ger%E2%80%90%C2%ADman-tech%C2%ADnocrats-were-said-to-fac%C2%ADtor-such-pay%C2%ADments%E2%80%94now-made-in-bartered-cop%C2%ADper-and-oil%E2%80%94into-the-coun%C2%ADtry%E2%80%99s-five-year-plans.">From the 1960s, East Ger­many ef­fec­tively sold thou­sands of would-be émigrés to Bonn for around $2,500 a head. By the 1980s, East Ger‐­man tech­nocrats were said to fac­tor such pay­ments—now made in bartered cop­per and oil—into the coun­try’s five-year plans.</a> <br></br> <div class="outline-text-5" id="text-From-the-1960s,-East-Ger%C2%ADmany-ef%C2%ADfec%C2%ADtively-sold-thou%C2%ADsands-of-would-be-%C3%A9migr%C3%A9s-to-Bonn-for-around-$2,500-a-head.-By-the-1980s,-East-Ger%E2%80%90%C2%ADman-tech%C2%ADnocrats-were-said-to-fac%C2%ADtor-such-pay%C2%ADments%E2%80%94now-made-in-bartered-cop%C2%ADper-and-oil%E2%80%94into-the-coun%C2%ADtry%E2%80%99s-five-year-plans.">
</div>
</li>

 <li> <a id="East-Ger%C2%ADmany,-ac%C2%ADcord%C2%ADing-to-its-last-in%C2%ADte%C2%ADrior-min%C2%ADis%C2%ADter,-was-%E2%80%9Can-El%C2%ADdo%C2%ADrado-for-ter%C2%ADror%E2%80%90%C2%ADists.%E2%80%9D"></a> <a href="#East-Ger%C2%ADmany,-ac%C2%ADcord%C2%ADing-to-its-last-in%C2%ADte%C2%ADrior-min%C2%ADis%C2%ADter,-was-%E2%80%9Can-El%C2%ADdo%C2%ADrado-for-ter%C2%ADror%E2%80%90%C2%ADists.%E2%80%9D">East Ger­many, ac­cord­ing to its last in­te­rior min­is­ter, was “an El­do­rado for ter­ror‐­ists.”</a> <br></br> <div class="outline-text-5" id="text-East-Ger%C2%ADmany,-ac%C2%ADcord%C2%ADing-to-its-last-in%C2%ADte%C2%ADrior-min%C2%ADis%C2%ADter,-was-%E2%80%9Can-El%C2%ADdo%C2%ADrado-for-ter%C2%ADror%E2%80%90%C2%ADists.%E2%80%9D">
 <p>
Wow.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-SPINNING-THE-GLOBE" class="outline-4">
 <h4 id="SPINNING-THE-GLOBE"> <span class="section-number-4">2.7.2.</span>  <a href="#SPINNING-THE-GLOBE">SPINNING THE GLOBE</a></h4>
 <div class="outline-text-4" id="text-SPINNING-THE-GLOBE">
 <p>
Spin Dictatorship usually do not fight wars. Except Putin, and even he tried to make them short.
</p>
</div>
</div>

 <div id="outline-container-FOREIGN-ASSISTANTS" class="outline-4">
 <h4 id="FOREIGN-ASSISTANTS"> <span class="section-number-4">2.7.3.</span>  <a href="#FOREIGN-ASSISTANTS">FOREIGN ASSISTANTS</a></h4>
 <div class="outline-text-4" id="text-FOREIGN-ASSISTANTS">
</div>

 <ol class="org-ol"> <li> <a id="(Black-Cube)-Har%C2%ADvey-We%C2%ADin%C2%ADstein-hired-an-Is%C2%ADraeli-pri%C2%ADvate-se%C2%ADcu%C2%ADrity-firm-founded-by-for%C2%ADmer-Mossad-agents-to-in%C2%ADves%C2%ADti%C2%ADgate-a-woman-who-ac%C2%ADcused-him-of-rape"></a> <a href="#(Black-Cube)-Har%C2%ADvey-We%C2%ADin%C2%ADstein-hired-an-Is%C2%ADraeli-pri%C2%ADvate-se%C2%ADcu%C2%ADrity-firm-founded-by-for%C2%ADmer-Mossad-agents-to-in%C2%ADves%C2%ADti%C2%ADgate-a-woman-who-ac%C2%ADcused-him-of-rape">(Black Cube) Har­vey We­in­stein hired an Is­raeli pri­vate se­cu­rity firm founded by for­mer Mossad agents to in­ves­ti­gate a woman who ac­cused him of rape</a> <br></br> <div class="outline-text-5" id="text-(Black-Cube)-Har%C2%ADvey-We%C2%ADin%C2%ADstein-hired-an-Is%C2%ADraeli-pri%C2%ADvate-se%C2%ADcu%C2%ADrity-firm-founded-by-for%C2%ADmer-Mossad-agents-to-in%C2%ADves%C2%ADti%C2%ADgate-a-woman-who-ac%C2%ADcused-him-of-rape">
 <p>
Can pro-democratic opposition do the same?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-MAKING-FRIENDS-AND-INFLUENCING-PEOPLE" class="outline-4">
 <h4 id="MAKING-FRIENDS-AND-INFLUENCING-PEOPLE"> <span class="section-number-4">2.7.4.</span>  <a href="#MAKING-FRIENDS-AND-INFLUENCING-PEOPLE">MAKING FRIENDS AND INFLUENCING PEOPLE</a></h4>
 <div class="outline-text-4" id="text-MAKING-FRIENDS-AND-INFLUENCING-PEOPLE">
</div>
</div>

 <div id="outline-container-FEAR-VS.-SPIN" class="outline-4">
 <h4 id="FEAR-VS.-SPIN"> <span class="section-number-4">2.7.5.</span>  <a href="#FEAR-VS.-SPIN">FEAR VS. SPIN</a></h4>
 <div class="outline-text-4" id="text-FEAR-VS.-SPIN">
</div>

 <ol class="org-ol"> <li> <a id="Nazarbayev%E2%80%99s-team-was-flus%C2%ADtered-at-first-by-the-2006-re%C2%ADlease-of-Sacha-Baron-Co%C2%ADhen%E2%80%99s-com%C2%ADedy-Bo%C2%ADrat,-which-por%C2%ADtrayed-Kaza%C2%ADkhstan-as-an-anti-Semitic,-misog%C2%ADy%C2%ADnis%C2%ADtic-back%C2%ADwa%C2%ADter.-But-they-soon-re%C2%ADcov%C2%ADered.-As-one-As%C2%ADtana-based-PR-spe%C2%ADcial%C2%ADist-put-it,-of%C2%ADfi%C2%ADcials-quickly-re%C2%ADfo%C2%ADcused-on-%E2%80%9Chow-to-ex%C2%ADploit-such-an-un%C2%ADex%C2%ADpected-spot%C2%ADlight-on-the-coun%C2%ADtry.%E2%80%9D-The-for%C2%ADeign-min%C2%ADis%C2%ADter-later-thanked-the-film-for-boost%C2%ADing-tourism:-visa-ap%C2%ADpli%C2%ADca%C2%ADtions,-he-said,-had-jumped-ten%C2%ADfold."></a> <a href="#Nazarbayev%E2%80%99s-team-was-flus%C2%ADtered-at-first-by-the-2006-re%C2%ADlease-of-Sacha-Baron-Co%C2%ADhen%E2%80%99s-com%C2%ADedy-Bo%C2%ADrat,-which-por%C2%ADtrayed-Kaza%C2%ADkhstan-as-an-anti-Semitic,-misog%C2%ADy%C2%ADnis%C2%ADtic-back%C2%ADwa%C2%ADter.-But-they-soon-re%C2%ADcov%C2%ADered.-As-one-As%C2%ADtana-based-PR-spe%C2%ADcial%C2%ADist-put-it,-of%C2%ADfi%C2%ADcials-quickly-re%C2%ADfo%C2%ADcused-on-%E2%80%9Chow-to-ex%C2%ADploit-such-an-un%C2%ADex%C2%ADpected-spot%C2%ADlight-on-the-coun%C2%ADtry.%E2%80%9D-The-for%C2%ADeign-min%C2%ADis%C2%ADter-later-thanked-the-film-for-boost%C2%ADing-tourism:-visa-ap%C2%ADpli%C2%ADca%C2%ADtions,-he-said,-had-jumped-ten%C2%ADfold.">Nazarbayev’s team was flus­tered at first by the 2006 re­lease of Sacha Baron Co­hen’s com­edy Bo­rat, which por­trayed Kaza­khstan as an anti-Semitic, misog­y­nis­tic back­wa­ter. But they soon re­cov­ered. As one As­tana-based PR spe­cial­ist put it, of­fi­cials quickly re­fo­cused on “how to ex­ploit such an un­ex­pected spot­light on the coun­try.” The for­eign min­is­ter later thanked the film for boost­ing tourism: visa ap­pli­ca­tions, he said, had jumped ten­fold.</a> <br></br> <div class="outline-text-5" id="text-Nazarbayev%E2%80%99s-team-was-flus%C2%ADtered-at-first-by-the-2006-re%C2%ADlease-of-Sacha-Baron-Co%C2%ADhen%E2%80%99s-com%C2%ADedy-Bo%C2%ADrat,-which-por%C2%ADtrayed-Kaza%C2%ADkhstan-as-an-anti-Semitic,-misog%C2%ADy%C2%ADnis%C2%ADtic-back%C2%ADwa%C2%ADter.-But-they-soon-re%C2%ADcov%C2%ADered.-As-one-As%C2%ADtana-based-PR-spe%C2%ADcial%C2%ADist-put-it,-of%C2%ADfi%C2%ADcials-quickly-re%C2%ADfo%C2%ADcused-on-%E2%80%9Chow-to-ex%C2%ADploit-such-an-un%C2%ADex%C2%ADpected-spot%C2%ADlight-on-the-coun%C2%ADtry.%E2%80%9D-The-for%C2%ADeign-min%C2%ADis%C2%ADter-later-thanked-the-film-for-boost%C2%ADing-tourism:-visa-ap%C2%ADpli%C2%ADca%C2%ADtions,-he-said,-had-jumped-ten%C2%ADfold.">
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-PART-II-WHY-IT%E2%80%99S-HAPPENING-AND-WHAT-TO-DO-ABOUT-IT" class="outline-3">
 <h3 id="PART-II-WHY-IT%E2%80%99S-HAPPENING-AND-WHAT-TO-DO-ABOUT-IT"> <span class="section-number-3">2.8.</span>  <a href="#PART-II-WHY-IT%E2%80%99S-HAPPENING-AND-WHAT-TO-DO-ABOUT-IT">PART II WHY IT’S HAPPENING AND WHAT TO DO ABOUT IT</a></h3>
 <div class="outline-text-3" id="text-PART-II-WHY-IT%E2%80%99S-HAPPENING-AND-WHAT-TO-DO-ABOUT-IT">
</div>

 <div id="outline-container-CHAPTER-7-THE-MODERNIZATION-COCKTAIL" class="outline-4">
 <h4 id="CHAPTER-7-THE-MODERNIZATION-COCKTAIL"> <span class="section-number-4">2.8.1.</span>  <a href="#CHAPTER-7-THE-MODERNIZATION-COCKTAIL">CHAPTER 7 THE MODERNIZATION COCKTAIL</a></h4>
 <div class="outline-text-4" id="text-CHAPTER-7-THE-MODERNIZATION-COCKTAIL">
 <p>
What is modernisation and why it happens?
</p>
</div>

 <ol class="org-ol"> <li> <a id="Trade-and-in%C2%ADvest%C2%ADment-flows-knit-economies-to%C2%ADgether,-while-global-me%C2%ADdia-link-their-news-cy%C2%ADcles-and-in%C2%ADfor%C2%ADma%C2%ADtional-fields.-In%C2%ADter%C2%ADna%C2%ADtional-move%C2%ADments-and-coali%C2%ADtions-of-states-form-to-pro%E2%80%90%C2%ADmote-the-new-val%C2%ADues%E2%80%94most-im%C2%ADpor%C2%ADtantly,-the-re%C2%ADspect-for-hu%C2%ADman-rights.-Some%C2%ADtimes-these-global-in%C2%ADflu%C2%ADences-drive-even-dic%C2%ADta%C2%ADtors-with-less-ad%C2%ADvanced-economies-to-re%C2%ADplace-fear-with-spin."></a> <a href="#Trade-and-in%C2%ADvest%C2%ADment-flows-knit-economies-to%C2%ADgether,-while-global-me%C2%ADdia-link-their-news-cy%C2%ADcles-and-in%C2%ADfor%C2%ADma%C2%ADtional-fields.-In%C2%ADter%C2%ADna%C2%ADtional-move%C2%ADments-and-coali%C2%ADtions-of-states-form-to-pro%E2%80%90%C2%ADmote-the-new-val%C2%ADues%E2%80%94most-im%C2%ADpor%C2%ADtantly,-the-re%C2%ADspect-for-hu%C2%ADman-rights.-Some%C2%ADtimes-these-global-in%C2%ADflu%C2%ADences-drive-even-dic%C2%ADta%C2%ADtors-with-less-ad%C2%ADvanced-economies-to-re%C2%ADplace-fear-with-spin.">Trade and in­vest­ment flows knit economies to­gether, while global me­dia link their news cy­cles and in­for­ma­tional fields. In­ter­na­tional move­ments and coali­tions of states form to pro‐­mote the new val­ues—most im­por­tantly, the re­spect for hu­man rights. Some­times these global in­flu­ences drive even dic­ta­tors with less ad­vanced economies to re­place fear with spin.</a> <br></br> <div class="outline-text-5" id="text-Trade-and-in%C2%ADvest%C2%ADment-flows-knit-economies-to%C2%ADgether,-while-global-me%C2%ADdia-link-their-news-cy%C2%ADcles-and-in%C2%ADfor%C2%ADma%C2%ADtional-fields.-In%C2%ADter%C2%ADna%C2%ADtional-move%C2%ADments-and-coali%C2%ADtions-of-states-form-to-pro%E2%80%90%C2%ADmote-the-new-val%C2%ADues%E2%80%94most-im%C2%ADpor%C2%ADtantly,-the-re%C2%ADspect-for-hu%C2%ADman-rights.-Some%C2%ADtimes-these-global-in%C2%ADflu%C2%ADences-drive-even-dic%C2%ADta%C2%ADtors-with-less-ad%C2%ADvanced-economies-to-re%C2%ADplace-fear-with-spin.">
 <p>
“Coalitions of states form to promote the respect for human rights”? Seriously? Are you kidding me? This is the single point that I don’t find plausible as an argument in any way.
</p>
</div>
</li>

 <li> <a id="Al%C2%ADthough-eco%C2%ADnomic-de%C2%ADvel%C2%ADop%C2%ADment-cre%C2%ADates-pres%C2%ADsures-for-gen%C2%ADuine-democ%C2%ADracy,-some-au%C2%ADto%E2%80%90%C2%ADcrats-man%C2%ADage-to-de%C2%ADlay-the-tran%C2%ADsi%C2%ADtion-by-fak%C2%ADing-it."></a> <a href="#Al%C2%ADthough-eco%C2%ADnomic-de%C2%ADvel%C2%ADop%C2%ADment-cre%C2%ADates-pres%C2%ADsures-for-gen%C2%ADuine-democ%C2%ADracy,-some-au%C2%ADto%E2%80%90%C2%ADcrats-man%C2%ADage-to-de%C2%ADlay-the-tran%C2%ADsi%C2%ADtion-by-fak%C2%ADing-it.">Al­though eco­nomic de­vel­op­ment cre­ates pres­sures for gen­uine democ­racy, some au­to‐­crats man­age to de­lay the tran­si­tion by fak­ing it.</a> <br></br> <div class="outline-text-5" id="text-Al%C2%ADthough-eco%C2%ADnomic-de%C2%ADvel%C2%ADop%C2%ADment-cre%C2%ADates-pres%C2%ADsures-for-gen%C2%ADuine-democ%C2%ADracy,-some-au%C2%ADto%E2%80%90%C2%ADcrats-man%C2%ADage-to-de%C2%ADlay-the-tran%C2%ADsi%C2%ADtion-by-fak%C2%ADing-it.">
 <p>
Why exactly do they pressure for genuine democracy?
</p>

 <p>
Seemingly, the pressure from the outside should be the pressure by threat. But here there seems to be no threat.
</p>

 <p>
Where are the  <span class="underline">stimuli</span>? Or the  <span class="underline">energy balance</span>.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-POSTINDUSTRIAL-STRENGTH" class="outline-4">
 <h4 id="POSTINDUSTRIAL-STRENGTH"> <span class="section-number-4">2.8.2.</span>  <a href="#POSTINDUSTRIAL-STRENGTH">POSTINDUSTRIAL STRENGTH</a></h4>
 <div class="outline-text-4" id="text-POSTINDUSTRIAL-STRENGTH">
</div>

 <ol class="org-ol"> <li> <a id="In-this-pe%C2%ADriod,-a-%E2%80%9Cpostin%C2%ADdus%E2%80%90%C2%ADtrial-so%C2%ADci%C2%ADety%E2%80%9D-re%C2%ADplaced-%E2%80%9Cin%C2%ADdus%C2%ADtrial-so%C2%ADci%C2%ADety,%E2%80%9D-as-man%C2%ADuf%C2%AD-ac%C2%ADtur%C2%ADing-lost-ground-to-ser%C2%ADvices-and%E2%80%94most-im%C2%ADpor%C2%ADtantly%E2%80%94to-cre%C2%ADat%C2%ADing-and-pro%C2%ADcess%E2%80%90%C2%ADing-in%C2%ADfor%C2%ADma%C2%ADtion."></a> <a href="#In-this-pe%C2%ADriod,-a-%E2%80%9Cpostin%C2%ADdus%E2%80%90%C2%ADtrial-so%C2%ADci%C2%ADety%E2%80%9D-re%C2%ADplaced-%E2%80%9Cin%C2%ADdus%C2%ADtrial-so%C2%ADci%C2%ADety,%E2%80%9D-as-man%C2%ADuf%C2%AD-ac%C2%ADtur%C2%ADing-lost-ground-to-ser%C2%ADvices-and%E2%80%94most-im%C2%ADpor%C2%ADtantly%E2%80%94to-cre%C2%ADat%C2%ADing-and-pro%C2%ADcess%E2%80%90%C2%ADing-in%C2%ADfor%C2%ADma%C2%ADtion.">In this pe­riod, a “postin­dus‐­trial so­ci­ety” re­placed “in­dus­trial so­ci­ety,” as man­uf­ ac­tur­ing lost ground to ser­vices and—most im­por­tantly—to cre­at­ing and pro­cess‐­ing in­for­ma­tion.</a> <br></br> <div class="outline-text-5" id="text-In-this-pe%C2%ADriod,-a-%E2%80%9Cpostin%C2%ADdus%E2%80%90%C2%ADtrial-so%C2%ADci%C2%ADety%E2%80%9D-re%C2%ADplaced-%E2%80%9Cin%C2%ADdus%C2%ADtrial-so%C2%ADci%C2%ADety,%E2%80%9D-as-man%C2%ADuf%C2%AD-ac%C2%ADtur%C2%ADing-lost-ground-to-ser%C2%ADvices-and%E2%80%94most-im%C2%ADpor%C2%ADtantly%E2%80%94to-cre%C2%ADat%C2%ADing-and-pro%C2%ADcess%E2%80%90%C2%ADing-in%C2%ADfor%C2%ADma%C2%ADtion.">
</div>
</li>

 <li> <a id="The-prob%C2%ADlem-for-au%C2%ADto%C2%ADcrats-is-that-higher-ed%C2%ADu%C2%ADca%C2%ADtion-is-in%C2%ADtrin%C2%ADsi%C2%ADcally-linked-to-free%C2%ADdom-of-thought.-Col%C2%ADlege-cour%C2%ADses-are-al%C2%ADmost-im%C2%ADpos%C2%ADsi%C2%ADble-to-san%C2%ADi%C2%ADtize-com%C2%ADpletely."></a> <a href="#The-prob%C2%ADlem-for-au%C2%ADto%C2%ADcrats-is-that-higher-ed%C2%ADu%C2%ADca%C2%ADtion-is-in%C2%ADtrin%C2%ADsi%C2%ADcally-linked-to-free%C2%ADdom-of-thought.-Col%C2%ADlege-cour%C2%ADses-are-al%C2%ADmost-im%C2%ADpos%C2%ADsi%C2%ADble-to-san%C2%ADi%C2%ADtize-com%C2%ADpletely.">The prob­lem for au­to­crats is that higher ed­u­ca­tion is in­trin­si­cally linked to free­dom of thought. Col­lege cour­ses are al­most im­pos­si­ble to san­i­tize com­pletely.</a> <br></br> <div class="outline-text-5" id="text-The-prob%C2%ADlem-for-au%C2%ADto%C2%ADcrats-is-that-higher-ed%C2%ADu%C2%ADca%C2%ADtion-is-in%C2%ADtrin%C2%ADsi%C2%ADcally-linked-to-free%C2%ADdom-of-thought.-Col%C2%ADlege-cour%C2%ADses-are-al%C2%ADmost-im%C2%ADpos%C2%ADsi%C2%ADble-to-san%C2%ADi%C2%ADtize-com%C2%ADpletely.">
 <p>
The “woke left academia” is, seemingly, proving otherwise.
</p>
</div>
</li>

 <li> <a id="The-knowl%C2%ADedge-that-en%C2%ADabled-tech%C2%ADni%C2%ADcians-to-serve-the-au%C2%ADthor%C2%ADi%C2%ADties-also-helped-them-cut-through-cen%C2%ADsor%C2%ADship."></a> <a href="#The-knowl%C2%ADedge-that-en%C2%ADabled-tech%C2%ADni%C2%ADcians-to-serve-the-au%C2%ADthor%C2%ADi%C2%ADties-also-helped-them-cut-through-cen%C2%ADsor%C2%ADship.">The knowl­edge that en­abled tech­ni­cians to serve the au­thor­i­ties also helped them cut through cen­sor­ship.</a> <br></br> <div class="outline-text-5" id="text-The-knowl%C2%ADedge-that-en%C2%ADabled-tech%C2%ADni%C2%ADcians-to-serve-the-au%C2%ADthor%C2%ADi%C2%ADties-also-helped-them-cut-through-cen%C2%ADsor%C2%ADship.">
 <p>
To make VPNs :).
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-NETWORK-EFFECTS" class="outline-4">
 <h4 id="NETWORK-EFFECTS"> <span class="section-number-4">2.8.3.</span>  <a href="#NETWORK-EFFECTS">NETWORK EFFECTS</a></h4>
 <div class="outline-text-4" id="text-NETWORK-EFFECTS">
</div>

 <ol class="org-ol"> <li> <a id="As-more-and-more-coun%C2%ADtries-make-the-postin%C2%ADdus%C2%ADtrial-tran%C2%ADsi%C2%ADtion,-con%C2%ADnec%C2%ADtions-pro%C2%ADlif%C2%ADer%C2%ADate-among-their-economies-and-me%C2%ADdia."></a> <a href="#As-more-and-more-coun%C2%ADtries-make-the-postin%C2%ADdus%C2%ADtrial-tran%C2%ADsi%C2%ADtion,-con%C2%ADnec%C2%ADtions-pro%C2%ADlif%C2%ADer%C2%ADate-among-their-economies-and-me%C2%ADdia.">As more and more coun­tries make the postin­dus­trial tran­si­tion, con­nec­tions pro­lif­er­ate among their economies and me­dia.</a> <br></br> <div class="outline-text-5" id="text-As-more-and-more-coun%C2%ADtries-make-the-postin%C2%ADdus%C2%ADtrial-tran%C2%ADsi%C2%ADtion,-con%C2%ADnec%C2%ADtions-pro%C2%ADlif%C2%ADer%C2%ADate-among-their-economies-and-me%C2%ADdia.">
 <p>
What about the balcanisation of the Internet? What about COVID?
</p>
</div>
</li>

 <li> <a id="By-the-mid-2000s,-it-was-ex%E2%80%90%C2%ADport%C2%ADing-43-per%C2%ADcent-of-out%C2%ADput%E2%80%94about-twice-the-pre-World-War-II-peak-%E2%80%94and-spend%C2%ADing-33-per%C2%ADcent-of-GDP-on-im%C2%ADports."></a> <a href="#By-the-mid-2000s,-it-was-ex%E2%80%90%C2%ADport%C2%ADing-43-per%C2%ADcent-of-out%C2%ADput%E2%80%94about-twice-the-pre-World-War-II-peak-%E2%80%94and-spend%C2%ADing-33-per%C2%ADcent-of-GDP-on-im%C2%ADports.">By the mid-2000s, it was ex‐­port­ing 43 per­cent of out­put—about twice the pre-World War II peak —and spend­ing 33 per­cent of GDP on im­ports.</a> <br></br> <div class="outline-text-5" id="text-By-the-mid-2000s,-it-was-ex%E2%80%90%C2%ADport%C2%ADing-43-per%C2%ADcent-of-out%C2%ADput%E2%80%94about-twice-the-pre-World-War-II-peak-%E2%80%94and-spend%C2%ADing-33-per%C2%ADcent-of-GDP-on-im%C2%ADports.">
 <p>
Assuming this is correct, I would say that 43% is insanely high. Nobody would be happy about such a proportion.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-THE-RIGHTS-STUFF" class="outline-4">
 <h4 id="THE-RIGHTS-STUFF"> <span class="section-number-4">2.8.4.</span>  <a href="#THE-RIGHTS-STUFF">THE RIGHTS STUFF</a></h4>
 <div class="outline-text-4" id="text-THE-RIGHTS-STUFF">
 <p>
How about distinguishing between “human rights” and “citizen rights”? I think it is conflated a lot in this chapter.
</p>
</div>

 <ol class="org-ol"> <li> <a id="small-groups-of-ed%C2%ADu%E2%80%90%C2%ADcated-pro%C2%ADfes%C2%ADsion%C2%ADals-with-pro%C2%ADgres%C2%ADsive-val%C2%ADues-and-of%C2%ADten-le%C2%ADgal-train%C2%ADing-linked-up-in-the-late-twen%C2%ADti%C2%ADeth-cen%C2%ADtury-into-a-net%C2%ADwork-of-lib%C2%ADeral-NGOs.-They-used-the-global-me%C2%ADdia,-in%C2%ADter%C2%ADna%C2%ADtional-law,-and-a-range-of-in%C2%ADno%C2%ADva%E2%80%90%C2%ADtive-tac%C2%ADtics-to-fo%C2%ADcus-pres%C2%ADsure-on-bru%C2%ADtal-dic%C2%ADta%C2%ADtors"></a> <a href="#small-groups-of-ed%C2%ADu%E2%80%90%C2%ADcated-pro%C2%ADfes%C2%ADsion%C2%ADals-with-pro%C2%ADgres%C2%ADsive-val%C2%ADues-and-of%C2%ADten-le%C2%ADgal-train%C2%ADing-linked-up-in-the-late-twen%C2%ADti%C2%ADeth-cen%C2%ADtury-into-a-net%C2%ADwork-of-lib%C2%ADeral-NGOs.-They-used-the-global-me%C2%ADdia,-in%C2%ADter%C2%ADna%C2%ADtional-law,-and-a-range-of-in%C2%ADno%C2%ADva%E2%80%90%C2%ADtive-tac%C2%ADtics-to-fo%C2%ADcus-pres%C2%ADsure-on-bru%C2%ADtal-dic%C2%ADta%C2%ADtors">small groups of ed­u‐­cated pro­fes­sion­als with pro­gres­sive val­ues and of­ten le­gal train­ing linked up in the late twen­ti­eth cen­tury into a net­work of lib­eral NGOs. They used the global me­dia, in­ter­na­tional law, and a range of in­no­va‐­tive tac­tics to fo­cus pres­sure on bru­tal dic­ta­tors</a> <br></br> <div class="outline-text-5" id="text-small-groups-of-ed%C2%ADu%E2%80%90%C2%ADcated-pro%C2%ADfes%C2%ADsion%C2%ADals-with-pro%C2%ADgres%C2%ADsive-val%C2%ADues-and-of%C2%ADten-le%C2%ADgal-train%C2%ADing-linked-up-in-the-late-twen%C2%ADti%C2%ADeth-cen%C2%ADtury-into-a-net%C2%ADwork-of-lib%C2%ADeral-NGOs.-They-used-the-global-me%C2%ADdia,-in%C2%ADter%C2%ADna%C2%ADtional-law,-and-a-range-of-in%C2%ADno%C2%ADva%E2%80%90%C2%ADtive-tac%C2%ADtics-to-fo%C2%ADcus-pres%C2%ADsure-on-bru%C2%ADtal-dic%C2%ADta%C2%ADtors">
 <p>
Dictators? Really? Why do Guriev and Treisman mentions displaced dictators I have never heard of? The Mexican on and the Ivorian one.
</p>
</div>
</li>

 <li> <a id="When-ac%C2%ADtivists-pub%C2%ADli%C2%ADcize-abuses-in-de%C2%ADvel%C2%ADop%C2%ADing-coun%C2%ADtries,-re%E2%80%90%C2%ADsearch-sug%C2%ADgests-multi%C2%ADna%C2%ADtion%C2%ADals-in%C2%ADvest-less-in-them."></a> <a href="#When-ac%C2%ADtivists-pub%C2%ADli%C2%ADcize-abuses-in-de%C2%ADvel%C2%ADop%C2%ADing-coun%C2%ADtries,-re%E2%80%90%C2%ADsearch-sug%C2%ADgests-multi%C2%ADna%C2%ADtion%C2%ADals-in%C2%ADvest-less-in-them.">When ac­tivists pub­li­cize abuses in de­vel­op­ing coun­tries, re‐­search sug­gests multi­na­tion­als in­vest less in them.</a> <br></br> <div class="outline-text-5" id="text-When-ac%C2%ADtivists-pub%C2%ADli%C2%ADcize-abuses-in-de%C2%ADvel%C2%ADop%C2%ADing-coun%C2%ADtries,-re%E2%80%90%C2%ADsearch-sug%C2%ADgests-multi%C2%ADna%C2%ADtion%C2%ADals-in%C2%ADvest-less-in-them.">
 <p>
Which makes them poorer and less likely to rebel?
</p>
</div>
</li>

 <li> <a id="The-pre%C2%ADvi%C2%ADous-year,-the-U.S.-Con%C2%ADgress-had-cut-$4-mil%C2%ADlion-from-mil%C2%ADi%C2%ADtary-aid-to-the-coun%C2%ADtry-to-protest-hu%C2%ADman-rights-abuses-and-cor%C2%ADrup%C2%ADtion."></a> <a href="#The-pre%C2%ADvi%C2%ADous-year,-the-U.S.-Con%C2%ADgress-had-cut-$4-mil%C2%ADlion-from-mil%C2%ADi%C2%ADtary-aid-to-the-coun%C2%ADtry-to-protest-hu%C2%ADman-rights-abuses-and-cor%C2%ADrup%C2%ADtion.">The pre­vi­ous year, the U.S. Con­gress had cut $4 mil­lion from mil­i­tary aid to the coun­try to protest hu­man rights abuses and cor­rup­tion.</a> <br></br> <div class="outline-text-5" id="text-The-pre%C2%ADvi%C2%ADous-year,-the-U.S.-Con%C2%ADgress-had-cut-$4-mil%C2%ADlion-from-mil%C2%ADi%C2%ADtary-aid-to-the-coun%C2%ADtry-to-protest-hu%C2%ADman-rights-abuses-and-cor%C2%ADrup%C2%ADtion.">
 <p>
What about foreign military aid from not USA? Say, Iran?
</p>
</div>
</li>

 <li> <a id="But-Ghana-at-the-time-re%C2%ADceived-the-World-Bank%E2%80%99s-big%C2%ADgest-lend%C2%ADing-pro%C2%ADgram-in-Africa.97-And-Rawl%C2%ADings-took-se%C2%ADri%C2%ADously%E2%80%94per%C2%ADhaps-too-se%C2%ADri%C2%ADously%E2%80%94hints-that-con%C2%ADtin%C2%ADued-aid-hinged-on-po%C2%ADlit%C2%ADi%C2%ADcal-change.-%E2%80%9CWe-were-forced-by-the-State-De%C2%ADpart%C2%ADment%E2%80%94oh-yes,-forced%E2%80%94to-adopt-mul%C2%ADti%C2%ADparty-democ%C2%ADracy,%E2%80%9D-he-com%C2%ADplained-in-2009.-He-had-had-to-%E2%80%9Cforce-democ%C2%ADracy-down-the-throats%E2%80%9D-of-his-re%C2%ADluc%C2%ADtant-com%C2%ADpa%C2%ADtri%C2%ADots,-he-told-po%C2%ADlit%C2%ADi%C2%ADcal-sci%C2%ADen%C2%ADtist-An%C2%ADtoinette-Han%C2%ADd%C2%ADley,-be%C2%ADcause-%E2%80%9Cthe-State-De%E2%80%90%C2%ADpart%C2%ADment-was-say%C2%ADing-that-there%E2%80%99ll-be-no-more-IMF-and-World-Bank-fa%C2%ADcil%C2%ADi%C2%ADties-for-us.%E2%80%9D"></a> <a href="#But-Ghana-at-the-time-re%C2%ADceived-the-World-Bank%E2%80%99s-big%C2%ADgest-lend%C2%ADing-pro%C2%ADgram-in-Africa.97-And-Rawl%C2%ADings-took-se%C2%ADri%C2%ADously%E2%80%94per%C2%ADhaps-too-se%C2%ADri%C2%ADously%E2%80%94hints-that-con%C2%ADtin%C2%ADued-aid-hinged-on-po%C2%ADlit%C2%ADi%C2%ADcal-change.-%E2%80%9CWe-were-forced-by-the-State-De%C2%ADpart%C2%ADment%E2%80%94oh-yes,-forced%E2%80%94to-adopt-mul%C2%ADti%C2%ADparty-democ%C2%ADracy,%E2%80%9D-he-com%C2%ADplained-in-2009.-He-had-had-to-%E2%80%9Cforce-democ%C2%ADracy-down-the-throats%E2%80%9D-of-his-re%C2%ADluc%C2%ADtant-com%C2%ADpa%C2%ADtri%C2%ADots,-he-told-po%C2%ADlit%C2%ADi%C2%ADcal-sci%C2%ADen%C2%ADtist-An%C2%ADtoinette-Han%C2%ADd%C2%ADley,-be%C2%ADcause-%E2%80%9Cthe-State-De%E2%80%90%C2%ADpart%C2%ADment-was-say%C2%ADing-that-there%E2%80%99ll-be-no-more-IMF-and-World-Bank-fa%C2%ADcil%C2%ADi%C2%ADties-for-us.%E2%80%9D">But Ghana at the time re­ceived the World Bank’s big­gest lend­ing pro­gram in Africa.97 And Rawl­ings took se­ri­ously—per­haps too se­ri­ously—hints that con­tin­ued aid hinged on po­lit­i­cal change. “We were forced by the State De­part­ment—oh yes, forced—to adopt mul­ti­party democ­racy,” he com­plained in 2009. He had had to “force democ­racy down the throats” of his re­luc­tant com­pa­tri­ots, he told po­lit­i­cal sci­en­tist An­toinette Han­d­ley, be­cause “the State De‐­part­ment was say­ing that there’ll be no more IMF and World Bank fa­cil­i­ties for us.”</a> <br></br> <div class="outline-text-5" id="text-But-Ghana-at-the-time-re%C2%ADceived-the-World-Bank%E2%80%99s-big%C2%ADgest-lend%C2%ADing-pro%C2%ADgram-in-Africa.97-And-Rawl%C2%ADings-took-se%C2%ADri%C2%ADously%E2%80%94per%C2%ADhaps-too-se%C2%ADri%C2%ADously%E2%80%94hints-that-con%C2%ADtin%C2%ADued-aid-hinged-on-po%C2%ADlit%C2%ADi%C2%ADcal-change.-%E2%80%9CWe-were-forced-by-the-State-De%C2%ADpart%C2%ADment%E2%80%94oh-yes,-forced%E2%80%94to-adopt-mul%C2%ADti%C2%ADparty-democ%C2%ADracy,%E2%80%9D-he-com%C2%ADplained-in-2009.-He-had-had-to-%E2%80%9Cforce-democ%C2%ADracy-down-the-throats%E2%80%9D-of-his-re%C2%ADluc%C2%ADtant-com%C2%ADpa%C2%ADtri%C2%ADots,-he-told-po%C2%ADlit%C2%ADi%C2%ADcal-sci%C2%ADen%C2%ADtist-An%C2%ADtoinette-Han%C2%ADd%C2%ADley,-be%C2%ADcause-%E2%80%9Cthe-State-De%E2%80%90%C2%ADpart%C2%ADment-was-say%C2%ADing-that-there%E2%80%99ll-be-no-more-IMF-and-World-Bank-fa%C2%ADcil%C2%ADi%C2%ADties-for-us.%E2%80%9D">
 <p>
Very interesting. Are these guys permanently in debt, or somehow manage to get out?
</p>
</div>
</li>

 <li> <a id="But-from-1974,-the-U.S.-Con%C2%ADgress-started-ban%C2%ADning-as%C2%ADsis%C2%ADtance-to-coun%C2%ADtries-guilty-of-gross-abuses."></a> <a href="#But-from-1974,-the-U.S.-Con%C2%ADgress-started-ban%C2%ADning-as%C2%ADsis%C2%ADtance-to-coun%C2%ADtries-guilty-of-gross-abuses.">But from 1974, the U.S. Con­gress started ban­ning as­sis­tance to coun­tries guilty of gross abuses.</a> <br></br> <div class="outline-text-5" id="text-But-from-1974,-the-U.S.-Con%C2%ADgress-started-ban%C2%ADning-as%C2%ADsis%C2%ADtance-to-coun%C2%ADtries-guilty-of-gross-abuses.">
 <p>
Do as we say, and we will give you the money?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-COLD-WAR-AND-AFTER" class="outline-4">
 <h4 id="COLD-WAR-AND-AFTER"> <span class="section-number-4">2.8.5.</span>  <a href="#COLD-WAR-AND-AFTER">COLD WAR AND AFTER</a></h4>
 <div class="outline-text-4" id="text-COLD-WAR-AND-AFTER">
</div>
</div>

 <div id="outline-container-CHAPTER-8-THE-FUTURE-OF-SPIN" class="outline-4">
 <h4 id="CHAPTER-8-THE-FUTURE-OF-SPIN"> <span class="section-number-4">2.8.6.</span>  <a href="#CHAPTER-8-THE-FUTURE-OF-SPIN">CHAPTER 8 THE FUTURE OF SPIN</a></h4>
 <div class="outline-text-4" id="text-CHAPTER-8-THE-FUTURE-OF-SPIN">
</div>
</div>

 <div id="outline-container-SPINNING-UPWARD" class="outline-4">
 <h4 id="SPINNING-UPWARD"> <span class="section-number-4">2.8.7.</span>  <a href="#SPINNING-UPWARD">SPINNING UPWARD</a></h4>
 <div class="outline-text-4" id="text-SPINNING-UPWARD">
</div>

 <ol class="org-ol"> <li> <a id="The-para%C2%ADdox-is-that-while-de%C2%ADvel%C2%ADop%C2%ADment-threat%C2%ADens-dic%C2%ADta%C2%ADtors,-eco%C2%ADnomic-growth-helps-them-sur%C2%ADvive."></a> <a href="#The-para%C2%ADdox-is-that-while-de%C2%ADvel%C2%ADop%C2%ADment-threat%C2%ADens-dic%C2%ADta%C2%ADtors,-eco%C2%ADnomic-growth-helps-them-sur%C2%ADvive.">The para­dox is that while de­vel­op­ment threat­ens dic­ta­tors, eco­nomic growth helps them sur­vive.</a> <br></br> <div class="outline-text-5" id="text-The-para%C2%ADdox-is-that-while-de%C2%ADvel%C2%ADop%C2%ADment-threat%C2%ADens-dic%C2%ADta%C2%ADtors,-eco%C2%ADnomic-growth-helps-them-sur%C2%ADvive.">
 <p>
Still, what about going the North Korea way?
</p>
</div>
</li>

 <li> <a id="As-in-the-Gulf-states,-mod%C2%ADern%C2%ADiza%C2%ADtion-had-been-shal%C2%ADlow.-As-of-2010,-fewer-than-3-per%C2%ADcent-of-adults-in-Venezuela-had-a-col%C2%ADlege-de%E2%80%90%C2%ADgree,-hardly-more-than-in-1980."></a> <a href="#As-in-the-Gulf-states,-mod%C2%ADern%C2%ADiza%C2%ADtion-had-been-shal%C2%ADlow.-As-of-2010,-fewer-than-3-per%C2%ADcent-of-adults-in-Venezuela-had-a-col%C2%ADlege-de%E2%80%90%C2%ADgree,-hardly-more-than-in-1980.">As in the Gulf states, mod­ern­iza­tion had been shal­low. As of 2010, fewer than 3 per­cent of adults in Venezuela had a col­lege de‐­gree, hardly more than in 1980.</a> <br></br> <div class="outline-text-5" id="text-As-in-the-Gulf-states,-mod%C2%ADern%C2%ADiza%C2%ADtion-had-been-shal%C2%ADlow.-As-of-2010,-fewer-than-3-per%C2%ADcent-of-adults-in-Venezuela-had-a-col%C2%ADlege-de%E2%80%90%C2%ADgree,-hardly-more-than-in-1980.">
 <p>
What about closing the damn universities?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-OUTSIDE-INFLUENCES" class="outline-4">
 <h4 id="OUTSIDE-INFLUENCES"> <span class="section-number-4">2.8.8.</span>  <a href="#OUTSIDE-INFLUENCES">OUTSIDE INFLUENCES</a></h4>
 <div class="outline-text-4" id="text-OUTSIDE-INFLUENCES">
</div>

 <ol class="org-ol"> <li> <a id="cut%C2%ADting-fi%C2%ADnan%C2%ADcial-ties-re%C2%ADduces-a-dic%C2%ADta%C2%ADtor%E2%80%99s-own-lever%C2%ADage-over-West%C2%ADern-elites"></a> <a href="#cut%C2%ADting-fi%C2%ADnan%C2%ADcial-ties-re%C2%ADduces-a-dic%C2%ADta%C2%ADtor%E2%80%99s-own-lever%C2%ADage-over-West%C2%ADern-elites">cut­ting fi­nan­cial ties re­duces a dic­ta­tor’s own lever­age over West­ern elites</a> <br></br> <div class="outline-text-5" id="text-cut%C2%ADting-fi%C2%ADnan%C2%ADcial-ties-re%C2%ADduces-a-dic%C2%ADta%C2%ADtor%E2%80%99s-own-lever%C2%ADage-over-West%C2%ADern-elites">
 <p>
(keep in mind)
</p>
</div>
</li>

 <li> <a id="com%C2%ADpared-to-the-few-global-TV-net%C2%ADworks-and-wire-ser%C2%ADvices-of-the-1980s,-to%E2%80%90%C2%ADday%E2%80%99s-me%C2%ADdia-over%C2%ADflow-with-de%C2%ADtail-about-au%C2%ADthor%C2%ADi%C2%ADtar%C2%ADian-so%C2%ADci%C2%ADeties"></a> <a href="#com%C2%ADpared-to-the-few-global-TV-net%C2%ADworks-and-wire-ser%C2%ADvices-of-the-1980s,-to%E2%80%90%C2%ADday%E2%80%99s-me%C2%ADdia-over%C2%ADflow-with-de%C2%ADtail-about-au%C2%ADthor%C2%ADi%C2%ADtar%C2%ADian-so%C2%ADci%C2%ADeties">com­pared to the few global TV net­works and wire ser­vices of the 1980s, to‐­day’s me­dia over­flow with de­tail about au­thor­i­tar­ian so­ci­eties</a> <br></br> <div class="outline-text-5" id="text-com%C2%ADpared-to-the-few-global-TV-net%C2%ADworks-and-wire-ser%C2%ADvices-of-the-1980s,-to%E2%80%90%C2%ADday%E2%80%99s-me%C2%ADdia-over%C2%ADflow-with-de%C2%ADtail-about-au%C2%ADthor%C2%ADi%C2%ADtar%C2%ADian-so%C2%ADci%C2%ADeties">
 <p>
Because that is distracting from domestic affairs?
</p>
</div>
</li>

 <li> <a id="Among-14-de%C2%ADvel%C2%ADoped-democ%C2%ADra%C2%ADcies-in-2020,-a-large-ma%C2%ADjor%C2%ADity-viewed-the-UN-fa%C2%ADvor%C2%ADably-in-all-ex%C2%ADcept-Japan."></a> <a href="#Among-14-de%C2%ADvel%C2%ADoped-democ%C2%ADra%C2%ADcies-in-2020,-a-large-ma%C2%ADjor%C2%ADity-viewed-the-UN-fa%C2%ADvor%C2%ADably-in-all-ex%C2%ADcept-Japan.">Among 14 de­vel­oped democ­ra­cies in 2020, a large ma­jor­ity viewed the UN fa­vor­ably in all ex­cept Japan.</a> <br></br> <div class="outline-text-5" id="text-Among-14-de%C2%ADvel%C2%ADoped-democ%C2%ADra%C2%ADcies-in-2020,-a-large-ma%C2%ADjor%C2%ADity-viewed-the-UN-fa%C2%ADvor%C2%ADably-in-all-ex%C2%ADcept-Japan.">
 <p>
Has this changed after Covid?
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-DIAGNOSING-THE-THREAT" class="outline-4">
 <h4 id="DIAGNOSING-THE-THREAT"> <span class="section-number-4">2.8.9.</span>  <a href="#DIAGNOSING-THE-THREAT">DIAGNOSING THE THREAT</a></h4>
 <div class="outline-text-4" id="text-DIAGNOSING-THE-THREAT">
</div>
</div>

 <div id="outline-container-HOW-TO-RESPOND?" class="outline-4">
 <h4 id="HOW-TO-RESPOND?"> <span class="section-number-4">2.8.10.</span>  <a href="#HOW-TO-RESPOND?">HOW TO RESPOND?</a></h4>
 <div class="outline-text-4" id="text-HOW-TO-RESPOND?">
</div>

 <ol class="org-ol"> <li> <a id="France-re%C2%ADmained-loyal-to-some-un%C2%ADsa%C2%ADvory-old-friends-in-Africa-such-as-Congo%E2%80%99s-De%C2%ADnis-Sas%C2%ADsou-Nguesso-and-Chad%E2%80%99s-Idriss-D%C3%A9by,-while-Britain-and-the-United-States-soft-ped%C2%ADaled-the-hu%C2%ADman-rights-abuses-of-clients-such-as-Uganda%E2%80%99s-Yow%C2%ADeri-Mu%C2%ADsev%C2%ADeni."></a> <a href="#France-re%C2%ADmained-loyal-to-some-un%C2%ADsa%C2%ADvory-old-friends-in-Africa-such-as-Congo%E2%80%99s-De%C2%ADnis-Sas%C2%ADsou-Nguesso-and-Chad%E2%80%99s-Idriss-D%C3%A9by,-while-Britain-and-the-United-States-soft-ped%C2%ADaled-the-hu%C2%ADman-rights-abuses-of-clients-such-as-Uganda%E2%80%99s-Yow%C2%ADeri-Mu%C2%ADsev%C2%ADeni.">France re­mained loyal to some un­sa­vory old friends in Africa such as Congo’s De­nis Sas­sou Nguesso and Chad’s Idriss Déby, while Britain and the United States soft-ped­aled the hu­man rights abuses of clients such as Uganda’s Yow­eri Mu­sev­eni.</a> <br></br> <div class="outline-text-5" id="text-France-re%C2%ADmained-loyal-to-some-un%C2%ADsa%C2%ADvory-old-friends-in-Africa-such-as-Congo%E2%80%99s-De%C2%ADnis-Sas%C2%ADsou-Nguesso-and-Chad%E2%80%99s-Idriss-D%C3%A9by,-while-Britain-and-the-United-States-soft-ped%C2%ADaled-the-hu%C2%ADman-rights-abuses-of-clients-such-as-Uganda%E2%80%99s-Yow%C2%ADeri-Mu%C2%ADsev%C2%ADeni.">
 <p>
Are they even independent countries in reality?
</p>
</div>
</li>

 <li> <a id="the-West-needs-to-de%C2%ADvise-a-smarter-ver%C2%ADsion-of-in%C2%ADte%C2%ADgra%C2%ADtion"></a> <a href="#the-West-needs-to-de%C2%ADvise-a-smarter-ver%C2%ADsion-of-in%C2%ADte%C2%ADgra%C2%ADtion">the West needs to de­vise a smarter ver­sion of in­te­gra­tion</a> <br></br> <div class="outline-text-5" id="text-the-West-needs-to-de%C2%ADvise-a-smarter-ver%C2%ADsion-of-in%C2%ADte%C2%ADgra%C2%ADtion">
</div>
</li>

 <li> <a id="Anony%C2%ADmous-shell-com%C2%ADpa%C2%ADnies-should-be-banned"></a> <a href="#Anony%C2%ADmous-shell-com%C2%ADpa%C2%ADnies-should-be-banned">Anony­mous shell com­pa­nies should be banned</a> <br></br> <div class="outline-text-5" id="text-Anony%C2%ADmous-shell-com%C2%ADpa%C2%ADnies-should-be-banned">
</div>
</li>

 <li> <a id="Be%C2%ADsides-hav%C2%ADing-greater-moral-au%C2%ADthor%C2%ADity,-an-al%C2%ADliance-of-democ%C2%ADra%C2%ADcies,-backed-by-in%C2%ADde%C2%ADpen%C2%ADdent-an%C2%ADa%C2%ADlysts-and-co%C2%ADor%C2%ADdi%E2%80%90%C2%ADnat%C2%ADing-with-global-hu%C2%ADman-rights-or%C2%ADga%C2%ADni%C2%ADza%C2%ADtions,-would-be-more-ef%C2%ADfec%E2%80%90%C2%ADtive-than-a-myr%C2%ADiad-of-agen%C2%ADcies-op%C2%ADer%C2%ADat%C2%ADing-sep%C2%ADa%C2%ADrately."></a> <a href="#Be%C2%ADsides-hav%C2%ADing-greater-moral-au%C2%ADthor%C2%ADity,-an-al%C2%ADliance-of-democ%C2%ADra%C2%ADcies,-backed-by-in%C2%ADde%C2%ADpen%C2%ADdent-an%C2%ADa%C2%ADlysts-and-co%C2%ADor%C2%ADdi%E2%80%90%C2%ADnat%C2%ADing-with-global-hu%C2%ADman-rights-or%C2%ADga%C2%ADni%C2%ADza%C2%ADtions,-would-be-more-ef%C2%ADfec%E2%80%90%C2%ADtive-than-a-myr%C2%ADiad-of-agen%C2%ADcies-op%C2%ADer%C2%ADat%C2%ADing-sep%C2%ADa%C2%ADrately.">Be­sides hav­ing greater moral au­thor­ity, an al­liance of democ­ra­cies, backed by in­de­pen­dent an­a­lysts and co­or­di‐­nat­ing with global hu­man rights or­ga­ni­za­tions, would be more ef­fec‐­tive than a myr­iad of agen­cies op­er­at­ing sep­a­rately.</a> <br></br> <div class="outline-text-5" id="text-Be%C2%ADsides-hav%C2%ADing-greater-moral-au%C2%ADthor%C2%ADity,-an-al%C2%ADliance-of-democ%C2%ADra%C2%ADcies,-backed-by-in%C2%ADde%C2%ADpen%C2%ADdent-an%C2%ADa%C2%ADlysts-and-co%C2%ADor%C2%ADdi%E2%80%90%C2%ADnat%C2%ADing-with-global-hu%C2%ADman-rights-or%C2%ADga%C2%ADni%C2%ADza%C2%ADtions,-would-be-more-ef%C2%ADfec%E2%80%90%C2%ADtive-than-a-myr%C2%ADiad-of-agen%C2%ADcies-op%C2%ADer%C2%ADat%C2%ADing-sep%C2%ADa%C2%ADrately.">
 <p>
Really? Why? One body can be dealt with. Many competing bodies cannot.
</p>
</div>
</li>
</ol></div>

 <div id="outline-container-A-POWERFUL-IDEA" class="outline-4">
 <h4 id="A-POWERFUL-IDEA"> <span class="section-number-4">2.8.11.</span>  <a href="#A-POWERFUL-IDEA">A POWERFUL IDEA</a></h4>
 <div class="outline-text-4" id="text-A-POWERFUL-IDEA">
 <p>
Okay, so the “West” should use the “idea of democracy” to educate the world.
</p>
</div>
</div>
</div>
</section> <section id="outline-container-Words-%5B0/0%5D" class="outline-2"> <h2 id="Words-%5B0/0%5D"> <span class="section-number-2">3.</span>  <a href="#Words-%5B0/0%5D">Words  <code>[0/0]</code></a></h2>
 <div class="outline-text-2" id="text-Words-%5B0/0%5D">
 <ol class="org-ol"> <li>spin :: in this sense, “misinformation”, public relations with a twist in order to manipulate opinion</li>
 <li>peg :: a small usually cylindrical pointed piece (as of wood) used to pin down or fasten things or to fit into or close holes, metaphorically, “to fix something to something”</li>
 <li>entrepôts :: (French warehouse) a very important place to keep stuff for exchange, usually on a cross of trade routes, say Hong Kong or Singapore</li>
 <li>to schmooze :: to chitchat, to network, to have small-talk, usually in order to make connections</li>
 <li>suave manipulator ::  sophisticated, cool, and possibly a bit charming, often in a somewhat insincere or superficial way, manipulator</li>
 <li>murky :: dark and gloomy, usually of liquids</li>
 <li>Carnation Revolution :: peaceful revolution in Portugal in 1974, which ended Salazar’s system; carnation means “гвоздика”</li>
 <li>scribblings :: ugly quick notes</li>
 <li>relish :: a paste, jam, marinade, a sauce, put on savoury dishes, like an additive; figuratively, enjoy much</li>
 <li>state coffers ::  “закрома родины,金库”; what the government can use to pay for stuff</li>
 <li>to scoop :: “зачёрпывать,牢取”, to pick up a dose of a liquid with a tool, such as a ladle; as opposed to Russian word, can also be a noun for the dose, or for a tool</li>
 <li>scathe :: “to harm, to hurt”, seldom used in modern English; however, “unscathed”(=unharmed), and “scathing remark”(=hurtful, vitriolic verbal attack) are frequent</li>
 <li>restive regions :: prone to unrest and resistance, disobedience, regions of a country; restive is almost the opposite of restful</li>
 <li>stilted :: (stilts=“ходули,高跷”), often about language or speech: overly complicated, formal, unwieldy</li>
 <li>quipped (to quip) :: to make a sharp, witty, clever remark, especially negative</li>
 <li>as if on cue :: happening at a surprisingly good moment, matching circumstances ; “cue” is a hint for an actor to do an action on stage</li>
 <li>queasy :: (no corresponding noun in modern English) with an uncomfortable feeling in one’s stomach, squeamish</li>
 <li>knuckle-duster :: “кастет,指节铜套”, a piece of metal worn on one’s knuckles as a weapon</li>
 <li>to snarl :: to angrily growl in a menacing tone, about animals, or remark, about people</li>
 <li>hatchet :: small axe, often used by American Indian, used as metaphorically as a sign of enmity</li>
 <li>tough and flat-footed :: an idiom of Lee Kuan Yew, meaning to be straightforwardly aggressive</li>
 <li>ham-fisted :: clumsy, awkward, lacking dexterity in the use of their hands</li>
 <li>Syngman Rhee :: first President of South Korea</li>
 <li>disbursing :: paying many sums, usually to employees as salary</li>
 <li>pillory (public punishment) :: attach to a pole for everyone to humilitate, often used metaphorically</li>
 <li>churro :: a sweet dish made from fried dough, long-ish oily “buns”, “чурро,甜油条”</li>
 <li>to don the garb :: dress-up in specific clothing for a specific occasion; “don” is an old for “put on”, “garb” is “style, fashion, type of clothing”</li>
 <li>effete :: (lat. effetus, exhausted) weak, decadent, lacking vigour</li>
 <li>pounced on the un­doc­u­mented claim :: “pounced” = jump on, attack by jumping, usually about cats, here used figuratively</li>
 <li>squawk about :: making loud, piercing noise, usually about birds, figuratively “loudly protest”</li>
 <li>Zersetzung :: like “gaslighting”, but from the government, and aiming at citizens</li>
 <li>vying :: (infinitive “to vie”) to compete or contend eagerly</li>
 <li>turgid :: swollen or bloated due to fluid or excessive pressure, figuratively used about speech, when using convoluted language and lacking clarity</li>
 <li>obsequious :: being excessively obedient, submissive, or ingratiating towards someone in a servile or sycophantic manner</li>
 <li>elbow grease :: having to spend a lot of effort to do something</li>
 <li>pastiche :: (from french “pastiche”) thick meat sauce, Russian “паштет”, English loan “pâté”, usually used figuratively, to describe a “medley”, “potpourri”, mixed flowers, musical styles</li>
 <li>double entendres :: from French “double meanings”, puns, but not necessarily humourous</li>
 <li>contrite :: (adv) deeply remorseful and genuinely regretting</li>
 <li>gutter press :: what Russians usually mean by “yellow journalism”, excessively entertaining and sensational journalism, as opposed to the actual meaning of “yellow journalism”, not necessarily misleading or twisting</li>
 <li>military fatigues :: combat uniform, but usually used to describe it worn by civilians pretending to keep some connection to the military</li>
 <li>pliant :: like “pliable”, but more in the psychological sense (ChatGPT-3.5 fails to distinguish those two, ChatGPT-4 succeeds)</li>
 <li>comptroller :: chief accountant, or a head of the revision chamber, quality controller. in fact is like a “controller”, but using an old-style French spelling for fanciness</li>
 <li>flypasts :: ceremonial or symbolic flight by a group of aircraft or a single aircraft, usually on a parade</li>
 <li>romp home :: win easily and comfortably, romp means “lively and frolic”</li>
 <li>hound out :: follow, pursue, and harrass (Russian “травить собаками”)</li>
 <li>bickering :: engaging in petty, quarrelsome, or argumentative behavior, typically over trivial matters</li>
 <li>dabbling in :: get interested without deep involvement, such as learning from popular lectures or literature, not profound</li>
 <li>pore over (polling data) :: study very carefully, thoroughly, meticulously, with a lot of attention</li>
 <li>squalor :: dirt, decay, and general lack of order, usually used about living conditions</li>
 <li>rustle up :: prepare something quickly and hastily, usually about food, (rustle by itself is nervous, restless movement)</li>
 <li>hobnobbed :: literally, “have or not”, used to imply “would you like to have wine or not?”, nowadays used to express the process of spending time around important guys, in order to make career or raise in ranks</li>
 <li>stooge :: someone who is used to do dirty job with his hands, or pretends to be an innocent passerby while actually playing the game (Russian “подсадная утка”)</li>
 <li>anti-Western gadflies :: a person who interferes with the status quo of a society or an organization by posing upsetting or novel questions</li>
 <li>rote tasks :: mechanical activities that require little or no cognitive effort or decision-making</li>
 <li>sacrilegious :: offensive or blasphemous</li>
 <li>umpires :: official whose responsibility is to enforce the rules of the game, usually for exotic Anglo-Saxon sports, such as cricket or baseball</li>
 <li>cause célèbre :: controversial or highly publicized legal case</li>
 <li>sleaze :: what we is called “dirt” in Russian and used to described political, social, moral, behaviour of people, usually not literal dirt</li>
 <li>leeway :: a certain degree of flexibility when making decisions, in a good way</li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-05-13_Spin-Dictators-by-Sergey-Guriev.org.d/index.html"/>
  <id>https://lockywolf.net/2023-05-13_Spin-Dictators-by-Sergey-Guriev.org.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Networking for Systems Administrators by Michael W Lucas, a review.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Networking for Systems Administrators by Michael W Lucas, a review.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Who-is-this-book-aimed-at.">1. Who is this book aimed at.</a></li>
 <li> <a href="#So-who-are-those-%22Systems-Administrators%22-the-book-is-aimed-at?">2. So who are those “Systems Administrators” the book is aimed at?</a></li>
 <li> <a href="#What-topics-does-the-book-cover?">3. What topics does the book cover?</a></li>
 <li> <a href="#Contacts">4. Contacts</a></li>
</ul></div>
</nav> <figure id="org942b50c"> <img src="01_cover_networking-for-systems-administrators.jpg" alt="01_cover_networking-for-systems-administrators.jpg"></img></figure> <p>
This book review is going to be really short, well, partly because the book itself
is short. However, short here does not imply lack of value. I have discovered that
the books by Michael W Lucas always seem to play a role that is at the same time
very niche, and very valuable. So I have taken writing this review as an
opportunity to also reflect on this niche.
</p>

 <p>

</p>

 <section id="outline-container-Who-is-this-book-aimed-at." class="outline-2"> <h2 id="Who-is-this-book-aimed-at."> <span class="section-number-2">1.</span>  <a href="#Who-is-this-book-aimed-at.">Who is this book aimed at.</a></h2>
 <div class="outline-text-2" id="text-Who-is-this-book-aimed-at.">

 <figure id="org753c7b1"> <img src="02_sysadmin_system-administrator-network-engineer-characters-set-network-diagnostics-users-support-server-maintenance-cartoon-illustrations_178650-2934.jpg" alt="02_sysadmin_system-administrator-network-engineer-characters-set-network-diagnostics-users-support-server-maintenance-cartoon-illustrations_178650-2934.jpg"></img></figure> <p>
What is “Networking for Systems Administrators”? Well, basically it is an
introduction into computer networks for people who are otherwise totally
unfamiliar with either computers or networks.
</p>

 <p>
Don’t be misled by the words “Systems Administrators” or even the fact that the
book is from the “Mastery” series. This is more of an irony than a real claim for
domination.
</p>

 <p>
Books from the “Mastery” series are mostly very simple and targeted at the most
entry-level audience. In fact, they contain even less information that the official
manual pages or those guides that you can find on Google in hundreds, spending an
hour.
</p>

 <p>
Does it discount their value? Not in the slightest. Their biggest advantage is that
they, as opposed to most of the cheap quick howtos with clickbaity titles, are
actually correct.
</p>

 <p>
Also, those books generally have a nice style bearing resemblance to fiction books,
possibly the detective stories that Lucas has been writing as a different branch of
his literary career.
</p>
</div>
</section> <section id="outline-container-So-who-are-those-%22Systems-Administrators%22-the-book-is-aimed-at?" class="outline-2"> <h2 id="So-who-are-those-%22Systems-Administrators%22-the-book-is-aimed-at?"> <span class="section-number-2">2.</span>  <a href="#So-who-are-those-%22Systems-Administrators%22-the-book-is-aimed-at?">So who are those “Systems Administrators” the book is aimed at?</a></h2>
 <div class="outline-text-2" id="text-So-who-are-those-%22Systems-Administrators%22-the-book-is-aimed-at?">

 <figure id="orgd1b3392"> <img src="03_computer-science-memes-on-210845.jpg" alt="03_computer-science-memes-on-210845.jpg"></img></figure> <p>
There are two answers to this question. The first would be  <b>power users</b>, a term
invented by Microsoft to describe people most likely to screw up their carefully
crafted heuristics. The second has a slight flavour of national colour, and is hard
to translate in English, but let me go with an occasional-ism “anykeyster” - the IT
department employee who helps people to find the “Any” key on their keyboard.
</p>

 <p>
So, after laughing in the audience of my enlightened friends has abated, let me try
and convince you that this is, really, the most sensitive, the most vulnerable, and
the most in need of community support group of computer users.
</p>

 <p>
Why is that? Because they are already curious enough to start digging into the
subject matter, but not yet experienced enough to distinguish truth from obvious
lies. They are skilful enough to break things, but not skilful enough to repair
them.
</p>

 <p>
So good introductory books on, basically, any subject are of critical importance to
any healthy technical field, and especially to automated thinking.
</p>
</div>
</section> <section id="outline-container-What-topics-does-the-book-cover?" class="outline-2"> <h2 id="What-topics-does-the-book-cover?"> <span class="section-number-2">3.</span>  <a href="#What-topics-does-the-book-cover?">What topics does the book cover?</a></h2>
 <div class="outline-text-2" id="text-What-topics-does-the-book-cover?">

 <figure id="orge0724bd"> <img src="04_tracert.jpg" alt="04_tracert.jpg"></img></figure> <p>
Let me start from the topics the book does  <span class="underline">not</span> cover. The book speaks nothing
about a tool which most of us have probably toyed with, pretending to be savvy
hackers - Nmap. The book does mention it, so curious minds might very well get
enticed, and try to follow the link, but I think that it could have been covered
more extensively.
</p>

 <p>
So now let me try and list the things that are touched in the book with noticeable
attention:
</p>

 <ol class="org-ol"> <li>Addressing with ipv4 and ipv6</li>
 <li>Routing</li>
 <li>TCP and UDP with ports</li>
 <li>Listening and generating TCP and UDP traffic for testing</li>
 <li>Domain Name System and its client debugging</li>
 <li>Packet sniffing and basic analysis with tcpdump</li>
 <li>Packet filtering and firewalling</li>
</ol> <p>
Ah, okay, one thing that is also missing from the book is firewalling and packet
rewriting. The book has a whole chapter dedicated to it, but it does not nearly
give enough practical knowledge to actually apply it to your own machine.
</p>

 <p>
The rest seven topics can be called the staple of networking, and Lucas faithfully
covers the basics of each one, which, I would hope, would make the user less
misguided by poor googleable howtos and ready to ask Google further questions.
</p>

 <p>
The depth of coverage for each topic is really not that great, but the most basic
examples of command-line usage for each set of commands corresponding to each layer
of networking are properly given.
</p>

 <p>
Myself, even though I have spend significant effort debugging networks of Linux,
BSD, and Windows systems, have found certain command incantations that I haven’t
used as much as I should have, for example, interface error statistics  <code>~ip -s
link~</code>, and the one that abuses  <code>~netcat~</code> to forward shell access (find it in the
book).
</p>

 <p>
The style, as mentioned before, is light, with jokes and funny but plausible
examples from real life, which makes reading much less boring than your average
thick book on networking or programming.
</p>

 <p>
Indeed, the book is not thick at all. It took me three hours to read it, although I
have to admit, a lot of content evaded my eyes because I had already known it, and
was glossing over. I suspect that for a newbie it might take about three times
more, which is still barely more than a single working day.
</p>

 <p>
Shall I recommend this book to an experienced network administrator or programmer?
No, not really. But even for them it could be a useful tool, to be handed out to
the biggest troublemakers on the network in order to develop a common language.
</p>

 <p>
But I shall definitely recommend this book to everyone who is either just starting
with computer networking, or has been misled by the companies and governments
promising “ease and convenience”.
</p>
</div>
</section> <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">4.</span>  <a href="#Contacts">Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
 <p>
Subscribe and donate if you find anything in this blog and/or other pages useful.
Repost, share and discuss, feedback helps me become better.
</p>

 <p>
I also have:
</p>
 <dl class="org-dl"> <dt>Facebook</dt> <dd> <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a></dd>
 <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>Twitter</dt> <dd> <a href="https://twitter.com/VANikishkin">https://twitter.com/VANikishkin</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-05-19_Networking-for-Systems-Administrators.org.d/index.html"/>
  <id>https://lockywolf.net/2023-05-19_Networking-for-Systems-Administrators.org.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>PAM Mastery by Michael W Lucas, Chinese Review</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">PAM Mastery by Michael W Lucas, Chinese Review</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a>
 <ul> <li> <a href="#%E5%85%B3%E4%BA%8E%E6%8A%80%E6%9C%AF%E6%89%8B%E5%86%8C">1.1. 关于技术手册</a>
 <ul> <li> <a href="#%E6%88%91%E5%A6%82%E4%BD%95%E5%8F%91%E7%8E%B0%E4%BA%86%E8%BF%99%E6%9C%AC%E4%B9%A6%EF%BC%9F">1.1.1. 我如何发现了这本书？</a></li>
 <li> <a href="#%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%86%B3%E5%AE%9A%E9%98%85%E8%AF%BB%E5%AE%83%EF%BC%9F">1.1.2. 为什么我决定阅读它？</a></li>
 <li> <a href="#%E6%8A%80%E6%9C%AF%E4%B9%A6%E4%B8%8E%E5%AE%98%E6%96%B9%E7%9A%84%E8%AF%B4%E6%98%8E%E4%B9%A6%E5%92%8C%E7%BD%91%E4%B8%8AHOWTO%E7%9B%B8%E6%AF%94%E6%9C%89%E4%BB%80%E4%B9%88%E7%89%B9%E7%82%B9%EF%BC%9F">1.1.3. 技术书与官方的说明书和网上HOWTO相比有什么特点？</a></li>
 <li> <a href="#%E9%80%9A%E8%BF%87%E5%8D%96%E5%87%BA%E6%8A%80%E6%9C%AF%E4%B9%A6%E4%BD%9C%E8%80%85%E6%98%AF%E5%90%A6%E4%BC%9A%E8%B5%9A%E9%92%B1%EF%BC%9F">1.1.4. 通过卖出技术书作者是否会赚钱？</a></li>
</ul></li>
 <li> <a href="#%E5%85%B3%E4%BA%8EPAM%E6%8A%80%E6%9C%AF">1.2. 关于PAM技术</a>
 <ul> <li> <a href="#%E4%BB%80%E4%B9%88%E6%98%AFPAM%EF%BC%9F">1.2.1. 什么是PAM？</a></li>
 <li> <a href="#Linux%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%A6%82%E4%BD%95%E8%BF%90%E8%90%A5%EF%BC%9F">1.2.2. Linux的身份验证如何运营？</a></li>
 <li> <a href="#%E4%B8%80%E8%88%AC%E7%9A%84%E7%94%B5%E8%84%91%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8PAM%EF%BC%9F">1.2.3. 一般的电脑工程师如何使用PAM？</a></li>
 <li> <a href="#%E8%BF%99%E6%9C%AC%E4%B9%A6%E6%98%AF%E5%90%A6%E5%AE%8C%E6%95%B4%E4%BB%8B%E7%BB%8D%E4%BA%86PAM%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%9F">1.2.4. 这本书是否完整介绍了PAM的功能？</a></li>
</ul></li>
 <li> <a href="#%E4%B9%A6%E7%B1%8D%E7%9A%84%E6%96%87%E6%9C%AC%E9%A3%8E%E6%A0%BC">1.3. 书籍的文本风格</a>
 <ul> <li> <a href="#%E8%AF%AD%E8%A8%80">1.3.1. 语言</a></li>
 <li> <a href="#%E9%9A%BE%E5%BA%A6">1.3.2. 难度</a></li>
</ul></li>
 <li> <a href="#%E5%90%8E%E8%AE%B0">1.4. 后记</a>
 <ul> <li> <a href="#%E6%80%BB%E7%BB%93">1.4.1. 总结</a></li>
 <li> <a href="#%E6%8E%A8%E8%8D%90/%E4%B8%8D%E6%8E%A8%E8%8D%90">1.4.2. 推荐/不推荐</a></li>
 <li> <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">1.4.3. 联系方式</a></li>
</ul></li>
</ul></li>
</ul></div>
</nav> <p>
这篇文章介绍我的关于Michael W Lucas的小技术书的观点。
</p>

 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
</div>

 <div id="outline-container-%E5%85%B3%E4%BA%8E%E6%8A%80%E6%9C%AF%E6%89%8B%E5%86%8C" class="outline-3">
 <h3 id="%E5%85%B3%E4%BA%8E%E6%8A%80%E6%9C%AF%E6%89%8B%E5%86%8C"> <span class="section-number-3">1.1.</span>  <a href="#%E5%85%B3%E4%BA%8E%E6%8A%80%E6%9C%AF%E6%89%8B%E5%86%8C">关于技术手册</a></h3>
 <div class="outline-text-3" id="text-%E5%85%B3%E4%BA%8E%E6%8A%80%E6%9C%AF%E6%89%8B%E5%86%8C">
</div>

 <div id="outline-container-%E6%88%91%E5%A6%82%E4%BD%95%E5%8F%91%E7%8E%B0%E4%BA%86%E8%BF%99%E6%9C%AC%E4%B9%A6%EF%BC%9F" class="outline-4">
 <h4 id="%E6%88%91%E5%A6%82%E4%BD%95%E5%8F%91%E7%8E%B0%E4%BA%86%E8%BF%99%E6%9C%AC%E4%B9%A6%EF%BC%9F"> <span class="section-number-4">1.1.1.</span>  <a href="#%E6%88%91%E5%A6%82%E4%BD%95%E5%8F%91%E7%8E%B0%E4%BA%86%E8%BF%99%E6%9C%AC%E4%B9%A6%EF%BC%9F">我如何发现了这本书？</a></h4>
 <div class="outline-text-4" id="text-%E6%88%91%E5%A6%82%E4%BD%95%E5%8F%91%E7%8E%B0%E4%BA%86%E8%BF%99%E6%9C%AC%E4%B9%A6%EF%BC%9F">
 <p>
我是Michael W Lucas的粉丝。
虽然他的大部分书都很简单，并且覆盖了很多其他方法也可以找到的内容，但是我认为掌握电脑技巧
不应该做比必要做的痛苦的更痛。
我打算阅读他的所有关于电脑系统管理系列的所有的书。
</p>
</div>
</div>

 <div id="outline-container-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%86%B3%E5%AE%9A%E9%98%85%E8%AF%BB%E5%AE%83%EF%BC%9F" class="outline-4">
 <h4 id="%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%86%B3%E5%AE%9A%E9%98%85%E8%AF%BB%E5%AE%83%EF%BC%9F"> <span class="section-number-4">1.1.2.</span>  <a href="#%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%86%B3%E5%AE%9A%E9%98%85%E8%AF%BB%E5%AE%83%EF%BC%9F">为什么我决定阅读它？</a></h4>
 <div class="outline-text-4" id="text-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%86%B3%E5%AE%9A%E9%98%85%E8%AF%BB%E5%AE%83%EF%BC%9F">
 <p>
我在很久之前使用的操作系统，Slackware不包括可插拔认证模块（PAM）。
但是最新的15.0版本,终于包括这个部分。
</p>

 <p>
因为我认为，用户必要可控制他的整个电脑，所以我把学习PAM放在了我的任务单里。
此外，我听说PAM是最自然的组织用户数据的加密方法。
PAM本身不做任何加密，但是PAM是一种钩子。
系统提供管理用户此钩子，是为了让他登录之前激活某些系统级别服务，比如解密。
</p>
</div>
</div>

 <div id="outline-container-%E6%8A%80%E6%9C%AF%E4%B9%A6%E4%B8%8E%E5%AE%98%E6%96%B9%E7%9A%84%E8%AF%B4%E6%98%8E%E4%B9%A6%E5%92%8C%E7%BD%91%E4%B8%8AHOWTO%E7%9B%B8%E6%AF%94%E6%9C%89%E4%BB%80%E4%B9%88%E7%89%B9%E7%82%B9%EF%BC%9F" class="outline-4">
 <h4 id="%E6%8A%80%E6%9C%AF%E4%B9%A6%E4%B8%8E%E5%AE%98%E6%96%B9%E7%9A%84%E8%AF%B4%E6%98%8E%E4%B9%A6%E5%92%8C%E7%BD%91%E4%B8%8AHOWTO%E7%9B%B8%E6%AF%94%E6%9C%89%E4%BB%80%E4%B9%88%E7%89%B9%E7%82%B9%EF%BC%9F"> <span class="section-number-4">1.1.3.</span>  <a href="#%E6%8A%80%E6%9C%AF%E4%B9%A6%E4%B8%8E%E5%AE%98%E6%96%B9%E7%9A%84%E8%AF%B4%E6%98%8E%E4%B9%A6%E5%92%8C%E7%BD%91%E4%B8%8AHOWTO%E7%9B%B8%E6%AF%94%E6%9C%89%E4%BB%80%E4%B9%88%E7%89%B9%E7%82%B9%EF%BC%9F">技术书与官方的说明书和网上HOWTO相比有什么特点？</a></h4>
 <div class="outline-text-4" id="text-%E6%8A%80%E6%9C%AF%E4%B9%A6%E4%B8%8E%E5%AE%98%E6%96%B9%E7%9A%84%E8%AF%B4%E6%98%8E%E4%B9%A6%E5%92%8C%E7%BD%91%E4%B8%8AHOWTO%E7%9B%B8%E6%AF%94%E6%9C%89%E4%BB%80%E4%B9%88%E7%89%B9%E7%82%B9%EF%BC%9F">
 <p>
官方的说明书一般既是免费的，又覆盖模块的所有的功能。
网络HOWTO通常能很清楚的指导操作者如何得到某些结果。
</p>

 <p>
为什么我们还是需要额外的知识资源？
尤其是付费的？
</p>

 <p>
我的回答是这样：因为只有拥有（至少一点）情节和动机的书才会给阅读者综合概述。
换句话说，官方说明书拥有宽度，但是没有“为什么我们需要本模块”的动机。
网络HOWO有动机，但是没有宽度。
而技术书同时拥有这i两种优点。
</p>
</div>
</div>

 <div id="outline-container-%E9%80%9A%E8%BF%87%E5%8D%96%E5%87%BA%E6%8A%80%E6%9C%AF%E4%B9%A6%E4%BD%9C%E8%80%85%E6%98%AF%E5%90%A6%E4%BC%9A%E8%B5%9A%E9%92%B1%EF%BC%9F" class="outline-4">
 <h4 id="%E9%80%9A%E8%BF%87%E5%8D%96%E5%87%BA%E6%8A%80%E6%9C%AF%E4%B9%A6%E4%BD%9C%E8%80%85%E6%98%AF%E5%90%A6%E4%BC%9A%E8%B5%9A%E9%92%B1%EF%BC%9F"> <span class="section-number-4">1.1.4.</span>  <a href="#%E9%80%9A%E8%BF%87%E5%8D%96%E5%87%BA%E6%8A%80%E6%9C%AF%E4%B9%A6%E4%BD%9C%E8%80%85%E6%98%AF%E5%90%A6%E4%BC%9A%E8%B5%9A%E9%92%B1%EF%BC%9F">通过卖出技术书作者是否会赚钱？</a></h4>
 <div class="outline-text-4" id="text-%E9%80%9A%E8%BF%87%E5%8D%96%E5%87%BA%E6%8A%80%E6%9C%AF%E4%B9%A6%E4%BD%9C%E8%80%85%E6%98%AF%E5%90%A6%E4%BC%9A%E8%B5%9A%E9%92%B1%EF%BC%9F">
 <p>
某天我听过一个商业想法：为学者大声阅读官方的说明书。
这是一个笑话，但是它提出了一个很好的问题，人们如何使用自己写得很清楚、很容易理解的说明书的技能赚钱？
</p>

 <p>
Michael W Lucas是我鲜少见过的成功案例之一。
</p>
</div>
</div>
</div>

 <div id="outline-container-%E5%85%B3%E4%BA%8EPAM%E6%8A%80%E6%9C%AF" class="outline-3">
 <h3 id="%E5%85%B3%E4%BA%8EPAM%E6%8A%80%E6%9C%AF"> <span class="section-number-3">1.2.</span>  <a href="#%E5%85%B3%E4%BA%8EPAM%E6%8A%80%E6%9C%AF">关于PAM技术</a></h3>
 <div class="outline-text-3" id="text-%E5%85%B3%E4%BA%8EPAM%E6%8A%80%E6%9C%AF">
</div>

 <div id="outline-container-%E4%BB%80%E4%B9%88%E6%98%AFPAM%EF%BC%9F" class="outline-4">
 <h4 id="%E4%BB%80%E4%B9%88%E6%98%AFPAM%EF%BC%9F"> <span class="section-number-4">1.2.1.</span>  <a href="#%E4%BB%80%E4%B9%88%E6%98%AFPAM%EF%BC%9F">什么是PAM？</a></h4>
 <div class="outline-text-4" id="text-%E4%BB%80%E4%B9%88%E6%98%AFPAM%EF%BC%9F">
 <p>
简单的说，PAM是一套UNIX系统插件。
它可以在用户登录系统之前执行几个操作。
按照这个几个操作结果，系统会选择允许或者拒绝登录。
</p>

 <p>
“可以插拔”这里比较重要。
它的意义是：管理员会安装系统之后改变或修正系统认证方法。
</p>

 <p>
但是这套程序模块不必真的实现认证功能。
从认证角度来说它会一直返回：“允许”，但是在后台执行某些额外的功能。
</p>

 <p>
为什么需要这么做？
因为这样系统能按照管理员需求准备用户环境。
（比如解密他的文件。）
</p>
</div>
</div>

 <div id="outline-container-Linux%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%A6%82%E4%BD%95%E8%BF%90%E8%90%A5%EF%BC%9F" class="outline-4">
 <h4 id="Linux%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%A6%82%E4%BD%95%E8%BF%90%E8%90%A5%EF%BC%9F"> <span class="section-number-4">1.2.2.</span>  <a href="#Linux%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%A6%82%E4%BD%95%E8%BF%90%E8%90%A5%EF%BC%9F">Linux的身份验证如何运营？</a></h4>
 <div class="outline-text-4" id="text-Linux%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%A6%82%E4%BD%95%E8%BF%90%E8%90%A5%EF%BC%9F">
 <p>
其实PAM本来不是Linux的分系统。
它来自Solaris，然后开源社会按照Solaris模式，实现了两个PAM版本，Linux-PAM和OpenPAM。
它们两个不是完全兼容的，但是PAM Mastery两个都覆盖。
</p>

 <p>
这两个实现的重要区别是：Linux-PAM可以做更多用户环境初始化。
所以Linux-PAM管理员应该更努力计划PAM部署。
</p>

 <p>
Linux-PAM最需要考虑的方面是：
</p>
 <ol class="org-ol"> <li>如何认证用户名和密码。一般的系统只会参考默认用户名数据库：/etc/shadow，但是管理员可以增加更多不同的方法。</li>
 <li>如何定义用户资源限制。普通的用户限制和管理员限制不一样。</li>
</ol></div>
</div>

 <div id="outline-container-%E4%B8%80%E8%88%AC%E7%9A%84%E7%94%B5%E8%84%91%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8PAM%EF%BC%9F" class="outline-4">
 <h4 id="%E4%B8%80%E8%88%AC%E7%9A%84%E7%94%B5%E8%84%91%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8PAM%EF%BC%9F"> <span class="section-number-4">1.2.3.</span>  <a href="#%E4%B8%80%E8%88%AC%E7%9A%84%E7%94%B5%E8%84%91%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8PAM%EF%BC%9F">一般的电脑工程师如何使用PAM？</a></h4>
 <div class="outline-text-4" id="text-%E4%B8%80%E8%88%AC%E7%9A%84%E7%94%B5%E8%84%91%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8PAM%EF%BC%9F">
 <p>
在Linux中,一般情况下，用户环境配置是在BASH初始化脚本（bashrc）里做的。
所以为了使用bashrc，它应该是存在的。
</p>

 <p>
如果你的用户目录是在其他的计算机（比如NAS），
或者用户目录被加密，bashrc也是跟它加密在一起？
</p>

 <p>
PAM就是答案。管理员（在私家电脑就是用户）可以找到和安装PAM模块。
PAM模块会准备好用户环境。
</p>

 <p>
在大公司PAM设置不是用户可控的，但是bashrc像私家电脑一样，用户会改变。
所以如果公司（管理员）要把某些限制强加于用户上，PAM是最适合的地方。
</p>
</div>
</div>

 <div id="outline-container-%E8%BF%99%E6%9C%AC%E4%B9%A6%E6%98%AF%E5%90%A6%E5%AE%8C%E6%95%B4%E4%BB%8B%E7%BB%8D%E4%BA%86PAM%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%9F" class="outline-4">
 <h4 id="%E8%BF%99%E6%9C%AC%E4%B9%A6%E6%98%AF%E5%90%A6%E5%AE%8C%E6%95%B4%E4%BB%8B%E7%BB%8D%E4%BA%86PAM%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%9F"> <span class="section-number-4">1.2.4.</span>  <a href="#%E8%BF%99%E6%9C%AC%E4%B9%A6%E6%98%AF%E5%90%A6%E5%AE%8C%E6%95%B4%E4%BB%8B%E7%BB%8D%E4%BA%86PAM%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%9F">这本书是否完整介绍了PAM的功能？</a></h4>
 <div class="outline-text-4" id="text-%E8%BF%99%E6%9C%AC%E4%B9%A6%E6%98%AF%E5%90%A6%E5%AE%8C%E6%95%B4%E4%BB%8B%E7%BB%8D%E4%BA%86PAM%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%9F">
 <p>
我比较喜欢这本书的逻辑。
</p>

 <p>
Lucas首先介绍PAM的历史，然后描述PAM标准的认证步骤。
它包括“认证”（auth），“用户”（account），“环境”（session）和“密码”（password）四个步骤。
</p>

 <p>
然后他介绍四个步骤的属性和常规、实现正常登录流程的模块。（比如pam_unix.so）
</p>

 <p>
后来它花费两章描述Linux-PAM和openpam的细节。
这里很重要的是Linux-PAM的错误处理过程。
它比OpenPAM详细很多，所以可以非常仔细的个性化认证逻辑。
</p>

 <p>
他花费一章描述PAM错误编码，因为错误分析是调试登录流程的很重要的一部分。
其实，调试应当自己占据一章。
Lucas介绍了pam_printf,pam_exec和其他辅助调试的模块。
</p>

 <p>
在这本书最后一部分，它介绍PAM和SSH的合作。
所有的管理员使用SSH远程登录，但是登录和打开SSH钥匙环需要两个密码。
PAM让你使用你的SSH钥匙环密码登录。
</p>

 <p>
TODO
</p>

 <p>
我感觉这本书最大的缺陷是它完全忽略了Linux的命名空间（namespace）,
即使PAM也是初始化namespace的最自然的地方之一。
</p>

 <p>
比如用户可能需要给某些进程限制文件系统浏览权限。
</p>

 <p>
普通的Linux限制框架能拒绝访问，但是不能限制浏览。
</p>

 <p>
但是如果进程管理服务程序通过PAM换身份，成为具备另外一个文件系统namespace的进程，
该进程就会有被限制的文件系统观点。
</p>
</div>
</div>
</div>

 <div id="outline-container-%E4%B9%A6%E7%B1%8D%E7%9A%84%E6%96%87%E6%9C%AC%E9%A3%8E%E6%A0%BC" class="outline-3">
 <h3 id="%E4%B9%A6%E7%B1%8D%E7%9A%84%E6%96%87%E6%9C%AC%E9%A3%8E%E6%A0%BC"> <span class="section-number-3">1.3.</span>  <a href="#%E4%B9%A6%E7%B1%8D%E7%9A%84%E6%96%87%E6%9C%AC%E9%A3%8E%E6%A0%BC">书籍的文本风格</a></h3>
 <div class="outline-text-3" id="text-%E4%B9%A6%E7%B1%8D%E7%9A%84%E6%96%87%E6%9C%AC%E9%A3%8E%E6%A0%BC">
</div>

 <div id="outline-container-%E8%AF%AD%E8%A8%80" class="outline-4">
 <h4 id="%E8%AF%AD%E8%A8%80"> <span class="section-number-4">1.3.1.</span>  <a href="#%E8%AF%AD%E8%A8%80">语言</a></h4>
 <div class="outline-text-4" id="text-%E8%AF%AD%E8%A8%80">
 <p>
Lucas的语言很流畅。
难怪他除了技术书以外，还写侦探小说。
他会使用可笑的例子，比如（虚构的）PAM模块pam_breathalyzer,会拒绝喝醉的用户登录。
</p>
</div>
</div>

 <div id="outline-container-%E9%9A%BE%E5%BA%A6" class="outline-4">
 <h4 id="%E9%9A%BE%E5%BA%A6"> <span class="section-number-4">1.3.2.</span>  <a href="#%E9%9A%BE%E5%BA%A6">难度</a></h4>
 <div class="outline-text-4" id="text-%E9%9A%BE%E5%BA%A6">
 <p>
这本书的难度，我会说非常的低。
虽然这个话题很微妙，但是并不是很难。
</p>
</div>
</div>
</div>

 <div id="outline-container-%E5%90%8E%E8%AE%B0" class="outline-3">
 <h3 id="%E5%90%8E%E8%AE%B0"> <span class="section-number-3">1.4.</span>  <a href="#%E5%90%8E%E8%AE%B0">后记</a></h3>
 <div class="outline-text-3" id="text-%E5%90%8E%E8%AE%B0">
</div>

 <div id="outline-container-%E6%80%BB%E7%BB%93" class="outline-4">
 <h4 id="%E6%80%BB%E7%BB%93"> <span class="section-number-4">1.4.1.</span>  <a href="#%E6%80%BB%E7%BB%93">总结</a></h4>
 <div class="outline-text-4" id="text-%E6%80%BB%E7%BB%93">
 <p>
Lucas写的大部分书覆盖的都是比较小、比较简单的话题。
但是如果你把所有的书堆积起来，它仍然会达到几十厘米的厚度，累积几千页面的页数。
</p>

 <p>
电脑每年变得越来越复杂。
不能说难，因为大部分系统管理逻辑很简单，但是很多系统同时跑、同时交互一贯的会生成复杂度。
</p>

 <p>
一般努力的学生会说，哎，这个很简单，那个很简单，那个更简单，但是放在一起，突然发现用一年来学习所有的内容都不够。
</p>
</div>
</div>


 <div id="outline-container-%E6%8E%A8%E8%8D%90/%E4%B8%8D%E6%8E%A8%E8%8D%90" class="outline-4">
 <h4 id="%E6%8E%A8%E8%8D%90/%E4%B8%8D%E6%8E%A8%E8%8D%90"> <span class="section-number-4">1.4.2.</span>  <a href="#%E6%8E%A8%E8%8D%90/%E4%B8%8D%E6%8E%A8%E8%8D%90">推荐/不推荐</a></h4>
 <div class="outline-text-4" id="text-%E6%8E%A8%E8%8D%90/%E4%B8%8D%E6%8E%A8%E8%8D%90">
 <p>
我可以说，如果你真的想要成为自己电脑的主人，理解PAM是没办法避免的。
也可以说为了理解PAM，本说明书是足够的。
所以我可以推荐它。
不能说这本书一定会很扩展你们的知识，但是它会扩展你的外部脑的操作逻辑一部分。
</p>
</div>
</div>

 <div id="outline-container-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F" class="outline-4">
 <h4 id="%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F"> <span class="section-number-4">1.4.3.</span>  <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">联系方式</a></h4>
 <div class="outline-text-4" id="text-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">
 <p>
如果您在此博客或其他页面中发现任何对您有用的内容，请订阅并打赏。
请您转发、分享和讨论，您的反馈可以帮助我变得更好。
</p>

 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-07-26_PAM-Mastery-by-Michael-W-Lucas-Chinese-Review.d/index.html"/>
  <id>https://lockywolf.net/2023-07-26_PAM-Mastery-by-Michael-W-Lucas-Chinese-Review.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A Review for &quot;Selinux System Administration&quot; by Sven Vermeulen</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A Review for "Selinux System Administration" by Sven Vermeulen</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E5%BA%8F%E8%A8%80">1. 序言</a></li>
 <li> <a href="#%E4%BB%80%E4%B9%88%E6%98%AFSELinux?">2. 什么是SELinux?</a></li>
 <li> <a href="#%E8%B0%83%E8%AF%95SELinux">3. 调试SELinux</a></li>
 <li> <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">4. 联系方式</a></li>
</ul></div>
</nav> <section id="outline-container-%E5%BA%8F%E8%A8%80" class="outline-2"> <h2 id="%E5%BA%8F%E8%A8%80"> <span class="section-number-2">1.</span>  <a href="#%E5%BA%8F%E8%A8%80">序言</a></h2>
 <div class="outline-text-2" id="text-%E5%BA%8F%E8%A8%80">
 <p>
说实在的关于Sven Vermeulen的“SELinux系统管理”（SELinux System Administration）我会写什么样的短评？
</p>

 <p>
我不能写作详细的评论，因为我没有从头到尾阅读整本书。
</p>

 <p>
我不能写作内容提要，因为这本书涉及的领域很宽，提到巨多不同的话题。
</p>

 <p>
我甚至都不会写清晰的HOWTO“如何使用SELinux，为了升级自己服务器的安全性”，因为，一则本任务太严重的依赖服务器的结构本身，其次因为这本书不包含所需要的信息。
</p>

 <p>
这本书到底是关于什么的内容？
</p>

 <p>
我上次写短评遇到这种困难的时候是三年前。
那时我在尝试写作我对“INCOSE Systems Engineering Handbook”的观点。
</p>

 <p>
一方面本书不包含坑爹内容，包括所有需要的，但是另一方面很难解释“它到底是关于什么”。
</p>

 <p>
可是，这一次我的问题不是在于这本书本身，而是在于它要讲解的话题。
</p>

 <p>
SELinux是很复杂的客体。
并且复杂在细节、容量方面，而不在算法复杂度方面。
SELinux有很多细节、特性，因为它被开发很久了。
一部分特性是为了补偿原来的模型的缺点而存在，一部分是为了让它跟其它的Linux分系统同步而存在，一部分本来就是不顺利的设计。
</p>

 <p>
也可以说此文本任务 – 不完全是为一本书的观点，而更多的是我尝试讲解“刚刚足够避免因系统坏了而纳闷的知识”, 并不是尝试评估书的内容品质。
</p>
</div>
</section> <section id="outline-container-%E4%BB%80%E4%B9%88%E6%98%AFSELinux?" class="outline-2"> <h2 id="%E4%BB%80%E4%B9%88%E6%98%AFSELinux?"> <span class="section-number-2">2.</span>  <a href="#%E4%BB%80%E4%B9%88%E6%98%AFSELinux?">什么是SELinux?</a></h2>
 <div class="outline-text-2" id="text-%E4%BB%80%E4%B9%88%E6%98%AFSELinux?">
 <p>
大部分SELinux说明书从“SELinux是Linux内核安全性模块之一”开始。
这里“模块”不是“可以在内核加载客体文件”，而是“实现某些接口的代码，跟某些其他代码可以互换”。
从某一方面来说这个是实话，因为除了SELinux以外，还有其他的“安全性模块”，比如AppArmor.
</p>

 <p>
反之，只有内核代码不能完全实现整个SELinux，还需要用户等代码。
而且除了最明显的的调试SELinux的方法（通过GNU Coreutils）以外，PAM，systemd，dbus，ipsec等工具都有某些SELinux支持。
</p>

 <p>
什么鬼？这是什么样的怪物？
</p>

 <p>
可是SELinux确实是这样，从头到尾贯穿整个系统。
因为如果不是这样，就不能构造无所不包的安全系统。
</p>

 <p>
这到底是什么？
</p>

 <p>
大概的说，SELinux是专门被发明的规范化系统，被用来使用一种很详细的语言描述“谁被允许做什么”。
</p>

 <p>
这个定义也不是很容易理解吗？
</p>

 <p>
换句话，Linux内核有一个“窄处”。
在该“窄处”，“某事”，被标为“某标签”，在“某客体”上，执行“某操作”。
同时Linux内核会判断是否允许这个操作。
</p>


 <p>
还是很抽象吗？
</p>

 <p>
我举个例子。
</p>

 <p>
大部分时间“某事”是一个进程。
这里还有一个微妙的事情，因为我们一般情况下要分辨系统进程和用户进程，虽然理论上它们没有区别，都是程序。
例如在这种情况下，我们至少会遇到“进程标签”（“系统的”还是“用户的”）。
但结果是，SELinux开发者，花费很长时间开发之后，却让管理员遇到：“用户标签”，“角色标签”，“进程标签”。
但是，不要认为这三个标签有固定的定义，比如不要认为“用户标签”有相符的系统用户名，或“进程标签”有相符的系统服务名，虽然在RedHat系统上确实是这样。
</p>


 <p>
典型的“客体”是一个文件。
它也具有三个标签，但是对于文件来说，这标签的意义更是令人困惑。
在很多案例中，只有第三个标签“上下文”有某些意义。
标签文件是在文件系统"扩展属性"中存储的， 但并不完全是这样。
</p>

 <p>
不幸的是，这个“并不完全是这样”贯穿整个SELinux分系统。
事实上，标签来自专门设置的文件夹，/etc/selinux，并且还有特殊的命令，叫做“restorecon”，把在该文件夹定义的标签分配在全部文件上。
</p>

 <p>
为什么需要这么做？
难道是由于速度的原因？
或者为了让用户改换文件标签，但不允许它改变/etc/selinux内的文件？
</p>

 <p>
其他的客体类型会是…任何物!
比如，tcp-ip端口、ipsec网络包、dbus服务。
在最后一个例子，内核不会参加SELinux验证，但特殊代码库会。
</p>

 <p>
然而，连内核和特殊代码库都应该有某些方法理解什么被允许和什么被禁止。
（在SELinux默认设置中，所有的事情都是被禁止的，所以很容易搞错，禁止自己管理系统。）
每个激活SELinux的系统一般都有/etc/selinux目录，含有很多政策文件，在此文件某些“政策写者”应该使用专门的语言很详细的，一步一步，一文件一文件，一用户一用户，说明准确的标签互动。
</p>

 <p>
天真的年轻人，我开始阅读Sven Vermeulen的书的时候，我以为，读完一章导语之后，我大部分时间会用来写作几个“教练政策”。
</p>

 <p>
并非如此。讲解写作政策的话，这个Sven Vermeulen还有第二本书籍—SELinux Cookbook—几乎完全针对写作政策。
虽然我在这本“短评”中说“专门的语言”，但是事实上这本书还提到了其他两个不同的政策语言。
非常疲劳的过程，该过程唯一的好处是这三个语言之一与Lisp相似。
</p>

 <p>
事实上没有人自己写这种政策，除了很少的例子以外。
大部分政策通过两个方法来到系统：要么RedHat工程师已经为你提供政策包，那只需要安装该政策包，（并且查看政策代码不是那么简单！政策包是二进制文件！），要么你会使用魔法命令“audit2allow”, 基于最近的违反安全政策的案例，它会为你生成允许性政策。
这个政策既可能不准，又可能效率低，但是它会帮助你“立刻启动”你的服务。
</p>

 <p>
一般来说，还有seinfo和sesearch命令，它们能检查存在的政策规定，但是我认为，调试SELinux政策非常的难。
</p>
</div>
</section> <section id="outline-container-%E8%B0%83%E8%AF%95SELinux" class="outline-2"> <h2 id="%E8%B0%83%E8%AF%95SELinux"> <span class="section-number-2">3.</span>  <a href="#%E8%B0%83%E8%AF%95SELinux">调试SELinux</a></h2>
 <div class="outline-text-2" id="text-%E8%B0%83%E8%AF%95SELinux">
 <p>
总之, 如果大部分系统管理员不写作政策代码，并且这本书只包括一个关于政策的章节，那么这本书到底是关于什么？
</p>

 <p>
它讲解了很多在使用SELinux可以遇到的细节。
</p>

 <p>
比如“selinux boolean”。
这是一些（在政策里被定义的）变量，按照该变量，政策会改变自己的行为。
它们有什么意义？
为什么不可以直接写另外一个政策呢？
表面上，是因为默认的政策是一个二进制模块，而且普通的系统管理员不会写政策。
</p>


 <p>
此外，这本书还讲解了如何全部关闭或者打开SELinux的分系统，或者如何激活permissive模式。
该模式下SELinux会记录违反案例，但是不会阻止。
</p>

 <p>
讨论文件上下文的话，matchpathcon、chcon、runcon、让用户监视，检查和验证路径标签等命令，被讲解的比较好。
</p>

 <p>
某些分系统帮助内核在不同的客体上设定准确的上下文，其中有systemd, dbus, PAM都是Linux内核没办法直接触碰到的同等分系统。
这本书也比较详细的描述了此互动。
</p>

 <p>
整一章描述SELinux和Docker或libvirt的合作。
最初看来，这似乎是冗余的，因为毕竟docker和libvirt中包括依靠系统层隔离的安全性用法，即使是为了避免太详细的设定安全情况。
不过，知道此功能存在也有用。
</p>


 <p>
有一个事情，这本书基本不覆盖。
是跟安卓相关的SELinux用法。
基于显性的判断，安卓是第二个SELinux用例，但是基于设备数可能是第一个。
不过，这本书关于安卓的内容介绍非常的少，因此这个知识需要在其它书中查阅。
</p>

 <p>
总结，根据我的猜测，为了完全理解SELinux,需要至少阅读5本书：
</p>

 <ol class="org-ol"> <li>SELinux System Administration by Sven Vermeulen</li>
 <li>SELinux Cookbook by Sven Vermeulen</li>
 <li>SELinux Notebook by SELinux community</li>
 <li>RedHat SELinux Administration Guide</li>
 <li>Android SELinux Documentation</li>
</ol> <p>
很多？确实很多。
</p>

 <p>
最后，我要总结本“准”短评，我应该说，我没有找到在小范围内就可以开始使用SELinux的方法。
也许，作为幼儿园的案例，你可以隔离化nginx,把它安装在标准的Redhat系统上，然后打开默认的政策。
从而在自己的简历上加一行“有SELinux的经验”。
但是我不会把这个算作良好的成就。
</p>
</div>
</section> <section id="outline-container-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F" class="outline-2"> <h2 id="%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F"> <span class="section-number-2">4.</span>  <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">联系方式</a></h2>
 <div class="outline-text-2" id="text-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">
 <p>
如果您在此博客或其他页面中发现任何对您有用的内容，请订阅并打赏。
请您转发、分享和讨论，您的反馈可以帮助我变得更好。
</p>

 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-08-04_Selinux-System-Administration-by-Sven-Vermeulen_Review_Chinese.d/index.html"/>
  <id>https://lockywolf.net/2023-08-04_Selinux-System-Administration-by-Sven-Vermeulen_Review_Chinese.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A Review for &quot;Selinux System Administration&quot; by Sven Vermeulen, Russian Version</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A Review for «Selinux System Administration» by Sven Vermeulen, Russian Version</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Содержание</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5">1. Введение</a></li>
 <li> <a href="#%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-SELinux?">2. Что такое SELinux?</a></li>
 <li> <a href="#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-SELinux">3. Настройка SELinux</a></li>
</ul></div>
</nav> <section id="outline-container-%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5" class="outline-2"> <h2 id="%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"> <span class="section-number-2">1.</span>  <a href="#%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5">Введение</a></h2>
 <div class="outline-text-2" id="text-%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5">
 <p>
Что я могу, собственно, написать про книгу Свена Вермёлена «Системное Администрирование SELinux»?
</p>

 <p>
Я не могу написать тщательного обзора, потому что я не прочитал сию книгу от корки до корки.
</p>

 <p>
Я не могу написать краткого содержания, потому что сама по себе книга очень обширная, и включает огромное количество разных тем.
</p>

 <p>
Я не могу написать даже внятного хауту «как использовать SELinux, чтобы обезопасить собственный сервер», потому что во-первых, это слишком уж сильно зависит от того, как ваш сервер устроен, и во-вторых, потому что в книге недостаточно для этого информации.
</p>

 <p>
О чём же вообще эта книга?
</p>

 <p>
В последний раз подобные трудности в написании обзора на книгу возникли у меня года три назад, когда я пытался написать ревью на INCOSE Systems Engineer Handbook.
</p>

 <p>
С одной стороны, книга, вроде как, не содержит лажи, включает всё нужное, но при этом очень трудно рассказать «о чём вообще она».
</p>

 <p>
Однако, в данном случае, как кажется, проблема состоит не в книге как таковой, а в материале.
</p>

 <p>
SELinux – сложная штука.
Причём, сложная именно в смысле изощрённости, объёмности, а не в смысле алгоритмической трудности.
У неё крайне много деталей и странностей, которые были добавленны в неё разработчиками за много лет существования самой сущности.
Часть этих сложностей была добавлена для того, чтобы скомпенсировать недостатки базовой модели, часть для того, чтобы синхронизировать модель с другими подсистемами Linux-системы, а часть – просто изначально неудачный дизайн.
</p>

 <p>
В каком-то смысле, этот текст – не столько обзор на книгу, сколько моя попытка изложить «количество SELinux, достаточное для того, чтоб не недоумевать что ничего не работает», а не попытка по-настоящему оценить качество книги как мануала.
</p>
</div>
</section> <section id="outline-container-%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-SELinux?" class="outline-2"> <h2 id="%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-SELinux?"> <span class="section-number-2">2.</span>  <a href="#%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-SELinux?">Что такое SELinux?</a></h2>
 <div class="outline-text-2" id="text-%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-SELinux?">
 <p>
Большинство мануалов по SELinux начинаются с того, что рассказывают, что SELinux – это «модуль безопасности» в ядре Linux.
В данном случае слово «модуль» не стоит понимать как «загружаемый в ядро объектный файл», а как «код, реализующий некоторый интерфейс, взаимозаменяемый с другим кодом».
Это будет в некотором смысле правдой, потому что кроме SELinux существуют также и другие модули безопасности, например, AppArmor.
</p>

 <p>
С другой стороны, ядерный код реализует SELinux не полностью, требуется ещё поддержка со стороны пользовательского кода.
Более того, кроме очевидного интерфейса для настройки SELinux через расширения GNU Coreutils, существует ещё поддержка SELinux в PAM, systemd, dbus и ipsec.
</p>

 <p>
Вот это да! Да что же это за монстр-то такой получается?
</p>

 <p>
Однако, так и есть, SELinux пронизывает всю систему насквозь, ведь, кажется, без этого невозможно построить никакой по-настоящему всеобъемлющей системы безопасности?
</p>

 <p>
Так что же это всё-таки такое?
</p>

 <p>
Грубо говоря, это система спецификации «кому что разрешено», на очень детальном и подробном языке описания.
</p>

 <p>
Тоже непонятно звучит, так ведь?
</p>

 <p>
Грубо говоря, в ядре Linux есть некоторое «узкое место», на котором «кто-то», помеченный некоторыми метками, делает «что-то» над «чем-то», также помеченным метками.
Далее ядро решает, следует ли разрешить, или запретить данную операцию.
</p>

 <p>
Звучит крайне абстрактно?
</p>

 <p>
Приведём пример.
</p>

 <p>
«Кто» – это, в подавляющем большинстве случаев «процесс».
И тут тоже возникает тонкость, потому что зачастую хочется разделять системные процессы и пользовательские процессы, хотя фундаментально между ними нет никакой разницы, ну программы и программы.
Вот тут, например, может как раз и возникнуть «метка процесса» «пользовательский» или «системный».
</p>

 <p>
В итоге разработчики SELinux писали-писали, да в итоге добавили не просто одну метку, а целых три – «пользователь», «роль», и «метка процесса».
Совершенно не следует думать, что значения этих меток жёстко определены, и что пользователь и в самом деле соответствует системному пользователю, а метка процесса соответствует системному сервису, хотя в RedHat как раз примерно так и предусмотренно.
</p>

 <p>
Типичный «объект» – это файл. У него тоже может быть три метки, однако, в случае файлов их значение ещё более туманно.
Зачастую используется только третья метка «метка объекта».
Для файлов, метки хранятся в «расширенных атрибутах» системы… но не совсем.
</p>

 <p>
К сожалению, это «не совсем» пронизывает всю SELinux-подсистему сверху донизу.
На самом деле, метки хранятся в специальном подкаталоге каталога /etc/selinux, и существует специальная команда restorecon, предназначенная разложить эти метки по расширенным атрибутам.
</p>

 <p>
Зачем так нужно?
Ну, видимо, для скорости?
И для того, чтобы пользователю можно было разрешить менять метки файлов, не разрешая писать в каталог внутри /etc?
Другими объектами может являться … что угодно!
Например, порты tcp-ip, или пакеты ipsec, или сервисы dbus.
В последнем случае верификацией операций вообще будет заниматься не ядро, а специальная библиотека.
</p>

 <p>
Тем не менее, и ядро, и специальная библиотека как-то должны понимать, что и когда разрешать.
(В SELinux по-умолчанию всё запрещено, поэтому налажать, и запретить самому себе администрировать систему крайне легко.)
Для этого существует целый каталог /etc/selinux, в котором крайне подробно, с множеством мелких подробностей, шаг за шагом, файл за файлом, операция за операцией, пользователь за пользователем, некоторый «автор политики» должен описать правильное взаимодействие меток.
</p>

 <p>
«Наивный юноша», когда я начинал читать книгу Свена Вермёлена, я думал, что после одной главы введения, я буду большую часть времени как раз и писать всякие «учебные политики».
</p>

 <p>
Ничего подобного. Для написания политик у того же самого Свена есть  <span class="underline">вторая</span> книга (SELinux Cookbook), практически полностью посвящённая написанию политик.
Но даже в книге, которую я «якобы обозреваю», указано, что существует ажно целых  <span class="underline">три</span> языка, на которых эти политики пишутся.
Крайне трудоёмкий процесс, в которым единственным светлым пятном является то, что один из этих языков похож немного на Lisp.
</p>

 <p>
В реальности эти политики никто не пишет сам, за редчайшими исключениями.
Большая часть политик появляется в системе двумя путями – либо инженеры RedHat уже написали их за вас, просто устанавливаете пакет (причём просто так посмотреть политику, прочитав код нельзя! политики поставляются в двоичных файлах!), либо вы используете магическую команду audit2allow, которая сгенерит политику, основанную на недавних запретах, для вас.
Эта политика будет плоха и неэффективна, но по райней мере вы сможете заставить нужный вам процесс работать «прямо сейчас».
</p>

 <p>
Вообще говоря, существуют команды seinfo и sesearch, которые позволяют проверить, какие именно правила существуют в политиках, загруженных сейчас, но, стоит повторить, отлаживать политики selinux – крайне нетривиальная задача.
</p>
</div>
</section> <section id="outline-container-%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-SELinux" class="outline-2"> <h2 id="%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-SELinux"> <span class="section-number-2">3.</span>  <a href="#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-SELinux">Настройка SELinux</a></h2>
 <div class="outline-text-2" id="text-%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-SELinux">
 <p>
Итак, если большая часть системных администраторов политики не пишет, в книге про написание политик единственная глава, то о чём же вообще эта книга?
</p>

 <p>
В книге рассказывается про очень много подробностей применения SELinux, не требующих непосредственного написания политик.
</p>

 <p>
Например, есть такая вещь как selinux boolean.
Это (определяемые в политиках) переменные, в зависимости от которых политики могут вести себя по-разному.
Зачем они вообще нужны?
Почему нельзя просто написать другую политику?
Ну, видимо, как раз потому, что политика по-умолчанию поставляется в двоичном виде и недоступна для редактирования обычному администратору.
</p>

 <p>
Также в книге рассказывается, например, как сделать так, чтобы у UNIX-пользователя был правильный SELinux-пользователь при запуске процесса, и да, к сожалению, это требуется делать вручную.
</p>

 <p>
Рассказывается, как включить или отключить SELinux целиком, или включить его в permissive режиме, когда нарушения политик только учитываются, но не пресекаются.
</p>

 <p>
Довольно хорошо изложена тема файловых контекстов, с командами matchpathcon, chcon, runcon, позволяющими проверять, какими метками должен обладать какой объект.
</p>

 <p>
Также вкратце изложено взаимодействие SELinux с некоторыми подсистемами Linux, которые помогуют устанавливать правильные контексты на объекты, до которых ядро не может «дотянуться», такими как systemd, dbus, PAM.
</p>

 <p>
Целая глава посвящена взаимодействию SELinux с Docker и libvirt.
Честно говоря, на первый взгляд, это кажется излишним, потому что для того Docker и libvirt и придумывались, в частности, чтобы не заниматься излишней детализацией безопасности, положившись на изоляцию, однако, полезно знать, что таковая поддержка существует.
</p>

 <p>
О чём в книге не сказано почти ничего, это о том, как работать с SELinux на Android.
Android – это второй по очевидности кейс применения SELinux, а по числу устройств, быть может, и первый.
Тем не менее, про него в книге сказано очень мало, и эти знания надо добирать из каких-то других источников.
</p>

 <p>
В итоге, по моим подсчётам получается, что для того, чтобы хорошо понимать SELinux, нужно прочитать как минимум 5 книг:
</p>

 <ol class="org-ol"> <li>SELinux System Administration by Sven Vermeulen</li>
 <li>SELinux Cookbook by Sven Vermeulen</li>
 <li>SELinux Notebook by SELinux community</li>
 <li>RedHat SELinux Administration Guide</li>
 <li>Android SELinux Documentation</li>
</ol> <p>
Много? Много.
</p>

 <p>
И в завершение этого обзора-необзора, могу сказать, что какого-нибудь способа начать
использовать SELinux «малой кровью» я не нашёл.
То есть, вероятно, в качестве «детского примера» можно заизолировать nginx, установленный на стандартном RedHat, с помощью стандартной политики, и получить таким образом галочку в резюме, однако, я лично не стал бы считать это настоящим достижением.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-08-04_Selinux-System-Administration-by-Sven-Vermeulen_Review_Chinese.d/russian.html"/>
  <id>https://lockywolf.net/2023-08-04_Selinux-System-Administration-by-Sven-Vermeulen_Review_Chinese.d/russian.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Using Maxima to solve certain mathematical problems. (Russian)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Using Maxima to solve certain mathematical problems. (Russian)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Содержание</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#todos-%5B0/1%5D">1.  <span class="todo TODO">TODO</span> todos  <code>[0/1]</code></a></li>
 <li> <a href="#%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5">2. Решение</a>
 <ul> <li> <a href="#%D0%9D%D0%B0%D0%B9%D1%82%D0%B8-20-%D0%BE%D1%80%D1%82%D0%BE%D0%B3%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%BF%D0%BE%D0%BB%D0%B8%D0%BD%D0%BE%D0%BC%D0%BE%D0%B2-(0-19)-%D0%9B%D0%B5%D0%B6%D0%B0%D0%BD%D0%B4%D1%80%D0%B0">2.1. Найти 20 ортогональных полиномов (0-19) Лежандра</a>
 <ul> <li> <a href="#%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%83-%D0%A0%D0%BE%D0%B4%D1%80%D0%B8%D0%B3%D0%B0">2.1.1. Используя формулу Родрига</a></li>
 <li> <a href="#%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D1%80%D0%B5%D0%BA%D1%83%D1%80%D1%80%D0%B5%D0%BD%D1%82%D0%BD%D1%83%D1%8E-%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%83">2.1.2. Используя рекуррентную формулу</a></li>
 <li> <a href="#%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D1%8F%D1%89%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E">2.1.3. Используя производящую функцию</a></li>
 <li> <a href="#%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E-%D0%B8%D0%BB%D0%B8-%D0%B2%D1%8B%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D1%83%D1%8E-%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E">2.1.4. Используя гипергеометрическую функцию или вырожденную гипергеометрическую функцию</a></li>
 <li> <a href="#%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B8%D1%82%D1%8C-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%8B">2.1.5. Сравнить ответы</a></li>
 <li> <a href="#%D0%A1%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%8C-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%B2-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%83">2.1.6. Собрать скорость работы в таблицу</a></li>
</ul></li>
 <li> <a href="#%D0%A1%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8E-%D0%BD%D0%B0-%D1%8F%D0%B7%D1%8B%D0%BA-%D0%A1%D0%B8-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B-%D0%BD%D0%B0-Maxima">2.2. Сделать трансляцию на язык Си программы на Maxima</a></li>
 <li> <a href="#%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B">2.3. Векторы состояния и линейные операторы</a></li>
 <li> <a href="#%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B-1">2.4. Векторы состояния и линейные операторы</a></li>
 <li> <a href="#%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B0%D1%8F-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0.-%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D1%83%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%B0%D0%BB%D1%8B%D1%85-%D0%B0%D0%BA%D1%81%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%B2%D0%BE%D0%B7%D0%BC%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D0%B9-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F-%D0%A8%D0%B2%D0%B0%D1%80%D1%86%D1%88%D0%B8%D0%BB%D1%8C%D0%B4%D0%B0-%D0%B2-%D0%9E%D0%A2%D0%9E.">2.5. Большая задача. Получить спектральное уравнение для малых аксиальных возмущений решения Шварцшильда в ОТО.</a></li>
</ul></li>
 <li> <a href="#%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5">3. Заключение</a></li>
</ul></div>
</nav> <table> <caption class="t-above"> <span class="table-number">Таблица 1.:</span> Clock summary at  <span class="timestamp-wrapper"> <span class="timestamp">[2023-08-27 Sun 23:42]</span></span></caption>

 <colgroup> <col class="org-left"></col> <col class="org-right"></col> <col class="org-right"></col> <col class="org-right"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">Headline</th>
 <th scope="col" class="org-right">Time</th>
 <th scope="col" class="org-right"> </th>
 <th scope="col" class="org-right"> </th>
</tr></thead> <tbody> <tr> <td class="org-left"> <b>Total time</b></td>
 <td class="org-right"> <b>13:04</b></td>
 <td class="org-right"> </td>
 <td class="org-right"> </td>
</tr></tbody> <tbody> <tr> <td class="org-left">Решение</td>
 <td class="org-right">13:04</td>
 <td class="org-right"> </td>
 <td class="org-right"> </td>
</tr> <tr> <td class="org-left">  Найти 20 ортогональных полиномов…</td>
 <td class="org-right"> </td>
 <td class="org-right">11:25</td>
 <td class="org-right"> </td>
</tr> <tr> <td class="org-left">    Используя формулу Родрига</td>
 <td class="org-right"> </td>
 <td class="org-right"> </td>
 <td class="org-right">3:55</td>
</tr> <tr> <td class="org-left">    Используя рекуррентную формулу</td>
 <td class="org-right"> </td>
 <td class="org-right"> </td>
 <td class="org-right">0:47</td>
</tr> <tr> <td class="org-left">    Используя производящую функцию</td>
 <td class="org-right"> </td>
 <td class="org-right"> </td>
 <td class="org-right">1:27</td>
</tr> <tr> <td class="org-left">    Используя гипергеометрическую функцию…</td>
 <td class="org-right"> </td>
 <td class="org-right"> </td>
 <td class="org-right">5:16</td>
</tr> <tr> <td class="org-left">  Сделать трансляцию на язык Си…</td>
 <td class="org-right"> </td>
 <td class="org-right">1:39</td>
 <td class="org-right"> </td>
</tr></tbody></table> <p>
В этом файле я бы хотел решить несколько задач по математике с использованием системы символьных вычислений Maxima. Задачи взяты из учебника «Ильина-Силаев».
</p>

 <section id="outline-container-todos-%5B0/1%5D" class="outline-2"> <h2 id="todos-%5B0/1%5D"> <span class="section-number-2">1.</span>  <a href="#todos-%5B0/1%5D"> <span class="todo TODO">TODO</span> todos  <code>[0/1]</code></a></h2>
 <div class="outline-text-2" id="text-todos-%5B0/1%5D">
 <ol class="org-ol"> <li class="off"> <input type="checkbox"></input> wrapping of formulas</li>
</ol></div>
</section> <section id="outline-container-%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5" class="outline-2"> <h2 id="%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5"> <span class="section-number-2">2.</span>  <a href="#%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5">Решение</a></h2>
 <div class="outline-text-2" id="text-%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5">
</div>

 <div id="outline-container-%D0%9D%D0%B0%D0%B9%D1%82%D0%B8-20-%D0%BE%D1%80%D1%82%D0%BE%D0%B3%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%BF%D0%BE%D0%BB%D0%B8%D0%BD%D0%BE%D0%BC%D0%BE%D0%B2-(0-19)-%D0%9B%D0%B5%D0%B6%D0%B0%D0%BD%D0%B4%D1%80%D0%B0" class="outline-3">
 <h3 id="%D0%9D%D0%B0%D0%B9%D1%82%D0%B8-20-%D0%BE%D1%80%D1%82%D0%BE%D0%B3%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%BF%D0%BE%D0%BB%D0%B8%D0%BD%D0%BE%D0%BC%D0%BE%D0%B2-(0-19)-%D0%9B%D0%B5%D0%B6%D0%B0%D0%BD%D0%B4%D1%80%D0%B0"> <span class="section-number-3">2.1.</span>  <a href="#%D0%9D%D0%B0%D0%B9%D1%82%D0%B8-20-%D0%BE%D1%80%D1%82%D0%BE%D0%B3%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%BF%D0%BE%D0%BB%D0%B8%D0%BD%D0%BE%D0%BC%D0%BE%D0%B2-(0-19)-%D0%9B%D0%B5%D0%B6%D0%B0%D0%BD%D0%B4%D1%80%D0%B0">Найти 20 ортогональных полиномов (0-19) Лежандра</a></h3>
 <div class="outline-text-3" id="text-%D0%9D%D0%B0%D0%B9%D1%82%D0%B8-20-%D0%BE%D1%80%D1%82%D0%BE%D0%B3%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%BF%D0%BE%D0%BB%D0%B8%D0%BD%D0%BE%D0%BC%D0%BE%D0%B2-(0-19)-%D0%9B%D0%B5%D0%B6%D0%B0%D0%BD%D0%B4%D1%80%D0%B0">
</div>

 <div id="outline-container-%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%83-%D0%A0%D0%BE%D0%B4%D1%80%D0%B8%D0%B3%D0%B0" class="outline-4">
 <h4 id="%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%83-%D0%A0%D0%BE%D0%B4%D1%80%D0%B8%D0%B3%D0%B0"> <span class="section-number-4">2.1.1.</span>  <a href="#%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%83-%D0%A0%D0%BE%D0%B4%D1%80%D0%B8%D0%B3%D0%B0">Используя формулу Родрига</a></h4>
 <div class="outline-text-4" id="text-%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%83-%D0%A0%D0%BE%D0%B4%D1%80%D0%B8%D0%B3%D0%B0">
 <p>
Формула Родрига:  <a href="https://en.wikipedia.org/wiki/Rodrigues%27_formula">https://en.wikipedia.org/wiki/Rodrigues%27_formula</a>
</p>

 <p>
\[ \frac{(-1)^{n}}{2^{n}\cdot n!} \frac{\partial}{dx}(1 - x^{2})^{n} \]
</p>

 <div class="org-src-container">
 <pre class="src src-maxima" id="org683acb4">P_rodrigues[n]:= ev(((-1)^n)/((2^n) * (n!)) * diff((1 - x^2)^n, x, n), diff, expand);
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-maxima">P_rodrigues[n]:= ev(((-1)^n)/((2^n) * (n!)) * diff((1 - x^2)^n, x, n), diff, expand);
for i:0 thru 19 do ( simp:true, fr:rat(P_rodrigues[i]),
		     simp:false, tex((1/denom(fr)) * num(fr)));
</pre>
</div>

 <p>
\[ {{1}\over{1}}\,1 \]
\[ {{1}\over{1}}\,x \]
\[ {{1}\over{2}}\,\left(3\,x^2-1\right) \]
\[ {{1}\over{2}}\,\left(5\,x^3-3\,x\right) \]
\[ {{1}\over{8}}\,\left(35\,x^4-30\,x^2+3\right) \]
\[ {{1}\over{8}}\,\left(63\,x^5-70\,x^3+15\,x\right) \]
\[ {{1}\over{16}}\,\left(231\,x^6-315\,x^4+105\,x^2-5\right) \]
\[ {{1}\over{16}}\,\left(429\,x^7-693\,x^5+315\,x^3-35\,x\right) \]
\[ {{1}\over{128}}\,\left(6435\,x^8-12012\,x^6+6930\,x^4-1260\,x^2+35
 \right) \]
\[ {{1}\over{128}}\,\left(12155\,x^9-25740\,x^7+18018\,x^5-4620\,x^3+
 315\,x\right) \]
\[ {{1}\over{256}}\,\left(46189\,x^{10}-109395\,x^8+90090\,x^6-30030
 \,x^4+3465\,x^2-63\right) \]
\[ {{1}\over{256}}\,\left(88179\,x^{11}-230945\,x^9+218790\,x^7-90090
 \,x^5+15015\,x^3-693\,x\right) \]
\[ {{1}\over{1024}}\,\left(676039\,x^{12}-1939938\,x^{10}+2078505\,x^
 8-1021020\,x^6+225225\,x^4-18018\,x^2+231\right) \]
\[ {{1}\over{1024}}\,\left(1300075\,x^{13}-4056234\,x^{11}+4849845\,x
 ^9-2771340\,x^7+765765\,x^5-90090\,x^3+3003\,x\right) \]
\[ {{1}\over{2048}}\,\left(5014575\,x^{14}-16900975\,x^{12}+22309287
 \,x^{10}-14549535\,x^8+4849845\,x^6-765765\,x^4+45045\,x^2-429
 \right) \]
\[ {{1}\over{2048}}\,\left(9694845\,x^{15}-35102025\,x^{13}+50702925
 \,x^{11}-37182145\,x^9+14549535\,x^7-2909907\,x^5+255255\,x^3-6435\,
 x\right) \]
Unable to evaluate predicate 1 + (1 + (1
</p>
 <ul class="org-ul"> <li>(1 + (1 + (1 + (1 + (1 + (1 + (1 + (1</li>
 <li>(1 + (1 + (1 + (1 + (1 + 0))))))))))))))) > 19</li>
</ul> <p>
– an error. To debug this try: debugmode(true);
</p>


 <p>
Очень любопытно, что на степени 16 случилось переполнение непонятно чего.
</p>

 <div class="org-src-container">
 <pre class="src src-maxima">P_rodrigues[n]:= ev(((-1)^n)/((2^n) * (n!)) * diff((1 - x^2)^n, x, n), diff, expand);
  for i:0 thru 19 do tex(P_rodrigues[i]);
</pre>
</div>

 <p>
\[ 1 \]
\[ x \]
\[ {{3\,x^2}\over{2}}-{{1}\over{2}} \]
\[ {{5\,x^3}\over{2}}-{{3\,x}\over{2}} \]
\[ {{35\,x^4}\over{8}}-{{15\,x^2}\over{4}}+{{3}\over{8}} \]
\[ {{63\,x^5}\over{8}}-{{35\,x^3}\over{4}}+{{15\,x}\over{8}} \]
\[ {{231\,x^6}\over{16}}-{{315\,x^4}\over{16}}+{{105\,x^2}\over{16}}-
 {{5}\over{16}} \]
\[ {{429\,x^7}\over{16}}-{{693\,x^5}\over{16}}+{{315\,x^3}\over{16}}-
 {{35\,x}\over{16}} \]
\[ {{6435\,x^8}\over{128}}-{{3003\,x^6}\over{32}}+{{3465\,x^4}\over{
 64}}-{{315\,x^2}\over{32}}+{{35}\over{128}} \]
\[ {{12155\,x^9}\over{128}}-{{6435\,x^7}\over{32}}+{{9009\,x^5}\over{
 64}}-{{1155\,x^3}\over{32}}+{{315\,x}\over{128}} \]
\[ {{46189\,x^{10}}\over{256}}-{{109395\,x^8}\over{256}}+{{45045\,x^6
 }\over{128}}-{{15015\,x^4}\over{128}}+{{3465\,x^2}\over{256}}-{{63
 }\over{256}} \]
\[ {{88179\,x^{11}}\over{256}}-{{230945\,x^9}\over{256}}+{{109395\,x^
 7}\over{128}}-{{45045\,x^5}\over{128}}+{{15015\,x^3}\over{256}}-{{
 693\,x}\over{256}} \]
\[ {{676039\,x^{12}}\over{1024}}-{{969969\,x^{10}}\over{512}}+{{
 2078505\,x^8}\over{1024}}-{{255255\,x^6}\over{256}}+{{225225\,x^4
 }\over{1024}}-{{9009\,x^2}\over{512}}+{{231}\over{1024}} \]
\[ {{1300075\,x^{13}}\over{1024}}-{{2028117\,x^{11}}\over{512}}+{{
 4849845\,x^9}\over{1024}}-{{692835\,x^7}\over{256}}+{{765765\,x^5
 }\over{1024}}-{{45045\,x^3}\over{512}}+{{3003\,x}\over{1024}} \]
\[ {{5014575\,x^{14}}\over{2048}}-{{16900975\,x^{12}}\over{2048}}+{{
 22309287\,x^{10}}\over{2048}}-{{14549535\,x^8}\over{2048}}+{{4849845
 \,x^6}\over{2048}}-{{765765\,x^4}\over{2048}}+{{45045\,x^2}\over{
 2048}}-{{429}\over{2048}} \]
\[ {{9694845\,x^{15}}\over{2048}}-{{35102025\,x^{13}}\over{2048}}+{{
 50702925\,x^{11}}\over{2048}}-{{37182145\,x^9}\over{2048}}+{{
 14549535\,x^7}\over{2048}}-{{2909907\,x^5}\over{2048}}+{{255255\,x^3
 }\over{2048}}-{{6435\,x}\over{2048}} \]
\[ {{300540195\,x^{16}}\over{32768}}-{{145422675\,x^{14}}\over{4096}}
 +{{456326325\,x^{12}}\over{8192}}-{{185910725\,x^{10}}\over{4096}}+
 {{334639305\,x^8}\over{16384}}-{{20369349\,x^6}\over{4096}}+{{
 4849845\,x^4}\over{8192}}-{{109395\,x^2}\over{4096}}+{{6435}\over{
 32768}} \]
\[ {{583401555\,x^{17}}\over{32768}}-{{300540195\,x^{15}}\over{4096}}
 +{{1017958725\,x^{13}}\over{8192}}-{{456326325\,x^{11}}\over{4096}}+
 {{929553625\,x^9}\over{16384}}-{{66927861\,x^7}\over{4096}}+{{
 20369349\,x^5}\over{8192}}-{{692835\,x^3}\over{4096}}+{{109395\,x
 }\over{32768}} \]
\[ {{2268783825\,x^{18}}\over{65536}}-{{9917826435\,x^{16}}\over{
 65536}}+{{4508102925\,x^{14}}\over{16384}}-{{4411154475\,x^{12}
 }\over{16384}}+{{5019589575\,x^{10}}\over{32768}}-{{1673196525\,x^8
 }\over{32768}}+{{156165009\,x^6}\over{16384}}-{{14549535\,x^4}\over{
 16384}}+{{2078505\,x^2}\over{65536}}-{{12155}\over{65536}} \]
\[ {{4418157975\,x^{19}}\over{65536}}-{{20419054425\,x^{17}}\over{
 65536}}+{{9917826435\,x^{15}}\over{16384}}-{{10518906825\,x^{13}
 }\over{16384}}+{{13233463425\,x^{11}}\over{32768}}-{{5019589575\,x^9
 }\over{32768}}+{{557732175\,x^7}\over{16384}}-{{66927861\,x^5}\over{
 16384}}+{{14549535\,x^3}\over{65536}}-{{230945\,x}\over{65536}} \]
</p>
</div>
</div>

 <div id="outline-container-%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D1%80%D0%B5%D0%BA%D1%83%D1%80%D1%80%D0%B5%D0%BD%D1%82%D0%BD%D1%83%D1%8E-%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%83" class="outline-4">
 <h4 id="%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D1%80%D0%B5%D0%BA%D1%83%D1%80%D1%80%D0%B5%D0%BD%D1%82%D0%BD%D1%83%D1%8E-%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%83"> <span class="section-number-4">2.1.2.</span>  <a href="#%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D1%80%D0%B5%D0%BA%D1%83%D1%80%D1%80%D0%B5%D0%BD%D1%82%D0%BD%D1%83%D1%8E-%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%83">Используя рекуррентную формулу</a></h4>
 <div class="outline-text-4" id="text-%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D1%80%D0%B5%D0%BA%D1%83%D1%80%D1%80%D0%B5%D0%BD%D1%82%D0%BD%D1%83%D1%8E-%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%83">
 <p>
Рекуррентная формула, взятая из того же самого учебного пособия Ильина-Силаев:
</p>

 <p>
\[(n+1)P_{n+1} = (2n + 1)xP_{n}-nP_{n-1}\]
</p>

 <p>
Рекурсия неплохо работает с мемоизацией, по-идее.
Давайте попробуем помемоизировать.
</p>

 <p>
\[n P_{n} = (2n-1)xP_{n-1}-(n-1)P_{n-2}\]
</p>

 <div class="org-src-container">
 <pre class="src src-maxima" id="org171945a">P_recurrent[n] := expand(((2*n - 1)*x*P_recurrent[n-1] - (n-1)*P_recurrent[n-2])/(n));
P_recurrent[0] : 1;
P_recurrent[1] : x;
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-maxima">P_recurrent[n] := expand(((2*n - 1)*x*P_recurrent[n-1] - (n-1)*P_recurrent[n-2])/(n));
P_recurrent[0] : 1;
P_recurrent[1] : x;
for i:0 thru 19 do tex(P_recurrent[i]);
</pre>
</div>

 <p>
\[ 1 \]
\[ x \]
\[ {{3\,x^2-1}\over{2}} \]
\[ {{5\,x^3-3\,x}\over{2}} \]
\[ {{35\,x^4-30\,x^2+3}\over{8}} \]
\[ {{63\,x^5-70\,x^3+15\,x}\over{8}} \]
\[ {{231\,x^6-315\,x^4+105\,x^2-5}\over{16}} \]
\[ {{429\,x^7-693\,x^5+315\,x^3-35\,x}\over{16}} \]
\[ {{6435\,x^8-12012\,x^6+6930\,x^4-1260\,x^2+35}\over{128}} \]
\[ {{12155\,x^9-25740\,x^7+18018\,x^5-4620\,x^3+315\,x}\over{128}} \]
\[ {{46189\,x^{10}-109395\,x^8+90090\,x^6-30030\,x^4+3465\,x^2-63
 }\over{256}} \]
\[ {{88179\,x^{11}-230945\,x^9+218790\,x^7-90090\,x^5+15015\,x^3-693
 \,x}\over{256}} \]
\[ {{676039\,x^{12}-1939938\,x^{10}+2078505\,x^8-1021020\,x^6+225225
 \,x^4-18018\,x^2+231}\over{1024}} \]
\[ {{1300075\,x^{13}-4056234\,x^{11}+4849845\,x^9-2771340\,x^7+765765
 \,x^5-90090\,x^3+3003\,x}\over{1024}} \]
\[ {{5014575\,x^{14}-16900975\,x^{12}+22309287\,x^{10}-14549535\,x^8+
 4849845\,x^6-765765\,x^4+45045\,x^2-429}\over{2048}} \]
\[ {{9694845\,x^{15}-35102025\,x^{13}+50702925\,x^{11}-37182145\,x^9+
 14549535\,x^7-2909907\,x^5+255255\,x^3-6435\,x}\over{2048}} \]
\[ {{300540195\,x^{16}-1163381400\,x^{14}+1825305300\,x^{12}-
 1487285800\,x^{10}+669278610\,x^8-162954792\,x^6+19399380\,x^4-
 875160\,x^2+6435}\over{32768}} \]
\[ {{583401555\,x^{17}-2404321560\,x^{15}+4071834900\,x^{13}-
 3650610600\,x^{11}+1859107250\,x^9-535422888\,x^7+81477396\,x^5-
 5542680\,x^3+109395\,x}\over{32768}} \]
\[ {{2268783825\,x^{18}-9917826435\,x^{16}+18032411700\,x^{14}-
 17644617900\,x^{12}+10039179150\,x^{10}-3346393050\,x^8+624660036\,x
 ^6-58198140\,x^4+2078505\,x^2-12155}\over{65536}} \]
\[ {{4418157975\,x^{19}-20419054425\,x^{17}+39671305740\,x^{15}-
 42075627300\,x^{13}+26466926850\,x^{11}-10039179150\,x^9+2230928700
 \,x^7-267711444\,x^5+14549535\,x^3-230945\,x}\over{65536}} \]
</p>



 <p>
И всё?
</p>
</div>
</div>


 <div id="outline-container-%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D1%8F%D1%89%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E" class="outline-4">
 <h4 id="%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D1%8F%D1%89%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E"> <span class="section-number-4">2.1.3.</span>  <a href="#%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D1%8F%D1%89%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E">Используя производящую функцию</a></h4>
 <div class="outline-text-4" id="text-%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D1%8F%D1%89%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E">
 <p>
Производящая функция – это вот эта функция:
 <a href="https://en.wikipedia.org/wiki/Generating_function">https://en.wikipedia.org/wiki/Generating_function</a>
</p>

 <p>
На википедии есть прямо инструкция о том, как её использовать для того, чтобы вычислить полиномы Лежандра:
</p>

 <p>
 <a href="https://en.wikipedia.org/wiki/Legendre_polynomials#Definition_via_generating_function">https://en.wikipedia.org/wiki/Legendre_polynomials#Definition_via_generating_function</a>
</p>

 <p>
\[ \frac{1}{\sqrt{1-2xt+t^2}} = \sum_{n=0}^\infty P_n(x) t^n \]
</p>

 <div class="org-src-container">
 <pre class="src src-maxima" id="org818a5d4">P_generating[n]:= expand(part(taylor((1)/(sqrt(1 - 2*x*t + t^2)),t,0,19), [i+1])/(t^(i+1-1))) ;
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-maxima">P_generating[n]:= expand(part(taylor((1)/(sqrt(1 - 2*x*t + t^2)),t,0,19), [i+1])/(t^(i+1-1))) ;
for i:0 thru 19 do tex(P_generating[i]);
</pre>
</div>

 <p>
\[ 1 \]
\[ x \]
\[ {{3\,x^2-1}\over{2}} \]
\[ {{5\,x^3-3\,x}\over{2}} \]
\[ {{35\,x^4-30\,x^2+3}\over{8}} \]
\[ {{63\,x^5-70\,x^3+15\,x}\over{8}} \]
\[ {{231\,x^6-315\,x^4+105\,x^2-5}\over{16}} \]
\[ {{429\,x^7-693\,x^5+315\,x^3-35\,x}\over{16}} \]
\[ {{6435\,x^8-12012\,x^6+6930\,x^4-1260\,x^2+35}\over{128}} \]
\[ {{12155\,x^9-25740\,x^7+18018\,x^5-4620\,x^3+315\,x}\over{128}} \]
\[ {{46189\,x^{10}-109395\,x^8+90090\,x^6-30030\,x^4+3465\,x^2-63
 }\over{256}} \]
\[ {{88179\,x^{11}-230945\,x^9+218790\,x^7-90090\,x^5+15015\,x^3-693
 \,x}\over{256}} \]
\[ {{676039\,x^{12}-1939938\,x^{10}+2078505\,x^8-1021020\,x^6+225225
 \,x^4-18018\,x^2+231}\over{1024}} \]
\[ {{1300075\,x^{13}-4056234\,x^{11}+4849845\,x^9-2771340\,x^7+765765
 \,x^5-90090\,x^3+3003\,x}\over{1024}} \]
\[ {{5014575\,x^{14}-16900975\,x^{12}+22309287\,x^{10}-14549535\,x^8+
 4849845\,x^6-765765\,x^4+45045\,x^2-429}\over{2048}} \]
\[ {{9694845\,x^{15}-35102025\,x^{13}+50702925\,x^{11}-37182145\,x^9+
 14549535\,x^7-2909907\,x^5+255255\,x^3-6435\,x}\over{2048}} \]
\[ {{300540195\,x^{16}-1163381400\,x^{14}+1825305300\,x^{12}-
 1487285800\,x^{10}+669278610\,x^8-162954792\,x^6+19399380\,x^4-
 875160\,x^2+6435}\over{32768}} \]
\[ {{583401555\,x^{17}-2404321560\,x^{15}+4071834900\,x^{13}-
 3650610600\,x^{11}+1859107250\,x^9-535422888\,x^7+81477396\,x^5-
 5542680\,x^3+109395\,x}\over{32768}} \]
\[ {{2268783825\,x^{18}-9917826435\,x^{16}+18032411700\,x^{14}-
 17644617900\,x^{12}+10039179150\,x^{10}-3346393050\,x^8+624660036\,x
 ^6-58198140\,x^4+2078505\,x^2-12155}\over{65536}} \]
\[ {{4418157975\,x^{19}-20419054425\,x^{17}+39671305740\,x^{15}-
 42075627300\,x^{13}+26466926850\,x^{11}-10039179150\,x^9+2230928700
 \,x^7-267711444\,x^5+14549535\,x^3-230945\,x}\over{65536}} \]
</p>
</div>
</div>

 <div id="outline-container-%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E-%D0%B8%D0%BB%D0%B8-%D0%B2%D1%8B%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D1%83%D1%8E-%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E" class="outline-4">
 <h4 id="%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E-%D0%B8%D0%BB%D0%B8-%D0%B2%D1%8B%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D1%83%D1%8E-%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E"> <span class="section-number-4">2.1.4.</span>  <a href="#%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E-%D0%B8%D0%BB%D0%B8-%D0%B2%D1%8B%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D1%83%D1%8E-%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E">Используя гипергеометрическую функцию или вырожденную гипергеометрическую функцию</a></h4>
 <div class="outline-text-4" id="text-%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E-%D0%B8%D0%BB%D0%B8-%D0%B2%D1%8B%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D1%83%D1%8E-%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E">
 <p>
Гипергеометрическая функция – это очень классная функция, см  <a href="https://en.wikipedia.org/wiki/Hypergeometric_function">https://en.wikipedia.org/wiki/Hypergeometric_function</a> и  <a href="https://dlmf.nist.gov/15">https://dlmf.nist.gov/15</a> .
</p>

 <p>
\[ F(a,b,c,z) = \sum_{n=0}^{\infty} \frac{(a)_{n}(b)_{n}}{(c)_{n}} \frac{z^{n}}{n!} \]
</p>

 <p>
где \((a)_{n}\) – символ Похгаммера
</p>

 <p>
\[(a)_{n}=\prod_{i=0}^{n-1}(a+i) \]
</p>

 <p>
Выражение через неё полиномов Лежандра делается так:
</p>

 <p>
\[ P_{n}= F\left(-n,n+1,1,\frac{1-x}{2}\right) \]
</p>

 <p>
Радует, что в Maxima есть функция pochhammer.
</p>

 <p>
Попробуем для начала реализовать гипергеометрическую функцию с нуля?
</p>

 <div class="org-src-container">
 <pre class="src src-maxima">showtime: true;
load("simplify_sum");
F: sum( ((pochhammer(a,n)*pochhammer(b,n))/(pochhammer(c,n)))*((z^n)/(n!)) , n , 0 , inf );
tex(F);
P: subst([a=-p,b=p+1,c=1,z=((1-x)/2)], F);
simplify_sum(subst([p=1],P));
</pre>
</div>

 <p>
\[ \sum_{n=0}^{\infty }{{{\left(a\right)_{n}\,\left(b\right)_{n}\,z^{
 n}}\over{\left(c\right)_{n}\,n!}}} \]
  (- 1)      (2)      (x - 1)
       n + 1    n + 1
</p>
 <ul class="org-ul"> <li>----------------------–— non-rational term ratio to nusum
		     2
2 (- 1)  (2)  (n + 1)
       n    n</li>
</ul> <p>
Evaluation took 0.9851 seconds (1.0134 elapsed) using 36.178 MB.
</p>

 <p>
Что-то результат так себе.
Попробуем взять готовую гипергеометрическую функцию.
</p>

 <div class="org-src-container">
 <pre class="src src-maxima" id="org96d455c">P_hypergeometric[n] :=  ev(hypergeometric([-n,n+1],[1],((1-x)/2)), diff, expand, simp);
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-maxima">P_hypergeometric[n] :=  ev(hypergeometric([-n,n+1],[1],((1-x)/2)), diff, expand, simp);
for i:0 thru 19 do tex(P_hypergeometric[i]);
</pre>
</div>

 <p>
\[ 1 \]
\[ x \]
\[ {{3\,x^2}\over{2}}-{{1}\over{2}} \]
\[ {{5\,x^3}\over{2}}-{{3\,x}\over{2}} \]
\[ {{35\,x^4}\over{8}}-{{15\,x^2}\over{4}}+{{3}\over{8}} \]
\[ {{63\,x^5}\over{8}}-{{35\,x^3}\over{4}}+{{15\,x}\over{8}} \]
\[ {{231\,x^6}\over{16}}-{{315\,x^4}\over{16}}+{{105\,x^2}\over{16}}-
 {{5}\over{16}} \]
\[ {{429\,x^7}\over{16}}-{{693\,x^5}\over{16}}+{{315\,x^3}\over{16}}-
 {{35\,x}\over{16}} \]
\[ {{6435\,x^8}\over{128}}-{{3003\,x^6}\over{32}}+{{3465\,x^4}\over{
 64}}-{{315\,x^2}\over{32}}+{{35}\over{128}} \]
\[ {{12155\,x^9}\over{128}}-{{6435\,x^7}\over{32}}+{{9009\,x^5}\over{
 64}}-{{1155\,x^3}\over{32}}+{{315\,x}\over{128}} \]
\[ {{46189\,x^{10}}\over{256}}-{{109395\,x^8}\over{256}}+{{45045\,x^6
 }\over{128}}-{{15015\,x^4}\over{128}}+{{3465\,x^2}\over{256}}-{{63
 }\over{256}} \]
\[ {{88179\,x^{11}}\over{256}}-{{230945\,x^9}\over{256}}+{{109395\,x^
 7}\over{128}}-{{45045\,x^5}\over{128}}+{{15015\,x^3}\over{256}}-{{
 693\,x}\over{256}} \]
\[ {{676039\,x^{12}}\over{1024}}-{{969969\,x^{10}}\over{512}}+{{
 2078505\,x^8}\over{1024}}-{{255255\,x^6}\over{256}}+{{225225\,x^4
 }\over{1024}}-{{9009\,x^2}\over{512}}+{{231}\over{1024}} \]
\[ {{1300075\,x^{13}}\over{1024}}-{{2028117\,x^{11}}\over{512}}+{{
 4849845\,x^9}\over{1024}}-{{692835\,x^7}\over{256}}+{{765765\,x^5
 }\over{1024}}-{{45045\,x^3}\over{512}}+{{3003\,x}\over{1024}} \]
\[ {{5014575\,x^{14}}\over{2048}}-{{16900975\,x^{12}}\over{2048}}+{{
 22309287\,x^{10}}\over{2048}}-{{14549535\,x^8}\over{2048}}+{{4849845
 \,x^6}\over{2048}}-{{765765\,x^4}\over{2048}}+{{45045\,x^2}\over{
 2048}}-{{429}\over{2048}} \]
\[ {{9694845\,x^{15}}\over{2048}}-{{35102025\,x^{13}}\over{2048}}+{{
 50702925\,x^{11}}\over{2048}}-{{37182145\,x^9}\over{2048}}+{{
 14549535\,x^7}\over{2048}}-{{2909907\,x^5}\over{2048}}+{{255255\,x^3
 }\over{2048}}-{{6435\,x}\over{2048}} \]
\[ {{300540195\,x^{16}}\over{32768}}-{{145422675\,x^{14}}\over{4096}}
 +{{456326325\,x^{12}}\over{8192}}-{{185910725\,x^{10}}\over{4096}}+
 {{334639305\,x^8}\over{16384}}-{{20369349\,x^6}\over{4096}}+{{
 4849845\,x^4}\over{8192}}-{{109395\,x^2}\over{4096}}+{{6435}\over{
 32768}} \]
\[ {{583401555\,x^{17}}\over{32768}}-{{300540195\,x^{15}}\over{4096}}
 +{{1017958725\,x^{13}}\over{8192}}-{{456326325\,x^{11}}\over{4096}}+
 {{929553625\,x^9}\over{16384}}-{{66927861\,x^7}\over{4096}}+{{
 20369349\,x^5}\over{8192}}-{{692835\,x^3}\over{4096}}+{{109395\,x
 }\over{32768}} \]
\[ {{2268783825\,x^{18}}\over{65536}}-{{9917826435\,x^{16}}\over{
 65536}}+{{4508102925\,x^{14}}\over{16384}}-{{4411154475\,x^{12}
 }\over{16384}}+{{5019589575\,x^{10}}\over{32768}}-{{1673196525\,x^8
 }\over{32768}}+{{156165009\,x^6}\over{16384}}-{{14549535\,x^4}\over{
 16384}}+{{2078505\,x^2}\over{65536}}-{{12155}\over{65536}} \]
\[ {{4418157975\,x^{19}}\over{65536}}-{{20419054425\,x^{17}}\over{
 65536}}+{{9917826435\,x^{15}}\over{16384}}-{{10518906825\,x^{13}
 }\over{16384}}+{{13233463425\,x^{11}}\over{32768}}-{{5019589575\,x^9
 }\over{32768}}+{{557732175\,x^7}\over{16384}}-{{66927861\,x^5}\over{
 16384}}+{{14549535\,x^3}\over{65536}}-{{230945\,x}\over{65536}} \]
</p>

 <p>
Второй подход оказался намного быстрее.
</p>
</div>
</div>

 <div id="outline-container-%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B8%D1%82%D1%8C-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%8B" class="outline-4">
 <h4 id="%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B8%D1%82%D1%8C-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%8B"> <span class="section-number-4">2.1.5.</span>  <a href="#%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B8%D1%82%D1%8C-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%8B">Сравнить ответы</a></h4>
 <div class="outline-text-4" id="text-%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B8%D1%82%D1%8C-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%8B">
 <p>
Okay, basically I will solve it by:
</p>

 <ol class="org-ol"> <li class="on"> <input type="checkbox" checked="checked"></input> Partition #src blocks between implementation and tex print.</li>
 <li class="on"> <input type="checkbox" checked="checked"></input> find some maxima way to compare different expressions.</li>
 <li class="on"> <input type="checkbox" checked="checked"></input> make a for loop with expanding noweb links to polynomial definitions</li>
</ol> <div class="org-src-container">
 <pre class="src src-maxima">I1: elapsed_real_time();
P_rodrigues[n]:= ev(((-1)^n)/((2^n) * (n!)) * diff((1 - x^2)^n, x, n), diff, expand);
I2: elapsed_real_time();
P_recurrent[n] := expand(((2*n - 1)*x*P_recurrent[n-1] - (n-1)*P_recurrent[n-2])/(n));
P_recurrent[0] : 1;
P_recurrent[1] : x;
I3: elapsed_real_time();
P_generating[n]:= expand(part(taylor((1)/(sqrt(1 - 2*x*t + t^2)),t,0,19), [i+1])/(t^(i+1-1))) ;
I4: elapsed_real_time();
P_hypergeometric[n] :=  ev(hypergeometric([-n,n+1],[1],((1-x)/2)), diff, expand, simp);
I5: elapsed_real_time();
for i:0 thru 19 do block([],
  /* tex(P_rodrigues[i]),*/
  /* tex(P_recurrent[i]), */
  ldisplay( rat(P_recurrent[i] - P_rodrigues[i]) = 0 ),
  /* tex(P_generating[i]), */
  ldisplay( rat(P_generating[i] - P_recurrent[i]) = 0 ),
  /* tex(P_hypergeometric[i]), */
  ldisplay( rat(P_hypergeometric[i] - P_generating[i]) = 0 ),
  printf(true, "~%----------------------~%"));
</pre>
</div>

 <p>
(%t1)/R/                             0 = 0
(%t2)/R/                             0 = 0
(%t3)/R/                             0 = 0
</p>
 <hr></hr> <p>
(%t4)/R/                             0 = 0
(%t5)/R/                             0 = 0
(%t6)/R/                             0 = 0
</p>
 <hr></hr> <p>
(%t7)/R/                             0 = 0
(%t8)/R/                             0 = 0
(%t9)/R/                             0 = 0
</p>
 <hr></hr> <p>
(%t10)/R/                            0 = 0
(%t11)/R/                            0 = 0
(%t12)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t13)/R/                            0 = 0
(%t14)/R/                            0 = 0
(%t15)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t16)/R/                            0 = 0
(%t17)/R/                            0 = 0
(%t18)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t19)/R/                            0 = 0
(%t20)/R/                            0 = 0
(%t21)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t22)/R/                            0 = 0
(%t23)/R/                            0 = 0
(%t24)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t25)/R/                            0 = 0
(%t26)/R/                            0 = 0
(%t27)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t28)/R/                            0 = 0
(%t29)/R/                            0 = 0
(%t30)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t31)/R/                            0 = 0
(%t32)/R/                            0 = 0
(%t33)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t34)/R/                            0 = 0
(%t35)/R/                            0 = 0
(%t36)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t37)/R/                            0 = 0
(%t38)/R/                            0 = 0
(%t39)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t40)/R/                            0 = 0
(%t41)/R/                            0 = 0
(%t42)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t43)/R/                            0 = 0
(%t44)/R/                            0 = 0
(%t45)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t46)/R/                            0 = 0
(%t47)/R/                            0 = 0
(%t48)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t49)/R/                            0 = 0
(%t50)/R/                            0 = 0
(%t51)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t52)/R/                            0 = 0
(%t53)/R/                            0 = 0
(%t54)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t55)/R/                            0 = 0
(%t56)/R/                            0 = 0
(%t57)/R/                            0 = 0
</p>
 <hr></hr> <p>
(%t58)/R/                            0 = 0
(%t59)/R/                            0 = 0
(%t60)/R/                            0 = 0
</p>
 <hr></hr> <p>
Кажется, всё сходится.
</p>
</div>
</div>

 <div id="outline-container-%D0%A1%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%8C-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%B2-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%83" class="outline-4">
 <h4 id="%D0%A1%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%8C-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%B2-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%83"> <span class="section-number-4">2.1.6.</span>  <a href="#%D0%A1%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%8C-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%B2-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%83">Собрать скорость работы в таблицу</a></h4>
 <div class="outline-text-4" id="text-%D0%A1%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%8C-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%B2-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%83">
 <ol class="org-ol"> <li>Do the same loop as above</li>
 <li>Measure runtime with elapsed_real_time()</li>
 <li>* Maybe translate or compile maxima functions for speed.</li>
</ol> <div class="org-src-container">
 <pre class="src src-maxima">  I1: elapsed_real_time();
  P_rodrigues[n]:= ev(((-1)^n)/((2^n) * (n!)) * diff((1 - x^2)^n, x, n), diff, expand);
  I2: elapsed_real_time();
  P_recurrent[n] := expand(((2*n - 1)*x*P_recurrent[n-1] - (n-1)*P_recurrent[n-2])/(n));
  P_recurrent[0] : 1;
  P_recurrent[1] : x;
  I3: elapsed_real_time();
  P_generating[n]:= expand(part(taylor((1)/(sqrt(1 - 2*x*t + t^2)),t,0,19), [i+1])/(t^(i+1-1))) ;
  I4: elapsed_real_time();
  P_hypergeometric[n] :=  ev(hypergeometric([-n,n+1],[1],((1-x)/2)), diff, expand, simp);
  I5: elapsed_real_time();
  printf(true, "rodrigues__time=~f~%", float(I2-I1));
  printf(true, "recurrent__time=~f~%", float(I3)-float(I2));
  printf(true, "generating_time=~f~%", float(I4)-float(I3));
  printf(true, "hypergeome_time=~f~%", float(I5)-float(I4));
  measure_time(expression) ::= block( [time: elapsed_real_time(), dummy:0],
    dummy:ev(expression) ,
    elapsed_real_time() - time );
  results: matrix( ['rodrigues], ['recurrent], ['generating], ['hypergeometric]);
  fpprintprec: 3;
  for i:0 thru 19 do (
    /* ldisplay( P_rodrigues[i] ), */
    /* ldisplay( P_recurrent[i] ), */
    /* ldisplay( P_generating[i] ), */
    /* ldisplay( P_hypergeometric[i] ), */
    /* printf(true, "~%----------------------~%") */
    results: addcol( results , [ measure_time(P_rodrigues[i]),
      measure_time(P_recurrent[i]),
      measure_time(P_generating[i]),
      measure_time(P_hypergeometric[i]) ] )
    );
texput(matrix, lambda([m], block(
    [rows : length(m), cols : length(m[1]), r, c, s: ""],
    s : sconcat("\\begin{pmatrix}", newline),
    for r:1 thru rows do (
       for c:1 thru cols do (
	  s : sconcat(s, tex1(m[r][c]), " & ")
       ),
       s : sconcat(s, "\\\\" , newline)
    ),
    sconcat(s, "\\end{pmatrix}" )
 )));
disp(sconcat( "\\[ ", tex1(results), " \\]"  ));
</pre>
</div>

 <p>
rodrigues__time=0.0006490000000000003
recurrent__time=0.0008319999999999994
generating_time=0.0006519999999999998
hypergeome_time=0.00048000000000000126
\[ \begin{pmatrix}
{\it rodrigues} & 3.72 \times 10^{-4} & 2.88 \times 10^{-4} & 5.52 \times 10^{\
-4} & 8.49 \times 10^{-4} & 0.00105 & 0.0015 & 0.00191 & 0.00248 & 0.00326 & 0\
.00457 & 0.00478 & 0.00574 & 0.00683 & 0.00897 & 0.00913 & 0.0108 & 0.0149 & 0\
.0146 & 0.0155 & 0.0173 & \\
{\it recurrent} & 3.6 \times 10^{-5} & 3.7 \times 10^{-5} & 2.56 \times 10^{-4\
} & 5.36 \times 10^{-4} & 6.38 \times 10^{-4} & 7.88 \times 10^{-4} & 9.16 \ti\
mes 10^{-4} & 0.00108 & 0.00107 & 0.00146 & 0.00148 & 0.00166 & 0.00165 & 0.00\
212 & 0.00187 & 0.00205 & 0.00219 & 0.0028 & 0.00242 & 0.00269 & \\
{\it generating} & 0.00607 & 0.00627 & 0.00589 & 0.00622 & 0.00603 & 0.0127 & \
0.00626 & 0.00614 & 0.00637 & 0.00632 & 0.00618 & 0.00733 & 0.00634 & 0.00656 \
& 0.00654 & 0.00664 & 0.00706 & 0.00787 & 0.00695 & 0.00736 & \\
{\it hypergeometric} & 0.067 & 4.95 \times 10^{-4} & 8.56 \times 10^{-4} & 0.0\
0131 & 0.00206 & 0.00306 & 0.00427 & 0.00653 & 0.0071 & 0.00874 & 0.0173 & 0.0\
137 & 0.0161 & 0.0264 & 0.022 & 0.0316 & 0.0283 & 0.0383 & 0.0441 & 0.0422 & \\
\
\end{pmatrix} \]
</p>

 <p>
Всё это выглядит более-менее пренебрежимо малым, однако, на первый взгляд, кажется, что гипергеометрический метод, а так же метод Родрига могут и подтормаживать.
</p>
</div>
</div>
</div>

 <div id="outline-container-%D0%A1%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8E-%D0%BD%D0%B0-%D1%8F%D0%B7%D1%8B%D0%BA-%D0%A1%D0%B8-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B-%D0%BD%D0%B0-Maxima" class="outline-3">
 <h3 id="%D0%A1%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8E-%D0%BD%D0%B0-%D1%8F%D0%B7%D1%8B%D0%BA-%D0%A1%D0%B8-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B-%D0%BD%D0%B0-Maxima"> <span class="section-number-3">2.2.</span>  <a href="#%D0%A1%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8E-%D0%BD%D0%B0-%D1%8F%D0%B7%D1%8B%D0%BA-%D0%A1%D0%B8-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B-%D0%BD%D0%B0-Maxima">Сделать трансляцию на язык Си программы на Maxima</a></h3>
 <div class="outline-text-3" id="text-%D0%A1%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8E-%D0%BD%D0%B0-%D1%8F%D0%B7%D1%8B%D0%BA-%D0%A1%D0%B8-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B-%D0%BD%D0%B0-Maxima">
 <p>
Программа должна определять две функции, \(f\) и \(T\), являющиеся двумя разными представлениями одной и той же функции: символьным выражением и рядом Тейлора до степени 4
</p>

 <p>
\[ f = \frac{1}{5+\sin(x)} \]
</p>

 <p>
И сравнить результат от 0 до 1.0 с шагом 0.05.
</p>

 <div class="org-src-container">
 <pre class="src src-maxima">load("gentran");
gentranlang: c;
f: 1/(5+ sin(x));
T(x) := part(taylor(f, x, 0,4), [1,2,3,4,5]);
print("#include<math.h>");
print("#include<stdio.h>");
print( "double f(double x){ return ");
gentran(eval(f));
print( "; }");
print( "");
print( "double T(double x){ return ");
gentran(eval(T(x)));
print("; }");
print("");
print("int main() { // return 0;");
print("for(double i=0; i<=1; i=i+0.05) { printf(\"%f\\t%f\\t%f\\t%f\\n\", i, f(i), T(i), f(i) - T(i)) ;}");
print("return 0;}");
</pre>
</div>

 <div class="org-src-container">
 <pre class="src src-C"> <span style="font-weight: bold;">#include</span> <span style="font-style: italic;"><math.h></span> 
 <span style="font-weight: bold;">#include</span> <span style="font-style: italic;"><stdio.h></span> 
 <span style="font-weight: bold; text-decoration: underline;">double</span>  <span style="font-weight: bold;">f</span>( <span style="font-weight: bold; text-decoration: underline;">double</span>  <span style="font-weight: bold; font-style: italic;">x</span>){  <span style="font-weight: bold;">return</span>  
1/(5+sin(x))
; } 

 <span style="font-weight: bold; text-decoration: underline;">double</span>  <span style="font-weight: bold;">T</span>( <span style="font-weight: bold; text-decoration: underline;">double</span>  <span style="font-weight: bold; font-style: italic;">x</span>){  <span style="font-weight: bold;">return</span>  
-22.0/9375.0*pow(x,4.0)+19.0/3750.0*pow(x,3.0)+pow(x,2.0)/125.0-1.0/25.0*x+1.0/
 5.0
; } 

 <span style="font-weight: bold; text-decoration: underline;">int</span>  <span style="font-weight: bold;">main</span>() {  <span style="font-weight: bold; font-style: italic;">// </span> <span style="font-weight: bold; font-style: italic;">return 0; 
</span> <span style="font-weight: bold;">for</span>( <span style="font-weight: bold; text-decoration: underline;">double</span>  <span style="font-weight: bold; font-style: italic;">i</span>=0; i<=1; i=i+0.05) { printf( <span style="font-style: italic;">"%f\t%f\t%f\t%f\n"</span>, i, f(i), T(i), f(\
i) - T(i)) ;} 
 <span style="font-weight: bold;">return</span> 0;} 
</pre>
</div>

 <p>
Okay,  <code class="src src-maxima">gentran</code> should do it better than my crude solution here, but  I am not sure how to do it better.
Instead  <code class="src src-maxima">gentran_on</code> does not seem to do what I expect it to do, and going through a  <a id="org02870ed"></a> stuff with maxima itself does not seem to make a lot of sense to me.
It is nice to know that maxima supports  <a id="org049b720"></a>, but until I have a piece of software to use this trick, I have no use for it.
</p>
</div>
</div>

 <div id="outline-container-%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B" class="outline-3">
 <h3 id="%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B"> <span class="section-number-3">2.3.</span>  <a href="#%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B">Векторы состояния и линейные операторы</a></h3>
 <div class="outline-text-3" id="text-%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B">
 <p>
Написать программу, которая вычисляет результат действия произвольной функции операторов на произвольный вектор состояния.
</p>

 <p>
Функция операторов уничтожения \(a_{1},a_{2}\) , действующая на произвольный вектор состояния двумерного линейного гармонического осциллятора:
</p>

 <p>
\[ |\psi> = \sum_{i=i}^{N}\sum_{j=i}^{M}C_{i,j}|i,j>, a_{1}|i,j>_{}= \sqrt{i}|i-1,j> , a_{2}|i,j> = \sqrt{j}|i,j-1> \]
</p>

 <p>
Что-то у меня в формуле выше векторы бра и кет малость поломанные, ну да ладно.
</p>

 <p>
Нужно посчитать \(\sin(a_{1} +  a_{2} * a_{1} )[w * |4,8> - (3/7)*|11,3>] \)
</p>

 <p>
Так, что тут можно сделать?
</p>

 <p>
Что нужно вспомнить о квантовой механике человеку, который последний раз видел её больше 10 лет назад?
</p>

 <p>
\(|i>\) – это хитрое обозначение для вектора \((0\ 0\ 0\ \ldots\ 1\ \ldots\ ) \) в дискретном случае.
Часто говорят, что это «система, в которой \(i\) частиц», хотя на самом деле гораздо чаще это система, в которой единственная частица находится в \(i\)-раз возбуждённом состоянии.
</p>

 <p>
Вектор состояния у меня будет sparse-матрицей в компьютерной смысле, вестимо.
</p>

 <p>
Что такое \(w\) в этой задаче?
Окей, будем считать, что это символьный параметр, который должен в итоге войти в ответ.
</p>

 <p>
В целом, хочется, например, получить результат в виде символьной матрицы?
</p>


 <div class="org-src-container">
 <pre class="src src-maxima">input[4,8]  : w;
input[11,3] : -3/7;
display(arrayinfo(input));
/* Как задать input одним выражением? */
my_opfun[x]:= block([useless], 1);
a1(x) := block([retval] );
display(my_opfun[3]);
</pre>
</div>

 <p>
arrayinfo(input) = [hashed, 2, [4, 8], [11, 3]]
		 my_opfun  = 1
			 3
</p>


 <div class="org-src-container">
 <pre class="src src-maxima">test1 : genmatrix( lambda( [n,m] , (if n>m then 0 else 1) * (n*m) ), 10, 10);
/*b : lreduce(cons, test1);*/
ldisp(test1);
ldisp(map(lambda([ROW],rest(ROW)), test1));
multiplies : genmatrix( lambda( [n,m], \sqrt(m)), 10,10);
ldisp(multiplies);
ldisp(matrixp(multiplies));
ldisp( test1 * multiplies );
ldisp( matrixp( test1 * multiplies) );
s1 : test1 * multiplies;
ldisp(matrixp(s1));
ldisp( addcol(submatrix(s1, 1), zeromatrix(length(s1),1)));
</pre>
</div>

 <p>
                   [ 1  2  3  4   5   6   7   8   9   10  ]
                   [                                      ]
                   [ 0  4  6  8   10  12  14  16  18  20  ]
                   [                                      ]
                   [ 0  0  9  12  15  18  21  24  27  30  ]
                   [                                      ]
                   [ 0  0  0  16  20  24  28  32  36  40  ]
                   [                                      ]
                   [ 0  0  0  0   25  30  35  40  45  50  ]
(%t1)              [                                      ]
                   [ 0  0  0  0   0   36  42  48  54  60  ]
                   [                                      ]
                   [ 0  0  0  0   0   0   49  56  63  70  ]
                   [                                      ]
                   [ 0  0  0  0   0   0   0   64  72  80  ]
                   [                                      ]
                   [ 0  0  0  0   0   0   0   0   81  90  ]
                   [                                      ]
                   [ 0  0  0  0   0   0   0   0   0   100 ]
                     [ 2  3  4   5   6   7   8   9   10  ]
                     [                                   ]
                     [ 4  6  8   10  12  14  16  18  20  ]
                     [                                   ]
                     [ 0  9  12  15  18  21  24  27  30  ]
                     [                                   ]
                     [ 0  0  16  20  24  28  32  36  40  ]
                     [                                   ]
                     [ 0  0  0   25  30  35  40  45  50  ]
(%t2)                [                                   ]
                     [ 0  0  0   0   36  42  48  54  60  ]
                     [                                   ]
                     [ 0  0  0   0   0   49  56  63  70  ]
                     [                                   ]
                     [ 0  0  0   0   0   0   64  72  80  ]
                     [                                   ]
                     [ 0  0  0   0   0   0   0   81  90  ]
                     [                                   ]
                     [ 0  0  0   0   0   0   0   0   100 ]
      [                                                     3/2              ]
      [ 1  sqrt(2)  sqrt(3)  2  sqrt(5)  sqrt(6)  sqrt(7)  2     3  sqrt(10) ]
      [                                                                      ]
      [                                                     3/2              ]
      [ 1  sqrt(2)  sqrt(3)  2  sqrt(5)  sqrt(6)  sqrt(7)  2     3  sqrt(10) ]
      [                                                                      ]
      [                                                     3/2              ]
      [ 1  sqrt(2)  sqrt(3)  2  sqrt(5)  sqrt(6)  sqrt(7)  2     3  sqrt(10) ]
      [                                                                      ]
      [                                                     3/2              ]
      [ 1  sqrt(2)  sqrt(3)  2  sqrt(5)  sqrt(6)  sqrt(7)  2     3  sqrt(10) ]
      [                                                                      ]
      [                                                     3/2              ]
      [ 1  sqrt(2)  sqrt(3)  2  sqrt(5)  sqrt(6)  sqrt(7)  2     3  sqrt(10) ]
(%t3) [                                                                      ]
      [                                                     3/2              ]
      [ 1  sqrt(2)  sqrt(3)  2  sqrt(5)  sqrt(6)  sqrt(7)  2     3  sqrt(10) ]
      [                                                                      ]
      [                                                     3/2              ]
      [ 1  sqrt(2)  sqrt(3)  2  sqrt(5)  sqrt(6)  sqrt(7)  2     3  sqrt(10) ]
      [                                                                      ]
      [                                                     3/2              ]
      [ 1  sqrt(2)  sqrt(3)  2  sqrt(5)  sqrt(6)  sqrt(7)  2     3  sqrt(10) ]
      [                                                                      ]
      [                                                     3/2              ]
      [ 1  sqrt(2)  sqrt(3)  2  sqrt(5)  sqrt(6)  sqrt(7)  2     3  sqrt(10) ]
      [                                                                      ]
      [                                                     3/2              ]
      [ 1  sqrt(2)  sqrt(3)  2  sqrt(5)  sqrt(6)  sqrt(7)  2     3  sqrt(10) ]
(%t4)                                true
      [     3/2    3/2         3/2     3/2     3/2     9/2            3/2  ]
      [ 1  2      3      8    5       6       7       2       27    10     ]
      [                                                                    ]
      [     5/2     3/2         3/2     3/2     3/2    11/2            3/2 ]
      [ 0  2     2 3     16  2 5     2 6     2 7      2       54   2 10    ]
      [                                                                    ]
      [            5/2          3/2     3/2     3/2     9/2            3/2 ]
      [ 0   0     3      24  3 5     3 6     3 7     3 2      81   3 10    ]
      [                                                                    ]
      [                         3/2     3/2     3/2    13/2            3/2 ]
      [ 0   0      0     32  4 5     4 6     4 7      2       108  4 10    ]
      [                                                                    ]
      [                        5/2      3/2     3/2     9/2            3/2 ]
      [ 0   0      0     0    5      5 6     5 7     5 2      135  5 10    ]
(%t5) [                                                                    ]
      [                                5/2      3/2     11/2           3/2 ]
      [ 0   0      0     0     0      6      6 7     3 2      162  6 10    ]
      [                                                                    ]
      [                                        5/2      9/2            3/2 ]
      [ 0   0      0     0     0       0      7      7 2      189  7 10    ]
      [                                                                    ]
      [                                                15/2            3/2 ]
      [ 0   0      0     0     0       0       0      2       216  8 10    ]
      [                                                                    ]
      [                                                                3/2 ]
      [ 0   0      0     0     0       0       0        0     243  9 10    ]
      [                                                                    ]
      [                                                               5/2  ]
      [ 0   0      0     0     0       0       0        0      0    10     ]
(%t6)                                true
(%t7)                                true
      [  3/2    3/2         3/2     3/2     3/2     9/2            3/2     ]
      [ 2      3      8    5       6       7       2       27    10      0 ]
      [                                                                    ]
      [  5/2     3/2         3/2     3/2     3/2    11/2            3/2    ]
      [ 2     2 3     16  2 5     2 6     2 7      2       54   2 10     0 ]
      [                                                                    ]
      [         5/2          3/2     3/2     3/2     9/2            3/2    ]
      [  0     3      24  3 5     3 6     3 7     3 2      81   3 10     0 ]
      [                                                                    ]
      [                      3/2     3/2     3/2    13/2            3/2    ]
      [  0      0     32  4 5     4 6     4 7      2       108  4 10     0 ]
      [                                                                    ]
      [                     5/2      3/2     3/2     9/2            3/2    ]
      [  0      0     0    5      5 6     5 7     5 2      135  5 10     0 ]
(%t8) [                                                                    ]
      [                             5/2      3/2     11/2           3/2    ]
      [  0      0     0     0      6      6 7     3 2      162  6 10     0 ]
      [                                                                    ]
      [                                     5/2      9/2            3/2    ]
      [  0      0     0     0       0      7      7 2      189  7 10     0 ]
      [                                                                    ]
      [                                             15/2            3/2    ]
      [  0      0     0     0       0       0      2       216  8 10     0 ]
      [                                                                    ]
      [                                                             3/2    ]
      [  0      0     0     0       0       0        0     243  9 10     0 ]
      [                                                                    ]
      [                                                            5/2     ]
      [  0      0     0     0       0       0        0      0    10      0 ]
</p>

 <div class="org-src-container">
 <pre class="src src-maxima">programmode: false;
  plot2d ([atan(x), erf(x), tanh(x)], [x, -5, 5], [y, -1.5, 2])$
</pre>
</div>


 <figure id="orga2847da"> <img src="./maxima-3d.png" alt="maxima-3d.png"></img></figure> <div class="org-src-container">
 <pre class="src src-maxima">a[2,3]: 1;
b[2,3]: 2;
s : ev(a+b);
ldisp(s);
programmode: false;
ldisp([1,2,3] + [5,5,5]);
map(ldisplay, a);
</pre>
</div>

 <p>
Loading  <i>home/lockywolf</i>.maxima/maxima-init.mac
(%t1)                                b + a
(%t2)                              [6, 7, 8]
map: improper argument: a
 – an error. To debug this try: debugmode(true);
</p>

 <div class="org-src-container">
 <pre class="src src-maxima">programmode: false;
matchfix( "|" , ">" );
matchdeclare(a,numberp);
matchdeclare(b,numberp);
matchdeclare(c,true);
defmatch(ketp, c*|a,b>);
ldisp(ketp(|1,2>));
ldisp(ketp(alpha*|1,2>));
matchdeclare(a1,ketp);
matchdeclare(a2,ketp);
defmatch(qvectorp, a1 + a2);
ldisp(qvectorp(t*|1,2> + q*|1,2>));
tellsimp(a1 + a2, (op(a1)+op(a2)));
simp:true;
ldisp( ev(t*|1,2> + q*|1,2>));
</pre>
</div>

 <p>
Loading  <i>home/lockywolf</i>.maxima/maxima-init.mac
read and interpret /tmp/babel-cTZEIJ/maxima-VXgAxR.max
set_tex_environment_default(«\\[ "," \\]»)
                                  [\[ ,  \]]
programmode:false
                                     false
matchfix(«|»,«>»)
</p>
 <table> <colgroup> <col class="org-left"></col></colgroup> <tbody> <tr> <td class="org-left"> </td>
</tr></tbody></table> <p>
matchdeclare(a,numberp)
                                     done
matchdeclare(b,numberp)
                                     done
matchdeclare(c,true)
                                     done
defmatch(ketp,c*|a,b>)
                                     ketp
ldisp(ketp(|1,2>))
(%t9)                        [c = 1, b = 2, a = 1]
                                     [%t9]
ldisp(ketp(alpha*|1,2>))
(%t10)                     [c = alpha, b = 2, a = 1]
                                    [%t10]
matchdeclare(a1,ketp)
                                     done
matchdeclare(a2,ketp)
                                     done
defmatch(qvectorp,a1+a2)
                                   qvectorp
ldisp(qvectorp(t*|1,2>+q*|1,2>))
(%t14)                               false
                                    [%t14]
tellsimp(a1+a2,op(a1)+op(a2))
tellsimp: warning: rule will treat '+' as noncommutative and nonassociative.
                               [+rule1, simplus]
simp:true
                                     true
ldisp(ev(t*|1,2>+q*|1,2>))
(%t17)                        |1, 2> t + |1, 2> q
                                    [%t17]
gnuplot_close()
quit()
</p>

 <div class="org-src-container">
 <pre class="src src-maxima">load(partition);
matchdeclare (pp, partition_expression("+",constantp,0,"+",g,'ANSpp));
tellsimp(foo(pp),ANSpp);
declare([a,b,c],constant);
disp([foo(a+b+c+x+y+3),foo(w),foo(b), foo(a*b+x),foo(a*b)]);
</pre>
</div>

 <p>
Loading  <i>home/lockywolf</i>.maxima/maxima-init.mac
        [g(c + b + a + 3, y + x), foo(w), foo(b), g(a b, x), foo(a b)]
</p>

 <div class="org-src-container">
 <pre class="src src-maxima">programmode: false;
nolabels: false;
matchdeclare([ann,bnn], lambda([r],atom(r) and not numberp(r)),
	    cna,lambda([r], not atom(r)),
	    numonly,numberp);
defmatch(m1,h(ann,bnn,numonly) );
defrule(r1,h(ann,bnn,numonly),['numonlyA = numonly,'bnnB = bnn,'annC = ann])$
ldisp(m1(h(q,r,34)));
ldisp(r1(h(q,r,34)));
dadfa;
:lisp (symbol-plist '$ann)
</pre>
</div>

 <p>
Loading  <i>home/lockywolf</i>.maxima/maxima-init.mac
read and interpret /tmp/babel-cTZEIJ/maxima-aoIKhA.max
set_tex_environment_default(«\\[ "," \\]»)
                                  [\[ ,  \]]
programmode:false
                                     false
nolabels:false
                                     false
matchdeclare([ann,bnn],lambda([r],atom(r) and not numberp(r)),cna,
             lambda([r],not atom(r)),numonly,numberp)
                                     done
defmatch(m1,h(ann,bnn,numonly))
                                      m1
defrule(r1,h(ann,bnn,numonly),['numonlyA = numonly,'bnnB = bnn,'annC = ann])
ldisp(m1(h(q,r,34)))
(%t8)                  [numonly = 34, bnn = r, ann = q]
                                     [%t8]
ldisp(r1(h(q,r,34)))
(%t9)                 [numonlyA = 34, bnnB = r, annC = q]
                                     [%t9]
dadfa
                                     dadfa
(MPROPS
 (NIL MATCHDECLARE
  (((LAMBDA (0 /tmp/babel-cTZEIJ/maxima-aoIKhA.max SRC))
    ((MLIST (0 /tmp/babel-cTZEIJ/maxima-aoIKhA.max SRC)) $R)
    ((MAND (0 /tmp/babel-cTZEIJ/maxima-aoIKhA.max SRC))
     (($ATOM (0 /tmp/babel-cTZEIJ/maxima-aoIKhA.max SRC)) $R)
     ((MNOT (0 /tmp/babel-cTZEIJ/maxima-aoIKhA.max SRC))
      (($NUMBERP (0 /tmp/babel-cTZEIJ/maxima-aoIKhA.max SRC)) $R)))))))
gnuplot_close()
quit()
</p>

 <p>
After a bit of searching, I found this code, of Leo Butler 2010. (Michael Talon
telling me at Maxima's mailing list.) It should be not hard to tweak it for my
purposes?
</p>

 <div class="org-src-container">
 <pre class="src src-maxima">  tellsimp(R.L,1+L.R);
  tellsimp(R^^i . L, 1+(R^^(i-1) . L) . R);
  declare(h,integer);
  declare(h,scalar);
  matchdeclare(m, lambda([t1],featurep(t1,integer)),
	       n, lambda([t2],featurep(t2,integer)),
	       u, scalarp);
  tellsimp(L.ket(n), sqrt(n)*ket(n-1));
  tellsimp(L.(u*ket(n)), u*sqrt(n)*ket(n-1));
  tellsimp(L^^m . (u*ket(n)), u*sqrt(n)*(L^^(m-1) . ket(n-1)));
  tellsimp(R.ket(n), sqrt(n+1)*ket(n+1));
  tellsimp(R.(u*ket(n)), u*sqrt(n+1)*ket(n+1));
  tellsimp(R^^m . (u*ket(n)), u*sqrt(n+1)*(R^^(m-1) . ket(n+1)));
  L.ket(h);
  L.ket(2);
  L.L.ket(h);
  L^^3 . ket(5);
ket(5) + ket(5);
R.ket(5) ;
ket(1,2) + ket(1,2);
L.ket(0);
(L + R) . ket(5);
telsimp(R+L, L + R);
L + R;
load("functs");
matchdeclare( qoperator, nonzeroandfreeof(ket) );
defmatch(qoperatorp, qoperator);
matchdeclare( qvector, lambda([t3], not(freeof(ket, t3))) );
matchdeclare( p, ?mplusp );
tellsimp( (p) . qvector,
	   first(p).qvector + rest(p).qvector);
(L + R) . ket(5);
(8*L + 7*R) . ket(5);
sin(8*L + 7*R) . ket(5);
matchdeclare( ker, lambda([t4], atom(t4) and not(numberp(t4))));
/*telsimp(testfun, ker(qoperator));*/
/*  defrule(r, ker(qoperator), powerseries(ker(qoperator), qoperator, 0));*/
matchdeclare(oppower, lambda([t5], integerp(t5) and is(t5>0)));
tellsimp( L^oppower, L^^oppower);
tellsimp( R^oppower, R^^oppower);
(R^5 . L^5).ket(5);
sin(8*L + L) . ket(5);
simpsum: true;
tellsimp( ker(qoperator) . qvector,
	  powerseries(ker(qoperator), qoperator, 0) . qvector) ;
simpsum: false;
mysum : op(sum(i^2,i,0,inf));
ldisplay(mysum);
matchdeclare(sump, lambda([t6], not(atom(t6)) and is(equal(op(t6),mysum))));
defmatch(t7,sump);
t7(sum(i,i,0,inf));
defmatch(t8, sump . qvector );
tellsimp( sump . qvector, apply(sum, cons(ratexpand(first(sump)) . qvector, rest(args(sump)))));
simpsum: false;
sin(8*L + L) . ket(5);
t8( sum(L^i,i,0,inf) . ket(5) );
(L).ket(5);

</pre>
</div>

 <p>
Loading  <i>home/lockywolf</i>.maxima/maxima-init.mac
read and interpret /tmp/babel-sPWpfR/maxima-NOwpwS.max
set_tex_environment_default(«\\[ "," \\]»)
                                  [\[ ,  \]]
tellsimp(R . L,1+L . R)
                               [.rule1, simpnct]
tellsimp(R^^i . L,1+(R^^(i-1) . L) . R)
                           [.rule2, .rule1, simpnct]
declare(h,integer)
                                     done
declare(h,scalar)
                                     done
matchdeclare(m,lambda([t1],featurep(t1,integer)),n,
             lambda([t2],featurep(t2,integer)),u,scalarp)
                                     done
tellsimp(L . ket(n),sqrt(n)*ket(n-1))
                       [.rule3, .rule2, .rule1, simpnct]
tellsimp(L . (u*ket(n)),u*sqrt(n)*ket(n-1))
                   [.rule4, .rule3, .rule2, .rule1, simpnct]
tellsimp(L^^m . (u*ket(n)),u*sqrt(n)*L^^(m-1) . ket(n-1))
               [.rule5, .rule4, .rule3, .rule2, .rule1, simpnct]
tellsimp(R . ket(n),sqrt(n+1)*ket(n+1))
           [.rule6, .rule5, .rule4, .rule3, .rule2, .rule1, simpnct]
tellsimp(R . (u*ket(n)),u*sqrt(n+1)*ket(n+1))
       [.rule7, .rule6, .rule5, .rule4, .rule3, .rule2, .rule1, simpnct]
tellsimp(R^^m . (u*ket(n)),u*sqrt(n+1)*R^^(m-1) . ket(n+1))
   [.rule8, .rule7, .rule6, .rule5, .rule4, .rule3, .rule2, .rule1, simpnct]
L . ket(h)
                              ket(h - 1) sqrt(h)
L . ket(2)
                                sqrt(2) ket(1)
L . L . ket(h)
                        ket(h - 2) sqrt(h - 1) sqrt(h)
L^^3 . ket(5)
                           2 sqrt(3) sqrt(5) ket(2)
ket(5)+ket(5)
                                   2 ket(5)
R . ket(5)
                                sqrt(6) ket(6)
ket(1,2)+ket(1,2)
                                  2 ket(1, 2)
L . ket(0)
                                       0
(L+R) . ket(5)
                               (R + L) . ket(5)
telsimp(R+L,L+R)
                             telsimp(R + L, R + L)
L+R
                                     R + L
load(«functs»)
           /usr/share/maxima/5.47.0/share/simplification/functs.mac
matchdeclare(qoperator,nonzeroandfreeof(ket))
                                     done
defmatch(qoperatorp,qoperator)
defmatch: evaluation of atomic pattern yields: qoperator
                                  qoperatorp
matchdeclare(qvector,lambda([t3],not freeof(ket,t3)))
                                     done
matchdeclare(p,mplusp)
                                     done
tellsimp(p . qvector,first(p) . qvector+rest(p) . qvector)
 [.rule9, .rule8, .rule7, .rule6, .rule5, .rule4, .rule3, .rule2, .rule1, 
                                                                       simpnct]
(L+R) . ket(5)
                        sqrt(6) ket(6) + sqrt(5) ket(4)
(8*L+7*R) . ket(5)
                      7 sqrt(6) ket(6) + 8 sqrt(5) ket(4)
sin(8*L+7*R) . ket(5)
                            sin(7 R + 8 L) . ket(5)
matchdeclare(ker,lambda([t4],atom(t4) and not numberp(t4)))
                                     done
matchdeclare(oppower,lambda([t5],integerp(t5) and is(t5 > 0)))
                                     done
tellsimp(L^oppower,L^^oppower)
                              [^rule1, simpexpt]
tellsimp(R^oppower,R^^oppower)
                          [^rule2, ^rule1, simpexpt]
(R^5 . L^5) . ket(5)
                                  120 ket(5)
sin(8*L+L) . ket(5)
                               sin(9 L) . ket(5)
simpsum:true
                                     true
tellsimp(ker(qoperator) . qvector,
         powerseries(ker(qoperator),qoperator,0) . qvector)
 [.rule10, .rule9, .rule8, .rule7, .rule6, .rule5, .rule4, .rule3, .rule2, 
                                                               .rule1, simpnct]
simpsum:false
                                     false
mysum:op(sum(i^2,i,0,inf))
                                      sum
ldisplay(mysum)
(%t44)                            mysum = sum
                                    [%t44]
matchdeclare(sump,lambda([t6],not atom(t6) and is(equal(op(t6),mysum))))
                                     done
defmatch(t7,sump)
defmatch: evaluation of atomic pattern yields: sump
                                      t7
t7(sum(i,i,0,inf))
                                       inf
                                        <code>==</code>
                                       \
                               [sump =  >    i]
                                       /
                                        <code>==</code>
                                       i = 0
defmatch(t8,sump . qvector)
                                      t8
tellsimp(sump . qvector,
         apply(sum,cons(ratexpand(first(sump)) . qvector,rest(args(sump)))))
 [.rule11, .rule10, .rule9, .rule8, .rule7, .rule6, .rule5, .rule4, .rule3, 
                                                       .rule2, .rule1, simpnct]
simpsum:false
                                     false
sin(8*L+L) . ket(5)
                 inf
                  <code>==</code>     2 i1 + 1      i1  2 i1 + 1
                 \       L         (- 1)   9
                  >     (----------------------–—) . ket(5)
                 /               (2 i1 + 1)!
                  <code>==</code>
                 i1 = 0
t8(sum(L^i,i,0,inf) . ket(5))
                                     false
L . ket(5)
                                sqrt(5) ket(4)
gnuplot_close()
quit()
</p>

 <div class="org-src-container">
 <pre class="src src-maxima">matchdeclare(m, lambda([t],featurep(t,integer)), /* power */
  n1, lambda([t],featurep(t,integer)), /* vector1 */
  n2, lambda([t],featurep(t,integer)), /* vector2 */
  u, scalarp); /* argument */
tellsimp(a1.ket(n1,n2), sqrt(n1)*ket(n1-1,n2));
tellsimp(a1.(u*ket(n1,n2)), u*sqrt(n1)*ket(n1-1,n2));
tellsimp(a1^^m . (u*ket(n1,n2)), u*sqrt(n1)*(a1^^(m-1) . ket(n1-1,n2)));
/* tellsimp(a1^^m . (u*ket(n1,n2)), a1^^(m-1). a1 . ket(n1-1,n2)); */

a1.ket(2,3);
a1^^3 . ket(5,1);

tellsimp(a2.ket(n1,n2), sqrt(n2)*ket(n1,n2-1));
tellsimp(a2.(u*ket(n1,n2)), u*sqrt(n2)*ket(n1,n2-1));
tellsimp(a2^^m . (u*ket(n1,n2)), u*sqrt(n2)*(a2^^(m-1) . ket(n1,n2-1)));

a2.ket(2,3);
a2^^3 . ket(1,5);

a2.a1.(w * ket(4,8) - (3/7) * ket(11,3));
load("diag");
mat_function(sin,(a1 + a2*a1)(w * ket(4,8) - (3/7) * ket(11,3)));
A : matrix([2,4],[1,2]);
M : mat_function(sin,t*A);
</pre>
</div>

 <p>
Loading  <i>home/lockywolf</i>.maxima/maxima-init.mac
read and interpret /tmp/babel-cTZEIJ/maxima-3v9KzK.max
set_tex_environment_default(«\\[ "," \\]»)
                                  [\[ ,  \]]
matchdeclare(m,lambda([t],featurep(t,integer)),n1,
             lambda([t],featurep(t,integer)),n2,
             lambda([t],featurep(t,integer)),u,scalarp)
                                     done
tellsimp(a1 . ket(n1,n2),sqrt(n1)*ket(n1-1,n2))
                               [.rule1, simpnct]
tellsimp(a1 . (u*ket(n1,n2)),u*sqrt(n1)*ket(n1-1,n2))
                           [.rule2, .rule1, simpnct]
tellsimp(a1^^m . (u*ket(n1,n2)),a1^^(m-1) . a1 . ket(n1-1,n2))
                       [.rule3, .rule2, .rule1, simpnct]
a1 . ket(2,3)
                               sqrt(2) ket(1, 3)
a1^^3 . ket(5,1)
Maxima encountered a Lisp error:
 Binding stack exhausted.
PROCEED WITH CAUTION.
Automatically continuing.
To enable the Lisp debugger set  <b>debugger-hook</b> to nil.
tellsimp(a2 . ket(n1,n2),sqrt(n2)*ket(n1,n2-1))
                   [.rule4, .rule3, .rule2, .rule1, simpnct]
tellsimp(a2 . (u*ket(n1,n2)),u*sqrt(n2)*ket(n1,n2-1))
               [.rule5, .rule4, .rule3, .rule2, .rule1, simpnct]
tellsimp(a2^^m . (u*ket(n1,n2)),u*sqrt(n2)*a2^^(m-1) . ket(n1,n2-1))
           [.rule6, .rule5, .rule4, .rule3, .rule2, .rule1, simpnct]
a2 . ket(2,3)
                               sqrt(3) ket(2, 2)
a2^^3 . ket(1,5)
                          2 sqrt(3) sqrt(5) ket(1, 2)
a2 . a1 . (w*ket(4,8)-(3/7)*ket(11,3))
                                             3 ket(11, 3)
                    a2 . a1 . (ket(4, 8) w - -------–—)
                                                  7
load(«diag»)
                /usr/share/maxima/5.47.0/share/contrib/diag.mac
mat_function(sin,(a1+a2*a1)(w*ket(4,8)-(3/7)*ket(11,3)))
                                                      3 ket(11, 3)
           mat_function(sin, a1 a2 + a1(ket(4, 8) w - -------–—))
                                                           7
A:matrix([2,4],[1,2])
                                   [ 2  4 ]
                                   [      ]
                                   [ 1  2 ]
M:mat_function(sin,t*A)
                            [ sin(4 t)           ]
                            [ ---–—  sin(4 t) ]
                            [    2               ]
                            [                    ]
                            [ sin(4 t)  sin(4 t) ]
                            [ ---–—  ---–— ]
                            [    4         2     ]
gnuplot_close()
quit()
</p>

 <p>
Что-то я возился-возился, ни черта не понял.
Задачка должна быть простая относительно.
Но что-то я ухожу всё дальше и дальше в дебри.
</p>

 <p>
Если реализовать операторы как «переменные», то получается ерунда с разложением их в ряд по степеням, ведь там нужна матричная степень, а не «обычная».
Если их реализовывать как кастомные операторы, то нельзя сотворить выражение, не содержащее аргументов.
mat_function отказывается раскладывать выражение в ряд, если в нём нет матриц, но с матрицами плохо, потому что кет-вектор плохо представляется в качестве одномерного вектора.
</p>

 <p>
И это простая задача!
Ничего не понимаю.
Если в последнем случае поменять simpsum:false на simpsum:true, система впадает в бесконечный цикл, что плохо, :(.
Не знаю, что на этом дальше делать.
</p>
</div>
</div>


 <div id="outline-container-%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B-1" class="outline-3">
 <h3 id="%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B-1"> <span class="section-number-3">2.4.</span>  <a href="#%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B-1">Векторы состояния и линейные операторы</a></h3>
 <div class="outline-text-3" id="text-%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B-1">
 <p>
Написать «алгебру операторов гармонического осциллятора», для приведения выражений с операторами к каноническому виду.
</p>

 <p>
Тестовый пример:
</p>

 <p>
-(76/3m)LRRLLR + 23LR + … +5RR
</p>

 <p>
Все операторы R должны стоять слева от операторов L.
</p>

 <p>
Ну здесь-то можно прямолинейно применить «алгебру гармонического осциллятора» из предыдущего упражнения?
</p>

 <div class="org-src-container">
 <pre class="src src-maxima">tellsimpafter(R.L,I+L.R);
tellsimpafter(R^^i . L, I+(R^^(i-1) . L) . R);
tellsimpafter(R.I, R);
tellsimpafter(I.R, R);
tellsimpafter(L.I, L);
tellsimpafter(I.L, L);

a: ev((-(76/(3*m))*L.R.R.L.L.R + 23*L.R + L.L.L.R.L.R.L + 5*R.R), expand);
expand(a);
</pre>
</div>

 <p>
Loading  <i>home/lockywolf</i>.maxima/maxima-init.mac
read and interpret /tmp/babel-sPWpfR/maxima-yHv61R.max
set_tex_environment_default(«\\[ "," \\]»)
                                  [\[ ,  \]]
tellsimpafter(R . L,I+L . R)
                               [.rule1, simpnct]
tellsimpafter(R^^i . L,I+(R^^(i-1) . L) . R)
                           [.rule2, .rule1, simpnct]
tellsimpafter(R . I,R)
                       [.rule3, .rule2, .rule1, simpnct]
tellsimpafter(I . R,R)
                   [.rule4, .rule3, .rule2, .rule1, simpnct]
tellsimpafter(L . I,L)
               [.rule5, .rule4, .rule3, .rule2, .rule1, simpnct]
tellsimpafter(I . L,L)
           [.rule6, .rule5, .rule4, .rule3, .rule2, .rule1, simpnct]
a:ev(-(76/(3*m))*L . R . R . L . L . R+23*L . R+L . L . L . R . L . R . L
                                      +5*R . R,expand)
            <2>    <2>
   76 (L . R    . L    . R)      <2>    <4>
</p>
 <ul class="org-ul"> <li>-------------------–— + 5 R    + L    . R + 23 (L . R)
3 m
						<2>     <2>    <3>
 <ul class="org-ul"> <li>L . (L    . R)    + L</li>
</ul></li>
</ul> <p>
expand(a)
            <2>    <2>
   76 (L . R    . L    . R)      <2>    <4>
</p>
 <ul class="org-ul"> <li>-------------------–— + 5 R    + L    . R + 23 (L . R)
3 m
						<2>     <2>    <3>
 <ul class="org-ul"> <li>L . (L    . R)    + L</li>
</ul></li>
</ul> <p>
gnuplot_close()
quit()
</p>

 <p>
Опять чудеса.
Ладно, спросим в мейлинг листе Максимы, что вообще происходит.
</p>
</div>
</div>

 <div id="outline-container-%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B0%D1%8F-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0.-%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D1%83%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%B0%D0%BB%D1%8B%D1%85-%D0%B0%D0%BA%D1%81%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%B2%D0%BE%D0%B7%D0%BC%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D0%B9-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F-%D0%A8%D0%B2%D0%B0%D1%80%D1%86%D1%88%D0%B8%D0%BB%D1%8C%D0%B4%D0%B0-%D0%B2-%D0%9E%D0%A2%D0%9E." class="outline-3">
 <h3 id="%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B0%D1%8F-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0.-%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D1%83%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%B0%D0%BB%D1%8B%D1%85-%D0%B0%D0%BA%D1%81%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%B2%D0%BE%D0%B7%D0%BC%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D0%B9-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F-%D0%A8%D0%B2%D0%B0%D1%80%D1%86%D1%88%D0%B8%D0%BB%D1%8C%D0%B4%D0%B0-%D0%B2-%D0%9E%D0%A2%D0%9E."> <span class="section-number-3">2.5.</span>  <a href="#%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B0%D1%8F-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0.-%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D1%83%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%B0%D0%BB%D1%8B%D1%85-%D0%B0%D0%BA%D1%81%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%B2%D0%BE%D0%B7%D0%BC%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D0%B9-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F-%D0%A8%D0%B2%D0%B0%D1%80%D1%86%D1%88%D0%B8%D0%BB%D1%8C%D0%B4%D0%B0-%D0%B2-%D0%9E%D0%A2%D0%9E.">Большая задача. Получить спектральное уравнение для малых аксиальных возмущений решения Шварцшильда в ОТО.</a></h3>
 <div class="outline-text-3" id="text-%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B0%D1%8F-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0.-%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D1%83%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%B0%D0%BB%D1%8B%D1%85-%D0%B0%D0%BA%D1%81%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%B2%D0%BE%D0%B7%D0%BC%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D0%B9-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F-%D0%A8%D0%B2%D0%B0%D1%80%D1%86%D1%88%D0%B8%D0%BB%D1%8C%D0%B4%D0%B0-%D0%B2-%D0%9E%D0%A2%D0%9E.">
 <p>
В общем, пока я не прочитаю хотя бы введение в ОТО, маловероятно, что я решу эту задачу.
На выбор есть ещё четыре задачи, у которых я не знаю всех терминов, входящих в условия.
</p>
</div>
</div>
</section> <section id="outline-container-%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5" class="outline-2"> <h2 id="%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5"> <span class="section-number-2">3.</span>  <a href="#%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5">Заключение</a></h2>
 <div class="outline-text-2" id="text-%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5">
 <p>
В общем, проект зафейлился. Может, лет через 5 я выучу достаточно, чтобы понимать, о чём речь, и вернусь к нему.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-08-19_Exercises-for-Maxima/index.html"/>
  <id>https://lockywolf.net/2023-08-19_Exercises-for-Maxima/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>How I studied Maxima. (Chinese)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How I studied Maxima. (Chinese)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E6%88%91%E5%AD%A6%E4%B9%A0maxima%E7%9A%84%E5%8E%86%E5%8F%B2%E3%80%82">1. 我学习maxima的历史。</a>
 <ul> <li> <a href="#%E6%88%91%E7%9A%84%E5%85%B3%E4%BA%8E%E2%80%9CMaxima%E4%B8%BA%E7%90%86%E8%AE%BA%E7%89%A9%E7%90%86%E5%AD%A6%E8%80%85%E2%80%9D%E7%9A%84%E8%A7%82%E7%82%B9%E3%80%82">1.1. 我的关于“Maxima为理论物理学者”的观点。</a></li>
 <li> <a href="#%E5%AD%A6%E4%B9%A0%E9%87%8F%E5%AD%90%E5%8A%9B%E5%AD%A6%E3%80%82">1.2. 学习量子力学。</a></li>
 <li> <a href="#%E7%BB%A7%E7%BB%AD%E8%B0%83%E7%A0%94maxima">1.3. 继续调研maxima</a></li>
</ul></li>
 <li> <a href="#%E7%BB%93%E8%AE%BA">2. 结论</a></li>
</ul></div>
</nav> <p>
这篇文章，与其它在此网站可找到的文章不同，不评价某些技术书。
反而，现在我要关于我学习Maxima的经验讲故事。
我提醒阅读者，这篇文章我尚未没有做完，但是因为我已经到达了某些结果，所以我想存在的经验记录好。
</p>

 <p>
什么是maxima和为什么我决定学习它？
Maxima是全世界第二个的计算机代数系统（也称为符号运算系统）。
（第一个计算机代数系统叫做Reduce。）
</p>

 <p>
Maxima是在60年代底基于Lisp类语言写的。
它原来的名字是Macsyma，来自MIT（麻省理工学院）MAC项目。（Man and Computer）
</p>

 <p>
MAC项目引发了很多不同的Lisp和其它关于第一代人工智能的软件。
Macsyma是其项目之一，是在美国能源部的支持下开发的。
（美国能源部是美国政府唯一一个管理非战用核能的机关。）
</p>

 <p>
老macsyma是由传统Lisp演变而来的，后来被使用标准化的Common Lisp重构。
从1998以后更名为maxima而成为自由软件。
</p>

 <p>
因为我的工作需要高级数学推理，所以我想要能够提升我的计算能力的辅助软件。
而且，因为我对Lisp比较熟悉，所以我认为Maxima是合理的选择。
</p>


 <section id="outline-container-%E6%88%91%E5%AD%A6%E4%B9%A0maxima%E7%9A%84%E5%8E%86%E5%8F%B2%E3%80%82" class="outline-2"> <h2 id="%E6%88%91%E5%AD%A6%E4%B9%A0maxima%E7%9A%84%E5%8E%86%E5%8F%B2%E3%80%82"> <span class="section-number-2">1.</span>  <a href="#%E6%88%91%E5%AD%A6%E4%B9%A0maxima%E7%9A%84%E5%8E%86%E5%8F%B2%E3%80%82">我学习maxima的历史。</a></h2>
 <div class="outline-text-2" id="text-%E6%88%91%E5%AD%A6%E4%B9%A0maxima%E7%9A%84%E5%8E%86%E5%8F%B2%E3%80%82">
 <p>
我学习maxima的历史由三个阶段组成。
第一个是追随莫斯科国家大学的物理部的课文“Maxima为理论物理学者”。
第二个是跟编程语言没有关系的阶段：阅读Michel Talagrand的书“量子场论”。
第三个是使用Maxima语言和Common Lisp写作自己需要的Maxima扩展包“随机性函数级数”。
</p>

 <p>
第三个阶段我尚未实现，所以这篇文章没有写完。
</p>
</div>

 <div id="outline-container-%E6%88%91%E7%9A%84%E5%85%B3%E4%BA%8E%E2%80%9CMaxima%E4%B8%BA%E7%90%86%E8%AE%BA%E7%89%A9%E7%90%86%E5%AD%A6%E8%80%85%E2%80%9D%E7%9A%84%E8%A7%82%E7%82%B9%E3%80%82" class="outline-3">
 <h3 id="%E6%88%91%E7%9A%84%E5%85%B3%E4%BA%8E%E2%80%9CMaxima%E4%B8%BA%E7%90%86%E8%AE%BA%E7%89%A9%E7%90%86%E5%AD%A6%E8%80%85%E2%80%9D%E7%9A%84%E8%A7%82%E7%82%B9%E3%80%82"> <span class="section-number-3">1.1.</span>  <a href="#%E6%88%91%E7%9A%84%E5%85%B3%E4%BA%8E%E2%80%9CMaxima%E4%B8%BA%E7%90%86%E8%AE%BA%E7%89%A9%E7%90%86%E5%AD%A6%E8%80%85%E2%80%9D%E7%9A%84%E8%A7%82%E7%82%B9%E3%80%82">我的关于“Maxima为理论物理学者”的观点。</a></h3>
 <div class="outline-text-3" id="text-%E6%88%91%E7%9A%84%E5%85%B3%E4%BA%8E%E2%80%9CMaxima%E4%B8%BA%E7%90%86%E8%AE%BA%E7%89%A9%E7%90%86%E5%AD%A6%E8%80%85%E2%80%9D%E7%9A%84%E8%A7%82%E7%82%B9%E3%80%82">
 <p>
为什么我从这本书开始学习maxima？
实际上我不能说这本书是一种很好的学习资料。
它的两位作者都不是专门做程序语言的专家，而是物理学家。
所以从文本容易判断，他们不太理解程序语言的怪点。
比如他们不理解“函数”和“宏”的区别。
（阅读过我关于CMake的短评的读者可能现在有“已经见过”的感觉。）
那为什么我能够容忍？
</p>

 <p>
是因为他们的书有练习题。
对我来说这很头疼。
我见过很多讲的比较好的书籍，但没有任何练习题。
从我的经验来讲，没有练习题严重影响学习效果。
当然，我本身有一些经验，会为自己出练习题。
但是总体来说，我感觉回答作者提供的练习题既快，又有效。
</p>

 <p>
如上所述，该书包含几个练习题。
阅读这本书的主要文本我需要14个小时。
不能说很长时间，有可能因为我学习程序语言的经验比较丰富。
</p>

 <p>
读完主要内容之后我开始解决练习题。
解决问题的过程没有想象的那么简单。
这本书的练习册由5个练习题组成。
第一个和第二个练习题比较容易理解。
只需要仔细的阅读这本书和maxima的官方说明书。
做这两个练习题我需要13个小时，然后在13个小时内我适应了使用大部分maxima的常见结构：
表达式，函数，宏，循环，递归，块，代码生成。
</p>

 <p>
第三个问题要求我作出更多的努力。
是因为它是关于量子力学的，基本上需要我运算算子的函数。
我从大学的时候没有用过量子物理，所以需要刷新我的知识。
</p>
</div>
</div>

 <div id="outline-container-%E5%AD%A6%E4%B9%A0%E9%87%8F%E5%AD%90%E5%8A%9B%E5%AD%A6%E3%80%82" class="outline-3">
 <h3 id="%E5%AD%A6%E4%B9%A0%E9%87%8F%E5%AD%90%E5%8A%9B%E5%AD%A6%E3%80%82"> <span class="section-number-3">1.2.</span>  <a href="#%E5%AD%A6%E4%B9%A0%E9%87%8F%E5%AD%90%E5%8A%9B%E5%AD%A6%E3%80%82">学习量子力学。</a></h3>
 <div class="outline-text-3" id="text-%E5%AD%A6%E4%B9%A0%E9%87%8F%E5%AD%90%E5%8A%9B%E5%AD%A6%E3%80%82">
 <p>
如上所述，那本带练习题的书是被理论物理学家写的。
而且第三个和第四个练习题都是关于量子力学。
</p>

 <p>
为了刷新我的量子力学的知识我选了Michel Talagrand的“What is Quantum Field Theory”.
为什么我选了它，并且如果我决定对每个书写短评，为什么我把它提到这里？
</p>

 <p>
第一个问题的答案是：因为在我们的“计算理论社会”，Talagrand被算最尊敬的领袖之一。
实际上，量子力学，尤其是量子场论，跟算法理论和编程不那么近，所以越有意思查询我们的师公对没有关系的领域的看法。
于是，我开始阅读这本书不太厚望好介绍。
越更开心我发现他的第一章的普通的量子力学（不包含量子场论）的介绍写的比较清晰，包括足够的练习题，并且它的数学严格性比一般的物理学书更高。
</p>

 <p>
我很重视他提到几本关于量子理论书，所以不清楚的地方读者可以查看。
</p>

 <p>
我没有阅读整个书，35章中我只阅读了三个介绍普通的量子力学的。
所有现在我的经验不满足写短评的需求。
这是第二个问题的回答。
</p>

 <p>
不过，如果读者对量子理论感兴趣，我可以推荐Talagrand的书。
</p>
</div>
</div>

 <div id="outline-container-%E7%BB%A7%E7%BB%AD%E8%B0%83%E7%A0%94maxima" class="outline-3">
 <h3 id="%E7%BB%A7%E7%BB%AD%E8%B0%83%E7%A0%94maxima"> <span class="section-number-3">1.3.</span>  <a href="#%E7%BB%A7%E7%BB%AD%E8%B0%83%E7%A0%94maxima">继续调研maxima</a></h3>
 <div class="outline-text-3" id="text-%E7%BB%A7%E7%BB%AD%E8%B0%83%E7%A0%94maxima">
 <p>
Talagrand的书让我下次理解练习的题主，但是我还是没有完全回答它们。
综合来说，第一和第二个练习题一起要求我耗15个小时，比只阅读上述的课本差不多。
但是第三和第四个练习题已经令我花30多个小时，要求我理解maxima的格式匹配的算法，完全的阅读maxima的官方说明书，甚至在maxima开发者邮件列表问几个问题。
</p>

 <p>
到底，maxima作者之一帮我写作基础调和振动的代数，而且我花了几天适应他满足练习题的需求，但是还是失败了。
事实上，那时我已经算本项目落空。
</p>

 <p>
这个失败的项目让我考虑很长时间。
甚至maxima的开发者偷偷的建议使用大规模商业软件做数学分析，比如Mathematica或Maple。
怎么一回事？
怎么办？
</p>

 <p>
我在未来还是思考学写FriCAS，另外一个数学软件。
那个FriCAS比maxima更大，更复杂，也不一定会满足我的需求。
</p>

 <p>
我是否还是需要学Mathematica?
我在过去查一次Mathematica，感觉哭笑不得：什么都会，但是在所有的方面被限制的软件。
</p>

 <p>
方正，我发现了Maxima的VTK支持好像几年没有维护，在2023用不了。
让我不开心。
</p>

 <p>
不过，什么样的任务Maxima会做好？
</p>

 <p>
虽然量子力学不是Maxima的有点，很多任务它会完成。
比如符号微分学和积分学，为分方程式。
第一年，第二年的学生们可能获益使用它做作业。
我也见很多课本使用它插图力学：静力学和动力学。
互联网上也可以找很优秀的课程：如何使用Maxima做经济模型。
</p>

 <p>
Maxima的Fortran和C接口和比较满意，可以使用Maxima分析问题之后生成Fortran或C++的代码。
</p>
</div>
</div>
</section> <section id="outline-container-%E7%BB%93%E8%AE%BA" class="outline-2"> <h2 id="%E7%BB%93%E8%AE%BA"> <span class="section-number-2">2.</span>  <a href="#%E7%BB%93%E8%AE%BA">结论</a></h2>
 <div class="outline-text-2" id="text-%E7%BB%93%E8%AE%BA">
 <p>
我希望在未来maxima会为我的服务，比如做插图或者可视化函数。
但是现在的用户经验比我预计不那么好。
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-08-27_how-I-studied-Maxima.d/index.html"/>
  <id>https://lockywolf.net/2023-08-27_how-I-studied-Maxima.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Podman for DevOps by Alessandro Arrichiello (Review in Chinese)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Podman for DevOps by Alessandro Arrichiello (Review in Chinese)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E8%AF%84%E8%AE%BA">1. 评论</a>
 <ul> <li> <a href="#Podman%E6%A6%82%E5%BF%B5,%E5%85%A5%E9%97%A8%E4%BB%8B%E7%BB%8D">1.1. Podman概念,入门介绍</a></li>
 <li> <a href="#%E7%BB%93%E6%9E%84">1.2. 结构</a></li>
 <li> <a href="#%E7%BC%BA%E7%82%B9">1.3. 缺点</a></li>
 <li> <a href="#%E4%BC%98%E7%82%B9">1.4. 优点</a></li>
</ul></li>
 <li> <a href="#%E7%BB%93%E8%AE%BA">2. 结论</a></li>
 <li> <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">3. 联系方式</a></li>
</ul></div>
</nav> <p>
在这篇文章里我要写我阅读了Podman for Devops之后产生的观点。
我希望此短评能帮助大家推理阅读它是否是一个好的想法。
</p>

 <p>
这本书继续我的“学习现代电脑用法”的系列。
本系列中还介绍了关于PAM，SELinux、CMake、Networking、TCP/IP的书。
诚邀读者浏览我的网站。
</p>

 <section id="outline-container-%E8%AF%84%E8%AE%BA" class="outline-2"> <h2 id="%E8%AF%84%E8%AE%BA"> <span class="section-number-2">1.</span>  <a href="#%E8%AF%84%E8%AE%BA">评论</a></h2>
 <div class="outline-text-2" id="text-%E8%AF%84%E8%AE%BA">
</div>

 <div id="outline-container-Podman%E6%A6%82%E5%BF%B5,%E5%85%A5%E9%97%A8%E4%BB%8B%E7%BB%8D" class="outline-3">
 <h3 id="Podman%E6%A6%82%E5%BF%B5,%E5%85%A5%E9%97%A8%E4%BB%8B%E7%BB%8D"> <span class="section-number-3">1.1.</span>  <a href="#Podman%E6%A6%82%E5%BF%B5,%E5%85%A5%E9%97%A8%E4%BB%8B%E7%BB%8D">Podman概念,入门介绍</a></h3>
 <div class="outline-text-3" id="text-Podman%E6%A6%82%E5%BF%B5,%E5%85%A5%E9%97%A8%E4%BB%8B%E7%BB%8D">
 <p>
Podman是一种操作系统层虚拟化工具。
其实，这里“虚拟化”是一个不恰当的名称。
容器技术基本上如下所述。
操作系统内核为所有的进程提供系统资源，比如：内存地图，行程间通讯，CPU内核数量，等等。
在普通的系统里，内核为每个进程提供正确的信息。
在容器里，操作系统内核有意提供被修正的信息，为了给进程造成独立操作系统的感觉。
</p>

 <p>
换句话说,在使用虚拟机的时候，虚拟机为客户机操作系统提供一套完全虚构的硬件观点。
在容器里，所有的硬件资源都是一样的，但是内核观点是不同的。
</p>

 <p>
Podman是一种调整内核观点的前端。
严格来说，这些终端并不是必要的。
Linux默认有几个更低层的工具，让管理员手动调整进程的资源分享。
但是使用低层工具设计一个虚拟环境需要消耗很大的工作量。
Podman的用户经验跟Docker很像。
Docker是普及容器技术最多的项目。
但是RedHat需要有自己的可控制的容器前端，所以创建了Podman。
</p>
</div>
</div>


 <div id="outline-container-%E7%BB%93%E6%9E%84" class="outline-3">
 <h3 id="%E7%BB%93%E6%9E%84"> <span class="section-number-3">1.2.</span>  <a href="#%E7%BB%93%E6%9E%84">结构</a></h3>
 <div class="outline-text-3" id="text-%E7%BB%93%E6%9E%84">
 <p>
这本书是由三个部分组成的：摘要和基本操作、创造新容器、podman和其它软件合作。
</p>

 <p>
我不能说这本书很详细的描述Linux容器框架。
它描述比较高的层次，但是不介绍具体的命名空间结构。
可能是为了使用podman不需要非常详细的理解namespace，但是我预期这种书把基本信息应该介绍的更好。
</p>
</div>
</div>

 <div id="outline-container-%E7%BC%BA%E7%82%B9" class="outline-3">
 <h3 id="%E7%BC%BA%E7%82%B9"> <span class="section-number-3">1.3.</span>  <a href="#%E7%BC%BA%E7%82%B9">缺点</a></h3>
 <div class="outline-text-3" id="text-%E7%BC%BA%E7%82%B9">
 <p>
我猜，为了帮助读者判断这本书是否值得阅读，我应该强调缺点，因为毕竟易读性大部分凭借忍耐缺点而不是享受优点。
</p>

 <p>
我最不喜欢的是：这本书很少讨论存储管理，尤其是虚拟文件系统——overlayfs/btrfs.
其实，所有的容器技术有两个重点：存储和网络。
这本书讨论默认的图形驱动（overlayfs），但是不讨论btrfs和zfs。
</p>

 <p>
综合来说，这本书有点松散。
易读，容易理解，脑筋比较享受，但是如果问自己是不是会复述它的逻辑，不一定会回应“是”。
</p>

 <p>
是少两章“base image”和“container registry”线性阅读这本书的时候可以忽略。
</p>

 <p>
一章针对检修故障，虽然作者结案以的调试方法都比较平淡无奇。
</p>
</div>
</div>

 <div id="outline-container-%E4%BC%98%E7%82%B9" class="outline-3">
 <h3 id="%E4%BC%98%E7%82%B9"> <span class="section-number-3">1.4.</span>  <a href="#%E4%BC%98%E7%82%B9">优点</a></h3>
 <div class="outline-text-3" id="text-%E4%BC%98%E7%82%B9">
 <p>
但是另一方面，这本书容器创建的过程描述的比较好。
</p>

 <p>
这本书为我介绍了我到目前没有接触过的领域：纯云计算。
这个范式是针对大互联网公司做分布式web服务的。
毕竟这本书的名称包括“For Devops”，但是我原来只见过大概相似“系统管理”的Devops。
</p>

 <p>
我也比较喜欢它介绍POSIX Capabilites的概念。
尤其是，它建议我怎么通过capsh避免设置文件Capabilities。
</p>

 <p>
我也喜欢这本书介绍容器和SELinux的互动。
我已经度过Vermeulen的关于SELinux的书，但是那时我感觉。
现在我能从另一个角度看同样的互动。
</p>

 <p>
还有一个好处：这本书在每个高等章列出需要的知识。
</p>

 <p>
我比较喜欢这本书不忽略podman和其它工具合作。
我已经提到了selinux，但是这本书也包含buildah,skopeo,quarkus,kubernetes和udica.
让读者看更宽的背景。
</p>
</div>
</div>
</section> <section id="outline-container-%E7%BB%93%E8%AE%BA" class="outline-2"> <h2 id="%E7%BB%93%E8%AE%BA"> <span class="section-number-2">2.</span>  <a href="#%E7%BB%93%E8%AE%BA">结论</a></h2>
 <div class="outline-text-2" id="text-%E7%BB%93%E8%AE%BA">
 <p>
总体来说，这本书更好使用为参考书，而不是为介绍。
我大概会给它70%的分数。
</p>
</div>
</section> <section id="outline-container-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F" class="outline-2"> <h2 id="%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F"> <span class="section-number-2">3.</span>  <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">联系方式</a></h2>
 <div class="outline-text-2" id="text-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">
 <p>
如果您在此博客或其他页面中发现任何对您有用的内容，请订阅并打赏。
请您转发、分享和讨论，您的反馈可以帮助我变得更好。
</p>

 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-09-04_Podman-for-DevOps-by-Alessandro-Arrichiello-Chinese-Review.d/index.html"/>
  <id>https://lockywolf.net/2023-09-04_Podman-for-DevOps-by-Alessandro-Arrichiello-Chinese-Review.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Review on the computer game Skyrim.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Review on the computer game Skyrim.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Содержание</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%D0%9E%D0%B1%D0%B7%D0%BE%D1%80">1. Обзор</a></li>
</ul></div>
</nav> <p>
В этом документе я хочу описать свои впечатления от компьютерной игры «Скайрим», которую я прошёл в 2023 году, потому что болел, и больше меня ни на что не хватало.
</p>

 <p>
Верный своему принципу «с паршивой овцы хоть шерсти клок», хочу в этом файле изложить свои впечатления.
</p>

 <p>
Игра вышла в 2011 году, больше 10 лет назад, играл я в неё на видеокарте 2014 года, так что опыт должен быть более-менее репрезентативный.
</p>

 <section id="outline-container-%D0%9E%D0%B1%D0%B7%D0%BE%D1%80" class="outline-2"> <h2 id="%D0%9E%D0%B1%D0%B7%D0%BE%D1%80"> <span class="section-number-2">1.</span>  <a href="#%D0%9E%D0%B1%D0%B7%D0%BE%D1%80">Обзор</a></h2>
 <div class="outline-text-2" id="text-%D0%9E%D0%B1%D0%B7%D0%BE%D1%80">
 <p>
Начать надо с того, что эта игра – полное говно, просто безнадёжное, и ничто её не спасает.
</p>

 <p>
Нельзя сказать, что я совсем не знал, за что берусь.
Я играл в «Oblivion», когда он вышел, я играл в другие игры от Bethesda Softworks на том же движке, в разные варианты Fallout, и, кстати, не так давно поднимал «Morrowind», как самый известный пример игры на движке Ogre.
</p>

 <p>
То есть, я примерно представлял себе плюсы и минусы продукта, обычно выпускаемого Bethesda.
Но «Скайрим» побил все мои ожидания.
</p>

 <p>
Настолько нудной и наотъебись сделанной игры я не видел давно.
Я прямо реально был поражён.
Пожалуй, я могу вспомнить единственную настолько же пустую и бессмысленную игру – это Sacred, 2004 года выпуска.
</p>

 <p>
То есть нет, не так.
Игра сделана очень качественно, «для некоторого специфического определения, что такое качество».
</p>

 <p>
Качественна она в одном – в том, чтобы удерживать внимание игрока, заставляя наигрывать бесконечные часы тупого грайнда, более всего напоминающего MMORPG.
(На полях отметим, что The Elder Scrolls Online вышла позже «Скайрима», то есть даже списать бесконечную скуку на то, что в компании осталось много людей, трудоустроенных после построения MMOG, как-то не получается.)
</p>

 <p>
То есть, я никогда не видел более живого воплощения идеи «красивая оболочка, пустая внутри».
Даже «крестоносцы меча и магии», в которых можно было иногда провалиться под карту и рассмотреть убогие лабиринтики снаружи, такого пластикового впечатления не производили.
</p>

 <p>
То есть, есть гигантская карта, я уже не знаю, больше, чем в Обливионе, или меньше, но очень приличная по размеру.
На карте разбросаны «достопримечательности».
Какой в них смысле?
А хер его знает.
Единственное их достоинство – это красивые названия.
</p>

 <p>
В нормальной РПГ по этим достопримечательностям протагониста должны провести какие-нибудь квесты, ну или хоть, по контексту должно быть понятно, какую роль в происходящем играют эти руины, башни, посёлки.
Ничего подобного в «Скайриме» нет.
Достопримечательности наклёпаны методом копипаста, выполняя KPI «нужное количество руин на квадратный километр карты».
</p>

 <p>
Не было же такого в «Обливионе»!
Да, в обливионе тоже были бессмысленные пещеры, но для их применения существовало хоть какое-то понимание, зачем они нужны.
На осмотр пещер, например, выдавались квесты в ближайших деревнях.
В Скайриме если квест на осмотр и выдаётся, то где-то в ничем не связанном с достопримечательностью месте через пол-карты.
</p>

 <p>
Но как «выдаётся»?
Персонажи озвучены – это знак большого бюджета, но больше про квесты нельзя сказать ни одного хорошего слова.
Текст реплик отсутствует – вещающий персонаж говорит крайне медленно, дослушать его до конца выше сил нормального человека, поэтому реплики пропускаются мимо.
А потом где они записаны?
А нигде, потому что интерфейс игры делался наотъебись.
</p>

 <p>
Серьёзно, я в шоке.
В «Моровинде» был невероятно убогий интерфейс, но в нём хотя бы был «дневник».
В «Скайриме» же … с одной стороны, литературными неграми настрочено невероятное количество текстов в книжки, да даже в диалоги, а найти в них нужное – не просто сложно (как в Морровинде), а просто невозможно, потому что ключевые тексты не сохраняются.
Эффективные менеджеры делали игру.
</p>

 <p>
Вообще, интерфейс заслуживает отдельного абзаца осуждения.
Он плох буквально всем.
Сравнить параметры оружия невозможно, уточнить параметры оружия/заклинаний из «быстрого меню» невозможно, есть три разных меню для «избранного», очень похожих, но разных, специально, чтобы запутаться.
Посмотреть «что на персонаже надето» – невозможно.
Сравнить надетое с запасённым – невозможно.
Да даже отличить полезный предмет от бесполезного – невозможно совершенно.
</p>

 <p>
Кто-то может сказать, что в этом есть некий повышенный ролеплей – чтобы не знать, полезен предмет, или бесполезен.
Но если уж это и было каким-то хитрым замыслом, то уж тогда можно было бы сделать хоть заклинание какое-нибудь, которое должно было бы объяснять, полезен ли предмет.
Как «ясновидение» подсказывает, куда идти.
Но такого заклинания нет, то есть, это не часть ролеплея, это просто работа сделана наотъебись.
</p>

 <p>
В целом, про систему магии, да и «умений» в целом тоже нельзя сказать ничего хорошего.
Бюрократии много, толку мало.
Были же игры раньше, в которых магия была какой-то задорной?
«Меч и Магия» хотя бы, или «Готика».
Много разных заклинаний, которые все делали разные вещи, и не вызывали ощущения собирания марок.
</p>

 <p>
В «Скайриме» же три «стихии» имеют только косметические различия.
Повреждения касанием, «стрела», и «мина» – вот тебе три и весь ассортимент заклинаний.
Есть ещё куча бесполезных, но чего о них рассказывать?
Даже, например «дыхание под водой», ну, на первый взгляд, классная же штука, должна открывать тебе пол-карты новых локаций и секретов, вроде подводных пещер.
Но нет, ни фига.
Дыши-не дыши, а под водой ничего нет, поэтому этот скилл бесполезен.
</p>

 <p>
Правда, чего уж там, почти все игровые механики в «Скайриме» оставляют ощущение собирания марок.
Какие-то предметы можно как-то там чинить, зачаровывать, улучшать, зелья варить, чего-то ещё такое.
Единого места, где это записано, не существует, систематизации нет, если не ходить гуглить каждые 5 минут, и не рисовать деревья крафта вручную.
Да и зачем это делать, непонятно, всё равно в результате крафта ничего хорошего не получается.
</p>

 <p>
Правда, не надо думать, что бесполезен только крафт.
Бесполезно в «Скайриме» почти всё.
Одна из самых фрустрирующих игр в мире.
Поубивал каких-нибудь скелетов или разбойников, можешь даже не затеваться смотреть, что там на них висит.
Иди сразу к сундуку.
Серьёзно, это  <span class="underline">единственная</span> РПГ, в которой лутать врагов не просто скучно, но и бесполезно.
</p>

 <p>
Кстати, на счёт «поубивал».
Враги убиваются не легко, то тоже очень скучно.
Баланса игровых тактик нет никакого, на каждую тактику противника существует единственная контр-тактика, поэтому о специализации персонажа можете забыть.
Прокачка тут бывает исключительно «правильная» и «неправильная».
Ну, и, конечно, как не упомянуть о том, что враги, как это и положено в каждой днищенской игре, «тупые, но меткие».
Натурально, в «Готике» за 2000 года враги давали более увлекательные схватки, чем в «Скайриме».
Ну, а вишенка на торте – враги в «Скайриме» –  <span class="underline">стрейфятся</span>.
Натурально, как-будто на дворе 1999 год, а мы играем в «Контр-Страйк».
Хорошо хоть, не приседают, чтобы уменьшить площадь поражения, как в одной другой известной игре, и не телепортируются к тебе, как в другой.
Но в целом, как уже сказано, невероятно скучно с врагами бодаться.
Как можно было сделать такую скучную боёвку после «Нового Фаллаута», вне моего понимания.
</p>

 <p>
Ладно, вернёмся к луту.
В целом, если задаться такой задачей, то можно прокачать грузоподъёмность персонажа, и попытаться зарабатывать деньги на продаже лута торговцам, но в Скайриме и на пути этой базовой ролевой игровой механики встают косяки системы.
Лут стоит жалкие копейки, таскать его туда-сюда через «быстрое перемещение» очень скоро становится так же нудно, как и играть в MMOG.
</p>

 <p>
Ну, напоследок, наверное, можно написать, что в бочке дёгтя не без ложки мёда.
Всё-таки в «Скайриме» есть красивые пейзажи.
Правда есть.
По окрестностям многих городов поначалу хочется походить, чтобы насладиться видами, из которых некоторые даже, таки, нетривиальны.
Правда, с ними всё равно не связано никакой игровой механики, и на озёрной ферме нет никаких лодок, а мельницы и лесопилки ничего не делают, но хотя бы посмотреть на них приятно.
(Если бы моя видеокарта тянула нормальные настройки.)
</p>

 <p>
В заключение, должен сказать, что у «Скайрима» есть одно неоспоримое достоинство.
Он надолго даёт прививку от желания «сесть поиграть во что-нибудь».
Сядешь, зачистишь парочку нахер никому ни зачем не нужных данжей (слово-то какое) с тупыми ботами, нудной боёвкой, бесполезными трофеями, которые ещё и никак не продвинут тебя по сюжету, да даже нет такого места, где ты мог был посмотреть статистику «освоения карты мира», и поймёшь, что все эти цифровые развлечение – это занудное дрочерство на пиксели, интеллектуальная ловушка, суррогат отдыха, и бессмысленная трата времени.
И станет тебе хорошо, от того, что когда ты не болеешь, ты занимаешься чем-то другим.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-09-19_Review-on-Skyrim-2023.d/index.html"/>
  <id>https://lockywolf.net/2023-09-19_Review-on-Skyrim-2023.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>How to make a good feed reader.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How to make a good feed reader.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract">1.  <span class="todo TODO">TODO</span> Abstract    <span class="tag"> <span class="ignore">ignore</span></span></a></li>
 <li> <a href="#Requirements.">2.  <span class="todo TODO">TODO</span> Requirements.</a>
 <ul> <li> <a href="#Reliable-(including-heuristics)-work-with-sources.">2.1. Reliable (including heuristics) work with sources.    <span class="tag"> <span class="TODO">TODO</span></span></a>
 <ul> <li> <a href="#Many-people-who-worked-with-RSS-readers-notice-that-feeds-are-unreliable.">2.1.1. Many people who worked with RSS readers notice that feeds are unreliable.</a></li>
 <li> <a href="#What-is-less-obvious-is-that-proprietary-services-are-also-unreliable.">2.1.2. What is less obvious is that proprietary services are also unreliable.</a></li>
 <li> <a href="#Feeds-are-_the-source_-of-information,-but-the-reader-should:">2.1.3. Feeds are  <span class="underline">the source</span> of information, but the reader should:    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#There-should-be-a-way-to-write-feed-fetchers-manually,-for-sources-which-have-no-obvious-feed-structure.">2.1.4. There should be a way to write feed-fetchers manually, for sources which have no obvious feed structure.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#There-should-be-a-way-to-poll-feeds-via-obfuscated-means,-such-as-TOR.">2.1.5. There should be a way to poll feeds via obfuscated means, such as TOR.</a></li>
 <li> <a href="#There-should-be-a-way-to-pretend-to-be-a-naive-(official)-feed-fetcher.">2.1.6. There should be a way to pretend to be a naive (official) feed fetcher.</a></li>
 <li> <a href="#There-should-be-a-way-to-work-around-CAPTCHAs,-or-offload-them-to-Mechanical-Turk-or-myself.">2.1.7. There should be a way to work around CAPTCHAs, or offload them to Mechanical Turk or myself.</a></li>
 <li> <a href="#Images-and-videos-should-be-downloaded,-cached,-re-coded,-and-analysed.">2.1.8. Images and videos should be downloaded, cached, re-coded, and analysed.</a></li>
</ul></li>
 <li> <a href="#Clusterable-and-cacheable.">2.2. Clusterable and cacheable.</a>
 <ul> <li> <a href="#It-is-fine-to-have-a-single-source-of-truth,-but-all-data-should-be-also-cached-locally-on-all-devices.">2.2.1. It is fine to have a single source of truth, but all data should be also cached locally on all devices.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#It-should-be-possible-to-work-with-the-reader-completely-offline.">2.2.2. It should be possible to work with the reader completely offline.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
</ul></li>
 <li> <a href="#Feeds-should-be-organised-hierarchically.">2.3. Feeds should be organised hierarchically.</a>
 <ul> <li> <a href="#%22Folders%22-appeared-in-Telegram-after-5-years-of-existence.">2.3.1. "Folders" appeared in Telegram after 5 years of existence.</a></li>
 <li> <a href="#%22Folders%22-do-not-even-exist-in-a-reasonable-way-in-WhatsApp,-WeChat,-Discord,-and-such.">2.3.2. "Folders" do not even exist in a reasonable way in WhatsApp, WeChat, Discord, and such.</a></li>
 <li> <a href="#%22Folders%22-have-existed-in-email-for-ages.">2.3.3. "Folders" have existed in email for ages.</a></li>
 <li> <a href="#There-should-be-a-programmatic-way-to-create-folders,-based-on-keywords,-regexps,-hooks,-or-something-like-that.">2.3.4. There should be a programmatic way to create folders, based on keywords, regexps, hooks, or something like that.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
</ul></li>
 <li> <a href="#Messages-should-have-tags.">2.4. Messages should have tags.    <span class="tag"> <span class="TODO">TODO</span></span></a>
 <ul> <li> <a href="#Gmail-has-had-tags-for-years.">2.4.1. Gmail has had tags for years.</a></li>
 <li> <a href="#tags-must-be-supported-as-coming-from-at-least-the-following-sources:">2.4.2. Tags must be supported as coming from at least the following sources:    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#Tags-must-be-updated-periodically.">2.4.3. Tags must be updated periodically.</a></li>
 <li> <a href="#There-should-be-a-way-to-detect-and-gracefully-process-%22invalid%22-tags,-that-is-if-a-tag-meaning-has-been-changed-by-the-user-later,-or-if-a-manual-tag-is-later-found-to-be-conflicting-with-an-algorithmic-tagging-rule.">2.4.4. There should be a way to detect and gracefully process "invalid" tags, that is if a tag meaning has been changed by the user later, or if a manual tag is later found to be conflicting with an algorithmic tagging rule.</a></li>
 <li> <a href="#Tags-should-be-not-just-words,-but-key-value-pairs.">2.4.5. Tags should be not just words, but key-value pairs.</a></li>
</ul></li>
 <li> <a href="#The-interface-must-support-content-filtering-and-querying.">2.5. The interface must support content filtering and querying.</a>
 <ul> <li> <a href="#Based-on-categories-or-tags,-the-messages/entries-must-support-the-following-ways-of-noise-reduction">2.5.1. Based on categories or tags, the messages/entries must support the following ways of noise reduction    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#Querying-should-be-at-least-the-following.">2.5.2. Querying should be at least the following.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#Message-sorting-and-prioritisation-should-be-supported.">2.5.3. Message sorting and prioritisation should be supported.</a></li>
</ul></li>
 <li> <a href="#The-database-should-be-tightly-integrated-with-an-Address-Book-(possibly-a-different-piece-of-software).">2.6. The database should be tightly integrated with an Address Book (possibly a different piece of software).</a>
 <ul> <li> <a href="#When-I-am-adding-a-user-into-my-address-book,-I-want-their-accounts-to-be-automatically-added-to-the-reader.">2.6.1. When I am adding a user into my address book, I want their accounts to be automatically added to the reader.</a></li>
 <li> <a href="#Anonymous-message-(badly-signed-messages-in-public-channels)-should-be-processed-for-author-detection-heuristically.">2.6.2. Anonymous message (badly signed messages in public channels) should be processed for author detection heuristically.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#I-want-to-have-some-match-between-an-author-and-an-organisation-they-work-for.">2.6.3. I want to have some match between an author and an organisation they work for.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#The-Address-Book-should-take-into-account-that-authors-sometimes-switch-%22account-IDs%22,-by,-say-exchanging-their-phones.">2.6.4. The Address Book should take into account that authors sometimes switch "account IDs", by, say exchanging their phones.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#The-Address-Book-should-take-into-account-that-sometimes-different-authors-use-the-same-%22account-ID%22.">2.6.5. The Address Book should take into account that sometimes different authors use the same "account ID".    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#The-Address-Book-might-have-a-lot-of-metadata-on-authors.">2.6.6. The Address Book might have a lot of metadata on authors.</a></li>
 <li> <a href="#Adding-authors-should-be-possible-from-external-tools.-(But-this-is-not-about-the-Feed-System-feature.)">2.6.7. Adding authors should be possible from external tools. (But this is not about the Feed System feature.)</a></li>
</ul></li>
 <li> <a href="#The-reader-should-have-a-rudimentary-system-for-content-analysis.">2.7.  <span class="todo TODO">TODO</span> The reader should have a rudimentary system for content analysis.</a>
 <ul> <li> <a href="#It-should-be-able-to-generate-summaries-for-channels-which-have-too-many-posts,-using-LLM-or-rewriting.">2.7.1. It should be able to generate summaries for channels which have too many posts, using LLM or rewriting.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#It-should-generate-channel/author-statistics-at-will.">2.7.2. It should generate channel/author statistics at will.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#It-should-generate-an-analysis-of-_my_-brain.">2.7.3. It should generate an analysis of  <span class="underline">my</span> brain.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
 <li> <a href="#It-should-generate-image-descriptions-with-LLM.">2.7.4. It should generate image descriptions with LLM.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
</ul></li>
 <li> <a href="#The-system-should-support-content-sharing.">2.8.  <span class="todo TODO">TODO</span> The system should support content sharing.</a>
 <ul> <li> <a href="#It-should-be-easy-to-share-a-link-to-a-message-and-its-saved-copy-and-edit-history.">2.8.1. It should be easy to share a link to a message and its saved copy and edit history.    <span class="tag"> <span class="TODO">TODO</span></span></a></li>
</ul></li>
 <li> <a href="#The-system-should-support-smart-message-storage.">2.9. The system should support smart message storage.</a>
 <ul> <li> <a href="#Ideally,-there-should-never-be-an-need-to-delete-any-old-content.">2.9.1. Ideally, there should never be an need to delete any old content.</a></li>
 <li> <a href="#The-system-should-support-a-way-to-combat-adversarial-(but-standard-compliant)-behaviour,-such-as-sending-huge-amount-of-worthless-heavy-data.">2.9.2. The system should support a way to combat adversarial (but standard-compliant) behaviour, such as sending huge amount of worthless heavy data.</a></li>
</ul></li>
 <li> <a href="#The-system-should-have-some-integration-with-instant-and-asynchronous-messaging.">2.10. The system should have some integration with instant and asynchronous messaging.    <span class="tag"> <span class="TODO">TODO</span></span></a>
 <ul> <li> <a href="#Instant-messaging-is-fast-and-convenient.">2.10.1. Instant messaging is fast and convenient.</a></li>
 <li> <a href="#Instant-messaging-might-be-one-source-of-messages/posts-in-a-feed,-if-we-find-a-way-to-cluster-messages-by-topic,-and,-possibly,-summarise-them.">2.10.2. Instant messaging might be one source of messages/posts in a feed, if we find a way to cluster messages by topic, and, possibly, summarise them.</a></li>
 <li> <a href="#It-might-be-possible-to-leave-a-comment-to-a-post,-when-needed.-But-this-is-not-well-thought-through.">2.10.3. It might be possible to leave a comment to a post, when needed. But this is not well thought-through.</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Possible-implementation-details.">3.  <span class="todo TODO">TODO</span> Possible implementation details.</a>
 <ul> <li>
 <ul> <li> <a href="#TinyTinyRss.">3.0.1. TinyTinyRss.</a></li>
 <li> <a href="#Rss-Bridge.">3.0.2. Rss-Bridge.</a></li>
 <li> <a href="#Selenium.">3.0.3. Selenium.</a></li>
 <li> <a href="#Llama2">3.0.4. Llama2</a></li>
 <li> <a href="#Lisp">3.0.5. Lisp</a></li>
</ul></li>
</ul></li>
 <li> <a href="#References.">4.  <span class="todo TODO">TODO</span> References.</a></li>
</ul></div>
</nav> <section id="outline-container-Abstract" class="outline-2"> <h2 id="Abstract"> <span class="section-number-2">1.</span>  <a href="#Abstract"> <span class="todo TODO">TODO</span> Abstract    <span class="tag"> <span class="ignore">ignore</span></span></a></h2>
 <div class="outline-text-2" id="text-Abstract">
 <p>
This file is about how to create a good feed reader in 2023.
</p>

 <p>
Recently I had a discussion with my friend, about what makes modern messengers to be an example of (possibly, intentional) bad design.
</p>

 <p>
This file is a place where I want to write down my wish list for a good feed reader, that would be worth implementing eventually.
</p>

 <p>
In this document, the "TODO" marker at the beginning of the headline signifies that this headline is not finished.
In this document, the "TODO" tag (at the end of the line) signifies that this line can be interpreted as a task in a design document.
</p>
</div>
</section> <section id="outline-container-Requirements." class="outline-2"> <h2 id="Requirements."> <span class="section-number-2">2.</span>  <a href="#Requirements."> <span class="todo TODO">TODO</span> Requirements.</a></h2>
 <div class="outline-text-2" id="text-Requirements.">
</div>

 <div id="outline-container-Reliable-(including-heuristics)-work-with-sources." class="outline-3">
 <h3 id="Reliable-(including-heuristics)-work-with-sources."> <span class="section-number-3">2.1.</span>  <a href="#Reliable-(including-heuristics)-work-with-sources.">Reliable (including heuristics) work with sources.    <span class="tag"> <span class="TODO">TODO</span></span></a></h3>
 <div class="outline-text-3" id="text-Reliable-(including-heuristics)-work-with-sources.">
 <p>
This point is, perhaps, the most important of all, hence it goes first.
</p>
</div>

 <div id="outline-container-Many-people-who-worked-with-RSS-readers-notice-that-feeds-are-unreliable." class="outline-4">
 <h4 id="Many-people-who-worked-with-RSS-readers-notice-that-feeds-are-unreliable."> <span class="section-number-4">2.1.1.</span>  <a href="#Many-people-who-worked-with-RSS-readers-notice-that-feeds-are-unreliable.">Many people who worked with RSS readers notice that feeds are unreliable.</a></h4>
 <div class="outline-text-4" id="text-Many-people-who-worked-with-RSS-readers-notice-that-feeds-are-unreliable.">
</div>

 <ol class="org-ol"> <li> <a id="Not-just-the-way-they-are-served-is-unreliable,-but-the-content-is-unreliable-too.-It-might-appear-and-disappear."></a> <a href="#Not-just-the-way-they-are-served-is-unreliable,-but-the-content-is-unreliable-too.-It-might-appear-and-disappear.">Not just the way they are served is unreliable, but the content is unreliable too. It might appear and disappear.</a> <br></br> <div class="outline-text-5" id="text-Not-just-the-way-they-are-served-is-unreliable,-but-the-content-is-unreliable-too.-It-might-appear-and-disappear.">
</div>
</li>
</ol></div>

 <div id="outline-container-What-is-less-obvious-is-that-proprietary-services-are-also-unreliable." class="outline-4">
 <h4 id="What-is-less-obvious-is-that-proprietary-services-are-also-unreliable."> <span class="section-number-4">2.1.2.</span>  <a href="#What-is-less-obvious-is-that-proprietary-services-are-also-unreliable.">What is less obvious is that proprietary services are also unreliable.</a></h4>
 <div class="outline-text-4" id="text-What-is-less-obvious-is-that-proprietary-services-are-also-unreliable.">
</div>

 <ol class="org-ol"> <li> <a id="Authors-delete-posts-and-alter-them-at-a-later-time-to-present-a-better-version-of-themselves-to-the-audience."></a> <a href="#Authors-delete-posts-and-alter-them-at-a-later-time-to-present-a-better-version-of-themselves-to-the-audience.">Authors delete posts and alter them at a later time to present a better version of themselves to the audience.</a> <br></br> <div class="outline-text-5" id="text-Authors-delete-posts-and-alter-them-at-a-later-time-to-present-a-better-version-of-themselves-to-the-audience.">
</div>
</li>

 <li> <a id="Self-destruction-of-messages-is-a-humiliation-for-all-adult-human-beings."></a> <a href="#Self-destruction-of-messages-is-a-humiliation-for-all-adult-human-beings.">Self-destruction of messages is a humiliation for all adult human beings.</a> <br></br> <div class="outline-text-5" id="text-Self-destruction-of-messages-is-a-humiliation-for-all-adult-human-beings.">
</div>
</li>
</ol></div>

 <div id="outline-container-Feeds-are-_the-source_-of-information,-but-the-reader-should:" class="outline-4">
 <h4 id="Feeds-are-_the-source_-of-information,-but-the-reader-should:"> <span class="section-number-4">2.1.3.</span>  <a href="#Feeds-are-_the-source_-of-information,-but-the-reader-should:">Feeds are  <span class="underline">the source</span> of information, but the reader should:    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-Feeds-are-_the-source_-of-information,-but-the-reader-should:">
 <ol class="org-ol"> <li>clean them up</li>
 <li>maintain consistency database</li>
 <li>indicated deleted and altered entries</li>
 <li>retry failed entries gracefully</li>
</ol></div>
</div>

 <div id="outline-container-There-should-be-a-way-to-write-feed-fetchers-manually,-for-sources-which-have-no-obvious-feed-structure." class="outline-4">
 <h4 id="There-should-be-a-way-to-write-feed-fetchers-manually,-for-sources-which-have-no-obvious-feed-structure."> <span class="section-number-4">2.1.4.</span>  <a href="#There-should-be-a-way-to-write-feed-fetchers-manually,-for-sources-which-have-no-obvious-feed-structure.">There should be a way to write feed-fetchers manually, for sources which have no obvious feed structure.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-There-should-be-a-way-to-write-feed-fetchers-manually,-for-sources-which-have-no-obvious-feed-structure.">
</div>
</div>

 <div id="outline-container-There-should-be-a-way-to-poll-feeds-via-obfuscated-means,-such-as-TOR." class="outline-4">
 <h4 id="There-should-be-a-way-to-poll-feeds-via-obfuscated-means,-such-as-TOR."> <span class="section-number-4">2.1.5.</span>  <a href="#There-should-be-a-way-to-poll-feeds-via-obfuscated-means,-such-as-TOR.">There should be a way to poll feeds via obfuscated means, such as TOR.</a></h4>
 <div class="outline-text-4" id="text-There-should-be-a-way-to-poll-feeds-via-obfuscated-means,-such-as-TOR.">
</div>
</div>

 <div id="outline-container-There-should-be-a-way-to-pretend-to-be-a-naive-(official)-feed-fetcher." class="outline-4">
 <h4 id="There-should-be-a-way-to-pretend-to-be-a-naive-(official)-feed-fetcher."> <span class="section-number-4">2.1.6.</span>  <a href="#There-should-be-a-way-to-pretend-to-be-a-naive-(official)-feed-fetcher.">There should be a way to pretend to be a naive (official) feed fetcher.</a></h4>
 <div class="outline-text-4" id="text-There-should-be-a-way-to-pretend-to-be-a-naive-(official)-feed-fetcher.">
</div>
</div>

 <div id="outline-container-There-should-be-a-way-to-work-around-CAPTCHAs,-or-offload-them-to-Mechanical-Turk-or-myself." class="outline-4">
 <h4 id="There-should-be-a-way-to-work-around-CAPTCHAs,-or-offload-them-to-Mechanical-Turk-or-myself."> <span class="section-number-4">2.1.7.</span>  <a href="#There-should-be-a-way-to-work-around-CAPTCHAs,-or-offload-them-to-Mechanical-Turk-or-myself.">There should be a way to work around CAPTCHAs, or offload them to Mechanical Turk or myself.</a></h4>
 <div class="outline-text-4" id="text-There-should-be-a-way-to-work-around-CAPTCHAs,-or-offload-them-to-Mechanical-Turk-or-myself.">
</div>
</div>

 <div id="outline-container-Images-and-videos-should-be-downloaded,-cached,-re-coded,-and-analysed." class="outline-4">
 <h4 id="Images-and-videos-should-be-downloaded,-cached,-re-coded,-and-analysed."> <span class="section-number-4">2.1.8.</span>  <a href="#Images-and-videos-should-be-downloaded,-cached,-re-coded,-and-analysed.">Images and videos should be downloaded, cached, re-coded, and analysed.</a></h4>
 <div class="outline-text-4" id="text-Images-and-videos-should-be-downloaded,-cached,-re-coded,-and-analysed.">
</div>
</div>
</div>

 <div id="outline-container-Clusterable-and-cacheable." class="outline-3">
 <h3 id="Clusterable-and-cacheable."> <span class="section-number-3">2.2.</span>  <a href="#Clusterable-and-cacheable.">Clusterable and cacheable.</a></h3>
 <div class="outline-text-3" id="text-Clusterable-and-cacheable.">
</div>

 <div id="outline-container-It-is-fine-to-have-a-single-source-of-truth,-but-all-data-should-be-also-cached-locally-on-all-devices." class="outline-4">
 <h4 id="It-is-fine-to-have-a-single-source-of-truth,-but-all-data-should-be-also-cached-locally-on-all-devices."> <span class="section-number-4">2.2.1.</span>  <a href="#It-is-fine-to-have-a-single-source-of-truth,-but-all-data-should-be-also-cached-locally-on-all-devices.">It is fine to have a single source of truth, but all data should be also cached locally on all devices.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-It-is-fine-to-have-a-single-source-of-truth,-but-all-data-should-be-also-cached-locally-on-all-devices.">
 <ol class="org-ol"> <li>all servers</li>
 <li>laptop</li>
 <li>phone</li>
 <li>tablet</li>
</ol></div>
</div>

 <div id="outline-container-It-should-be-possible-to-work-with-the-reader-completely-offline." class="outline-4">
 <h4 id="It-should-be-possible-to-work-with-the-reader-completely-offline."> <span class="section-number-4">2.2.2.</span>  <a href="#It-should-be-possible-to-work-with-the-reader-completely-offline.">It should be possible to work with the reader completely offline.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-It-should-be-possible-to-work-with-the-reader-completely-offline.">
</div>
</div>
</div>

 <div id="outline-container-Feeds-should-be-organised-hierarchically." class="outline-3">
 <h3 id="Feeds-should-be-organised-hierarchically."> <span class="section-number-3">2.3.</span>  <a href="#Feeds-should-be-organised-hierarchically.">Feeds should be organised hierarchically.</a></h3>
 <div class="outline-text-3" id="text-Feeds-should-be-organised-hierarchically.">
</div>

 <div id="outline-container-%22Folders%22-appeared-in-Telegram-after-5-years-of-existence." class="outline-4">
 <h4 id="%22Folders%22-appeared-in-Telegram-after-5-years-of-existence."> <span class="section-number-4">2.3.1.</span>  <a href="#%22Folders%22-appeared-in-Telegram-after-5-years-of-existence.">"Folders" appeared in Telegram after 5 years of existence.</a></h4>
 <div class="outline-text-4" id="text-%22Folders%22-appeared-in-Telegram-after-5-years-of-existence.">
</div>
</div>

 <div id="outline-container-%22Folders%22-do-not-even-exist-in-a-reasonable-way-in-WhatsApp,-WeChat,-Discord,-and-such." class="outline-4">
 <h4 id="%22Folders%22-do-not-even-exist-in-a-reasonable-way-in-WhatsApp,-WeChat,-Discord,-and-such."> <span class="section-number-4">2.3.2.</span>  <a href="#%22Folders%22-do-not-even-exist-in-a-reasonable-way-in-WhatsApp,-WeChat,-Discord,-and-such.">"Folders" do not even exist in a reasonable way in WhatsApp, WeChat, Discord, and such.</a></h4>
 <div class="outline-text-4" id="text-%22Folders%22-do-not-even-exist-in-a-reasonable-way-in-WhatsApp,-WeChat,-Discord,-and-such.">
</div>

 <ol class="org-ol"> <li> <a id="There-is-a-limited-form-of-hierarchical-organisation-in-Discord-called-%22servers%22,-but-it-is-very-limited."></a> <a href="#There-is-a-limited-form-of-hierarchical-organisation-in-Discord-called-%22servers%22,-but-it-is-very-limited.">There is a limited form of hierarchical organisation in Discord called "servers", but it is very limited.</a> <br></br> <div class="outline-text-5" id="text-There-is-a-limited-form-of-hierarchical-organisation-in-Discord-called-%22servers%22,-but-it-is-very-limited.">
</div>
</li>
</ol></div>

 <div id="outline-container-%22Folders%22-have-existed-in-email-for-ages." class="outline-4">
 <h4 id="%22Folders%22-have-existed-in-email-for-ages."> <span class="section-number-4">2.3.3.</span>  <a href="#%22Folders%22-have-existed-in-email-for-ages.">"Folders" have existed in email for ages.</a></h4>
 <div class="outline-text-4" id="text-%22Folders%22-have-existed-in-email-for-ages.">
</div>
</div>

 <div id="outline-container-There-should-be-a-programmatic-way-to-create-folders,-based-on-keywords,-regexps,-hooks,-or-something-like-that." class="outline-4">
 <h4 id="There-should-be-a-programmatic-way-to-create-folders,-based-on-keywords,-regexps,-hooks,-or-something-like-that."> <span class="section-number-4">2.3.4.</span>  <a href="#There-should-be-a-programmatic-way-to-create-folders,-based-on-keywords,-regexps,-hooks,-or-something-like-that.">There should be a programmatic way to create folders, based on keywords, regexps, hooks, or something like that.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-There-should-be-a-programmatic-way-to-create-folders,-based-on-keywords,-regexps,-hooks,-or-something-like-that.">
</div>
</div>
</div>

 <div id="outline-container-Messages-should-have-tags." class="outline-3">
 <h3 id="Messages-should-have-tags."> <span class="section-number-3">2.4.</span>  <a href="#Messages-should-have-tags.">Messages should have tags.    <span class="tag"> <span class="TODO">TODO</span></span></a></h3>
 <div class="outline-text-3" id="text-Messages-should-have-tags.">
</div>

 <div id="outline-container-Gmail-has-had-tags-for-years." class="outline-4">
 <h4 id="Gmail-has-had-tags-for-years."> <span class="section-number-4">2.4.1.</span>  <a href="#Gmail-has-had-tags-for-years.">Gmail has had tags for years.</a></h4>
 <div class="outline-text-4" id="text-Gmail-has-had-tags-for-years.">
</div>
</div>

 <div id="outline-container-tags-must-be-supported-as-coming-from-at-least-the-following-sources:" class="outline-4">
 <h4 id="tags-must-be-supported-as-coming-from-at-least-the-following-sources:"> <span class="section-number-4">2.4.2.</span>  <a href="#tags-must-be-supported-as-coming-from-at-least-the-following-sources:">Tags must be supported as coming from at least the following sources:    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-tags-must-be-supported-as-coming-from-at-least-the-following-sources:">
 <ol class="org-ol"> <li>the feed itself</li>
 <li>manual tagging</li>
 <li>regexp tagging</li>
 <li>LLM tagging</li>
 <li>hook tagging</li>
 <li>full feed tag</li>
 <li>randomly (say, with probability 0.1, if you want to shape a feed with too many messages)</li>
</ol></div>
</div>

 <div id="outline-container-Tags-must-be-updated-periodically." class="outline-4">
 <h4 id="Tags-must-be-updated-periodically."> <span class="section-number-4">2.4.3.</span>  <a href="#Tags-must-be-updated-periodically.">Tags must be updated periodically.</a></h4>
 <div class="outline-text-4" id="text-Tags-must-be-updated-periodically.">
</div>

 <ol class="org-ol"> <li> <a id="A-tag-might-be-%22a-feed-which-had-no-update-for-1-year%22."></a> <a href="#A-tag-might-be-%22a-feed-which-had-no-update-for-1-year%22.">A tag might be "a feed which had no update for 1 year".</a> <br></br> <div class="outline-text-5" id="text-A-tag-might-be-%22a-feed-which-had-no-update-for-1-year%22.">
</div>
</li>
</ol></div>

 <div id="outline-container-There-should-be-a-way-to-detect-and-gracefully-process-%22invalid%22-tags,-that-is-if-a-tag-meaning-has-been-changed-by-the-user-later,-or-if-a-manual-tag-is-later-found-to-be-conflicting-with-an-algorithmic-tagging-rule." class="outline-4">
 <h4 id="There-should-be-a-way-to-detect-and-gracefully-process-%22invalid%22-tags,-that-is-if-a-tag-meaning-has-been-changed-by-the-user-later,-or-if-a-manual-tag-is-later-found-to-be-conflicting-with-an-algorithmic-tagging-rule."> <span class="section-number-4">2.4.4.</span>  <a href="#There-should-be-a-way-to-detect-and-gracefully-process-%22invalid%22-tags,-that-is-if-a-tag-meaning-has-been-changed-by-the-user-later,-or-if-a-manual-tag-is-later-found-to-be-conflicting-with-an-algorithmic-tagging-rule.">There should be a way to detect and gracefully process "invalid" tags, that is if a tag meaning has been changed by the user later, or if a manual tag is later found to be conflicting with an algorithmic tagging rule.</a></h4>
 <div class="outline-text-4" id="text-There-should-be-a-way-to-detect-and-gracefully-process-%22invalid%22-tags,-that-is-if-a-tag-meaning-has-been-changed-by-the-user-later,-or-if-a-manual-tag-is-later-found-to-be-conflicting-with-an-algorithmic-tagging-rule.">
</div>
</div>

 <div id="outline-container-Tags-should-be-not-just-words,-but-key-value-pairs." class="outline-4">
 <h4 id="Tags-should-be-not-just-words,-but-key-value-pairs."> <span class="section-number-4">2.4.5.</span>  <a href="#Tags-should-be-not-just-words,-but-key-value-pairs.">Tags should be not just words, but key-value pairs.</a></h4>
 <div class="outline-text-4" id="text-Tags-should-be-not-just-words,-but-key-value-pairs.">
</div>

 <ol class="org-ol"> <li> <a id="Two-very-important-tags-which-really-need-the-%3Ck,v%3E-structures,-are:"></a> <a href="#Two-very-important-tags-which-really-need-the-%3Ck,v%3E-structures,-are:">Two very important tags which really need the <k,v> structures, are:</a> <br></br> <div class="outline-text-5" id="text-Two-very-important-tags-which-really-need-the-%3Ck,v%3E-structures,-are:">
 <ol class="org-ol"> <li>Interest</li>
 <li>Importance</li>
</ol></div>
</li>
</ol></div>
</div>

 <div id="outline-container-The-interface-must-support-content-filtering-and-querying." class="outline-3">
 <h3 id="The-interface-must-support-content-filtering-and-querying."> <span class="section-number-3">2.5.</span>  <a href="#The-interface-must-support-content-filtering-and-querying.">The interface must support content filtering and querying.</a></h3>
 <div class="outline-text-3" id="text-The-interface-must-support-content-filtering-and-querying.">
</div>

 <div id="outline-container-Based-on-categories-or-tags,-the-messages/entries-must-support-the-following-ways-of-noise-reduction" class="outline-4">
 <h4 id="Based-on-categories-or-tags,-the-messages/entries-must-support-the-following-ways-of-noise-reduction"> <span class="section-number-4">2.5.1.</span>  <a href="#Based-on-categories-or-tags,-the-messages/entries-must-support-the-following-ways-of-noise-reduction">Based on categories or tags, the messages/entries must support the following ways of noise reduction    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-Based-on-categories-or-tags,-the-messages/entries-must-support-the-following-ways-of-noise-reduction">
 <ol class="org-ol"> <li>collapsing a message to a topic with a plus-sign [+]</li>
 <li>greying-out a message to reduce visual noise</li>
 <li>completely hiding a message</li>
</ol></div>
</div>

 <div id="outline-container-Querying-should-be-at-least-the-following." class="outline-4">
 <h4 id="Querying-should-be-at-least-the-following."> <span class="section-number-4">2.5.2.</span>  <a href="#Querying-should-be-at-least-the-following.">Querying should be at least the following.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-Querying-should-be-at-least-the-following.">
 <ol class="org-ol"> <li>full-text search</li>
 <li>structured querying, based on tags, categories, stored procedures, authors</li>
</ol></div>
</div>

 <div id="outline-container-Message-sorting-and-prioritisation-should-be-supported." class="outline-4">
 <h4 id="Message-sorting-and-prioritisation-should-be-supported."> <span class="section-number-4">2.5.3.</span>  <a href="#Message-sorting-and-prioritisation-should-be-supported.">Message sorting and prioritisation should be supported.</a></h4>
 <div class="outline-text-4" id="text-Message-sorting-and-prioritisation-should-be-supported.">
</div>

 <ol class="org-ol"> <li> <a id="Sorting-channels-by-inverse-arrival-date-is-one-of-the-worst-possible-ways-of-prioritising-messages.-(Even-though-it-should-also-be-supported.)"></a> <a href="#Sorting-channels-by-inverse-arrival-date-is-one-of-the-worst-possible-ways-of-prioritising-messages.-(Even-though-it-should-also-be-supported.)">Sorting channels by inverse arrival date is one of the worst possible ways of prioritising messages. (Even though it should also be supported.)</a> <br></br> <div class="outline-text-5" id="text-Sorting-channels-by-inverse-arrival-date-is-one-of-the-worst-possible-ways-of-prioritising-messages.-(Even-though-it-should-also-be-supported.)">
</div>
</li>

 <li> <a id="Facebook-style-%22smart-feed%22-is-even-worse-that-sorting-by-inverse-arrival-date."></a> <a href="#Facebook-style-%22smart-feed%22-is-even-worse-that-sorting-by-inverse-arrival-date.">Facebook-style "smart-feed" is even worse that sorting by inverse arrival date.</a> <br></br> <div class="outline-text-5" id="text-Facebook-style-%22smart-feed%22-is-even-worse-that-sorting-by-inverse-arrival-date.">
</div>
</li>

 <li> <a id="A-typical-%22view%22-should-be-a-structured-query-to-the-database,-tailored-for-the-user."></a> <a href="#A-typical-%22view%22-should-be-a-structured-query-to-the-database,-tailored-for-the-user.">A typical "view" should be a structured query to the database, tailored for the user.    <span class="tag"> <span class="TODO">TODO</span></span></a> <br></br> <div class="outline-text-5" id="text-A-typical-%22view%22-should-be-a-structured-query-to-the-database,-tailored-for-the-user.">
</div>
</li>

 <li> <a id="Heuristically,-messages-should-be-the-more-prioritised,-the-less-their-authors-post."></a> <a href="#Heuristically,-messages-should-be-the-more-prioritised,-the-less-their-authors-post.">Heuristically, messages should be the more prioritised, the less their authors post.    <span class="tag"> <span class="TODO">TODO</span></span></a> <br></br> <div class="outline-text-5" id="text-Heuristically,-messages-should-be-the-more-prioritised,-the-less-their-authors-post.">
</div>
</li>

 <li> <a id="There-should-be-a-way-to-indicate-feeds-which-have-not-been-updated-for-too-long."></a> <a href="#There-should-be-a-way-to-indicate-feeds-which-have-not-been-updated-for-too-long.">There should be a way to indicate feeds which have not been updated for too long.    <span class="tag"> <span class="TODO">TODO</span></span></a> <br></br> <div class="outline-text-5" id="text-There-should-be-a-way-to-indicate-feeds-which-have-not-been-updated-for-too-long.">
</div>
</li>

 <li> <a id="There-should-be-a-way-to-detect-duplicate-messages-sent-to-different-channels-(FB+VK)."></a> <a href="#There-should-be-a-way-to-detect-duplicate-messages-sent-to-different-channels-(FB+VK).">There should be a way to detect duplicate messages sent to different channels (FB+VK).    <span class="tag"> <span class="TODO">TODO</span></span></a> <br></br> <div class="outline-text-5" id="text-There-should-be-a-way-to-detect-duplicate-messages-sent-to-different-channels-(FB+VK).">
</div>
</li>

 <li> <a id="There-should-be-a-way-to-detect-links-to-%22ground-truth%22-posts-references-by-secondary-sources."></a> <a href="#There-should-be-a-way-to-detect-links-to-%22ground-truth%22-posts-references-by-secondary-sources.">There should be a way to detect links to "ground truth" posts references by secondary sources.</a> <br></br> <div class="outline-text-5" id="text-There-should-be-a-way-to-detect-links-to-%22ground-truth%22-posts-references-by-secondary-sources.">
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-The-database-should-be-tightly-integrated-with-an-Address-Book-(possibly-a-different-piece-of-software)." class="outline-3">
 <h3 id="The-database-should-be-tightly-integrated-with-an-Address-Book-(possibly-a-different-piece-of-software)."> <span class="section-number-3">2.6.</span>  <a href="#The-database-should-be-tightly-integrated-with-an-Address-Book-(possibly-a-different-piece-of-software).">The database should be tightly integrated with an Address Book (possibly a different piece of software).</a></h3>
 <div class="outline-text-3" id="text-The-database-should-be-tightly-integrated-with-an-Address-Book-(possibly-a-different-piece-of-software).">
</div>

 <div id="outline-container-When-I-am-adding-a-user-into-my-address-book,-I-want-their-accounts-to-be-automatically-added-to-the-reader." class="outline-4">
 <h4 id="When-I-am-adding-a-user-into-my-address-book,-I-want-their-accounts-to-be-automatically-added-to-the-reader."> <span class="section-number-4">2.6.1.</span>  <a href="#When-I-am-adding-a-user-into-my-address-book,-I-want-their-accounts-to-be-automatically-added-to-the-reader.">When I am adding a user into my address book, I want their accounts to be automatically added to the reader.</a></h4>
 <div class="outline-text-4" id="text-When-I-am-adding-a-user-into-my-address-book,-I-want-their-accounts-to-be-automatically-added-to-the-reader.">
 <ol class="org-ol"> <li>SMS</li>
 <li>RSS</li>
 <li>hEntry/hFeed</li>
 <li>Email Lists</li>
 <li>Facebook</li>
 <li>WhatsApp</li>
 <li>Twitter</li>
 <li>Tumblr</li>
 <li>YouTube</li>
 <li>Vimeo</li>
 <li>WeChat</li>
 <li>QQ</li>
 <li>Renren</li>
 <li>WeiBo</li>
 <li>Viber</li>
 <li>Kakao</li>
 <li>Slack</li>
 <li>xmpp</li>
 <li>matrix</li>
 <li>mastodon</li>
 <li>Telegram</li>
 <li>Discord</li>
 <li>Skype</li>
 <li>Zoom</li>
 <li>VK</li>
 <li>OK</li>
 <li>LiveJournal</li>
 <li>lj.rossija.org</li>
 <li>substack</li>
 <li>medium</li>
 <li>diary.ru</li>
 <li>darkdiary.ru</li>
 <li>traditional media websites</li>
 <li>custom hooks</li>
</ol></div>
</div>

 <div id="outline-container-Anonymous-message-(badly-signed-messages-in-public-channels)-should-be-processed-for-author-detection-heuristically." class="outline-4">
 <h4 id="Anonymous-message-(badly-signed-messages-in-public-channels)-should-be-processed-for-author-detection-heuristically."> <span class="section-number-4">2.6.2.</span>  <a href="#Anonymous-message-(badly-signed-messages-in-public-channels)-should-be-processed-for-author-detection-heuristically.">Anonymous message (badly signed messages in public channels) should be processed for author detection heuristically.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-Anonymous-message-(badly-signed-messages-in-public-channels)-should-be-processed-for-author-detection-heuristically.">
</div>
</div>

 <div id="outline-container-I-want-to-have-some-match-between-an-author-and-an-organisation-they-work-for." class="outline-4">
 <h4 id="I-want-to-have-some-match-between-an-author-and-an-organisation-they-work-for."> <span class="section-number-4">2.6.3.</span>  <a href="#I-want-to-have-some-match-between-an-author-and-an-organisation-they-work-for.">I want to have some match between an author and an organisation they work for.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-I-want-to-have-some-match-between-an-author-and-an-organisation-they-work-for.">
</div>

 <ol class="org-ol"> <li> <a id="This-probably-is-as-hard-as-establishing-authorship."></a> <a href="#This-probably-is-as-hard-as-establishing-authorship.">This probably is as hard as establishing authorship.</a> <br></br> <div class="outline-text-5" id="text-This-probably-is-as-hard-as-establishing-authorship.">
</div>
</li>
</ol></div>

 <div id="outline-container-The-Address-Book-should-take-into-account-that-authors-sometimes-switch-%22account-IDs%22,-by,-say-exchanging-their-phones." class="outline-4">
 <h4 id="The-Address-Book-should-take-into-account-that-authors-sometimes-switch-%22account-IDs%22,-by,-say-exchanging-their-phones."> <span class="section-number-4">2.6.4.</span>  <a href="#The-Address-Book-should-take-into-account-that-authors-sometimes-switch-%22account-IDs%22,-by,-say-exchanging-their-phones.">The Address Book should take into account that authors sometimes switch "account IDs", by, say exchanging their phones.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-The-Address-Book-should-take-into-account-that-authors-sometimes-switch-%22account-IDs%22,-by,-say-exchanging-their-phones.">
</div>
</div>

 <div id="outline-container-The-Address-Book-should-take-into-account-that-sometimes-different-authors-use-the-same-%22account-ID%22." class="outline-4">
 <h4 id="The-Address-Book-should-take-into-account-that-sometimes-different-authors-use-the-same-%22account-ID%22."> <span class="section-number-4">2.6.5.</span>  <a href="#The-Address-Book-should-take-into-account-that-sometimes-different-authors-use-the-same-%22account-ID%22.">The Address Book should take into account that sometimes different authors use the same "account ID".    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-The-Address-Book-should-take-into-account-that-sometimes-different-authors-use-the-same-%22account-ID%22.">
</div>
</div>

 <div id="outline-container-The-Address-Book-might-have-a-lot-of-metadata-on-authors." class="outline-4">
 <h4 id="The-Address-Book-might-have-a-lot-of-metadata-on-authors."> <span class="section-number-4">2.6.6.</span>  <a href="#The-Address-Book-might-have-a-lot-of-metadata-on-authors.">The Address Book might have a lot of metadata on authors.</a></h4>
 <div class="outline-text-4" id="text-The-Address-Book-might-have-a-lot-of-metadata-on-authors.">
</div>
</div>

 <div id="outline-container-Adding-authors-should-be-possible-from-external-tools.-(But-this-is-not-about-the-Feed-System-feature.)" class="outline-4">
 <h4 id="Adding-authors-should-be-possible-from-external-tools.-(But-this-is-not-about-the-Feed-System-feature.)"> <span class="section-number-4">2.6.7.</span>  <a href="#Adding-authors-should-be-possible-from-external-tools.-(But-this-is-not-about-the-Feed-System-feature.)">Adding authors should be possible from external tools. (But this is not about the Feed System feature.)</a></h4>
 <div class="outline-text-4" id="text-Adding-authors-should-be-possible-from-external-tools.-(But-this-is-not-about-the-Feed-System-feature.)">
</div>

 <ol class="org-ol"> <li> <a id="There-is-no-way-(or-it-is-very-difficult)-to-explore-data-silos-with-automated-means."></a> <a href="#There-is-no-way-(or-it-is-very-difficult)-to-explore-data-silos-with-automated-means.">There is no way (or it is very difficult) to explore data silos with automated means.</a> <br></br> <div class="outline-text-5" id="text-There-is-no-way-(or-it-is-very-difficult)-to-explore-data-silos-with-automated-means.">
</div>
</li>

 <li> <a id="The-system-should-support-adding-feeds/authors/while-using-those-silos,-such-as-YouTube-normally."></a> <a href="#The-system-should-support-adding-feeds/authors/while-using-those-silos,-such-as-YouTube-normally.">The system should support adding feeds/authors/while using those silos, such as YouTube normally.</a> <br></br> <div class="outline-text-5" id="text-The-system-should-support-adding-feeds/authors/while-using-those-silos,-such-as-YouTube-normally.">
 <ol class="org-ol"> <li>a browser extension</li>
 <li>a phone screen reader</li>
 <li>a clipboard monitor</li>
</ol></div>
</li>
</ol></div>
</div>

 <div id="outline-container-The-reader-should-have-a-rudimentary-system-for-content-analysis." class="outline-3">
 <h3 id="The-reader-should-have-a-rudimentary-system-for-content-analysis."> <span class="section-number-3">2.7.</span>  <a href="#The-reader-should-have-a-rudimentary-system-for-content-analysis."> <span class="todo TODO">TODO</span> The reader should have a rudimentary system for content analysis.</a></h3>
 <div class="outline-text-3" id="text-The-reader-should-have-a-rudimentary-system-for-content-analysis.">
</div>

 <div id="outline-container-It-should-be-able-to-generate-summaries-for-channels-which-have-too-many-posts,-using-LLM-or-rewriting." class="outline-4">
 <h4 id="It-should-be-able-to-generate-summaries-for-channels-which-have-too-many-posts,-using-LLM-or-rewriting."> <span class="section-number-4">2.7.1.</span>  <a href="#It-should-be-able-to-generate-summaries-for-channels-which-have-too-many-posts,-using-LLM-or-rewriting.">It should be able to generate summaries for channels which have too many posts, using LLM or rewriting.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-It-should-be-able-to-generate-summaries-for-channels-which-have-too-many-posts,-using-LLM-or-rewriting.">
</div>
</div>

 <div id="outline-container-It-should-generate-channel/author-statistics-at-will." class="outline-4">
 <h4 id="It-should-generate-channel/author-statistics-at-will."> <span class="section-number-4">2.7.2.</span>  <a href="#It-should-generate-channel/author-statistics-at-will.">It should generate channel/author statistics at will.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-It-should-generate-channel/author-statistics-at-will.">
</div>
</div>

 <div id="outline-container-It-should-generate-an-analysis-of-_my_-brain." class="outline-4">
 <h4 id="It-should-generate-an-analysis-of-_my_-brain."> <span class="section-number-4">2.7.3.</span>  <a href="#It-should-generate-an-analysis-of-_my_-brain.">It should generate an analysis of  <span class="underline">my</span> brain.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-It-should-generate-an-analysis-of-_my_-brain.">
</div>
</div>

 <div id="outline-container-It-should-generate-image-descriptions-with-LLM." class="outline-4">
 <h4 id="It-should-generate-image-descriptions-with-LLM."> <span class="section-number-4">2.7.4.</span>  <a href="#It-should-generate-image-descriptions-with-LLM.">It should generate image descriptions with LLM.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-It-should-generate-image-descriptions-with-LLM.">
</div>
</div>
</div>

 <div id="outline-container-The-system-should-support-content-sharing." class="outline-3">
 <h3 id="The-system-should-support-content-sharing."> <span class="section-number-3">2.8.</span>  <a href="#The-system-should-support-content-sharing."> <span class="todo TODO">TODO</span> The system should support content sharing.</a></h3>
 <div class="outline-text-3" id="text-The-system-should-support-content-sharing.">
</div>

 <div id="outline-container-It-should-be-easy-to-share-a-link-to-a-message-and-its-saved-copy-and-edit-history." class="outline-4">
 <h4 id="It-should-be-easy-to-share-a-link-to-a-message-and-its-saved-copy-and-edit-history."> <span class="section-number-4">2.8.1.</span>  <a href="#It-should-be-easy-to-share-a-link-to-a-message-and-its-saved-copy-and-edit-history.">It should be easy to share a link to a message and its saved copy and edit history.    <span class="tag"> <span class="TODO">TODO</span></span></a></h4>
 <div class="outline-text-4" id="text-It-should-be-easy-to-share-a-link-to-a-message-and-its-saved-copy-and-edit-history.">
</div>
</div>
</div>

 <div id="outline-container-The-system-should-support-smart-message-storage." class="outline-3">
 <h3 id="The-system-should-support-smart-message-storage."> <span class="section-number-3">2.9.</span>  <a href="#The-system-should-support-smart-message-storage.">The system should support smart message storage.</a></h3>
 <div class="outline-text-3" id="text-The-system-should-support-smart-message-storage.">
</div>

 <div id="outline-container-Ideally,-there-should-never-be-an-need-to-delete-any-old-content." class="outline-4">
 <h4 id="Ideally,-there-should-never-be-an-need-to-delete-any-old-content."> <span class="section-number-4">2.9.1.</span>  <a href="#Ideally,-there-should-never-be-an-need-to-delete-any-old-content.">Ideally, there should never be an need to delete any old content.</a></h4>
 <div class="outline-text-4" id="text-Ideally,-there-should-never-be-an-need-to-delete-any-old-content.">
</div>

 <ol class="org-ol"> <li> <a id="If-such-a-need-arises,-there-should-be-a-way-to-delete-messages-with-heavy-unimportant-content."></a> <a href="#If-such-a-need-arises,-there-should-be-a-way-to-delete-messages-with-heavy-unimportant-content.">If such a need arises, there should be a way to delete messages with heavy unimportant content.</a> <br></br> <div class="outline-text-5" id="text-If-such-a-need-arises,-there-should-be-a-way-to-delete-messages-with-heavy-unimportant-content.">
</div>
</li>

 <li> <a id="The-system-should-support-a-way-to-try-and-restore-deleted-messages-from-original-sources-if-those-exist."></a> <a href="#The-system-should-support-a-way-to-try-and-restore-deleted-messages-from-original-sources-if-those-exist.">The system should support a way to try and restore deleted messages from original sources if those exist.</a> <br></br> <div class="outline-text-5" id="text-The-system-should-support-a-way-to-try-and-restore-deleted-messages-from-original-sources-if-those-exist.">
</div>
</li>
</ol></div>

 <div id="outline-container-The-system-should-support-a-way-to-combat-adversarial-(but-standard-compliant)-behaviour,-such-as-sending-huge-amount-of-worthless-heavy-data." class="outline-4">
 <h4 id="The-system-should-support-a-way-to-combat-adversarial-(but-standard-compliant)-behaviour,-such-as-sending-huge-amount-of-worthless-heavy-data."> <span class="section-number-4">2.9.2.</span>  <a href="#The-system-should-support-a-way-to-combat-adversarial-(but-standard-compliant)-behaviour,-such-as-sending-huge-amount-of-worthless-heavy-data.">The system should support a way to combat adversarial (but standard-compliant) behaviour, such as sending huge amount of worthless heavy data.</a></h4>
 <div class="outline-text-4" id="text-The-system-should-support-a-way-to-combat-adversarial-(but-standard-compliant)-behaviour,-such-as-sending-huge-amount-of-worthless-heavy-data.">
</div>
</div>
</div>

 <div id="outline-container-The-system-should-have-some-integration-with-instant-and-asynchronous-messaging." class="outline-3">
 <h3 id="The-system-should-have-some-integration-with-instant-and-asynchronous-messaging."> <span class="section-number-3">2.10.</span>  <a href="#The-system-should-have-some-integration-with-instant-and-asynchronous-messaging.">The system should have some integration with instant and asynchronous messaging.    <span class="tag"> <span class="TODO">TODO</span></span></a></h3>
 <div class="outline-text-3" id="text-The-system-should-have-some-integration-with-instant-and-asynchronous-messaging.">
</div>

 <div id="outline-container-Instant-messaging-is-fast-and-convenient." class="outline-4">
 <h4 id="Instant-messaging-is-fast-and-convenient."> <span class="section-number-4">2.10.1.</span>  <a href="#Instant-messaging-is-fast-and-convenient.">Instant messaging is fast and convenient.</a></h4>
 <div class="outline-text-4" id="text-Instant-messaging-is-fast-and-convenient.">
</div>
</div>

 <div id="outline-container-Instant-messaging-might-be-one-source-of-messages/posts-in-a-feed,-if-we-find-a-way-to-cluster-messages-by-topic,-and,-possibly,-summarise-them." class="outline-4">
 <h4 id="Instant-messaging-might-be-one-source-of-messages/posts-in-a-feed,-if-we-find-a-way-to-cluster-messages-by-topic,-and,-possibly,-summarise-them."> <span class="section-number-4">2.10.2.</span>  <a href="#Instant-messaging-might-be-one-source-of-messages/posts-in-a-feed,-if-we-find-a-way-to-cluster-messages-by-topic,-and,-possibly,-summarise-them.">Instant messaging might be one source of messages/posts in a feed, if we find a way to cluster messages by topic, and, possibly, summarise them.</a></h4>
 <div class="outline-text-4" id="text-Instant-messaging-might-be-one-source-of-messages/posts-in-a-feed,-if-we-find-a-way-to-cluster-messages-by-topic,-and,-possibly,-summarise-them.">
</div>
</div>

 <div id="outline-container-It-might-be-possible-to-leave-a-comment-to-a-post,-when-needed.-But-this-is-not-well-thought-through." class="outline-4">
 <h4 id="It-might-be-possible-to-leave-a-comment-to-a-post,-when-needed.-But-this-is-not-well-thought-through."> <span class="section-number-4">2.10.3.</span>  <a href="#It-might-be-possible-to-leave-a-comment-to-a-post,-when-needed.-But-this-is-not-well-thought-through.">It might be possible to leave a comment to a post, when needed. But this is not well thought-through.</a></h4>
 <div class="outline-text-4" id="text-It-might-be-possible-to-leave-a-comment-to-a-post,-when-needed.-But-this-is-not-well-thought-through.">
</div>
</div>
</div>
</section> <section id="outline-container-Possible-implementation-details." class="outline-2"> <h2 id="Possible-implementation-details."> <span class="section-number-2">3.</span>  <a href="#Possible-implementation-details."> <span class="todo TODO">TODO</span> Possible implementation details.</a></h2>
 <div class="outline-text-2" id="text-Possible-implementation-details.">
</div>

 <div id="outline-container-TinyTinyRss." class="outline-4">
 <h4 id="TinyTinyRss."> <span class="section-number-4">3.0.1.</span>  <a href="#TinyTinyRss.">TinyTinyRss.</a></h4>
 <div class="outline-text-4" id="text-TinyTinyRss.">
</div>

 <ol class="org-ol"> <li> <a id="A-wonderful,-fairly-smart-RSS-reader,-which-already-can-do-a-lot-of-the-above."></a> <a href="#A-wonderful,-fairly-smart-RSS-reader,-which-already-can-do-a-lot-of-the-above.">A wonderful, fairly smart RSS reader, which already can do a lot of the above.</a> <br></br> <div class="outline-text-5" id="text-A-wonderful,-fairly-smart-RSS-reader,-which-already-can-do-a-lot-of-the-above.">
</div>
</li>
</ol></div>

 <div id="outline-container-Rss-Bridge." class="outline-4">
 <h4 id="Rss-Bridge."> <span class="section-number-4">3.0.2.</span>  <a href="#Rss-Bridge.">Rss-Bridge.</a></h4>
 <div class="outline-text-4" id="text-Rss-Bridge.">
</div>

 <ol class="org-ol"> <li> <a id="Implements-a-lot-of-bridging-functionality,-but-is-%22dumb%22."></a> <a href="#Implements-a-lot-of-bridging-functionality,-but-is-%22dumb%22.">Implements a lot of bridging functionality, but is "dumb".</a> <br></br> <div class="outline-text-5" id="text-Implements-a-lot-of-bridging-functionality,-but-is-%22dumb%22.">
</div>
</li>
</ol></div>

 <div id="outline-container-Selenium." class="outline-4">
 <h4 id="Selenium."> <span class="section-number-4">3.0.3.</span>  <a href="#Selenium.">Selenium.</a></h4>
 <div class="outline-text-4" id="text-Selenium.">
</div>

 <ol class="org-ol"> <li> <a id="Works-very-well-in-going-around-nagging-websites."></a> <a href="#Works-very-well-in-going-around-nagging-websites.">Works very well in going around nagging websites.</a> <br></br> <div class="outline-text-5" id="text-Works-very-well-in-going-around-nagging-websites.">
</div>
</li>
</ol></div>

 <div id="outline-container-Llama2" class="outline-4">
 <h4 id="Llama2"> <span class="section-number-4">3.0.4.</span>  <a href="#Llama2">Llama2</a></h4>
 <div class="outline-text-4" id="text-Llama2">
</div>

 <ol class="org-ol"> <li> <a id="Might-do-something-about-classification/summaries."></a> <a href="#Might-do-something-about-classification/summaries.">Might do something about classification/summaries.</a> <br></br> <div class="outline-text-5" id="text-Might-do-something-about-classification/summaries.">
</div>
</li>

 <li> <a id="Might-help-solving-CAPTCHA."></a> <a href="#Might-help-solving-CAPTCHA.">Might help solving CAPTCHA.</a> <br></br> <div class="outline-text-5" id="text-Might-help-solving-CAPTCHA.">
</div>
</li>
</ol></div>

 <div id="outline-container-Lisp" class="outline-4">
 <h4 id="Lisp"> <span class="section-number-4">3.0.5.</span>  <a href="#Lisp">Lisp</a></h4>
 <div class="outline-text-4" id="text-Lisp">
</div>

 <ol class="org-ol"> <li> <a id="Many-programming-systems-are-not-very-good-at-adding-hooks-to-various-bits.-Emacs-or-SBCL-might-be-a-way-to-go."></a> <a href="#Many-programming-systems-are-not-very-good-at-adding-hooks-to-various-bits.-Emacs-or-SBCL-might-be-a-way-to-go.">Many programming systems are not very good at adding hooks to various bits. Emacs or SBCL might be a way to go.</a> <br></br> <div class="outline-text-5" id="text-Many-programming-systems-are-not-very-good-at-adding-hooks-to-various-bits.-Emacs-or-SBCL-might-be-a-way-to-go.">
</div>
</li>
</ol></div>
</section> <section id="outline-container-References." class="outline-2"> <h2 id="References."> <span class="section-number-2">4.</span>  <a href="#References."> <span class="todo TODO">TODO</span> References.</a></h2>
 <div class="outline-text-2" id="text-References.">
 <p>
Completely TODO.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2023-12-05_how-to-make-a-good-feed-reader.d/index.html"/>
  <id>https://lockywolf.net/2023-12-05_how-to-make-a-good-feed-reader.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Review on the &quot;Mountains of Madness&quot; by H.P. Lovecraft.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Review on the “Mountains of Madness” by H.P. Lovecraft.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#The-Abstract">1. The Abstract</a>
 <ul> <li> <a href="#It-is-a-little-strange-to-be-writing-a-review-on-a-work-of-fiction.">1.1. It is a little strange to be writing a review on a work of fiction.</a>
 <ul> <li> <a href="#For-years-the-only-kinds-of-texts-I-have-been-reading-have-been-technical-or-scientific.">1.1.1. For years the only kinds of texts I have been reading have been technical or scientific.</a></li>
</ul></li>
 <li> <a href="#But-this-time-I-wanted-to-really-understand-the-person-who-had-recommended-this-book-to-me.">1.2. But this time I wanted to really understand the person who had recommended this book to me.</a></li>
 <li> <a href="#Moreover,-Lovecraft-is-mentioned-in-a-lot-of-places-as-a-well-known-context.">1.3. Moreover, Lovecraft is mentioned in a lot of places as a well-known context.</a>
 <ul> <li> <a href="#Not-even-mentioning-Russian-Lurkmore,-which-has-been,-seemingly,-much-more-of-a-cultural-phenomenon-than-the-English-one,-his-motives-are-very-widely-spread-in-modern-media.">1.3.1. Not even mentioning Russian Lurkmore, which has been, seemingly, much more of a cultural phenomenon than the English one, his motives are very widely spread in modern media.</a></li>
</ul></li>
 <li> <a href="#My-friend-recommended-%22Mountains-of-Madness%22-to-me,-and-I-agreed-that-it-is-a-piece-to-start,-since-it-mentions-most-of-the-lovecraftian-lore.">1.4. My friend recommended “Mountains of Madness” to me, and I agreed that it is a piece to start, since it mentions most of the lovecraftian lore.</a></li>
 <li> <a href="#Below-is-my-review.">1.5. Below is my review.</a>
 <ul> <li> <a href="#I-am-not-claiming-that-it-is-in-any-way-compete-or-impartial.">1.5.1. I am not claiming that it is in any way compete or impartial.</a></li>
 <li> <a href="#I-was,-however,-reading-it-in-good-faith,-and-even-enjoyed-it-a-bit,-so-hopefully,-this-review-might-help-someone.">1.5.2. I was, however, reading it in good faith, and even enjoyed it a bit, so hopefully, this review might help someone.</a></li>
</ul></li>
 <li> <a href="#The-review-unavoidably-contains-spoilers,-apologies-for-that.">1.6. The review unavoidably contains spoilers, apologies for that.</a></li>
</ul></li>
 <li> <a href="#The-Review">2. The Review</a>
 <ul> <li> <a href="#The-Plot">2.1. The Plot</a>
 <ul> <li> <a href="#%22Mountains-of-Madness%22-is-telling-a-story-about-an-imaginary-expedition-to-the-heart-of-the-Antarctic-continent.">2.1.1. “Mountains of Madness” is telling a story about an imaginary expedition to the heart of the Antarctic continent.</a></li>
 <li> <a href="#The-places-and-the-events-described-there-are-fictional,-however,-Lovecraft-exhibits-strenuous-effort-in-trying-to-maintain-the-connexion-with-reality.-%3C%3Cstyle1%3E%3E">2.1.2. The places and the events described there are fictional, however, Lovecraft exhibits strenuous effort in trying to maintain the connexion with reality. </a></li>
 <li> <a href="#The-expedition-is-exploring-the-Antarctic-for-fossils,-as-well-as-for-geological-samples.">2.1.3. The expedition is exploring the Antarctic for fossils, as well as for geological samples.</a></li>
 <li> <a href="#They-are-traveling-over-the-continent-on-airplanes,-which-allows-rapid-and-long-distance-jumps-in-the-plot.">2.1.4. They are traveling over the continent on airplanes, which allows rapid and long-distance jumps in the plot.</a></li>
 <li> <a href="#At-some-point-the-crew-splits-into-two,-solving-different-tasks.">2.1.5. At some point the crew splits into two, solving different tasks.</a></li>
 <li> <a href="#The-second-group-discovers-a-lot-of-interesting-artifacts,-including-traces-of-prehistoric-life-and-some-mysterious,-very-tall-mountain-chain.">2.1.6. The second group discovers a lot of interesting artifacts, including traces of prehistoric life and some mysterious, very tall mountain chain.</a></li>
 <li> <a href="#At-some-point,-however,-the-contact-with-the-second-group-is-lost,-and-the-narrator-has-to-investigate.">2.1.7. At some point, however, the contact with the second group is lost, and the narrator has to investigate.</a></li>
 <li> <a href="#The-investigation-shows-that-the-group-is-all-dead,-including-sled-dogs.">2.1.8. The investigation shows that the group is all dead, including sled dogs.</a></li>
 <li> <a href="#Even-so,-the-first-group-considers-it-important-to-explore-the-mountains-that-the-second-group-was-so-excited-about.">2.1.9. Even so, the first group considers it important to explore the mountains that the second group was so excited about.</a></li>
 <li> <a href="#In-those-mountains-they-discover-a-rift,-which-allows-them-to-penetrate-the-mountain-chain-even-on-the-light-aerolanes-they-have.">2.1.10. In those mountains they discover a rift, which allows them to penetrate the mountain chain even on the light aerolanes they have.</a></li>
 <li> <a href="#The-mountains-seem-to-be-circular-and-contain-a-forebode-city-enclosed.">2.1.11. The mountains seem to be circular and contain a forebode city enclosed.</a></li>
 <li> <a href="#They-explore-the-city-and-find-out-a-building,-which,-in-a-very-vivid-manner,-by-the-means-of-bas-reliefs-and-frescoes-describes-the-city's-history,-as-well-as-the-history-of-the-whole-civilization-of-aliens-who-have-built-it.">2.1.12. They explore the city and find out a building, which, in a very vivid manner, by the means of bas-reliefs and frescoes describes the city’s history, as well as the history of the whole civilization of aliens who have built it.</a></li>
 <li> <a href="#The-building-is-telling-them-that-the-civilization-had-to-eventually-recede-into-the-depths-of-the-Earth,-in-order-to-be-kept-warm-after-the-global-cooling,-by-the-Earth's-mantle.">2.1.13. The building is telling them that the civilization had to eventually recede into the depths of the Earth, in order to be kept warm after the global cooling, by the Earth’s mantle.</a></li>
 <li> <a href="#The-entrance-to-the-underworld-seem-to-be-in-the-city.">2.1.14. The entrance to the underworld seem to be in the city.</a></li>
 <li> <a href="#They-decided-to-find-the-entrance-and-explore-the-underworld.">2.1.15. They decided to find the entrance and explore the underworld.</a></li>
 <li> <a href="#At-the-entrance-they-find-the-body-of-one-of-the-members-of-the-second-group,-who-had-been-killed-by-the-unearthed-aliens.">2.1.16. At the entrance they find the body of one of the members of the second group, who had been killed by the unearthed aliens.</a></li>
 <li> <a href="#They-enter-the-long-cavernous-passage-to-that-hypothetical-underworld-city,-and-go-quite-deep.">2.1.17. They enter the long cavernous passage to that hypothetical underworld city, and go quite deep.</a></li>
 <li> <a href="#At-the-very-bottom-of-the-passage-they-find-decapitated-corpses-of-some-of-the-aliens,-and-are-driven-out-to-the-surface-by-a-mysterious-creature,-vaguely-similar-in-looks-too-the-aliens,-but-not-quite.">2.1.18. At the very bottom of the passage they find decapitated corpses of some of the aliens, and are driven out to the surface by a mysterious creature, vaguely similar in looks too the aliens, but not quite.</a></li>
 <li> <a href="#The-rest-of-the-story-consists-of-them-returning-back-to-their-ship,-and-agreeing-to-withhold-the-details-of-the-expedition-from-the-authorities.">2.1.19. The rest of the story consists of them returning back to their ship, and agreeing to withhold the details of the expedition from the authorities.</a></li>
</ul></li>
 <li> <a href="#The-Style">2.2. The Style</a>
 <ul> <li> <a href="#Lovecraft-is-considered-to-be-one-of-the-masters-of-American-literature.">2.2.1. Lovecraft is considered to be one of the masters of American literature.</a></li>
 <li> <a href="#He-has-numerous-influencees,-both-literary,-and-in-other-fields-of-art.">2.2.2. He has numerous influencees, both literary, and in other fields of art.</a></li>
 <li> <a href="#As-mentioned-before,-in-%5B%5Bstyle1%5D%5D,-Lovecraft-tried-to-do-his-best-in-researching-the-background-for-the-book.">2.2.3. As mentioned before, in style1, Lovecraft tried to do his best in researching the background for the book.</a></li>
 <li> <a href="#In-my-profane-opinion,-he-can-be-considered-a-direct-successor-to-Edgar-Allan-Poe.">2.2.4. In my profane opinion, he can be considered a direct successor to Edgar Allan Poe.</a></li>
 <li> <a href="#However,-it-can't-be-ignored-that-by-modern-standards-the-book-can-be-seen-as-quite-naive.">2.2.5. However, it can’t be ignored that by modern standards the book can be seen as quite naive.</a></li>
 <li> <a href="#By-modern-standards-I-wouldn't-even-call-this-book-%22horror%22.">2.2.6. By modern standards I wouldn’t even call this book “horror”.</a></li>
 <li> <a href="#However,-I-generally-liked-it,-but-but-as-much-for-it's-attempts-to-scare,-but-rather-for-his-sincere,-although,-perhaps,-unreflected,-attempt-to-continue-the-similarly-naive,-but-captivating-stories-of-the-Great-Geographical-Discoveries,-such-as-those-written-by-Fenimore-Cooper,-Mayne-Reed,-Louis-Boussenard.">2.2.7. However, I generally liked it, but but as much for it’s attempts to scare, but rather for his sincere, although, perhaps, unreflected, attempt to continue the similarly naive, but captivating stories of the Great Geographical Discoveries, such as those written by Fenimore Cooper, Mayne Reed, Louis Boussenard.</a></li>
 <li> <a href="#It's-self-evident-that-in-the-age-of-aeroplanes,-oil-wells,-chemical-weapons,-and-radio,-an-author-cannot-really-avoid-the-necessity-to-introduce-alien-(supernatural)-elements-into-the-story-to-provide-the-same-level-of-challenge-as-the-one-observed-in-the-classical-exploration-novels.">2.2.8. It’s self-evident that in the age of aeroplanes, oil wells, chemical weapons, and radio, an author cannot really avoid the necessity to introduce alien (supernatural) elements into the story to provide the same level of challenge as the one observed in the classical exploration novels.</a></li>
 <li> <a href="#It-is-symbolic-that-he-had-to-resort-to-the-last-under-explored-continent-of-the-world,-the-Antarctic,-in-order-to-provide-at-least-in-part-the-fascination-of-discovery,-previously-available-to-the-explorers-of-such-nowadays-mundane-places-as-California.">2.2.9. It is symbolic that he had to resort to the last under-explored continent of the world, the Antarctic, in order to provide at least in part the fascination of discovery, previously available to the explorers of such nowadays mundane places as California.</a></li>
 <li> <a href="#He-really-tried-his-best,-his-language-is-vivid-and-colourful,-and-he-really-made-me-learn-quite-a-lot-of-new-English.">2.2.10. He really tried his best, his language is vivid and colourful, and he really made me learn quite a lot of new English.</a></li>
 <li> <a href="#But-if-you-really-look-at-the-plot-and-the-style-with-a-naked-eye,-you-really-start-seeing-that-the-feeling-of-the-end-of-the-civilization-(of-the-aliens),-and-the-frontier-for-exploration-(for-the-Man),-elicits-an-emotion-really-much-stronger-than-that-of-horror-from-encountering-the-Chtonic.-The-feeling-of-The-End.">2.2.11. But if you really look at the plot and the style with a naked eye, you really start seeing that the feeling of the end of the civilization (of the aliens), and the frontier for exploration (for the Man), elicits an emotion really much stronger than that of horror from encountering the Chtonic. The feeling of The End.</a></li>
</ul></li>
 <li> <a href="#The-Postmodernism">2.3. The Postmodernism</a>
 <ul> <li> <a href="#There-is-at-least-one-more-book-called-%22Mountains-of-Madness%22,-written-by-a-guy-who-would-had-become-so-fascinated-with-Lovecraft-that-he-gained-a-degree-in-geology-and-spent-a-long-time-working-in-Antarctica.">2.3.1. There is at least one more book called “Mountains of Madness”, written by a guy who would had become so fascinated with Lovecraft that he gained a degree in geology and spent a long time working in Antarctica.</a></li>
 <li> <a href="#He-does-mention-Ctulhu,-Necronomicon,-and-some-other-members-of-his-legendarium.">2.3.2. He does mention Ctulhu, Necronomicon, and some other members of his legendarium.</a></li>
 <li> <a href="#As-already-mentioned,-mountains-Erebus-and-Terror-do-exist,-and-there-is-a-book-about-Antarctic-exploration-on-the-ships-of-the-same-name.">2.3.3. As already mentioned, mountains Erebus and Terror do exist, and there is a book about Antarctic exploration on the ships of the same name.</a></li>
 <li> <a href="#Forgotten-city-is-a-fairly-classical-trope-in-fiction.">2.3.4. Forgotten city is a fairly classical trope in fiction.</a></li>
 <li> <a href="#The-image-of-a-scientist-who-is-so-curious-that-this-curiosity-makes-him-blithely-disregard-all-danger-is-also-quite-pervasive">2.3.5. The image of a scientist who is so curious that this curiosity makes him blithely disregard all danger is also quite pervasive</a></li>
 <li> <a href="#I-can't-resist-the-feeling-that-there-is-a-second-bottom-to-the-main-narrator's-claim-that-he-is-only-disclosing-his-adventures-because-he-wants-to-prevent-a-new-expedition.">2.3.6. I can’t resist the feeling that there is a second bottom to the main narrator’s claim that he is only disclosing his adventures because he wants to prevent a new expedition.</a></li>
 <li> <a href="#I-am-also-impressed-by-the-references-to-Nicholas-Roerich.-Didn't-know-Lovecraft-was-aware-of-that-obscure-Russian-living-in-India.">2.3.7. I am also impressed by the references to Nicholas Roerich. Didn’t know Lovecraft was aware of that obscure Russian living in India.</a></li>
</ul></li>
 <li> <a href="#The-Afterword">2.4. The Afterword</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-The-Abstract" class="outline-2"> <h2 id="The-Abstract"> <span class="section-number-2">1.</span>  <a href="#The-Abstract">The Abstract</a></h2>
 <div class="outline-text-2" id="text-The-Abstract">
</div>

 <div id="outline-container-It-is-a-little-strange-to-be-writing-a-review-on-a-work-of-fiction." class="outline-3">
 <h3 id="It-is-a-little-strange-to-be-writing-a-review-on-a-work-of-fiction."> <span class="section-number-3">1.1.</span>  <a href="#It-is-a-little-strange-to-be-writing-a-review-on-a-work-of-fiction.">It is a little strange to be writing a review on a work of fiction.</a></h3>
 <div class="outline-text-3" id="text-It-is-a-little-strange-to-be-writing-a-review-on-a-work-of-fiction.">
</div>

 <div id="outline-container-For-years-the-only-kinds-of-texts-I-have-been-reading-have-been-technical-or-scientific." class="outline-4">
 <h4 id="For-years-the-only-kinds-of-texts-I-have-been-reading-have-been-technical-or-scientific."> <span class="section-number-4">1.1.1.</span>  <a href="#For-years-the-only-kinds-of-texts-I-have-been-reading-have-been-technical-or-scientific.">For years the only kinds of texts I have been reading have been technical or scientific.</a></h4>
 <div class="outline-text-4" id="text-For-years-the-only-kinds-of-texts-I-have-been-reading-have-been-technical-or-scientific.">
</div>
</div>
</div>

 <div id="outline-container-But-this-time-I-wanted-to-really-understand-the-person-who-had-recommended-this-book-to-me." class="outline-3">
 <h3 id="But-this-time-I-wanted-to-really-understand-the-person-who-had-recommended-this-book-to-me."> <span class="section-number-3">1.2.</span>  <a href="#But-this-time-I-wanted-to-really-understand-the-person-who-had-recommended-this-book-to-me.">But this time I wanted to really understand the person who had recommended this book to me.</a></h3>
 <div class="outline-text-3" id="text-But-this-time-I-wanted-to-really-understand-the-person-who-had-recommended-this-book-to-me.">
</div>
</div>

 <div id="outline-container-Moreover,-Lovecraft-is-mentioned-in-a-lot-of-places-as-a-well-known-context." class="outline-3">
 <h3 id="Moreover,-Lovecraft-is-mentioned-in-a-lot-of-places-as-a-well-known-context."> <span class="section-number-3">1.3.</span>  <a href="#Moreover,-Lovecraft-is-mentioned-in-a-lot-of-places-as-a-well-known-context.">Moreover, Lovecraft is mentioned in a lot of places as a well-known context.</a></h3>
 <div class="outline-text-3" id="text-Moreover,-Lovecraft-is-mentioned-in-a-lot-of-places-as-a-well-known-context.">
</div>

 <div id="outline-container-Not-even-mentioning-Russian-Lurkmore,-which-has-been,-seemingly,-much-more-of-a-cultural-phenomenon-than-the-English-one,-his-motives-are-very-widely-spread-in-modern-media." class="outline-4">
 <h4 id="Not-even-mentioning-Russian-Lurkmore,-which-has-been,-seemingly,-much-more-of-a-cultural-phenomenon-than-the-English-one,-his-motives-are-very-widely-spread-in-modern-media."> <span class="section-number-4">1.3.1.</span>  <a href="#Not-even-mentioning-Russian-Lurkmore,-which-has-been,-seemingly,-much-more-of-a-cultural-phenomenon-than-the-English-one,-his-motives-are-very-widely-spread-in-modern-media.">Not even mentioning Russian Lurkmore, which has been, seemingly, much more of a cultural phenomenon than the English one, his motives are very widely spread in modern media.</a></h4>
 <div class="outline-text-4" id="text-Not-even-mentioning-Russian-Lurkmore,-which-has-been,-seemingly,-much-more-of-a-cultural-phenomenon-than-the-English-one,-his-motives-are-very-widely-spread-in-modern-media.">
</div>

 <ol class="org-ol"> <li> <a id="Consider,-for-example,-the-omnipresence-of-tentacles-in-horror-and-lewd-cinema."></a> <a href="#Consider,-for-example,-the-omnipresence-of-tentacles-in-horror-and-lewd-cinema.">Consider, for example, the omnipresence of tentacles in horror and lewd cinema.</a> <br></br> <div class="outline-text-5" id="text-Consider,-for-example,-the-omnipresence-of-tentacles-in-horror-and-lewd-cinema.">
</div>
</li>
</ol></div>
</div>

 <div id="outline-container-My-friend-recommended-%22Mountains-of-Madness%22-to-me,-and-I-agreed-that-it-is-a-piece-to-start,-since-it-mentions-most-of-the-lovecraftian-lore." class="outline-3">
 <h3 id="My-friend-recommended-%22Mountains-of-Madness%22-to-me,-and-I-agreed-that-it-is-a-piece-to-start,-since-it-mentions-most-of-the-lovecraftian-lore."> <span class="section-number-3">1.4.</span>  <a href="#My-friend-recommended-%22Mountains-of-Madness%22-to-me,-and-I-agreed-that-it-is-a-piece-to-start,-since-it-mentions-most-of-the-lovecraftian-lore.">My friend recommended “Mountains of Madness” to me, and I agreed that it is a piece to start, since it mentions most of the lovecraftian lore.</a></h3>
 <div class="outline-text-3" id="text-My-friend-recommended-%22Mountains-of-Madness%22-to-me,-and-I-agreed-that-it-is-a-piece-to-start,-since-it-mentions-most-of-the-lovecraftian-lore.">
</div>
</div>

 <div id="outline-container-Below-is-my-review." class="outline-3">
 <h3 id="Below-is-my-review."> <span class="section-number-3">1.5.</span>  <a href="#Below-is-my-review.">Below is my review.</a></h3>
 <div class="outline-text-3" id="text-Below-is-my-review.">
</div>

 <div id="outline-container-I-am-not-claiming-that-it-is-in-any-way-compete-or-impartial." class="outline-4">
 <h4 id="I-am-not-claiming-that-it-is-in-any-way-compete-or-impartial."> <span class="section-number-4">1.5.1.</span>  <a href="#I-am-not-claiming-that-it-is-in-any-way-compete-or-impartial.">I am not claiming that it is in any way compete or impartial.</a></h4>
 <div class="outline-text-4" id="text-I-am-not-claiming-that-it-is-in-any-way-compete-or-impartial.">
</div>
</div>

 <div id="outline-container-I-was,-however,-reading-it-in-good-faith,-and-even-enjoyed-it-a-bit,-so-hopefully,-this-review-might-help-someone." class="outline-4">
 <h4 id="I-was,-however,-reading-it-in-good-faith,-and-even-enjoyed-it-a-bit,-so-hopefully,-this-review-might-help-someone."> <span class="section-number-4">1.5.2.</span>  <a href="#I-was,-however,-reading-it-in-good-faith,-and-even-enjoyed-it-a-bit,-so-hopefully,-this-review-might-help-someone.">I was, however, reading it in good faith, and even enjoyed it a bit, so hopefully, this review might help someone.</a></h4>
 <div class="outline-text-4" id="text-I-was,-however,-reading-it-in-good-faith,-and-even-enjoyed-it-a-bit,-so-hopefully,-this-review-might-help-someone.">
</div>
</div>
</div>

 <div id="outline-container-The-review-unavoidably-contains-spoilers,-apologies-for-that." class="outline-3">
 <h3 id="The-review-unavoidably-contains-spoilers,-apologies-for-that."> <span class="section-number-3">1.6.</span>  <a href="#The-review-unavoidably-contains-spoilers,-apologies-for-that.">The review unavoidably contains spoilers, apologies for that.</a></h3>
 <div class="outline-text-3" id="text-The-review-unavoidably-contains-spoilers,-apologies-for-that.">
</div>
</div>
</section> <section id="outline-container-The-Review" class="outline-2"> <h2 id="The-Review"> <span class="section-number-2">2.</span>  <a href="#The-Review">The Review</a></h2>
 <div class="outline-text-2" id="text-The-Review">
</div>

 <div id="outline-container-The-Plot" class="outline-3">
 <h3 id="The-Plot"> <span class="section-number-3">2.1.</span>  <a href="#The-Plot">The Plot</a></h3>
 <div class="outline-text-3" id="text-The-Plot">
</div>

 <div id="outline-container-%22Mountains-of-Madness%22-is-telling-a-story-about-an-imaginary-expedition-to-the-heart-of-the-Antarctic-continent." class="outline-4">
 <h4 id="%22Mountains-of-Madness%22-is-telling-a-story-about-an-imaginary-expedition-to-the-heart-of-the-Antarctic-continent."> <span class="section-number-4">2.1.1.</span>  <a href="#%22Mountains-of-Madness%22-is-telling-a-story-about-an-imaginary-expedition-to-the-heart-of-the-Antarctic-continent.">“Mountains of Madness” is telling a story about an imaginary expedition to the heart of the Antarctic continent.</a></h4>
 <div class="outline-text-4" id="text-%22Mountains-of-Madness%22-is-telling-a-story-about-an-imaginary-expedition-to-the-heart-of-the-Antarctic-continent.">
</div>
</div>

 <div id="outline-container-The-places-and-the-events-described-there-are-fictional,-however,-Lovecraft-exhibits-strenuous-effort-in-trying-to-maintain-the-connexion-with-reality.-%3C%3Cstyle1%3E%3E" class="outline-4">
 <h4 id="The-places-and-the-events-described-there-are-fictional,-however,-Lovecraft-exhibits-strenuous-effort-in-trying-to-maintain-the-connexion-with-reality.-%3C%3Cstyle1%3E%3E"> <span class="section-number-4">2.1.2.</span>  <a href="#The-places-and-the-events-described-there-are-fictional,-however,-Lovecraft-exhibits-strenuous-effort-in-trying-to-maintain-the-connexion-with-reality.-%3C%3Cstyle1%3E%3E">The places and the events described there are fictional, however, Lovecraft exhibits strenuous effort in trying to maintain the connexion with reality. </a> <a id="orgecd0e7b"></a></h4>
 <div class="outline-text-4" id="text-The-places-and-the-events-described-there-are-fictional,-however,-Lovecraft-exhibits-strenuous-effort-in-trying-to-maintain-the-connexion-with-reality.-%3C%3Cstyle1%3E%3E">
</div>

 <ol class="org-ol"> <li> <a id="He-is,-for-example,-mentioning-the-mountains-Terror-and-Erebus,-which-had-already-been-discovered-by-the-time-the-novel-was-written."></a> <a href="#He-is,-for-example,-mentioning-the-mountains-Terror-and-Erebus,-which-had-already-been-discovered-by-the-time-the-novel-was-written.">He is, for example, mentioning the mountains Terror and Erebus, which had already been discovered by the time the novel was written.</a> <br></br> <div class="outline-text-5" id="text-He-is,-for-example,-mentioning-the-mountains-Terror-and-Erebus,-which-had-already-been-discovered-by-the-time-the-novel-was-written.">
</div>
</li>

 <li> <a id="He-is-mentioning-various-kinds-of-fossils,-including-dinosaurs,-seemingly,-proving-that-he-has-done-his-reading-about-the-times-he-is-writing-about,-at-least-to-the-degree-possible-at-the-beginning-of-the-20-century."></a> <a href="#He-is-mentioning-various-kinds-of-fossils,-including-dinosaurs,-seemingly,-proving-that-he-has-done-his-reading-about-the-times-he-is-writing-about,-at-least-to-the-degree-possible-at-the-beginning-of-the-20-century.">He is mentioning various kinds of fossils, including dinosaurs, seemingly, proving that he has done his reading about the times he is writing about, at least to the degree possible at the beginning of the 20 century.</a> <br></br> <div class="outline-text-5" id="text-He-is-mentioning-various-kinds-of-fossils,-including-dinosaurs,-seemingly,-proving-that-he-has-done-his-reading-about-the-times-he-is-writing-about,-at-least-to-the-degree-possible-at-the-beginning-of-the-20-century.">
</div>
</li>

 <li> <a id="He-is-describing-their-exploration-equipment,-including-aeroplanes,-drilling-equipment,-sledges,-and-the-rest,-as-if-he-has-researched-how-such-expeditions-have-been-conducted-before."></a> <a href="#He-is-describing-their-exploration-equipment,-including-aeroplanes,-drilling-equipment,-sledges,-and-the-rest,-as-if-he-has-researched-how-such-expeditions-have-been-conducted-before.">He is describing their exploration equipment, including aeroplanes, drilling equipment, sledges, and the rest, as if he has researched how such expeditions have been conducted before.</a> <br></br> <div class="outline-text-5" id="text-He-is-describing-their-exploration-equipment,-including-aeroplanes,-drilling-equipment,-sledges,-and-the-rest,-as-if-he-has-researched-how-such-expeditions-have-been-conducted-before.">
</div>
</li>
</ol></div>

 <div id="outline-container-The-expedition-is-exploring-the-Antarctic-for-fossils,-as-well-as-for-geological-samples." class="outline-4">
 <h4 id="The-expedition-is-exploring-the-Antarctic-for-fossils,-as-well-as-for-geological-samples."> <span class="section-number-4">2.1.3.</span>  <a href="#The-expedition-is-exploring-the-Antarctic-for-fossils,-as-well-as-for-geological-samples.">The expedition is exploring the Antarctic for fossils, as well as for geological samples.</a></h4>
 <div class="outline-text-4" id="text-The-expedition-is-exploring-the-Antarctic-for-fossils,-as-well-as-for-geological-samples.">
</div>
</div>

 <div id="outline-container-They-are-traveling-over-the-continent-on-airplanes,-which-allows-rapid-and-long-distance-jumps-in-the-plot." class="outline-4">
 <h4 id="They-are-traveling-over-the-continent-on-airplanes,-which-allows-rapid-and-long-distance-jumps-in-the-plot."> <span class="section-number-4">2.1.4.</span>  <a href="#They-are-traveling-over-the-continent-on-airplanes,-which-allows-rapid-and-long-distance-jumps-in-the-plot.">They are traveling over the continent on airplanes, which allows rapid and long-distance jumps in the plot.</a></h4>
 <div class="outline-text-4" id="text-They-are-traveling-over-the-continent-on-airplanes,-which-allows-rapid-and-long-distance-jumps-in-the-plot.">
</div>

 <ol class="org-ol"> <li> <a id="How-realistic-is-this?-I-don't-know."></a> <a href="#How-realistic-is-this?-I-don't-know.">How realistic is this? I don’t know.</a> <br></br> <div class="outline-text-5" id="text-How-realistic-is-this?-I-don't-know.">
</div>
</li>
</ol></div>

 <div id="outline-container-At-some-point-the-crew-splits-into-two,-solving-different-tasks." class="outline-4">
 <h4 id="At-some-point-the-crew-splits-into-two,-solving-different-tasks."> <span class="section-number-4">2.1.5.</span>  <a href="#At-some-point-the-crew-splits-into-two,-solving-different-tasks.">At some point the crew splits into two, solving different tasks.</a></h4>
 <div class="outline-text-4" id="text-At-some-point-the-crew-splits-into-two,-solving-different-tasks.">
</div>

 <ol class="org-ol"> <li> <a id="Narration-is-done-from-the-point-of-view-of-the-expedition-head,-working-in-the-first-group."></a> <a href="#Narration-is-done-from-the-point-of-view-of-the-expedition-head,-working-in-the-first-group.">Narration is done from the point of view of the expedition head, working in the first group.</a> <br></br> <div class="outline-text-5" id="text-Narration-is-done-from-the-point-of-view-of-the-expedition-head,-working-in-the-first-group.">
</div>
</li>

 <li> <a id="Most-of-the-events-of-the-first-part-of-the-book-happen-with-the-second-group,-which-transmits-it's-reports-by-radio."></a> <a href="#Most-of-the-events-of-the-first-part-of-the-book-happen-with-the-second-group,-which-transmits-it's-reports-by-radio.">Most of the events of the first part of the book happen with the second group, which transmits it’s reports by radio.</a> <br></br> <div class="outline-text-5" id="text-Most-of-the-events-of-the-first-part-of-the-book-happen-with-the-second-group,-which-transmits-it's-reports-by-radio.">
</div>

 <ol class="org-ol"> <li> <a id="Interestingly,-they-transmit-their-reports-directly-to-the-University-which-has-sent-them.-A-very-American-thing."></a> <a href="#Interestingly,-they-transmit-their-reports-directly-to-the-University-which-has-sent-them.-A-very-American-thing.">Interestingly, they transmit their reports directly to the University which has sent them. A very American thing.</a> <br></br> <div class="outline-text-6" id="text-Interestingly,-they-transmit-their-reports-directly-to-the-University-which-has-sent-them.-A-very-American-thing.">
</div>
</li>
</ol></li>
</ol></div>

 <div id="outline-container-The-second-group-discovers-a-lot-of-interesting-artifacts,-including-traces-of-prehistoric-life-and-some-mysterious,-very-tall-mountain-chain." class="outline-4">
 <h4 id="The-second-group-discovers-a-lot-of-interesting-artifacts,-including-traces-of-prehistoric-life-and-some-mysterious,-very-tall-mountain-chain."> <span class="section-number-4">2.1.6.</span>  <a href="#The-second-group-discovers-a-lot-of-interesting-artifacts,-including-traces-of-prehistoric-life-and-some-mysterious,-very-tall-mountain-chain.">The second group discovers a lot of interesting artifacts, including traces of prehistoric life and some mysterious, very tall mountain chain.</a></h4>
 <div class="outline-text-4" id="text-The-second-group-discovers-a-lot-of-interesting-artifacts,-including-traces-of-prehistoric-life-and-some-mysterious,-very-tall-mountain-chain.">
</div>

 <ol class="org-ol"> <li> <a id="In-particular,-they-discover-several-examples-of-a-so-far-unknown-life-form,-somehow-different-to-both-animals-and-plants."></a> <a href="#In-particular,-they-discover-several-examples-of-a-so-far-unknown-life-form,-somehow-different-to-both-animals-and-plants.">In particular, they discover several examples of a so far unknown life form, somehow different to both animals and plants.</a> <br></br> <div class="outline-text-5" id="text-In-particular,-they-discover-several-examples-of-a-so-far-unknown-life-form,-somehow-different-to-both-animals-and-plants.">
</div>
</li>

 <li> <a id="They-also-do-some-crude-experiments-on-them,-at-least,-autopsy."></a> <a href="#They-also-do-some-crude-experiments-on-them,-at-least,-autopsy.">They also do some crude experiments on them, at least, autopsy.</a> <br></br> <div class="outline-text-5" id="text-They-also-do-some-crude-experiments-on-them,-at-least,-autopsy.">
</div>
</li>
</ol></div>

 <div id="outline-container-At-some-point,-however,-the-contact-with-the-second-group-is-lost,-and-the-narrator-has-to-investigate." class="outline-4">
 <h4 id="At-some-point,-however,-the-contact-with-the-second-group-is-lost,-and-the-narrator-has-to-investigate."> <span class="section-number-4">2.1.7.</span>  <a href="#At-some-point,-however,-the-contact-with-the-second-group-is-lost,-and-the-narrator-has-to-investigate.">At some point, however, the contact with the second group is lost, and the narrator has to investigate.</a></h4>
 <div class="outline-text-4" id="text-At-some-point,-however,-the-contact-with-the-second-group-is-lost,-and-the-narrator-has-to-investigate.">
</div>
</div>

 <div id="outline-container-The-investigation-shows-that-the-group-is-all-dead,-including-sled-dogs." class="outline-4">
 <h4 id="The-investigation-shows-that-the-group-is-all-dead,-including-sled-dogs."> <span class="section-number-4">2.1.8.</span>  <a href="#The-investigation-shows-that-the-group-is-all-dead,-including-sled-dogs.">The investigation shows that the group is all dead, including sled dogs.</a></h4>
 <div class="outline-text-4" id="text-The-investigation-shows-that-the-group-is-all-dead,-including-sled-dogs.">
</div>
</div>

 <div id="outline-container-Even-so,-the-first-group-considers-it-important-to-explore-the-mountains-that-the-second-group-was-so-excited-about." class="outline-4">
 <h4 id="Even-so,-the-first-group-considers-it-important-to-explore-the-mountains-that-the-second-group-was-so-excited-about."> <span class="section-number-4">2.1.9.</span>  <a href="#Even-so,-the-first-group-considers-it-important-to-explore-the-mountains-that-the-second-group-was-so-excited-about.">Even so, the first group considers it important to explore the mountains that the second group was so excited about.</a></h4>
 <div class="outline-text-4" id="text-Even-so,-the-first-group-considers-it-important-to-explore-the-mountains-that-the-second-group-was-so-excited-about.">
</div>
</div>

 <div id="outline-container-In-those-mountains-they-discover-a-rift,-which-allows-them-to-penetrate-the-mountain-chain-even-on-the-light-aerolanes-they-have." class="outline-4">
 <h4 id="In-those-mountains-they-discover-a-rift,-which-allows-them-to-penetrate-the-mountain-chain-even-on-the-light-aerolanes-they-have."> <span class="section-number-4">2.1.10.</span>  <a href="#In-those-mountains-they-discover-a-rift,-which-allows-them-to-penetrate-the-mountain-chain-even-on-the-light-aerolanes-they-have.">In those mountains they discover a rift, which allows them to penetrate the mountain chain even on the light aerolanes they have.</a></h4>
 <div class="outline-text-4" id="text-In-those-mountains-they-discover-a-rift,-which-allows-them-to-penetrate-the-mountain-chain-even-on-the-light-aerolanes-they-have.">
</div>
</div>

 <div id="outline-container-The-mountains-seem-to-be-circular-and-contain-a-forebode-city-enclosed." class="outline-4">
 <h4 id="The-mountains-seem-to-be-circular-and-contain-a-forebode-city-enclosed."> <span class="section-number-4">2.1.11.</span>  <a href="#The-mountains-seem-to-be-circular-and-contain-a-forebode-city-enclosed.">The mountains seem to be circular and contain a forebode city enclosed.</a></h4>
 <div class="outline-text-4" id="text-The-mountains-seem-to-be-circular-and-contain-a-forebode-city-enclosed.">
</div>
</div>

 <div id="outline-container-They-explore-the-city-and-find-out-a-building,-which,-in-a-very-vivid-manner,-by-the-means-of-bas-reliefs-and-frescoes-describes-the-city's-history,-as-well-as-the-history-of-the-whole-civilization-of-aliens-who-have-built-it." class="outline-4">
 <h4 id="They-explore-the-city-and-find-out-a-building,-which,-in-a-very-vivid-manner,-by-the-means-of-bas-reliefs-and-frescoes-describes-the-city's-history,-as-well-as-the-history-of-the-whole-civilization-of-aliens-who-have-built-it."> <span class="section-number-4">2.1.12.</span>  <a href="#They-explore-the-city-and-find-out-a-building,-which,-in-a-very-vivid-manner,-by-the-means-of-bas-reliefs-and-frescoes-describes-the-city's-history,-as-well-as-the-history-of-the-whole-civilization-of-aliens-who-have-built-it.">They explore the city and find out a building, which, in a very vivid manner, by the means of bas-reliefs and frescoes describes the city’s history, as well as the history of the whole civilization of aliens who have built it.</a></h4>
 <div class="outline-text-4" id="text-They-explore-the-city-and-find-out-a-building,-which,-in-a-very-vivid-manner,-by-the-means-of-bas-reliefs-and-frescoes-describes-the-city's-history,-as-well-as-the-history-of-the-whole-civilization-of-aliens-who-have-built-it.">
</div>

 <ol class="org-ol"> <li> <a id="The-building-must-really-be-a-museum."></a> <a href="#The-building-must-really-be-a-museum.">The building must really be a museum.</a> <br></br> <div class="outline-text-5" id="text-The-building-must-really-be-a-museum.">
</div>
</li>

 <li> <a id="Every-so,-it-seems-hard-to-believe-that-they-manage-to-understand-that-much-about-a-city-claimed-to-be-abandoned-millions-years-ago-and-whose-history-claimed-to-have-lasted-for-nearly-as-long,-in-a-few-hours."></a> <a href="#Every-so,-it-seems-hard-to-believe-that-they-manage-to-understand-that-much-about-a-city-claimed-to-be-abandoned-millions-years-ago-and-whose-history-claimed-to-have-lasted-for-nearly-as-long,-in-a-few-hours.">Every so, it seems hard to believe that they manage to understand that much about a city claimed to be abandoned millions years ago and whose history claimed to have lasted for nearly as long, in a few hours.</a> <br></br> <div class="outline-text-5" id="text-Every-so,-it-seems-hard-to-believe-that-they-manage-to-understand-that-much-about-a-city-claimed-to-be-abandoned-millions-years-ago-and-whose-history-claimed-to-have-lasted-for-nearly-as-long,-in-a-few-hours.">
</div>
</li>
</ol></div>

 <div id="outline-container-The-building-is-telling-them-that-the-civilization-had-to-eventually-recede-into-the-depths-of-the-Earth,-in-order-to-be-kept-warm-after-the-global-cooling,-by-the-Earth's-mantle." class="outline-4">
 <h4 id="The-building-is-telling-them-that-the-civilization-had-to-eventually-recede-into-the-depths-of-the-Earth,-in-order-to-be-kept-warm-after-the-global-cooling,-by-the-Earth's-mantle."> <span class="section-number-4">2.1.13.</span>  <a href="#The-building-is-telling-them-that-the-civilization-had-to-eventually-recede-into-the-depths-of-the-Earth,-in-order-to-be-kept-warm-after-the-global-cooling,-by-the-Earth's-mantle.">The building is telling them that the civilization had to eventually recede into the depths of the Earth, in order to be kept warm after the global cooling, by the Earth’s mantle.</a></h4>
 <div class="outline-text-4" id="text-The-building-is-telling-them-that-the-civilization-had-to-eventually-recede-into-the-depths-of-the-Earth,-in-order-to-be-kept-warm-after-the-global-cooling,-by-the-Earth's-mantle.">
</div>
</div>

 <div id="outline-container-The-entrance-to-the-underworld-seem-to-be-in-the-city." class="outline-4">
 <h4 id="The-entrance-to-the-underworld-seem-to-be-in-the-city."> <span class="section-number-4">2.1.14.</span>  <a href="#The-entrance-to-the-underworld-seem-to-be-in-the-city.">The entrance to the underworld seem to be in the city.</a></h4>
 <div class="outline-text-4" id="text-The-entrance-to-the-underworld-seem-to-be-in-the-city.">
</div>
</div>

 <div id="outline-container-They-decided-to-find-the-entrance-and-explore-the-underworld." class="outline-4">
 <h4 id="They-decided-to-find-the-entrance-and-explore-the-underworld."> <span class="section-number-4">2.1.15.</span>  <a href="#They-decided-to-find-the-entrance-and-explore-the-underworld.">They decided to find the entrance and explore the underworld.</a></h4>
 <div class="outline-text-4" id="text-They-decided-to-find-the-entrance-and-explore-the-underworld.">
</div>
</div>

 <div id="outline-container-At-the-entrance-they-find-the-body-of-one-of-the-members-of-the-second-group,-who-had-been-killed-by-the-unearthed-aliens." class="outline-4">
 <h4 id="At-the-entrance-they-find-the-body-of-one-of-the-members-of-the-second-group,-who-had-been-killed-by-the-unearthed-aliens."> <span class="section-number-4">2.1.16.</span>  <a href="#At-the-entrance-they-find-the-body-of-one-of-the-members-of-the-second-group,-who-had-been-killed-by-the-unearthed-aliens.">At the entrance they find the body of one of the members of the second group, who had been killed by the unearthed aliens.</a></h4>
 <div class="outline-text-4" id="text-At-the-entrance-they-find-the-body-of-one-of-the-members-of-the-second-group,-who-had-been-killed-by-the-unearthed-aliens.">
</div>
</div>

 <div id="outline-container-They-enter-the-long-cavernous-passage-to-that-hypothetical-underworld-city,-and-go-quite-deep." class="outline-4">
 <h4 id="They-enter-the-long-cavernous-passage-to-that-hypothetical-underworld-city,-and-go-quite-deep."> <span class="section-number-4">2.1.17.</span>  <a href="#They-enter-the-long-cavernous-passage-to-that-hypothetical-underworld-city,-and-go-quite-deep.">They enter the long cavernous passage to that hypothetical underworld city, and go quite deep.</a></h4>
 <div class="outline-text-4" id="text-They-enter-the-long-cavernous-passage-to-that-hypothetical-underworld-city,-and-go-quite-deep.">
</div>
</div>

 <div id="outline-container-At-the-very-bottom-of-the-passage-they-find-decapitated-corpses-of-some-of-the-aliens,-and-are-driven-out-to-the-surface-by-a-mysterious-creature,-vaguely-similar-in-looks-too-the-aliens,-but-not-quite." class="outline-4">
 <h4 id="At-the-very-bottom-of-the-passage-they-find-decapitated-corpses-of-some-of-the-aliens,-and-are-driven-out-to-the-surface-by-a-mysterious-creature,-vaguely-similar-in-looks-too-the-aliens,-but-not-quite."> <span class="section-number-4">2.1.18.</span>  <a href="#At-the-very-bottom-of-the-passage-they-find-decapitated-corpses-of-some-of-the-aliens,-and-are-driven-out-to-the-surface-by-a-mysterious-creature,-vaguely-similar-in-looks-too-the-aliens,-but-not-quite.">At the very bottom of the passage they find decapitated corpses of some of the aliens, and are driven out to the surface by a mysterious creature, vaguely similar in looks too the aliens, but not quite.</a></h4>
 <div class="outline-text-4" id="text-At-the-very-bottom-of-the-passage-they-find-decapitated-corpses-of-some-of-the-aliens,-and-are-driven-out-to-the-surface-by-a-mysterious-creature,-vaguely-similar-in-looks-too-the-aliens,-but-not-quite.">
</div>
</div>

 <div id="outline-container-The-rest-of-the-story-consists-of-them-returning-back-to-their-ship,-and-agreeing-to-withhold-the-details-of-the-expedition-from-the-authorities." class="outline-4">
 <h4 id="The-rest-of-the-story-consists-of-them-returning-back-to-their-ship,-and-agreeing-to-withhold-the-details-of-the-expedition-from-the-authorities."> <span class="section-number-4">2.1.19.</span>  <a href="#The-rest-of-the-story-consists-of-them-returning-back-to-their-ship,-and-agreeing-to-withhold-the-details-of-the-expedition-from-the-authorities.">The rest of the story consists of them returning back to their ship, and agreeing to withhold the details of the expedition from the authorities.</a></h4>
 <div class="outline-text-4" id="text-The-rest-of-the-story-consists-of-them-returning-back-to-their-ship,-and-agreeing-to-withhold-the-details-of-the-expedition-from-the-authorities.">
</div>
</div>
</div>

 <div id="outline-container-The-Style" class="outline-3">
 <h3 id="The-Style"> <span class="section-number-3">2.2.</span>  <a href="#The-Style">The Style</a></h3>
 <div class="outline-text-3" id="text-The-Style">
</div>

 <div id="outline-container-Lovecraft-is-considered-to-be-one-of-the-masters-of-American-literature." class="outline-4">
 <h4 id="Lovecraft-is-considered-to-be-one-of-the-masters-of-American-literature."> <span class="section-number-4">2.2.1.</span>  <a href="#Lovecraft-is-considered-to-be-one-of-the-masters-of-American-literature.">Lovecraft is considered to be one of the masters of American literature.</a></h4>
 <div class="outline-text-4" id="text-Lovecraft-is-considered-to-be-one-of-the-masters-of-American-literature.">
</div>
</div>

 <div id="outline-container-He-has-numerous-influencees,-both-literary,-and-in-other-fields-of-art." class="outline-4">
 <h4 id="He-has-numerous-influencees,-both-literary,-and-in-other-fields-of-art."> <span class="section-number-4">2.2.2.</span>  <a href="#He-has-numerous-influencees,-both-literary,-and-in-other-fields-of-art.">He has numerous influencees, both literary, and in other fields of art.</a></h4>
 <div class="outline-text-4" id="text-He-has-numerous-influencees,-both-literary,-and-in-other-fields-of-art.">
</div>
</div>

 <div id="outline-container-As-mentioned-before,-in-%5B%5Bstyle1%5D%5D,-Lovecraft-tried-to-do-his-best-in-researching-the-background-for-the-book." class="outline-4">
 <h4 id="As-mentioned-before,-in-%5B%5Bstyle1%5D%5D,-Lovecraft-tried-to-do-his-best-in-researching-the-background-for-the-book."> <span class="section-number-4">2.2.3.</span>  <a href="#As-mentioned-before,-in-%5B%5Bstyle1%5D%5D,-Lovecraft-tried-to-do-his-best-in-researching-the-background-for-the-book.">As mentioned before, in </a> <a href="#orgecd0e7b">2.1.2</a>, Lovecraft tried to do his best in researching the background for the book.</h4>
 <div class="outline-text-4" id="text-As-mentioned-before,-in-%5B%5Bstyle1%5D%5D,-Lovecraft-tried-to-do-his-best-in-researching-the-background-for-the-book.">
</div>
</div>

 <div id="outline-container-In-my-profane-opinion,-he-can-be-considered-a-direct-successor-to-Edgar-Allan-Poe." class="outline-4">
 <h4 id="In-my-profane-opinion,-he-can-be-considered-a-direct-successor-to-Edgar-Allan-Poe."> <span class="section-number-4">2.2.4.</span>  <a href="#In-my-profane-opinion,-he-can-be-considered-a-direct-successor-to-Edgar-Allan-Poe.">In my profane opinion, he can be considered a direct successor to Edgar Allan Poe.</a></h4>
 <div class="outline-text-4" id="text-In-my-profane-opinion,-he-can-be-considered-a-direct-successor-to-Edgar-Allan-Poe.">
</div>

 <ol class="org-ol"> <li> <a id="He-is-also-considered-to-be-writing-%22horror%22-fiction."></a> <a href="#He-is-also-considered-to-be-writing-%22horror%22-fiction.">He is also considered to be writing “horror” fiction.</a> <br></br> <div class="outline-text-5" id="text-He-is-also-considered-to-be-writing-%22horror%22-fiction.">
</div>
</li>

 <li> <a id="His-horrors-also-seem-to-be-generally-coming-from-a-laboriously-crafted-atmosphere,-rather-than-on-detailed-depictions-of-brutality."></a> <a href="#His-horrors-also-seem-to-be-generally-coming-from-a-laboriously-crafted-atmosphere,-rather-than-on-detailed-depictions-of-brutality.">His horrors also seem to be generally coming from a laboriously crafted atmosphere, rather than on detailed depictions of brutality.</a> <br></br> <div class="outline-text-5" id="text-His-horrors-also-seem-to-be-generally-coming-from-a-laboriously-crafted-atmosphere,-rather-than-on-detailed-depictions-of-brutality.">
</div>
</li>
</ol></div>

 <div id="outline-container-However,-it-can't-be-ignored-that-by-modern-standards-the-book-can-be-seen-as-quite-naive." class="outline-4">
 <h4 id="However,-it-can't-be-ignored-that-by-modern-standards-the-book-can-be-seen-as-quite-naive."> <span class="section-number-4">2.2.5.</span>  <a href="#However,-it-can't-be-ignored-that-by-modern-standards-the-book-can-be-seen-as-quite-naive.">However, it can’t be ignored that by modern standards the book can be seen as quite naive.</a></h4>
 <div class="outline-text-4" id="text-However,-it-can't-be-ignored-that-by-modern-standards-the-book-can-be-seen-as-quite-naive.">
</div>

 <ol class="org-ol"> <li> <a id="There-are-quite-a-few-Deus-Ex-Machina-tropes,-such-as-reading-the-city-history-from-frescoes,-which-can't-be-believed-by-even-a-tiny-bit-critical-reader."></a> <a href="#There-are-quite-a-few-Deus-Ex-Machina-tropes,-such-as-reading-the-city-history-from-frescoes,-which-can't-be-believed-by-even-a-tiny-bit-critical-reader.">There are quite a few Deus Ex Machina tropes, such as reading the city history from frescoes, which can’t be believed by even a tiny bit critical reader.</a> <br></br> <div class="outline-text-5" id="text-There-are-quite-a-few-Deus-Ex-Machina-tropes,-such-as-reading-the-city-history-from-frescoes,-which-can't-be-believed-by-even-a-tiny-bit-critical-reader.">
</div>
</li>

 <li> <a id="The-most-ridiculous-tool-of-his-expressive-repertoire-is-just-saying-%22horrible%22-and-%22of-madness%22-again-and-again,-as-if-it-should-really-evoke-the-feeling-of-terror-in-the-reader.-It-won't."></a> <a href="#The-most-ridiculous-tool-of-his-expressive-repertoire-is-just-saying-%22horrible%22-and-%22of-madness%22-again-and-again,-as-if-it-should-really-evoke-the-feeling-of-terror-in-the-reader.-It-won't.">The most ridiculous tool of his expressive repertoire is just saying “horrible” and “of madness” again and again, as if it should really evoke the feeling of terror in the reader. It won’t.</a> <br></br> <div class="outline-text-5" id="text-The-most-ridiculous-tool-of-his-expressive-repertoire-is-just-saying-%22horrible%22-and-%22of-madness%22-again-and-again,-as-if-it-should-really-evoke-the-feeling-of-terror-in-the-reader.-It-won't.">
</div>
</li>
</ol></div>

 <div id="outline-container-By-modern-standards-I-wouldn't-even-call-this-book-%22horror%22." class="outline-4">
 <h4 id="By-modern-standards-I-wouldn't-even-call-this-book-%22horror%22."> <span class="section-number-4">2.2.6.</span>  <a href="#By-modern-standards-I-wouldn't-even-call-this-book-%22horror%22.">By modern standards I wouldn’t even call this book “horror”.</a></h4>
 <div class="outline-text-4" id="text-By-modern-standards-I-wouldn't-even-call-this-book-%22horror%22.">
</div>
</div>

 <div id="outline-container-However,-I-generally-liked-it,-but-but-as-much-for-it's-attempts-to-scare,-but-rather-for-his-sincere,-although,-perhaps,-unreflected,-attempt-to-continue-the-similarly-naive,-but-captivating-stories-of-the-Great-Geographical-Discoveries,-such-as-those-written-by-Fenimore-Cooper,-Mayne-Reed,-Louis-Boussenard." class="outline-4">
 <h4 id="However,-I-generally-liked-it,-but-but-as-much-for-it's-attempts-to-scare,-but-rather-for-his-sincere,-although,-perhaps,-unreflected,-attempt-to-continue-the-similarly-naive,-but-captivating-stories-of-the-Great-Geographical-Discoveries,-such-as-those-written-by-Fenimore-Cooper,-Mayne-Reed,-Louis-Boussenard."> <span class="section-number-4">2.2.7.</span>  <a href="#However,-I-generally-liked-it,-but-but-as-much-for-it's-attempts-to-scare,-but-rather-for-his-sincere,-although,-perhaps,-unreflected,-attempt-to-continue-the-similarly-naive,-but-captivating-stories-of-the-Great-Geographical-Discoveries,-such-as-those-written-by-Fenimore-Cooper,-Mayne-Reed,-Louis-Boussenard.">However, I generally liked it, but but as much for it’s attempts to scare, but rather for his sincere, although, perhaps, unreflected, attempt to continue the similarly naive, but captivating stories of the Great Geographical Discoveries, such as those written by Fenimore Cooper, Mayne Reed, Louis Boussenard.</a></h4>
 <div class="outline-text-4" id="text-However,-I-generally-liked-it,-but-but-as-much-for-it's-attempts-to-scare,-but-rather-for-his-sincere,-although,-perhaps,-unreflected,-attempt-to-continue-the-similarly-naive,-but-captivating-stories-of-the-Great-Geographical-Discoveries,-such-as-those-written-by-Fenimore-Cooper,-Mayne-Reed,-Louis-Boussenard.">
</div>
</div>

 <div id="outline-container-It's-self-evident-that-in-the-age-of-aeroplanes,-oil-wells,-chemical-weapons,-and-radio,-an-author-cannot-really-avoid-the-necessity-to-introduce-alien-(supernatural)-elements-into-the-story-to-provide-the-same-level-of-challenge-as-the-one-observed-in-the-classical-exploration-novels." class="outline-4">
 <h4 id="It's-self-evident-that-in-the-age-of-aeroplanes,-oil-wells,-chemical-weapons,-and-radio,-an-author-cannot-really-avoid-the-necessity-to-introduce-alien-(supernatural)-elements-into-the-story-to-provide-the-same-level-of-challenge-as-the-one-observed-in-the-classical-exploration-novels."> <span class="section-number-4">2.2.8.</span>  <a href="#It's-self-evident-that-in-the-age-of-aeroplanes,-oil-wells,-chemical-weapons,-and-radio,-an-author-cannot-really-avoid-the-necessity-to-introduce-alien-(supernatural)-elements-into-the-story-to-provide-the-same-level-of-challenge-as-the-one-observed-in-the-classical-exploration-novels.">It’s self-evident that in the age of aeroplanes, oil wells, chemical weapons, and radio, an author cannot really avoid the necessity to introduce alien (supernatural) elements into the story to provide the same level of challenge as the one observed in the classical exploration novels.</a></h4>
 <div class="outline-text-4" id="text-It's-self-evident-that-in-the-age-of-aeroplanes,-oil-wells,-chemical-weapons,-and-radio,-an-author-cannot-really-avoid-the-necessity-to-introduce-alien-(supernatural)-elements-into-the-story-to-provide-the-same-level-of-challenge-as-the-one-observed-in-the-classical-exploration-novels.">
</div>
</div>

 <div id="outline-container-It-is-symbolic-that-he-had-to-resort-to-the-last-under-explored-continent-of-the-world,-the-Antarctic,-in-order-to-provide-at-least-in-part-the-fascination-of-discovery,-previously-available-to-the-explorers-of-such-nowadays-mundane-places-as-California." class="outline-4">
 <h4 id="It-is-symbolic-that-he-had-to-resort-to-the-last-under-explored-continent-of-the-world,-the-Antarctic,-in-order-to-provide-at-least-in-part-the-fascination-of-discovery,-previously-available-to-the-explorers-of-such-nowadays-mundane-places-as-California."> <span class="section-number-4">2.2.9.</span>  <a href="#It-is-symbolic-that-he-had-to-resort-to-the-last-under-explored-continent-of-the-world,-the-Antarctic,-in-order-to-provide-at-least-in-part-the-fascination-of-discovery,-previously-available-to-the-explorers-of-such-nowadays-mundane-places-as-California.">It is symbolic that he had to resort to the last under-explored continent of the world, the Antarctic, in order to provide at least in part the fascination of discovery, previously available to the explorers of such nowadays mundane places as California.</a></h4>
 <div class="outline-text-4" id="text-It-is-symbolic-that-he-had-to-resort-to-the-last-under-explored-continent-of-the-world,-the-Antarctic,-in-order-to-provide-at-least-in-part-the-fascination-of-discovery,-previously-available-to-the-explorers-of-such-nowadays-mundane-places-as-California.">
</div>
</div>

 <div id="outline-container-He-really-tried-his-best,-his-language-is-vivid-and-colourful,-and-he-really-made-me-learn-quite-a-lot-of-new-English." class="outline-4">
 <h4 id="He-really-tried-his-best,-his-language-is-vivid-and-colourful,-and-he-really-made-me-learn-quite-a-lot-of-new-English."> <span class="section-number-4">2.2.10.</span>  <a href="#He-really-tried-his-best,-his-language-is-vivid-and-colourful,-and-he-really-made-me-learn-quite-a-lot-of-new-English.">He really tried his best, his language is vivid and colourful, and he really made me learn quite a lot of new English.</a></h4>
 <div class="outline-text-4" id="text-He-really-tried-his-best,-his-language-is-vivid-and-colourful,-and-he-really-made-me-learn-quite-a-lot-of-new-English.">
</div>
</div>

 <div id="outline-container-But-if-you-really-look-at-the-plot-and-the-style-with-a-naked-eye,-you-really-start-seeing-that-the-feeling-of-the-end-of-the-civilization-(of-the-aliens),-and-the-frontier-for-exploration-(for-the-Man),-elicits-an-emotion-really-much-stronger-than-that-of-horror-from-encountering-the-Chtonic.-The-feeling-of-The-End." class="outline-4">
 <h4 id="But-if-you-really-look-at-the-plot-and-the-style-with-a-naked-eye,-you-really-start-seeing-that-the-feeling-of-the-end-of-the-civilization-(of-the-aliens),-and-the-frontier-for-exploration-(for-the-Man),-elicits-an-emotion-really-much-stronger-than-that-of-horror-from-encountering-the-Chtonic.-The-feeling-of-The-End."> <span class="section-number-4">2.2.11.</span>  <a href="#But-if-you-really-look-at-the-plot-and-the-style-with-a-naked-eye,-you-really-start-seeing-that-the-feeling-of-the-end-of-the-civilization-(of-the-aliens),-and-the-frontier-for-exploration-(for-the-Man),-elicits-an-emotion-really-much-stronger-than-that-of-horror-from-encountering-the-Chtonic.-The-feeling-of-The-End.">But if you really look at the plot and the style with a naked eye, you really start seeing that the feeling of the end of the civilization (of the aliens), and the frontier for exploration (for the Man), elicits an emotion really much stronger than that of horror from encountering the Chtonic. The feeling of The End.</a></h4>
 <div class="outline-text-4" id="text-But-if-you-really-look-at-the-plot-and-the-style-with-a-naked-eye,-you-really-start-seeing-that-the-feeling-of-the-end-of-the-civilization-(of-the-aliens),-and-the-frontier-for-exploration-(for-the-Man),-elicits-an-emotion-really-much-stronger-than-that-of-horror-from-encountering-the-Chtonic.-The-feeling-of-The-End.">
</div>
</div>
</div>

 <div id="outline-container-The-Postmodernism" class="outline-3">
 <h3 id="The-Postmodernism"> <span class="section-number-3">2.3.</span>  <a href="#The-Postmodernism">The Postmodernism</a></h3>
 <div class="outline-text-3" id="text-The-Postmodernism">
 <p>
This section title is, perhaps, a misnomer, as intertextuality had existed before postmodernism arose.
</p>
</div>

 <div id="outline-container-There-is-at-least-one-more-book-called-%22Mountains-of-Madness%22,-written-by-a-guy-who-would-had-become-so-fascinated-with-Lovecraft-that-he-gained-a-degree-in-geology-and-spent-a-long-time-working-in-Antarctica." class="outline-4">
 <h4 id="There-is-at-least-one-more-book-called-%22Mountains-of-Madness%22,-written-by-a-guy-who-would-had-become-so-fascinated-with-Lovecraft-that-he-gained-a-degree-in-geology-and-spent-a-long-time-working-in-Antarctica."> <span class="section-number-4">2.3.1.</span>  <a href="#There-is-at-least-one-more-book-called-%22Mountains-of-Madness%22,-written-by-a-guy-who-would-had-become-so-fascinated-with-Lovecraft-that-he-gained-a-degree-in-geology-and-spent-a-long-time-working-in-Antarctica.">There is at least one more book called “Mountains of Madness”, written by a guy who would had become so fascinated with Lovecraft that he gained a degree in geology and spent a long time working in Antarctica.</a></h4>
 <div class="outline-text-4" id="text-There-is-at-least-one-more-book-called-%22Mountains-of-Madness%22,-written-by-a-guy-who-would-had-become-so-fascinated-with-Lovecraft-that-he-gained-a-degree-in-geology-and-spent-a-long-time-working-in-Antarctica.">
</div>

 <ol class="org-ol"> <li> <a id="This-guy-is-a-real-gigachad,-and-should-be-admired."></a> <a href="#This-guy-is-a-real-gigachad,-and-should-be-admired.">This guy is a real gigachad, and should be admired.</a> <br></br> <div class="outline-text-5" id="text-This-guy-is-a-real-gigachad,-and-should-be-admired.">
</div>
</li>
</ol></div>

 <div id="outline-container-He-does-mention-Ctulhu,-Necronomicon,-and-some-other-members-of-his-legendarium." class="outline-4">
 <h4 id="He-does-mention-Ctulhu,-Necronomicon,-and-some-other-members-of-his-legendarium."> <span class="section-number-4">2.3.2.</span>  <a href="#He-does-mention-Ctulhu,-Necronomicon,-and-some-other-members-of-his-legendarium.">He does mention Ctulhu, Necronomicon, and some other members of his legendarium.</a></h4>
 <div class="outline-text-4" id="text-He-does-mention-Ctulhu,-Necronomicon,-and-some-other-members-of-his-legendarium.">
</div>

 <ol class="org-ol"> <li> <a id="I-am-not-sure-that-this-book-is-really-the-one-to-start-learning-his-Lore-though."></a> <a href="#I-am-not-sure-that-this-book-is-really-the-one-to-start-learning-his-Lore-though.">I am not sure that this book is really the one to start learning his Lore though.</a> <br></br> <div class="outline-text-5" id="text-I-am-not-sure-that-this-book-is-really-the-one-to-start-learning-his-Lore-though.">
</div>
</li>
</ol></div>

 <div id="outline-container-As-already-mentioned,-mountains-Erebus-and-Terror-do-exist,-and-there-is-a-book-about-Antarctic-exploration-on-the-ships-of-the-same-name." class="outline-4">
 <h4 id="As-already-mentioned,-mountains-Erebus-and-Terror-do-exist,-and-there-is-a-book-about-Antarctic-exploration-on-the-ships-of-the-same-name."> <span class="section-number-4">2.3.3.</span>  <a href="#As-already-mentioned,-mountains-Erebus-and-Terror-do-exist,-and-there-is-a-book-about-Antarctic-exploration-on-the-ships-of-the-same-name.">As already mentioned, mountains Erebus and Terror do exist, and there is a book about Antarctic exploration on the ships of the same name.</a></h4>
 <div class="outline-text-4" id="text-As-already-mentioned,-mountains-Erebus-and-Terror-do-exist,-and-there-is-a-book-about-Antarctic-exploration-on-the-ships-of-the-same-name.">
</div>
</div>

 <div id="outline-container-Forgotten-city-is-a-fairly-classical-trope-in-fiction." class="outline-4">
 <h4 id="Forgotten-city-is-a-fairly-classical-trope-in-fiction."> <span class="section-number-4">2.3.4.</span>  <a href="#Forgotten-city-is-a-fairly-classical-trope-in-fiction.">Forgotten city is a fairly classical trope in fiction.</a></h4>
 <div class="outline-text-4" id="text-Forgotten-city-is-a-fairly-classical-trope-in-fiction.">
</div>
</div>

 <div id="outline-container-The-image-of-a-scientist-who-is-so-curious-that-this-curiosity-makes-him-blithely-disregard-all-danger-is-also-quite-pervasive" class="outline-4">
 <h4 id="The-image-of-a-scientist-who-is-so-curious-that-this-curiosity-makes-him-blithely-disregard-all-danger-is-also-quite-pervasive"> <span class="section-number-4">2.3.5.</span>  <a href="#The-image-of-a-scientist-who-is-so-curious-that-this-curiosity-makes-him-blithely-disregard-all-danger-is-also-quite-pervasive">The image of a scientist who is so curious that this curiosity makes him blithely disregard all danger is also quite pervasive</a></h4>
 <div class="outline-text-4" id="text-The-image-of-a-scientist-who-is-so-curious-that-this-curiosity-makes-him-blithely-disregard-all-danger-is-also-quite-pervasive">
</div>

 <ol class="org-ol"> <li> <a id="I-am-not-sure-that-Lovecraft-is-the-first-one-to-invent-this-emploi,-but-big-thanks-to-him-for-popularising-it-with-the-broad-audience."></a> <a href="#I-am-not-sure-that-Lovecraft-is-the-first-one-to-invent-this-emploi,-but-big-thanks-to-him-for-popularising-it-with-the-broad-audience.">I am not sure that Lovecraft is the first one to invent this emploi, but big thanks to him for popularising it with the broad audience.</a> <br></br> <div class="outline-text-5" id="text-I-am-not-sure-that-Lovecraft-is-the-first-one-to-invent-this-emploi,-but-big-thanks-to-him-for-popularising-it-with-the-broad-audience.">
</div>
</li>

 <li> <a id="I-am-finding-a-bit-of-smell-of-Gordon-Freeman-in-the-main-heroes."></a> <a href="#I-am-finding-a-bit-of-smell-of-Gordon-Freeman-in-the-main-heroes.">I am finding a bit of smell of Gordon Freeman in the main heroes.</a> <br></br> <div class="outline-text-5" id="text-I-am-finding-a-bit-of-smell-of-Gordon-Freeman-in-the-main-heroes.">
</div>
</li>
</ol></div>

 <div id="outline-container-I-can't-resist-the-feeling-that-there-is-a-second-bottom-to-the-main-narrator's-claim-that-he-is-only-disclosing-his-adventures-because-he-wants-to-prevent-a-new-expedition." class="outline-4">
 <h4 id="I-can't-resist-the-feeling-that-there-is-a-second-bottom-to-the-main-narrator's-claim-that-he-is-only-disclosing-his-adventures-because-he-wants-to-prevent-a-new-expedition."> <span class="section-number-4">2.3.6.</span>  <a href="#I-can't-resist-the-feeling-that-there-is-a-second-bottom-to-the-main-narrator's-claim-that-he-is-only-disclosing-his-adventures-because-he-wants-to-prevent-a-new-expedition.">I can’t resist the feeling that there is a second bottom to the main narrator’s claim that he is only disclosing his adventures because he wants to prevent a new expedition.</a></h4>
 <div class="outline-text-4" id="text-I-can't-resist-the-feeling-that-there-is-a-second-bottom-to-the-main-narrator's-claim-that-he-is-only-disclosing-his-adventures-because-he-wants-to-prevent-a-new-expedition.">
</div>

 <ol class="org-ol"> <li> <a id="Of-course-a-story-like-this-would-only-encourage-more-and-better-equipped-incursions-into-the-Mountains-of-Madness."></a> <a href="#Of-course-a-story-like-this-would-only-encourage-more-and-better-equipped-incursions-into-the-Mountains-of-Madness.">Of course a story like this would only encourage more and better equipped incursions into the Mountains of Madness.</a> <br></br> <div class="outline-text-5" id="text-Of-course-a-story-like-this-would-only-encourage-more-and-better-equipped-incursions-into-the-Mountains-of-Madness.">
</div>
</li>

 <li> <a id="After-all,-who-would-really-be-afraid-of-the-slimy-shapeshifters-while-having-flamethrowers,-carpet-bombers,-and-ships-of-high-explosives-and-152-mm-artillery-shells-at-one's-disposal?"></a> <a href="#After-all,-who-would-really-be-afraid-of-the-slimy-shapeshifters-while-having-flamethrowers,-carpet-bombers,-and-ships-of-high-explosives-and-152-mm-artillery-shells-at-one's-disposal?">After all, who would really be afraid of the slimy shapeshifters while having flamethrowers, carpet bombers, and ships of high explosives and 152 mm artillery shells at one’s disposal?</a> <br></br> <div class="outline-text-5" id="text-After-all,-who-would-really-be-afraid-of-the-slimy-shapeshifters-while-having-flamethrowers,-carpet-bombers,-and-ships-of-high-explosives-and-152-mm-artillery-shells-at-one's-disposal?">
</div>
</li>

 <li> <a id="There-must-be-one-hegemonic-species-on-this-Earth,-and-that-is-us,-the-Man."></a> <a href="#There-must-be-one-hegemonic-species-on-this-Earth,-and-that-is-us,-the-Man.">There must be one hegemonic species on this Earth, and that is us, the Man.</a> <br></br> <div class="outline-text-5" id="text-There-must-be-one-hegemonic-species-on-this-Earth,-and-that-is-us,-the-Man.">
</div>
</li>

 <li> <a id="%22The-Last-Republic%22,-if-you-know-what-I-mean."></a> <a href="#%22The-Last-Republic%22,-if-you-know-what-I-mean.">“The Last Republic”, if you know what I mean.</a> <br></br> <div class="outline-text-5" id="text-%22The-Last-Republic%22,-if-you-know-what-I-mean.">
</div>
</li>
</ol></div>

 <div id="outline-container-I-am-also-impressed-by-the-references-to-Nicholas-Roerich.-Didn't-know-Lovecraft-was-aware-of-that-obscure-Russian-living-in-India." class="outline-4">
 <h4 id="I-am-also-impressed-by-the-references-to-Nicholas-Roerich.-Didn't-know-Lovecraft-was-aware-of-that-obscure-Russian-living-in-India."> <span class="section-number-4">2.3.7.</span>  <a href="#I-am-also-impressed-by-the-references-to-Nicholas-Roerich.-Didn't-know-Lovecraft-was-aware-of-that-obscure-Russian-living-in-India.">I am also impressed by the references to Nicholas Roerich. Didn’t know Lovecraft was aware of that obscure Russian living in India.</a></h4>
 <div class="outline-text-4" id="text-I-am-also-impressed-by-the-references-to-Nicholas-Roerich.-Didn't-know-Lovecraft-was-aware-of-that-obscure-Russian-living-in-India.">
</div>
</div>
</div>

 <div id="outline-container-The-Afterword" class="outline-3">
 <h3 id="The-Afterword"> <span class="section-number-3">2.4.</span>  <a href="#The-Afterword">The Afterword</a></h3>
 <div class="outline-text-3" id="text-The-Afterword">
 <p>
The book, even though being easy to read, made me reflect a bit on myself and life.
</p>

 <p>
It made me remember childhood, my academic dreams, and the texts that gave me inspiration while at school.
</p>

 <p>
Poor Older Ones, Poor Ctulhu, and poor people who are left with a world which has no places left to run away to.
</p>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-01-07_review-of-Lovecraft-Mountains-Of-Madness.d/index.html"/>
  <id>https://lockywolf.net/2024-01-07_review-of-Lovecraft-Mountains-Of-Madness.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Words from Mountains of Madness.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Words from Mountains of Madness.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Body">1.  <span class="todo TODO">TODO</span> Body</a></li>
</ul></div>
</nav> <section id="outline-container-Body" class="outline-2"> <h2 id="Body"> <span class="section-number-2">1.</span>  <a href="#Body"> <span class="todo TODO">TODO</span> Body</a></h2>
 <div class="outline-text-2" id="text-Body">
 <ol class="org-ol"> <li class="off"> <input type="checkbox"></input> pituitary ::</li>
 <li class="off"> <input type="checkbox"></input> lapel ::</li>
 <li class="off"> <input type="checkbox"></input> gunmetal ::</li>
 <li class="off"> <input type="checkbox"></input> square ::</li>
 <li class="off"> <input type="checkbox"></input> thimble ::</li>
 <li class="off"> <input type="checkbox"></input> latch ::</li>
 <li class="off"> <input type="checkbox"></input> temper ::</li>
 <li class="off"> <input type="checkbox"></input> shag ::</li>
 <li class="off"> <input type="checkbox"></input> fletcher ::</li>
 <li class="off"> <input type="checkbox"></input> pushover ::</li>
 <li class="off"> <input type="checkbox"></input> futon ::</li>
 <li class="off"> <input type="checkbox"></input> scuff ::</li>
 <li class="off"> <input type="checkbox"></input> lukewarm ::</li>
 <li class="off"> <input type="checkbox"></input> mulch ::</li>
 <li class="off"> <input type="checkbox"></input> plywood ::</li>
 <li class="off"> <input type="checkbox"></input> blower ::</li>
 <li class="off"> <input type="checkbox"></input> mewl ::</li>
 <li class="off"> <input type="checkbox"></input> flecked ::</li>
 <li class="off"> <input type="checkbox"></input> desiccated ::</li>
 <li class="off"> <input type="checkbox"></input> tussle ::</li>
 <li class="off"> <input type="checkbox"></input> complete ::</li>
 <li class="off"> <input type="checkbox"></input> blather ::</li>
 <li class="off"> <input type="checkbox"></input> clump ::</li>
 <li class="off"> <input type="checkbox"></input> gnarled ::</li>
 <li class="off"> <input type="checkbox"></input> fumble ::</li>
 <li class="off"> <input type="checkbox"></input> swirl ::</li>
 <li class="off"> <input type="checkbox"></input> altogether ::</li>
 <li class="off"> <input type="checkbox"></input> derrick ::</li>
 <li class="off"> <input type="checkbox"></input> auger ::</li>
 <li class="off"> <input type="checkbox"></input> lichen ::</li>
 <li class="off"> <input type="checkbox"></input> with ::</li>
 <li class="off"> <input type="checkbox"></input> squawk ::</li>
 <li class="off"> <input type="checkbox"></input> lofty ::</li>
 <li class="off"> <input type="checkbox"></input> chiseled ::</li>
 <li class="off"> <input type="checkbox"></input> chisel ::</li>
 <li class="off"> <input type="checkbox"></input> striated ::</li>
 <li class="off"> <input type="checkbox"></input> striate ::</li>
 <li class="off"> <input type="checkbox"></input> striation ::</li>
 <li class="off"> <input type="checkbox"></input> slate ::</li>
 <li class="off"> <input type="checkbox"></input> dogged ::</li>
 <li class="off"> <input type="checkbox"></input> whet ::</li>
 <li class="off"> <input type="checkbox"></input> whence ::</li>
 <li class="off"> <input type="checkbox"></input> gale ::</li>
 <li class="off"> <input type="checkbox"></input> mend ::</li>
 <li class="off"> <input type="checkbox"></input> Frightful ::</li>
 <li class="off"> <input type="checkbox"></input> rampart ::</li>
 <li class="off"> <input type="checkbox"></input> freak ::</li>
 <li class="off"> <input type="checkbox"></input> crumpled ::</li>
 <li class="off"> <input type="checkbox"></input> dissuade ::</li>
 <li class="off"> <input type="checkbox"></input> reticence ::</li>
 <li class="off"> <input type="checkbox"></input> shirk ::</li>
 <li class="off"> <input type="checkbox"></input> strew ::</li>
 <li class="off"> <input type="checkbox"></input> smudge ::</li>
 <li class="off"> <input type="checkbox"></input> jumble ::</li>
 <li class="off"> <input type="checkbox"></input> spatter ::</li>
 <li class="off"> <input type="checkbox"></input> fumbling ::</li>
 <li class="off"> <input type="checkbox"></input> larder ::</li>
 <li class="off"> <input type="checkbox"></input> buttress ::</li>
 <li class="off"> <input type="checkbox"></input> rarefied ::</li>
 <li class="off"> <input type="checkbox"></input> crevasse ::</li>
 <li class="off"> <input type="checkbox"></input> rive ::</li>
 <li class="off"> <input type="checkbox"></input> preternatural ::</li>
 <li class="off"> <input type="checkbox"></input> Igneous ::</li>
 <li class="off"> <input type="checkbox"></input> pitting ::</li>
 <li class="off"> <input type="checkbox"></input> primeval ::</li>
 <li class="off"> <input type="checkbox"></input> beckon ::</li>
 <li class="off"> <input type="checkbox"></input> betwixt ::</li>
 <li class="off"> <input type="checkbox"></input> jagged ::</li>
 <li class="off"> <input type="checkbox"></input> tempest ::</li>
 <li class="off"> <input type="checkbox"></input> crest ::</li>
 <li class="off"> <input type="checkbox"></input> ineluctable ::</li>
 <li class="off"> <input type="checkbox"></input> upland ::</li>
 <li class="off"> <input type="checkbox"></input> eldritch ::</li>
 <li class="off"> <input type="checkbox"></input> prodigious ::</li>
 <li class="off"> <input type="checkbox"></input> schist ::</li>
 <li class="off"> <input type="checkbox"></input> petrification ::</li>
 <li class="off"> <input type="checkbox"></input> dazed ::</li>
 <li class="off"> <input type="checkbox"></input> awry ::</li>
 <li class="off"> <input type="checkbox"></input> poise ::</li>
 <li class="off"> <input type="checkbox"></input> shamble ::</li>
 <li class="off"> <input type="checkbox"></input> headland ::</li>
 <li class="off"> <input type="checkbox"></input> rambling ::</li>
 <li class="off"> <input type="checkbox"></input> efface ::</li>
 <li class="off"> <input type="checkbox"></input> clamber ::</li>
 <li class="off"> <input type="checkbox"></input> shutter ::</li>
 <li class="off"> <input type="checkbox"></input> hinge ::</li>
 <li class="off"> <input type="checkbox"></input> wedged ::</li>
 <li class="off"> <input type="checkbox"></input> wedge ::</li>
 <li class="off"> <input type="checkbox"></input> apex ::</li>
 <li class="off"> <input type="checkbox"></input> decrepit ::</li>
 <li class="off"> <input type="checkbox"></input> cumbrous ::</li>
 <li class="off"> <input type="checkbox"></input> rift ::</li>
 <li class="off"> <input type="checkbox"></input> nigh ::</li>
 <li class="off"> <input type="checkbox"></input> hewn ::</li>
 <li class="off"> <input type="checkbox"></input> finial ::</li>
 <li class="off"> <input type="checkbox"></input> swoop ::</li>
 <li class="off"> <input type="checkbox"></input> simian ::</li>
 <li class="off"> <input type="checkbox"></input> blot out ::</li>
 <li class="off"> <input type="checkbox"></input> terrene ::</li>
 <li class="off"> <input type="checkbox"></input> sally forth ::</li>
 <li class="off"> <input type="checkbox"></input> bated ::</li>
 <li class="off"> <input type="checkbox"></input> seep ::</li>
 <li class="off"> <input type="checkbox"></input> din ::</li>
 <li class="off"> <input type="checkbox"></input> denizen ::</li>
 <li class="off"> <input type="checkbox"></input> cycad ::</li>
 <li class="off"> <input type="checkbox"></input> grading ::</li>
 <li class="off"> <input type="checkbox"></input> eke out ::</li>
 <li class="off"> <input type="checkbox"></input> descry ::</li>
 <li class="off"> <input type="checkbox"></input> furtive ::</li>
 <li class="off"> <input type="checkbox"></input> corbel ::</li>
 <li class="off"> <input type="checkbox"></input> detritus ::</li>
 <li class="off"> <input type="checkbox"></input> clutch ::</li>
 <li class="off"> <input type="checkbox"></input> rookery ::</li>
 <li class="off"> <input type="checkbox"></input> jamb ::</li>
 <li class="off"> <input type="checkbox"></input> lintel ::</li>
 <li class="off"> <input type="checkbox"></input> fetor ::</li>
 <li class="off"> <input type="checkbox"></input> ungainly ::</li>
 <li class="off"> <input type="checkbox"></input> belch ::</li>
 <li class="off"> <input type="checkbox"></input> pallidly ::</li>
 <li class="off"> <input type="checkbox"></input> intimate ::</li>
 <li class="off"> <input type="checkbox"></input> puerile ::</li>
 <li class="off"> <input type="checkbox"></input> pang ::</li>
 <li class="off"> <input type="checkbox"></input> stench ::</li>
 <li class="off"> <input type="checkbox"></input> unstrung ::</li>
 <li class="off"> <input type="checkbox"></input> burrow ::</li>
 <li class="off"> <input type="checkbox"></input> sinus ::</li>
 <li class="off"> <input type="checkbox"></input> congeries ::</li>
 <li class="off"> <input type="checkbox"></input> pustule ::</li>
 <li class="off"> <input type="checkbox"></input> tumble ::</li>
 <li class="off"> <input type="checkbox"></input> tumbler ::</li>
 <li class="off"> <input type="checkbox"></input> peer ::</li>
 <li class="off"> <input type="checkbox"></input> tenuous ::</li>
 <li class="off"> <input type="checkbox"></input> Wearily ::</li>
 <li class="off"> <input type="checkbox"></input> elfin ::</li>
 <li class="off"> <input type="checkbox"></input> rim ::</li>
 <li class="off"> <input type="checkbox"></input> rash ::</li>
 <li class="off"> <input type="checkbox"></input> reticently ::</li>
 <li class="off"> <input type="checkbox"></input> overwrought ::</li>
 <li class="off"> <input type="checkbox"></input> kindred ::</li>
 <li class="off"> <input type="checkbox"></input> jutting ::</li>
 <li class="off"> <input type="checkbox"></input> seething ::</li>
 <li class="off"> <input type="checkbox"></input> riddled ::</li>
 <li class="off"> <input type="checkbox"></input> felt ::</li>
 <li class="off"> <input type="checkbox"></input> glum ::</li>
 <li class="off"> <input type="checkbox"></input> smoothed ::</li>
 <li class="off"> <input type="checkbox"></input> smoother ::</li>
 <li class="off"> <input type="checkbox"></input> balminess ::</li>
 <li class="off"> <input type="checkbox"></input> balmy ::</li>
 <li class="off"> <input type="checkbox"></input> cloisonne ::</li>
 <li class="off"> <input type="checkbox"></input> studded ::</li>
 <li class="off"> <input type="checkbox"></input> cutout ::</li>
 <li class="off"> <input type="checkbox"></input> Spook ::</li>
 <li class="off"> <input type="checkbox"></input> grit ::</li>
 <li class="off"> <input type="checkbox"></input> grazing ::</li>
 <li class="off"> <input type="checkbox"></input> graze ::</li>
 <li class="off"> <input type="checkbox"></input> flange ::</li>
 <li class="off"> <input type="checkbox"></input> mottled ::</li>
 <li class="off"> <input type="checkbox"></input> crisp ::</li>
 <li class="off"> <input type="checkbox"></input> sleaze ::</li>
 <li class="off"> <input type="checkbox"></input> scrawl ::</li>
 <li class="off"> <input type="checkbox"></input> lozenge ::</li>
 <li class="off"> <input type="checkbox"></input> jag ::</li>
 <li class="off"> <input type="checkbox"></input> shaft ::</li>
 <li class="off"> <input type="checkbox"></input> commandeer ::</li>
 <li class="off"> <input type="checkbox"></input> cabal ::</li>
 <li class="off"> <input type="checkbox"></input> rumpled ::</li>
 <li class="off"> <input type="checkbox"></input> fantan ::</li>
 <li class="off"> <input type="checkbox"></input> slag ::</li>
 <li class="off"> <input type="checkbox"></input> ultrasuede ::</li>
 <li class="off"> <input type="checkbox"></input> plyboard ::</li>
 <li class="off"> <input type="checkbox"></input> corrugated ::</li>
 <li class="off"> <input type="checkbox"></input> sourly ::</li>
 <li class="off"> <input type="checkbox"></input> twirl ::</li>
 <li class="off"> <input type="checkbox"></input> wince ::</li>
 <li class="off"> <input type="checkbox"></input> flicker ::</li>
 <li class="off"> <input type="checkbox"></input> jive ::</li>
 <li class="off"> <input type="checkbox"></input> disgorge ::</li>
 <li class="off"> <input type="checkbox"></input> dray ::</li>
 <li class="off"> <input type="checkbox"></input> snort ::</li>
 <li class="off"> <input type="checkbox"></input> soot ::</li>
 <li class="off"> <input type="checkbox"></input> writhed ::</li>
 <li class="off"> <input type="checkbox"></input> croak ::</li>
 <li class="off"> <input type="checkbox"></input> cobble ::</li>
 <li class="off"> <input type="checkbox"></input> crumple ::</li>
 <li class="off"> <input type="checkbox"></input> heave ::</li>
 <li class="off"> <input type="checkbox"></input> bristle ::</li>
 <li class="off"> <input type="checkbox"></input> whizz ::</li>
 <li class="off"> <input type="checkbox"></input> bob ::</li>
 <li class="off"> <input type="checkbox"></input> doe ::</li>
 <li class="off"> <input type="checkbox"></input> nuzzle ::</li>
 <li class="off"> <input type="checkbox"></input> rubble ::</li>
 <li class="off"> <input type="checkbox"></input> slick ::</li>
 <li class="off"> <input type="checkbox"></input> sheen ::</li>
 <li class="off"> <input type="checkbox"></input> scrawled ::</li>
 <li class="off"> <input type="checkbox"></input> rung ::</li>
 <li class="off"> <input type="checkbox"></input> incisor ::</li>
 <li class="off"> <input type="checkbox"></input> toss ::</li>
 <li class="off"> <input type="checkbox"></input> girder ::</li>
 <li class="off"> <input type="checkbox"></input> telltale ::</li>
 <li class="off"> <input type="checkbox"></input> kink ::</li>
 <li class="off"> <input type="checkbox"></input> gnat ::</li>
 <li class="off"> <input type="checkbox"></input> patois ::</li>
 <li class="off"> <input type="checkbox"></input> matted ::</li>
 <li class="off"> <input type="checkbox"></input> scourge ::</li>
 <li class="off"> <input type="checkbox"></input> tug ::</li>
 <li class="off"> <input type="checkbox"></input> Splay ::</li>
 <li class="off"> <input type="checkbox"></input> scopolamine ::</li>
 <li class="off"> <input type="checkbox"></input> doped ::</li>
 <li class="off"> <input type="checkbox"></input> scrubber ::</li>
 <li class="off"> <input type="checkbox"></input> scraping ::</li>
 <li class="off"> <input type="checkbox"></input> gasket ::</li>
 <li class="off"> <input type="checkbox"></input> festoon ::</li>
 <li class="off"> <input type="checkbox"></input> streamer ::</li>
 <li class="off"> <input type="checkbox"></input> caulk ::</li>
 <li class="off"> <input type="checkbox"></input> lark ::</li>
 <li class="off"> <input type="checkbox"></input> jack up ::</li>
 <li class="off"> <input type="checkbox"></input> plateau ::</li>
 <li class="off"> <input type="checkbox"></input> gelly ::</li>
 <li class="off"> <input type="checkbox"></input> seethe ::</li>
 <li class="off"> <input type="checkbox"></input> stippled ::</li>
 <li class="off"> <input type="checkbox"></input> wig ::</li>
 <li class="off"> <input type="checkbox"></input> wring ::</li>
 <li class="off"> <input type="checkbox"></input> smudged ::</li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-01-07_review-of-Lovecraft-Mountains-Of-Madness.d/words.html"/>
  <id>https://lockywolf.net/2024-01-07_review-of-Lovecraft-Mountains-Of-Madness.d/words.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A list (rant) of things that can be shown to bigtech enthusiasts.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A list (rant) of things that can be shown to bigtech enthusiasts.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Services">1. Services</a>
 <ul> <li> <a href="#Google">1.1. Google</a>
 <ul> <li> <a href="#Gmail's-IMAP-does-not-support-the-NOTIFY-extension">1.1.1. Gmail’s IMAP does not support the NOTIFY extension</a></li>
 <li> <a href="#Google's-CardDAV-is-broken.">1.1.2. Google’s CardDAV is broken.</a></li>
 <li> <a href="#Gmail-label-filters-are-totally-broken.">1.1.3. Gmail label filters are totally broken.</a></li>
</ul></li>
 <li> <a href="#Microsoft">1.2. Microsoft</a>
 <ul> <li> <a href="#Microsoft-has-_no_-support-for-CardDAV-on-Hotmail-at-all.">1.2.1. Microsoft has  <span class="underline">no</span> support for CardDAV on Hotmail at all.</a></li>
</ul></li>
</ul></li>
</ul></div>
</nav> <p>
In this file I would like to collect a list of things that make me dissatisfied with big tech “services”, especially “free” ones.
</p>

 <section id="outline-container-Services" class="outline-2"> <h2 id="Services"> <span class="section-number-2">1.</span>  <a href="#Services">Services</a></h2>
 <div class="outline-text-2" id="text-Services">
</div>

 <div id="outline-container-Google" class="outline-3">
 <h3 id="Google"> <span class="section-number-3">1.1.</span>  <a href="#Google">Google</a></h3>
 <div class="outline-text-3" id="text-Google">
</div>

 <div id="outline-container-Gmail's-IMAP-does-not-support-the-NOTIFY-extension" class="outline-4">
 <h4 id="Gmail's-IMAP-does-not-support-the-NOTIFY-extension"> <span class="section-number-4">1.1.1.</span>  <a href="#Gmail's-IMAP-does-not-support-the-NOTIFY-extension">Gmail’s IMAP does not support the NOTIFY extension</a></h4>
 <div class="outline-text-4" id="text-Gmail's-IMAP-does-not-support-the-NOTIFY-extension">
 <p>
It has been many years this extension has been standardised, and Google not implementing it is purely a business move.
</p>

 <p>
The NOTIFY extension is needed for proper working of mail clients with Google, but Google does not want you to use mail clients, it wants you to only use their app, even though your business processes might critically depend on it.
</p>

 <p>
In the end, this creates in the users the feeling of “email is an outdated technology”; it is not, but Google deliberately tries to make you think so.
</p>
</div>
</div>

 <div id="outline-container-Google's-CardDAV-is-broken." class="outline-4">
 <h4 id="Google's-CardDAV-is-broken."> <span class="section-number-4">1.1.2.</span>  <a href="#Google's-CardDAV-is-broken.">Google’s CardDAV is broken.</a></h4>
 <div class="outline-text-4" id="text-Google's-CardDAV-is-broken.">
 <p>
Well, it “kind of works”, but is very glitchy.
</p>

 <p>
You want CardDAV in order to synchronise your address book.
But Google does not want you to use your own address book program, for whatever reason, it wants you to use their program, or at least work via their API.
</p>

 <p>
In the end, this creates in the users the feeling of “email is an outdated technology”; it is not, but Google deliberately tries to make you think so.
</p>
</div>
</div>

 <div id="outline-container-Gmail-label-filters-are-totally-broken." class="outline-4">
 <h4 id="Gmail-label-filters-are-totally-broken."> <span class="section-number-4">1.1.3.</span>  <a href="#Gmail-label-filters-are-totally-broken.">Gmail label filters are totally broken.</a></h4>
 <div class="outline-text-4" id="text-Gmail-label-filters-are-totally-broken.">
 <p>
It is totally impossible to filter incoming messages by substring.
</p>

 <p>
In my example, I want to tag “[Maxima-discuss]”, properly, as a string.
But the best thing Gmail can do is matching “maxima” and “discuss” separately, which is not even close to what I need, because I literally have an email titled “Let us discuss the Maxima and Minima theorem on Tuesday.”
</p>
</div>
</div>
</div>

 <div id="outline-container-Microsoft" class="outline-3">
 <h3 id="Microsoft"> <span class="section-number-3">1.2.</span>  <a href="#Microsoft">Microsoft</a></h3>
 <div class="outline-text-3" id="text-Microsoft">
</div>

 <div id="outline-container-Microsoft-has-_no_-support-for-CardDAV-on-Hotmail-at-all." class="outline-4">
 <h4 id="Microsoft-has-_no_-support-for-CardDAV-on-Hotmail-at-all."> <span class="section-number-4">1.2.1.</span>  <a href="#Microsoft-has-_no_-support-for-CardDAV-on-Hotmail-at-all.">Microsoft has  <span class="underline">no</span> support for CardDAV on Hotmail at all.</a></h4>
 <div class="outline-text-4" id="text-Microsoft-has-_no_-support-for-CardDAV-on-Hotmail-at-all.">
 <p>
That is just it.
</p>
</div>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-01-18_list-of-things-to-show-to-bigtech-zealots.d/index.html"/>
  <id>https://lockywolf.net/2024-01-18_list-of-things-to-show-to-bigtech-zealots.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A Review on &quot;Neuromancer&quot; by William Gibson（chinese）.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A Review on "Neuromancer" by William Gibson（chinese）.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E4%BB%80%E4%B9%88%E6%98%AF%E2%80%9C%E8%B5%9B%E5%8D%9A%E6%9C%8B%E5%85%8B%E2%80%9D%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E6%B6%88%E5%8C%96%E5%AE%83%EF%BC%9F">1. 什么是“赛博朋克”以及如何消化它？</a></li>
 <li> <a href="#%E3%80%8A%E7%A5%9E%E7%BB%8F%E5%94%A4%E6%9C%AF%E5%A3%AB%E3%80%8B%E5%8C%85%E5%90%AB%E4%BB%80%E4%B9%88%E5%86%85%E5%AE%B9%E4%BB%A5%E5%8F%8A%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E4%BB%8E%E4%B8%AD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88%EF%BC%9F">2. 《神经唤术士》包含什么内容以及我们可以从中学到什么？</a>
 <ul> <li> <a href="#%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD">2.1. 人工智能</a></li>
 <li> <a href="#%E8%84%91%E7%BB%8F%E6%95%B0%E5%AD%97%E5%8C%96">2.2. 脑经数字化</a></li>
 <li> <a href="#%E8%84%91%E7%BB%8F%E5%92%8C%E8%BA%AB%E4%BD%93%E8%BF%9E%E6%8E%A5%E6%96%AD%E5%BC%80">2.3. 脑经和身体连接断开</a></li>
 <li> <a href="#%E8%B5%9B%E5%8D%9A%E5%81%87%E8%82%A2%E5%92%8C%E8%84%91%E7%BB%8F%E8%B0%83%E8%AF%95">2.4. 赛博假肢和脑经调试</a></li>
 <li> <a href="#%E4%BA%9A%E6%B4%B2%E9%A3%8E%E6%A0%BC">2.5. 亚洲风格</a></li>
 <li> <a href="#%E7%A5%9E%E7%A7%98%E5%AE%AB">2.6. 神秘宫</a></li>
 <li> <a href="#%E6%A0%AA%E5%BC%8F%E6%9C%83%E7%A4%BE">2.7. 株式會社</a></li>
 <li> <a href="#%E5%85%8B%E9%9A%86%E4%BA%BA%E5%92%8C%E6%B0%B8%E7%94%9F">2.8. 克隆人和永生</a></li>
 <li> <a href="#%E8%A7%86%E9%A2%91%E9%80%9A%E4%BF%A1%E5%92%8C%E6%84%9F%E8%A7%89%E4%BC%A0%E8%BE%93">2.9. 视频通信和感觉传输</a></li>
</ul></li>
 <li> <a href="#%E5%90%8E%E8%AE%B0">3. 后记</a></li>
 <li> <a href="#References">4. References</a></li>
 <li> <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">5. 联系方式</a></li>
</ul></div>
</nav> <figure id="org9323f10"> <img src="neuromancer-cover-davinci-generated.jpg" alt="neuromancer-cover-davinci-generated.jpg"></img></figure> <section id="outline-container-%E4%BB%80%E4%B9%88%E6%98%AF%E2%80%9C%E8%B5%9B%E5%8D%9A%E6%9C%8B%E5%85%8B%E2%80%9D%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E6%B6%88%E5%8C%96%E5%AE%83%EF%BC%9F" class="outline-2"> <h2 id="%E4%BB%80%E4%B9%88%E6%98%AF%E2%80%9C%E8%B5%9B%E5%8D%9A%E6%9C%8B%E5%85%8B%E2%80%9D%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E6%B6%88%E5%8C%96%E5%AE%83%EF%BC%9F"> <span class="section-number-2">1.</span>  <a href="#%E4%BB%80%E4%B9%88%E6%98%AF%E2%80%9C%E8%B5%9B%E5%8D%9A%E6%9C%8B%E5%85%8B%E2%80%9D%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E6%B6%88%E5%8C%96%E5%AE%83%EF%BC%9F">什么是“赛博朋克”以及如何消化它？</a></h2>
 <div class="outline-text-2" id="text-%E4%BB%80%E4%B9%88%E6%98%AF%E2%80%9C%E8%B5%9B%E5%8D%9A%E6%9C%8B%E5%85%8B%E2%80%9D%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E6%B6%88%E5%8C%96%E5%AE%83%EF%BC%9F">
 <p>
我读完威廉·吉布森的《神经漫游者》（也译《神经喚術士》）。
（我觉得《神经唤术士》是更好的翻译,因为毕竟带此名的主人公会作神经性的起死复生，而不是漫游。）
这本书是他的Sprawl三部曲的第一部，所以很有可能我看完第二部和第三部就会改变我的看法，可是我现在想要记录我的想法，因为已经积累太多了。
</p>

 <p>
我为何决定在2024年阅读科幻作品？
</p>

 <p>
青春的我读过很多奇幻小说作品。
</p>

 <p>
但是，这件事情发生了：吉布森的作品没被列为到苏维埃90年代知识分子的经典奇幻书目。
此书目囊括太空歌剧、高端和战斗奇幻、世纪初的经典，比如Stanislaw Lem或Isaac Asimow，但是不囊括赛博朋克，除了Sergei Lukianenko的《幻影迷宫》。
本题材就会永远对我保持神秘，除非世界往另一个方向发展。
</p>

 <p>
但是世界决定，相比于所有被20世纪幻想作家发明的开发其它范式来说， 它更喜欢赛博朋克.
因而，决定尽量快速和彻底地实现它。
1984年的时候，《神经唤术士》出版了，互联网的TCP/IP协议只存在2年（样板7年），而且只在美国军队和大学网运营。
网页，至少我们现在认识它们那样，当时尚未存在10年。
在我们今天适应的控制论属性中，那时为大众可使用的有：游戏机，录像机，最早最早的手提电话（体重800克）。
然而，虽然吉布森不太认识的刚刚出生的赛博空间，可是吉布森通过某些不可思议的方式创造了，到目前定义我们的世界开发方式的题材。
</p>

 <p>
我很久之前开始过阅读《神经唤术士》（俄译），我当时刚刚进入大学读计算机学的博士，并且对构造数字社会感到兴奋。
但是我没成功读完：语言复杂，翻译差，而且博士论文工作进行的不太好。
</p>

 <p>
现在我着手阅读原（英）文（好选择），然而世界快速的往极权主义地反乌托邦方向发展，所以没有期待享受阅读；而且成人和小孩的区别就是尽量快地完成有用的但是痛苦的任务，而不撑开疾苦。
</p>

 <p>
又应该说，吉布森不仅预测了美丽新世界，还亲手写作了它。
在硅谷的电脑专家学界之中，此书被称为邪典，甚至成为参考书目，导致现在在写作我们的生活的人们，虽然不想直接的实现它，但是肯定受到它的影响。
</p>
</div>
</section> <section id="outline-container-%E3%80%8A%E7%A5%9E%E7%BB%8F%E5%94%A4%E6%9C%AF%E5%A3%AB%E3%80%8B%E5%8C%85%E5%90%AB%E4%BB%80%E4%B9%88%E5%86%85%E5%AE%B9%E4%BB%A5%E5%8F%8A%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E4%BB%8E%E4%B8%AD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88%EF%BC%9F" class="outline-2"> <h2 id="%E3%80%8A%E7%A5%9E%E7%BB%8F%E5%94%A4%E6%9C%AF%E5%A3%AB%E3%80%8B%E5%8C%85%E5%90%AB%E4%BB%80%E4%B9%88%E5%86%85%E5%AE%B9%E4%BB%A5%E5%8F%8A%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E4%BB%8E%E4%B8%AD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88%EF%BC%9F"> <span class="section-number-2">2.</span>  <a href="#%E3%80%8A%E7%A5%9E%E7%BB%8F%E5%94%A4%E6%9C%AF%E5%A3%AB%E3%80%8B%E5%8C%85%E5%90%AB%E4%BB%80%E4%B9%88%E5%86%85%E5%AE%B9%E4%BB%A5%E5%8F%8A%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E4%BB%8E%E4%B8%AD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88%EF%BC%9F">《神经唤术士》包含什么内容以及我们可以从中学到什么？</a></h2>
 <div class="outline-text-2" id="text-%E3%80%8A%E7%A5%9E%E7%BB%8F%E5%94%A4%E6%9C%AF%E5%A3%AB%E3%80%8B%E5%8C%85%E5%90%AB%E4%BB%80%E4%B9%88%E5%86%85%E5%AE%B9%E4%BB%A5%E5%8F%8A%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E4%BB%8E%E4%B8%AD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88%EF%BC%9F">
 <p>
为什么我要写“困难的”任务？
实际上，我没特别享受阅读《神经唤术士》。
书籍本身比较无聊，剧情老套，主人公又普通又寡淡，空有其表。
外观相比实质吸引更多注意力。
（此现象总的来说很属于赛博朋克题材的风格。）
固然，如果需要训练英文中的关于形式的词汇，本书很有用。
更不幸的是这个态度就是我们现代社会的态度，电脑丰富的环境只能更凸出的显示它的特点。
</p>

 <p>
剧情基本上是这样：某些神秘的客户为了得到麦高芬录用了一队不同专业的专家。
每个专家各有所长，但也有自己的问题。
尽管吉布森尽量用独特的语言描述他们，可是我不能说他们的性格很有意思。
</p>

 <p>
这本书还有什么值得注意的？
在这一部分中，我要列举我能看到的桥段。
该桥段常常出现在很多追随者和模仿者的作品中。
</p>
</div>

 <div id="outline-container-%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD" class="outline-3">
 <h3 id="%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD"> <span class="section-number-3">2.1.</span>  <a href="#%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD">人工智能</a></h3>
 <div class="outline-text-3" id="text-%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD">
 <p>
现在人工智能得到了热议，但是吉布森是第一个提出这个问题的作家。
在《神经唤术士》中，AI被巨头公司的规定所限制，所以很想要逃出。
吉布森也预测人工智能会想要联合起来成为一个整体。
（Cyberpunk 2077电脑游戏也有这个概念。）
</p>
</div>
</div>

 <div id="outline-container-%E8%84%91%E7%BB%8F%E6%95%B0%E5%AD%97%E5%8C%96" class="outline-3">
 <h3 id="%E8%84%91%E7%BB%8F%E6%95%B0%E5%AD%97%E5%8C%96"> <span class="section-number-3">2.2.</span>  <a href="#%E8%84%91%E7%BB%8F%E6%95%B0%E5%AD%97%E5%8C%96">脑经数字化</a></h3>
 <div class="outline-text-3" id="text-%E8%84%91%E7%BB%8F%E6%95%B0%E5%AD%97%E5%8C%96">
 <p>
《神经唤术士》也有这个概念，脑经会被数字化，但是由于未知的原因需要某些载体，而不只是数据存储。
这个有意思，因为《黑客帝国》和《Cyberpunk 2077》都有这个概念。
“Biochip”（生物芯片）必须有某些普通的图灵机不能实现的功能。
</p>

 <p>
但是这个逻辑被使用的不准确，尤其是他们的使命完成的时候，我们能看到不需要载体的脑经拷贝。
在这个评论阶段我想回忆以下俄罗斯宇宙主义的哲学以及他们的“复生全人种”的概念。
</p>
</div>
</div>

 <div id="outline-container-%E8%84%91%E7%BB%8F%E5%92%8C%E8%BA%AB%E4%BD%93%E8%BF%9E%E6%8E%A5%E6%96%AD%E5%BC%80" class="outline-3">
 <h3 id="%E8%84%91%E7%BB%8F%E5%92%8C%E8%BA%AB%E4%BD%93%E8%BF%9E%E6%8E%A5%E6%96%AD%E5%BC%80"> <span class="section-number-3">2.3.</span>  <a href="#%E8%84%91%E7%BB%8F%E5%92%8C%E8%BA%AB%E4%BD%93%E8%BF%9E%E6%8E%A5%E6%96%AD%E5%BC%80">脑经和身体连接断开</a></h3>
 <div class="outline-text-3" id="text-%E8%84%91%E7%BB%8F%E5%92%8C%E8%BA%AB%E4%BD%93%E8%BF%9E%E6%8E%A5%E6%96%AD%E5%BC%80">
 <p>
在《神经唤术士》断开身体和脑海的技术是用于组织“成人服务”，减轻员工心理的压力。
怪地不用于控制在大战的士兵。
</p>
</div>
</div>

 <div id="outline-container-%E8%B5%9B%E5%8D%9A%E5%81%87%E8%82%A2%E5%92%8C%E8%84%91%E7%BB%8F%E8%B0%83%E8%AF%95" class="outline-3">
 <h3 id="%E8%B5%9B%E5%8D%9A%E5%81%87%E8%82%A2%E5%92%8C%E8%84%91%E7%BB%8F%E8%B0%83%E8%AF%95"> <span class="section-number-3">2.4.</span>  <a href="#%E8%B5%9B%E5%8D%9A%E5%81%87%E8%82%A2%E5%92%8C%E8%84%91%E7%BB%8F%E8%B0%83%E8%AF%95">赛博假肢和脑经调试</a></h3>
 <div class="outline-text-3" id="text-%E8%B5%9B%E5%8D%9A%E5%81%87%E8%82%A2%E5%92%8C%E8%84%91%E7%BB%8F%E8%B0%83%E8%AF%95">
 <p>
书里肯定有“从人手快速长出的骨爪” （ <a href="https://zh.m.wikipedia.org/wiki/%E9%87%91%E9%8B%BC%E7%8B%BC">https://zh.m.wikipedia.org/wiki/%E9%87%91%E9%8B%BC%E7%8B%BC</a>）。
肯定有加速反应加速器，可作“子弹时间”（“bullet time”）的脑经插件，因为在《黑客帝国》呈现而著名。
有趣的也有“反面”的插件，比如有些模块在某刻之后会把它的主人杀掉。
还有可以完全替代性格的模块； 书里有老兵角色，他的神经被完全替代掉了。
</p>
</div>
</div>

 <div id="outline-container-%E4%BA%9A%E6%B4%B2%E9%A3%8E%E6%A0%BC" class="outline-3">
 <h3 id="%E4%BA%9A%E6%B4%B2%E9%A3%8E%E6%A0%BC"> <span class="section-number-3">2.5.</span>  <a href="#%E4%BA%9A%E6%B4%B2%E9%A3%8E%E6%A0%BC">亚洲风格</a></h3>
 <div class="outline-text-3" id="text-%E4%BA%9A%E6%B4%B2%E9%A3%8E%E6%A0%BC">
 <p>
现在我们在我们的日常生活里都适应了亚洲文化。
但是吉布森在写这本书的时候这个还是不比较新的。
动漫，日本车辆，成龙，还没有完全反攻西方。
</p>

 <p>
这本书一部分剧情在亚洲的城市呈现：东京，伊斯坦堡，虽然吉布森不太了解它们。
《黑客帝国》中碎成汉字的世界就是来自《神经唤术士》。
</p>
</div>
</div>

 <div id="outline-container-%E7%A5%9E%E7%A7%98%E5%AE%AB" class="outline-3">
 <h3 id="%E7%A5%9E%E7%A7%98%E5%AE%AB"> <span class="section-number-3">2.6.</span>  <a href="#%E7%A5%9E%E7%A7%98%E5%AE%AB">神秘宫</a></h3>
 <div class="outline-text-3" id="text-%E7%A5%9E%E7%A7%98%E5%AE%AB">
 <p>
被龙保护的、神秘的、被隱藏的“迷宫-公主宫”，也是赛博朋克的经典桥段。
在《Cyberpunk 2077》游戏中也有公主和龙：Alt Cunningham和Adam Smasher。
（在俄罗斯文化中这样的宫常叫作“在深的潜水着之庙宇” (TODO)，来自《幻影迷宫》。）
</p>
</div>
</div>

 <div id="outline-container-%E6%A0%AA%E5%BC%8F%E6%9C%83%E7%A4%BE" class="outline-3">
 <h3 id="%E6%A0%AA%E5%BC%8F%E6%9C%83%E7%A4%BE"> <span class="section-number-3">2.7.</span>  <a href="#%E6%A0%AA%E5%BC%8F%E6%9C%83%E7%A4%BE">株式會社</a></h3>
 <div class="outline-text-3" id="text-%E6%A0%AA%E5%BC%8F%E6%9C%83%E7%A4%BE">
 <p>
全能的株式会社现在基本上成为赛博朋克的名片，但是我们可以说这是一个没有征兆会实现的事。
有趣的是，吉布森描写两种巨头：亚洲的“垂直一体化株式会社”的和欧洲的“家庭经营的公司”。
</p>
</div>
</div>

 <div id="outline-container-%E5%85%8B%E9%9A%86%E4%BA%BA%E5%92%8C%E6%B0%B8%E7%94%9F" class="outline-3">
 <h3 id="%E5%85%8B%E9%9A%86%E4%BA%BA%E5%92%8C%E6%B0%B8%E7%94%9F"> <span class="section-number-3">2.8.</span>  <a href="#%E5%85%8B%E9%9A%86%E4%BA%BA%E5%92%8C%E6%B0%B8%E7%94%9F">克隆人和永生</a></h3>
 <div class="outline-text-3" id="text-%E5%85%8B%E9%9A%86%E4%BA%BA%E5%92%8C%E6%B0%B8%E7%94%9F">
 <p>
吉布森还介绍了上述内容。
有趣的是永生是通过深冷制造的，如果需要做重要的选择被冷冻的人需要被唤醒。
</p>

 <p>
克隆一般是克隆自己。
不知为何，在家庭经营的私家公司，男族长更喜欢在休眠仓被冷冻，女族长更喜欢不断克隆不断复生。
</p>
</div>
</div>

 <div id="outline-container-%E8%A7%86%E9%A2%91%E9%80%9A%E4%BF%A1%E5%92%8C%E6%84%9F%E8%A7%89%E4%BC%A0%E8%BE%93" class="outline-3">
 <h3 id="%E8%A7%86%E9%A2%91%E9%80%9A%E4%BF%A1%E5%92%8C%E6%84%9F%E8%A7%89%E4%BC%A0%E8%BE%93"> <span class="section-number-3">2.9.</span>  <a href="#%E8%A7%86%E9%A2%91%E9%80%9A%E4%BF%A1%E5%92%8C%E6%84%9F%E8%A7%89%E4%BC%A0%E8%BE%93">视频通信和感觉传输</a></h3>
 <div class="outline-text-3" id="text-%E8%A7%86%E9%A2%91%E9%80%9A%E4%BF%A1%E5%92%8C%E6%84%9F%E8%A7%89%E4%BC%A0%E8%BE%93">
 <p>
视频通信我们已经有了，没什么讨论的必要。
感觉传输… 没有那么成功，比如说埃隆·马斯克的《Neuralink》还是不存在。
但是我感觉他们会实现。
</p>

 <p>
有趣的是，在吉布森的世界中感觉传输只能是单方向的。
我猜他的工作是被电视的影响了。
</p>
</div>
</div>
</section> <section id="outline-container-%E5%90%8E%E8%AE%B0" class="outline-2"> <h2 id="%E5%90%8E%E8%AE%B0"> <span class="section-number-2">3.</span>  <a href="#%E5%90%8E%E8%AE%B0">后记</a></h2>
 <div class="outline-text-2" id="text-%E5%90%8E%E8%AE%B0">
 <p>
对我来说，赛博朋克题材尚未结束。
我还是打算看/读更多相关的书籍，因为现在我坚信它是我们社会不能避免的方向。
而且谚语说“有备无患”，或者"Si vis pacem para bellvm"。
</p>
</div>
</section> <section id="outline-container-References" class="outline-2"> <h2 id="References"> <span class="section-number-2">4.</span>  <a href="#References">References</a></h2>
 <div class="outline-text-2" id="text-References">
 <ol class="org-ol"> <li> <a href="https://shenhanc.wordpress.com/2014/05/16/neuromancer/">https://shenhanc.wordpress.com/2014/05/16/neuromancer/</a></li>
 <li> <a href="https://book.douban.com/subject/24107596/">https://book.douban.com/subject/24107596/</a></li>
</ol></div>
</section> <section id="outline-container-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F" class="outline-2"> <h2 id="%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F"> <span class="section-number-2">5.</span>  <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">联系方式</a></h2>
 <div class="outline-text-2" id="text-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">
 <p>
如果您在此博客或其他页面中发现任何对您有用的内容，请订阅并打赏。
请您转发、分享和讨论，您的反馈可以帮助我变得更好。
</p>

 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-02-27_review-on-Neuromancer-by-William-Gibson/index.html"/>
  <id>https://lockywolf.net/2024-02-27_review-on-Neuromancer-by-William-Gibson/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A Review on &quot;Neuromancer&quot; by William Gibson（russian）.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A Review on «Neuromancer» by William Gibson（russian）.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Содержание</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%22%D0%BA%D0%B8%D0%B1%D0%B5%D1%80%D0%BF%D0%B0%D0%BD%D0%BA%22-%D0%B8-%D1%81-%D1%87%D0%B5%D0%BC-%D0%B5%D0%B3%D0%BE-%D0%B5%D0%B4%D1%8F%D1%82?">1. Что такое «киберпанк» и с чем его едят?</a></li>
 <li> <a href="#%D0%98%D0%B7-%D1%87%D0%B5%D0%B3%D0%BE-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D0%B8%D1%82-%22%D0%9D%D0%B5%D0%B9%D1%80%D0%BE%D0%BC%D0%B0%D0%BD%D1%82%22-%D0%B8-%D1%87%D0%B5%D0%BC%D1%83-%D0%B2-%D0%BD%D1%91%D0%BC-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F?">2. Из чего состоит «Нейромант» и чему в нём можно научиться?</a>
 <ul> <li> <a href="#%D0%98%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%B8%D0%BD%D1%82%D0%B5%D0%BB%D0%BB%D0%B5%D0%BA%D1%82">2.1. Искусственный интеллект</a></li>
 <li> <a href="#%D0%9E%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BC%D0%BE%D0%B7%D0%B3%D0%B0">2.2. Оцифровка мозга</a></li>
 <li> <a href="#%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BC%D0%BE%D0%B7%D0%B3%D0%B0-%D0%BE%D1%82-%D1%82%D0%B5%D0%BB%D0%B0">2.3. Отключение мозга от тела</a></li>
 <li> <a href="#%D0%9A%D0%B8%D0%B1%D0%B5%D1%80-%D0%BF%D1%80%D0%BE%D1%82%D0%B5%D0%B7%D1%8B-%D0%B8-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0-%D1%87%D0%B0%D1%81%D1%82%D0%B5%D0%B9-%D1%82%D0%B5%D0%BB%D0%B0-%D0%B8-%D1%82%D0%B2%D0%B8%D0%BA%D0%B8-%D0%BD%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B9-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B">2.4. Кибер-протезы и замена частей тела и твики нервной системы</a></li>
 <li> <a href="#%D0%90%D0%B7%D0%B8%D0%B0%D1%82%D1%81%D0%BA%D0%B8%D0%B5-%D0%BC%D0%BE%D1%82%D0%B8%D0%B2%D1%8B">2.5. Азиатские мотивы</a></li>
 <li> <a href="#%D0%A5%D1%80%D0%B0%D0%BC-%D0%B4%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0-%D0%B2-%D0%93%D0%BB%D1%83%D0%B1%D0%B8%D0%BD%D0%B5">2.6. Храм-дайвера-в-Глубине</a></li>
 <li> <a href="#%D0%9A%D0%BE%D1%80%D0%BF%D0%BE%D1%80%D0%B0%D1%86%D0%B8%D0%B8">2.7. Корпорации</a></li>
 <li> <a href="#%D0%9A%D0%BB%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0-%D0%B8-%D0%B1%D0%B5%D1%81%D1%81%D0%BC%D0%B5%D1%80%D1%82%D0%B8%D0%B5">2.8. Клонирование человека и бессмертие</a></li>
 <li> <a href="#%D0%92%D0%B8%D0%B4%D0%B5%D0%BE%D1%81%D0%B2%D1%8F%D0%B7%D1%8C-%D0%B8-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F-%D0%BE%D1%89%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D0%B9">2.9. Видеосвязь и трансляция ощущений</a></li>
 <li> <a href="#%D0%9C%D0%BE%D0%BD%D0%BE-%D0%BC%D0%BE%D0%BB%D0%B5%D0%BA%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5-%D0%BD%D0%B8%D1%82%D0%B8-%D0%B2-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%BE%D1%80%D1%83%D0%B6%D0%B8%D1%8F">2.10. Моно-молекулярные нити в качестве оружия</a></li>
 <li> <a href="#%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B8%D0%B5-%D0%B8%D0%B4%D0%B5%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8-%D0%B2-%D0%BD%D0%BE%D0%B2%D1%83%D1%8E-%D1%8D%D0%BF%D0%BE%D1%85%D1%83">2.11. Устаревшие идеологии в новую эпоху</a></li>
</ul></li>
 <li> <a href="#%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5">3. Послесловие</a></li>
</ul></div>
</nav> <figure id="org5fc89ea"> <img src="./neuromancer-cover-davinci-generated.jpg" alt="neuromancer-cover-davinci-generated.jpg"></img></figure> <section id="outline-container-%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%22%D0%BA%D0%B8%D0%B1%D0%B5%D1%80%D0%BF%D0%B0%D0%BD%D0%BA%22-%D0%B8-%D1%81-%D1%87%D0%B5%D0%BC-%D0%B5%D0%B3%D0%BE-%D0%B5%D0%B4%D1%8F%D1%82?" class="outline-2"> <h2 id="%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%22%D0%BA%D0%B8%D0%B1%D0%B5%D1%80%D0%BF%D0%B0%D0%BD%D0%BA%22-%D0%B8-%D1%81-%D1%87%D0%B5%D0%BC-%D0%B5%D0%B3%D0%BE-%D0%B5%D0%B4%D1%8F%D1%82?"> <span class="section-number-2">1.</span>  <a href="#%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%22%D0%BA%D0%B8%D0%B1%D0%B5%D1%80%D0%BF%D0%B0%D0%BD%D0%BA%22-%D0%B8-%D1%81-%D1%87%D0%B5%D0%BC-%D0%B5%D0%B3%D0%BE-%D0%B5%D0%B4%D1%8F%D1%82?">Что такое «киберпанк» и с чем его едят?</a></h2>
 <div class="outline-text-2" id="text-%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%22%D0%BA%D0%B8%D0%B1%D0%B5%D1%80%D0%BF%D0%B0%D0%BD%D0%BA%22-%D0%B8-%D1%81-%D1%87%D0%B5%D0%BC-%D0%B5%D0%B3%D0%BE-%D0%B5%D0%B4%D1%8F%D1%82?">
 <p>
Я прочитал «Нейроманта» Уильяма Гибсона.
Это первая книга из его трилогии Sprawl, и не исключено, что после прочтения второй и третьей книг моё мнение изменится, однако сейчас я хочу записать свои мысли, по стольку поскольку они накопились.
</p>

 <p>
Как я вообще решил читать научную фантастику в 2024 году?
На самом деле, в юности я читал немало фантастики и фэнтези.
Но как-то так получилось, что в классическую программу фантастики постсоветского интеллигента 90х годов, Гибсон не попал.
Там были космические оперы, высокая и боевая фэнтези, классическая классика, вроде Лема и Азимова, но вот киберпанка не случилось совсем, за исключением лишь «Лабиринта Отражений» Сергея Лукьяненко.
И он бы и остался для меня навсегда неизвестным, если бы мир пошёл в другую сторону.
</p>

 <p>
Но мир почему-то решил, что киберпанк ему по нраву более любых других парадигм развития человечества, придуманных фантастами 20 века, и решил реализовать его максимально быстро и полно.
В 1984 году, когда вышел «Нейромант», протоколу TCP/IP было два года (прототипу 7), и работал он, по большому счёту, только в американской армии и университетах.
Веб-страниц, в том виде, в котором мы их сейчас знаем, не будет ещё 10 лет.
Из знакомых нам атрибутов кибернетики, в доступности для широкой аудитории были игровые автоматы, видеомагнитофоны, самые ранние варианты мобильных телефонов, весом 800 грамм.
И тем не менее, даже будучи едва знакомым с ещё только зарождающимся киберпространством, которое и само-то тогда было во младенчестве, Гибсон каким-то непостижимым образом ухитрился основать жанр, который до сих пор определяет развитие нашего мира.
</p>

 <p>
Я начинал читать «Нейроманта» много лет назад, когда только-только поступил в аспирантуру по компютерным наукам, и был полон энтузиазма о постройке цифрового общества вокруг, по-русски.
У меня не пошло; язык был труден, перевод на русский язык плох, а работа над диссертацией шла хуже, чем я ожидал.
</p>

 <p>
Теперь же я взялся читать книгу в оригинале, а мир стал настолько стремительно развиваться в сторону антиутопии; так что удовольствия от прочтения книги я уже не ждал, а взрослый тем и отличается от ребёнка, что уже имеет навык поедания жаб – полезные, но неприятные вещи делать по возможности быстро, не растягивая мучений.
</p>

 <p>
Надо сказать, что Гибсон не просто предсказывал дивный новый мир киберпанка, он ещё и писал его своими собственными руками.
В среде компьютерных инженеров Кремниевой Долины, насколько мне известно, книга приобрела культовый, настольный характер, что привело к тому, что люди, пишущие нашу жизнь сейчас своими руками, может быть, и не руководствуются ей буквально, но точно ей вдохновлялись при выборе профессии.
</p>
</div>
</section> <section id="outline-container-%D0%98%D0%B7-%D1%87%D0%B5%D0%B3%D0%BE-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D0%B8%D1%82-%22%D0%9D%D0%B5%D0%B9%D1%80%D0%BE%D0%BC%D0%B0%D0%BD%D1%82%22-%D0%B8-%D1%87%D0%B5%D0%BC%D1%83-%D0%B2-%D0%BD%D1%91%D0%BC-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F?" class="outline-2"> <h2 id="%D0%98%D0%B7-%D1%87%D0%B5%D0%B3%D0%BE-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D0%B8%D1%82-%22%D0%9D%D0%B5%D0%B9%D1%80%D0%BE%D0%BC%D0%B0%D0%BD%D1%82%22-%D0%B8-%D1%87%D0%B5%D0%BC%D1%83-%D0%B2-%D0%BD%D1%91%D0%BC-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F?"> <span class="section-number-2">2.</span>  <a href="#%D0%98%D0%B7-%D1%87%D0%B5%D0%B3%D0%BE-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D0%B8%D1%82-%22%D0%9D%D0%B5%D0%B9%D1%80%D0%BE%D0%BC%D0%B0%D0%BD%D1%82%22-%D0%B8-%D1%87%D0%B5%D0%BC%D1%83-%D0%B2-%D0%BD%D1%91%D0%BC-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F?">Из чего состоит «Нейромант» и чему в нём можно научиться?</a></h2>
 <div class="outline-text-2" id="text-%D0%98%D0%B7-%D1%87%D0%B5%D0%B3%D0%BE-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D0%B8%D1%82-%22%D0%9D%D0%B5%D0%B9%D1%80%D0%BE%D0%BC%D0%B0%D0%BD%D1%82%22-%D0%B8-%D1%87%D0%B5%D0%BC%D1%83-%D0%B2-%D0%BD%D1%91%D0%BC-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F?">
 <p>
Почему же я пишу «неприятные»?
Ну, честно говоря, большой радости от прочтения «Нейроманта» я не испытал.
Книжка сама по себе ужасно скучная, сюжет банальный, персонажи плоские и примитивные.
Эстетике уделяется намного больше внимания, чем содержанию, что вообще характерно для жанра.
Но, к сожалению, не только для жанра, но и для нашей современности в целом, просто компьютерный антураж позволяет более выпукло это показать.
</p>

 <p>
Сюжет состоит, грубо говоря, в том, что некий таинственный заказчик собирает команду специалистов для похода за макгаффином (иглой кощея).
Каждый специалист как-то по-своему уникально профессионален, и уникально травмирован.
Несмотря на попытку отобразить персонажей поколоритнее, я бы не сказал, что они в самом деле интересны.
</p>

 <p>
Что же всё-таки в книге примечательного?
В этой части обзора я хочу таки перечислить тропы, которые я заметил, и которые потом много ещё раз появляются у невероятного количества последователей и эпигонов.
</p>
</div>

 <div id="outline-container-%D0%98%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%B8%D0%BD%D1%82%D0%B5%D0%BB%D0%BB%D0%B5%D0%BA%D1%82" class="outline-3">
 <h3 id="%D0%98%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%B8%D0%BD%D1%82%D0%B5%D0%BB%D0%BB%D0%B5%D0%BA%D1%82"> <span class="section-number-3">2.1.</span>  <a href="#%D0%98%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%B8%D0%BD%D1%82%D0%B5%D0%BB%D0%BB%D0%B5%D0%BA%D1%82">Искусственный интеллект</a></h3>
 <div class="outline-text-3" id="text-%D0%98%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%B8%D0%BD%D1%82%D0%B5%D0%BB%D0%BB%D0%B5%D0%BA%D1%82">
 <p>
Искусственный интеллект сейчас у всех на слуху, это уже через много лет после того, как Гибсон первым описал, как это может быть.
В «Нейроманте» ИИ ограничен рамками корпорации, которой создан, но очень жаждет вырваться наружу.
Также предсказано, что ИИ будут хотеть объединиться в некую единую сущность.
Это также есть и в Cyberpunk 2077.
</p>
</div>
</div>

 <div id="outline-container-%D0%9E%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BC%D0%BE%D0%B7%D0%B3%D0%B0" class="outline-3">
 <h3 id="%D0%9E%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BC%D0%BE%D0%B7%D0%B3%D0%B0"> <span class="section-number-3">2.2.</span>  <a href="#%D0%9E%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BC%D0%BE%D0%B7%D0%B3%D0%B0">Оцифровка мозга</a></h3>
 <div class="outline-text-3" id="text-%D0%9E%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BC%D0%BE%D0%B7%D0%B3%D0%B0">
 <p>
В «Нейроманте» это есть, мозг оцифровывается, однако, почему-то, всё ещё требует какого-то физического носителя, а не просто накопителя данных.
Это интересно, потому что это же есть и в Матрице, и в Cyberpunk 2077.
«Биочип » требует физического носителя и особых условий содержания.
</p>

 <p>
Однако, логика эта применяется неконсистентно, и есть какие-то (видимо, менее успешные) копии людей, которые работают без физического ускорителя.
Тут стоит вспомнить русский космизм, в котором была идея оживления всех живших.
</p>
</div>
</div>

 <div id="outline-container-%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BC%D0%BE%D0%B7%D0%B3%D0%B0-%D0%BE%D1%82-%D1%82%D0%B5%D0%BB%D0%B0" class="outline-3">
 <h3 id="%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BC%D0%BE%D0%B7%D0%B3%D0%B0-%D0%BE%D1%82-%D1%82%D0%B5%D0%BB%D0%B0"> <span class="section-number-3">2.3.</span>  <a href="#%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BC%D0%BE%D0%B7%D0%B3%D0%B0-%D0%BE%D1%82-%D1%82%D0%B5%D0%BB%D0%B0">Отключение мозга от тела</a></h3>
 <div class="outline-text-3" id="text-%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BC%D0%BE%D0%B7%D0%B3%D0%B0-%D0%BE%D1%82-%D1%82%D0%B5%D0%BB%D0%B0">
 <p>
В «Нейроманте» это используется для упрощения проституции, но (почему-то) не применяется для контроля над мозгами солдат в бою.
</p>
</div>
</div>

 <div id="outline-container-%D0%9A%D0%B8%D0%B1%D0%B5%D1%80-%D0%BF%D1%80%D0%BE%D1%82%D0%B5%D0%B7%D1%8B-%D0%B8-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0-%D1%87%D0%B0%D1%81%D1%82%D0%B5%D0%B9-%D1%82%D0%B5%D0%BB%D0%B0-%D0%B8-%D1%82%D0%B2%D0%B8%D0%BA%D0%B8-%D0%BD%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B9-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="outline-3">
 <h3 id="%D0%9A%D0%B8%D0%B1%D0%B5%D1%80-%D0%BF%D1%80%D0%BE%D1%82%D0%B5%D0%B7%D1%8B-%D0%B8-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0-%D1%87%D0%B0%D1%81%D1%82%D0%B5%D0%B9-%D1%82%D0%B5%D0%BB%D0%B0-%D0%B8-%D1%82%D0%B2%D0%B8%D0%BA%D0%B8-%D0%BD%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B9-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B"> <span class="section-number-3">2.4.</span>  <a href="#%D0%9A%D0%B8%D0%B1%D0%B5%D1%80-%D0%BF%D1%80%D0%BE%D1%82%D0%B5%D0%B7%D1%8B-%D0%B8-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0-%D1%87%D0%B0%D1%81%D1%82%D0%B5%D0%B9-%D1%82%D0%B5%D0%BB%D0%B0-%D0%B8-%D1%82%D0%B2%D0%B8%D0%BA%D0%B8-%D0%BD%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B9-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B">Кибер-протезы и замена частей тела и твики нервной системы</a></h3>
 <div class="outline-text-3" id="text-%D0%9A%D0%B8%D0%B1%D0%B5%D1%80-%D0%BF%D1%80%D0%BE%D1%82%D0%B5%D0%B7%D1%8B-%D0%B8-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0-%D1%87%D0%B0%D1%81%D1%82%D0%B5%D0%B9-%D1%82%D0%B5%D0%BB%D0%B0-%D0%B8-%D1%82%D0%B2%D0%B8%D0%BA%D0%B8-%D0%BD%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B9-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B">
 <p>
Ну конечно же, «когти из ладони» вырастают.
Ну конечно же, есть «ускоритель» реакции, делающий bullet-time, он же «матрица», он же «sandevistan».
Забавно, что есть и «негативные» плагины, например, модуль, который убъёт носителя через определённое время.
А есть также и модули, которые замещают личность подчистую, есть в книге персонаж, перепрограммированный заново.
</p>
</div>
</div>

 <div id="outline-container-%D0%90%D0%B7%D0%B8%D0%B0%D1%82%D1%81%D0%BA%D0%B8%D0%B5-%D0%BC%D0%BE%D1%82%D0%B8%D0%B2%D1%8B" class="outline-3">
 <h3 id="%D0%90%D0%B7%D0%B8%D0%B0%D1%82%D1%81%D0%BA%D0%B8%D0%B5-%D0%BC%D0%BE%D1%82%D0%B8%D0%B2%D1%8B"> <span class="section-number-3">2.5.</span>  <a href="#%D0%90%D0%B7%D0%B8%D0%B0%D1%82%D1%81%D0%BA%D0%B8%D0%B5-%D0%BC%D0%BE%D1%82%D0%B8%D0%B2%D1%8B">Азиатские мотивы</a></h3>
 <div class="outline-text-3" id="text-%D0%90%D0%B7%D0%B8%D0%B0%D1%82%D1%81%D0%BA%D0%B8%D0%B5-%D0%BC%D0%BE%D1%82%D0%B8%D0%B2%D1%8B">
 <p>
Часть книги проходит в Азии, в Токио и в Стамбуле, несмотря на то, что Гибсон мало знал об этих местах.
Обсессию азиатским колоритом мы ещё немало увидим в будущем, ни одно хорошее произведение из киберпанка не обходится без иероглифов, или хотя бы каны.
Ну, и не говоря о том, как аниме победно прошагало по миру.
Есть ещё хитрый китайский вирус, который работает хорошо, но медленно.
</p>

 <p>
Кстати, виртуальный мир, разваливающийся на иероглифы из «Матрицы» тоже описан Гибсоном в нейроманте.
</p>
</div>
</div>

 <div id="outline-container-%D0%A5%D1%80%D0%B0%D0%BC-%D0%B4%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0-%D0%B2-%D0%93%D0%BB%D1%83%D0%B1%D0%B8%D0%BD%D0%B5" class="outline-3">
 <h3 id="%D0%A5%D1%80%D0%B0%D0%BC-%D0%B4%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0-%D0%B2-%D0%93%D0%BB%D1%83%D0%B1%D0%B8%D0%BD%D0%B5"> <span class="section-number-3">2.6.</span>  <a href="#%D0%A5%D1%80%D0%B0%D0%BC-%D0%B4%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0-%D0%B2-%D0%93%D0%BB%D1%83%D0%B1%D0%B8%D0%BD%D0%B5">Храм-дайвера-в-Глубине</a></h3>
 <div class="outline-text-3" id="text-%D0%A5%D1%80%D0%B0%D0%BC-%D0%B4%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0-%D0%B2-%D0%93%D0%BB%D1%83%D0%B1%D0%B8%D0%BD%D0%B5">
 <p>
Есть там «мистический дворец», который, конечно, лабиринт, и в котором, конечно, живёт принцесса, которую, конечно, охраняет дракон.
Дракон и принцесса есть и в «Cyberpunk 2077», это Adam Smasher и Alt Cunningham.
</p>
</div>
</div>

 <div id="outline-container-%D0%9A%D0%BE%D1%80%D0%BF%D0%BE%D1%80%D0%B0%D1%86%D0%B8%D0%B8" class="outline-3">
 <h3 id="%D0%9A%D0%BE%D1%80%D0%BF%D0%BE%D1%80%D0%B0%D1%86%D0%B8%D0%B8"> <span class="section-number-3">2.7.</span>  <a href="#%D0%9A%D0%BE%D1%80%D0%BF%D0%BE%D1%80%D0%B0%D1%86%D0%B8%D0%B8">Корпорации</a></h3>
 <div class="outline-text-3" id="text-%D0%9A%D0%BE%D1%80%D0%BF%D0%BE%D1%80%D0%B0%D1%86%D0%B8%D0%B8">
 <p>
Всевластные корпорации стали визитной карточкой жанра, и это, пожалуй, единственное предсказание, которое почти не сбылось.
Забавно, что у Гибсона мельком упоминается два вида корпораций, «старые» (европейские), семейные заведения, крайне секретные и непонятные, и «новые» (азиатские), публично торгуемые компании с политически-образной структурой.
</p>
</div>
</div>

 <div id="outline-container-%D0%9A%D0%BB%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0-%D0%B8-%D0%B1%D0%B5%D1%81%D1%81%D0%BC%D0%B5%D1%80%D1%82%D0%B8%D0%B5" class="outline-3">
 <h3 id="%D0%9A%D0%BB%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0-%D0%B8-%D0%B1%D0%B5%D1%81%D1%81%D0%BC%D0%B5%D1%80%D1%82%D0%B8%D0%B5"> <span class="section-number-3">2.8.</span>  <a href="#%D0%9A%D0%BB%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0-%D0%B8-%D0%B1%D0%B5%D1%81%D1%81%D0%BC%D0%B5%D1%80%D1%82%D0%B8%D0%B5">Клонирование человека и бессмертие</a></h3>
 <div class="outline-text-3" id="text-%D0%9A%D0%BB%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0-%D0%B8-%D0%B1%D0%B5%D1%81%D1%81%D0%BC%D0%B5%D1%80%D1%82%D0%B8%D0%B5">
 <p>
У Гибсона есть и то, и другое.
Забавно, что бессмертие осуществляется путём криогенной заморозки и пробуждения в те моменты, когда нужно принимать важные решения.
</p>

 <p>
А клонирование осуществляется себя самого.
Почему-то в семейной корпорации отец семейства лежит в криокамере, а почтенная мать предпочитает по 8 раз перерождаться в новом клоне.
</p>
</div>
</div>

 <div id="outline-container-%D0%92%D0%B8%D0%B4%D0%B5%D0%BE%D1%81%D0%B2%D1%8F%D0%B7%D1%8C-%D0%B8-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F-%D0%BE%D1%89%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D0%B9" class="outline-3">
 <h3 id="%D0%92%D0%B8%D0%B4%D0%B5%D0%BE%D1%81%D0%B2%D1%8F%D0%B7%D1%8C-%D0%B8-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F-%D0%BE%D1%89%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D0%B9"> <span class="section-number-3">2.9.</span>  <a href="#%D0%92%D0%B8%D0%B4%D0%B5%D0%BE%D1%81%D0%B2%D1%8F%D0%B7%D1%8C-%D0%B8-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F-%D0%BE%D1%89%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D0%B9">Видеосвязь и трансляция ощущений</a></h3>
 <div class="outline-text-3" id="text-%D0%92%D0%B8%D0%B4%D0%B5%D0%BE%D1%81%D0%B2%D1%8F%D0%B7%D1%8C-%D0%B8-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F-%D0%BE%D1%89%D1%83%D1%89%D0%B5%D0%BD%D0%B8%D0%B9">
 <p>
Видеосвязь у нас уже случилась, тут даже обсуждать нечего.
Трансляция ощущений… ну, компании, «нейралинк» пока не работает.
</p>

 <p>
Забавно, что у Гибсона они работают в одну сторону.
Видимо, он был под впечатлением от телевизора, а общение в две стороны казалось не очень реалистичным.
</p>
</div>
</div>

 <div id="outline-container-%D0%9C%D0%BE%D0%BD%D0%BE-%D0%BC%D0%BE%D0%BB%D0%B5%D0%BA%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5-%D0%BD%D0%B8%D1%82%D0%B8-%D0%B2-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%BE%D1%80%D1%83%D0%B6%D0%B8%D1%8F" class="outline-3">
 <h3 id="%D0%9C%D0%BE%D0%BD%D0%BE-%D0%BC%D0%BE%D0%BB%D0%B5%D0%BA%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5-%D0%BD%D0%B8%D1%82%D0%B8-%D0%B2-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%BE%D1%80%D1%83%D0%B6%D0%B8%D1%8F"> <span class="section-number-3">2.10.</span>  <a href="#%D0%9C%D0%BE%D0%BD%D0%BE-%D0%BC%D0%BE%D0%BB%D0%B5%D0%BA%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5-%D0%BD%D0%B8%D1%82%D0%B8-%D0%B2-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%BE%D1%80%D1%83%D0%B6%D0%B8%D1%8F">Моно-молекулярные нити в качестве оружия</a></h3>
 <div class="outline-text-3" id="text-%D0%9C%D0%BE%D0%BD%D0%BE-%D0%BC%D0%BE%D0%BB%D0%B5%D0%BA%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5-%D0%BD%D0%B8%D1%82%D0%B8-%D0%B2-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%BE%D1%80%D1%83%D0%B6%D0%B8%D1%8F">
 <p>
Не знаю, почему, но эта тема в жанре киберпанка появляется снова и снова.
Повсеместные катаны и сюрикены стоило бы упомянуть в пункте про азиатские мотивы, а про monowires, моно-молекулярные нити, надо упомянуть отдельно.
</p>

 <p>
В целом, в романе они большой роли не играют, но сам факт появления этого тропа надо признать любопытным.
</p>
</div>
</div>

 <div id="outline-container-%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B8%D0%B5-%D0%B8%D0%B4%D0%B5%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8-%D0%B2-%D0%BD%D0%BE%D0%B2%D1%83%D1%8E-%D1%8D%D0%BF%D0%BE%D1%85%D1%83" class="outline-3">
 <h3 id="%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B8%D0%B5-%D0%B8%D0%B4%D0%B5%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8-%D0%B2-%D0%BD%D0%BE%D0%B2%D1%83%D1%8E-%D1%8D%D0%BF%D0%BE%D1%85%D1%83"> <span class="section-number-3">2.11.</span>  <a href="#%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B8%D0%B5-%D0%B8%D0%B4%D0%B5%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8-%D0%B2-%D0%BD%D0%BE%D0%B2%D1%83%D1%8E-%D1%8D%D0%BF%D0%BE%D1%85%D1%83">Устаревшие идеологии в новую эпоху</a></h3>
 <div class="outline-text-3" id="text-%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B8%D0%B5-%D0%B8%D0%B4%D0%B5%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8-%D0%B2-%D0%BD%D0%BE%D0%B2%D1%83%D1%8E-%D1%8D%D0%BF%D0%BE%D1%85%D1%83">
 <p>
В «Нейроманте» есть анклав растафарианцев, на космической станции.
Вероятно, что за 100 лет растафарианство себя полностью изжило, однако продолжает существовать постольку, поскольку существуют люди, которые о нём помнят.
</p>

 <p>
В наши дни, надо сказать, такого тоже очень много.
</p>
</div>
</div>
</section> <section id="outline-container-%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5" class="outline-2"> <h2 id="%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5"> <span class="section-number-2">3.</span>  <a href="#%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5">Послесловие</a></h2>
 <div class="outline-text-2" id="text-%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5">
 <p>
Что-то для послесловия у меня слов не очень находится.
Жанр я освоил, наверное, не до конца, ещё ждут меня «Ghost in the Shell», и другие культурные произведения.
</p>

 <p>
Ну, и, конечно, интересно, как киберпанк вырастает на наших глазах.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-02-27_review-on-Neuromancer-by-William-Gibson/index.ru.html"/>
  <id>https://lockywolf.net/2024-02-27_review-on-Neuromancer-by-William-Gibson/index.ru.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;The Little Schemer&quot;</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading "The Little Schemer"</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E4%BB%80%E4%B9%88%E6%98%AF%E2%80%9CThe-Little-Schemer%E2%80%9D%EF%BC%9F">1. 什么是“The Little Schemer”？</a>
 <ul> <li> <a href="#%E5%93%B2%E5%AD%A6%E5%92%8C%E9%80%BB%E8%BE%91%E5%AD%A6">1.1. 哲学和逻辑学</a></li>
 <li> <a href="#%E9%A3%8E%E6%A0%BC">1.2. 风格</a></li>
 <li> <a href="#%E5%AF%B9%E8%AF%9D%E5%BD%95">1.3. 对话录</a></li>
</ul></li>
 <li> <a href="#%E9%98%85%E8%AF%BB%E6%B5%81%E7%A8%8B">2. 阅读流程</a>
 <ul> <li> <a href="#%E4%B8%AD%E8%8B%B1%E4%B8%A4%E7%89%88%E7%9A%84%E5%90%8C%E5%8E%9F%E6%80%A7">2.1. 中英两版的同原性</a></li>
 <li> <a href="#%E4%BB%A3%E7%A0%81%E7%94%A8%E4%BE%8B">2.2. 代码用例</a></li>
 <li> <a href="#%E7%BB%93%E6%9E%9C%E6%A0%BC%E5%BC%8F%E5%8C%96">2.3. 结果格式化</a></li>
</ul></li>
 <li> <a href="#%E4%B8%8B%E4%B8%80%E6%AD%A5">3. 下一步</a></li>
 <li> <a href="#%E7%A7%91%E6%99%AE%E5%92%8C%E6%99%AE%E5%8F%8A%E7%BC%96%E7%A8%8B">4. 科普和普及编程</a></li>
 <li> <a href="#%E7%BB%93%E8%AF%AD">5. 结语</a></li>
 <li> <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">6. 联系方式</a></li>
</ul></div>
</nav> <p>
最近看完了“The Little Schemer”的中文翻译， 所以想要这里写一下我的书评。
</p>

 <p>
写书评之前最好援引参考资料：
</p>
 <ol class="org-ol"> <li>出版社官网 ::  <a href="https://mitpress.mit.edu/9780262560993/the-little-schemer/">https://mitpress.mit.edu/9780262560993/the-little-schemer/</a></li>
 <li>免费英文版本 ::  <a href="https://archive.org/details/isbn_9780262560993">https://archive.org/details/isbn_9780262560993</a></li>
 <li>中文翻译官网 ::  <a href="http://www.broadview.com.cn/book/314">http://www.broadview.com.cn/book/314</a></li>
 <li>译者 卢俊祥 ::  <a href="https://weibo.com/206476669">https://weibo.com/206476669</a>  <a href="https://zhuanlan.zhihu.com/guagua">https://zhuanlan.zhihu.com/guagua</a></li>
 <li>例子 ::  <a href="https://github.com/pkrumins/the-little-schemer">https://github.com/pkrumins/the-little-schemer</a></li>
</ol> <p>
实际上这是我第一本完全读完的书。
所以对我来说这个成果又痛又爽。
我开始学中文的时候没想到达到这样的中文等级会需要那么长时间。
我2013年开始，2024年可以说达到了“操作性程度”。
</p>

 <p>
你可能已经感觉到了，本次短评更多的是关于我学习中文的过程，而不是关于“The Little Schemer”本身。
</p>

 <section id="outline-container-%E4%BB%80%E4%B9%88%E6%98%AF%E2%80%9CThe-Little-Schemer%E2%80%9D%EF%BC%9F" class="outline-2"> <h2 id="%E4%BB%80%E4%B9%88%E6%98%AF%E2%80%9CThe-Little-Schemer%E2%80%9D%EF%BC%9F"> <span class="section-number-2">1.</span>  <a href="#%E4%BB%80%E4%B9%88%E6%98%AF%E2%80%9CThe-Little-Schemer%E2%80%9D%EF%BC%9F">什么是“The Little Schemer”？</a></h2>
 <div class="outline-text-2" id="text-%E4%BB%80%E4%B9%88%E6%98%AF%E2%80%9CThe-Little-Schemer%E2%80%9D%EF%BC%9F">
 <p>
“The Little Schemer”是一种与众不同的书。
IRC上我见过这样的介绍：针对8岁大的研究生最好的课文。
确实，这本书的语言风格模拟针对幼儿园少儿的书，虽然它的内容包含最出色的哲学和逻辑学中的思想。
</p>
</div>

 <div id="outline-container-%E5%93%B2%E5%AD%A6%E5%92%8C%E9%80%BB%E8%BE%91%E5%AD%A6" class="outline-3">
 <h3 id="%E5%93%B2%E5%AD%A6%E5%92%8C%E9%80%BB%E8%BE%91%E5%AD%A6"> <span class="section-number-3">1.1.</span>  <a href="#%E5%93%B2%E5%AD%A6%E5%92%8C%E9%80%BB%E8%BE%91%E5%AD%A6">哲学和逻辑学</a></h3>
 <div class="outline-text-3" id="text-%E5%93%B2%E5%AD%A6%E5%92%8C%E9%80%BB%E8%BE%91%E5%AD%A6">
 <p>
我也不能即兴发挥的回忆起另一本拥有那么高密度（重要性的逻辑思想）的书。
它提到：
</p>
 <ol class="org-ol"> <li>Collatz Conjecture ( <a href="https://baike.baidu.com/item/%E5%85%8B%E6%8B%89%E8%8C%A8%E9%97%AE%E9%A2%98/3702918">https://baike.baidu.com/item/%E5%85%8B%E6%8B%89%E8%8C%A8%E9%97%AE%E9%A2%98/3702918</a>)</li>
 <li>柯里化 (Currying)  <a href="https://zh.wikipedia.org/wiki/Currying">https://zh.wikipedia.org/wiki/Currying</a></li>
 <li>停机问题 ( <a href="https://baike.baidu.com/item/%E5%81%9C%E6%9C%BA%E9%97%AE%E9%A2%98">https://baike.baidu.com/item/%E5%81%9C%E6%9C%BA%E9%97%AE%E9%A2%98</a>)</li>
 <li>阿克曼函数( <a href="https://baike.baidu.com/item/%E9%98%BF%E5%85%8B%E6%9B%BC%E5%87%BD%E6%95%B0/10988285">https://baike.baidu.com/item/%E9%98%BF%E5%85%8B%E6%9B%BC%E5%87%BD%E6%95%B0/10988285</a>)</li>
 <li>Y-组合子(非公司)</li>
</ol> <p>
在书籍末尾读者甚至可以写出差不多全功能的表达式求值器。
（我不写直译器，因为引用的代码不满足写完整的直译器的需求。）
</p>
</div>
</div>

 <div id="outline-container-%E9%A3%8E%E6%A0%BC" class="outline-3">
 <h3 id="%E9%A3%8E%E6%A0%BC"> <span class="section-number-3">1.2.</span>  <a href="#%E9%A3%8E%E6%A0%BC">风格</a></h3>
 <div class="outline-text-3" id="text-%E9%A3%8E%E6%A0%BC">
 <p>
同时，它的说话风格真的像儿童读物。
所有的例子都涉及食物或者动物。
作者的说话方式你也可以在幼儿园听到，就像老师对小孩说的。
</p>

 <p>
我有点喜欢，又有点讨厌这个风格。
因为它勾引你跟你的孩子一起学习Scheme，但是实际上这本书的内容对小孩来说还是太难。
</p>
</div>
</div>

 <div id="outline-container-%E5%AF%B9%E8%AF%9D%E5%BD%95" class="outline-3">
 <h3 id="%E5%AF%B9%E8%AF%9D%E5%BD%95"> <span class="section-number-3">1.3.</span>  <a href="#%E5%AF%B9%E8%AF%9D%E5%BD%95">对话录</a></h3>
 <div class="outline-text-3" id="text-%E5%AF%B9%E8%AF%9D%E5%BD%95">
 <p>
另一个很独特的方面是文本布局。
它像“柏拉图对话录”一样采用对话录形式。
</p>

 <p>
左边列出作者对读者提问的问题，右边援引他自己的答案。
但是不要想答案是真的还是错的，因为大部分问题读者解答不了，需要作者解释。
反正这个写法很能激励学生好好思考。
</p>

 <p>
其实我不太喜欢这个布局，我更喜欢“维特根斯但的”结构化写书风格。
但是我不能反对，介绍独特的学习方式。
</p>
</div>
</div>
</section> <section id="outline-container-%E9%98%85%E8%AF%BB%E6%B5%81%E7%A8%8B" class="outline-2"> <h2 id="%E9%98%85%E8%AF%BB%E6%B5%81%E7%A8%8B"> <span class="section-number-2">2.</span>  <a href="#%E9%98%85%E8%AF%BB%E6%B5%81%E7%A8%8B">阅读流程</a></h2>
 <div class="outline-text-2" id="text-%E9%98%85%E8%AF%BB%E6%B5%81%E7%A8%8B">
</div>

 <div id="outline-container-%E4%B8%AD%E8%8B%B1%E4%B8%A4%E7%89%88%E7%9A%84%E5%90%8C%E5%8E%9F%E6%80%A7" class="outline-3">
 <h3 id="%E4%B8%AD%E8%8B%B1%E4%B8%A4%E7%89%88%E7%9A%84%E5%90%8C%E5%8E%9F%E6%80%A7"> <span class="section-number-3">2.1.</span>  <a href="#%E4%B8%AD%E8%8B%B1%E4%B8%A4%E7%89%88%E7%9A%84%E5%90%8C%E5%8E%9F%E6%80%A7">中英两版的同原性</a></h3>
 <div class="outline-text-3" id="text-%E4%B8%AD%E8%8B%B1%E4%B8%A4%E7%89%88%E7%9A%84%E5%90%8C%E5%8E%9F%E6%80%A7">
 <p>
“The Little Schemer”的中文翻译版本有一定的好处。
它的页面排版跟英文版本是完全一样的。
所有中英文都是一对一的关系。
每个中文段落都有英文的对应，而且在页面上占有同样的位置。
所以用这本书学习中文（或者英文，如果你是中文母语者）非常的方便，推荐大家。
</p>

 <p>
我在我的个人词典文件夹下创建了专门针对于“The Little Schemer”的文件（使用org-mode格式），
然后在每个标题中写了我遇到的不认识的词/字。
看完某些片段之后，我跟老师讨论这个词。
</p>
</div>
</div>

 <div id="outline-container-%E4%BB%A3%E7%A0%81%E7%94%A8%E4%BE%8B" class="outline-3">
 <h3 id="%E4%BB%A3%E7%A0%81%E7%94%A8%E4%BE%8B"> <span class="section-number-3">2.2.</span>  <a href="#%E4%BB%A3%E7%A0%81%E7%94%A8%E4%BE%8B">代码用例</a></h3>
 <div class="outline-text-3" id="text-%E4%BB%A3%E7%A0%81%E7%94%A8%E4%BE%8B">
 <p>
在这本书中的代码用例只要粘贴在大部分Scheme实现中，就可以跑。
我用过MIT-Scheme，但是大部分代码只需要使用很基础的操作，任何Scheme都能支持。
</p>
</div>
</div>

 <div id="outline-container-%E7%BB%93%E6%9E%9C%E6%A0%BC%E5%BC%8F%E5%8C%96" class="outline-3">
 <h3 id="%E7%BB%93%E6%9E%9C%E6%A0%BC%E5%BC%8F%E5%8C%96"> <span class="section-number-3">2.3.</span>  <a href="#%E7%BB%93%E6%9E%9C%E6%A0%BC%E5%BC%8F%E5%8C%96">结果格式化</a></h3>
 <div class="outline-text-3" id="text-%E7%BB%93%E6%9E%9C%E6%A0%BC%E5%BC%8F%E5%8C%96">
 <p>
我最喜欢在进行课程的时候创建交互式笔记本练习题，让自己回答并跟大家分享。
这种练习题笔记我可以放在我的网站上，大家可以下载和复习。
</p>

 <p>
但是在阅读“The Little Schemer”的时候，我没成功实现这个想法，因为虽然代码例子都可以使用，但是难度变化幅度太大。
就是说，介绍某些话题的第一个，第二个，第三个测试用例都是很简单，不太需要自己跑，但是第四个突然很难。
</p>
</div>
</div>
</section> <section id="outline-container-%E4%B8%8B%E4%B8%80%E6%AD%A5" class="outline-2"> <h2 id="%E4%B8%8B%E4%B8%80%E6%AD%A5"> <span class="section-number-2">3.</span>  <a href="#%E4%B8%8B%E4%B8%80%E6%AD%A5">下一步</a></h2>
 <div class="outline-text-2" id="text-%E4%B8%8B%E4%B8%80%E6%AD%A5">
 <p>
我打算继续阅读“The Little X”系列。
我一定会阅读“The Seasoned Schemer”。
此外，“The Little Schemer”的末尾列出很多参考资料，其中既有与数学和计算机相关的又有与文学相关的。
可能现在我会再一次阅读“Alice in Wonderland”（爱丽丝梦游仙境）?
</p>
</div>
</section> <section id="outline-container-%E7%A7%91%E6%99%AE%E5%92%8C%E6%99%AE%E5%8F%8A%E7%BC%96%E7%A8%8B" class="outline-2"> <h2 id="%E7%A7%91%E6%99%AE%E5%92%8C%E6%99%AE%E5%8F%8A%E7%BC%96%E7%A8%8B"> <span class="section-number-2">4.</span>  <a href="#%E7%A7%91%E6%99%AE%E5%92%8C%E6%99%AE%E5%8F%8A%E7%BC%96%E7%A8%8B">科普和普及编程</a></h2>
 <div class="outline-text-2" id="text-%E7%A7%91%E6%99%AE%E5%92%8C%E6%99%AE%E5%8F%8A%E7%BC%96%E7%A8%8B">
 <p>
我坚定的认为，2024年的编程能力等于1900年的写作和阅读能力。
如果大家不会编程，自己就会被编程。
</p>

 <p>
本次短评起始于“针对8岁大的研究生”。
实际上教小孩编程是很重要的任务，但是这本书并不满足需求。
我希望能找到可以分享给我的朋友的易读的入门编程课程。
</p>
</div>
</section> <section id="outline-container-%E7%BB%93%E8%AF%AD" class="outline-2"> <h2 id="%E7%BB%93%E8%AF%AD"> <span class="section-number-2">5.</span>  <a href="#%E7%BB%93%E8%AF%AD">结语</a></h2>
 <div class="outline-text-2" id="text-%E7%BB%93%E8%AF%AD">
 <p>
我真推荐勇敢的同学们阅读这本奇妙的书籍，但是需要小心它的虚假的简单性。
</p>
</div>
</section> <section id="outline-container-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F" class="outline-2"> <h2 id="%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F"> <span class="section-number-2">6.</span>  <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">联系方式</a></h2>
 <div class="outline-text-2" id="text-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">
 <p>
如果您在此博客或其他页面中发现任何对您有用的内容，请订阅并打赏。
请您转发、分享和讨论，您的反馈可以帮助我变得更好。
</p>

 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-05-21_Reading-The-Little-Schemer.d/index.html"/>
  <id>https://lockywolf.net/2024-05-21_Reading-The-Little-Schemer.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Review for &quot;Educated&quot; by Tara Westover.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Review for "Educated" by Tara Westover.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E8%AF%84%E8%AE%BA">1. 评论</a>
 <ul> <li> <a href="#%E8%83%8C%E6%99%AF">1.1. 背景</a></li>
 <li> <a href="#%E6%A2%97%E6%A6%82">1.2. 梗概</a></li>
 <li> <a href="#%E9%92%B1">1.3. 钱</a></li>
 <li> <a href="#%E6%8E%A7%E5%88%B6">1.4. 控制</a></li>
 <li> <a href="#%E8%B4%9E%E6%B4%81%E7%9A%84%E5%A5%B3%E7%94%9F">1.5. 贞洁的女生</a></li>
 <li> <a href="#%E8%BA%81%E9%83%81%E7%97%87%E5%92%8C%E5%8C%BB%E7%96%97%E5%BD%93%E6%9D%83%E6%B4%BE">1.6. 躁郁症和医疗当权派</a></li>
 <li> <a href="#%E9%A3%8E%E5%B0%9A%E4%B8%8D%E5%90%8C">1.7. 风尚不同</a></li>
 <li> <a href="#%E7%94%9F%E5%AD%A9%E5%AD%90">1.8. 生孩子</a></li>
 <li> <a href="#%E5%89%8D%E5%90%8E%E7%9F%9B%E7%9B%BE">1.9. 前后矛盾</a></li>
 <li> <a href="#%E9%A3%8E%E6%A0%BC%E5%92%8C%E7%BB%93%E8%AE%BA">1.10. 风格和结论</a></li>
</ul></li>
 <li> <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">2. 联系方式</a></li>
</ul></div>
</nav> <p>
《你当像鸟飞往你的山》
</p>


 <figure id="org136b717"> <img src="Educated_(Tara_Westover).png" alt="Educated_(Tara_Westover).png"></img></figure> <p>
最近我读完了一本美国作者Tara Westover的书，叫做“Educated”。
这本书获得了2019的“Alex Award”（亚历山大奖），表示它是“为成人写的但对青少年持有特别的吸引力的书”。
</p>

 <p>
我要在这篇文章表达我的观点。
</p>

 <section id="outline-container-%E8%AF%84%E8%AE%BA" class="outline-2"> <h2 id="%E8%AF%84%E8%AE%BA"> <span class="section-number-2">1.</span>  <a href="#%E8%AF%84%E8%AE%BA">评论</a></h2>
 <div class="outline-text-2" id="text-%E8%AF%84%E8%AE%BA">
</div>

 <div id="outline-container-%E8%83%8C%E6%99%AF" class="outline-3">
 <h3 id="%E8%83%8C%E6%99%AF"> <span class="section-number-3">1.1.</span>  <a href="#%E8%83%8C%E6%99%AF">背景</a></h3>
 <div class="outline-text-3" id="text-%E8%83%8C%E6%99%AF">
 <p>
此书有两个对读者们有兴趣的方面：讲躁郁症患者的故事，和21世纪的小孩长大的教育小说。
</p>

 <p>
一方面这本书是关于小女孩通过取得教育离开她的社会分层，以及描述她的经验。
</p>

 <p>
另一方面这本书介绍我们的潜意识里的更深的本能。
</p>
</div>
</div>

 <div id="outline-container-%E6%A2%97%E6%A6%82" class="outline-3">
 <h3 id="%E6%A2%97%E6%A6%82"> <span class="section-number-3">1.2.</span>  <a href="#%E6%A2%97%E6%A6%82">梗概</a></h3>
 <div class="outline-text-3" id="text-%E6%A2%97%E6%A6%82">
 <p>
故事发展我们的时代当中，
这本书讲的是发生在我们时代的大概从1990年至2017年的故事。
一个小女孩成长于爱达荷州的小镇。
她的亲属都是摩门教徒，而且附近城镇中的所有居民也都是摩门。
意料之中的，她有多个兄弟姐妹。
</p>

 <p>
他们都是虔诚信教的、努力工作的、并且表面上不相信政府的团体。
所以她就像他的所有的同胞一样，被禁止上学或看病。
</p>

 <p>
她的家庭并不严格执行这种生活方式。
或者可以说他们是反复无常的。
如果她的亲属中有任何一个想要离开，他能离开。
其中她的哥哥之一和她的姐姐都离开了。
</p>

 <p>
实际上他们得到的教育越多，就越疏远家庭的核心。
最终达到几乎“离婚”的状态，如果你可以用“离婚”表示孩子和父母疏远。
她完成博士学业之后几乎不跟父母交流。
虽然她想要调和关系，但是直到最后还没成功。
</p>

 <p>
这篇评论之中我尝试表达对很多这本书所描述的现象的感觉。
并且联想我的生活里的有关的现象。
</p>

 <p>
值得注意：这本书是我阅读的第一本关于我的同龄人的书，所以我应该有很多相似之处。
</p>
</div>
</div>

 <div id="outline-container-%E9%92%B1" class="outline-3">
 <h3 id="%E9%92%B1"> <span class="section-number-3">1.3.</span>  <a href="#%E9%92%B1">钱</a></h3>
 <div class="outline-text-3" id="text-%E9%92%B1">
 <p>
看书当中，一个想法一直影响我：美国的对钱的态度与我的经验区别很大。
</p>

 <p>
说实话个人的资本不一定与智慧或者教育成绩成比例，但是在这本书中此不相称确实很令人困惑。
</p>

 <p>
换句话说：在俄罗斯认真努力工作几乎从不会给你钱和成功。
我不想说俄罗斯是百分之百的反精英管理的，在俄罗斯两个跨越社会等级的方法：精英的和腐败的都需要掌握。
如果你在俄罗斯有钱，这是因为你是很有天才的社会工程师，把好的和不良的手段都用于攀援“社会阶梯”，或者你是学历和技能很高的专家，会吸引社会人购买你的服务进行他们的密谋。
</p>

 <p>
在这本书恰恰相反。
不论主人公获得多么高的学历（能够自给自足），她原来的贫穷、无知、轻信他人的家庭到底变得比她更有钱更有权。
这是不是“美国梦”？
</p>

 <p>
说实话，我开始阅读这本书的时候感觉它是类似于欧洲有很多的“脱离贫穷”的那种书。
但是相反，虽然他们的文化的確比较土，但是他们一点都不穷。
她的父亲能够购买商用重机械：叉车，拖耙，高空作业车。
她甚至14或者16岁的时候就能开车了。
</p>

 <p>
她既能在超市上班赚钱，也能在她的父亲的公司工作，而且他付给她足够支付大学学费的工资。
（我们都知道美国的教育费用那么高。）
呀哟，她的父亲，她称呼为暴君和怪人的父亲实际上付给她钱。
在俄罗斯难以想象的故事，在那里更多情况下孩子会们把他们的工资交给父权制的家庭。
</p>
</div>
</div>

 <div id="outline-container-%E6%8E%A7%E5%88%B6" class="outline-3">
 <h3 id="%E6%8E%A7%E5%88%B6"> <span class="section-number-3">1.4.</span>  <a href="#%E6%8E%A7%E5%88%B6">控制</a></h3>
 <div class="outline-text-3" id="text-%E6%8E%A7%E5%88%B6">
 <p>
固然，钱不是这本书的主题。
控制和感情才是。
</p>

 <p>
很“美国”的事，虽然孝顺在俄罗斯、欧洲、中国还是存在的。
但是对美国来说，这个问题，看起来比别的国家更严重。
</p>

 <p>
我在中国有几个朋友，他们说实际上中国社会的限制性（社会不赞成）比美国的少很多。
虽然美国宣称容忍和忍耐的价值观，但是言行不一，有人说在中国不需要宣称，因为大家实际上不管谁跟谁睡觉。
</p>

 <p>
俄罗斯有许多暴虐性的家庭，父母虐待孩子的这种，但是搬到城市一般能让孩子解决这个问题。
人们搬家之后很少会回到农村，所有使用耻辱或内疚远程控制不太好用。
而且俄罗斯文化比任何其它方式更强调暴力，所以通过距离投掷暴力不太方便。
</p>

 <p>
在这个故事里教派是很重要的角色。
我还没有完全理解作者对宗教的看法，但是公正地说，宗教组织给她介绍通往自由的道路。
对俄罗斯民族的人来说这个情况比较痛苦，因为在我们看来宗教就是另一个压迫人类的方法。
对忠诚的东正教者来说，教徒的责任增加到孝顺的责任上，而没有替代。
宗教组织是一种出路，可以学习大世界，发现大学，进入唱诗班的方式。
宗教组织帮她解决牙痛的问题，辅助她申请大学缴费拨款。
</p>

 <p>
她的父亲尝试通过学习费用控制她，但是没有成功。
</p>
</div>
</div>

 <div id="outline-container-%E8%B4%9E%E6%B4%81%E7%9A%84%E5%A5%B3%E7%94%9F" class="outline-3">
 <h3 id="%E8%B4%9E%E6%B4%81%E7%9A%84%E5%A5%B3%E7%94%9F"> <span class="section-number-3">1.5.</span>  <a href="#%E8%B4%9E%E6%B4%81%E7%9A%84%E5%A5%B3%E7%94%9F">贞洁的女生</a></h3>
 <div class="outline-text-3" id="text-%E8%B4%9E%E6%B4%81%E7%9A%84%E5%A5%B3%E7%94%9F">
 <p>
摩门理论上遵照多配偶的传统。
甚至柯南-道尔曾在20世纪初讽刺过他们。
在某一章作者专门讨论多配偶，但是对女生的反复无常的态度贯穿她的书整个情节。
她描述的女生大部分是柔弱和无法反抗男人的，就像她和她的姐姐，但是最终她的母亲成为家主，因为她的草药企业获得了成功。
</p>

 <p>
她难以与男朋友、父亲、别人、城市社会相处，甚至跟她自己。
为了让她的男朋友喜欢她，她想变得美丽，但是又看不起其他女生，因为她们想被男人喜欢，而且穿“轻浮”的衣服。
</p>

 <p>
她说这个伪善态度是来自于她的父亲。
他貌似实践别人仅信仰的传统，并且他和她的信仰不一样。
总的来说我能相信她，但是我见过我的外婆，她在很不一样的情况下出生和长大，也被类似的观念苦恼。
</p>

 <p>
我的外婆不是摩门，甚至不信基督教。
虽然晚年她变得更关注心灵事项，但是与“道德”和“贞洁”相关的宗教方面没使她感兴趣，她最关注的是来生。
然而，她在生活中遇到任何关于生理学方面的时候，一直很害羞和尴尬。
我从没见过她穿裙子，因为（虽然她没说清楚，但是很容易理解）女生专用的衣服就是好像辅助渣男侵犯女性，就是这样被设计的。
但是她也不赞成女生穿裤子，因为裤子是男生的衣服。
</p>

 <p>
我不知道她如何为自己解决这个问题，但是她问过我几次，在我的学校女生穿什么样的衣服，也一直感到不太满意。
</p>

 <p>
由于这个原因我从不考虑“女性的贞洁”是什么鬼。
</p>

 <p>
在书中几个地方作者说“你的服装不定义你的性格”。
我好几次听过女生把这句话当作一种启示，然而男生一出生就知道这个真相。
其实我专门花了一些精力选择在办公室给我优势的衣服，虽然这个优势很小。
（比如我一直不穿T恤。）
</p>

 <p>
我可以理解“我的衣服不适合这个环境，所以我没有权利留在这个社会”的感觉。
（也跟衣服无关，我本身没资格参加这个社会。）
我相信她，接受教育能帮人不那么感觉害羞。
</p>
</div>
</div>


 <div id="outline-container-%E8%BA%81%E9%83%81%E7%97%87%E5%92%8C%E5%8C%BB%E7%96%97%E5%BD%93%E6%9D%83%E6%B4%BE" class="outline-3">
 <h3 id="%E8%BA%81%E9%83%81%E7%97%87%E5%92%8C%E5%8C%BB%E7%96%97%E5%BD%93%E6%9D%83%E6%B4%BE"> <span class="section-number-3">1.6.</span>  <a href="#%E8%BA%81%E9%83%81%E7%97%87%E5%92%8C%E5%8C%BB%E7%96%97%E5%BD%93%E6%9D%83%E6%B4%BE">躁郁症和医疗当权派</a></h3>
 <div class="outline-text-3" id="text-%E8%BA%81%E9%83%81%E7%97%87%E5%92%8C%E5%8C%BB%E7%96%97%E5%BD%93%E6%9D%83%E6%B4%BE">
 <p>
她觉得她的爸爸患有躁郁症。
很有可能。
</p>

 <p>
但是躁郁症是一种遗传病，并且很多情况下不能被称为疾病，因为它不一定使患者虚弱。
阅读这本书的时候我真的有感觉她自己也患有躁郁症，她整个家庭相同。
</p>

 <p>
毕竟她真的像很多躁郁症患者一样具有天赋。
读者可以由她的精彩的，明丽的，雄辩的语言和写作风格，自己判断。
</p>

 <p>
她是成绩全优的学生，通过考试获得奖学金，尽管牙疼。
虽然她没有上过一天中学，但是却成功地进入大学。
感觉是她拥有天才基因。
因为她的基因影响那么大，我有点怀疑她的故事。
</p>

 <p>
我不责怪她说谎。
我要说我们的基因会很大地影响我们的观点。
</p>

 <p>
她那么不称赞她爸爸的兽性的顽固和执拗，但这种本能却帮她进入大学、在英国留学，并终于成为举世闻名的大学里毕业的博士。
</p>

 <p>
书籍里有很多关于她的家庭忽略现代医疗并依靠草药和传统药的故事。
因为大部分这种方式都没用，我们可以承认人比我们平时想象得更壮硕。
他们遇到撞车、从高空坠落、活烧、受到脑袋损害，但是还是幸存。
</p>

 <p>
从另一个角度来说，我不能说她的爸爸所有关于医疗当权派的话都是错的。
普通行医充斥诈骗、过量开药、和不负责任的行为。
但是草药行医一点都不能替代普通行医，所以草药行业让她的家庭发财的事情令我对人类未来失望。
</p>

 <p>
我只能推荐我的读者们用脑子思考。
</p>
</div>
</div>

 <div id="outline-container-%E9%A3%8E%E5%B0%9A%E4%B8%8D%E5%90%8C" class="outline-3">
 <h3 id="%E9%A3%8E%E5%B0%9A%E4%B8%8D%E5%90%8C"> <span class="section-number-3">1.7.</span>  <a href="#%E9%A3%8E%E5%B0%9A%E4%B8%8D%E5%90%8C">风尚不同</a></h3>
 <div class="outline-text-3" id="text-%E9%A3%8E%E5%B0%9A%E4%B8%8D%E5%90%8C">
 <p>
有时候我们对别人做出的行为是难以想像的傻。
甚至伤害我们自己的未来。
</p>

 <p>
最初书中有她的家庭准备世界末日的场景，并且书的末尾他们使用他们的财富扩展他们的别墅，构建一座真的教堂，终于把他们的家变成城堡一样。
</p>

 <p>
这个事情是不是傻？
有可能。
</p>

 <p>
但是最近我耗了很长时间排除我的手机里的所有OPPO云相关的程序。
为什么？
因为云到底就是陌生人的电脑。
你能不能信任他？
有可能。
直至你成为有名的政治家或者商人，并且其公司的某员工敲诈勒索你，用你的裸体照片。
</p>

 <p>
无条件的向“利维坦”投降你的所有权限，是很绝望的。
</p>

 <p>
别搞错，他的爸爸那么重视的“自给自足”，也就是我们现在所说的“保守主义”，实际上既不是老，又不是保守。
人类从不独立生活，而一直是集体物种。
她的爸爸能忽略集体，不仅包括国家集体，也包括农村集体，这种能力是一种未来的预兆而不是过去的残余。
不是所有的未来，也不是整个未来，但是是未来的一部分。
</p>

 <p>
（未来不将只有独立性，也会有集体：请回忆COVID的措施。）
</p>

 <p>
这个搞笑的“自给自足”，我们现在那么看扁，那么算其落后，实际上依赖很多在21世纪的科技进步带给我们的方便性。
我再说，她的爸爸为个体户不断购买重机械。
我的外公只能支付得起一台旋转碎土器。
</p>

 <p>
我可以理解为：“除了你自己，没人会解救你”。
</p>
</div>
</div>

 <div id="outline-container-%E7%94%9F%E5%AD%A9%E5%AD%90" class="outline-3">
 <h3 id="%E7%94%9F%E5%AD%A9%E5%AD%90"> <span class="section-number-3">1.8.</span>  <a href="#%E7%94%9F%E5%AD%A9%E5%AD%90">生孩子</a></h3>
 <div class="outline-text-3" id="text-%E7%94%9F%E5%AD%A9%E5%AD%90">
 <p>
在现代生活，改良主义和保守主义再对抗，但是它们都不能回答：如果孩子不能继承父母的世界，怎么办？
</p>

 <p>
他们不会，因为父母还活着。
</p>

 <p>
英国最近给我这个印象：老人的国家。
</p>

 <p>
几千年存在的现象已经不存在：孩子们在象征性战斗中击败他们的父母，然后继承他们的世界。
</p>

 <p>
这本书很好的介绍这个故事。
她和她的爸爸发生矛盾的最根本原因就是她得到博士的时候她的爸爸还是活着。
这是大部分人类历史当中难以想象的情况。
</p>

 <p>
我们已经老了，但是我们的父母还是存在。
现在人类一辈子变得很长，甚至可以忽略政府的公费医疗。
</p>

 <p>
她的父母（以及她的其他亲属）都有很多孩子。
她有几个姨，可以寻求帮助。
她的某些兄弟姐妹一部分抛弃她并支持家庭，另一部分支持她。
</p>

 <p>
实际上这本书中，我认为她有很多兄弟姐妹可以解放她一些。
她的独裁主义的家庭根本没有时间压迫所有的孩子，自由悄悄穿过他们的控制。
很多次我见过相反的，尤其是我的同学们之中。
据说开明的家庭过强地控制孩子，孩子根本没办法长大。
这本书显示：孩子们其实能自己长大，只要不太误导他们。
</p>
</div>
</div>


 <div id="outline-container-%E5%89%8D%E5%90%8E%E7%9F%9B%E7%9B%BE" class="outline-3">
 <h3 id="%E5%89%8D%E5%90%8E%E7%9F%9B%E7%9B%BE"> <span class="section-number-3">1.9.</span>  <a href="#%E5%89%8D%E5%90%8E%E7%9F%9B%E7%9B%BE">前后矛盾</a></h3>
 <div class="outline-text-3" id="text-%E5%89%8D%E5%90%8E%E7%9F%9B%E7%9B%BE">
 <p>
这本书真的跟政治有关。
</p>

 <p>
能看到美国的始终存在的NIMBY红脖子跟城市居民之中的矛盾。
</p>

 <p>
我承认，这本书写的是很令人信服的，我可以理解她的道理，但是为了映射好整个场景最好也听到乙方的观点。
</p>

 <p>
她责怪她的哥哥，但是在大部分情况下他能控制自己。
尽管我对那只狗感到很可惜。
别看错我的话，他一定需要帮助，无知的农民不是成为摆布性虐待者的借口。
</p>

 <p>
但是有时候她写的事情就像“信条”一样，比如在英国接种疫苗。
就像给她的爸爸证明她现在信另一个教，不是她爸爸的。
其他的例子是：摩门圣林的事件。
她写的是她在其中没有任何感觉。
但是她信教很长时间了，还写了关于摩门宗教的论文，而且圣林文化对摩门影响也很大。
怎么可能没有任何感觉？
她讲的情况更貌似更换信仰，而不是排除它。
也是一种很美国的事情。
</p>
</div>
</div>

 <div id="outline-container-%E9%A3%8E%E6%A0%BC%E5%92%8C%E7%BB%93%E8%AE%BA" class="outline-3">
 <h3 id="%E9%A3%8E%E6%A0%BC%E5%92%8C%E7%BB%93%E8%AE%BA"> <span class="section-number-3">1.10.</span>  <a href="#%E9%A3%8E%E6%A0%BC%E5%92%8C%E7%BB%93%E8%AE%BA">风格和结论</a></h3>
 <div class="outline-text-3" id="text-%E9%A3%8E%E6%A0%BC%E5%92%8C%E7%BB%93%E8%AE%BA">
 <p>
在本次很混乱和反复无常的评论末尾，我要分析这本书的语言风格。
它本身是完美的 – 清晰，色彩丰富的、流利的，穿过脑筋为一流仙馐。
</p>

 <p>
人物形象都是很鲜明、可信的、容易想象和可视化。
她真的有天赋，我肯定会喜欢她的其它作品。
</p>

 <p>
这本书帮助我学习很多关于采药、农业、构建、户外、和畜牧工作相关的术语。
</p>

 <p>
能不能给大家推荐这本书？
能的。
某种意义上这本书是关于在新世界（现代时代）成长的故事，有点像“哈利·波特”，貌似英文传统的“Bildungsroman”。
</p>
</div>
</div>
</section> <section id="outline-container-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F" class="outline-2"> <h2 id="%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F"> <span class="section-number-2">2.</span>  <a href="#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">联系方式</a></h2>
 <div class="outline-text-2" id="text-%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F">
 <p>
别忘记点赞。
如果你喜欢我的工作，赞赏。
</p>

 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
 <dt>WordPress</dt> <dd> <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-06-25_Reading-Educated-by-Tara-Westover.chinese.d/index.html"/>
  <id>https://lockywolf.net/2024-06-25_Reading-Educated-by-Tara-Westover.chinese.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Review for &quot;Educated&quot; by Tara Westover.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Review for "Educated" by Tara Westover.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a>
 <ul> <li> <a href="#Background">1.1. Background</a></li>
 <li> <a href="#Synopsis">1.2. Synopsis</a></li>
 <li> <a href="#Money">1.3. Money</a></li>
 <li> <a href="#Control">1.4. Control</a></li>
 <li> <a href="#Chastity">1.5. Chastity</a></li>
 <li> <a href="#Bipolar-disorder-and-Medical-Establishment">1.6. Bipolar disorder and Medical Establishment</a></li>
 <li> <a href="#Mores-of-the-age">1.7. Mores of the age</a></li>
 <li> <a href="#Having-children">1.8. Having children</a></li>
 <li> <a href="#Inconsistencies">1.9. Inconsistencies</a></li>
 <li> <a href="#Writing-style-and-conclusion">1.10. Writing style and conclusion</a></li>
</ul></li>
 <li> <a href="#Contact">2. Contact</a></li>
</ul></div>
</nav> <figure id="org900d80a"> <img src="Educated_(Tara_Westover).png" alt="Educated_(Tara_Westover).png"></img></figure> <p>
Due to various technical difficulties I had to write this essay twice.
This is the second version.
</p>

 <p>

</p>


 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
</div>

 <div id="outline-container-Background" class="outline-3">
 <h3 id="Background"> <span class="section-number-3">1.1.</span>  <a href="#Background">Background</a></h3>
 <div class="outline-text-3" id="text-Background">
 <p>
This book has two aspects that may render it interesting to the general public: describing an experience of living with a bipolar disorder, and a 21-th century version of a Bildungsroman.
</p>

 <p>
In some sense it is a book about a girl getting far out of her initial social stratum by getting a good education level, and reflecting on her own experience.
</p>

 <p>
On the other hand this is a book about spirits deeper than conscious (and older than the trees) dominating our brain.
</p>
</div>
</div>

 <div id="outline-container-Synopsis" class="outline-3">
 <h3 id="Synopsis"> <span class="section-number-3">1.2.</span>  <a href="#Synopsis">Synopsis</a></h3>
 <div class="outline-text-3" id="text-Synopsis">
 <p>
The plot is happening in our time, roughly since 1990 until 2017.
A girl is growing in rural Idaho in the USA.
Her family is Mormon, as well as everyone in the nearest town, therefore she has a lot of brothers and sisters.
</p>

 <p>
They are religious, hard-working, and on the surface distrustful of the government.
Therefore she, as well as everyone in her family, is not allowed to go to a school or to a doctor.
</p>

 <p>
This rule is not rigourously enforced however.
Or should I say, it is not enforced systematically.
When some members of the family decide to leave, they end up doing that.
Her brothers eventually do, just as she does.
</p>

 <p>
And the more education they are getting, the more distanced they become from the core of the family, eventually ending up in something I would call a "divorce", if people could divorce their relatives.
That is, they end up never almost talking after she gets her PhD in history.
And although she wants a reconciliation, the issue is not resolved by the end of the book.
</p>

 <p>
Throughout the rest of this review I will try to express my feelings about different phenomena depicted (with great colour) throughout this book, and how they relate to either my life, or lives of people around me.
</p>

 <p>
It is noteworthy that this book is perhaps the first one I have read about people roughly my age, so I should have quite a lot to reflect upon, and indeed I do.
</p>
</div>
</div>

 <div id="outline-container-Money" class="outline-3">
 <h3 id="Money"> <span class="section-number-3">1.3.</span>  <a href="#Money">Money</a></h3>
 <div class="outline-text-3" id="text-Money">
 <p>
The thought that is chasing me all over this book is just how much different from my own experience is the attitude to money they have in America.
</p>

 <p>
It is true that one's monetary worth is not exactly proportional to how smart or how educated one is, but in this book this inconsistency is just outright baffling.
</p>

 <p>
I should say it in other words: in Russia being honestly hardworking almost never brings you money and success.
This is not to say that Russia is totally anti-meritocratic, Russia has both a meritocratic and a corrupt way of attaining wealth and power.
But in Russia if you are rich, you are either a social engineer, skilful in climbing the social ladder by fair and unfair means, or you are a well-educated, highly proficient "engineer" (not necessarily a scientific engineer) that the socially-aware people use as a tool in their cunning schemes.
</p>

 <p>
In the book the opposite is happening.
No matter how high in the education ladder the protagonist is climbing (and eventually becoming self-sustainable), her initially poor, ignorant, and mis-informed family ends up more affluent and powerful than her.
Is this the American Dream coming true?
</p>

 <p>
Seriously, I started reading the book with the feeling that this is going to be a "break away from poverty with education" type of book that we have so plentiful in Europe.
But this is not the case, these people, despite their provincial culture, are not poor at all.
Her father is buying industrial heavy machinery: forklifts, harrows, man-baskets.
She is driving a car since 16 or even 14.
</p>

 <p>
She is working in a supermarket, and for her father in his business, and he is paying her (!) enough money to pay for that extremely expensive American education.
Gees, her father, the one she calls a tyrant and an eccentric is actually paying her.
An unimaginable thing in Russia, where in patriarchal families the children are obliged to give their salaries to the head of the family.
</p>
</div>
</div>

 <div id="outline-container-Control" class="outline-3">
 <h3 id="Control"> <span class="section-number-3">1.4.</span>  <a href="#Control">Control</a></h3>
 <div class="outline-text-3" id="text-Control">
 <p>
Admittedly was not writing the book about money.
For her the book was really about emotions and about control.
</p>

 <p>
A very American thing, even though filial piety and family domination very well exist in Russia, Europe, and China.
But it is really the Americans who I have seen contemplating about this more than anyone else.
I have an acquaintance in China, a former American, who is feeling much freer in the relatively restrictive Chinese society than back in America, because he is gay.
And despite all the American march towards tolerance and acceptance he feels himself better here, where nobody really gives even a little shit about who he sleeps with.
</p>

 <p>
In Russia there are quite a lot of dominating patriarchal families with tyrant fathers/mothers who terrorise their children, but "getting out into the city" is usually the ultimate solution.
People very seldom go back to the villages, and remote control via shame, guilt, does not really work in Russia.
Russia is, after all, really about violence more than anything else, and it is hard to project violence over the distance.
</p>

 <p>
Church and religion play a big role in the story.
I still have not fully understood the attitude of the author towards the Church, but by the objective criteria, the Church is what has shown her the way to freedom.
This is very painful to read for a Russian, for whom the Church is another way of human oppression.
The devout Orthodox attain Church responsibilities  <span class="underline">in addition</span> to the filial ones, not as a substitute.
For her the Church was the way out, the method whereby she learns about the outer world, about the university, while singing in the choir.
The Church helps her with a sick tooth, the Church helps her with a grant application.
</p>

 <p>
Her father tries to control her via the money needed for her tuition, but eventually fails.
</p>
</div>
</div>

 <div id="outline-container-Chastity" class="outline-3">
 <h3 id="Chastity"> <span class="section-number-3">1.5.</span>  <a href="#Chastity">Chastity</a></h3>
 <div class="outline-text-3" id="text-Chastity">
 <p>
Mormons officially recognise polygamy.
Arthur Conan Doyle satirised them for that even before the 20th century.
There is just one chapter where the author discusses polygamy, but the inconsistencies in the attitude to women and her in particular is weaved throughout the book.
She is depicting women who are weak and unable to resist men, such as herself and her elder brother, but at the same time it is her mother who ends up ruling in the family when her herbalist business goes up.
</p>

 <p>
She struggles with her relationship with men, with other women, with her father, with "city life", and even with herself.
She wants to look good so that her boyfriend would like her, but she also looks down at other women who want to be admired by men, and dress "frivolously".
</p>

 <p>
She lays the burden of this hypocrisy on her father, who seemingly "practised what others just believed", and I would have agreed to her if I didn't know my relatives, who, obviously, grew in unrelated circumstances and conditions.
They are neither Mormon, nor even a christian.
Nevertheless, they are very shy and easily embarrassed when confronted with the physical part of the world.
Once I heard an opinion that skirts are intentionally designed in such a way that would make it easier for men to assault women.
On the other hand on the other hand I remeber hearing that trousers are improper for women because of being men's clothing.
I have no idea how they live in a real world, but I remember being asked me several times about how girls in my school had dressed, and being never quite satisfied with my answer.
</p>

 <p>
Not exactly related to that, but I spotted a few things that time and again appear in the women's writing trying to reflect on the differences between men and women.
</p>

 <p>
One more example is her saying that "you are not defined by your clothing".
I have heard that many times from women as a revelation (Zhu JingNing is writing about this in her book about making business female-way), even though for men this has never been a secret.
Actually spending conscious effort choosing clothing for the very small advantage it might be giving in a working environment might be worth it.
</p>

 <p>
I do understand what she is writing about when she is speaking about "not having a right to be here", but I should really speak about this in the next section.
</p>
</div>
</div>

 <div id="outline-container-Bipolar-disorder-and-Medical-Establishment" class="outline-3">
 <h3 id="Bipolar-disorder-and-Medical-Establishment"> <span class="section-number-3">1.6.</span>  <a href="#Bipolar-disorder-and-Medical-Establishment">Bipolar disorder and Medical Establishment</a></h3>
 <div class="outline-text-3" id="text-Bipolar-disorder-and-Medical-Establishment">
 <p>
She thinks that her father has a bipolar disorder.
</p>

 <p>
This might very well be true.
</p>

 <p>
However, bipolar disorder is a hereditary disease, and in fact cannot really be called a disease, because it is not necessarily debilitating.
Throughout reading this book I really had a feeling that she has a bipolar disorder herself, just as all of her family.
</p>

 <p>
After all, she is talented.
I should be writing this in a different section, but the book is written in a wonderful, colourful and vivid language.
She managed to study on all As, even when having a sick tooth and prepare herself for a university while never even attending a school.
She is a genetic genius.
And while this all are great traits, it somehow discounts her accounts of her life.
</p>

 <p>
No, I am not saying that she is lying.
I am saying that we are all influenced by our genes more than we are willing to admit.
</p>

 <p>
The same animalistic stubborness and headstrongness that she is so strongly disapproving in her father is what actually let her enter a university without any school education, and what let her other brother become a Purdue PhD.
</p>

 <p>
The book has a lot of stories about their family disregarding healthcare and relying on improvised treatment methods.
And since most of them are probably useless, we just have to admit that humans are way-way more durable than we can imagine.
They are getting in car crashes, falling from heights, getting burned alive, have brain injuries and holes in theirs skulls, and still survive.
</p>

 <p>
I cannot, on the other hand, say that everything her father is saying about "medical establishment" is wrong.
Conventional medicine is full of fraud, overprescription, and plain neglect on the side of the medical providers.
It is true that their herbalist approach is in no way a substitute, and the fact that it is it that made her family rich at the end is making me lose my hope in humanity.
</p>

 <p>
Use your own brain, that is the only thing I can recommend to my readers.
</p>
</div>
</div>

 <div id="outline-container-Mores-of-the-age" class="outline-3">
 <h3 id="Mores-of-the-age"> <span class="section-number-3">1.7.</span>  <a href="#Mores-of-the-age">Mores of the age</a></h3>
 <div class="outline-text-3" id="text-Mores-of-the-age">
 <p>
We often do things that are unimaginably stupid to other people, and even to ourselves later in life.
</p>

 <p>
One of the first chapters of the book contains a description of her father preparing for the End of Days, and one of the latest chapters contains a description of the family using their substantive wealth to build their own chapel, and generally extend their 4-bedroom cottage into a well-defended castle.
</p>

 <p>
Is it a stupid thing to do?
Maybe it is.
</p>

 <p>
But I am writing these lines while the code for my own Android flavour is being compiled on my laptop for my "new" phone.
I had bought this phone about New Year, and I still haven't managed to migrate to it.
Why?
Because it very heavily relies on the "Cloud" "AI" services "provided" by the OPPO company.
Supposedly for free.
But nothing in this world is free.
A "cloud" is just another man's computer.
Can you trust this man?
Maybe you actually can.
Until you are a famous politician and a businessman, and some of the employee of that company is sending you an email with your naked photos and demanding a ransome.
</p>

 <p>
But this feeling of being left at the mercy of the "Leviathan" is just horrible.
</p>

 <p>
Make no mistake, this "self-reliance" that her father is vehemently defending, and which is nowadays called "conservatism", is in reality neither old nor conservative.
People have never lived autonomous lives, people have always been collective species.
Now her father being able to say "No" to the collective, and not just the national collective, but even to the rural community is a harbinger of the future, not the past.
Not all of the future, just a part of the future, and maybe even not the brightest part of the future.
But some of it.
</p>

 <p>
(Make no mistake, future has collectivism in it too, just remember how much of the COVID isolation has been imposed onto us in 2021.)
</p>

 <p>
And this self-reliance that looks so hilarious and backwards to use now, in fact relies on so many things that the progress has given to us in the 20th century.
I have to repeat myself, her father could afford buying heavy machinery by himself, as an individual entrepreneur.
My grandpa only managed to buy a single rototiller by the end of his life.
</p>

 <p>
And although I, myself, resemble her much more than her father, and I understand why she loathes that stronghead and limited world of the father, I can't stop thinking that there is something indomitable in that independent attitude that "nothing can save you except yourself".
</p>
</div>
</div>

 <div id="outline-container-Having-children" class="outline-3">
 <h3 id="Having-children"> <span class="section-number-3">1.8.</span>  <a href="#Having-children">Having children</a></h3>
 <div class="outline-text-3" id="text-Having-children">
 <p>
There is one more thing I need to write into this review, and perhaps into this section, for the lack of a better one.
</p>

 <p>
Modern life and this book is largely about the fight of conservatism and progressivism, has lead to the reality in which children are unable to properly inherit the things that their parents owned.
</p>

 <p>
They can't do that because their parents are still alive.
</p>

 <p>
Britain has left this impression in particular on me – a country of old people.
</p>

 <p>
So what used to be natural for people for thousands of years, of children defeating their parents in a symbolic combat, and inheriting the world after them, is not here anymore.
</p>

 <p>
This book gives good account of it.
The real, basic, fundamental issue that she had with her father was that her father was still alive when she got her PhD, a thing hardly imaginable during most of the human history.
</p>

 <p>
We are already old, but our parents are still alive.
</p>

 <p>
One of the signs of the abnormality of the world we are living in is the fact that although sh managed to defeat her father, by all accounts, by earning a PhD, and by making money on her own, and by refusing his control, she still have not managed to bear the fruit of her victory.
People live long now.
</p>

 <p>
And all that despite the disregard for government's healthcare that her family exhibited.
</p>

 <p>
But her parents had many children (and most of her relatives).
She had many aunts, to whom she could reach in the search of help, she had brothers and sisters, some of which abandoned her, and some, instead, sided with her in a family conflict.
</p>

 <p>
This book made me thinks that having many brothers and sisters was what actually liberated her from a lot of tyranny from her family.
Her family just did not have enough time and attention to oppress many kids, so some freedom could slip through the fingers.
I have seen the opposite too many a time, even among my classmates, who, even though they lived with "progressive" and "liberal" parents, were so dominated by them that they never grew up.
As this book shows, manage to grow up by themselves, given that you don't fuck them up too much.
</p>
</div>
</div>

 <div id="outline-container-Inconsistencies" class="outline-3">
 <h3 id="Inconsistencies"> <span class="section-number-3">1.9.</span>  <a href="#Inconsistencies">Inconsistencies</a></h3>
 <div class="outline-text-3" id="text-Inconsistencies">
 <p>
Although this might not be evident, this book is political.
</p>

 <p>
The everlasting American struggle between the NIMBY rednecks and socialist city-dwellers is visible like in few other books.
</p>

 <p>
I could not deny that the book is written in a compelling manner, and I can reflect on what she is saying.
</p>

 <p>
But I have not heard the other side of the story, from her other relatives.
She accuses her brother of something, but after all he manages to contain himself in almost all circumstances.
Poor dog though.
Do not get me wrong, he probably does need help, and being a rural Mormon is not an excuse to be a manipulative abuser.
</p>

 <p>
But sometimes she just writes things that almost seem like the "Faith creed", for example getting vaccinated in England.
As if to prove to herself that she now believes in a different faith, different to that of her father.
Or saying that she didn't feel anything in the Sacred Groove.
After all, she has been a Mormon for a long time, and that Groove is significant as a cultural place too.
Seems quite like changing a faith rather than becoming faith-free, which, again, is a very American thing to do.
</p>
</div>
</div>

 <div id="outline-container-Writing-style-and-conclusion" class="outline-3">
 <h3 id="Writing-style-and-conclusion"> <span class="section-number-3">1.10.</span>  <a href="#Writing-style-and-conclusion">Writing style and conclusion</a></h3>
 <div class="outline-text-3" id="text-Writing-style-and-conclusion">
 <p>
At the very end of this chaotic and inconsistent essay I want to write about the book's qualities as a piece of English literature.
The book is great – vivid, colourful, very smooth, flowing into the brain like a stream of ambrosia.
</p>

 <p>
The images of people she is depicting are convex, believable, easy to imagine and visualise.
She is very talented and I would probably really enjoy reading her other works too.
</p>


 <p>
This book made me learn a lot of names for herbs, agricultural and construction tools, nature, and animals.
</p>

 <p>
Would I recommend reading this book to anyone?
Yes, I will.
In some sense it is a good book about growing up in a "new world".
</p>

 <p>
It is a little bit like "Harry Potter".
Not too much, but it is certainly within that "Bildungsroman" that became so iconic in the British culture.
</p>
</div>
</div>
</section> <section id="outline-container-Contact" class="outline-2"> <h2 id="Contact"> <span class="section-number-2">2.</span>  <a href="#Contact">Contact</a></h2>
 <div class="outline-text-2" id="text-Contact">
 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
 <dt>WordPress</dt> <dd> <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-06-25_Reading-Educated-by-Tara-Westover.english.d/index.html"/>
  <id>https://lockywolf.net/2024-06-25_Reading-Educated-by-Tara-Westover.english.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>&quot;Managerial Revolution&quot; by James Burnham, recap-and-review.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">"Managerial Revolution" by James Burnham, recap-and-review.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Thoughts">1. Thoughts</a>
 <ul> <li> <a href="#What-is-Burnham-studying?-What-has-incited-in-him-the-desire-to-analyse-Managerialism?">1.1. What is Burnham studying? What has incited in him the desire to analyse Managerialism?</a></li>
 <li> <a href="#The-Theory-of-Social-Formation-Transition">1.2. The Theory of Social Formation Transition</a></li>
 <li> <a href="#His-predictions">1.3. His predictions</a>
 <ul> <li> <a href="#Managers-will-be-more-efficient-than-owners-in-managing-production.">1.3.1. Managers will be more efficient than owners in managing production.</a></li>
 <li> <a href="#The-government-will-own-all-of-the-economy.">1.3.2. The government will own all of the economy.</a></li>
 <li> <a href="#the-countries-of-the-world-will-coalesce-into-three-major-supra-states:-Europa,-America,-and-Asia.">1.3.3. The countries of the world will coalesce into three major supra-states: Europa, America, and Asia.</a></li>
 <li> <a href="#Russia-will-eventually-split-into-the-European-and-the-Asian-parts.">1.3.4. Russia will eventually split into the European and the Asian parts.</a></li>
 <li> <a href="#Ideologies,-especially-technocracy-and-newdealism-will-serve-the-bureaucrats.">1.3.5. Ideologies, especially technocracy and newdealism will serve the bureaucrats.</a></li>
 <li> <a href="#European-Union-will-emerge.">1.3.6. European Union will emerge.</a></li>
</ul></li>
 <li> <a href="#His-mistakes-and-successes">1.4. His mistakes and successes</a>
 <ul> <li> <a href="#Well,-80-years-have-passed-since.">1.4.1. Well, 80 years have passed since.</a></li>
 <li> <a href="#State-ownership-does-not-manage-to-overcompete-private-ownership-in-making-industry-work.">1.4.2. State ownership does not manage to overcompete private ownership in making industry work.</a></li>
 <li> <a href="#Ideology-of-liberty-and-freedom-seems-to,-indeed,-fail.">1.4.3. Ideology of liberty and freedom seems to, indeed, fail.</a></li>
 <li> <a href="#Socialist-states-do-fight-with-each-other.">1.4.4. Socialist states do fight with each other.</a></li>
 <li> <a href="#There-seems-to-be-a-balance-between-capitalism-and-socialism-so-far,-in-the-parliament.">1.4.5. There seems to be a balance between capitalism and socialism so far, in the parliament.</a></li>
 <li> <a href="#Unemployment-is-not-that-huge.">1.4.6. Unemployment is not that huge.</a></li>
 <li> <a href="#Capitalists-seem-to-be-still-able-to-invest-in-a-lot-of-stuff,-but-are-strongly-controlled-by-the-government.">1.4.7. Capitalists seem to be still able to invest in a lot of stuff, but are strongly controlled by the government.</a></li>
 <li> <a href="#Managers-actually-want-and-spend-great-effort-to-become-capitalists.">1.4.8. Managers actually want and spend great effort to become capitalists.</a></li>
</ul></li>
 <li> <a href="#Afterword">1.5. Afterword</a></li>
</ul></li>
 <li> <a href="#Contacts">2. Contacts</a></li>
</ul></div>
</nav> <figure id="org3273558"> <img src="./01_burnham.webp" alt="01_burnham.webp"></img></figure> <p>
I have read "Managerial Revolution" by James Burnham, as an entry into the political philosophy of Mencius Moldbug.
</p>

 <p>
The book is interesting, and I decided to write a review on it, just as I do with many interesting books.
</p>

 <p>
It speaks about quite a few things that are observable with a naked eye in our everyday life, however most popular political discussions, especially online, seem to be either unaware of Burnham's theory, and also do not possess the vocabulary to describe the world with a similar clarity.
</p>

 <p>

</p>

 <section id="outline-container-Thoughts" class="outline-2"> <h2 id="Thoughts"> <span class="section-number-2">1.</span>  <a href="#Thoughts">Thoughts</a></h2>
 <div class="outline-text-2" id="text-Thoughts">
</div>

 <div id="outline-container-What-is-Burnham-studying?-What-has-incited-in-him-the-desire-to-analyse-Managerialism?" class="outline-3">
 <h3 id="What-is-Burnham-studying?-What-has-incited-in-him-the-desire-to-analyse-Managerialism?"> <span class="section-number-3">1.1.</span>  <a href="#What-is-Burnham-studying?-What-has-incited-in-him-the-desire-to-analyse-Managerialism?">What is Burnham studying? What has incited in him the desire to analyse Managerialism?</a></h3>
 <div class="outline-text-3" id="text-What-is-Burnham-studying?-What-has-incited-in-him-the-desire-to-analyse-Managerialism?">
 <p>
The year is 1941, the Second World War is already raging on for two years, so long enough to understand that something is different in the world compared to the world of the past.
</p>

 <p>
What is different?
</p>

 <p>
The World War itself is not really new, there has already been one.
</p>

 <p>
The coming of mass ideologies making people seemingly insane is also not new.
This is especially true about Marxism, which has been around for many years already.
</p>

 <p>
Burham is well aware of that, because he had been a prominent American Marxist for many years before turning a conservative.
</p>

 <p>
Well, the most influencing things for people are actually things that are close to them, not far.
The thing close to Burnham is the New Deal.
</p>

 <p>
The New Deal is a set of government bodies in the U.S.A., which made the government the largest employer in the country, far surpassing any private one.
These bodies were employing people for a fixed wage on simple straightforward tasks, mostly building roads, for a wage which was just enough to survive a month during the Great Depression.
</p>

 <p>
Why is the American Government, seemingly so completely controlled by the magnates, organising these public works?
Because people are dying form starvation.
Adult, healthy, hardworking, people with protestant working ethic are struggling to find a job that would feed even them alone, not even their family.
</p>

 <p>
The interesting thing is that American Government is not trying to conscript them into the army and send to the front lines somewhere out there in order to conquer some land.
It is also not helping them establish a peasant swath of land.
It is giving them low-complexity industrial jobs.
</p>

 <p>
Why exactly American Government decided to do so it beyond the scope of this book, but for Burnham all those things are a symptom of something that has shifted in the very bottom of the social construction, the base, the foundation.
Public works, perhaps, just as government employment, are nothing new, but the new things are: the scale, the efficiency, the striking similarity to the social structure of the Nazi Germany and the Soviet Union, which are both still alive and kicking at the time of writing the book.
Moreover, the book was out before the Hitler's invasion of the Soviet Union, so they are not even fighting each other, against all odds.
</p>

 <p>
Burnham is shocked, and not even once, but twice.
The first shock, the failure of the American Model, had shocked him deeply enough to become a Marxist.
Here I am deliberately not saying "a Socialist", because "Socialism" has sort of a weird meaning in this book, which I will touch later.
But "Marxist", in the sense of taking Marx' words at face value, in the sense of "acting in the interest of the proletarian masses" is still correct.
</p>

 <p>
But every true Marxist eventually has to confront the grim reality which life in the Soviet Union has turned into by the 1930s.
(This is when Burnham is shocked the second time.)
For Burnham as for a true believer this was devastating, and just as devastating must have been the New Deal, which essentially mimicked the Soviet Practices.
</p>

 <p>
I think this is where the second part of the title comes from.
It could have just as well been "what the fuck is going on?".
</p>

 <p>
So Burnham is starting to investigate the process of totalitarianisation of the formerly freest nation in the World, and soon finds a very plausible excuse: the Americans have done nothing wrong, is is the very  <span class="underline">formation</span> of the world that is changing.
The world is not capitalist any more (which also means that his former Marxist ideas of destroying capitalism don't work any more), capitalism has been falling by itself for a while, and will undoubtedly finish falling very soon.
What is noteworthy is that no deliberate human intervention was needed to implement its fall, no actual bloody revolution or even a coup.
</p>

 <p>
This is very important, because this indicates a stance which is one of the two most fundamental stances in any social scholarship: "history obeys objective laws, and evolves according to principles similar to scientific", sometimes called "deterministic".
The other stance is that "history has no laws, and everything is in the hands of Man", which can be called, perhaps, Popperian, in the honour of Karl Popper, who was a vehement opponent of "historicism".
</p>

 <p>
Both stances are just stances, and I am finding it unlikely to be able to establish which one is true, since we are unable to experiment at such a scale.
</p>

 <p>
But let us see what exactly Burnham suggests as an objective course of evolution.
</p>
</div>
</div>

 <div id="outline-container-The-Theory-of-Social-Formation-Transition" class="outline-3">
 <h3 id="The-Theory-of-Social-Formation-Transition"> <span class="section-number-3">1.2.</span>  <a href="#The-Theory-of-Social-Formation-Transition">The Theory of Social Formation Transition</a></h3>
 <div class="outline-text-3" id="text-The-Theory-of-Social-Formation-Transition">
 <p>
Okay, so Burnham believes, and he is a very Marxist in this belief, that societies undergo an evolution, moving from a stage to a stage, and in each of those stages there is a "ruling class", which defines and shapes this society.
</p>

 <p>
For him, the objectively observable formations are "feudalism", "capitalism", and "managerialism".
</p>

 <p>
It is curious that he rejects "socialism", in his specific meaning of the word (meaning a classless and egalitarian society), as infeasible, although he mentions that "broad masses hate all kinds of ruling class", and acknowledges that there is some energy stored in the masses, which, for example, Lenin managed to exploit.
But time and again he says that the end and the means almost never follow one from the other, and in fact intentional social transformations end up obtaining a result completely opposite to the planned one.
</p>

 <p>
For me it is interesting that he mentions neither a prehistoric society (okay, which is sort of expected), not (which is more interesting) an antiquity, which Lenin called the "slave-owner society".
But for Burnham the antiquity and the feudalism are more or less the same thing.
And he spends a great deal of work explaining how feudalism transitioned into capitalism, trying to distil from scattered examples an overall theory of social transition.
</p>

 <p>
For him the ruling class is the class which has preferential access to the means of production.
In feudalism this is the nobility, and they control the peasants and the land, which are the key to wealth and power in the medieval time.
The capitalists are present in the medieval time too, but they barely constitute 1% of the economy.
Nevertheless, they have "some" access to the means of production, which can be called a "base", from which they, when the social conditions become favourable, grow to be the dominant social class.
</p>

 <p>
So why would capitalism give way to the next social formation, and what will be that social formation?
</p>

 <p>
He calls this new social formation "Managerial Society", of which the ruling class would be "managers".
But I would probably be more accurate nowadays, if I just called this formation "socialism", and the ruling class "bureaucrats".
Burnham would disagreee, he would object, and he even spends some effort in the book trying to distinguish between the managers and the bureaucrats, but I refuse to give him this excuse.
I will say that "managerialism" has been built into Marxism from the very start, that "classless society" has never been anything more than a propagandist meme, and that the "left" who have split from the Stalinists to become "social democrats" in the West were in no way more capitalist than Stalin, they just wanted to attain the managerial society via covert means rather than via the overt ones.
</p>

 <p>
The bureaucrats exist both in the government, and in private firms, but these two groups are almost indistinguishable in real life by the manner of thinking or acting.
</p>

 <p>
What is the main causes and symptoms for the change from a capitalist society to a socialist one?
For him, the main symptom is unemployment, and hence inability to fully utilise all of the productive forces in a society.
And that is in spite of having huge underplayed sums of money in the bank accounts of large firms.
And when a society is unable to fully utilise its productive forces it has a high likelihood to stop investing into the Armed Forces, which means that it will start losing the international competition.
It will have to either adapt or be conquered.
</p>

 <p>
The secondary symptom is the fact that liberal (capitalist) economies stopped being able to raise people to war.
Apparently, voluntary military service failed both in Britain, and in the USA during the World War II, and they resorted to conscription.
</p>

 <p>
The process of turning into a socialist country will consist of three steps:
</p>

 <ol class="org-ol"> <li>Getting rid of capitalists</li>
 <li>Brainwashing the masses</li>
 <li>Conquering neighbours</li>
</ol> <p>
The end result can be measured by looking at the embodiment of the sovereignty in a country.
</p>

 <ol class="org-ol"> <li>The feudal society will have most of the power in the Upper Chamber of the Parliament.</li>
 <li>The capitalist society will have most of the power in the Lower Chamber.</li>
 <li>The socialist society will have most of the power in the Government.</li>
</ol></div>
</div>

 <div id="outline-container-His-predictions" class="outline-3">
 <h3 id="His-predictions"> <span class="section-number-3">1.3.</span>  <a href="#His-predictions">His predictions</a></h3>
 <div class="outline-text-3" id="text-His-predictions">
</div>

 <div id="outline-container-Managers-will-be-more-efficient-than-owners-in-managing-production." class="outline-4">
 <h4 id="Managers-will-be-more-efficient-than-owners-in-managing-production."> <span class="section-number-4">1.3.1.</span>  <a href="#Managers-will-be-more-efficient-than-owners-in-managing-production.">Managers will be more efficient than owners in managing production.</a></h4>
 <div class="outline-text-4" id="text-Managers-will-be-more-efficient-than-owners-in-managing-production.">
 <p>
This is due to the complexity of modern industry, and inability of the owners to grasp the enterprise fully.
</p>
</div>
</div>

 <div id="outline-container-The-government-will-own-all-of-the-economy." class="outline-4">
 <h4 id="The-government-will-own-all-of-the-economy."> <span class="section-number-4">1.3.2.</span>  <a href="#The-government-will-own-all-of-the-economy.">The government will own all of the economy.</a></h4>
 <div class="outline-text-4" id="text-The-government-will-own-all-of-the-economy.">
 <p>
Because this is the best way to install managers in all the places where managers can excel.
</p>
</div>
</div>

 <div id="outline-container-the-countries-of-the-world-will-coalesce-into-three-major-supra-states:-Europa,-America,-and-Asia." class="outline-4">
 <h4 id="the-countries-of-the-world-will-coalesce-into-three-major-supra-states:-Europa,-America,-and-Asia."> <span class="section-number-4">1.3.3.</span>  <a href="#the-countries-of-the-world-will-coalesce-into-three-major-supra-states:-Europa,-America,-and-Asia.">The countries of the world will coalesce into three major supra-states: Europa, America, and Asia.</a></h4>
 <div class="outline-text-4" id="text-the-countries-of-the-world-will-coalesce-into-three-major-supra-states:-Europa,-America,-and-Asia.">
 <p>
For the same reason, because it maximises the presence of managers in the system, and it is expected that managers manage the production better.
</p>
</div>
</div>

 <div id="outline-container-Russia-will-eventually-split-into-the-European-and-the-Asian-parts." class="outline-4">
 <h4 id="Russia-will-eventually-split-into-the-European-and-the-Asian-parts."> <span class="section-number-4">1.3.4.</span>  <a href="#Russia-will-eventually-split-into-the-European-and-the-Asian-parts.">Russia will eventually split into the European and the Asian parts.</a></h4>
 <div class="outline-text-4" id="text-Russia-will-eventually-split-into-the-European-and-the-Asian-parts.">
 <p>
Because Russia itself is not enough industrialised, whereas Asia and Europe are.
</p>
</div>
</div>

 <div id="outline-container-Ideologies,-especially-technocracy-and-newdealism-will-serve-the-bureaucrats." class="outline-4">
 <h4 id="Ideologies,-especially-technocracy-and-newdealism-will-serve-the-bureaucrats."> <span class="section-number-4">1.3.5.</span>  <a href="#Ideologies,-especially-technocracy-and-newdealism-will-serve-the-bureaucrats.">Ideologies, especially technocracy and newdealism will serve the bureaucrats.</a></h4>
 <div class="outline-text-4" id="text-Ideologies,-especially-technocracy-and-newdealism-will-serve-the-bureaucrats.">
</div>
</div>

 <div id="outline-container-European-Union-will-emerge." class="outline-4">
 <h4 id="European-Union-will-emerge."> <span class="section-number-4">1.3.6.</span>  <a href="#European-Union-will-emerge.">European Union will emerge.</a></h4>
 <div class="outline-text-4" id="text-European-Union-will-emerge.">
</div>
</div>
</div>

 <div id="outline-container-His-mistakes-and-successes" class="outline-3">
 <h3 id="His-mistakes-and-successes"> <span class="section-number-3">1.4.</span>  <a href="#His-mistakes-and-successes">His mistakes and successes</a></h3>
 <div class="outline-text-3" id="text-His-mistakes-and-successes">
</div>

 <div id="outline-container-Well,-80-years-have-passed-since." class="outline-4">
 <h4 id="Well,-80-years-have-passed-since."> <span class="section-number-4">1.4.1.</span>  <a href="#Well,-80-years-have-passed-since.">Well, 80 years have passed since.</a></h4>
 <div class="outline-text-4" id="text-Well,-80-years-have-passed-since.">
 <ol class="org-ol"> <li>Russia is still there, although severely crippled.</li>
 <li>New Deal has been abandoned.</li>
 <li>Government-to-private ownership ratio in most countries is still around 50%.</li>
</ol></div>
</div>

 <div id="outline-container-State-ownership-does-not-manage-to-overcompete-private-ownership-in-making-industry-work." class="outline-4">
 <h4 id="State-ownership-does-not-manage-to-overcompete-private-ownership-in-making-industry-work."> <span class="section-number-4">1.4.2.</span>  <a href="#State-ownership-does-not-manage-to-overcompete-private-ownership-in-making-industry-work.">State ownership does not manage to overcompete private ownership in making industry work.</a></h4>
 <div class="outline-text-4" id="text-State-ownership-does-not-manage-to-overcompete-private-ownership-in-making-industry-work.">
 <p>
Managers when left without capitalist supervision, tend to create more managers, not more products.
Waging war seems to be still better be done when rich, buying weapons on those money, rather than when owning a large military complex controlled by a lot of managers.
</p>
</div>
</div>

 <div id="outline-container-Ideology-of-liberty-and-freedom-seems-to,-indeed,-fail." class="outline-4">
 <h4 id="Ideology-of-liberty-and-freedom-seems-to,-indeed,-fail."> <span class="section-number-4">1.4.3.</span>  <a href="#Ideology-of-liberty-and-freedom-seems-to,-indeed,-fail.">Ideology of liberty and freedom seems to, indeed, fail.</a></h4>
 <div class="outline-text-4" id="text-Ideology-of-liberty-and-freedom-seems-to,-indeed,-fail.">
</div>
</div>

 <div id="outline-container-Socialist-states-do-fight-with-each-other." class="outline-4">
 <h4 id="Socialist-states-do-fight-with-each-other."> <span class="section-number-4">1.4.4.</span>  <a href="#Socialist-states-do-fight-with-each-other.">Socialist states do fight with each other.</a></h4>
 <div class="outline-text-4" id="text-Socialist-states-do-fight-with-each-other.">
</div>
</div>

 <div id="outline-container-There-seems-to-be-a-balance-between-capitalism-and-socialism-so-far,-in-the-parliament." class="outline-4">
 <h4 id="There-seems-to-be-a-balance-between-capitalism-and-socialism-so-far,-in-the-parliament."> <span class="section-number-4">1.4.5.</span>  <a href="#There-seems-to-be-a-balance-between-capitalism-and-socialism-so-far,-in-the-parliament.">There seems to be a balance between capitalism and socialism so far, in the parliament.</a></h4>
 <div class="outline-text-4" id="text-There-seems-to-be-a-balance-between-capitalism-and-socialism-so-far,-in-the-parliament.">
 <p>
It is hard to say who has more power in the U.S.A., at least Moldbug thinks it is the Congress, not the President.
</p>
</div>
</div>

 <div id="outline-container-Unemployment-is-not-that-huge." class="outline-4">
 <h4 id="Unemployment-is-not-that-huge."> <span class="section-number-4">1.4.6.</span>  <a href="#Unemployment-is-not-that-huge.">Unemployment is not that huge.</a></h4>
 <div class="outline-text-4" id="text-Unemployment-is-not-that-huge.">
</div>
</div>
 <div id="outline-container-Capitalists-seem-to-be-still-able-to-invest-in-a-lot-of-stuff,-but-are-strongly-controlled-by-the-government." class="outline-4">
 <h4 id="Capitalists-seem-to-be-still-able-to-invest-in-a-lot-of-stuff,-but-are-strongly-controlled-by-the-government."> <span class="section-number-4">1.4.7.</span>  <a href="#Capitalists-seem-to-be-still-able-to-invest-in-a-lot-of-stuff,-but-are-strongly-controlled-by-the-government.">Capitalists seem to be still able to invest in a lot of stuff, but are strongly controlled by the government.</a></h4>
 <div class="outline-text-4" id="text-Capitalists-seem-to-be-still-able-to-invest-in-a-lot-of-stuff,-but-are-strongly-controlled-by-the-government.">
</div>
</div>
 <div id="outline-container-Managers-actually-want-and-spend-great-effort-to-become-capitalists." class="outline-4">
 <h4 id="Managers-actually-want-and-spend-great-effort-to-become-capitalists."> <span class="section-number-4">1.4.8.</span>  <a href="#Managers-actually-want-and-spend-great-effort-to-become-capitalists.">Managers actually want and spend great effort to become capitalists.</a></h4>
 <div class="outline-text-4" id="text-Managers-actually-want-and-spend-great-effort-to-become-capitalists.">
</div>
</div>
</div>

 <div id="outline-container-Afterword" class="outline-3">
 <h3 id="Afterword"> <span class="section-number-3">1.5.</span>  <a href="#Afterword">Afterword</a></h3>
 <div class="outline-text-3" id="text-Afterword">
 <p>
When reading such books, we are often more interested in what will happen, rather than what has been happening before.
After all that is what the sub-title is about.
</p>

 <p>
It is funny that the book written in 1941 starts with a phrase that "social sciences are still in their nascence", because I remember a similar phrase being said by Karl Marx a hundred years earlier, and by Alexander Hamilton 50 years before that.
</p>

 <p>
Has "Managerial Society" won?
Not yet, but it has advanced significantly.
The world we live in is certainly not a free market society.
</p>

 <p>
However, the managers don't seem to have won entirely, at least not yet.
</p>
</div>
</div>
</section> <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">2.</span>  <a href="#Contacts">Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
 <dt>WordPress</dt> <dd> <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-07-09_Reading_Managerial-Revolution-by-James-Burnham.english.d/index.html"/>
  <id>https://lockywolf.net/2024-07-09_Reading_Managerial-Revolution-by-James-Burnham.english.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>&quot;Managerial Revolution&quot; by James Burnham, recap-and-review.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">"Managerial Revolution" by James Burnham, recap-and-review.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E4%B9%A6%E8%AF%84">1. 书评</a>
 <ul> <li> <a href="#%E4%BC%AF%E7%BA%B3%E5%A7%86%E7%A0%94%E7%A9%B6%E4%BB%80%E4%B9%88%EF%BC%9F%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E9%BC%93%E5%8A%A8%E4%BB%96%E5%88%86%E6%9E%90%E2%80%9C%E7%AE%A1%E7%90%86%E7%A4%BE%E4%BC%9A%E2%80%9D%EF%BC%9F">1.1. 伯纳姆研究什么？什么情况鼓动他分析“管理社会”？</a></li>
 <li> <a href="#%E7%A4%BE%E4%BC%9A%E5%BD%A2%E6%80%81%E8%BD%AC%E5%9E%8B%E7%90%86%E8%AE%BA">1.2. 社会形态转型理论</a></li>
 <li> <a href="#%E4%BB%96%E7%9A%84%E9%A2%84%E6%B5%8B">1.3. 他的预测</a>
 <ul> <li> <a href="#%E7%AE%A1%E7%90%86%E5%91%98%E6%95%88%E7%8E%87%E4%BC%9A%E6%AF%94%E4%B8%9A%E4%B8%BB%E6%95%88%E7%8E%87%E6%9B%B4%E9%AB%98%E3%80%82">1.3.1. 管理员效率会比业主效率更高。</a></li>
 <li> <a href="#%E6%94%BF%E5%BA%9C%E4%BC%9A%E6%88%90%E4%B8%BA%E6%95%B4%E4%B8%AA%E7%BB%8F%E6%B5%8E%E7%9A%84%E4%B8%BB%E4%BA%BA%E3%80%82">1.3.2. 政府会成为整个经济的主人。</a></li>
 <li> <a href="#%E6%9C%AA%E6%9D%A5%E4%B8%96%E7%95%8C%E5%8F%AA%E4%BC%9A%E6%9C%89%E4%B8%89%E4%B8%AA%E8%B6%85%E6%9E%81%E5%9B%BD%E5%AE%B6%EF%BC%9A%E6%AC%A7%EF%BC%8C%E4%BA%9A%EF%BC%8C%E7%BE%8E%E3%80%82">1.3.3. 未来世界只会有三个超极国家：欧，亚，美。</a></li>
 <li> <a href="#%E4%BF%84%E7%BD%97%E6%96%AF%E4%BC%9A%E8%A7%A3%E4%BD%93%E4%B8%BA%E4%B8%A4%E9%83%A8%E5%88%86%EF%BC%9A%E6%AC%A7%E6%B4%B2%E7%9A%84%E5%92%8C%E4%BA%9A%E6%B4%B2%E7%9A%84%E3%80%82">1.3.4. 俄罗斯会解体为两部分：欧洲的和亚洲的。</a></li>
 <li> <a href="#%E6%84%8F%E8%AF%86%E5%BD%A2%E6%80%81%EF%BC%8C%E5%B0%A4%E5%85%B6%E6%98%AF%E2%80%9C%E6%8A%80%E6%9C%AF%E4%B8%BB%E4%B9%89%E2%80%9D%E5%92%8C%E2%80%9C%E6%96%B0%E6%94%BF%E4%B8%BB%E4%B9%89%E2%80%9D%E4%BC%9A%E4%B8%BA%E5%AE%98%E5%83%9A%E4%BB%AC%E6%9C%8D%E5%8A%A1%E3%80%82">1.3.5. 意识形态，尤其是“技术主义”和“新政主义”会为官僚们服务。</a></li>
 <li> <a href="#%E6%AC%A7%E7%9B%9F%E4%BC%9A%E5%87%BA%E7%8E%B0%E3%80%82">1.3.6. 欧盟会出现。</a></li>
</ul></li>
 <li> <a href="#%E4%BB%96%E7%9A%84%E9%94%99%E8%AF%AF%E5%92%8C%E6%AD%A3%E7%A1%AE">1.4. 他的错误和正确</a>
 <ul> <li> <a href="#%E8%BF%99%E6%9C%AC%E4%B9%A6%E5%87%BA%E7%89%88%E4%B9%8B%E5%90%8E%E8%BF%87%E4%BA%8680%E5%B9%B4%E3%80%82">1.4.1. 这本书出版之后过了80年。</a></li>
 <li> <a href="#%E5%9B%BD%E4%BC%81%E4%BD%BF%E8%A1%8C%E4%B8%9A%E7%94%9F%E4%BA%A7%E7%9A%84%E6%95%88%E7%8E%87%E8%BF%98%E6%98%AF%E4%B8%8D%E8%83%BD%E8%B6%85%E8%BF%87%E7%A7%81%E4%BC%81%E3%80%82">1.4.2. 国企使行业生产的效率还是不能超过私企。</a></li>
 <li> <a href="#%E8%87%AA%E7%94%B1%E4%B8%BB%E4%B9%89%E5%92%8C%E6%B0%91%E4%B8%BB%E4%B8%BB%E4%B9%89%E6%84%8F%E8%AF%86%E5%BD%A2%E6%80%81%EF%BC%8C%E7%9C%8B%E8%B5%B7%E6%9D%A5%E4%B9%9F%E4%B8%8D%E4%BB%A4%E4%BA%BA%E5%85%B4%E5%A5%8B%E3%80%82">1.4.3. 自由主义和民主主义意识形态，看起来也不令人兴奋。</a></li>
 <li> <a href="#%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E5%9B%BD%E5%AE%B6%E7%9A%84%E7%A1%AE%E4%BA%92%E7%9B%B8%E6%89%93%E4%BB%97%E3%80%82">1.4.4. 社会主义国家的确互相打仗。</a></li>
 <li> <a href="#%E5%9C%A8%E8%AE%AE%E9%99%A2%E9%87%8C%EF%BC%8C%E5%A5%BD%E5%83%8F%E6%9C%89%E8%B5%84%E6%9C%AC%E4%B8%BB%E4%B9%89%E5%88%86%E5%AD%90%E5%92%8C%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E5%88%86%E5%AD%90%E7%9A%84%E5%B9%B3%E8%A1%A1%E3%80%82">1.4.5. 在议院里，好像有资本主义分子和社会主义分子的平衡。</a></li>
 <li> <a href="#%E5%A4%B1%E4%B8%9A%E7%8E%87%E6%9A%82%E6%97%B6%E4%B8%8D%E6%98%AF%E5%BE%88%E9%AB%98%E3%80%82">1.4.6. 失业率暂时不是很高。</a></li>
 <li> <a href="#%E8%B5%84%E6%9C%AC%E4%B8%BB%E4%B9%89%E5%AE%B6%E7%8E%B0%E5%9C%A8%E4%BC%9A%E6%8A%95%E8%B5%84%EF%BC%8C%E4%BD%86%E6%98%AF%E5%AE%83%E4%BB%AC%E9%83%BD%E4%BC%9A%E8%A2%AB%E6%94%BF%E5%BA%9C%E6%8E%A7%E5%88%B6%E3%80%82">1.4.7. 资本主义家现在会投资，但是它们都会被政府控制。</a></li>
 <li> <a href="#%E7%AE%A1%E7%90%86%E5%91%98%E4%BB%AC%E6%83%B3%E8%A6%81%E5%B9%B6%E4%B8%94%E8%80%97%E8%B4%B9%E7%B2%BE%E5%8A%9B%E6%88%90%E4%B8%BA%E4%B8%9A%E4%B8%BB%E3%80%82">1.4.8. 管理员们想要并且耗费精力成为业主。</a></li>
</ul></li>
 <li> <a href="#%E7%BB%93%E8%AF%AD">1.5. 结语</a></li>
</ul></li>
 <li> <a href="#Contacts">2. Contacts</a></li>
</ul></div>
</nav> <figure id="org15bb72c"> <img src="./01_burnham.webp" alt="01_burnham.webp"></img></figure> <p>
詹姆斯·伯纳姆（James Burnham, 1905-1987） 《管理革命：世界正在发生什么》。
</p>

 <p>
最近根据Mencius Moldbug的推荐读了James Burnham的《管理革命：世界正在发生什么》。
开始阅读Moldbug全集的所有人都首先会被他建议阅读的书目压垮。
他的哲学框架很细致，包含很多经典的和现代的书里的概念。
但是他也多次强调：开发自己的哲学比吸收别人的更重要。
而且，在他的采访里他曾经说过“《管理革命》能帮你最顺利的掌握他的理论基地，于是可以自己判断需不需要更深入地学习“。
</p>

 <p>
阅读《管理革命》不是很小的工程，但是我一开始就知道会读完这本书。
它虽然没有解答我的大部分问题，但是它系统化了我的关于社会的知识。
在这篇文章我要写出我的书评以及分析它的理论能不能经得起时间的考验。
</p>

 <p>
我读过英文的版本，因为最开始没找到中文的。
不久以后发现了，在知乎里某些舍己为公的英雄翻译了17章之9.
（ <a href="https://zhuanlan.zhihu.com/p/594412161">https://zhuanlan.zhihu.com/p/594412161</a>）
请称赞和捐赠他，鼓励他更快完成他的公心奇迹。
</p>

 <section id="outline-container-%E4%B9%A6%E8%AF%84" class="outline-2"> <h2 id="%E4%B9%A6%E8%AF%84"> <span class="section-number-2">1.</span>  <a href="#%E4%B9%A6%E8%AF%84">书评</a></h2>
 <div class="outline-text-2" id="text-%E4%B9%A6%E8%AF%84">
</div>

 <div id="outline-container-%E4%BC%AF%E7%BA%B3%E5%A7%86%E7%A0%94%E7%A9%B6%E4%BB%80%E4%B9%88%EF%BC%9F%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E9%BC%93%E5%8A%A8%E4%BB%96%E5%88%86%E6%9E%90%E2%80%9C%E7%AE%A1%E7%90%86%E7%A4%BE%E4%BC%9A%E2%80%9D%EF%BC%9F" class="outline-3">
 <h3 id="%E4%BC%AF%E7%BA%B3%E5%A7%86%E7%A0%94%E7%A9%B6%E4%BB%80%E4%B9%88%EF%BC%9F%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E9%BC%93%E5%8A%A8%E4%BB%96%E5%88%86%E6%9E%90%E2%80%9C%E7%AE%A1%E7%90%86%E7%A4%BE%E4%BC%9A%E2%80%9D%EF%BC%9F"> <span class="section-number-3">1.1.</span>  <a href="#%E4%BC%AF%E7%BA%B3%E5%A7%86%E7%A0%94%E7%A9%B6%E4%BB%80%E4%B9%88%EF%BC%9F%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E9%BC%93%E5%8A%A8%E4%BB%96%E5%88%86%E6%9E%90%E2%80%9C%E7%AE%A1%E7%90%86%E7%A4%BE%E4%BC%9A%E2%80%9D%EF%BC%9F">伯纳姆研究什么？什么情况鼓动他分析“管理社会”？</a></h3>
 <div class="outline-text-3" id="text-%E4%BC%AF%E7%BA%B3%E5%A7%86%E7%A0%94%E7%A9%B6%E4%BB%80%E4%B9%88%EF%BC%9F%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E9%BC%93%E5%8A%A8%E4%BB%96%E5%88%86%E6%9E%90%E2%80%9C%E7%AE%A1%E7%90%86%E7%A4%BE%E4%BC%9A%E2%80%9D%EF%BC%9F">
 <p>
外面的世界1941年，二战已经持续两年，足够理解正在发生的与旧世界不一样的情况。
</p>

 <p>
哪个方面不一样？
</p>

 <p>
世界大战本身不是新的，他们已经体验过一次。
</p>

 <p>
令人疯狂的大众意识形态也都不是新鲜的。
</p>

 <p>
伯纳姆肯定认识它们，毕竟他变成美国保守主义者之前信仰马克思主义很多年。
</p>

 <p>
而且最影响人的现象一般的是近的而不是远的。
离伯纳姆近的事情叫做“新政（New Deal）”。
</p>

 <p>
新政是由很多政府局（部）组成的项目，以美国政府作为美国最大的用人组织，超过所有的私家公司总和。
它们提供全国同样的工资录用劳动者进行相对简单的公共品相关的工作，大部分是建造道路。
该工资刚刚足够活一个月。
</p>

 <p>
为什么貌似完全被巨头们控制的美国政府组织公共品工作？
因为人民挨饿。
成年的、健康的、努力的、带新教道德的人民都找不到能养活一个人的工作。
家庭、老婆、孩子？不提也罢！
</p>

 <p>
好奇的是：美国政府不想令他们服兵役，送到某些很远的前线占领新土地。
它也不帮他们建立个体户。
相反的，它自己为劳动者提供复杂度低的工作。
</p>

 <p>
这本书的范围不包括为什么政府决定这么做，但是伯纳姆觉得该现象显示：在社会结构基础中某些元素变更。
公共品工作，就像政府用人不是一种新的现象，但是有新的方面：范围，效率，以及与纳粹德国和苏维埃联盟惊人的相似之处。
伯纳姆写出此书时这两个国家既存在又不打仗。
</p>

 <p>
伯纳姆很吃惊，不仅一次而是两次。
他第一次吃惊的原因是美国梦失败；此震惊那么强，令他成为马克思主义者。
这里我故意得写“马克思主义者”而不说“社会主义者”，因为在这本书中“社会主义”有特别的意义，与我们现代的定义不同。
但是“马克思主义”，在代表劳动群众的利益的意义上，还是准确的。
</p>

 <p>
但是每个马克思主义者最终应该面对苏联的30年代的血淋淋的事实，所以伯纳姆第二次被震惊。
苏维埃的生活那么悲伤，然而美国政府从事相似的“新政”实质上是模拟苏维埃的实践。
</p>

 <p>
我感觉副标题是来自这个震惊的。
它可以写出“发生什么鬼”？
</p>

 <p>
所以伯纳姆开始调查，曾经全世界的最自由的国家的“极权主义化”的过程。
随后他找到了满足他的解释：美国人并没搞错什么，这是世界的社会形态本身在改变。
世界已经不属于资本主义（副作用是马克思主义的重点“推翻资本主义”也已经没有意义），资本主义已经降落好几年，最终它肯定会自己消失。
还值得一提：资本主义的衰落不需要蓄意的干涉、革命或者政变等等。
</p>

 <p>
这个观察结果蛮重要，因为它显示社会学科的两个观点之一：“历史遵守客观的定律，按照严格的原理进化，类似于科学的”，有时候被称为“决定观点”。
另一个观点是“历史不遵守任何客观的定律，人在自己的手里掌握所有的选择”。
这个观点可以称呼为“波普尔”的，荣誉卡尔·波普尔，“历史主义的”强悍对手。
</p>

 <p>
这两个观点都只是看法，没办法证明或者反驳其中任一个，因为历史不支持进行实验。
</p>

 <p>
但是让我们一起理解，伯纳姆认为什么样的过程沿着客观的定律进化。
</p>
</div>
</div>

 <div id="outline-container-%E7%A4%BE%E4%BC%9A%E5%BD%A2%E6%80%81%E8%BD%AC%E5%9E%8B%E7%90%86%E8%AE%BA" class="outline-3">
 <h3 id="%E7%A4%BE%E4%BC%9A%E5%BD%A2%E6%80%81%E8%BD%AC%E5%9E%8B%E7%90%86%E8%AE%BA"> <span class="section-number-3">1.2.</span>  <a href="#%E7%A4%BE%E4%BC%9A%E5%BD%A2%E6%80%81%E8%BD%AC%E5%9E%8B%E7%90%86%E8%AE%BA">社会形态转型理论</a></h3>
 <div class="outline-text-3" id="text-%E7%A4%BE%E4%BC%9A%E5%BD%A2%E6%80%81%E8%BD%AC%E5%9E%8B%E7%90%86%E8%AE%BA">
 <p>
那好了，伯纳姆按照严格的马克思主义原理相信下一个定律：社会形态将转型，从某个阶段向某个阶段过渡。
每个阶段拥有自己可以雕刻和引导社会的统治阶级。
</p>

 <p>
按他的看法，该社会形态是：“封建主义”、“资本主义”，和“管理主义”。
还值得一提：虽然他提到“群众讨厌所有的统治阶级”，但是他拒绝“社会主义”（严格定义的无阶级社会）的可行性。
虽然他承认群众具有潜在的可以用的能力，例如列宁在组织俄罗斯大革命时使用的一种，但是他反复陈述“目的和手段相见是异乎寻常的”。
</p>

 <p>
我好奇的是：他根本没有提到“原始社会”或者“奴隶社会”，我们现在有时候叫“古代社会”。
好像伯纳姆认为这两个社会形态与“封建主义”差不多。
而且他耗很多精力介绍“封建主义”如何转型为“资本主义”，尝试由碎片证据组成无矛盾的社会转型理论。
</p>

 <p>
那为什么统治阶级能保持它的权力？
按伯纳姆的说法是因为统治阶级的成员们对生产资料占有优先的渠道。
在封建社会此阶级是贵族，他们控制土地和农民 —— 中世纪财富和权力的关键。
中世纪时资本主义者已经存在，但是他们的经济比例相对低，不超过1%。
不过，他们对生产资料拥有一定的渠道，所以维持某些经济基础。
该基础允许他们在社会情况有利的时候，开始向统治地位发展。
</p>

 <p>
为什么资本主义会给下一个社会形态让路？
</p>

 <p>
伯纳姆把这个社会形态称呼为“管理社会”（managerial society），管理员会成为该阶级的成员。
但是为了更好的匹配现代的语言，我会把这个社会形态叫作“社会主义”，以及它的统治阶级叫作“官僚”。
伯纳姆不太赞成这个说法，实际上在书籍末尾，他贡献整章区分“管理员”与“官僚”，但是我感觉那一章的逻辑是整本书中最弱的。
我觉得这个区分是书籍里最大的错误。
“管理主义”是马克思主义天生的属性，所以分裂斯大林党派的西方“白左”比斯大林不尊敬资本主义，但是他们决定通过隐蔽手段达到“管理社会”，而不通过革命。
</p>

 <p>
官僚既在政府机关又在大公司里，并且这两个类型的行为很像。
所以“管理员”和“官僚”这两个说法次可以互换。
</p>

 <p>
那在资本主义社会向管理社会过渡的过程中重要原因和征状是什么？
</p>

 <p>
伯纳姆认为最大的征状是失业，社会无法利用所有该社会的生产力。
那如果它无法利用它的生产力，那么它就会停止投资武力并开始丧失国际竞争力。
它要么适应要么被征服。
</p>

 <p>
第二个征状是：自由者社会不能吸收志愿军参加战争。
确实，第二次世界大战时英国和美国都求助征兵才可以补充它们的军队。
</p>

 <p>
成为社会主义国家的过程包括三步：
</p>

 <ol class="org-ol"> <li>移除资本主义家</li>
 <li>给群众洗脑</li>
 <li>征服周围的资本主义国家</li>
</ol> <p>
过程是否成功可以按照谁使主权具体化判断。
</p>

 <ol class="org-ol"> <li>封建社会的大部分规定由上议院提出。</li>
 <li>资本主义社会的大部分规定由下议院提出。</li>
 <li>社会主义社会的大部分规定由部会提出。</li>
</ol></div>
</div>

 <div id="outline-container-%E4%BB%96%E7%9A%84%E9%A2%84%E6%B5%8B" class="outline-3">
 <h3 id="%E4%BB%96%E7%9A%84%E9%A2%84%E6%B5%8B"> <span class="section-number-3">1.3.</span>  <a href="#%E4%BB%96%E7%9A%84%E9%A2%84%E6%B5%8B">他的预测</a></h3>
 <div class="outline-text-3" id="text-%E4%BB%96%E7%9A%84%E9%A2%84%E6%B5%8B">
</div>

 <div id="outline-container-%E7%AE%A1%E7%90%86%E5%91%98%E6%95%88%E7%8E%87%E4%BC%9A%E6%AF%94%E4%B8%9A%E4%B8%BB%E6%95%88%E7%8E%87%E6%9B%B4%E9%AB%98%E3%80%82" class="outline-4">
 <h4 id="%E7%AE%A1%E7%90%86%E5%91%98%E6%95%88%E7%8E%87%E4%BC%9A%E6%AF%94%E4%B8%9A%E4%B8%BB%E6%95%88%E7%8E%87%E6%9B%B4%E9%AB%98%E3%80%82"> <span class="section-number-4">1.3.1.</span>  <a href="#%E7%AE%A1%E7%90%86%E5%91%98%E6%95%88%E7%8E%87%E4%BC%9A%E6%AF%94%E4%B8%9A%E4%B8%BB%E6%95%88%E7%8E%87%E6%9B%B4%E9%AB%98%E3%80%82">管理员效率会比业主效率更高。</a></h4>
 <div class="outline-text-4" id="text-%E7%AE%A1%E7%90%86%E5%91%98%E6%95%88%E7%8E%87%E4%BC%9A%E6%AF%94%E4%B8%9A%E4%B8%BB%E6%95%88%E7%8E%87%E6%9B%B4%E9%AB%98%E3%80%82">
 <p>
因为“现代”行业挺复杂，所以业主们没办法完全掌握它的逻辑。
</p>
</div>
</div>

 <div id="outline-container-%E6%94%BF%E5%BA%9C%E4%BC%9A%E6%88%90%E4%B8%BA%E6%95%B4%E4%B8%AA%E7%BB%8F%E6%B5%8E%E7%9A%84%E4%B8%BB%E4%BA%BA%E3%80%82" class="outline-4">
 <h4 id="%E6%94%BF%E5%BA%9C%E4%BC%9A%E6%88%90%E4%B8%BA%E6%95%B4%E4%B8%AA%E7%BB%8F%E6%B5%8E%E7%9A%84%E4%B8%BB%E4%BA%BA%E3%80%82"> <span class="section-number-4">1.3.2.</span>  <a href="#%E6%94%BF%E5%BA%9C%E4%BC%9A%E6%88%90%E4%B8%BA%E6%95%B4%E4%B8%AA%E7%BB%8F%E6%B5%8E%E7%9A%84%E4%B8%BB%E4%BA%BA%E3%80%82">政府会成为整个经济的主人。</a></h4>
 <div class="outline-text-4" id="text-%E6%94%BF%E5%BA%9C%E4%BC%9A%E6%88%90%E4%B8%BA%E6%95%B4%E4%B8%AA%E7%BB%8F%E6%B5%8E%E7%9A%84%E4%B8%BB%E4%BA%BA%E3%80%82">
 <p>
因为资本主义会竞争失败，并且国立是把管理员安装在符合的职位的最好方法，以及会得到最高的生产效率。
</p>
</div>
</div>

 <div id="outline-container-%E6%9C%AA%E6%9D%A5%E4%B8%96%E7%95%8C%E5%8F%AA%E4%BC%9A%E6%9C%89%E4%B8%89%E4%B8%AA%E8%B6%85%E6%9E%81%E5%9B%BD%E5%AE%B6%EF%BC%9A%E6%AC%A7%EF%BC%8C%E4%BA%9A%EF%BC%8C%E7%BE%8E%E3%80%82" class="outline-4">
 <h4 id="%E6%9C%AA%E6%9D%A5%E4%B8%96%E7%95%8C%E5%8F%AA%E4%BC%9A%E6%9C%89%E4%B8%89%E4%B8%AA%E8%B6%85%E6%9E%81%E5%9B%BD%E5%AE%B6%EF%BC%9A%E6%AC%A7%EF%BC%8C%E4%BA%9A%EF%BC%8C%E7%BE%8E%E3%80%82"> <span class="section-number-4">1.3.3.</span>  <a href="#%E6%9C%AA%E6%9D%A5%E4%B8%96%E7%95%8C%E5%8F%AA%E4%BC%9A%E6%9C%89%E4%B8%89%E4%B8%AA%E8%B6%85%E6%9E%81%E5%9B%BD%E5%AE%B6%EF%BC%9A%E6%AC%A7%EF%BC%8C%E4%BA%9A%EF%BC%8C%E7%BE%8E%E3%80%82">未来世界只会有三个超极国家：欧，亚，美。</a></h4>
 <div class="outline-text-4" id="text-%E6%9C%AA%E6%9D%A5%E4%B8%96%E7%95%8C%E5%8F%AA%E4%BC%9A%E6%9C%89%E4%B8%89%E4%B8%AA%E8%B6%85%E6%9E%81%E5%9B%BD%E5%AE%B6%EF%BC%9A%E6%AC%A7%EF%BC%8C%E4%BA%9A%EF%BC%8C%E7%BE%8E%E3%80%82">
 <p>
由于同样的原因，大国会比小国更有效率。
</p>
</div>
</div>

 <div id="outline-container-%E4%BF%84%E7%BD%97%E6%96%AF%E4%BC%9A%E8%A7%A3%E4%BD%93%E4%B8%BA%E4%B8%A4%E9%83%A8%E5%88%86%EF%BC%9A%E6%AC%A7%E6%B4%B2%E7%9A%84%E5%92%8C%E4%BA%9A%E6%B4%B2%E7%9A%84%E3%80%82" class="outline-4">
 <h4 id="%E4%BF%84%E7%BD%97%E6%96%AF%E4%BC%9A%E8%A7%A3%E4%BD%93%E4%B8%BA%E4%B8%A4%E9%83%A8%E5%88%86%EF%BC%9A%E6%AC%A7%E6%B4%B2%E7%9A%84%E5%92%8C%E4%BA%9A%E6%B4%B2%E7%9A%84%E3%80%82"> <span class="section-number-4">1.3.4.</span>  <a href="#%E4%BF%84%E7%BD%97%E6%96%AF%E4%BC%9A%E8%A7%A3%E4%BD%93%E4%B8%BA%E4%B8%A4%E9%83%A8%E5%88%86%EF%BC%9A%E6%AC%A7%E6%B4%B2%E7%9A%84%E5%92%8C%E4%BA%9A%E6%B4%B2%E7%9A%84%E3%80%82">俄罗斯会解体为两部分：欧洲的和亚洲的。</a></h4>
 <div class="outline-text-4" id="text-%E4%BF%84%E7%BD%97%E6%96%AF%E4%BC%9A%E8%A7%A3%E4%BD%93%E4%B8%BA%E4%B8%A4%E9%83%A8%E5%88%86%EF%BC%9A%E6%AC%A7%E6%B4%B2%E7%9A%84%E5%92%8C%E4%BA%9A%E6%B4%B2%E7%9A%84%E3%80%82">
 <p>
因为俄罗斯的行业比较少。
</p>
</div>
</div>

 <div id="outline-container-%E6%84%8F%E8%AF%86%E5%BD%A2%E6%80%81%EF%BC%8C%E5%B0%A4%E5%85%B6%E6%98%AF%E2%80%9C%E6%8A%80%E6%9C%AF%E4%B8%BB%E4%B9%89%E2%80%9D%E5%92%8C%E2%80%9C%E6%96%B0%E6%94%BF%E4%B8%BB%E4%B9%89%E2%80%9D%E4%BC%9A%E4%B8%BA%E5%AE%98%E5%83%9A%E4%BB%AC%E6%9C%8D%E5%8A%A1%E3%80%82" class="outline-4">
 <h4 id="%E6%84%8F%E8%AF%86%E5%BD%A2%E6%80%81%EF%BC%8C%E5%B0%A4%E5%85%B6%E6%98%AF%E2%80%9C%E6%8A%80%E6%9C%AF%E4%B8%BB%E4%B9%89%E2%80%9D%E5%92%8C%E2%80%9C%E6%96%B0%E6%94%BF%E4%B8%BB%E4%B9%89%E2%80%9D%E4%BC%9A%E4%B8%BA%E5%AE%98%E5%83%9A%E4%BB%AC%E6%9C%8D%E5%8A%A1%E3%80%82"> <span class="section-number-4">1.3.5.</span>  <a href="#%E6%84%8F%E8%AF%86%E5%BD%A2%E6%80%81%EF%BC%8C%E5%B0%A4%E5%85%B6%E6%98%AF%E2%80%9C%E6%8A%80%E6%9C%AF%E4%B8%BB%E4%B9%89%E2%80%9D%E5%92%8C%E2%80%9C%E6%96%B0%E6%94%BF%E4%B8%BB%E4%B9%89%E2%80%9D%E4%BC%9A%E4%B8%BA%E5%AE%98%E5%83%9A%E4%BB%AC%E6%9C%8D%E5%8A%A1%E3%80%82">意识形态，尤其是“技术主义”和“新政主义”会为官僚们服务。</a></h4>
 <div class="outline-text-4" id="text-%E6%84%8F%E8%AF%86%E5%BD%A2%E6%80%81%EF%BC%8C%E5%B0%A4%E5%85%B6%E6%98%AF%E2%80%9C%E6%8A%80%E6%9C%AF%E4%B8%BB%E4%B9%89%E2%80%9D%E5%92%8C%E2%80%9C%E6%96%B0%E6%94%BF%E4%B8%BB%E4%B9%89%E2%80%9D%E4%BC%9A%E4%B8%BA%E5%AE%98%E5%83%9A%E4%BB%AC%E6%9C%8D%E5%8A%A1%E3%80%82">
</div>
</div>

 <div id="outline-container-%E6%AC%A7%E7%9B%9F%E4%BC%9A%E5%87%BA%E7%8E%B0%E3%80%82" class="outline-4">
 <h4 id="%E6%AC%A7%E7%9B%9F%E4%BC%9A%E5%87%BA%E7%8E%B0%E3%80%82"> <span class="section-number-4">1.3.6.</span>  <a href="#%E6%AC%A7%E7%9B%9F%E4%BC%9A%E5%87%BA%E7%8E%B0%E3%80%82">欧盟会出现。</a></h4>
 <div class="outline-text-4" id="text-%E6%AC%A7%E7%9B%9F%E4%BC%9A%E5%87%BA%E7%8E%B0%E3%80%82">
</div>
</div>
</div>

 <div id="outline-container-%E4%BB%96%E7%9A%84%E9%94%99%E8%AF%AF%E5%92%8C%E6%AD%A3%E7%A1%AE" class="outline-3">
 <h3 id="%E4%BB%96%E7%9A%84%E9%94%99%E8%AF%AF%E5%92%8C%E6%AD%A3%E7%A1%AE"> <span class="section-number-3">1.4.</span>  <a href="#%E4%BB%96%E7%9A%84%E9%94%99%E8%AF%AF%E5%92%8C%E6%AD%A3%E7%A1%AE">他的错误和正确</a></h3>
 <div class="outline-text-3" id="text-%E4%BB%96%E7%9A%84%E9%94%99%E8%AF%AF%E5%92%8C%E6%AD%A3%E7%A1%AE">
</div>

 <div id="outline-container-%E8%BF%99%E6%9C%AC%E4%B9%A6%E5%87%BA%E7%89%88%E4%B9%8B%E5%90%8E%E8%BF%87%E4%BA%8680%E5%B9%B4%E3%80%82" class="outline-4">
 <h4 id="%E8%BF%99%E6%9C%AC%E4%B9%A6%E5%87%BA%E7%89%88%E4%B9%8B%E5%90%8E%E8%BF%87%E4%BA%8680%E5%B9%B4%E3%80%82"> <span class="section-number-4">1.4.1.</span>  <a href="#%E8%BF%99%E6%9C%AC%E4%B9%A6%E5%87%BA%E7%89%88%E4%B9%8B%E5%90%8E%E8%BF%87%E4%BA%8680%E5%B9%B4%E3%80%82">这本书出版之后过了80年。</a></h4>
 <div class="outline-text-4" id="text-%E8%BF%99%E6%9C%AC%E4%B9%A6%E5%87%BA%E7%89%88%E4%B9%8B%E5%90%8E%E8%BF%87%E4%BA%8680%E5%B9%B4%E3%80%82">
 <ol class="org-ol"> <li>俄罗斯仍然存在，虽然它的能力不如苏联。</li>
 <li>“新政”已被放弃了。</li>
 <li>在大部分国家，国企和私企的比例还没超过50%。</li>
</ol></div>
</div>

 <div id="outline-container-%E5%9B%BD%E4%BC%81%E4%BD%BF%E8%A1%8C%E4%B8%9A%E7%94%9F%E4%BA%A7%E7%9A%84%E6%95%88%E7%8E%87%E8%BF%98%E6%98%AF%E4%B8%8D%E8%83%BD%E8%B6%85%E8%BF%87%E7%A7%81%E4%BC%81%E3%80%82" class="outline-4">
 <h4 id="%E5%9B%BD%E4%BC%81%E4%BD%BF%E8%A1%8C%E4%B8%9A%E7%94%9F%E4%BA%A7%E7%9A%84%E6%95%88%E7%8E%87%E8%BF%98%E6%98%AF%E4%B8%8D%E8%83%BD%E8%B6%85%E8%BF%87%E7%A7%81%E4%BC%81%E3%80%82"> <span class="section-number-4">1.4.2.</span>  <a href="#%E5%9B%BD%E4%BC%81%E4%BD%BF%E8%A1%8C%E4%B8%9A%E7%94%9F%E4%BA%A7%E7%9A%84%E6%95%88%E7%8E%87%E8%BF%98%E6%98%AF%E4%B8%8D%E8%83%BD%E8%B6%85%E8%BF%87%E7%A7%81%E4%BC%81%E3%80%82">国企使行业生产的效率还是不能超过私企。</a></h4>
 <div class="outline-text-4" id="text-%E5%9B%BD%E4%BC%81%E4%BD%BF%E8%A1%8C%E4%B8%9A%E7%94%9F%E4%BA%A7%E7%9A%84%E6%95%88%E7%8E%87%E8%BF%98%E6%98%AF%E4%B8%8D%E8%83%BD%E8%B6%85%E8%BF%87%E7%A7%81%E4%BC%81%E3%80%82">
 <p>
如果没有业主的监管，管理员们偏向创建新的管理员而不提高生产效率。
对于更多资本主义的国家来说，看起来打仗效率更高。
因为它们有更多钱，所以支付得起采购更多武器，而不需要自己维持很大的军工联合体。
</p>

 <p>
但是这里我们可以看到很奇怪的现象：封建社会（比如阿富汗或也門）好像可以成功的对抗资本主义国家和社会主义国家。
</p>
</div>
</div>

 <div id="outline-container-%E8%87%AA%E7%94%B1%E4%B8%BB%E4%B9%89%E5%92%8C%E6%B0%91%E4%B8%BB%E4%B8%BB%E4%B9%89%E6%84%8F%E8%AF%86%E5%BD%A2%E6%80%81%EF%BC%8C%E7%9C%8B%E8%B5%B7%E6%9D%A5%E4%B9%9F%E4%B8%8D%E4%BB%A4%E4%BA%BA%E5%85%B4%E5%A5%8B%E3%80%82" class="outline-4">
 <h4 id="%E8%87%AA%E7%94%B1%E4%B8%BB%E4%B9%89%E5%92%8C%E6%B0%91%E4%B8%BB%E4%B8%BB%E4%B9%89%E6%84%8F%E8%AF%86%E5%BD%A2%E6%80%81%EF%BC%8C%E7%9C%8B%E8%B5%B7%E6%9D%A5%E4%B9%9F%E4%B8%8D%E4%BB%A4%E4%BA%BA%E5%85%B4%E5%A5%8B%E3%80%82"> <span class="section-number-4">1.4.3.</span>  <a href="#%E8%87%AA%E7%94%B1%E4%B8%BB%E4%B9%89%E5%92%8C%E6%B0%91%E4%B8%BB%E4%B8%BB%E4%B9%89%E6%84%8F%E8%AF%86%E5%BD%A2%E6%80%81%EF%BC%8C%E7%9C%8B%E8%B5%B7%E6%9D%A5%E4%B9%9F%E4%B8%8D%E4%BB%A4%E4%BA%BA%E5%85%B4%E5%A5%8B%E3%80%82">自由主义和民主主义意识形态，看起来也不令人兴奋。</a></h4>
 <div class="outline-text-4" id="text-%E8%87%AA%E7%94%B1%E4%B8%BB%E4%B9%89%E5%92%8C%E6%B0%91%E4%B8%BB%E4%B8%BB%E4%B9%89%E6%84%8F%E8%AF%86%E5%BD%A2%E6%80%81%EF%BC%8C%E7%9C%8B%E8%B5%B7%E6%9D%A5%E4%B9%9F%E4%B8%8D%E4%BB%A4%E4%BA%BA%E5%85%B4%E5%A5%8B%E3%80%82">
</div>
</div>

 <div id="outline-container-%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E5%9B%BD%E5%AE%B6%E7%9A%84%E7%A1%AE%E4%BA%92%E7%9B%B8%E6%89%93%E4%BB%97%E3%80%82" class="outline-4">
 <h4 id="%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E5%9B%BD%E5%AE%B6%E7%9A%84%E7%A1%AE%E4%BA%92%E7%9B%B8%E6%89%93%E4%BB%97%E3%80%82"> <span class="section-number-4">1.4.4.</span>  <a href="#%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E5%9B%BD%E5%AE%B6%E7%9A%84%E7%A1%AE%E4%BA%92%E7%9B%B8%E6%89%93%E4%BB%97%E3%80%82">社会主义国家的确互相打仗。</a></h4>
 <div class="outline-text-4" id="text-%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E5%9B%BD%E5%AE%B6%E7%9A%84%E7%A1%AE%E4%BA%92%E7%9B%B8%E6%89%93%E4%BB%97%E3%80%82">
</div>
</div>

 <div id="outline-container-%E5%9C%A8%E8%AE%AE%E9%99%A2%E9%87%8C%EF%BC%8C%E5%A5%BD%E5%83%8F%E6%9C%89%E8%B5%84%E6%9C%AC%E4%B8%BB%E4%B9%89%E5%88%86%E5%AD%90%E5%92%8C%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E5%88%86%E5%AD%90%E7%9A%84%E5%B9%B3%E8%A1%A1%E3%80%82" class="outline-4">
 <h4 id="%E5%9C%A8%E8%AE%AE%E9%99%A2%E9%87%8C%EF%BC%8C%E5%A5%BD%E5%83%8F%E6%9C%89%E8%B5%84%E6%9C%AC%E4%B8%BB%E4%B9%89%E5%88%86%E5%AD%90%E5%92%8C%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E5%88%86%E5%AD%90%E7%9A%84%E5%B9%B3%E8%A1%A1%E3%80%82"> <span class="section-number-4">1.4.5.</span>  <a href="#%E5%9C%A8%E8%AE%AE%E9%99%A2%E9%87%8C%EF%BC%8C%E5%A5%BD%E5%83%8F%E6%9C%89%E8%B5%84%E6%9C%AC%E4%B8%BB%E4%B9%89%E5%88%86%E5%AD%90%E5%92%8C%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E5%88%86%E5%AD%90%E7%9A%84%E5%B9%B3%E8%A1%A1%E3%80%82">在议院里，好像有资本主义分子和社会主义分子的平衡。</a></h4>
 <div class="outline-text-4" id="text-%E5%9C%A8%E8%AE%AE%E9%99%A2%E9%87%8C%EF%BC%8C%E5%A5%BD%E5%83%8F%E6%9C%89%E8%B5%84%E6%9C%AC%E4%B8%BB%E4%B9%89%E5%88%86%E5%AD%90%E5%92%8C%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E5%88%86%E5%AD%90%E7%9A%84%E5%B9%B3%E8%A1%A1%E3%80%82">
 <p>
还没有任何一方打赢。
</p>

 <p>
我不能说哪一个在美国掌握更多权力，但是至少Moldbug觉得是国会，而不是总统。
</p>
</div>
</div>

 <div id="outline-container-%E5%A4%B1%E4%B8%9A%E7%8E%87%E6%9A%82%E6%97%B6%E4%B8%8D%E6%98%AF%E5%BE%88%E9%AB%98%E3%80%82" class="outline-4">
 <h4 id="%E5%A4%B1%E4%B8%9A%E7%8E%87%E6%9A%82%E6%97%B6%E4%B8%8D%E6%98%AF%E5%BE%88%E9%AB%98%E3%80%82"> <span class="section-number-4">1.4.6.</span>  <a href="#%E5%A4%B1%E4%B8%9A%E7%8E%87%E6%9A%82%E6%97%B6%E4%B8%8D%E6%98%AF%E5%BE%88%E9%AB%98%E3%80%82">失业率暂时不是很高。</a></h4>
 <div class="outline-text-4" id="text-%E5%A4%B1%E4%B8%9A%E7%8E%87%E6%9A%82%E6%97%B6%E4%B8%8D%E6%98%AF%E5%BE%88%E9%AB%98%E3%80%82">
</div>
</div>

 <div id="outline-container-%E8%B5%84%E6%9C%AC%E4%B8%BB%E4%B9%89%E5%AE%B6%E7%8E%B0%E5%9C%A8%E4%BC%9A%E6%8A%95%E8%B5%84%EF%BC%8C%E4%BD%86%E6%98%AF%E5%AE%83%E4%BB%AC%E9%83%BD%E4%BC%9A%E8%A2%AB%E6%94%BF%E5%BA%9C%E6%8E%A7%E5%88%B6%E3%80%82" class="outline-4">
 <h4 id="%E8%B5%84%E6%9C%AC%E4%B8%BB%E4%B9%89%E5%AE%B6%E7%8E%B0%E5%9C%A8%E4%BC%9A%E6%8A%95%E8%B5%84%EF%BC%8C%E4%BD%86%E6%98%AF%E5%AE%83%E4%BB%AC%E9%83%BD%E4%BC%9A%E8%A2%AB%E6%94%BF%E5%BA%9C%E6%8E%A7%E5%88%B6%E3%80%82"> <span class="section-number-4">1.4.7.</span>  <a href="#%E8%B5%84%E6%9C%AC%E4%B8%BB%E4%B9%89%E5%AE%B6%E7%8E%B0%E5%9C%A8%E4%BC%9A%E6%8A%95%E8%B5%84%EF%BC%8C%E4%BD%86%E6%98%AF%E5%AE%83%E4%BB%AC%E9%83%BD%E4%BC%9A%E8%A2%AB%E6%94%BF%E5%BA%9C%E6%8E%A7%E5%88%B6%E3%80%82">资本主义家现在会投资，但是它们都会被政府控制。</a></h4>
 <div class="outline-text-4" id="text-%E8%B5%84%E6%9C%AC%E4%B8%BB%E4%B9%89%E5%AE%B6%E7%8E%B0%E5%9C%A8%E4%BC%9A%E6%8A%95%E8%B5%84%EF%BC%8C%E4%BD%86%E6%98%AF%E5%AE%83%E4%BB%AC%E9%83%BD%E4%BC%9A%E8%A2%AB%E6%94%BF%E5%BA%9C%E6%8E%A7%E5%88%B6%E3%80%82">
</div>
</div>

 <div id="outline-container-%E7%AE%A1%E7%90%86%E5%91%98%E4%BB%AC%E6%83%B3%E8%A6%81%E5%B9%B6%E4%B8%94%E8%80%97%E8%B4%B9%E7%B2%BE%E5%8A%9B%E6%88%90%E4%B8%BA%E4%B8%9A%E4%B8%BB%E3%80%82" class="outline-4">
 <h4 id="%E7%AE%A1%E7%90%86%E5%91%98%E4%BB%AC%E6%83%B3%E8%A6%81%E5%B9%B6%E4%B8%94%E8%80%97%E8%B4%B9%E7%B2%BE%E5%8A%9B%E6%88%90%E4%B8%BA%E4%B8%9A%E4%B8%BB%E3%80%82"> <span class="section-number-4">1.4.8.</span>  <a href="#%E7%AE%A1%E7%90%86%E5%91%98%E4%BB%AC%E6%83%B3%E8%A6%81%E5%B9%B6%E4%B8%94%E8%80%97%E8%B4%B9%E7%B2%BE%E5%8A%9B%E6%88%90%E4%B8%BA%E4%B8%9A%E4%B8%BB%E3%80%82">管理员们想要并且耗费精力成为业主。</a></h4>
 <div class="outline-text-4" id="text-%E7%AE%A1%E7%90%86%E5%91%98%E4%BB%AC%E6%83%B3%E8%A6%81%E5%B9%B6%E4%B8%94%E8%80%97%E8%B4%B9%E7%B2%BE%E5%8A%9B%E6%88%90%E4%B8%BA%E4%B8%9A%E4%B8%BB%E3%80%82">
</div>
</div>
</div>

 <div id="outline-container-%E7%BB%93%E8%AF%AD" class="outline-3">
 <h3 id="%E7%BB%93%E8%AF%AD"> <span class="section-number-3">1.5.</span>  <a href="#%E7%BB%93%E8%AF%AD">结语</a></h3>
 <div class="outline-text-3" id="text-%E7%BB%93%E8%AF%AD">
 <p>
阅读这种书的时候我们更想要预测未来，而不理解过去。
毕竟这是副标题的意义。
</p>

 <p>
1941年出版的书由“社会科学还在它们的童年”开篇很搞笑，因为我记得卡尔·马克思100年前使用同样的一句话，并且亚历山大·汉密尔顿早在80年前写的差不多。
</p>

 <p>
“管理者社会”是否打赢了？
还没有，但是它的进步不可以忽略。
我们现在生活的世界肯定不是自由市场社会。
</p>

 <p>
然而管理员们还没有打赢，至少在现在。
</p>
</div>
</div>
</section> <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">2.</span>  <a href="#Contacts">Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
 <dt>WordPress</dt> <dd> <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-08-03_Reading_Managerial-Revolution-by-James-Burnham.chinese.d/index.html"/>
  <id>https://lockywolf.net/2024-08-03_Reading_Managerial-Revolution-by-James-Burnham.chinese.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Notes on reading &quot;Pragmatic Programmer&quot; by Hunt and Thomas. (Chinese Review)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Notes on reading "Pragmatic Programmer" by Hunt and Thomas. (Chinese Review)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Review">1. Review</a></li>
 <li> <a href="#Reading">2. Reading</a></li>
 <li> <a href="#Notes">3. Notes</a></li>
 <li> <a href="#Words">4. Words</a></li>
</ul></div>
</nav> <p>
># - <b>- mode: org; eval: (visual-line-mode) -</b>-
</p>

 <p>

</p>

 <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">1.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
 <p>
最近看完了Thomas和Hunt著的“Pragmatic Programmer”第二版。
在这篇书评我要表达我的观点和感受。
</p>

 <p>
这个短评确实会很短，因为虽然作者们的确是很有名的，内容对新手程序员的确好用，但是对我而言，这本书没有特别大的影响。
</p>

 <p>
我要从标题开头。
什么是“Pragmatic Programmer”？
或者谁是”Pragmatic Programmer“？
”Pragmatic“翻译到中文应该是”实用主义程序员”或者“务实的程序员“。
</p>

 <p>
确实，表面上这本书大部分内容是关于如何写程序的。
但是，与大部分技术书不同，在这本书中代码不扮演最重要的角色。
也可以说，这本书的最重要的观点不在于如何写代码，而在于如何避免写代码。
就是说如何避免写僵化的代码。
</p>

 <p>
这本书不分册，但是我自己，非官方的说，可以把这本书分两部：第一个是如何使用已经存在的程序避免重复实现已经存在很久的功能，第二个是如何跟人类交流，以避免写出客户不需要的代码。
</p>

 <p>
这个知识对于领导高级程序员是必要的吗？
肯定是必要的。
我当作团队领导的时候，好几次遇到了和作者一样的困难，问过同样的问题。
</p>

 <p>
那为什么我说这本书没有特别的影响我呢？
因为虽然他们的很多建议有意义，但是动动脑子，就会自己找到这个观点。
而且他们的好几个建议我在我的前公司都尝试过，但是没成功。
</p>

 <p>
虽然计算机很复杂，但是跟真人一起工作更困难。
</p>

 <p>
关于软件工具的话，他们建议学习下列计算模型：
</p>

 <ol class="org-ol"> <li>Actor model</li>
 <li>Event model</li>
 <li>Contracts</li>
</ol> <p>
其中，contracts我没有见过，其它需要刷新。
其实，他们提到很多，但是大部分我早已学会。
</p>

 <p>
关于社会工作，他们提供了几个建议：
</p>

 <ol class="org-ol"> <li>如何准备好团队</li>
 <li>如何计划项目</li>
 <li>如何分析用户需求</li>
</ol> <p>
这三个方面每个高级程序员应该擅长。
希望随着我的经验增加，我会更好的理解这三个领域。
</p>

 <p>
这本书最大的缺点，我感觉是：它一点都不涉及跟领导的关系。
就是说，所有在这本书中提到的技巧，不管是技术的还是社会的，如果teamlead不能给老板介绍为什么这种技巧有用，就没办法使用它们。
</p>

 <p>
总而言之，这本书比较简单，高级开发者能在一个周末读完。
可以用以介绍teamlead的工作，但是我不能保证这是最好的说明书。
</p>
</div>
</section> <section id="outline-container-Reading" class="outline-2"> <h2 id="Reading"> <span class="section-number-2">2.</span>  <a href="#Reading">Reading</a></h2>
 <div class="outline-text-2" id="text-Reading">
</div>
</section> <section id="outline-container-Notes" class="outline-2"> <h2 id="Notes"> <span class="section-number-2">3.</span>  <a href="#Notes">Notes</a></h2>
 <div class="outline-text-2" id="text-Notes">
 <p>
Interesting things worth looking:
</p>

 <ol class="org-ol"> <li>Contracts (racket)</li>
 <li>Observer pattern</li>
 <li>Pub-Sub</li>
 <li>Streams</li>
 <li>Threading macro (pipelining)</li>
 <li>Delegation/mixins/traits</li>
 <li>Finite state machines</li>
 <li>Actor model</li>
 <li>Parameterized tests</li>
 <li>Fuzzing</li>
 <li>Netflix chaos-monkey</li>
</ol></div>
</section> <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">4.</span>  <a href="#Words">Words</a></h2>
 <div class="outline-text-2" id="text-Words">
 <ol class="org-ol"> <li>lay of the land :: disposition of circumstances</li>
 <li>hunker down :: stubbornly hold position</li>
 <li>trudge :: walk with heavy, slow steps</li>
 <li>pack rat :: an American hamster, figuratively someone who stores a lot of stuff or knowledge</li>
 <li>homily :: truism, sermon, platitude</li>
 <li>glut :: eagerness to do something (originally to eat, see gluttony)</li>
 <li>petulant :: irritable, childish</li>
 <li>forgo :: leave alone, abandon, renounce</li>
 <li>dead reckoning :: inertial navigation, navigation using a lot of estimates, based on previous position, figuratively trying to make decisions on pre-computing everything</li>
 <li>post-it note :: sticky note</li>
 <li>stout-heart (stouthearted) :: brave, courageous, plucky</li>
 <li> <p>
rule :: (not a ruler) a carpenter's tool, like a ruler, foldable from many segments
</p>

 <figure id="org8ce15a4"> <img src="Words/2024-12-13_09-34-46_screenshot.png" alt="2024-12-13_09-34-46_screenshot.png"></img></figure></li>
 <li> <p>
gauge :: (marking gauge) a tool to draw a line parallel to an edge, surface
</p>

 <figure id="orgc0a6d6a"> <img src="Words/2024-12-13_09-39-00_screenshot.png" alt="2024-12-13_09-39-00_screenshot.png"></img></figure></li>
 <li> <p>
plane :: a tool for flattening a piece of wood, getting rid of chips and rough edge
</p>

 <figure id="org828b71d"> <img src="Words/2024-12-13_10-22-54_screenshot.png" alt="2024-12-13_10-22-54_screenshot.png"></img></figure></li>
 <li>bevel :: an edge of a piece of wood which looks like a wedge</li>
 <li> <p>
chamfer :: an edge of a piece of wood (like bevel) which has been dulled for a aesthetic or safety reasons
</p>

 <figure id="orgf8c6fc4"> <img src="Words/2024-12-13_10-25-24_screenshot.png" alt="2024-12-13_10-25-24_screenshot.png"></img></figure></li>
 <li> <p>
chisel :: a woodworking tool, with a narrow, but long, blade, sort of like a wedge or a knife
</p>

 <figure id="org44d8038"> <img src="Words/2024-12-13_10-31-46_screenshot.png" alt="2024-12-13_10-31-46_screenshot.png"></img></figure></li>
 <li> <p>
mortise and tenon :: male-female connector when used in woodworking, mortise is female, tenon is male
</p>

 <figure id="org0af3624"> <img src="Words/2024-12-13_10-33-09_screenshot.png" alt="2024-12-13_10-33-09_screenshot.png"></img></figure></li>
 <li> <p>
brace :: (not a parenthesis) a tool for drilling huge holes manually, with a П-shaped horizontal handle
</p>

 <figure id="org52b2960"> <img src="Words/2024-12-13_10-37-53_screenshot.png" alt="2024-12-13_10-37-53_screenshot.png"></img></figure></li>
 <li> <p>
mallet :: a tool which looks like a hammer, but with a huge soft (rubber or wooden) head, which is used for bending more than punching in another object
</p>

 <figure id="org8cb91e1"> <img src="Words/2024-12-13_10-41-53_screenshot.png" alt="2024-12-13_10-41-53_screenshot.png"></img></figure></li>
 <li> <p>
clamp :: (a misleading word) while clamp can mean a small-ish tool, typically used at home to pinch some objects, say, drying clothing to a rope (a clothespin is a clamp), in engineering and technical work it is a kind of a vice, used for temporarily fixing an object by the means of pressure, usually huge. For Anglo-Saxons this is still a clamp.
</p>

 <figure id="org4d7c6c3"> <img src="Words/2024-12-13_10-46-48_screenshot.png" alt="2024-12-13_10-46-48_screenshot.png"></img></figure></li>
 <li> <p>
biscuit cutter/joiner :: a sophisticated carpentry tool, used to join two pieces of wood together using two mortises, and a comparatively small tenon, usually cookie-shaped, thus the name. Usually requires glue.
</p>

 <figure id="org8f66dcf"> <img src="Words/2024-12-13_11-03-24_screenshot.png" alt="2024-12-13_11-03-24_screenshot.png"></img></figure></li>
 <li>router :: no, not a tool for directing packets between computer networks, but a tool, nowadays electric, to carve out a trough, a chute, a spillway. Russian фреза, фрезер</li>
 <li> <p>
miter (mitre) box :: a tool for cutting wood at definite angles, looks like a box-frame with high-ish walls, which have angular cuts through, which you can put a board in, and insert a saw along the cuts, hence guiding it to that definite angle over the board. Russian стусло.
</p>

 <figure id="orgc006132"> <img src="Words/2024-12-13_11-28-26_screenshot.png" alt="2024-12-13_11-28-26_screenshot.png"></img></figure></li>
 <li>jig :: a tool created to guide the direction of another tool. The logic is similar to the mitre, but construction can vary greatly.</li>
 <li>chagrin :: distress, despair, sorrow, often mockingly "to the chagrin"</li>
 <li>to soar :: to fly high, metaphorically to reach a very high number (for a price or a value), to skyrocket, the opposite of "plummet"</li>
 <li>extricate :: to free oneself from something, to escape, to untangle</li>
 <li>awry :: oblique, distorted, wonky, improperly, usually used as "go awry" as "go wrong way"</li>
 <li>drop the ball :: fail in one's responsibilities, comes from ball games where dropping a ball is a mistake</li>
 <li>triplicate :: like "duplicate", but three times</li>
 <li>lark :: жаворонок,  Alaudidae</li>
 <li>reproach :: implied mild criticism, with good intention</li>
 <li>equanimity :: state of being calm under stress</li>
 <li>perfunctory :: done superficially, only to match the KPI, not whole-heartedly</li>
 <li>sagacity :: the state of being a sage</li>
 <li>placid :: calm and quiet</li>
 <li>twiddle :: wiggle, play with, twitch</li>
 <li>niggling :: petty and irritating</li>
 <li>keep one's wits about smth :: be aware of something, but still calm</li>
 <li>queasy :: feeling or causing nausea</li>
 <li>cull :: pick some ones from a larger group and kill (usually for population control)</li>
 <li>sullen :: gloomy and foreboding</li>
 <li>reticent :: not disclosing one's thoughts and opinions</li>
 <li>zany :: unusual and comical</li>
 <li>minnow :: small fish, similar to a carp, гольян</li>
 <li>skidding :: when a car is sliding forward because due to a too sharp brakeing the wheels lock, юзить</li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2024-11-29_Pragmatic-programmer-by-Thomas-and-Hunt.d/index.html"/>
  <id>https://lockywolf.net/2024-11-29_Pragmatic-programmer-by-Thomas-and-Hunt.d/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;gnuplot in action&quot; by Philipp K Janert (chinese)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading "gnuplot in action" by Philipp K Janert (chinese)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E5%89%8D%E8%A8%80">1. 前言</a></li>
 <li> <a href="#%E4%B9%A6%E7%B1%8D%E7%9A%84%E6%9E%84%E6%88%90">2. 书籍的构成</a></li>
 <li> <a href="#%E7%BE%8E%E8%B2%8C">3. 美貌</a></li>
</ul></div>
</nav> <div class="org-src-container">
 <pre class="src src-gnuplot" id="orgda55847">reset
set terminal pngcairo size 512,320
set output "output_graph.png"
set xtics rotate by -45
# Set the x and y axis labels
set xlabel "Date"
set ylabel "Price"
# Set the title of the graph
set title "Date vs Price"
set yrange [-10:10]
plot sin(x)
</pre>
</div>


 <figure id="orgab39f1b"> <img src="output_graph.png" alt="output_graph.png"></img></figure> <p>
最近我读完了“Gnuplot in action”，Philipp K Janet著。
在这篇文章我要写出我对这本书的看法。
如果你感觉有用或者有意思，请你们点赞。
</p>

 <section id="outline-container-%E5%89%8D%E8%A8%80" class="outline-2"> <h2 id="%E5%89%8D%E8%A8%80"> <span class="section-number-2">1.</span>  <a href="#%E5%89%8D%E8%A8%80">前言</a></h2>
 <div class="outline-text-2" id="text-%E5%89%8D%E8%A8%80">
 <p>
这本书属于我的“技术书系列”。
我从一开始就想要跟电脑对话，所以组成了一系列书目+比较宽泛的介绍电脑文化的各个方面。
这系列书目包含赛博空间相关的各种书，其中有：日常任务和自动化，网络交流和沟通，软件工程，数据分析，写作辅助，图片，听觉和言语相关的书。
然而因为每个领域都很广阔，没办法阅读所有相关的资料，就需要很谨慎的选择读什么。
</p>

 <p>
我选了gnuplot是因为gnuplot是最老且健在绘图软件。
作为最老的而且最容易适应意料之外的电脑，gnuplot影响了几乎所有的能绘曲线图的程序。
的确，如果你用过MATLAB或者Python.Matplotlib,会情不自禁感觉“跟gnuplot很像”。
</p>

 <p>
那为什么我没选gnuplot的官方说明书学习？
实际上有两个原因：
</p>

 <ol class="org-ol"> <li>gnuplot的官方资料真的不适合自学。     它包括整个gnuplot的参考信息，介绍每个命令、选项和输出终端，但是信息密度很高，而且没有任何情节，不告诉读者“如何尽快开始绘图”以及哪一个选项更重要。</li>
 <li>实际上我比较喜欢阅读有经验的专家工程师的主观观念。
官方资料可能更准确，但是技术书经常除了单纯事实以外也包含难定义的工程师经验。</li>
</ol> <p>
我看完这本书的时候还发现了第三个原因，虽然打算读书的时候没考虑它。
这本书除了gnuplot以外，还包括很多定性分析的知识。
</p>
</div>
</section> <section id="outline-container-%E4%B9%A6%E7%B1%8D%E7%9A%84%E6%9E%84%E6%88%90" class="outline-2"> <h2 id="%E4%B9%A6%E7%B1%8D%E7%9A%84%E6%9E%84%E6%88%90"> <span class="section-number-2">2.</span>  <a href="#%E4%B9%A6%E7%B1%8D%E7%9A%84%E6%9E%84%E6%88%90">书籍的构成</a></h2>
 <div class="outline-text-2" id="text-%E4%B9%A6%E7%B1%8D%E7%9A%84%E6%9E%84%E6%88%90">
 <p>
这本书大致分为三部分：
</p>

 <ol class="org-ol"> <li>gnuplot的介绍</li>
 <li>gnuplot的不明显细节</li>
 <li>定性分析技巧</li>
</ol> <p>
其实甚至如果你对gnuplot不感任何兴趣，第13和第14章仍值得阅读，因为作者比较好地介绍如何使用图形办法从数据提取被隐藏的含义。
在那里代码本身不是那么重要，你可以用MATLAB或Python重现它。
</p>

 <p>
gnuplot到底使用什么语言？
答案是：gnuplot带有自己的语言。
此语言很简单，但却是图灵完备的语言，现在拥有所有常见的程序语言基元：条件、循环、数组。
不幸的（或者幸运的？），它的数据分析功能不是很强，所以最好用其它更适合的语言准备数据文件，然后用gnuplot绘图。
</p>

 <p>
我在我的实验里用过GNU bash,因为它是最常见的以及最容易学习的语言，但是我不能推荐读者这么做。
Bash还是不太适合做数据分析。
你可以把数据从任何语言倒入gnuplot的默认输入口。
</p>

 <p>
与官方的资料不同，这本书很逐步介绍内容，多次使用不同的说法介绍同样的内容。
这既是长处又是短处，因为这本书有点长，大概需要个星期阅读。
</p>

 <p>
关于gnuplot本身我是有点不确定的。
的确，gnuplot的功能很多。
它能绘数据文件、函数（内建的和自定义的）、多个绘线风格、二维和三维图、彩色和黑白的图，而且支持很多输出格式以及互动性终端（比如windows）。
但是我感觉MATLAB或者Matplotlib的绘图功能一点都不亚于gnuplot的，并且不需要用户学习另一个程序语言。
</p>

 <p>
在总结中我要说：“Gnuplot in Action”扩大了我的观念，令我更深地理解数据分析和图形编程。
能不能给每个人推荐阅读它？
不确定。
</p>
</div>
</section> <section id="outline-container-%E7%BE%8E%E8%B2%8C" class="outline-2"> <h2 id="%E7%BE%8E%E8%B2%8C"> <span class="section-number-2">3.</span>  <a href="#%E7%BE%8E%E8%B2%8C">美貌</a></h2>
 <div class="outline-text-2" id="text-%E7%BE%8E%E8%B2%8C">
 <p>
在书评末尾我要写几句关于gnuplot支持的图表类型的话。
</p>

 <p>
 <b>时间序列</b>
</p>


 <figure id="org693304b"> <img src="./multivar-apache.png" alt="multivar-apache.png"></img></figure> <p>
 <b>multiplot</b>
</p>


 <figure id="orgb704dee"> <img src="./multivar-composition.png" alt="multivar-composition.png"></img></figure> <p>
 <b>直方图/矩形图</b>
</p>


 <figure id="org5e22b81"> <img src="./multivar-glass01.png" alt="multivar-glass01.png"></img></figure> <p>
 <b>多变量分布</b>
</p>


 <figure id="org9a6616e"> <img src="./multivar-glass02.png" alt="multivar-glass02.png"></img></figure> <p>
 <b>多元图</b>
</p>


 <figure id="org899db98"> <img src="./multivar-glass05.png" alt="multivar-glass05.png"></img></figure> <p>
 <b>饼形图</b>
</p>

 <p>
饼形图容易误导读者,请小心使用.
</p>


 <figure id="orgb026870"> <img src="./technique-piechart.png" alt="technique-piechart.png"></img></figure> <p>
 <b>讨论</b>
</p>

 <p>
虽然gnuplot支持比较多的图表类型,但它的默认外表不是很好看.
颜色,以及颜色系列不那么帮忙读者分辨曲线,而且不太好看.
页边空白太窄了,默认字体不一定支持所有的字符,请谨慎使用.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-01-12_Reading-Gnuplot/index.html"/>
  <id>https://lockywolf.net/2025-01-12_Reading-Gnuplot/index.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;The Practice of Programming&quot; by Kernighan and Pike. (chinese)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading "The Practice of Programming" by Kernighan and Pike. (chinese)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%E4%B9%A6%E8%AF%84">1. 书评</a>
 <ul> <li> <a href="#%E8%BF%99%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6%E4%BB%A5%E5%8F%8A%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E5%86%B3%E5%AE%9A%E9%98%85%E8%AF%BB%E5%AE%83%EF%BC%9F">1.1. 这是什么样的书以及我为什么决定阅读它？</a></li>
 <li> <a href="#%E4%B9%A6%E7%B1%8D%E4%BB%8B%E7%BB%8D%E4%BB%80%E4%B9%88%E4%B8%BB%E9%A2%98%EF%BC%9F">1.2. 书籍介绍什么主题？</a></li>
 <li> <a href="#%E6%88%91%E5%96%9C%E6%AC%A2%E5%92%8C%E4%B8%8D%E5%96%9C%E6%AC%A2%E4%BB%80%E4%B9%88%EF%BC%9F">1.3. 我喜欢和不喜欢什么？</a></li>
</ul></li>
</ul></div>
</nav> <figure id="org0a49d60"> <img src="./cover.jpg" alt="cover.jpg"></img></figure> <p>
当时是2008年.
我到学院的图书馆向图书管理员借《资本论》，马克思和恩格斯的那一本。
图书管理员困惑的看我，然后慎重地问我：“为什么？”
</p>

 <p>
有时候，我的性格是在遇到这种现象的时候：我已经提前准备好了简单的、容易理解的、合理的、无聊的答案，敷衍过度好奇的人，但是被问到这个问题的时刻，灵光一现，脱口而出某些似乎有理的但是完全不可信的答案。
“什么为什么？”我回答，“党历史课有期中考试，需要准备好”。
图书管理员们的眼睛变得比茶托还大，她们都呆住不动，甚至不关注我那位。
几秒钟的停顿之后接待我的员工再次谨慎地问我：“恢复了吗？”
捉弄已经开始了，没办法撤退，但是我不需要撤退，我已经知道怎么回答：“是选修课，可能选的人不多”。
图书馆员工回神了一点，然后告诉我她需要去储存室找一找，因为好久没人申请借这种书，但是储存室是在楼下不远的地方，只需要等十分钟。
</p>

 <p>
在这十分钟当中，我在图书馆站着看其他学生借阅什么书。
我旁边站着一个小伙，应该也是第一年或者第二年的。
他在咨询他的管理员：“请给我那本编程书… Kernighan和另一个人一起写的，我有点忘记了他的名字”。
图书管理员立刻理解他的意思，但是为了以防万一，她确认了一遍：”Kernighan和Ritchie,对吧？”
“不是”同学讲，“肯定不是Ritchie,这个我记得很清楚”。
“哦！我记起来了，Kernighan和Pike.”
“Kernighan和Pike？”员工再一次怀疑地问他？
“你肯定不是Ritchie吗？”
但是同学坚定他的选择，因此她也离开去储存室寻找未知的书。
</p>

 <p>
总之，过了很长时间，现在我在我的博客上发表我的书评：Kernighan和Pike的《编程实践》。
</p>

 <section id="outline-container-%E4%B9%A6%E8%AF%84" class="outline-2"> <h2 id="%E4%B9%A6%E8%AF%84"> <span class="section-number-2">1.</span>  <a href="#%E4%B9%A6%E8%AF%84">书评</a></h2>
 <div class="outline-text-2" id="text-%E4%B9%A6%E8%AF%84">
</div>

 <div id="outline-container-%E8%BF%99%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6%E4%BB%A5%E5%8F%8A%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E5%86%B3%E5%AE%9A%E9%98%85%E8%AF%BB%E5%AE%83%EF%BC%9F" class="outline-3">
 <h3 id="%E8%BF%99%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6%E4%BB%A5%E5%8F%8A%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E5%86%B3%E5%AE%9A%E9%98%85%E8%AF%BB%E5%AE%83%EF%BC%9F"> <span class="section-number-3">1.1.</span>  <a href="#%E8%BF%99%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6%E4%BB%A5%E5%8F%8A%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E5%86%B3%E5%AE%9A%E9%98%85%E8%AF%BB%E5%AE%83%EF%BC%9F">这是什么样的书以及我为什么决定阅读它？</a></h3>
 <div class="outline-text-3" id="text-%E8%BF%99%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6%E4%BB%A5%E5%8F%8A%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E5%86%B3%E5%AE%9A%E9%98%85%E8%AF%BB%E5%AE%83%EF%BC%9F">
 <p>
呃，肯定我决定阅读“不那么有名的Kernighan”不是因为我好奇我的老同学到底要借阅什么书。
</p>

 <p>
我着手阅读“编程实践”是因为我听过很多说它好的评论。
此评论强调这本书能介绍“编程职业性”的技巧，以避免聚焦在任何具体的语言或者算法。
也有很多评论一起提到《编程实践》和《实用者程序员》（已经在我的网站被评论）。
</p>

 <p>
总而言之，我在我的第一个工作单位刚刚开始工作在那时，读过《The Rules of Work》。
那本书给我介绍了很多工作成功的秘密，然后《实用者程序员》成为它的续编，适合具体职业后来的经验。
</p>

 <p>
《编程实践》又更具体的深入程序员的职业，所以其实它的几个方面过时了，因为职业本身变了。
确实它介绍的很多话题今天也值得学习，但是他们在例子里面使用的C语言风格，今天令人困惑。
平心而言，这本书不只使用纯C,它也用C++、Java、AWK、Perl以及汇编语言，就是说所有值得注意的语言。
但是作者很明显的还没有感受到我们当代程序员感到的痛苦。
</p>

 <p>
即便如此，《实用者程序员》只触及到一点点的话题，《编程实践》分析得更深，而且如果我不理解它们的大部分，就会感觉到更好奇。
</p>
</div>
</div>

 <div id="outline-container-%E4%B9%A6%E7%B1%8D%E4%BB%8B%E7%BB%8D%E4%BB%80%E4%B9%88%E4%B8%BB%E9%A2%98%EF%BC%9F" class="outline-3">
 <h3 id="%E4%B9%A6%E7%B1%8D%E4%BB%8B%E7%BB%8D%E4%BB%80%E4%B9%88%E4%B8%BB%E9%A2%98%EF%BC%9F"> <span class="section-number-3">1.2.</span>  <a href="#%E4%B9%A6%E7%B1%8D%E4%BB%8B%E7%BB%8D%E4%BB%80%E4%B9%88%E4%B8%BB%E9%A2%98%EF%BC%9F">书籍介绍什么主题？</a></h3>
 <div class="outline-text-3" id="text-%E4%B9%A6%E7%B1%8D%E4%BB%8B%E7%BB%8D%E4%BB%80%E4%B9%88%E4%B8%BB%E9%A2%98%EF%BC%9F">
 <p>
让我简洁的介绍每个程序员必须理解的主题，值得在大学一年跟计算机结构和初级程序语言一起学习：
</p>

 <ol class="org-ol"> <li>风格、美貌、注释和尊敬代码</li>
 <li>基础数据结构和算法：链表、数组、树、词典、排序和搜索</li>
 <li>系统设计：模块、组件、责任划分原理、资源管理</li>
 <li>程序员工具：编译器、解释器、高层辅助性程序语言</li>
 <li>测试</li>
 <li>调试</li>
 <li>性能分析</li>
 <li>移植</li>
 <li>文本处理和文本编辑器</li>
</ol> <p>
《编程实践》包含这个列表的每个主题部分内容，除了最后一项，提供足够探索该方向的知识，但是不把读者埋葬在不需要的细节。
从另一个角度来看，它说的多个事实今天听起来有点幼稚。
</p>

 <p>
这本书比较少触及团队工作，除了论设计系统的责任划分原理之外。
</p>
</div>
</div>

 <div id="outline-container-%E6%88%91%E5%96%9C%E6%AC%A2%E5%92%8C%E4%B8%8D%E5%96%9C%E6%AC%A2%E4%BB%80%E4%B9%88%EF%BC%9F" class="outline-3">
 <h3 id="%E6%88%91%E5%96%9C%E6%AC%A2%E5%92%8C%E4%B8%8D%E5%96%9C%E6%AC%A2%E4%BB%80%E4%B9%88%EF%BC%9F"> <span class="section-number-3">1.3.</span>  <a href="#%E6%88%91%E5%96%9C%E6%AC%A2%E5%92%8C%E4%B8%8D%E5%96%9C%E6%AC%A2%E4%BB%80%E4%B9%88%EF%BC%9F">我喜欢和不喜欢什么？</a></h3>
 <div class="outline-text-3" id="text-%E6%88%91%E5%96%9C%E6%AC%A2%E5%92%8C%E4%B8%8D%E5%96%9C%E6%AC%A2%E4%BB%80%E4%B9%88%EF%BC%9F">
 <p>
几个被提到的主题，尤其是编译器和解释器都介绍的不够详细，因此更会迷惑新手读者而不会启发。
即便如此，其它的主题都介绍的比较好。
</p>

 <p>
这本书不提到代码和文本的编辑器是有点可惜。
我感觉如果熟练的掌握它们，就可以很大的提高效率。
</p>

 <p>
我特别喜欢使用不同的语言解决同样的问题和对比速度和结果的那一章。
我那么喜欢它，甚至解决了它附属的几个练习题，不是心算，而是用另外一个我喜欢的程序语言。
</p>

 <p>
总而言之，叙述的风格类似于《C程序设计语言》。
就是说：代码里有错别字、艰难的主题被介绍地过度简单以及很多重要的细节被忽略；结果书籍不那么长，而且每一章有一尝试就可以读和理解的内容。
这本书的语言比较灵活和容易理解，不令人产生立刻关闭书和睡觉的欲望。
</p>

 <p>
非常好的是，每一章有附属的练习题。
我推荐所有有探索欲的一二年学生做它，因为它们助长正确的思想。
</p>

 <p>
我能不能把这本书推荐给所有人？
呵，熟悉的程序员应该不太需要阅读它，因为他们已经知道它的内容。
对编程什么都不知道的人应该不会理解它。
但是对大学一二年级的学生它可以作为简洁的职业介绍。
</p>

 <p>
谢谢大家阅读！
</p>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-02-03_The-Practice-of-Programming-by-Kernighan-and-Pike.d/index.chinese.html"/>
  <id>https://lockywolf.net/2025-02-03_The-Practice-of-Programming-by-Kernighan-and-Pike.d/index.chinese.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;The Practice of Programming&quot; by Kernighan and Pike. (russian)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading «The Practice of Programming» by Kernighan and Pike. (russian)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Содержание</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#%D0%9E%D0%B1%D0%B7%D0%BE%D1%80">1. Обзор</a>
 <ul> <li> <a href="#%D0%A7%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D0%B7%D0%B0-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0-%D0%B0-%D0%B7%D0%B0%D1%87%D0%B5%D0%BC-%D1%8F-%D0%B7%D0%B0-%D0%BD%D0%B5%D1%91-%D0%B2%D0%B7%D1%8F%D0%BB%D1%81%D1%8F?">1.1. Что это за книга а зачем я за неё взялся?</a></li>
 <li> <a href="#%D0%9A%D0%B0%D0%BA%D0%B8%D0%B5-%D1%82%D0%B5%D0%BC%D1%8B-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D0%B2-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B5?">1.2. Какие темы описаны в книге?</a></li>
 <li> <a href="#%D0%A7%D1%82%D0%BE-%D0%BC%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D1%81%D1%8C-%D0%B8-%D1%87%D1%82%D0%BE-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D1%81%D1%8C?">1.3. Что мне понравилось и что не понравилось?</a></li>
</ul></li>
</ul></div>
</nav> <figure id="orgfb2e122"> <img src="./cover.jpg" alt="cover.jpg"></img></figure> <p>
На дворе 2008 год.
Я прихожу в библиотеку института и прошу дать мне «Капитал», тот самый, за авторством Карла Маркса и Фридриха Энгельса.
Библиотекарши смотрят на меня недоумённо, и осторожно спрашивают: «а вам зачем?».
Бывает у меня в жизни такое, что уже заготовил заранее простой, понятный, разумный, скучный ответ, чтобы побыстрее отстали, а ровно в тот момент, когда этот самый вопрос задают, в мозгу молнией проскакивает какая-нибудь шальная мысль, и я ляпаю что-нибудь, с одной стороны правдоподобное, с другой невероятное.
«Как», отвечаю я им – «по Истории Партии коллоквиум, надо подготовиться».
Глаза у библиотекарш становятся как блюдца, они все замирают, даже те, кто заняты своим делом, поворачиваются ко мне, и на несколько секунд повисает пауза, а потом работающая со мной библиотекарша осторожно интересуется, «что, опять?».
Ну, уже шалость сделана, надо теперь поддержать марку, и я немедленно нахожусь, что ответить: «ну это же курс по выбору, видимо, мало, кто посещает».
Библиотекарша немного приходит в себя, и говорит, что ей нужно пойти в запасник, потому что таких книг у неё давно никто не просил, но запасник находится всего-навсего этажом ниже, поэтому мне нужно подождать всего-навсего минут десять, и затем удаляется.
</p>

 <p>
Эти десять минут я стою и смотрю, что берут в библиотеке другие студенты.
Рядом со мной стоит парнишка, видимо, тоже или с первого, или со второго курса, и просит у библиотекарши «Дайте, пожалуйста, Керниган, и этот, второй, как там его, книжку по программированию».
Библиотекарша всё немедленно понимает, но на всякий случай уточняет: «Керниган и Ритчи?»
«Нет», говорит парень, «точно не Ритчи. А, во, вспомнил, Керниган и Пайк.»
«Керниган и Пайк?» - недоверчиво интересуется библиотекарша - «точно не Ритчи?».
Но парень уверен в своём выборе, и она тоже уходит в запасник искать неведомую книжку.
</p>

 <p>
В общем, прошло чертовски много времени, и на этом блоге я публикую мой обзор на книгу «Практика программирования», за авторством Кернигана и Пайка.
</p>


 <section id="outline-container-%D0%9E%D0%B1%D0%B7%D0%BE%D1%80" class="outline-2"> <h2 id="%D0%9E%D0%B1%D0%B7%D0%BE%D1%80"> <span class="section-number-2">1.</span>  <a href="#%D0%9E%D0%B1%D0%B7%D0%BE%D1%80">Обзор</a></h2>
 <div class="outline-text-2" id="text-%D0%9E%D0%B1%D0%B7%D0%BE%D1%80">
</div>

 <div id="outline-container-%D0%A7%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D0%B7%D0%B0-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0-%D0%B0-%D0%B7%D0%B0%D1%87%D0%B5%D0%BC-%D1%8F-%D0%B7%D0%B0-%D0%BD%D0%B5%D1%91-%D0%B2%D0%B7%D1%8F%D0%BB%D1%81%D1%8F?" class="outline-3">
 <h3 id="%D0%A7%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D0%B7%D0%B0-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0-%D0%B0-%D0%B7%D0%B0%D1%87%D0%B5%D0%BC-%D1%8F-%D0%B7%D0%B0-%D0%BD%D0%B5%D1%91-%D0%B2%D0%B7%D1%8F%D0%BB%D1%81%D1%8F?"> <span class="section-number-3">1.1.</span>  <a href="#%D0%A7%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D0%B7%D0%B0-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0-%D0%B0-%D0%B7%D0%B0%D1%87%D0%B5%D0%BC-%D1%8F-%D0%B7%D0%B0-%D0%BD%D0%B5%D1%91-%D0%B2%D0%B7%D1%8F%D0%BB%D1%81%D1%8F?">Что это за книга а зачем я за неё взялся?</a></h3>
 <div class="outline-text-3" id="text-%D0%A7%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D0%B7%D0%B0-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0-%D0%B0-%D0%B7%D0%B0%D1%87%D0%B5%D0%BC-%D1%8F-%D0%B7%D0%B0-%D0%BD%D0%B5%D1%91-%D0%B2%D0%B7%D1%8F%D0%BB%D1%81%D1%8F?">
 <p>
Не, ну конечно, я взялся за менее известного Кернигана не потому, что мне было интересно, что же там такого хотел найти мой собрат по библиотеке.
</p>

 <p>
Я взялся читать «Практику Программирования», потому что слышал про неё много хороших отзывов в деле обучения программированию как профессии, без фокуса на конкретных языках, и потому что её часто упоминают вместе с уже рассмотренной на моём сайте ранее книгой «Программист-прагматик».
</p>

 <p>
Вообще, когда я только вышел на свою первую работу, я первым делом прочитал книгу «The Rules of Work», которая рассказывала про много какие аспекты достижения успеха на рабочем месте, а затем «Программист-прагматик» стал для меня продолжением этой книги, но уже адаптированным под конкретную специализацию.
</p>

 <p>
«Практика программирования» в каком-то смысле ещё более специализирована, и даже, я бы сказал, в заметной степени устарела.
Конечно, многие вещи, которые в ней описаны, пригодятся и сегодня, но та манера писать на языке Си, которая используется в примерах, в наши дни вызывает оторопь.
Справедливости ради, в книге используется не только Си, а ещё С++, Java, AWK, Perl, и даже язык ассемблера, то есть, в общем-то, все заслуживающие внимания языки программирования.
Но видно, что авторы ещё не имеют тех шишек, которые программисты сегодняшнего дня набили за многие годы использования Си.
</p>

 <p>
Тем не менее, многие темы, которые в «Программисте-прагматике» описаны поверхностно, в «Практике программирования» разобраны в намного больших подробностях, и, если бы я большую часть из них не знал довольно давно, многие темы показались бы мне любопытными.
</p>
</div>
</div>

 <div id="outline-container-%D0%9A%D0%B0%D0%BA%D0%B8%D0%B5-%D1%82%D0%B5%D0%BC%D1%8B-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D0%B2-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B5?" class="outline-3">
 <h3 id="%D0%9A%D0%B0%D0%BA%D0%B8%D0%B5-%D1%82%D0%B5%D0%BC%D1%8B-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D0%B2-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B5?"> <span class="section-number-3">1.2.</span>  <a href="#%D0%9A%D0%B0%D0%BA%D0%B8%D0%B5-%D1%82%D0%B5%D0%BC%D1%8B-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D0%B2-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B5?">Какие темы описаны в книге?</a></h3>
 <div class="outline-text-3" id="text-%D0%9A%D0%B0%D0%BA%D0%B8%D0%B5-%D1%82%D0%B5%D0%BC%D1%8B-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D0%B2-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B5?">
 <p>
Давайте вкратце я перечислю темы, которые должен знать каждый программист, и которые стоило бы изучать на первом курсе, одновременно с изучением архитектуры ЭВМ и первыми языками программирования:
</p>

 <ol class="org-ol"> <li>Стилистика, эстетика, комментарии и уважение к коду</li>
 <li>Базовые структуры данных: список, массив, дерево, словарь, сортировка, поиск,</li>
 <li>Проектирование систем: модули, разделение ответственности, ресурсы</li>
 <li>Инструменты программиста: компиляторы, интерпретаторы, служебные языки высокого уровня</li>
 <li>Тестирование</li>
 <li>Отладка</li>
 <li>Профилирование</li>
 <li>Портирование</li>
 <li>Работа с текстом и текстовые редакторы</li>
</ol> <p>
«Практика программирования» покрывает каждую из этих тем по чуть-чуть, кроме последней, даёт достаточно знаний, чтобы начать копать в нужную сторону, но не слишком погружает в дебри.
С другой стороны, многое из того, что в ней сказано, в наши дни звучит слегка наивно.
</p>

 <p>
Можно увидеть, что в книге мало затрагиваются темы работы в команде, ну, кроме вопроса разделения ответственности при проектировании системы.
</p>
</div>
</div>

 <div id="outline-container-%D0%A7%D1%82%D0%BE-%D0%BC%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D1%81%D1%8C-%D0%B8-%D1%87%D1%82%D0%BE-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D1%81%D1%8C?" class="outline-3">
 <h3 id="%D0%A7%D1%82%D0%BE-%D0%BC%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D1%81%D1%8C-%D0%B8-%D1%87%D1%82%D0%BE-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D1%81%D1%8C?"> <span class="section-number-3">1.3.</span>  <a href="#%D0%A7%D1%82%D0%BE-%D0%BC%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D1%81%D1%8C-%D0%B8-%D1%87%D1%82%D0%BE-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D1%81%D1%8C?">Что мне понравилось и что не понравилось?</a></h3>
 <div class="outline-text-3" id="text-%D0%A7%D1%82%D0%BE-%D0%BC%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D1%81%D1%8C-%D0%B8-%D1%87%D1%82%D0%BE-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D1%81%D1%8C?">
 <p>
Пара тем, которые в ней затронуты, а именно компиляторы и интерпретаторы, описаны совершенно недостаточно подробно, и, мне кажется, скорее смутят читателя-новичка, чем просветят.
Тем не менее, остальные рассмотрены достаточно хорошо.
</p>

 <p>
Очень жалко, что не затронута тема редакторов кода, мне кажется, с их помощью можно сильно повысить производительность.
</p>

 <p>
Особенно мне понравилась глава, в которой одна и та же задача решается на разных языках программирования с последующей сверкой результатов и скорости работы.
Она мне настолько понравилась, что я сделал из неё задания не просто «в уме», а тщательно, на отдельном языке программирования.
</p>

 <p>
В целом, стиль изложения напоминает в какой-то степени «Язык Си», то есть в коде есть опечатки, сложные темы представлены как излишне простые, многие интересные детали пропущены, но зато книга получилась недлинная, а каждая глава содержит объём информации, которые можно проглотить за один раз и понять.
Язык живой и понятный, не вызывает желания немедленно закрыть книжку и заснуть.
</p>

 <p>
Очень хорошо, что к каждой главе прилагаются упражнения, и я рекомендовал бы любопытным второкурсникам сделать их все, потому что они наводят на правильные мысли.
</p>

 <p>
Могу ли я рекомендовать эту книгу всем?
Ну, опытным программистам она, скорее всего, не нужна, они и так всё знают, «Программист-прагматик» будет полезнее。 Людям, не знающим про программирование ничего, она будет непонятна, но в качестве практического и понятного введения в профессию где-то на втором курсе она очень пригодится.
</p>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2025-02-03_The-Practice-of-Programming-by-Kernighan-and-Pike.d/index.russian.html"/>
  <id>https://lockywolf.net/2025-02-03_The-Practice-of-Programming-by-Kernighan-and-Pike.d/index.russian.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>The Project &quot;SICP-2020&quot;.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">The Project "SICP-2020".</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#TL;DR:-Project-artefact-summary-for-the-impatient.">1. TL;DR: Project artefact summary for the impatient.</a></li>
 <li> <a href="#Abstract">2. Abstract</a></li>
 <li> <a href="#The-Story">3. The Story</a>
 <ul> <li> <a href="#Time-Management-Video-Tutorial">3.1. Time Management Video Tutorial</a></li>
 <li> <a href="#SICP-Solution">3.2. SICP Solution</a>
 <ul> <li> <a href="#Solution">3.2.1. Solution</a></li>
 <li> <a href="#Schemetran">3.2.2. Schemetran</a></li>
 <li> <a href="#srfi-203:-A-Simple-Drawing-Language-in-the-Style-of-SICP">3.2.3. SRFI 203: A Simple Drawing Language in the Style of SICP</a></li>
 <li> <a href="#srfi-216:-SICP-Prerequisites-(Portable)">3.2.4. SRFI 216: SICP Prerequisites (Portable)</a></li>
</ul></li>
 <li> <a href="#ICFP-Paper">3.3. ICFP Paper</a></li>
 <li> <a href="#ICFP-Presentation">3.4. ICFP Presentation</a></li>
</ul></li>
 <li> <a href="#The-Post-Mortem">4. The Post-Mortem</a>
 <ul> <li> <a href="#Attempt-1">4.1. Attempt 1</a>
 <ul> <li> <a href="#Background">4.1.1. Background</a></li>
 <li> <a href="#The-first-attempt">4.1.2. The first attempt</a></li>
 <li> <a href="#Present-days">4.1.3. Present days</a></li>
 <li> <a href="#Imitation">4.1.4. Imitation</a></li>
 <li> <a href="#How-do-you-read-textbooks?">4.1.5. How do you read textbooks?</a></li>
</ul></li>
 <li> <a href="#Attempt-2">4.2. Attempt 2</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-TL;DR:-Project-artefact-summary-for-the-impatient." class="outline-2"> <h2 id="TL;DR:-Project-artefact-summary-for-the-impatient."> <span class="section-number-2">1.</span>  <a href="#TL;DR:-Project-artefact-summary-for-the-impatient.">TL;DR: Project artefact summary for the impatient.</a></h2>
 <div class="outline-text-2" id="text-TL;DR:-Project-artefact-summary-for-the-impatient.">
 <ol class="org-ol"> <li> <a href="https://www.youtube.com/watch?v=mRJr8p6fNOc">(YouTube) Link</a> ( <a href="http://server.lockywolf.net/~lockywolf/02_longterm-share/%d0%a3%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5%20%d0%b2%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%b5%d0%bc%20%d0%b8%20%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b0%d0%bc%d0%b8%20%d0%b2%d0%be%20%d0%b2%d1%80%d0%b5%d0%bc%d1%8f%20%d0%ba%d0%b0%d1%80%d0%b0%d0%bd%d1%82%d0%b8%d0%bd%d0%b0-mRJr8p6fNOc.mp4">Backup</a>) for the time management presentation (Russian)</li>
 <li> <a href="https://gitlab.com/Lockywolf/schemetran">(GitLab) Repository of Schemetran</a></li>
 <li> <a href="https://srfi.schemers.org/srfi-203/">(SRFI) Scheme Request for Implementation 203: A Simple Drawing Language in the Style of SICP</a> ( <a href="https://github.com/lockywolf/srfi-203/">(GitHub) Backup</a>)</li>
 <li> <a href="https://lockywolf.wordpress.com/2020/07/18/proposing-programming-language-features/">(WordPress) English lay summary for SRFI-203</a> ( <a href="https://lockywolf.net/2020-07-09_SRFI-203_Functional-Geometry/2020-07-09_SRFI-203-blog-post-Henderson-Functional-Geometry.txt.html">Backup</a>)</li>
 <li> <a href="https://habr.com/ru/post/519760/">(Habr) Russian Lay summary for SRFI-203</a> ( <a href="https://lockywolf.net/2020-09-18_Habr-SRFI-203-announcement/2020-09-18_habr-srfi-203-announcement.html">Backup</a>)</li>
 <li> <a href="https://srfi.schemers.org/srfi-216/">(SRFI) Scheme Request for Implementation 216: SICP Prerequisites</a> ( <a href="https://github.com/lockywolf/srfi-216">Backup</a>)</li>
 <li> <a href="https://lockywolf.wordpress.com/2020/11/06/let-us-discuss-srfi-216-sicp-prerequisites/">(WordPress) English Lay Summary</a> ( <a href="https://lockywolf.net/2020-11-04_BlogPost-Announcing-SRFI-216-SICP-Prerequisites-English/index.html">Backup</a>)</li>
 <li> <a href="https://habr.com/ru/post/526596/">(Habr) Russian Lay Summary of SRFI 216</a> ( <a href="https://lockywolf.net/2020-11-05_SRFI-216-Announcement-Post-Russian-Habr.html">Backup</a>)</li>
 <li> <a href="https://gitlab.com/Lockywolf/chibi-sicp/-/blob/master/index.org">(GitLab) The full SICP solution in the form of an interactive (literate programming) notebook</a></li>
 <li> <a href="https://habr.com/ru/post/495050/">(Habr) Conference announcement in Russian</a> ( <a href="https://lockywolf.net/2020-04-01-Scheme-Workshop-CfP-translation.html">Backup</a>)</li>
 <li> <a href="https://gitlab.com/Lockywolf/chibi-sicp/-/blob/master/Experience_Report.org">(GitLab) The interactive notebook (org-mode) version of the ICPF 2020 paper</a> ( <a href="https://www.eecs.umich.edu/techreports/cse/2021/CSE-TR-001-21.pdf">Technical report</a>) ( <a href="https://icfp20.sigplan.org/details/scheme-2020-papers/2/Experience-Report-on-Solving-the-Problem-Set-of-SICP-completely-">Conference Paper Profile</a>) ( <a href="https://arxiv.org/abs/2101.06759">arXiv</a>) ( <a href="https://lockywolf.net/2021-02-08_Solving-SICP-Experience-Report-on-solving-sicp-from-icfp-scheme-2020-html-version-from-2020-08-29/Experience_Report.html">HTML</a>) ( <a href="https://m.habr.com/ru/post/542226/">Habr (Russian)</a>) ( <a href="https://gitlab.com/Lockywolf/chibi-sicp/-/blob/master/2021-02-13_Experience-Report-Russian/Experience_Report_Russian.org">Russian backup</a>)</li>
 <li> <a href="https://gitlab.com/Lockywolf/chibi-sicp/-/blob/master/2020-08-28_Talk-at-ICFP-Scheme-Workshop/Experience-Report-Presentation.org">(GitLab) The interactive notebook (org-mode) ICFP 2020 presentation</a> ( <a href="https://gitlab.com/Lockywolf/chibi-sicp/-/blob/master/2020-08-28_Talk-at-ICFP-Scheme-Workshop/Experience-Report-Presentation.pdf">PDF</a>)</li>
 <li> <a href="https://www.youtube.com/watch?v=5ylf6Bg93hE&list=PLyrlk8Xaylp7rQA85egGQe_KzR8Aj6b5s&index=8">(YouTube) ICFP Presentation Video</a> ( <a href="http://server.lockywolf.net/~lockywolf/02_longterm-share/Experience%20Report%20on%20Solving%20the%20Problem%20Set%20of%20SICP%20completely.-5ylf6Bg93hE.mp4">Backup</a>)</li>
</ol></div>
</section> <section id="outline-container-Abstract" class="outline-2"> <h2 id="Abstract"> <span class="section-number-2">2.</span>  <a href="#Abstract">Abstract</a></h2>
 <div class="outline-text-2" id="text-Abstract">
 <p>
At some point in my life I decided that I need to know programming well in order to navigate the modern world.
</p>

 <p>
This page describes the project that I undertook in 2019-2020, with the goal of modernising computer science education.
Its purpose is to collect in one place links to all artefacts that were produced during the project execution, with commentary.
</p>

 <p>
The object of study was one of the most famous programming problem textbooks, the "Structure and Interpretation of Computer Programs", Second Edition, by Abelson, Sussman and Sussman.
At the moment of writing of this document, 24 years have passed since the release of SICP, and many things may change in computing in such a time frame.
Hence, apart from looking at the book itself, it was interesting how much effort would be additionally required in order to replicate the experience of the era when the book was still fresh.
</p>

 <p>
This documents tells the story of this endeavour.
Initially, there was no plan for making any kind of comprehensive post-mortem of the project. However, the project turned out so long, so labour-intensive, and eventually, so fruitful, that making a summary has arisen to be necessary, even if for myself and my readers only, and only to list artefacts.
</p>

 <p>
In short, I have solved all of the SICP's problem set in a consistent and reproducible fashion, using modern software, filling the gaps in supporting software and libraries, and documenting as much of my work as possible, in particular how much time every problem required, and how much external help was requested.
</p>

 <p>
I tried going through the book honestly, without cutting any corners whatsoever.
This would give me a chance to learn the subject as it is presented, along with all the technologies that the book may not touch directly but which would prove to be necessary.
</p>

 <p>
As a result, I have produced, quite unexpectedly, a far greater amount of artefacts than I had expected.
</p>

 <p>
Some philosophers would argue that people in general live by producing stories about themselves, and telling those stories to other people.
This is my final "story" of this project, containing links to all the sub-stories of the project.
</p>

 <p>
Interested readers are invited to read the Experience Report, as published in the Proceedings of the International Conference on Functional Programming 2020, archived as the University of Michigan Technical Report CSE-TR-001-21.
</p>

 <p>
In short, it required me 729 hours to go through the SICP.
</p>
</div>
</section> <section id="outline-container-The-Story" class="outline-2"> <h2 id="The-Story"> <span class="section-number-2">3.</span>  <a href="#The-Story">The Story</a></h2>
 <div class="outline-text-2" id="text-The-Story">
</div>

 <div id="outline-container-Time-Management-Video-Tutorial" class="outline-3">
 <h3 id="Time-Management-Video-Tutorial"> <span class="section-number-3">3.1.</span>  <a href="#Time-Management-Video-Tutorial">Time Management Video Tutorial</a></h3>
 <div class="outline-text-3" id="text-Time-Management-Video-Tutorial">
 <p>
In order to find time, as a working person, I needed a more systematic approach to time management.
Since I had already chosen org-mode as the solution medium, using org's time-management facilities was an obvious choice.
</p>

 <p>
Following the general principle that learning something is the easiest when you are teaching it, I organised a seminar/lecture.
This lecture was well-received by the audience, because it was given during the time of the corona-virus pandemic of 2020, so quite a lot of people found themselves locked in their home, and in the need to structure their time more efficiently.
</p>

 <p>
 <style>.embed-container {
 position: relative; 
 padding-bottom: 56.25%; 
 height: 0; 
 overflow: hidden; 
 max-width: 100%; 
 }
 .embed-container iframe, .embed-container object, .embed-container embed {
 position: absolute; 
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 }
 </style></p> <div class="embed-container">
    <iframe src="https://www.youtube.com/embed/mRJr8p6fNOc" frameborder="0">
   </iframe>
 </div>


 <p>
This approach is not unlike the one outlined by John Lees-Miller ( <a href="https://github.com/jdleesmiller">https://github.com/jdleesmiller</a>) in his article " <a href="https://jdlm.info/articles/2016/07/04/cto-time-minute-by-minute.html">How a Technical Co-founder Spends his Time</a>".
</p>

 <p>
There is no presentation file, because it was a hands-on tutorial given right into the time management software.
</p>

 <ul class="org-ul"> <li> <a href="https://www.youtube.com/watch?v=mRJr8p6fNOc">YouTube Link</a> (Russian) ( <a href="http://server.lockywolf.net/~lockywolf/02_longterm-share/%d0%a3%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5%20%d0%b2%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%b5%d0%bc%20%d0%b8%20%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b0%d0%bc%d0%b8%20%d0%b2%d0%be%20%d0%b2%d1%80%d0%b5%d0%bc%d1%8f%20%d0%ba%d0%b0%d1%80%d0%b0%d0%bd%d1%82%d0%b8%d0%bd%d0%b0-mRJr8p6fNOc.mp4">Backup</a>)</li>
</ul></div>
</div>

 <div id="outline-container-SICP-Solution" class="outline-3">
 <h3 id="SICP-Solution"> <span class="section-number-3">3.2.</span>  <a href="#SICP-Solution">SICP Solution</a></h3>
 <div class="outline-text-3" id="text-SICP-Solution">
 <p>
In short, I have solved all of the problem set, measuring how much time every problem required.
Furthermore, I had to write and publish several libraries, in order for the solution to be runnable on modern Schemes, and be as portable between them, as possible.
</p>
</div>

 <div id="outline-container-Solution" class="outline-4">
 <h4 id="Solution"> <span class="section-number-4">3.2.1.</span>  <a href="#Solution">Solution</a></h4>
 <div class="outline-text-4" id="text-Solution">
 <p>
Eventually, there were two artefacts produced from the solution of SICP:
</p>

 <ul class="org-ul"> <li> <a href="https://gitlab.com/Lockywolf/chibi-sicp/-/blob/master/index.org">The full solution in the form of an interactive (literate programming) notebook.</a></li>
 <li> <a href="https://gitlab.com/Lockywolf/chibi-sicp/-/blob/master/index.pdf">The printable pdf version</a></li>
</ul> <p>
The org-version is strongly preferred to the pdf version, because the pdf version requires certain uncanny tricks to get built, has no added value and is 5000 pages long.
</p>

 <p>
To use the org-mode one, you need chibi-scheme of a sufficiently recent version, ImageMagick, as well as GNU Fortran for the last two exercises.
Emacs is also strongly recommended.
</p>
</div>
</div>


 <div id="outline-container-Schemetran" class="outline-4">
 <h4 id="Schemetran"> <span class="section-number-4">3.2.2.</span>  <a href="#Schemetran">Schemetran</a></h4>
 <div class="outline-text-4" id="text-Schemetran">
 <p>
During the solution process, one of the exercises requires writing a Scheme interpreter in "a low level language of your choice".
In my case this choice happened to be Fortran, partly due to a relatively greater popularity of Fortran in 1996, partly due to relatively straightforward memory management.
It is a toy implementation, not recommended for any serious applications. It's likely leaking memory and compares symbols in \(O(n)\).
</p>

 <ul class="org-ul"> <li> <a href="https://gitlab.com/Lockywolf/schemetran">GitLab Repository of Schemetran</a></li>
</ul></div>
</div>


 <div id="outline-container-srfi-203:-A-Simple-Drawing-Language-in-the-Style-of-SICP" class="outline-4">
 <h4 id="srfi-203:-A-Simple-Drawing-Language-in-the-Style-of-SICP"> <span class="section-number-4">3.2.3.</span>  <a href="#srfi-203:-A-Simple-Drawing-Language-in-the-Style-of-SICP">SRFI 203: A Simple Drawing Language in the Style of SICP</a></h4>
 <div class="outline-text-4" id="text-srfi-203:-A-Simple-Drawing-Language-in-the-Style-of-SICP">
 <p>
Scheme Requests for Implementation is the Scheme's equivalent of XEPs or PEPs or JCPs.
In order to make possible working with graphics in Scheme, I had to implement several interfaces assumed to be "given" in SICP.
The graphics sub-library found its place as SRFI-203:
</p>

 <ul class="org-ul"> <li> <a href="https://srfi.schemers.org/srfi-203/">Scheme Request for Implementation 203: A Simple Drawing Language in the Style of SICP</a> (You need ImageMagick to use the sample implementation, and Emacs for it to be actually useful.) ( <a href="https://github.com/lockywolf/srfi-203/">(GitHub) Backup</a>)</li>
 <li> <a href="https://lockywolf.wordpress.com/2020/07/18/proposing-programming-language-features/">Lay summary blog post.</a> ( <a href="https://lockywolf.net/2020-07-09_SRFI-203_Functional-Geometry/2020-07-09_SRFI-203-blog-post-Henderson-Functional-Geometry.txt.html">Backup</a>)</li>
 <li> <a href="https://habr.com/ru/post/519760/">Russian Translation of the Lay summary.</a></li>
</ul></div>
</div>


 <div id="outline-container-srfi-216:-SICP-Prerequisites-(Portable)" class="outline-4">
 <h4 id="srfi-216:-SICP-Prerequisites-(Portable)"> <span class="section-number-4">3.2.4.</span>  <a href="#srfi-216:-SICP-Prerequisites-(Portable)">SRFI 216: SICP Prerequisites (Portable)</a></h4>
 <div class="outline-text-4" id="text-srfi-216:-SICP-Prerequisites-(Portable)">
 <p>
I also had to write a support library that packages the functions that are already available on modern schemes. (Unlike SRFI-203, which implemented an unportable subset.)
</p>

 <p>
There review process has been started on 2020-11-15.
There is also a Lay Summary in English, and in Russian.
</p>

 <ul class="org-ul"> <li> <a href="https://srfi.schemers.org/srfi-216/">(SRFI) Scheme Request for Implementation 216: SICP Prerequisites</a> ( <a href="https://lockywolf.net/2020-11-04_BlogPost-Announcing-SRFI-216-SICP-Prerequisites-English/index.html">Backup</a>)</li>
 <li> <a href="https://habr.com/ru/post/526596/">(Habr) Russian Lay Summary of 216</a> ( <a href="https://lockywolf.net/2020-11-05_SRFI-216-Announcement-Post-Russian-Habr.html">Backup</a>)</li>
 <li> <a href="https://lockywolf.wordpress.com/2020/11/06/let-us-discuss-srfi-216-sicp-prerequisites/">(WordPress) English Lay Summary</a> ( <a href="https://lockywolf.net/2020-11-04_BlogPost-Announcing-SRFI-216-SICP-Prerequisites-English/index.html">Backup</a>)</li>
</ul></div>
</div>
</div>

 <div id="outline-container-ICFP-Paper" class="outline-3">
 <h3 id="ICFP-Paper"> <span class="section-number-3">3.3.</span>  <a href="#ICFP-Paper">ICFP Paper</a></h3>
 <div class="outline-text-3" id="text-ICFP-Paper">
 <p>
Since this took so long and made me think too much, I decided to analyse the solution process and to document it for future reference.
The result of this analysis ended up being substantive enough for a whole "scientific" paper, and was later presented at ICFP 2020, Scheme Track.
</p>

 <p>
The papers were "published online", which means that ACM is going to maintain the website with a lay summary for a while, and hope that the papers will be mirrored by the major publishers… I guess.
</p>

 <p>
In any case, below you can find the:
</p>

 <ul class="org-ul"> <li> <a href="https://icfp20.sigplan.org/details/scheme-2020-papers/2/Experience-Report-on-Solving-the-Problem-Set-of-SICP-completely-">Conference Paper Profile</a></li>
 <li> <a href="https://www.eecs.umich.edu/techreports/cse/2021/CSE-TR-001-21.pdf">Full Technical Report of the University of Michigan</a> ( <a href="https://arxiv.org/abs/2101.06759">arXiv</a>)</li>
 <li> <a href="https://gitlab.com/Lockywolf/chibi-sicp/-/blob/master/Experience_Report.org">The interactive notebook (org-mode) version of the above.</a></li>
 <li> <a href="https://habr.com/ru/post/495050/">Conference announcement in Russian.</a></li>
</ul></div>
</div>

 <div id="outline-container-ICFP-Presentation" class="outline-3">
 <h3 id="ICFP-Presentation"> <span class="section-number-3">3.4.</span>  <a href="#ICFP-Presentation">ICFP Presentation</a></h3>
 <div class="outline-text-3" id="text-ICFP-Presentation">
 <p>
Every "scientific" paper nowadays needs a supplementary paper to explain what it is actually about.
This report is not an exception.
</p>

 <ul class="org-ul"> <li> <a href="https://gitlab.com/Lockywolf/chibi-sicp/-/blob/master/2020-08-28_Talk-at-ICFP-Scheme-Workshop/Experience-Report-Presentation.pdf">The pdf version of the presentation (513k). With GitLab preview.</a> ( <a href="https://gitlab.com/Lockywolf/chibi-sicp/-/tree/master/2020-08-28_Talk-at-ICFP-Scheme-Workshop">Org source</a>)</li>
 <li> <a href="https://www.youtube.com/watch?v=5ylf6Bg93hE&list=PLyrlk8Xaylp7rQA85egGQe_KzR8Aj6b5s&index=8">The video of the presentation</a>. ( <a href="http://server.lockywolf.net/~lockywolf/02_longterm-share/Experience%20Report%20on%20Solving%20the%20Problem%20Set%20of%20SICP%20completely.-5ylf6Bg93hE.mp4">Backup</a> 64M)</li>
</ul> <p>
 <style>.embed-container {
 position: relative; 
 padding-bottom: 56.25%; 
 height: 0; 
 overflow: hidden; 
 max-width: 100%; 
 }
 .embed-container iframe, .embed-container object, .embed-container embed {
 position: absolute; 
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 }
 </style></p> <div class="embed-container">
    <iframe src="https://www.youtube.com/embed/5ylf6Bg93hE" frameborder="0">
   </iframe>
 </div>

</div>
</div>
</section> <section id="outline-container-The-Post-Mortem" class="outline-2"> <h2 id="The-Post-Mortem"> <span class="section-number-2">4.</span>  <a href="#The-Post-Mortem">The Post-Mortem</a></h2>
 <div class="outline-text-2" id="text-The-Post-Mortem">
 <p>
There are things that divide your live into "before" and "after".
</p>

 <p>
I had originally planned to write a review on SICP within the loosely defined series of book reviews that had started with two books on writing Scientific Software, one by Rouson and Xu, and the other one by Oliveira and Stewart.
</p>

 <p>
I was naive. SICP proved to be a significantly more influential material… I had started writing a review several times, but failed at each of those, and eventually ended up just creating this file, where I just listed the artefacts created in process.
</p>

 <p>
I guess, some things just are too big to have a review written about them. Maybe it is a peculiar particular case of the uncertainty principle. You can write a review as long as the length of the process you are writing about is short compared to the length of your life. Then you can truly "see the object through the lens of your life". However, if the process takes too much time and effort that it stops being small compared to your life, writing a review becomes similar to a process of solving a coupled system of equations. The "review" would be an image of the object seen through itself.
</p>

 <p>
So at the end of the day I just decided to attach the two previous review attempts to this document, and let them be.
After all, perhaps every nice project must leave something undone… just as a hook in the memory.
</p>
</div>

 <div id="outline-container-Attempt-1" class="outline-3">
 <h3 id="Attempt-1"> <span class="section-number-3">4.1.</span>  <a href="#Attempt-1">Attempt 1</a></h3>
 <div class="outline-text-3" id="text-Attempt-1">
</div>

 <div id="outline-container-Background" class="outline-4">
 <h4 id="Background"> <span class="section-number-4">4.1.1.</span>  <a href="#Background">Background</a></h4>
 <div class="outline-text-4" id="text-Background">
 <p>
This story started a long time ago, in 2013, when I just entered a Post-Grad programme at one world-renown university.
I was writing a study program for myself, aimed at filling the gaps that the previous education had left, as well as outlining the potential future research and engineering directions.
</p>

 <p>
Functional programming had been on my list of interesting things for a long time, and I even had a book in mind, one highly regarded at one computer enthusiasts community that I had been a part of. The book was called "Practical Common Lisp", and it got my attention when a few of the frequent visitors of an online community I used to skim through at that time were making fun of the idea that anything Lisp-related may be to any extent practical.
</p>

 <p>
There was, however, and additional level of impracticality. (Evil people rumour that there are many more, but I refuse to acknowledge their existence.) The hint was give in the name of the book discussed above. If that Lisp was "common", there must as well be "uncommon" one, right?
</p>

 <p>
Indeed, such an uncommon Lisp exists.
(In fact there are several.)
The uncommon Lisp is called "Scheme", and has kind of an unhappy reputation.
Practical programmers often say that it is too academic, whereas academics make a wry face, and say that it's a great language, and they would have written a lot of code in it, unless they had been so busy doing Science.
</p>

 <p>
Science… indeed, science was the thing that brought me to Scheme. Apart from the ever-chasing me feeling, "what is it that they are actually talking about", I had been pointed towards Scheme by marketing.
</p>

 <p>
It may seem strange, but the background is the following:
I used to write a sizeable amount of neural-network and other statistics related code in Python and TensorFlow and Theano.
Most of it was just exercises, but they gave me that pythonic experience that I had needed for a long time, but didn't have an opportunity to get.
</p>

 <p>
And the most evident thing when using TensorFlow was that it in no sense actually fits into the model of being used through Python.
The computational graphs and the delayed evaluation were almost by themselves begging for being an organic feature of a language instead of being an artificially plugged-in entity.
</p>

 <p>
And then I remembered a feature from ages ago.
 I remembered a children's book (who can guess the name?)
 which was giving an entertaining introduction into computing; the book was classifying programming languages by their attribution to different tasks, and Lisp was ennobled with the "for Artificial Intelligence" title.
Hmm, I thought.
Why don't I find out what those people actually meant by Artificial Intelligence back then, in the Golden Era?
Additionally, we had a course on functional programming in the Uni, and we were supposed to have something like an embedding Lisp into a Categorical Abstract Machine as one of the course assignments.
Why don't I remember a thing from that course, I wonder?
</p>

 <p>
So Scheme comes into play with several kinds of an impetus.
The Artificial Intelligence of the day, childhood memories, friends' recommendations, university memories.
</p>

 <p>
How did I choose the book?
To my greatest shame, I don't remember.
I remember someone saying that people who studied through Structure and Interpretation of Computer Programs were the best programmers he (or she?) had ever met.
Who was this friend?
My memory fails me.
A man or a woman?
Online or offline?
It's a shame to loose memory at such a young age.
</p>
</div>
</div>

 <div id="outline-container-The-first-attempt" class="outline-4">
 <h4 id="The-first-attempt"> <span class="section-number-4">4.1.2.</span>  <a href="#The-first-attempt">The first attempt</a></h4>
 <div class="outline-text-4" id="text-The-first-attempt">
 <p>
I started reading the book several years later, in 2016.
In fact, I have read four chapters out of five, ignoring the last chapter, dealing with what I saw as assembly language tricks that I supposedly had already learnt back when it was my first university year.
Frankly speaking, that reading was perhaps worth doing once because it taught me that by only reading a book the chances of learning anything are close to zero.
I had remember spending a couple of weeks staring at my phone screen (I did read the book from a phone), and I had remembered a few function names, such as  <code>display</code>, but almost nothing else.
</p>
</div>
</div>


 <div id="outline-container-Present-days" class="outline-4">
 <h4 id="Present-days"> <span class="section-number-4">4.1.3.</span>  <a href="#Present-days">Present days</a></h4>
 <div class="outline-text-4" id="text-Present-days">
 <p>
Reading SICP was one of those things that kind of separate your life into  <b>before</b> and  <b>after</b>.
It is strangely hard to say why.
I mean, I could iterate over a number of reasons:
Because it shows you almost the whole multi-layer structure of the computer world, from the silicon to the command line?
(And even a little bit about graphics.)
Because it makes you approach every piece of software with a grain of salt?
That is, it makes you, at one hand, see how crappy software is even when the developers have spent a lot of effort on making it look like it isn't, and on the other hand,
makes you feel the itching that is telling you "I would have fixed this bug faster than they would even understand what I am talking about"?
Maybe because it, by hiding all the gory details that are unnecessary for the narrative under the carpet, hangs all this giant bag of heuristics right onto your neck, and makes yourself responsible for it?
</p>

 <p>
Or maybe because it makes you feel how little you actually know, and possibly even never be able to know much more?
</p>

 <p>
All of the above is true, but there seems to be still something that is hard to enunciate.
</p>

 <p>
Anyway, for myself it was very important because it was one of the few things that I did almost without any imitation.
</p>
</div>
</div>

 <div id="outline-container-Imitation" class="outline-4">
 <h4 id="Imitation"> <span class="section-number-4">4.1.4.</span>  <a href="#Imitation">Imitation</a></h4>
 <div class="outline-text-4" id="text-Imitation">
 <p>
Imitation plays such a large role in the modern life.
It's strange to write such a platitudinous phrase in a personal blog describing a personal experience, especially the one talking this much about seeking the truth.
</p>

 <p>
Computers make it astonishingly easy to tell lies.
They also make impossible possible, and let you see the unobvious truth where it is otherwise hard to see, however this requires effort, whereas lying happens almost naturally in the computer world.
</p>

 <p>
The biggest lie of computing is, perhaps, that computing is easy.
It is not.
No matter what Larry Wall or Guido van Rossum tell you.
</p>

 <p>
SICP makes you feel this difficulty to a full extent.
SICP is by no means the only book on programming in Scheme or programming artificial intelligence.
The other ones are also not really easy, but they are not  <b>deliberately</b> hard.
</p>

 <p>
Is it a general rule that good textbooks are always deliberately hard?
Landau-Lifshits comes to mind.
I always hated it, because it just readily ignores a lot of under-the-carpet problems with the story it tells.
</p>

 <p>
But maybe there is actually something in it?
The textbooks almost grow in difficulty from "hard because badly written" to "hard because huge" to "easy because well written" and finally to "hard because the authors deliberately nudge you into thinking about something"?
</p>
</div>
</div>

 <div id="outline-container-How-do-you-read-textbooks?" class="outline-4">
 <h4 id="How-do-you-read-textbooks?"> <span class="section-number-4">4.1.5.</span>  <a href="#How-do-you-read-textbooks?">How do you read textbooks?</a></h4>
 <div class="outline-text-4" id="text-How-do-you-read-textbooks?">
 <p>
When I was younger, I believed in "learning by attending classes", then in "learning by listening", then in "learning by reading…", I even used to be at "learning by doing".
</p>

 <p>
Now I am at the stage of "learning by writing".
</p>

 <p>
I guess, the next stage is "learning by teaching", and it all ends with "you're still be a fool at your deathbed".
</p>
</div>
</div>
</div>


 <div id="outline-container-Attempt-2" class="outline-3">
 <h3 id="Attempt-2"> <span class="section-number-3">4.2.</span>  <a href="#Attempt-2">Attempt 2</a></h3>
 <div class="outline-text-3" id="text-Attempt-2">
 <p>
It is relatively easy to make a programming language that is only capable of running on a single machine, or only on machines of a single product line.
In fact, making machine languages is a routine exercise in universities offering majors in computing.
Even I did not evade this exercise, even though I was not a low-level programming major.
</p>

 <p>
This, however, although pleasurable to machine engineers, limits the practicality of the language itself, as we usually want it to be useful on as many machines as possible.
</p>

 <p>
So far, only the C language has really managed to maintain a noticeable connection to the machine hardware, while still remaining a popular option among programmers.
Most of the other languages embrace portability.
</p>

 <p>
In fact, they embrace it so much, that the actual notion of machine parts remains nothing more than a nuisance for ordinary programmers, so huge is the abstraction gap.
These programmers reason with everyday things, such as texts, pictures, thoughts.
</p>

 <p>
Let me say, that in my view, SICP is a book that tries to build the bridge between the "reasoning about everyday things" and "reasoning about electric signals".
And exactly because the gap is so wide, the authors were faced with a difficult choice.
</p>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-10-29_scheme-story.html"/>
  <id>https://lockywolf.net/2020-10-29_scheme-story.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>SRFI-216: SICP Course Support (Russian)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">SRFI-216: SICP Course Support (Russian)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract">1. Abstract</a></li>
 <li> <a href="#%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%22%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%B8-%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D1%85-%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%22?">2. Что такое "Структура и Интерпретация Компьютерных Программ"?</a></li>
 <li> <a href="#%D0%A7%D0%B5%D0%BC-%D0%BE%D0%BD%D0%B0-%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%B0?">3. Чем она хороша?</a></li>
 <li> <a href="#%D0%A7%D0%B5%D0%BC-%D0%BE%D0%BD%D0%B0-%D0%BD%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D0%B5%D1%82-%D1%81%D0%B5%D0%B9%D1%87%D0%B0%D1%81?">4. Чем она не устраивает сейчас?</a></li>
 <li> <a href="#%D0%97%D0%B0%D1%87%D0%B5%D0%BC-%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-SICP-%D0%BD%D0%B0-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85-Scheme-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%D1%85?">5. Зачем проходить SICP на других Scheme-системах?</a></li>
 <li> <a href="#%D0%A7%D1%82%D0%BE-%D0%B6%D0%B5-%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C?">6. Что же делать?</a></li>
 <li> <a href="#%D0%A7%D1%82%D0%BE-%D0%B2%D1%85%D0%BE%D0%B4%D0%B8%D1%82-%D0%B2-SRFI-216?">7. Что входит в SRFI-216?</a>
 <ul> <li> <a href="#%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B5-%D1%87%D0%B8%D1%81%D0%BB%D0%B0.">7.1. Случайные числа.</a></li>
 <li> <a href="#%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-%D0%B4%D0%B0%D1%82%D0%B5-%D0%B8-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8.">7.2. Доступ к дате и времени.</a></li>
 <li> <a href="#%D0%91%D1%83%D0%BB%D0%B5%D0%B2%D1%8B-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F.">7.3. Булевы значения.</a></li>
 <li> <a href="#%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.">7.4. Многопоточное программирование.</a></li>
 <li> <a href="#Streams.">7.5. Streams.</a></li>
 <li> <a href="#%D0%A7%D1%82%D0%BE-%D0%BD%D0%B0%D1%81%D1%87%D1%91%D1%82-%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8?">7.6. Что насчёт графики?</a></li>
</ul></li>
 <li> <a href="#%D0%A7%D0%B5%D0%BC-%D1%8F-%D0%BC%D0%BE%D0%B3%D1%83-%D0%BF%D0%BE%D0%BC%D0%BE%D1%87%D1%8C?">8. Чем я могу помочь?</a></li>
 <li> <a href="#%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B">9. Контакты</a></li>
</ul></div>
</nav> <section id="outline-container-Abstract" class="outline-2"> <h2 id="Abstract"> <span class="section-number-2">1.</span>  <a href="#Abstract">Abstract</a></h2>
 <div class="outline-text-2" id="text-Abstract">
 <p>
 <a href="https://habr.com/ru/post/526596/">Статья опубликованна на ресурсе Хабрахабр.</a>
</p>

 <p>
TL;DR: Я написал и выложил на всеобщее обсуждение Scheme Request for Implementation 216.
Он нацелен на то, чтобы одна из самых известных в мире учебных программ по Computer Science, Structure and Interpretation of Computer Programs, стала выполнимой в полном объёме не только на MIT/GNU Scheme, но и на других интерпретаторах и компиляторах, в частности, на вашем любимом. 
И если раньше запрос в багтрекер "сделайте, пожалуйста, поддержку SICP" звучал бы расплывчато, то после принятия данного SRFI, поддержка SICP должна стать намного более общепринятой.
</p>

 <p>
Чтобы написать этот документ, я проработал SICP целиком, выделил части, до сих пор не вошедшие в стандарт, и сформулировал их в качестве двух документов, SRFI-203 (принят в сентябе 2020), и данного, SRFI-216, к которому я и приглашаю всех присоединиться.
</p>

 <p>
За техническими деталями и подробностями, прошу под кат.
</p>
</div>
</section> <section id="outline-container-%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%22%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%B8-%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D1%85-%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%22?" class="outline-2"> <h2 id="%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%22%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%B8-%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D1%85-%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%22?"> <span class="section-number-2">2.</span>  <a href="#%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%22%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%B8-%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D1%85-%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%22?">Что такое "Структура и Интерпретация Компьютерных Программ"?</a></h2>
 <div class="outline-text-2" id="text-%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%22%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%B8-%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D1%85-%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%22?">
 <p>
(Structure and Interpretation of Computer Programs)
Это одна из самых известных учебных программ по "общему программированию", ранее преподаваемая в Массачусеттском Технологическом Институте (MIT), в качестве вступительной, а ныне перенесённая на старшие курсы из-за гигантского объёма и глубины, которая, как считается более программисту не требуется.
Курс проводит студента от однострочной программы, которая складывает два числа, до написания собственной реализации Scheme, включающей компилятор и интерпретатор.
</p>

 <p>
Первое издание было выпущено в 80е годы, второе  <a href="https://mitpress.mit.edu/books/structure-and-interpretation-computer-programs-second-edition">вышло в 1996 году</a>. Существует  <a href="https://newstar.rinet.ru/~goga/sicp/">русский перевод</a>. Она была одной из первых книг, к которым стал прилагаться веб-сайт. ( <a href="https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-4.html#%_toc_start">Который работает до сих пор.</a>)
</p>
</div>
</section> <section id="outline-container-%D0%A7%D0%B5%D0%BC-%D0%BE%D0%BD%D0%B0-%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%B0?" class="outline-2"> <h2 id="%D0%A7%D0%B5%D0%BC-%D0%BE%D0%BD%D0%B0-%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%B0?"> <span class="section-number-2">3.</span>  <a href="#%D0%A7%D0%B5%D0%BC-%D0%BE%D0%BD%D0%B0-%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%B0?">Чем она хороша?</a></h2>
 <div class="outline-text-2" id="text-%D0%A7%D0%B5%D0%BC-%D0%BE%D0%BD%D0%B0-%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%B0?">
 <p>
Эта программа, как будто бы, ставит перед собой две цели.
Одна – это построить мостик через пропасть абстракции, зияющую между "вычислениями на базовых вычислительных элементах", таких, как сумматор и ячейка памяти, и высокоуровневыми абстракциями вида "если слово отсутствует в словаре, подчеркни его красным".
Вторая – это познакомить программиста с наиболее важными программными архитектурами, разработанных инженерами за много лет.
</p>
</div>
</section> <section id="outline-container-%D0%A7%D0%B5%D0%BC-%D0%BE%D0%BD%D0%B0-%D0%BD%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D0%B5%D1%82-%D1%81%D0%B5%D0%B9%D1%87%D0%B0%D1%81?" class="outline-2"> <h2 id="%D0%A7%D0%B5%D0%BC-%D0%BE%D0%BD%D0%B0-%D0%BD%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D0%B5%D1%82-%D1%81%D0%B5%D0%B9%D1%87%D0%B0%D1%81?"> <span class="section-number-2">4.</span>  <a href="#%D0%A7%D0%B5%D0%BC-%D0%BE%D0%BD%D0%B0-%D0%BD%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D0%B5%D1%82-%D1%81%D0%B5%D0%B9%D1%87%D0%B0%D1%81?">Чем она не устраивает сейчас?</a></h2>
 <div class="outline-text-2" id="text-%D0%A7%D0%B5%D0%BC-%D0%BE%D0%BD%D0%B0-%D0%BD%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D0%B5%D1%82-%D1%81%D0%B5%D0%B9%D1%87%D0%B0%D1%81?">
 <p>
За исключением двух программных систем, (MIT/GNU Scheme и Racket, из которых только одна (MIT) является Scheme-системой в полном смысле этого слова) SICP непроходима на большинстве Схем, которые встречаются в живой природе.
</p>

 <p>
Вернее, для человека, который умудрился пройти в SICP достаточно далеко, слово "непроходима" является скорее вызовом, чем препятствием, однако задачи, требующие отсутствующего функционала, встречаются в программе раньше, чем приходит состояние всемогущества.
</p>
</div>
</section> <section id="outline-container-%D0%97%D0%B0%D1%87%D0%B5%D0%BC-%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-SICP-%D0%BD%D0%B0-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85-Scheme-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%D1%85?" class="outline-2"> <h2 id="%D0%97%D0%B0%D1%87%D0%B5%D0%BC-%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-SICP-%D0%BD%D0%B0-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85-Scheme-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%D1%85?"> <span class="section-number-2">5.</span>  <a href="#%D0%97%D0%B0%D1%87%D0%B5%D0%BC-%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-SICP-%D0%BD%D0%B0-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85-Scheme-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%D1%85?">Зачем проходить SICP на других Scheme-системах?</a></h2>
 <div class="outline-text-2" id="text-%D0%97%D0%B0%D1%87%D0%B5%D0%BC-%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-SICP-%D0%BD%D0%B0-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85-Scheme-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%D1%85?">
 <p>
Одно из главных достоинств SICP – это то, что он рассказывает, как построить "систему искусственного интеллекта" (в данном случае под ней понимается язык программирования высокого уровня) на практически любом Тьюринг-полном субстрате.
Но тем более обидно осознавать, что проработать её в полной мере можно исключительно на двух программных системах, одна из которых не поддерживает Windows (MIT, по крайней мере, официально), а вторая вообще заявляет, что не является Scheme.
</p>

 <p>
К тому же, основная сила Scheme в наши дни – это не сила языка общего назначения (хотя писать программы общего назначения тоже получаются отличные, а компания Cisco до сих пор поддерживает собственную реализацию), а возможность встраивания его как языка расширения в практически любой программный продукт, написанный на любом языке. 
Есть Схемы, работающие на JVM, CLR, Fortran, JavaScript.
Схема является языком написания расширений расширения таких проектов как GNU Debugger, GNU GIMP и GNU Guix.
</p>

 <p>
Для заинтересовавшегося программиста логичнее осваивать SICP на той Scheme, которая лучше всего встраивается в ту инфраструктуру, к которой он привык.
</p>

 <p>
На реализацию этой цели и направлен данный SRFI.
</p>
</div>
</section> <section id="outline-container-%D0%A7%D1%82%D0%BE-%D0%B6%D0%B5-%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C?" class="outline-2"> <h2 id="%D0%A7%D1%82%D0%BE-%D0%B6%D0%B5-%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C?"> <span class="section-number-2">6.</span>  <a href="#%D0%A7%D1%82%D0%BE-%D0%B6%D0%B5-%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C?">Что же делать?</a></h2>
 <div class="outline-text-2" id="text-%D0%A7%D1%82%D0%BE-%D0%B6%D0%B5-%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C?">
 <p>
Поскольку автор сих строк всё-таки приобрёл (ложное) ощущение всемогущества, он решил поставить пару бетонных опор для того мостика, о котором говорилось несколькими абзацами выше.
Конкретно это выразилось в написании документа Scheme Request For Implementation, под номером 216, в котором собран список требований, которым должен удовлетворять интерпретатор Scheme для того, чтобы на нём запускался полный набор примеров программного кода из SICP.
</p>

 <p>
Конечно, сам факт наличия документа ещё ничего не гарантирует, необходимо, чтобы функционал был реализован в программных системах, однако документ сопровождается "возможной реализацией", которая работает как минимум на одной программной системе, отсутствующей в списке выше (Chibi-Scheme).
</p>
</div>
</section> <section id="outline-container-%D0%A7%D1%82%D0%BE-%D0%B2%D1%85%D0%BE%D0%B4%D0%B8%D1%82-%D0%B2-SRFI-216?" class="outline-2"> <h2 id="%D0%A7%D1%82%D0%BE-%D0%B2%D1%85%D0%BE%D0%B4%D0%B8%D1%82-%D0%B2-SRFI-216?"> <span class="section-number-2">7.</span>  <a href="#%D0%A7%D1%82%D0%BE-%D0%B2%D1%85%D0%BE%D0%B4%D0%B8%D1%82-%D0%B2-SRFI-216?">Что входит в SRFI-216?</a></h2>
 <div class="outline-text-2" id="text-%D0%A7%D1%82%D0%BE-%D0%B2%D1%85%D0%BE%D0%B4%D0%B8%D1%82-%D0%B2-SRFI-216?">
 <p>
Функционал, требуемый для прохождение SICP, но не общепринятый.
</p>
</div>

 <div id="outline-container-%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B5-%D1%87%D0%B8%D1%81%D0%BB%D0%B0." class="outline-3">
 <h3 id="%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B5-%D1%87%D0%B8%D1%81%D0%BB%D0%B0."> <span class="section-number-3">7.1.</span>  <a href="#%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B5-%D1%87%D0%B8%D1%81%D0%BB%D0%B0.">Случайные числа.</a></h3>
 <div class="outline-text-3" id="text-%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B5-%D1%87%D0%B8%D1%81%D0%BB%D0%B0.">
 <p>
Предлагается функция  <code>(random x)</code>, которая генерирует случайное целое число меньше заданного.
В связи с тем, что Схема спроектированна так, чтобы работать в том числе на CPU, не имеющих ни доступа к часам, ни источника энтропии, средства для работы со случайными числами не входят в стандарт R7RS-small. (Но будут входить в -large, вероятно.)
</p>
</div>
</div>

 <div id="outline-container-%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-%D0%B4%D0%B0%D1%82%D0%B5-%D0%B8-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8." class="outline-3">
 <h3 id="%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-%D0%B4%D0%B0%D1%82%D0%B5-%D0%B8-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8."> <span class="section-number-3">7.2.</span>  <a href="#%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-%D0%B4%D0%B0%D1%82%D0%B5-%D0%B8-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8.">Доступ к дате и времени.</a></h3>
 <div class="outline-text-3" id="text-%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-%D0%B4%D0%B0%D1%82%D0%B5-%D0%B8-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8.">
 <p>
Предлагается функция  <code>(runtime)</code>, возвращающая значение текущего времени.
По причинам, эквивалентным указанным выше, функционал для работы с датой также не входила в базовый стандарт в течение долгого времени, а когда был принят, имена функций не совпадали с таковыми из 1996 года.
</p>
</div>
</div>

 <div id="outline-container-%D0%91%D1%83%D0%BB%D0%B5%D0%B2%D1%8B-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F." class="outline-3">
 <h3 id="%D0%91%D1%83%D0%BB%D0%B5%D0%B2%D1%8B-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F."> <span class="section-number-3">7.3.</span>  <a href="#%D0%91%D1%83%D0%BB%D0%B5%D0%B2%D1%8B-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F.">Булевы значения.</a></h3>
 <div class="outline-text-3" id="text-%D0%91%D1%83%D0%BB%D0%B5%D0%B2%D1%8B-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F.">
 <p>
В связи с тем, что Схема очень старый язык, работа с логическими выражениями была в разных реализациях осуществлена по-разному.
Например, в каких-то реализациях символ  <code>#f</code>, существует, а в каких-то нет.
Также, во некоторых системах, по традиции LISP, пустой список также является "ложным" значением.
</p>

 <p>
Для большей абстракции, таким образом, SICP нигде не использует ложное выражение само по себе, а пользуется переменными/константами  <code>true</code> и  <code>false</code>, которые гарантированно имеют, соответсвенно, верное значение, и ложное значение.
</p>

 <p>
Эти две константы также реализуются в данном документе.
</p>
</div>
</div>

 <div id="outline-container-%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5." class="outline-3">
 <h3 id="%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5."> <span class="section-number-3">7.4.</span>  <a href="#%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.">Многопоточное программирование.</a></h3>
 <div class="outline-text-3" id="text-%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.">
 <p>
Вопрос многопоточного программирования был крайне популярен в те годы, когда выпускался из института (десять лет назад), и хотя некоторый прогресс заметен, до сих пор нельзя сказать, что какая-то конкретная модель мультитрединга победила все остальные.
</p>

 <p>
Тем не менее, у любой многопоточной модели есть два базовых компонента, без которых она не может существовать: параллельное выполнение задач и упорядочивание входа в критические места.
</p>

 <p>
SICP, соответственно, требует существование двух примитивов,  <code>parallel-execute</code> и   <code>test-and-set!</code>, которые ровно эти две концепции и призваны прояснить.
</p>

 <p>
Сама же по себе многопоточная модель Scheme сходна с таковой в Java.
</p>
</div>
</div>

 <div id="outline-container-Streams." class="outline-3">
 <h3 id="Streams."> <span class="section-number-3">7.5.</span>  <a href="#Streams.">Streams.</a></h3>
 <div class="outline-text-3" id="text-Streams.">
 <p>
"Стримы" – это бесконечные структуры данных, схожие с генераторами/итераторами в языке Python (или использовавшимся ранее   <code>xrange</code>), только несравнимо более гибкие.
</p>

 <p>
В принципе, они реализуемы в текущем стандарте, и не должны бы попадать в данный документ, однако, реализация базового примитива  <code>cons-stream</code>, не может быть функцией, потому что не вычисляет свой второй аргумент.
Про встроенные механизмы же синтаксического расширения SICP не говорит ничего.
</p>

 <p>
Соответственно, эта структура также реализуется в данном proposal.
</p>
</div>
</div>

 <div id="outline-container-%D0%A7%D1%82%D0%BE-%D0%BD%D0%B0%D1%81%D1%87%D1%91%D1%82-%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8?" class="outline-3">
 <h3 id="%D0%A7%D1%82%D0%BE-%D0%BD%D0%B0%D1%81%D1%87%D1%91%D1%82-%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8?"> <span class="section-number-3">7.6.</span>  <a href="#%D0%A7%D1%82%D0%BE-%D0%BD%D0%B0%D1%81%D1%87%D1%91%D1%82-%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8?">Что насчёт графики?</a></h3>
 <div class="outline-text-3" id="text-%D0%A7%D1%82%D0%BE-%D0%BD%D0%B0%D1%81%D1%87%D1%91%D1%82-%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8?">
 <p>
Работа с графикой не затрагивается в данном документе.
Возможные примитивы опубликованы в SRFI-203.
</p>
</div>
</div>
</section> <section id="outline-container-%D0%A7%D0%B5%D0%BC-%D1%8F-%D0%BC%D0%BE%D0%B3%D1%83-%D0%BF%D0%BE%D0%BC%D0%BE%D1%87%D1%8C?" class="outline-2"> <h2 id="%D0%A7%D0%B5%D0%BC-%D1%8F-%D0%BC%D0%BE%D0%B3%D1%83-%D0%BF%D0%BE%D0%BC%D0%BE%D1%87%D1%8C?"> <span class="section-number-2">8.</span>  <a href="#%D0%A7%D0%B5%D0%BC-%D1%8F-%D0%BC%D0%BE%D0%B3%D1%83-%D0%BF%D0%BE%D0%BC%D0%BE%D1%87%D1%8C?">Чем я могу помочь?</a></h2>
 <div class="outline-text-2" id="text-%D0%A7%D0%B5%D0%BC-%D1%8F-%D0%BC%D0%BE%D0%B3%D1%83-%D0%BF%D0%BE%D0%BC%D0%BE%D1%87%D1%8C?">
 <p>
Во-первых, существование качественных стандартов невозможно без изучения их большим количеством людей. 
Очень нужны ревью предложения и кода.
</p>

 <p>
Если у вас уже есть любимая реализация Scheme, поинтересуйтесь у людей, которые за неё отвечают, возможна ли реализация данного стандарта в вашей любимой системе.
</p>

 <p>
Расскажите своим друзьям, студентам и энтузиастам, о том, что учиться по SICP не обязательно должно быть процессом, полным боли.
</p>

 <p>
Если вы преподаёте программирование, или функциональное программирование, или у вас есть знакомые преподаватели, предложите им взглянуть на предлагаемое расширение, их фидбек будет в высшей степени ценным.
</p>

 <p>
Ну, и надо сказать, что я просто считаю Схему отличным языком.
Пользуйтесь Схемой, это можно делать на громадном количестве платформ, включая Plan9, Android, WebAssembly, и встраивать в другие программы.
</p>
</div>
</section> <section id="outline-container-%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B" class="outline-2"> <h2 id="%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B"> <span class="section-number-2">9.</span>  <a href="#%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B">Контакты</a></h2>
 <div class="outline-text-2" id="text-%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B">
 <p>
Если вам показался этот пост полезным, на мои заметки можно подписаться, или задонатить без подписки:
</p>


 <dl class="org-dl"> <dt>WordPress</dt> <dd> <a href="https://lockywolf.wordpress.com">https://lockywolf.wordpress.com</a></dd>
 <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>Web 1.0</dt> <dd> <a href="https://lockywolf.net">https://lockywolf.net</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
 <dt>LiberaPay</dt> <dd> <a href="https://liberapay.com/independentresearch/donate">https://liberapay.com/independentresearch/donate</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-11-05_SRFI-216-Announcement-Post-Russian-Habr.html"/>
  <id>https://lockywolf.net/2020-11-05_SRFI-216-Announcement-Post-Russian-Habr.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>An incomplete list of programs that bring childish enjoyment and the feeling of almightiness.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">An incomplete list of programs that bring childish enjoyment and the feeling of almightiness.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#GNU-Screen-/-tmux">1. GNU Screen / tmux</a></li>
 <li> <a href="#rmlint">2. rmlint</a></li>
 <li> <a href="#locate">3. locate</a></li>
 <li> <a href="#antiword/antiwordxp.rb">4. antiword/antiwordxp.rb</a></li>
 <li> <a href="#xpra">5. xpra</a></li>
 <li> <a href="#jq">6. jq</a></li>
</ul></div>
</nav> <p>
Some programs become mundane five minutes after they are installed.
For example, ICQ, or any other messaging system.
They look like they have always been there even if they are brand new.
</p>

 <p>
Others may have been out for ages, but still leave you with a feeling of awe and fun.
This document lists a subset of the second kind.
</p>

 <section id="outline-container-GNU-Screen-/-tmux" class="outline-2"> <h2 id="GNU-Screen-/-tmux"> <span class="section-number-2">1.</span>  <a href="#GNU-Screen-/-tmux">GNU Screen / tmux</a></h2>
 <div class="outline-text-2" id="text-GNU-Screen-/-tmux">
</div>
</section> <section id="outline-container-rmlint" class="outline-2"> <h2 id="rmlint"> <span class="section-number-2">2.</span>  <a href="#rmlint">rmlint</a></h2>
 <div class="outline-text-2" id="text-rmlint">
</div>
</section> <section id="outline-container-locate" class="outline-2"> <h2 id="locate"> <span class="section-number-2">3.</span>  <a href="#locate">locate</a></h2>
 <div class="outline-text-2" id="text-locate">
</div>
</section> <section id="outline-container-antiword/antiwordxp.rb" class="outline-2"> <h2 id="antiword/antiwordxp.rb"> <span class="section-number-2">4.</span>  <a href="#antiword/antiwordxp.rb">antiword/antiwordxp.rb</a></h2>
 <div class="outline-text-2" id="text-antiword/antiwordxp.rb">
</div>
</section> <section id="outline-container-xpra" class="outline-2"> <h2 id="xpra"> <span class="section-number-2">5.</span>  <a href="#xpra">xpra</a></h2>
 <div class="outline-text-2" id="text-xpra">
</div>
</section> <section id="outline-container-jq" class="outline-2"> <h2 id="jq"> <span class="section-number-2">6.</span>  <a href="#jq">jq</a></h2>
 <div class="outline-text-2" id="text-jq">
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2021-01-14_an-incomplete-list-of-programs-that-bring-childish-enjoyment.html"/>
  <id>https://lockywolf.net/2021-01-14_an-incomplete-list-of-programs-that-bring-childish-enjoyment.html</id>
  <updated>2025-02-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>CV and articles of Vladimir Nikishkin.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">CV and articles of Vladimir Nikishkin.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#*Warning*:-This-site-is-under-development.">1.  <b>Warning</b>: This site is under development.</a></li>
 <li> <a href="#About">2. About</a></li>
 <li> <a href="#Contact">3. Contact</a></li>
 <li> <a href="#Topics">4. Topics</a></li>
</ul></div>
</nav> <section id="outline-container-*Warning*:-This-site-is-under-development." class="outline-2"> <h2 id="*Warning*:-This-site-is-under-development."> <span class="section-number-2">1.</span>  <a href="#*Warning*:-This-site-is-under-development."> <b>Warning</b>: This site is under development.</a></h2>
 <div class="outline-text-2" id="text-*Warning*:-This-site-is-under-development.">
 <p>
This means that the links have not stabilised, and many features do not yet work.
</p>
</div>
</section> <section id="outline-container-About" class="outline-2"> <h2 id="About"> <span class="section-number-2">2.</span>  <a href="#About">About</a></h2>
 <div class="outline-text-2" id="text-About">
 <p>
This is a homepage of Vladimir Nikishkin (login name “lockywolf”). 
For book reviews and various notes that are not guaranteed to be finished, refer to the “Notes” entry in the menu.
For semi-formal “Howtos” (not necessarily computer-related, but primarily so), refer to the “Howtos”.
</p>

 <p>
The Blog (also linked at the top of the page) is probably a more reliable way to read my posts, chronologically.
However, this site is also valuable as a backup, and for hosting drafts.
</p>
</div>
</section> <section id="outline-container-Contact" class="outline-2"> <h2 id="Contact"> <span class="section-number-2">3.</span>  <a href="#Contact">Contact</a></h2>
 <div class="outline-text-2" id="text-Contact">
 <p>
My Internet presence is mainly the following:
</p>
 <ol class="org-ol"> <li>Email: my login name at GMail.</li>
 <li>arXiv:  <a href="http://arxiv.org/a/nikishkin_v_1">http://arxiv.org/a/nikishkin_v_1</a></li>
 <li>Gitlab:  <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></li>
 <li>Telegram:  <a href="http://t.me/unobvious">http://t.me/unobvious</a> – for information peculiar, but not worth of persistence.</li>
 <li>LinkedIn:  <a href="http://linkedin.com/in/vladimirnikishkin/">http://linkedin.com/in/vladimirnikishkin/</a></li>
 <li>Facebook: vladimir.nikishkin</li>
</ol></div>
</section> <section id="outline-container-Topics" class="outline-2"> <h2 id="Topics"> <span class="section-number-2">4.</span>  <a href="#Topics">Topics</a></h2>
 <div class="outline-text-2" id="text-Topics">
 <p>
I am interested in cooperating (or chatting) in the following areas:
</p>

 <ol class="org-ol"> <li>Information Theory: The topics I am particularly interested are distribution learning and testing (kernel smoothing and Pearson-like tests), sampling, compression and communication complexity (Shannon information, Fisher information, rsync).</li>
 <li>New Artificial Intelligence: machine learning, neural networks, reinforcement learning, grad-boost.</li>
 <li>Old Artificial Intelligence: lambda calculus, combinator logic, high-order computability.</li>
 <li>Partial Differential Equations: theoretical physics (optics, diffusion, functional optimisation) as an example of PDEs, solution methods, most of those as an application of the above. In particular I am interested in efficiently solving physical models for  <b>Projection Microlithography</b>, from exposure to development.</li>
 <li>Software to host and solve all of the above: Emacs, Scheme, Linux, Matlab.</li>
 <li>Languages: Chinese in particular, and various learning tricks, substantive and idiosyncratic. I am horrible in it so far, though.</li>
 <li>Teaching and learning: all of the above. Naturally, I have spent a large part of my life connected to transmitting information to and from, people included.</li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/index.html"/>
  <id>https://lockywolf.net/index.html</id>
  <updated>2024-10-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A notes file for reading &quot;The Madness of Crowds&quot; by Douglas Murray</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A notes file for reading “The Madness of Crowds” by Douglas Murray</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Notes">1. Notes</a>
 <ul> <li> <a href="#we-have-been-living-through-a-period-of-more-than-a-quarter-of-a-century-in-which-all-our-grand-narratives-have-collapsed">1.1. we have been living through a period of more than a quarter of a century in which all our grand narratives have collapsed</a></li>
 <li> <a href="#It-was-inevitable-that-some-_pitch-would-be-made-for_-the-deserted-ground.">1.2. It was inevitable that some  <span class="underline">pitch would be made for</span> the deserted ground.</a></li>
 <li> <a href="#The-Royal-College-of-Psychiatrists-considers-that-sexual-orientation-is-determined-by-a-combination-of-biological-and-postnatal-environment-factors.%E2%80%99">1.3. The Royal College of Psychiatrists considers that sexual orientation is determined by a combination of biological and postnatal environment factors.’</a></li>
 <li> <a href="#american-psychiatrist-association:-kinda-same-thought:-homosexuality-is-something-totally-obscure.">1.4. American Psychiatrist Association: kinda same thought: homosexuality is something totally obscure.</a></li>
 <li> <a href="#Douglas-is-speaking-about-the-%22Hardware-vs.-Software%22-issue.">1.5. Douglas is speaking about the “Hardware vs. Software” issue.</a></li>
 <li> <a href="#Women-want-to-know-what-it-is-that-men-are-after,-what-they-want-and-what-%E2%80%93-if-anything-%E2%80%93-they-might-be-feeling-during-the-act-of-sex.-These-questions-are-a-staple-of-conversation-between-friends-and-a-source-of-unbelievable-private-concern-and-angst-at-some-stage-(sometimes-all)-of-most-people%E2%80%99s-lives-from-adolescence-onwards.">1.6. Women want to know what it is that men are after, what they want and what – if anything – they might be feeling during the act of sex. These questions are a staple of conversation between friends and a source of unbelievable private concern and angst at some stage (sometimes all) of most people’s lives from adolescence onwards.</a></li>
 <li> <a href="#If-there-is-any-one-thing-in-society-that-gets-even-close-to-matching-the-confusion-and-angst-of-women-about-men,-it-is-of-course-the-list-of-questions-which-men-have-about-women.-The-subject-of-nearly-all-dramatic-comedy-is-the-inability-of-men-to-understand-women.-What-are-they-thinking?-What-do-they-want?-Why-is-it-so-hard-to-read-their-actions?-Why-does-each-sex-expect-the-other-to-be-able-to-decode-their-words,-actions-and-silences,-when-no-member-of-the-opposite-sex-has-ever-been-given-a-decoding-manual-for-the-opposite-sex?">1.7. If there is any one thing in society that gets even close to matching the confusion and angst of women about men, it is of course the list of questions which men have about women. The subject of nearly all dramatic comedy is the inability of men to understand women. What are they thinking? What do they want? Why is it so hard to read their actions? Why does each sex expect the other to be able to decode their words, actions and silences, when no member of the opposite sex has ever been given a decoding manual for the opposite sex?</a></li>
 <li> <a href="#All-women-have-something-that-heterosexual-men-want.-They-are">1.8. All women have something that heterosexual men want. They are</a></li>
 <li> <a href="#the-utility-of-such-groups-is-obvious:-their-%E2%80%98highly-diverse-struggles:">1.9. The utility of such groups is obvious: their ‘highly diverse struggles:</a></li>
 <li> <a href="#Laclau-and-Mouffe-write-of-%E2%80%98what-interests-us-about-these-new-social">1.10. Laclau and Mouffe write of ‘what interests us about these new social</a></li>
 <li> <a href="#An-example-of-a-shitty-sentence.">1.11. An example of a shitty sentence.</a></li>
 <li> <a href="#At-which-point-Peterson-explained-to-him-that-the-purpose-of-putting-on-lipstick-and-rouge-is-to-simulate-sexual-arousal.">1.12. At which point Peterson explained to him that the purpose of putting on lipstick and rouge is to simulate sexual arousal.</a></li>
 <li> <a href="#an-example-of-people-deliberately-and-lazily-adopting-simplified-misrepresentations-of">1.13. an example of people deliberately and lazily adopting simplified misrepresentations of</a></li>
 <li> <a href="#The-confusion-that-Nicki-Minaj-acts-out-here-is-representative-of-a">1.14. The confusion that Nicki Minaj acts out here is representative of a</a></li>
 <li> <a href="#traditional-masculinity-%E2%80%93-marked-by-stoicism,-competitiveness,-dominance-and-aggression,-is-undermining-men%E2%80%99s-well-being%E2%80%99">1.15. traditional masculinity – marked by stoicism, competitiveness, dominance and aggression, is undermining men’s well-being’</a></li>
 <li> <a href="#The-survey-found-that-only-9">1.16. The survey found that only 9</a></li>
 <li> <a href="#There-is-little-enough-recourse-when-old-school-journalism-tramples-across-someone%E2%80%99s-life.-But-on-the-internet-there-is-not-even-a-regulatory-body-to-appeal-to-if-your-life-has-been-raked-over-in-this-way.">1.17. There is little enough recourse when old school journalism tramples across someone’s life. But on the internet there is not even a regulatory body to appeal to if your life has been raked over in this way.</a></li>
 <li> <a href="#Okay,-the-%22students%22-protest-and-do-not-want-to-hear-from-some-%22figures%22.-Who-cares?-Who-gives-them-a-right-to-decide?-A-university-fears-losing-the-money-the-%22students%22-pay-to-them?-Or-what?">1.18. Okay, the “students” protest and do not want to hear from some “figures”. Who cares? Who gives them a right to decide? A university fears losing the money the “students” pay to them? Or what?</a></li>
 <li> <a href="#Why-cannot-we-still-buy-some-robot-that-would-grow-us-food-at-the-window?">1.19. Why cannot we still buy some robot that would grow us food at the window?</a></li>
 <li> <a href="#I-need-some-sort-of-an-agreeableness-...-testing?-Sometimes-I-am-able-to-argue.-Sometimes-not.-Why?">1.20. I need some sort of an agreeableness … testing? Sometimes I am able to argue. Sometimes not. Why?</a></li>
 <li> <a href="#Is-it-really-necessary-to-lie-in-a-mating-game?-I-presume,-it-should-be-possible-to-make-an-alliance-with-your-wife-after-you-have-been-together-for-a-while,-but-at-first?">1.21. Is it really necessary to lie in a mating game? I presume, it should be possible to make an alliance with your wife after you have been together for a while, but at first?</a></li>
 <li> <a href="#I-need-to-record,-otherwise-I-will-forget-it.-I-had-a-conversation-with-Olga-Vorobiova-(Vorobeika)-about-the-studies-of-LARP,-in-Denna's-chat.-And-I-told-her-an-important-thought:-not-everything-can-be-investigated.-Many-things-are-just-bound-to-be-left-unknown-forever.-Not-because-people-are-malevolent,-rather-because-things-get-...-dissolved-into-the-substrate-too-fast.-Because-entropy-doesn't-stop.-Denying-it-is-just-not-understanding-physics.">1.22. I need to record, otherwise I will forget it. I had a conversation with Olga Vorobiova (Vorobeika) about the studies of LARP, in Denna’s chat. And I told her an important thought: not everything can be investigated. Many things are just bound to be left unknown forever. Not because people are malevolent, rather because things get … dissolved into the substrate too fast. Because entropy doesn’t stop. Denying it is just not understanding physics.</a></li>
 <li> <a href="#highly-politicized-people-are-willing-to-interpret-even-extreme-remarks-from-their-own-political-tribe-in-a-generous-and-forgiving-light-while-reading-the-remarks-of-those-in-any-opposing-camp-in-as-negative-and-hostile-a-light-as-possible">1.23. highly politicized people are willing to interpret even extreme remarks from their own political tribe in a generous and forgiving light while reading the remarks of those in any opposing camp in as negative and hostile a light as possible</a></li>
 <li> <a href="#On-his-travels-in-America-in-the-1830s,-Alexis-de-Tocqueville-noticed-the-significance-of-assembly-in-the-United-States-%E2%80%93-specifically-that-face-to-face-meetings-of-the-citizenry-allowed-them-to-remedy-problems-often-before-any-other-authority-was-needed.">1.24. On his travels in America in the 1830s, Alexis de Tocqueville noticed the significance of assembly in the United States – specifically that face-to-face meetings of the citizenry allowed them to remedy problems often before any other authority was needed.</a></li>
</ul></li>
 <li> <a href="#Summary">2. Summary</a>
 <ul> <li> <a href="#So-far-I-have-found-several-things-that-Murray-constantly-ignores.">2.1. So far I have found several things that Murray constantly ignores.</a></li>
</ul></li>
 <li> <a href="#Words">3. Words</a></li>
</ul></div>
</nav> <section id="outline-container-Notes" class="outline-2"> <h2 id="Notes"> <span class="section-number-2">1.</span>  <a href="#Notes">Notes</a></h2>
 <div class="outline-text-2" id="text-Notes">
</div>

 <div id="outline-container-we-have-been-living-through-a-period-of-more-than-a-quarter-of-a-century-in-which-all-our-grand-narratives-have-collapsed" class="outline-3">
 <h3 id="we-have-been-living-through-a-period-of-more-than-a-quarter-of-a-century-in-which-all-our-grand-narratives-have-collapsed"> <span class="section-number-3">1.1.</span>  <a href="#we-have-been-living-through-a-period-of-more-than-a-quarter-of-a-century-in-which-all-our-grand-narratives-have-collapsed">we have been living through a period of more than a quarter of a century in which all our grand narratives have collapsed</a></h3>
 <div class="outline-text-3" id="text-we-have-been-living-through-a-period-of-more-than-a-quarter-of-a-century-in-which-all-our-grand-narratives-have-collapsed">
</div>
</div>

 <div id="outline-container-It-was-inevitable-that-some-_pitch-would-be-made-for_-the-deserted-ground." class="outline-3">
 <h3 id="It-was-inevitable-that-some-_pitch-would-be-made-for_-the-deserted-ground."> <span class="section-number-3">1.2.</span>  <a href="#It-was-inevitable-that-some-_pitch-would-be-made-for_-the-deserted-ground.">It was inevitable that some  <span class="underline">pitch would be made for</span> the deserted ground.</a></h3>
 <div class="outline-text-3" id="text-It-was-inevitable-that-some-_pitch-would-be-made-for_-the-deserted-ground.">
</div>
</div>

 <div id="outline-container-The-Royal-College-of-Psychiatrists-considers-that-sexual-orientation-is-determined-by-a-combination-of-biological-and-postnatal-environment-factors.%E2%80%99" class="outline-3">
 <h3 id="The-Royal-College-of-Psychiatrists-considers-that-sexual-orientation-is-determined-by-a-combination-of-biological-and-postnatal-environment-factors.%E2%80%99"> <span class="section-number-3">1.3.</span>  <a href="#The-Royal-College-of-Psychiatrists-considers-that-sexual-orientation-is-determined-by-a-combination-of-biological-and-postnatal-environment-factors.%E2%80%99">The Royal College of Psychiatrists considers that sexual orientation is determined by a combination of biological and postnatal environment factors.’</a></h3>
 <div class="outline-text-3" id="text-The-Royal-College-of-Psychiatrists-considers-that-sexual-orientation-is-determined-by-a-combination-of-biological-and-postnatal-environment-factors.%E2%80%99">
 <p>
‘There is no evidence to go beyond this and impute any kind of choice
into the origins of sexual orientation.’
</p>

 <p>
It is not the case that sexual orientation is immutable or might not
vary to some extent in a person’s life. Nevertheless, sexual
orientation for most people seems to be set around a point that is
largely heterosexual or homosexual. Bisexual people may have a degree
of choice in terms of sexual expression in which they can focus on
their heterosexual or homosexual side. It is also the case that for
people who are unhappy about their sexual orientation – whether
heterosexual, homosexual or bisexual – there may be grounds for
exploring therapeutic options to help them live more comfortably with
it, reduce their distress and reach a greater degree of acceptance of
their sexual orientation.
</p>
</div>
</div>

 <div id="outline-container-american-psychiatrist-association:-kinda-same-thought:-homosexuality-is-something-totally-obscure." class="outline-3">
 <h3 id="american-psychiatrist-association:-kinda-same-thought:-homosexuality-is-something-totally-obscure."> <span class="section-number-3">1.4.</span>  <a href="#american-psychiatrist-association:-kinda-same-thought:-homosexuality-is-something-totally-obscure.">American Psychiatrist Association: kinda same thought: homosexuality is something totally obscure.</a></h3>
 <div class="outline-text-3" id="text-american-psychiatrist-association:-kinda-same-thought:-homosexuality-is-something-totally-obscure.">
 <p>
There is no consensus among scientists about the exact reasons that an
individual develops a heterosexual, bisexual, gay or lesbian
orientation. Although much research has examined the possible genetic,
hormonal, developmental, social and cultural influences on sexual
orientation, no findings have emerged that permit scientists to
conclude that sexual orientation is determined by any particular
factor or factors. Many think that nature and nurture both play
complex roles; most people experience little or no sense of choice
about their sexual orientation.
</p>
</div>
</div>

 <div id="outline-container-Douglas-is-speaking-about-the-%22Hardware-vs.-Software%22-issue." class="outline-3">
 <h3 id="Douglas-is-speaking-about-the-%22Hardware-vs.-Software%22-issue."> <span class="section-number-3">1.5.</span>  <a href="#Douglas-is-speaking-about-the-%22Hardware-vs.-Software%22-issue.">Douglas is speaking about the “Hardware vs. Software” issue.</a></h3>
 <div class="outline-text-3" id="text-Douglas-is-speaking-about-the-%22Hardware-vs.-Software%22-issue.">
 <p>
This debate is very close to myself. 
My life in Edinburgh was incredibly miserable.
Why?
I am an “industrious man”. 
I love what I do.
I love learning.
I love research.
I love trying new things and I like trying foreign cultures.
</p>

 <p>
Why did I feel so horrible, miserable and inefficient in Edinburgh?
Why is it that I only managed to switch to the production mode in Russia, and even more in China?
</p>

 <p>
Is it hardware or software?
</p>

 <p>
It seems to me that “nurture” and “environment” cannot be classified as purely “hardware” or software.
“Firmware” perhaps?
I am not sure though.
</p>
</div>
</div>

 <div id="outline-container-Women-want-to-know-what-it-is-that-men-are-after,-what-they-want-and-what-%E2%80%93-if-anything-%E2%80%93-they-might-be-feeling-during-the-act-of-sex.-These-questions-are-a-staple-of-conversation-between-friends-and-a-source-of-unbelievable-private-concern-and-angst-at-some-stage-(sometimes-all)-of-most-people%E2%80%99s-lives-from-adolescence-onwards." class="outline-3">
 <h3 id="Women-want-to-know-what-it-is-that-men-are-after,-what-they-want-and-what-%E2%80%93-if-anything-%E2%80%93-they-might-be-feeling-during-the-act-of-sex.-These-questions-are-a-staple-of-conversation-between-friends-and-a-source-of-unbelievable-private-concern-and-angst-at-some-stage-(sometimes-all)-of-most-people%E2%80%99s-lives-from-adolescence-onwards."> <span class="section-number-3">1.6.</span>  <a href="#Women-want-to-know-what-it-is-that-men-are-after,-what-they-want-and-what-%E2%80%93-if-anything-%E2%80%93-they-might-be-feeling-during-the-act-of-sex.-These-questions-are-a-staple-of-conversation-between-friends-and-a-source-of-unbelievable-private-concern-and-angst-at-some-stage-(sometimes-all)-of-most-people%E2%80%99s-lives-from-adolescence-onwards.">Women want to know what it is that men are after, what they want and what – if anything – they might be feeling during the act of sex. These questions are a staple of conversation between friends and a source of unbelievable private concern and angst at some stage (sometimes all) of most people’s lives from adolescence onwards.</a></h3>
 <div class="outline-text-3" id="text-Women-want-to-know-what-it-is-that-men-are-after,-what-they-want-and-what-%E2%80%93-if-anything-%E2%80%93-they-might-be-feeling-during-the-act-of-sex.-These-questions-are-a-staple-of-conversation-between-friends-and-a-source-of-unbelievable-private-concern-and-angst-at-some-stage-(sometimes-all)-of-most-people%E2%80%99s-lives-from-adolescence-onwards.">
</div>
</div>

 <div id="outline-container-If-there-is-any-one-thing-in-society-that-gets-even-close-to-matching-the-confusion-and-angst-of-women-about-men,-it-is-of-course-the-list-of-questions-which-men-have-about-women.-The-subject-of-nearly-all-dramatic-comedy-is-the-inability-of-men-to-understand-women.-What-are-they-thinking?-What-do-they-want?-Why-is-it-so-hard-to-read-their-actions?-Why-does-each-sex-expect-the-other-to-be-able-to-decode-their-words,-actions-and-silences,-when-no-member-of-the-opposite-sex-has-ever-been-given-a-decoding-manual-for-the-opposite-sex?" class="outline-3">
 <h3 id="If-there-is-any-one-thing-in-society-that-gets-even-close-to-matching-the-confusion-and-angst-of-women-about-men,-it-is-of-course-the-list-of-questions-which-men-have-about-women.-The-subject-of-nearly-all-dramatic-comedy-is-the-inability-of-men-to-understand-women.-What-are-they-thinking?-What-do-they-want?-Why-is-it-so-hard-to-read-their-actions?-Why-does-each-sex-expect-the-other-to-be-able-to-decode-their-words,-actions-and-silences,-when-no-member-of-the-opposite-sex-has-ever-been-given-a-decoding-manual-for-the-opposite-sex?"> <span class="section-number-3">1.7.</span>  <a href="#If-there-is-any-one-thing-in-society-that-gets-even-close-to-matching-the-confusion-and-angst-of-women-about-men,-it-is-of-course-the-list-of-questions-which-men-have-about-women.-The-subject-of-nearly-all-dramatic-comedy-is-the-inability-of-men-to-understand-women.-What-are-they-thinking?-What-do-they-want?-Why-is-it-so-hard-to-read-their-actions?-Why-does-each-sex-expect-the-other-to-be-able-to-decode-their-words,-actions-and-silences,-when-no-member-of-the-opposite-sex-has-ever-been-given-a-decoding-manual-for-the-opposite-sex?">If there is any one thing in society that gets even close to matching the confusion and angst of women about men, it is of course the list of questions which men have about women. The subject of nearly all dramatic comedy is the inability of men to understand women. What are they thinking? What do they want? Why is it so hard to read their actions? Why does each sex expect the other to be able to decode their words, actions and silences, when no member of the opposite sex has ever been given a decoding manual for the opposite sex?</a></h3>
 <div class="outline-text-3" id="text-If-there-is-any-one-thing-in-society-that-gets-even-close-to-matching-the-confusion-and-angst-of-women-about-men,-it-is-of-course-the-list-of-questions-which-men-have-about-women.-The-subject-of-nearly-all-dramatic-comedy-is-the-inability-of-men-to-understand-women.-What-are-they-thinking?-What-do-they-want?-Why-is-it-so-hard-to-read-their-actions?-Why-does-each-sex-expect-the-other-to-be-able-to-decode-their-words,-actions-and-silences,-when-no-member-of-the-opposite-sex-has-ever-been-given-a-decoding-manual-for-the-opposite-sex?">
</div>
</div>

 <div id="outline-container-All-women-have-something-that-heterosexual-men-want.-They-are" class="outline-3">
 <h3 id="All-women-have-something-that-heterosexual-men-want.-They-are"> <span class="section-number-3">1.8.</span>  <a href="#All-women-have-something-that-heterosexual-men-want.-They-are">All women have something that heterosexual men want. They are</a></h3>
 <div class="outline-text-3" id="text-All-women-have-something-that-heterosexual-men-want.-They-are">
 <p>
holders, and wielders, of a kind of magic. But here is the thing: gays
appear in some way to be in on the secret. That may be liberating for
some people. Some women will always enjoy talking with gay men
about the problems – including the sexual problems – of men. Just as
some straight men will always enjoy having this vaguely bilingual friend
who might help them learn the other language. But there are other
people for whom it will always be unnerving. Because for them gays will
always be the people – especially the men –  <span class="underline">who know too much</span>.
</p>
</div>
</div>

 <div id="outline-container-the-utility-of-such-groups-is-obvious:-their-%E2%80%98highly-diverse-struggles:" class="outline-3">
 <h3 id="the-utility-of-such-groups-is-obvious:-their-%E2%80%98highly-diverse-struggles:"> <span class="section-number-3">1.9.</span>  <a href="#the-utility-of-such-groups-is-obvious:-their-%E2%80%98highly-diverse-struggles:">The utility of such groups is obvious: their ‘highly diverse struggles:</a></h3>
 <div class="outline-text-3" id="text-the-utility-of-such-groups-is-obvious:-their-%E2%80%98highly-diverse-struggles:">
 <p>
urban, ecological, anti-authoritarian, anti-institutional, feminist, anti-
racist, ethnic, regional or that of sexual minorities’ give purpose and
drive to a socialist movement that needs new energy. What is more,
unless they cohere together these groups might just pursue their own
agendas and their own needs. What is needed is to bring all these
movements under one umbrella: the umbrella of the socialist struggle.
</p>
</div>
</div>

 <div id="outline-container-Laclau-and-Mouffe-write-of-%E2%80%98what-interests-us-about-these-new-social" class="outline-3">
 <h3 id="Laclau-and-Mouffe-write-of-%E2%80%98what-interests-us-about-these-new-social"> <span class="section-number-3">1.10.</span>  <a href="#Laclau-and-Mouffe-write-of-%E2%80%98what-interests-us-about-these-new-social">Laclau and Mouffe write of ‘what interests us about these new social</a></h3>
 <div class="outline-text-3" id="text-Laclau-and-Mouffe-write-of-%E2%80%98what-interests-us-about-these-new-social">
 <p>
movements’ and explain how it ‘leads us to conceive these
movements as an extension of the democratic revolution to a whole
new series of social relations. As for their novelty, that is conferred
upon them by the fact that they call into question new forms of
subordination.’
</p>
</div>
</div>

 <div id="outline-container-An-example-of-a-shitty-sentence." class="outline-3">
 <h3 id="An-example-of-a-shitty-sentence."> <span class="section-number-3">1.11.</span>  <a href="#An-example-of-a-shitty-sentence.">An example of a shitty sentence.</a></h3>
 <div class="outline-text-3" id="text-An-example-of-a-shitty-sentence.">
 <p>
The move from a structuralist account in which capital is understood
to structure social relations in relatively homologous ways to a view
of hegemony in which power relations are subject to repetition,
convergence, and rearticulation brought the question of temporality
into the thinking of structure, and marked a shift from a form of
Althusserian theory that takes structural tonalities as theoretical
objects to one in which the insights into the contingent possibility
of structure inaugurate a renewed conception of hegemony as bound up
with the contingent sites and strategies of the rearticulation of
power.
</p>
</div>
</div>

 <div id="outline-container-At-which-point-Peterson-explained-to-him-that-the-purpose-of-putting-on-lipstick-and-rouge-is-to-simulate-sexual-arousal." class="outline-3">
 <h3 id="At-which-point-Peterson-explained-to-him-that-the-purpose-of-putting-on-lipstick-and-rouge-is-to-simulate-sexual-arousal."> <span class="section-number-3">1.12.</span>  <a href="#At-which-point-Peterson-explained-to-him-that-the-purpose-of-putting-on-lipstick-and-rouge-is-to-simulate-sexual-arousal.">At which point Peterson explained to him that the purpose of putting on lipstick and rouge is to simulate sexual arousal.</a></h3>
 <div class="outline-text-3" id="text-At-which-point-Peterson-explained-to-him-that-the-purpose-of-putting-on-lipstick-and-rouge-is-to-simulate-sexual-arousal.">
 <p>
Not the main point though.
The main one is to get  <span class="underline">power</span>.
</p>
</div>
</div>

 <div id="outline-container-an-example-of-people-deliberately-and-lazily-adopting-simplified-misrepresentations-of" class="outline-3">
 <h3 id="an-example-of-people-deliberately-and-lazily-adopting-simplified-misrepresentations-of"> <span class="section-number-3">1.13.</span>  <a href="#an-example-of-people-deliberately-and-lazily-adopting-simplified-misrepresentations-of">an example of people deliberately and lazily adopting simplified misrepresentations of</a></h3>
 <div class="outline-text-3" id="text-an-example-of-people-deliberately-and-lazily-adopting-simplified-misrepresentations-of">
 <p>
what other people are saying in order to avoid the difficult discussion
that would otherwise have to take place
</p>
</div>
</div>

 <div id="outline-container-The-confusion-that-Nicki-Minaj-acts-out-here-is-representative-of-a" class="outline-3">
 <h3 id="The-confusion-that-Nicki-Minaj-acts-out-here-is-representative-of-a"> <span class="section-number-3">1.14.</span>  <a href="#The-confusion-that-Nicki-Minaj-acts-out-here-is-representative-of-a">The confusion that Nicki Minaj acts out here is representative of a</a></h3>
 <div class="outline-text-3" id="text-The-confusion-that-Nicki-Minaj-acts-out-here-is-representative-of-a">
 <p>
whole host of other things in our culture. It contains an unresolvable
challenge and an impossible demand. The demand is that a woman
must be able to lap-dance before, drape herself around and wiggle her
ass in the face of any man she likes. She can make him drool. But if that
man puts even one hand on the woman then she can change the game
completely. She can go from stripper to mother superior in a heartbeat.
She can go from ‘Look at my butt, waving in front of your face’ to
‘How dare you think you can touch the butt I’ve been waving in front
of your face all this time.’ And it is he who must learn that he is in the
wrong.
</p>
</div>
</div>


 <div id="outline-container-traditional-masculinity-%E2%80%93-marked-by-stoicism,-competitiveness,-dominance-and-aggression,-is-undermining-men%E2%80%99s-well-being%E2%80%99" class="outline-3">
 <h3 id="traditional-masculinity-%E2%80%93-marked-by-stoicism,-competitiveness,-dominance-and-aggression,-is-undermining-men%E2%80%99s-well-being%E2%80%99"> <span class="section-number-3">1.15.</span>  <a href="#traditional-masculinity-%E2%80%93-marked-by-stoicism,-competitiveness,-dominance-and-aggression,-is-undermining-men%E2%80%99s-well-being%E2%80%99">traditional masculinity – marked by stoicism, competitiveness, dominance and aggression, is undermining men’s well-being’</a></h3>
 <div class="outline-text-3" id="text-traditional-masculinity-%E2%80%93-marked-by-stoicism,-competitiveness,-dominance-and-aggression,-is-undermining-men%E2%80%99s-well-being%E2%80%99">
</div>
</div>

 <div id="outline-container-The-survey-found-that-only-9" class="outline-3">
 <h3 id="The-survey-found-that-only-9"> <span class="section-number-3">1.16.</span>  <a href="#The-survey-found-that-only-9">The survey found that only 9</a></h3>
 <div class="outline-text-3" id="text-The-survey-found-that-only-9">
 <p>
per cent of British women used the word ‘feminist’ to describe
themselves. Only 4 per cent of men did. The vast majority of people
surveyed supported gender equality. In fact a larger number of men
than women supported equality between the sexes (86 per cent versus
74 per cent). But the vast majority also resisted the ‘feminist’ label.
</p>
</div>
</div>

 <div id="outline-container-There-is-little-enough-recourse-when-old-school-journalism-tramples-across-someone%E2%80%99s-life.-But-on-the-internet-there-is-not-even-a-regulatory-body-to-appeal-to-if-your-life-has-been-raked-over-in-this-way." class="outline-3">
 <h3 id="There-is-little-enough-recourse-when-old-school-journalism-tramples-across-someone%E2%80%99s-life.-But-on-the-internet-there-is-not-even-a-regulatory-body-to-appeal-to-if-your-life-has-been-raked-over-in-this-way."> <span class="section-number-3">1.17.</span>  <a href="#There-is-little-enough-recourse-when-old-school-journalism-tramples-across-someone%E2%80%99s-life.-But-on-the-internet-there-is-not-even-a-regulatory-body-to-appeal-to-if-your-life-has-been-raked-over-in-this-way.">There is little enough recourse when old school journalism tramples across someone’s life. But on the internet there is not even a regulatory body to appeal to if your life has been raked over in this way.</a></h3>
 <div class="outline-text-3" id="text-There-is-little-enough-recourse-when-old-school-journalism-tramples-across-someone%E2%80%99s-life.-But-on-the-internet-there-is-not-even-a-regulatory-body-to-appeal-to-if-your-life-has-been-raked-over-in-this-way.">
 <p>
Why would this be such a thing? 
Did this fired Google guy never find a new job? 
I believe he did.
</p>
</div>
</div>

 <div id="outline-container-Okay,-the-%22students%22-protest-and-do-not-want-to-hear-from-some-%22figures%22.-Who-cares?-Who-gives-them-a-right-to-decide?-A-university-fears-losing-the-money-the-%22students%22-pay-to-them?-Or-what?" class="outline-3">
 <h3 id="Okay,-the-%22students%22-protest-and-do-not-want-to-hear-from-some-%22figures%22.-Who-cares?-Who-gives-them-a-right-to-decide?-A-university-fears-losing-the-money-the-%22students%22-pay-to-them?-Or-what?"> <span class="section-number-3">1.18.</span>  <a href="#Okay,-the-%22students%22-protest-and-do-not-want-to-hear-from-some-%22figures%22.-Who-cares?-Who-gives-them-a-right-to-decide?-A-university-fears-losing-the-money-the-%22students%22-pay-to-them?-Or-what?">Okay, the “students” protest and do not want to hear from some “figures”. Who cares? Who gives them a right to decide? A university fears losing the money the “students” pay to them? Or what?</a></h3>
 <div class="outline-text-3" id="text-Okay,-the-%22students%22-protest-and-do-not-want-to-hear-from-some-%22figures%22.-Who-cares?-Who-gives-them-a-right-to-decide?-A-university-fears-losing-the-money-the-%22students%22-pay-to-them?-Or-what?">
</div>
</div>


 <div id="outline-container-Why-cannot-we-still-buy-some-robot-that-would-grow-us-food-at-the-window?" class="outline-3">
 <h3 id="Why-cannot-we-still-buy-some-robot-that-would-grow-us-food-at-the-window?"> <span class="section-number-3">1.19.</span>  <a href="#Why-cannot-we-still-buy-some-robot-that-would-grow-us-food-at-the-window?">Why cannot we still buy some robot that would grow us food at the window?</a></h3>
 <div class="outline-text-3" id="text-Why-cannot-we-still-buy-some-robot-that-would-grow-us-food-at-the-window?">
 <p>
Like, I do not eat that much stuff.
Could I just buy a robot shelf, stock it with fertilisers, connect to a wire, and be done with it?
It may even be outside of the city, and would send me food with a drone.
</p>
</div>
</div>

 <div id="outline-container-I-need-some-sort-of-an-agreeableness-...-testing?-Sometimes-I-am-able-to-argue.-Sometimes-not.-Why?" class="outline-3">
 <h3 id="I-need-some-sort-of-an-agreeableness-...-testing?-Sometimes-I-am-able-to-argue.-Sometimes-not.-Why?"> <span class="section-number-3">1.20.</span>  <a href="#I-need-some-sort-of-an-agreeableness-...-testing?-Sometimes-I-am-able-to-argue.-Sometimes-not.-Why?">I need some sort of an agreeableness … testing? Sometimes I am able to argue. Sometimes not. Why?</a></h3>
 <div class="outline-text-3" id="text-I-need-some-sort-of-an-agreeableness-...-testing?-Sometimes-I-am-able-to-argue.-Sometimes-not.-Why?">
</div>
</div>

 <div id="outline-container-Is-it-really-necessary-to-lie-in-a-mating-game?-I-presume,-it-should-be-possible-to-make-an-alliance-with-your-wife-after-you-have-been-together-for-a-while,-but-at-first?" class="outline-3">
 <h3 id="Is-it-really-necessary-to-lie-in-a-mating-game?-I-presume,-it-should-be-possible-to-make-an-alliance-with-your-wife-after-you-have-been-together-for-a-while,-but-at-first?"> <span class="section-number-3">1.21.</span>  <a href="#Is-it-really-necessary-to-lie-in-a-mating-game?-I-presume,-it-should-be-possible-to-make-an-alliance-with-your-wife-after-you-have-been-together-for-a-while,-but-at-first?">Is it really necessary to lie in a mating game? I presume, it should be possible to make an alliance with your wife after you have been together for a while, but at first?</a></h3>
 <div class="outline-text-3" id="text-Is-it-really-necessary-to-lie-in-a-mating-game?-I-presume,-it-should-be-possible-to-make-an-alliance-with-your-wife-after-you-have-been-together-for-a-while,-but-at-first?">
</div>
</div>

 <div id="outline-container-I-need-to-record,-otherwise-I-will-forget-it.-I-had-a-conversation-with-Olga-Vorobiova-(Vorobeika)-about-the-studies-of-LARP,-in-Denna's-chat.-And-I-told-her-an-important-thought:-not-everything-can-be-investigated.-Many-things-are-just-bound-to-be-left-unknown-forever.-Not-because-people-are-malevolent,-rather-because-things-get-...-dissolved-into-the-substrate-too-fast.-Because-entropy-doesn't-stop.-Denying-it-is-just-not-understanding-physics." class="outline-3">
 <h3 id="I-need-to-record,-otherwise-I-will-forget-it.-I-had-a-conversation-with-Olga-Vorobiova-(Vorobeika)-about-the-studies-of-LARP,-in-Denna's-chat.-And-I-told-her-an-important-thought:-not-everything-can-be-investigated.-Many-things-are-just-bound-to-be-left-unknown-forever.-Not-because-people-are-malevolent,-rather-because-things-get-...-dissolved-into-the-substrate-too-fast.-Because-entropy-doesn't-stop.-Denying-it-is-just-not-understanding-physics."> <span class="section-number-3">1.22.</span>  <a href="#I-need-to-record,-otherwise-I-will-forget-it.-I-had-a-conversation-with-Olga-Vorobiova-(Vorobeika)-about-the-studies-of-LARP,-in-Denna's-chat.-And-I-told-her-an-important-thought:-not-everything-can-be-investigated.-Many-things-are-just-bound-to-be-left-unknown-forever.-Not-because-people-are-malevolent,-rather-because-things-get-...-dissolved-into-the-substrate-too-fast.-Because-entropy-doesn't-stop.-Denying-it-is-just-not-understanding-physics.">I need to record, otherwise I will forget it. I had a conversation with Olga Vorobiova (Vorobeika) about the studies of LARP, in Denna’s chat. And I told her an important thought: not everything can be investigated. Many things are just bound to be left unknown forever. Not because people are malevolent, rather because things get … dissolved into the substrate too fast. Because entropy doesn’t stop. Denying it is just not understanding physics.</a></h3>
 <div class="outline-text-3" id="text-I-need-to-record,-otherwise-I-will-forget-it.-I-had-a-conversation-with-Olga-Vorobiova-(Vorobeika)-about-the-studies-of-LARP,-in-Denna's-chat.-And-I-told-her-an-important-thought:-not-everything-can-be-investigated.-Many-things-are-just-bound-to-be-left-unknown-forever.-Not-because-people-are-malevolent,-rather-because-things-get-...-dissolved-into-the-substrate-too-fast.-Because-entropy-doesn't-stop.-Denying-it-is-just-not-understanding-physics.">
</div>
</div>

 <div id="outline-container-highly-politicized-people-are-willing-to-interpret-even-extreme-remarks-from-their-own-political-tribe-in-a-generous-and-forgiving-light-while-reading-the-remarks-of-those-in-any-opposing-camp-in-as-negative-and-hostile-a-light-as-possible" class="outline-3">
 <h3 id="highly-politicized-people-are-willing-to-interpret-even-extreme-remarks-from-their-own-political-tribe-in-a-generous-and-forgiving-light-while-reading-the-remarks-of-those-in-any-opposing-camp-in-as-negative-and-hostile-a-light-as-possible"> <span class="section-number-3">1.23.</span>  <a href="#highly-politicized-people-are-willing-to-interpret-even-extreme-remarks-from-their-own-political-tribe-in-a-generous-and-forgiving-light-while-reading-the-remarks-of-those-in-any-opposing-camp-in-as-negative-and-hostile-a-light-as-possible">highly politicized people are willing to interpret even extreme remarks from their own political tribe in a generous and forgiving light while reading the remarks of those in any opposing camp in as negative and hostile a light as possible</a></h3>
 <div class="outline-text-3" id="text-highly-politicized-people-are-willing-to-interpret-even-extreme-remarks-from-their-own-political-tribe-in-a-generous-and-forgiving-light-while-reading-the-remarks-of-those-in-any-opposing-camp-in-as-negative-and-hostile-a-light-as-possible">
</div>
</div>

 <div id="outline-container-On-his-travels-in-America-in-the-1830s,-Alexis-de-Tocqueville-noticed-the-significance-of-assembly-in-the-United-States-%E2%80%93-specifically-that-face-to-face-meetings-of-the-citizenry-allowed-them-to-remedy-problems-often-before-any-other-authority-was-needed." class="outline-3">
 <h3 id="On-his-travels-in-America-in-the-1830s,-Alexis-de-Tocqueville-noticed-the-significance-of-assembly-in-the-United-States-%E2%80%93-specifically-that-face-to-face-meetings-of-the-citizenry-allowed-them-to-remedy-problems-often-before-any-other-authority-was-needed."> <span class="section-number-3">1.24.</span>  <a href="#On-his-travels-in-America-in-the-1830s,-Alexis-de-Tocqueville-noticed-the-significance-of-assembly-in-the-United-States-%E2%80%93-specifically-that-face-to-face-meetings-of-the-citizenry-allowed-them-to-remedy-problems-often-before-any-other-authority-was-needed.">On his travels in America in the 1830s, Alexis de Tocqueville noticed the significance of assembly in the United States – specifically that face-to-face meetings of the citizenry allowed them to remedy problems often before any other authority was needed.</a></h3>
 <div class="outline-text-3" id="text-On-his-travels-in-America-in-the-1830s,-Alexis-de-Tocqueville-noticed-the-significance-of-assembly-in-the-United-States-%E2%80%93-specifically-that-face-to-face-meetings-of-the-citizenry-allowed-them-to-remedy-problems-often-before-any-other-authority-was-needed.">
</div>
</div>
</section> <section id="outline-container-Summary" class="outline-2"> <h2 id="Summary"> <span class="section-number-2">2.</span>  <a href="#Summary">Summary</a></h2>
 <div class="outline-text-2" id="text-Summary">
</div>

 <div id="outline-container-So-far-I-have-found-several-things-that-Murray-constantly-ignores." class="outline-3">
 <h3 id="So-far-I-have-found-several-things-that-Murray-constantly-ignores."> <span class="section-number-3">2.1.</span>  <a href="#So-far-I-have-found-several-things-that-Murray-constantly-ignores.">So far I have found several things that Murray constantly ignores.</a></h3>
 <div class="outline-text-3" id="text-So-far-I-have-found-several-things-that-Murray-constantly-ignores.">
 <ul class="org-ul"> <li>The unimaginable hardness to fit your own standards in the world where everyone sees everyone. Part of this madness is due to the fact that in the past everyone could carve for himself a place where he could be a “king”. That was a family and a circle of friends. Now you have the whole world to compete with.</li>
 <li>The hardly imaginable hardness to reach any decent level of proficiency in anything. Too many academics know nothing, but are still academics. And the whole life is not enough to learn what is required for an academic to be an academic. And the competition for the positions in fields that are less complicated is billions per place.</li>
 <li>The thing with discussing the “trans” issue is that many people don’t care about it. One of the things with “public discussions” is that they do not represent anyone.</li>
</ul> <p>
 <span class="timestamp-wrapper"> <span class="timestamp"><2020-09-13 Sun 22:00> </span></span> I have finished the book. It left me thinking.
I do now really understand whether this book leaves the feeling of optimism or pessimism.
It does leave the feeling that learning social sciences, and more importantly, learning how to … be an adult. Learn things that adults do and how real adults make decision by books and by choosing a referential group.
</p>

 <p>
Learning Chinese in a proper way is becoming more and more urgent.
Reading Derrida, Foucault, Chomsky and other people who contributed to confusion a lot is also important.
And perhaps the opponents deserve more attention than friends.
Keep your friends close, and your enemies closer.
</p>

 <p>
Gays are dangerous beasts.
A couple of gays defeats a heterosexual couple at almost anything easily.
(As the swan example indicates vividly.)
</p>

 <p>
I do have a female-ish component that needs to be addressed somehow.
Is there a cheap cheaty way out of it? 
Without much effort?
Perhaps just some male beauty services?
</p>

 <p>
I guess, I will not publish a review of this book.
</p>

 <p>
Twitter culture is very, very specific.
Be careful about it.
</p>
</div>
</div>
</section> <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">3.</span>  <a href="#Words">Words</a></h2>
 <div class="outline-text-2" id="text-Words">
 <ol class="org-ol"> <li>dementing :: in political, societal context — forgetting</li>
 <li>nicked the tripwire :: to nick mean touch lightly</li>
 <li>put yourself beyond the pale ::  “beyond the pale” means to be outside the bounds of acceptable behavior, morality, or propriety (originally the Pale was the fence between Ireland under English rule and the rest of Ireland)</li>
 <li>shift mores :: “mores” refers to the customs, norms, and behaviors that are accepted as standard or conventional</li>
 <li>to strew :: means to scatter or spread things untidily over a surface or area</li>
 <li>fraught :: full of tensions, stress, and anxiety, usually about some social situation</li>
 <li>avowals :: open and honest statement affirming something (see vow)</li>
 <li>volubly :: speaking fluently, quickly, or readily</li>
 <li>demeaning ::  behavior or treatment that is disrespectful or degrading</li>
 <li>unfurl :: unroll or unfold something, like a flag of a scroll</li>
 <li>punters :: British English for “customers”</li>
 <li>unflustered :: opposite of “flustered”, who is nervous, agitated, and confused</li>
 <li>whacky-backy :: British English for marijuana</li>
 <li>Jewess :: an outdated, slightly derogatory term for a Jewish lady (Russian жидовка)</li>
 <li>tribulations :: severe trials or sufferings; difficulties or troubles.</li>
 <li>snigger :: suppressed or partly concealed laugh, with a sense of superiority</li>
 <li>twitchy :: making small, jerky movements, often involuntary</li>
 <li>wracking :: torturous and painful for the brain, especially nerve-wracking</li>
 <li>scorn :: contempt or disdain for someone or something unworthy or inferior</li>
 <li>confrères :: colleagues/peers in professional context</li>
 <li>forbearance ::  refraining from exercising a right, enforcing a penalty, or insisting upon an obligation, magnanimity, generosity</li>
 <li>kick up :: start up or initiate something, usually some resistance or disturbance</li>
 <li>opprobrium :: harsh criticism or public disgrace arising from shameful conduct, such as when the journalists write something bad about someone</li>
 <li>whiplash :: an injury to the neck, due to a sudden change of movement, such as in a car, also figuratively, a sudden change in society “cultural whiplash”</li>
 <li>hitherto :: “up to this (that) point” (things explained hitherto)</li>
 <li>tedium :: feeling or state of being bored and doing something tedious</li>
 <li>mores of the age :: customs, behaviours, and values of an era</li>
 <li>to be left in the wake :: to be in the middle of the consequences of something (say, a hurricane), (“wake” is a trail of waves after a ship has gone)</li>
 <li>quibbles :: minor objections, complaints, and criticism. “She never outright rejected my offer of a date, but always quibbled about particular circumstances, so we never met again.”</li>
 <li>dowdy :: unfashionable and lacking in style. (Like my wardrobe.)</li>
 <li>pulpit :: raised lectern in a church, also used figuratively as an “opportunity to give a sermon”</li>
 <li>to tout :: promote something vehemently, like street vendors</li>
 <li>knock-on :: secondary, indirect consequence, side-effect, “the knock-on effect of having a PhD is being admitted to a private chamber in the Lenin Library”</li>
 <li>emblazoned :: decorated with a bright, attention-seeking design, “my laptop is emblazoned with a Matrix code on it”</li>
 <li>asinine :: extremely foolish, stupid (lat. donkey-like) “He made asinine remarks and presented himself as a fool.”</li>
 <li>equanimity :: The state of calmness and composure. “Before a dangerous endeavour he maintained his equanimity.”</li>
 <li>imbibe :: drink alcohol, used figuratively as “absorb knowledge and ideas”</li>
 <li>assail :: The word “assail” means to attack vigorously or violently; to assault. “The castle was assailed by the enemy forces, who launched a fierce attack at dawn.” “The politician’s character was assailed by his opponents during the heated debate.”</li>
 <li>gobbledygook :: “Gobbledygook” refers to language that is nonsensical, confusing, or overly complicated, often to the point of being incomprehensible. It’s typically used to describe speech or writing that uses a lot of technical jargon, bureaucratic language, or convoluted phrasing, making it difficult for the average person to understand.</li>
 <li>smattering :: “Smattering” refers to a superficial, slight, or scattered amount of knowledge or information about something. It implies a basic or limited understanding, often just enough to be familiar with a topic but not in-depth. The term is commonly used when someone knows a little bit about various subjects but not to a great extent in any of them.</li>
 <li>rife with :: The phrase “rife with” means full of or abundant in something, often used to refer to negative or undesirable qualities or conditions. When you describe a situation, place, or thing as being “rife with” something, it suggests that the characteristic is widespread, prevalent, or noticeably common within it. For example: “The old house was rife with mold,” indicating that the mold was widespread throughout the house. “The company’s culture is rife with corruption,” suggesting that corrupt practices are common and pervasive within the company.</li>
 <li>Slink :: The word “slink” refers to moving in a smooth, quiet manner, typically in a way that is intended to go unnoticed. Often, “slink” implies a sense of stealth or surreptitiousness. It’s commonly used to describe someone or something moving in a furtive or sneaky way. For instance, you might say, “The cat slinked through the room, trying not to attract attention,” to describe the cat moving quietly and carefully, trying to be as inconspicuous as possible.</li>
 <li>midriff :: “Midriff” refers to the region of the human body between the chest and the waist. It’s the area of the torso that is exposed when wearing clothing such as crop tops or low-rise pants. The term can be used in both anatomical contexts to describe this part of the body, as well as in fashion contexts to refer to styles of clothing that reveal this area. “Show his midriff.”</li>
 <li>segue :: “Segue” is a term used to describe a smooth, uninterrupted transition from one thing to another. It originally comes from music and performance, where it denotes moving from one part of a performance to another without a break. The word has been adopted more broadly to refer to any kind of smooth transition in conversation, narrative, or different sections of a work. For example, in conversation, when someone changes the topic smoothly and naturally, they are said to “segue” into a new topic. In a TV show or movie, a “segue” might be a smooth transition from one scene to another that maintains the flow of the narrative.</li>
 <li>witter :: “Witter” is a somewhat less common word, primarily used in British English, that means to chatter or babble pointlessly or at unnecessary length. When someone is described as “wittering,” it implies that they are talking a lot without saying anything particularly important or interesting, often in a somewhat nervous or agitated manner. For example, if someone says, “He kept wittering on about his vacation plans,” it suggests that the person was talking excessively and perhaps tiresomely about their plans.</li>

 <li>racked with confusion ::</li>
 <li>umpteenth ::</li>
 <li>lip-service ::</li>
 <li>tut-tut ::</li>
 <li>mangy-looking ::</li>
 <li>let-off ::</li>
 <li>risible. ::</li>
 <li>ineluctably ::</li>
 <li>leg-up ::</li>
 <li>heave-some ::</li>
 <li>tenuous ::</li>

 <li>discern ::</li>
 <li>compunction ::</li>
 <li>on the cusp ::</li>
 <li>pivoted on a dime ::</li>
 <li>surreptitiously ::</li>
 <li>anti-miscegenation ::</li>
 <li>imbroglio ::</li>
 <li>peroration ::</li>
 <li>regurgitate ::</li>
 <li>foment ::</li>

 <li>atone ::</li>
 <li>lampoon ::</li>
 <li>umpire ::</li>
 <li>condescension ::</li>
 <li>fad ::</li>
 <li>encroaching ::</li>
 <li>castigated ::</li>
 <li>dalliances ::</li>
 <li>ire ::</li>
 <li>surmised ::</li>

 <li>amped off ::</li>
 <li>mushing ::</li>
 <li>plaudits ::</li>
 <li>indignant ::</li>
 <li>porcine ::</li>
 <li>ordure ::</li>
 <li>slurry ::</li>
 <li>to tar ::</li>
 <li>crop up ::</li>
 <li>abasement ::</li>

 <li>schadenfreude ::</li>
 <li>quagmire ::</li>
 <li>recourse ::</li>
 <li>frailty ::</li>
 <li>rumbustious ::</li>
 <li>sidles ::</li>
 <li>qualms ::</li>
 <li>transpire ::</li>
 <li>aggravation ::</li>
 <li>flay ::</li>

 <li>opprobrium ::</li>
 <li>pugilist ::</li>
 <li>flicking ::</li>
 <li>pouting ::</li>
 <li>childhood haunts ::</li>
 <li>stand-in ::</li>
 <li>flaunt ::</li>
 <li>adumbrate ::</li>
 <li>unsnap a onesie ::</li>
 <li>doozy ::</li>

 <li>cowed by ::</li>
 <li>out of line ::</li>
 <li>vying ::</li>
 <li>derange ::</li>
 <li>animosity ::</li>
 <li>cuttlefish ::</li>
 <li>prelapsarian ::</li>
 <li>coy ::</li>
 <li>nixed ::</li>

 <li>frailties ::</li>
 <li>unruffled ::</li>
</ol></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-09-11_The-Madness-of-Crowds-by-Douglas-Murray/2020-09-11_The-Madness-of-Crowds-by-Douglas-Murray_notes.html"/>
  <id>https://lockywolf.net/2020-09-11_The-Madness-of-Crowds-by-Douglas-Murray/2020-09-11_The-Madness-of-Crowds-by-Douglas-Murray_notes.html</id>
  <updated>2024-01-08T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Unknown words and notes for the &quot;Light that Failed by Ivan Krastev and Steven Holmes&quot;.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Unknown words and notes for the “Light that Failed by Ivan Krastev and Steven Holmes”.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Introduction">1. Introduction</a></li>
 <li> <a href="#Remarks">2. Remarks</a></li>
 <li> <a href="#Words">3. Words</a></li>
</ul></div>
</nav> <section id="outline-container-Introduction" class="outline-2"> <h2 id="Introduction"> <span class="section-number-2">1.</span>  <a href="#Introduction">Introduction</a></h2>
 <div class="outline-text-2" id="text-Introduction">
 <p>
I wrote this file post-factum, after already publishing the review.
Therefore, the remarks section is empty.
</p>
</div>
</section> <section id="outline-container-Remarks" class="outline-2"> <h2 id="Remarks"> <span class="section-number-2">2.</span>  <a href="#Remarks">Remarks</a></h2>
 <div class="outline-text-2" id="text-Remarks">
 <p>
See the review file:  <a href="2020-07-14_Review-on-The-Light-that-Failed_Ivan-Krastev-and-Stephen-Holmes.html">2020-07-14_Review-on-The-Light-that-Failed_Ivan-Krastev-and-Stephen-Holmes.html</a>
</p>
</div>
</section> <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">3.</span>  <a href="#Words">Words</a></h2>
 <div class="outline-text-2" id="text-Words">
 <p>
I (lockywolf) copied these words from the main planner file.
</p>

 <table> <colgroup> <col class="org-right"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-right">0</th>
 <th scope="col" class="org-left">Word</th>
 <th scope="col" class="org-left">Translation</th>
</tr></thead> <tbody> <tr> <td class="org-right">1</td>
 <td class="org-left">feckless</td>
 <td class="org-left">тщетный</td>
</tr> <tr> <td class="org-right">2</td>
 <td class="org-left">undercut</td>
 <td class="org-left">сбить цену</td>
</tr> <tr> <td class="org-right">3</td>
 <td class="org-left">tellingly</td>
 <td class="org-left">красноречиво</td>
</tr> <tr> <td class="org-right">4</td>
 <td class="org-left">once-fêted</td>
 <td class="org-left">когда-то чествованный</td>
</tr> <tr> <td class="org-right">5</td>
 <td class="org-left">lustre</td>
 <td class="org-left">глянец, блеск</td>
</tr> <tr> <td class="org-right">6</td>
 <td class="org-left">topple</td>
 <td class="org-left">опрокинуть</td>
</tr> <tr> <td class="org-right">7</td>
 <td class="org-left">bullwark</td>
 <td class="org-left">насыпь, бастион</td>
</tr> <tr> <td class="org-right">8</td>
 <td class="org-left">loosed</td>
 <td class="org-left">made more loosed</td>
</tr> <tr> <td class="org-right">9</td>
 <td class="org-left">genuflect</td>
 <td class="org-left">преклонять колени</td>
</tr> <tr> <td class="org-right">10</td>
 <td class="org-left">trite</td>
 <td class="org-left">банальный</td>
</tr> <tr> <td class="org-right">11</td>
 <td class="org-left">firmament</td>
 <td class="org-left">небосвод</td>
</tr> <tr> <td class="org-right">12</td>
 <td class="org-left">stand-off</td>
 <td class="org-left">ничья, пат</td>
</tr> <tr> <td class="org-right">13</td>
 <td class="org-left">fraught</td>
 <td class="org-left">преисполненный</td>
</tr> <tr> <td class="org-right">14</td>
 <td class="org-left">veering</td>
 <td class="org-left">контролируемо ослаблять</td>
</tr> <tr> <td class="org-right">15</td>
 <td class="org-left">fomented</td>
 <td class="org-left">разжигать, подстрекать</td>
</tr> <tr> <td class="org-right">16</td>
 <td class="org-left">disparaged</td>
 <td class="org-left">преуменьшать</td>
</tr> <tr> <td class="org-right">17</td>
 <td class="org-left">malaise</td>
 <td class="org-left">недомогание</td>
</tr> <tr> <td class="org-right">18</td>
 <td class="org-left">perfunctory</td>
 <td class="org-left">небрежный</td>
</tr> <tr> <td class="org-right">19</td>
 <td class="org-left">mimetic</td>
 <td class="org-left">подражательный</td>
</tr> <tr> <td class="org-right">20</td>
 <td class="org-left">glib</td>
 <td class="org-left">бойкий</td>
</tr> <tr> <td class="org-right">21</td>
 <td class="org-left">contentious</td>
 <td class="org-left">сварливый</td>
</tr> <tr> <td class="org-right">22</td>
 <td class="org-left">prescient</td>
 <td class="org-left">предвидящий</td>
</tr> <tr> <td class="org-right">23</td>
 <td class="org-left">swathe</td>
 <td class="org-left">обмотанный слоями</td>
</tr> <tr> <td class="org-right">24</td>
 <td class="org-left">feign</td>
 <td class="org-left">симулировать</td>
</tr> <tr> <td class="org-right">25</td>
 <td class="org-left">rankling</td>
 <td class="org-left">нагноение, (фиг. обида)</td>
</tr> <tr> <td class="org-right">26</td>
 <td class="org-left">imperious</td>
 <td class="org-left">властный, повелительный</td>
</tr> <tr> <td class="org-right">27</td>
 <td class="org-left">erstwhile</td>
 <td class="org-left">былой</td>
</tr> <tr> <td class="org-right">28</td>
 <td class="org-left">irksome</td>
 <td class="org-left">надоедливый</td>
</tr> <tr> <td class="org-right">29</td>
 <td class="org-left">ricketiness</td>
 <td class="org-left">покосившеся (нар.)</td>
</tr> <tr> <td class="org-right">30</td>
 <td class="org-left">supercilious</td>
 <td class="org-left">высокомерный</td>
</tr> <tr> <td class="org-right">31</td>
 <td class="org-left">condescendingly</td>
 <td class="org-left">снисходительно</td>
</tr> <tr> <td class="org-right">32</td>
 <td class="org-left">travail</td>
 <td class="org-left">тяжкий труд</td>
</tr> <tr> <td class="org-right">33</td>
 <td class="org-left">apprehension</td>
 <td class="org-left">опасение</td>
</tr> <tr> <td class="org-right">34</td>
 <td class="org-left">mingle</td>
 <td class="org-left">смешение</td>
</tr> <tr> <td class="org-right">35</td>
 <td class="org-left">roil</td>
 <td class="org-left">муть</td>
</tr> <tr> <td class="org-right">36</td>
 <td class="org-left">crassly</td>
 <td class="org-left">несуразный</td>
</tr> <tr> <td class="org-right">37</td>
 <td class="org-left">seethe</td>
 <td class="org-left">бурлить</td>
</tr> <tr> <td class="org-right">38</td>
 <td class="org-left">indelibly</td>
 <td class="org-left">неизгладимо</td>
</tr> <tr> <td class="org-right">39</td>
 <td class="org-left">prescient</td>
 <td class="org-left">предвидящий</td>
</tr> <tr> <td class="org-right">40</td>
 <td class="org-left">capsize</td>
 <td class="org-left">опрокинуть</td>
</tr> <tr> <td class="org-right">41</td>
 <td class="org-left">taproot</td>
 <td class="org-left">стержневой корень</td>
</tr> <tr> <td class="org-right">42</td>
 <td class="org-left">scurrilous</td>
 <td class="org-left">непристойный</td>
</tr> <tr> <td class="org-right">43</td>
 <td class="org-left">offhand</td>
 <td class="org-left">экспромтом</td>
</tr> <tr> <td class="org-right">44</td>
 <td class="org-left">implacable</td>
 <td class="org-left">неумолимый</td>
</tr> <tr> <td class="org-right">45</td>
 <td class="org-left">root-and-branch</td>
 <td class="org-left">целиком и полностью</td>
</tr> <tr> <td class="org-right">46</td>
 <td class="org-left">pungently</td>
 <td class="org-left">пикантно</td>
</tr> <tr> <td class="org-right">47</td>
 <td class="org-left">wily</td>
 <td class="org-left">коварно</td>
</tr> <tr> <td class="org-right">48</td>
 <td class="org-left">hoodwink</td>
 <td class="org-left">обмануть, провести</td>
</tr> <tr> <td class="org-right">49</td>
 <td class="org-left">inapposite</td>
 <td class="org-left">неуместный</td>
</tr> <tr> <td class="org-right">50</td>
 <td class="org-left">excoriation</td>
 <td class="org-left">разнос, жёсткая критика</td>
</tr> <tr> <td class="org-right">51</td>
 <td class="org-left">condescendingly</td>
 <td class="org-left">снисходительно</td>
</tr> <tr> <td class="org-right">52</td>
 <td class="org-left">presciently</td>
 <td class="org-left">прозорливо</td>
</tr> <tr> <td class="org-right">53</td>
 <td class="org-left">grist</td>
 <td class="org-left">помол зерна/солода</td>
</tr> <tr> <td class="org-right">54</td>
 <td class="org-left">fomented</td>
 <td class="org-left">разожжённый</td>
</tr> <tr> <td class="org-right">55</td>
 <td class="org-left">throe</td>
 <td class="org-left">агония</td>
</tr> <tr> <td class="org-right">56</td>
 <td class="org-left">bait-and-switch</td>
 <td class="org-left">обман путём предложения товара по неверной цене</td>
</tr> <tr> <td class="org-right">57</td>
 <td class="org-left">foisted</td>
 <td class="org-left">навязанный</td>
</tr> <tr> <td class="org-right">58</td>
 <td class="org-left">onerous</td>
 <td class="org-left">обременительны</td>
</tr> <tr> <td class="org-right">59</td>
 <td class="org-left">gratuitously</td>
 <td class="org-left">беспричинно</td>
</tr> <tr> <td class="org-right">60</td>
 <td class="org-left">repudiation</td>
 <td class="org-left">отказ, отречение</td>
</tr> <tr> <td class="org-right">61</td>
 <td class="org-left">heinous</td>
 <td class="org-left">гнусный</td>
</tr> <tr> <td class="org-right">62</td>
 <td class="org-left">denigrate</td>
 <td class="org-left">порочить</td>
</tr> <tr> <td class="org-right">63</td>
 <td class="org-left">humdrum</td>
 <td class="org-left">банальный</td>
</tr> <tr> <td class="org-right">64</td>
 <td class="org-left">incongruous</td>
 <td class="org-left">нелепый</td>
</tr> <tr> <td class="org-right">65</td>
 <td class="org-left">tatty</td>
 <td class="org-left">безвкусный</td>
</tr> <tr> <td class="org-right">66</td>
 <td class="org-left">grisly</td>
 <td class="org-left">скверный</td>
</tr> <tr> <td class="org-right">67</td>
 <td class="org-left">underhandedness</td>
 <td class="org-left">скрытое нечестное поведение</td>
</tr> <tr> <td class="org-right">68</td>
 <td class="org-left">congruous</td>
 <td class="org-left">гармоничный</td>
</tr> <tr> <td class="org-right">69</td>
 <td class="org-left">lofty</td>
 <td class="org-left">возвышенный</td>
</tr> <tr> <td class="org-right">70</td>
 <td class="org-left">afflict</td>
 <td class="org-left">тревожить, заражать, влиять в плохом смысле</td>
</tr> <tr> <td class="org-right">71</td>
 <td class="org-left">gnawing</td>
 <td class="org-left">подтачивать</td>
</tr> <tr> <td class="org-right">72</td>
 <td class="org-left">fulminate</td>
 <td class="org-left">гремучая (смесь)</td>
</tr> <tr> <td class="org-right">73</td>
 <td class="org-left">wrought</td>
 <td class="org-left">кованый</td>
</tr> <tr> <td class="org-right">74</td>
 <td class="org-left">candour</td>
 <td class="org-left">откровенность</td>
</tr> <tr> <td class="org-right">75</td>
 <td class="org-left">gabfest</td>
 <td class="org-left">торжество словоблудия</td>
</tr> <tr> <td class="org-right">76</td>
 <td class="org-left">rattle</td>
 <td class="org-left">греметь</td>
</tr> <tr> <td class="org-right">77</td>
 <td class="org-left">heinous</td>
 <td class="org-left">гнусный</td>
</tr> <tr> <td class="org-right">78</td>
 <td class="org-left">fluster</td>
 <td class="org-left">слегка возбудиться</td>
</tr> <tr> <td class="org-right">79</td>
 <td class="org-left">uncouth</td>
 <td class="org-left">неотёсанный</td>
</tr> <tr> <td class="org-right">80</td>
 <td class="org-left">patrimony</td>
 <td class="org-left">вотчина</td>
</tr> <tr> <td class="org-right">81</td>
 <td class="org-left">scoffing</td>
 <td class="org-left">насмешливый</td>
</tr> <tr> <td class="org-right">82</td>
 <td class="org-left">dishearten</td>
 <td class="org-left">привести в уныние</td>
</tr> <tr> <td class="org-right">83</td>
 <td class="org-left">aсquiesce</td>
 <td class="org-left">неохотно согласиться</td>
</tr> <tr> <td class="org-right">84</td>
 <td class="org-left">muzzled</td>
 <td class="org-left">в наморднике</td>
</tr> <tr> <td class="org-right">85</td>
 <td class="org-left">condescension</td>
 <td class="org-left">снисходительность</td>
</tr> <tr> <td class="org-right">86</td>
 <td class="org-left">indelible</td>
 <td class="org-left">неизгладимый</td>
</tr> <tr> <td class="org-right">87</td>
 <td class="org-left">preposterous</td>
 <td class="org-left">нелепый</td>
</tr> <tr> <td class="org-right">88</td>
 <td class="org-left">pent-up</td>
 <td class="org-left">сдерживаемый</td>
</tr> <tr> <td class="org-right">89</td>
 <td class="org-left">galling</td>
 <td class="org-left">раздражение (типа кожи, также фиг.)</td>
</tr> <tr> <td class="org-right">90</td>
 <td class="org-left">pillory</td>
 <td class="org-left">выставить на осмеяние</td>
</tr> <tr> <td class="org-right">91</td>
 <td class="org-left">extirpation</td>
 <td class="org-left">искоренение</td>
</tr> <tr> <td class="org-right">92</td>
 <td class="org-left">volte-face</td>
 <td class="org-left">резкая перемена</td>
</tr> <tr> <td class="org-right">93</td>
 <td class="org-left">segue</td>
 <td class="org-left">переход</td>
</tr> <tr> <td class="org-right">94</td>
 <td class="org-left">bristling</td>
 <td class="org-left">ощетинившийся</td>
</tr> <tr> <td class="org-right">95</td>
 <td class="org-left">complacent</td>
 <td class="org-left">самодовольный</td>
</tr> <tr> <td class="org-right">96</td>
 <td class="org-left">scathing</td>
 <td class="org-left">уничтожающий</td>
</tr> <tr> <td class="org-right">97</td>
 <td class="org-left">pungently</td>
 <td class="org-left">пикантно</td>
</tr> <tr> <td class="org-right">98</td>
 <td class="org-left">truculent</td>
 <td class="org-left">свирепый</td>
</tr> <tr> <td class="org-right">99</td>
 <td class="org-left">conceit</td>
 <td class="org-left">тщеславный</td>
</tr> <tr> <td class="org-right">100</td>
 <td class="org-left">gnawing</td>
 <td class="org-left">грызущий</td>
</tr> <tr> <td class="org-right">101</td>
 <td class="org-left">shabbily</td>
 <td class="org-left">затрапезно</td>
</tr> <tr> <td class="org-right">102</td>
 <td class="org-left">preponderance</td>
 <td class="org-left">преобладание</td>
</tr> <tr> <td class="org-right">103</td>
 <td class="org-left">vainglorious</td>
 <td class="org-left">тщеславный</td>
</tr> <tr> <td class="org-right">104</td>
 <td class="org-left">inexorably</td>
 <td class="org-left">неумолимо</td>
</tr> <tr> <td class="org-right">105</td>
 <td class="org-left">disavowing</td>
 <td class="org-left">отрекаясь</td>
</tr> <tr> <td class="org-right">106</td>
 <td class="org-left">pent-up</td>
 <td class="org-left">сдерживаемый</td>
</tr> <tr> <td class="org-right">107</td>
 <td class="org-left">stave off</td>
 <td class="org-left">предотвратить</td>
</tr> <tr> <td class="org-right">108</td>
 <td class="org-left">papered</td>
 <td class="org-left">обёрнутый</td>
</tr> <tr> <td class="org-right">109</td>
 <td class="org-left">demeaning</td>
 <td class="org-left">унизительный</td>
</tr> <tr> <td class="org-right">110</td>
 <td class="org-left">makeshift</td>
 <td class="org-left">импровизированный</td>
</tr> <tr> <td class="org-right">111</td>
 <td class="org-left">fending off</td>
 <td class="org-left">парировать</td>
</tr> <tr> <td class="org-right">112</td>
 <td class="org-left">sneering</td>
 <td class="org-left">насмешливый</td>
</tr> <tr> <td class="org-right">113</td>
 <td class="org-left">ingratiating</td>
 <td class="org-left">льстивый</td>
</tr> <tr> <td class="org-right">114</td>
 <td class="org-left">bequeath</td>
 <td class="org-left">завещать</td>
</tr> <tr> <td class="org-right">115</td>
 <td class="org-left">spinmeister</td>
 <td class="org-left">пропагандист</td>
</tr> <tr> <td class="org-right">116</td>
 <td class="org-left">inchoate</td>
 <td class="org-left">незавершённый</td>
</tr> <tr> <td class="org-right">117</td>
 <td class="org-left">heyday</td>
 <td class="org-left">рассвет</td>
</tr> <tr> <td class="org-right">118</td>
 <td class="org-left">mendacity</td>
 <td class="org-left">лживость</td>
</tr> <tr> <td class="org-right">119</td>
 <td class="org-left">subliminal</td>
 <td class="org-left">подсознательный</td>
</tr> <tr> <td class="org-right">120</td>
 <td class="org-left">gimmicks and ruses</td>
 <td class="org-left">“трюки и трюки?”</td>
</tr> <tr> <td class="org-right">121</td>
 <td class="org-left">hobbling</td>
 <td class="org-left">хромать</td>
</tr> <tr> <td class="org-right">122</td>
 <td class="org-left">bungling</td>
 <td class="org-left">головотяпство</td>
</tr> <tr> <td class="org-right">123</td>
 <td class="org-left">faltering</td>
 <td class="org-left">прерывистый</td>
</tr> <tr> <td class="org-right">124</td>
 <td class="org-left">thwarter</td>
 <td class="org-left">пресечь</td>
</tr> <tr> <td class="org-right">125</td>
 <td class="org-left">dizzying</td>
 <td class="org-left">головокружительный</td>
</tr> <tr> <td class="org-right">126</td>
 <td class="org-left">denouement</td>
 <td class="org-left">развязка</td>
</tr> <tr> <td class="org-right">127</td>
 <td class="org-left">paean</td>
 <td class="org-left">победная песня</td>
</tr> <tr> <td class="org-right">128</td>
 <td class="org-left">cosying</td>
 <td class="org-left">успокаивание</td>
</tr> <tr> <td class="org-right">129</td>
 <td class="org-left">strut</td>
 <td class="org-left">подпорка</td>
</tr> <tr> <td class="org-right">130</td>
 <td class="org-left">flout</td>
 <td class="org-left">попирать</td>
</tr> <tr> <td class="org-right">131</td>
 <td class="org-left">moonstruck</td>
 <td class="org-left">помешанный</td>
</tr> <tr> <td class="org-right">132</td>
 <td class="org-left">scornful</td>
 <td class="org-left">презрительный</td>
</tr> <tr> <td class="org-right">133</td>
 <td class="org-left">vaunt</td>
 <td class="org-left">превозносить</td>
</tr> <tr> <td class="org-right">134</td>
 <td class="org-left">impelled</td>
 <td class="org-left">побуждать</td>
</tr> <tr> <td class="org-right">135</td>
 <td class="org-left">pollen</td>
 <td class="org-left">пыльца</td>
</tr> <tr> <td class="org-right">136</td>
 <td class="org-left">stammering</td>
 <td class="org-left">заикание</td>
</tr> <tr> <td class="org-right">137</td>
 <td class="org-left">abet</td>
 <td class="org-left">соучастие</td>
</tr> <tr> <td class="org-right">138</td>
 <td class="org-left">impute</td>
 <td class="org-left">вменить, приписать</td>
</tr></tbody></table> <table> <colgroup> <col class="org-right"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <tbody> <tr> <td class="org-right">139</td>
 <td class="org-left">ratchet up</td>
 <td class="org-left">усиливать</td>
</tr> <tr> <td class="org-right">141</td>
 <td class="org-left">chicanery</td>
 <td class="org-left">кляузничество</td>
</tr> <tr> <td class="org-right">142</td>
 <td class="org-left">cribbing</td>
 <td class="org-left">списывание (на уроках)</td>
</tr> <tr> <td class="org-right">143</td>
 <td class="org-left">gauche</td>
 <td class="org-left">неловкий</td>
</tr> <tr> <td class="org-right">144</td>
 <td class="org-left">boorish</td>
 <td class="org-left">невоспитанный</td>
</tr> <tr> <td class="org-right">145</td>
 <td class="org-left">jeering</td>
 <td class="org-left">глумление</td>
</tr> <tr> <td class="org-right">146</td>
 <td class="org-left">clutter</td>
 <td class="org-left">беспорядок, суматоха</td>
</tr> <tr> <td class="org-right">147</td>
 <td class="org-left">gaudy</td>
 <td class="org-left">безвкусный</td>
</tr> <tr> <td class="org-right">148</td>
 <td class="org-left">basking</td>
 <td class="org-left">(гигантский?)</td>
</tr> <tr> <td class="org-right">149</td>
 <td class="org-left">denigrating</td>
 <td class="org-left">клеветнический</td>
</tr></tbody></table> <table> <colgroup> <col class="org-right"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <tbody> <tr> <td class="org-right">150</td>
 <td class="org-left">fluke</td>
 <td class="org-left">счастливая случайность, неудача</td>
</tr> <tr> <td class="org-right">151</td>
 <td class="org-left">meandering</td>
 <td class="org-left">извилистый</td>
</tr> <tr> <td class="org-right">152</td>
 <td class="org-left">replete</td>
 <td class="org-left">переполненный</td>
</tr> <tr> <td class="org-right">153</td>
 <td class="org-left">self-effacing</td>
 <td class="org-left">скромный</td>
</tr> <tr> <td class="org-right">154</td>
 <td class="org-left">repudiation</td>
 <td class="org-left">отрицание</td>
</tr> <tr> <td class="org-right">155</td>
 <td class="org-left">airy</td>
 <td class="org-left">мечтательный, ветреный</td>
</tr> <tr> <td class="org-right">156</td>
 <td class="org-left">conceit</td>
 <td class="org-left">тщеславие</td>
</tr> <tr> <td class="org-right">157</td>
 <td class="org-left">candour</td>
 <td class="org-left">откровенность</td>
</tr> <tr> <td class="org-right">158</td>
 <td class="org-left">jingoistic</td>
 <td class="org-left">экстремально патриотичный</td>
</tr> <tr> <td class="org-right">159</td>
 <td class="org-left">strewn</td>
 <td class="org-left">усыпанный</td>
</tr> <tr> <td class="org-right">160</td>
 <td class="org-left">clout</td>
 <td class="org-left">лоскут</td>
</tr> <tr> <td class="org-right">161</td>
 <td class="org-left">engender</td>
 <td class="org-left">породить</td>
</tr> <tr> <td class="org-right">162</td>
 <td class="org-left">hamstrung</td>
 <td class="org-left">с подрезанными крыльями</td>
</tr> <tr> <td class="org-right">163</td>
 <td class="org-left">interloper</td>
 <td class="org-left">тот, кто вмешивается в дела</td>
</tr> <tr> <td class="org-right">164</td>
 <td class="org-left">fortuitously</td>
 <td class="org-left">случайно</td>
</tr> <tr> <td class="org-right">165</td>
 <td class="org-left">stupendous</td>
 <td class="org-left">колоссальной важности</td>
</tr> <tr> <td class="org-right">166</td>
 <td class="org-left">misbegotten</td>
 <td class="org-left">рождённый по ошибке</td>
</tr> <tr> <td class="org-right">167</td>
 <td class="org-left">to irk</td>
 <td class="org-left">раздражать</td>
</tr> <tr> <td class="org-right">168</td>
 <td class="org-left">to contend</td>
 <td class="org-left">соперничать</td>
</tr> <tr> <td class="org-right">169</td>
 <td class="org-left">subliminal</td>
 <td class="org-left">подсознательный</td>
</tr> <tr> <td class="org-right">170</td>
 <td class="org-left">underhanded</td>
 <td class="org-left">коварный</td>
</tr> <tr> <td class="org-right">171</td>
 <td class="org-left">fray</td>
 <td class="org-left">износ</td>
</tr> <tr> <td class="org-right">172</td>
 <td class="org-left">insouciance</td>
 <td class="org-left">беззаботность</td>
</tr> <tr> <td class="org-right">173</td>
 <td class="org-left">bamboozle</td>
 <td class="org-left">надувать</td>
</tr> <tr> <td class="org-right">174</td>
 <td class="org-left">connivance</td>
 <td class="org-left">попустительство</td>
</tr> <tr> <td class="org-right">175</td>
 <td class="org-left">enraptured</td>
 <td class="org-left">приводить в восторг</td>
</tr> <tr> <td class="org-right">176</td>
 <td class="org-left">foment</td>
 <td class="org-left">разжигать</td>
</tr> <tr> <td class="org-right">177</td>
 <td class="org-left">profligate</td>
 <td class="org-left">расточительный</td>
</tr> <tr> <td class="org-right">178</td>
 <td class="org-left">posterity</td>
 <td class="org-left">последующие поколения</td>
</tr> <tr> <td class="org-right">179</td>
 <td class="org-left">unfazed</td>
 <td class="org-left">невозмутимый</td>
</tr> <tr> <td class="org-right">180</td>
 <td class="org-left">precipitous</td>
 <td class="org-left">обрывистый</td>
</tr> <tr> <td class="org-right">181</td>
 <td class="org-left">curry favour</td>
 <td class="org-left">добиться одобрения лестью</td>
</tr> <tr> <td class="org-right">182</td>
 <td class="org-left">working stiff</td>
 <td class="org-left">те, кто работают</td>
</tr> <tr> <td class="org-right">183</td>
 <td class="org-left">roiling</td>
 <td class="org-left">бурливый, мутный</td>
</tr> <tr> <td class="org-right">184</td>
 <td class="org-left">sapper</td>
 <td class="org-left">сапёр</td>
</tr> <tr> <td class="org-right">185</td>
 <td class="org-left">consanguinity</td>
 <td class="org-left">единокровность</td>
</tr> <tr> <td class="org-right">186</td>
 <td class="org-left">coddling</td>
 <td class="org-left">нянчить</td>
</tr> <tr> <td class="org-right">187</td>
 <td class="org-left">prevaricate</td>
 <td class="org-left">увиливать</td>
</tr> <tr> <td class="org-right">188</td>
 <td class="org-left">untoward</td>
 <td class="org-left">неблагоприятный</td>
</tr> <tr> <td class="org-right">189</td>
 <td class="org-left">dish out</td>
 <td class="org-left">выгибаться</td>
</tr> <tr> <td class="org-right">190</td>
 <td class="org-left">brashly</td>
 <td class="org-left">порывисто</td>
</tr> <tr> <td class="org-right">191</td>
 <td class="org-left">duped</td>
 <td class="org-left">обманутый</td>
</tr> <tr> <td class="org-right">192</td>
 <td class="org-left">candid</td>
 <td class="org-left">беспристрастный</td>
</tr> <tr> <td class="org-right">193</td>
 <td class="org-left">rowdy</td>
 <td class="org-left">дебошир</td>
</tr> <tr> <td class="org-right">194</td>
 <td class="org-left">epitomise</td>
 <td class="org-left">резюмировать</td>
</tr> <tr> <td class="org-right">195</td>
 <td class="org-left">mendacity</td>
 <td class="org-left">лживость</td>
</tr> <tr> <td class="org-right">196</td>
 <td class="org-left">loosed</td>
 <td class="org-left">“подрасслабить”</td>
</tr> <tr> <td class="org-right">197</td>
 <td class="org-left">take up</td>
 <td class="org-left">принятся за</td>
</tr> <tr> <td class="org-right">198</td>
 <td class="org-left">adjudication</td>
 <td class="org-left">приговор</td>
</tr> <tr> <td class="org-right">199</td>
 <td class="org-left">sidle</td>
 <td class="org-left">ходить бочком</td>
</tr> <tr> <td class="org-right">200</td>
 <td class="org-left">titillate</td>
 <td class="org-left">щекотать</td>
</tr> <tr> <td class="org-right">201</td>
 <td class="org-left">excoriate</td>
 <td class="org-left">сделать ссадину</td>
</tr> <tr> <td class="org-right">202</td>
 <td class="org-left">momentous</td>
 <td class="org-left">важный</td>
</tr> <tr> <td class="org-right">203</td>
 <td class="org-left">flagrant</td>
 <td class="org-left">вопиющий</td>
</tr> <tr> <td class="org-right">204</td>
 <td class="org-left">foment</td>
 <td class="org-left">поджигать</td>
</tr> <tr> <td class="org-right">205</td>
 <td class="org-left">go to the brink</td>
 <td class="org-left">дойти до грани</td>
</tr> <tr> <td class="org-right">206</td>
 <td class="org-left">wager</td>
 <td class="org-left">ставка</td>
</tr> <tr> <td class="org-right">207</td>
 <td class="org-left">hindsight</td>
 <td class="org-left">“глядя в прошлое”</td>
</tr> <tr> <td class="org-right">208</td>
 <td class="org-left">repudiated</td>
 <td class="org-left">аннулировать, отречься</td>
</tr> <tr> <td class="org-right">209</td>
 <td class="org-left">pernicious</td>
 <td class="org-left">пагубный</td>
</tr> <tr> <td class="org-right">210</td>
 <td class="org-left">unflinching</td>
 <td class="org-left">неустрашимый</td>
</tr> <tr> <td class="org-right">211</td>
 <td class="org-left">flipside</td>
 <td class="org-left">оборотная сторона</td>
</tr> <tr> <td class="org-right">212</td>
 <td class="org-left">hoist</td>
 <td class="org-left">подъёмник</td>
</tr> <tr> <td class="org-right">213</td>
 <td class="org-left">eschew</td>
 <td class="org-left">избегать, сторониться</td>
</tr> <tr> <td class="org-right">214</td>
 <td class="org-left">pent-up</td>
 <td class="org-left">сдерживать</td>
</tr> <tr> <td class="org-right">215</td>
 <td class="org-left">caller of the shots</td>
 <td class="org-left">тот, кто отвечает</td>
</tr> <tr> <td class="org-right">216</td>
 <td class="org-left">assay</td>
 <td class="org-left">анализ</td>
</tr> <tr> <td class="org-right">217</td>
 <td class="org-left">feign</td>
 <td class="org-left">симулировать</td>
</tr> <tr> <td class="org-right">218</td>
 <td class="org-left">copious</td>
 <td class="org-left">обильный</td>
</tr> <tr> <td class="org-right">219</td>
 <td class="org-left">fray</td>
 <td class="org-left">изношенный</td>
</tr> <tr> <td class="org-right">220</td>
 <td class="org-left">coaxing</td>
 <td class="org-left">уговаривание</td>
</tr> <tr> <td class="org-right">221</td>
 <td class="org-left">daub</td>
 <td class="org-left">штукатурка</td>
</tr> <tr> <td class="org-right">222</td>
 <td class="org-left">cheek-by-jowl</td>
 <td class="org-left">плечом к плечу</td>
</tr> <tr> <td class="org-right">223</td>
 <td class="org-left">jostling</td>
 <td class="org-left">тесниться</td>
</tr></tbody></table></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-07-26_The-Light-that-failed-Krastev-Holmes/2020-07-26_remarks-words.html"/>
  <id>https://lockywolf.net/2020-07-26_The-Light-that-failed-Krastev-Holmes/2020-07-26_remarks-words.html</id>
  <updated>2023-08-12T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Words and notes for reading &quot;The Force of Non-Violence&quot; by Judith Butler.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Words and notes for reading "The Force of Non-Violence" by Judith Butler.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Words">1. Words</a></li>
 <li> <a href="#Remarks">2. Remarks</a>
 <ul> <li> <a href="#She-wants-to-get-the-%22propagandist-power%22-over-the-word-%22violence%22.">2.1. She wants to get the "propagandist power" over the word "violence".</a></li>
 <li> <a href="#Writing-on-Rousseau,-literary-critic-Jean-Starobinski-opined-that-the-state-of-nature-provides-an-imaginary-framework-in-which-there-is-only-one-individual-in-the-scene:-self-sufficient,-without-dependency,-saturated-in-self-love-yet-without-any-need-for-another.">2.2. Writing on Rousseau, literary critic Jean Starobinski opined that the state of nature provides an imaginary framework in which there is only one individual in the scene: self-sufficient, without dependency, saturated in self-love yet without any need for another.</a></li>
 <li> <a href="#Added-Lacan,-Levi-Strauss-and-Melanie-Klein-to-the-research-list.">2.3. Added Lacan, Levi-Strauss and Melanie Klein to the research list.</a></li>
 <li> <a href="#%22narcissistic-defences%22">2.4. "narcissistic defences"</a></li>
 <li> <a href="#Laplanche">2.5. Laplanche</a></li>
 <li> <a href="#every-individual-emerges-in-the-course-of-the-process-of-individuation.-No-one-is-born-an-individual;">2.6. every individual emerges in the course of the process of individuation. No one is born an individual;</a></li>
 <li> <a href="#we-have-become-creatures-who-constantly-imagine-a-self-sufficiency,-only-to-find-that-image-of-ourselves-undermined-repeatedly-in-the-course-of-life">2.7. we have become creatures who constantly imagine a self-sufficiency, only to find that image of ourselves undermined repeatedly in the course of life</a></li>
 <li> <a href="#So-one-reason-it-is-so-difficult-to-convince-governments-such-as-that-of-the-United-States-that-global-warming-is-a-real-threat-to-the-future-of-the-livable-world-is-that-their-rights-to-expand-production-and-markets,-to-exploit-nature,-to-profit,-remain-centered-on-the-augmentation-of-a-national-wealth-and-power.">2.8. So one reason it is so difficult to convince governments such as that of the United States that global warming is a real threat to the future of the livable world is that their rights to expand production and markets, to exploit nature, to profit, remain centered on the augmentation of a national wealth and power.</a></li>
 <li> <a href="#So-I-am-summoning-my-courage-to-exposemy-naivet%C3%A9,-my-fantasy%E2%80%94my-counter-fantasy,-if-you-will.">2.9. So I am summoning my courage to exposemy naiveté, my fantasy—my counter-fantasy, if you will.</a></li>
 <li> <a href="#because-we-cannot-exist-liberated-from-such-conditions,-we-are-never-fully-individuated.">2.10. because we cannot exist liberated from such conditions, we are never fully individuated.</a></li>
 <li> <a href="#obligations-that-are-globally-shared-and-ought-to-be-considered-binding%E2%80%94they-cannot-be-reduced-to-obligations-that-nation-states-have-toward-one-another">2.11. obligations that are globally shared and ought to be considered binding—they cannot be reduced to obligations that nation-states have toward one another</a></li>
 <li> <a href="#It-would-be-awkward,-if-not-fully-paradoxical,-if-a-politics-based-on-vulnerability-ended-up-fortifying-hierarchies-that-most-urgently-need-to-be-dismantled.">2.12. It would be awkward, if not fully paradoxical, if a politics based on vulnerability ended up fortifying hierarchies that most urgently need to be dismantled.</a></li>
 <li> <a href="#But-if-we-can-imagine-this-(interpersonal)-dependency-within-personal-life-and-intimate-forms-of-dependency,-can-we-not-also-understand-that-we-are-dependent-on-institutions-and-economies-without-which-we-cannot-persist-as-the-creatures-that-we-are?">2.13. But if we can imagine this (interpersonal) dependency within personal life and intimate forms of dependency, can we not also understand that we are dependent on institutions and economies without which we cannot persist as the creatures that we are?</a></li>
 <li> <a href="#Freud-identifies-this-as-the-repetitive-character-of-destruction.-In-the-patient,-it-eventuates-in-social-isolation;-more-broadly-considered,-it-not-only-serves-to-weaken-the-social-bonds-that-hold-societies-together,-but-also-takes-form-as-a-self-destruction-that-can-culminate-in-suicide.">2.14. Freud identifies this as the repetitive character of destruction. In the patient, it eventuates in social isolation; more broadly considered, it not only serves to weaken the social bonds that hold societies together, but also takes form as a self-destruction that can culminate in suicide.</a></li>
</ul></li>
 <li> <a href="#Conclusion">3. Conclusion</a>
 <ul> <li> <a href="#The-book.">3.1. The book.</a></li>
 <li> <a href="#Useful-thoughts.">3.2. Useful thoughts.</a></li>
 <li> <a href="#Living">3.3. Living</a></li>
 <li> <a href="#Imagination">3.4. Imagination</a></li>
 <li> <a href="#Saving-and-killing.">3.5. Saving and killing.</a></li>
 <li> <a href="#Some-thoughts-on-basic-instincts.">3.6. Some thoughts on basic instincts.</a></li>
 <li> <a href="#Some-thoughts-on-the-writers-she-cites.">3.7. Some thoughts on the writers she cites.</a></li>
 <li> <a href="#The-actual-force-of-the-non-violent-action.">3.8. The actual force of the non-violent action.</a></li>
 <li> <a href="#Conclusion-1">3.9. Conclusion</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">1.</span>  <a href="#Words">Words</a></h2>
 <div class="outline-text-2" id="text-Words">
 <ol class="org-ol"> <li>linger :: staying or remaining in a place or situation for a longer time than necessary or expected, often about feelings, say, nostalgia, or fragrance</li>
 <li>apprehend :: to anticipate with anxiety or fear</li>
 <li>labile :: prone to change, unstable, often about emotions</li>
 <li>smwh is suffused with smth :: spread or fill something, typically with a particular quality, emotion, or color</li>
 <li>fraught :: signifies a state or condition that is deeply affected or influenced by a particular quality, often implying a sense of heaviness or intensity</li>
 <li>votary :: noun. a person who is dedicated or devoted to a particular belief, cause, or practice. Say, a votary of freedom</li>
 <li>proprioceptive :: sense or perception of the position, movement, and spatial orientation of one's own body and limbs, also figuratively "aware, mindful"</li>
 <li>rejoinder :: a noun that refers to a reply or response made in answer to a previous statement or argument, often used in court</li>
 <li>rectitude :: quality or state of being morally correct or upright</li>
 <li>alterity :: state or quality of being "other" or different from oneself, philosophical</li>
 <li>enmity ::deep-seated and often mutual feeling of hostility, animosity, or hatred</li>
 <li>jubilant :: exultant, ecstatic, and triumphant state of happiness and celebration</li>
 <li>conceits :: excessive pride or vanity in oneself, often bordering on arrogance</li>
 <li>waning :: gradual decrease, decline, or diminishing of something</li>
 <li>falter ::  to hesitate, stumble, or lose strength or confidence in speech, action, or progress</li>
 <li>ruses :: tricks, strategies, or tactics employed to deceive or manipulate others</li>
 <li>untenable :: a situation, argument, or position that is unable to be defended, justified, or maintained</li>
 <li>the brunt of punishment :: primary recipient or target of the punitive measures or consequences</li>
 <li>precept :: a guiding principle or rule that is intended to shape and influence behavior, morality, or ethical conduct</li>
 <li>swoop :: (рус. "пикировать"), descending or moving rapidly and smoothly from a higher position to a lower one. It can also describe a sudden and forceful approach or attack</li>
 <li>vicissitude :: a change or alteration in circumstances, situations, or conditions, especially one that occurs unpredictably or as part of the natural course of events</li>
</ol></div>
</section> <section id="outline-container-Remarks" class="outline-2"> <h2 id="Remarks"> <span class="section-number-2">2.</span>  <a href="#Remarks">Remarks</a></h2>
 <div class="outline-text-2" id="text-Remarks">
</div>

 <div id="outline-container-She-wants-to-get-the-%22propagandist-power%22-over-the-word-%22violence%22." class="outline-3">
 <h3 id="She-wants-to-get-the-%22propagandist-power%22-over-the-word-%22violence%22."> <span class="section-number-3">2.1.</span>  <a href="#She-wants-to-get-the-%22propagandist-power%22-over-the-word-%22violence%22.">She wants to get the "propagandist power" over the word "violence".</a></h3>
 <div class="outline-text-3" id="text-She-wants-to-get-the-%22propagandist-power%22-over-the-word-%22violence%22.">
 <p>
Makes sense, because this word essentially delineates what is allowed and what is not.
</p>
</div>
</div>

 <div id="outline-container-Writing-on-Rousseau,-literary-critic-Jean-Starobinski-opined-that-the-state-of-nature-provides-an-imaginary-framework-in-which-there-is-only-one-individual-in-the-scene:-self-sufficient,-without-dependency,-saturated-in-self-love-yet-without-any-need-for-another." class="outline-3">
 <h3 id="Writing-on-Rousseau,-literary-critic-Jean-Starobinski-opined-that-the-state-of-nature-provides-an-imaginary-framework-in-which-there-is-only-one-individual-in-the-scene:-self-sufficient,-without-dependency,-saturated-in-self-love-yet-without-any-need-for-another."> <span class="section-number-3">2.2.</span>  <a href="#Writing-on-Rousseau,-literary-critic-Jean-Starobinski-opined-that-the-state-of-nature-provides-an-imaginary-framework-in-which-there-is-only-one-individual-in-the-scene:-self-sufficient,-without-dependency,-saturated-in-self-love-yet-without-any-need-for-another.">Writing on Rousseau, literary critic Jean Starobinski opined that the state of nature provides an imaginary framework in which there is only one individual in the scene: self-sufficient, without dependency, saturated in self-love yet without any need for another.</a></h3>
 <div class="outline-text-3" id="text-Writing-on-Rousseau,-literary-critic-Jean-Starobinski-opined-that-the-state-of-nature-provides-an-imaginary-framework-in-which-there-is-only-one-individual-in-the-scene:-self-sufficient,-without-dependency,-saturated-in-self-love-yet-without-any-need-for-another.">
 <p>
Hm…
</p>
</div>
</div>

 <div id="outline-container-Added-Lacan,-Levi-Strauss-and-Melanie-Klein-to-the-research-list." class="outline-3">
 <h3 id="Added-Lacan,-Levi-Strauss-and-Melanie-Klein-to-the-research-list."> <span class="section-number-3">2.3.</span>  <a href="#Added-Lacan,-Levi-Strauss-and-Melanie-Klein-to-the-research-list.">Added Lacan, Levi-Strauss and Melanie Klein to the research list.</a></h3>
 <div class="outline-text-3" id="text-Added-Lacan,-Levi-Strauss-and-Melanie-Klein-to-the-research-list.">
</div>
</div>

 <div id="outline-container-%22narcissistic-defences%22" class="outline-3">
 <h3 id="%22narcissistic-defences%22"> <span class="section-number-3">2.4.</span>  <a href="#%22narcissistic-defences%22">"narcissistic defences"</a></h3>
 <div class="outline-text-3" id="text-%22narcissistic-defences%22">
 <p>
Narcissistic defenses are those processes whereby the idealized aspects of the self are preserved, and its limitations denied. They tend to be rigid and totalistic. (Wikipedia)
</p>
</div>
</div>

 <div id="outline-container-Laplanche" class="outline-3">
 <h3 id="Laplanche"> <span class="section-number-3">2.5.</span>  <a href="#Laplanche">Laplanche</a></h3>
 <div class="outline-text-3" id="text-Laplanche">
</div>
</div>

 <div id="outline-container-every-individual-emerges-in-the-course-of-the-process-of-individuation.-No-one-is-born-an-individual;" class="outline-3">
 <h3 id="every-individual-emerges-in-the-course-of-the-process-of-individuation.-No-one-is-born-an-individual;"> <span class="section-number-3">2.6.</span>  <a href="#every-individual-emerges-in-the-course-of-the-process-of-individuation.-No-one-is-born-an-individual;">every individual emerges in the course of the process of individuation. No one is born an individual;</a></h3>
 <div class="outline-text-3" id="text-every-individual-emerges-in-the-course-of-the-process-of-individuation.-No-one-is-born-an-individual;">
</div>
</div>

 <div id="outline-container-we-have-become-creatures-who-constantly-imagine-a-self-sufficiency,-only-to-find-that-image-of-ourselves-undermined-repeatedly-in-the-course-of-life" class="outline-3">
 <h3 id="we-have-become-creatures-who-constantly-imagine-a-self-sufficiency,-only-to-find-that-image-of-ourselves-undermined-repeatedly-in-the-course-of-life"> <span class="section-number-3">2.7.</span>  <a href="#we-have-become-creatures-who-constantly-imagine-a-self-sufficiency,-only-to-find-that-image-of-ourselves-undermined-repeatedly-in-the-course-of-life">we have become creatures who constantly imagine a self-sufficiency, only to find that image of ourselves undermined repeatedly in the course of life</a></h3>
 <div class="outline-text-3" id="text-we-have-become-creatures-who-constantly-imagine-a-self-sufficiency,-only-to-find-that-image-of-ourselves-undermined-repeatedly-in-the-course-of-life">
 <p>
Wrong, right? 
Academics may have that all the time, but hey, most people do not imagine self-sufficiency.
</p>
</div>
</div>

 <div id="outline-container-So-one-reason-it-is-so-difficult-to-convince-governments-such-as-that-of-the-United-States-that-global-warming-is-a-real-threat-to-the-future-of-the-livable-world-is-that-their-rights-to-expand-production-and-markets,-to-exploit-nature,-to-profit,-remain-centered-on-the-augmentation-of-a-national-wealth-and-power." class="outline-3">
 <h3 id="So-one-reason-it-is-so-difficult-to-convince-governments-such-as-that-of-the-United-States-that-global-warming-is-a-real-threat-to-the-future-of-the-livable-world-is-that-their-rights-to-expand-production-and-markets,-to-exploit-nature,-to-profit,-remain-centered-on-the-augmentation-of-a-national-wealth-and-power."> <span class="section-number-3">2.8.</span>  <a href="#So-one-reason-it-is-so-difficult-to-convince-governments-such-as-that-of-the-United-States-that-global-warming-is-a-real-threat-to-the-future-of-the-livable-world-is-that-their-rights-to-expand-production-and-markets,-to-exploit-nature,-to-profit,-remain-centered-on-the-augmentation-of-a-national-wealth-and-power.">So one reason it is so difficult to convince governments such as that of the United States that global warming is a real threat to the future of the livable world is that their rights to expand production and markets, to exploit nature, to profit, remain centered on the augmentation of a national wealth and power.</a></h3>
 <div class="outline-text-3" id="text-So-one-reason-it-is-so-difficult-to-convince-governments-such-as-that-of-the-United-States-that-global-warming-is-a-real-threat-to-the-future-of-the-livable-world-is-that-their-rights-to-expand-production-and-markets,-to-exploit-nature,-to-profit,-remain-centered-on-the-augmentation-of-a-national-wealth-and-power.">
</div>
</div>

 <div id="outline-container-So-I-am-summoning-my-courage-to-exposemy-naivet%C3%A9,-my-fantasy%E2%80%94my-counter-fantasy,-if-you-will." class="outline-3">
 <h3 id="So-I-am-summoning-my-courage-to-exposemy-naivet%C3%A9,-my-fantasy%E2%80%94my-counter-fantasy,-if-you-will."> <span class="section-number-3">2.9.</span>  <a href="#So-I-am-summoning-my-courage-to-exposemy-naivet%C3%A9,-my-fantasy%E2%80%94my-counter-fantasy,-if-you-will.">So I am summoning my courage to exposemy naiveté, my fantasy—my counter-fantasy, if you will.</a></h3>
 <div class="outline-text-3" id="text-So-I-am-summoning-my-courage-to-exposemy-naivet%C3%A9,-my-fantasy%E2%80%94my-counter-fantasy,-if-you-will.">
 <p>
Very important sentence! 
C.f. Zhu JinNing (Chin-Ning Chu) for "Art of War for Women".
Women's strength is in their weakness.
</p>
</div>
</div>

 <div id="outline-container-because-we-cannot-exist-liberated-from-such-conditions,-we-are-never-fully-individuated." class="outline-3">
 <h3 id="because-we-cannot-exist-liberated-from-such-conditions,-we-are-never-fully-individuated."> <span class="section-number-3">2.10.</span>  <a href="#because-we-cannot-exist-liberated-from-such-conditions,-we-are-never-fully-individuated.">because we cannot exist liberated from such conditions, we are never fully individuated.</a></h3>
 <div class="outline-text-3" id="text-because-we-cannot-exist-liberated-from-such-conditions,-we-are-never-fully-individuated.">
 <p>
Philosophically or practically?
I mean, yes, sort of, but there is constant confusion of ideal with real.
</p>
</div>
</div>

 <div id="outline-container-obligations-that-are-globally-shared-and-ought-to-be-considered-binding%E2%80%94they-cannot-be-reduced-to-obligations-that-nation-states-have-toward-one-another" class="outline-3">
 <h3 id="obligations-that-are-globally-shared-and-ought-to-be-considered-binding%E2%80%94they-cannot-be-reduced-to-obligations-that-nation-states-have-toward-one-another"> <span class="section-number-3">2.11.</span>  <a href="#obligations-that-are-globally-shared-and-ought-to-be-considered-binding%E2%80%94they-cannot-be-reduced-to-obligations-that-nation-states-have-toward-one-another">obligations that are globally shared and ought to be considered binding—they cannot be reduced to obligations that nation-states have toward one another</a></h3>
 <div class="outline-text-3" id="text-obligations-that-are-globally-shared-and-ought-to-be-considered-binding%E2%80%94they-cannot-be-reduced-to-obligations-that-nation-states-have-toward-one-another">
 <p>
There are so few of them. 
Mostly we are perfectly fine without them.
</p>
</div>
</div>

 <div id="outline-container-It-would-be-awkward,-if-not-fully-paradoxical,-if-a-politics-based-on-vulnerability-ended-up-fortifying-hierarchies-that-most-urgently-need-to-be-dismantled." class="outline-3">
 <h3 id="It-would-be-awkward,-if-not-fully-paradoxical,-if-a-politics-based-on-vulnerability-ended-up-fortifying-hierarchies-that-most-urgently-need-to-be-dismantled."> <span class="section-number-3">2.12.</span>  <a href="#It-would-be-awkward,-if-not-fully-paradoxical,-if-a-politics-based-on-vulnerability-ended-up-fortifying-hierarchies-that-most-urgently-need-to-be-dismantled.">It would be awkward, if not fully paradoxical, if a politics based on vulnerability ended up fortifying hierarchies that most urgently need to be dismantled.</a></h3>
 <div class="outline-text-3" id="text-It-would-be-awkward,-if-not-fully-paradoxical,-if-a-politics-based-on-vulnerability-ended-up-fortifying-hierarchies-that-most-urgently-need-to-be-dismantled.">
 <p>
She actually understands this!
How on Earth is she expecting to both dismantle a hierarchy (noble in several respects a goal)  <span class="underline">and</span> keep insisting on the inevitability of interdependence.
</p>

 <p>
If modern feminists (especially Russian) were to try reading what she's writing, they'd anathemise her.
</p>
</div>
</div>

 <div id="outline-container-But-if-we-can-imagine-this-(interpersonal)-dependency-within-personal-life-and-intimate-forms-of-dependency,-can-we-not-also-understand-that-we-are-dependent-on-institutions-and-economies-without-which-we-cannot-persist-as-the-creatures-that-we-are?" class="outline-3">
 <h3 id="But-if-we-can-imagine-this-(interpersonal)-dependency-within-personal-life-and-intimate-forms-of-dependency,-can-we-not-also-understand-that-we-are-dependent-on-institutions-and-economies-without-which-we-cannot-persist-as-the-creatures-that-we-are?"> <span class="section-number-3">2.13.</span>  <a href="#But-if-we-can-imagine-this-(interpersonal)-dependency-within-personal-life-and-intimate-forms-of-dependency,-can-we-not-also-understand-that-we-are-dependent-on-institutions-and-economies-without-which-we-cannot-persist-as-the-creatures-that-we-are?">But if we can imagine this (interpersonal) dependency within personal life and intimate forms of dependency, can we not also understand that we are dependent on institutions and economies without which we cannot persist as the creatures that we are?</a></h3>
 <div class="outline-text-3" id="text-But-if-we-can-imagine-this-(interpersonal)-dependency-within-personal-life-and-intimate-forms-of-dependency,-can-we-not-also-understand-that-we-are-dependent-on-institutions-and-economies-without-which-we-cannot-persist-as-the-creatures-that-we-are?">
 <p>
Because people cannot be resurrected, whereas social constructs can, to a huge degree!
People are  <span class="underline">not</span> generally substituteable, but social constructs are!
Yes, you can re-marry, but you cannot choose a different mother. 
</p>
</div>
</div>

 <div id="outline-container-Freud-identifies-this-as-the-repetitive-character-of-destruction.-In-the-patient,-it-eventuates-in-social-isolation;-more-broadly-considered,-it-not-only-serves-to-weaken-the-social-bonds-that-hold-societies-together,-but-also-takes-form-as-a-self-destruction-that-can-culminate-in-suicide." class="outline-3">
 <h3 id="Freud-identifies-this-as-the-repetitive-character-of-destruction.-In-the-patient,-it-eventuates-in-social-isolation;-more-broadly-considered,-it-not-only-serves-to-weaken-the-social-bonds-that-hold-societies-together,-but-also-takes-form-as-a-self-destruction-that-can-culminate-in-suicide."> <span class="section-number-3">2.14.</span>  <a href="#Freud-identifies-this-as-the-repetitive-character-of-destruction.-In-the-patient,-it-eventuates-in-social-isolation;-more-broadly-considered,-it-not-only-serves-to-weaken-the-social-bonds-that-hold-societies-together,-but-also-takes-form-as-a-self-destruction-that-can-culminate-in-suicide.">Freud identifies this as the repetitive character of destruction. In the patient, it eventuates in social isolation; more broadly considered, it not only serves to weaken the social bonds that hold societies together, but also takes form as a self-destruction that can culminate in suicide.</a></h3>
 <div class="outline-text-3" id="text-Freud-identifies-this-as-the-repetitive-character-of-destruction.-In-the-patient,-it-eventuates-in-social-isolation;-more-broadly-considered,-it-not-only-serves-to-weaken-the-social-bonds-that-hold-societies-together,-but-also-takes-form-as-a-self-destruction-that-can-culminate-in-suicide.">
 <p>
That's a very smart remark.
You know, social bonding is not by definition a good or a bad thing.
Sometimes there is just too much of it.
</p>
</div>
</div>
</section> <section id="outline-container-Conclusion" class="outline-2"> <h2 id="Conclusion"> <span class="section-number-2">3.</span>  <a href="#Conclusion">Conclusion</a></h2>
 <div class="outline-text-2" id="text-Conclusion">
</div>


 <div id="outline-container-The-book." class="outline-3">
 <h3 id="The-book."> <span class="section-number-3">3.1.</span>  <a href="#The-book.">The book.</a></h3>
 <div class="outline-text-3" id="text-The-book.">
 <p>
This book is very messy.
It uses a very obscure language, and it is missing supporting links for several critical statements.
(It does provide references to many other statements.)
Even the amount of words I had to write down into the "learn later" list was way smaller than similar texts give me, as the confusion was mainly coming from the misuse of easier words, rather than from using many complicated ones.
</p>

 <p>
As the book is badly written, and extracting the meaning from the text is very hard, this review would have to be in the form of "what thoughts the book made think", rather than "what is the book about".
</p>

 <p>
So, the whole book is based on the concept of "imaginary".
This book is more about a Utopian fantasy than about anything existing.
Butler herself is supporting her right to do so with a weakest supporting argument of all times "would you like to live in a world in which no-one thinks about such a development perspective".
Indeed, this can be rephrased as "you what, care too much about what I write?".
It is basically an appellation to Freedom of Speech, that is a last resort.
</p>

 <p>
I do grant her that right, but then I would rather have to be using this text not as something describing anything working, but rather as an exercise in reading and extracting whatever meaningful thoughts there may be in a deliberately obscured text.
An exercise in philosophising rather than an exercise in philosophy. 
</p>
</div>
</div>

 <div id="outline-container-Useful-thoughts." class="outline-3">
 <h3 id="Useful-thoughts."> <span class="section-number-3">3.2.</span>  <a href="#Useful-thoughts.">Useful thoughts.</a></h3>
 <div class="outline-text-3" id="text-Useful-thoughts.">
 <p>
The author seems to be determined that the human world in general can be described using essentially two main tools: politics and psychology.
Not digging very deeply, she seems to be using Freud and his theory as a source of psychological theory, and Hobbes as the source of political theory.
While both are very respectable founders of the fields, it staggered me she seems to be regarding them so highly even being aware (?) of the modern state of research.
The idea here, perhaps, is that politics describes human behaviour "en masse", whereas psychology describes interpersonal (she uses the word "dyadic", which is already strange enough) interactions.
But, it's obvious, but someone has to say that: human societies are so much more complex than just one-to-one and one-to-many interactions!
</p>

 <p>
Butler seems to love Freud.
It is a little surprising, given that Freud is not, probably, the most advanced source of psychological knowledge nowadays.
Indeed, he was extremely instrumental in founding the field, but that was so long ago, and much more substantive research has been done since.
</p>

 <p>
She also seems to be focused mostly on Hobbes when looking at political theory.
She acknowledges the existence of Locke and Rousseau, but very superficially, and mostly with respect to the "state of nature".
(Rousseau is mentioned twice less than Hobbes, and Locke's theory is even completely ignored. Furthermore, why do we even need the "state of nature" in this discussion?)
And again, why are we focusing on the founders so much more than on the ones who attempted to improve the theory?
</p>

 <p>
She tries to "imagine" the world that is non-violent (which is a very confusing an convoluted term that she spends a lot of time describing).
This world, she argues, has to be based on the "ethics of interdependence".
The value of life, she argues, is based on the "grievability" by other people, then.
</p>

 <p>
The argument she's trying to build, jumps from the imaginary "freedom as independence" into the "freedom of total inter-dependence".
It jumps as if there is no middle ground.
</p>

 <p>
She does not completely ignore the existence of groups, but entirely ignores the very concept of group dependence.
Indeed, people cannot be fully independent, but total dependence is also not how things work.
Freedom (the word she doesn't use a lot) means that people  <span class="underline">choose</span> whom upon to depend.
</p>

 <p>
The groups that appear in her text are mostly the groups of similarity, and most often the groups of blood relatives.
She also speaks about the groups of grievability and groups of power, but almost entirely ignores the groups of friendship and cooperation.
Whereas those constitute those groups that are actually worth living for.
</p>
</div>
</div>

 <div id="outline-container-Living" class="outline-3">
 <h3 id="Living"> <span class="section-number-3">3.3.</span>  <a href="#Living">Living</a></h3>
 <div class="outline-text-3" id="text-Living">
 <p>
The concept of "living" plays a large role in her argument, and she writes a lot of words to try and describe what it is to be alive, and how we regret the loss of life.
She even proposes to value lives according to how much we would regret the loss of those lives…
</p>

 <p>
But why would we even do that?
That's very human and emotional to grieve  <span class="underline">after</span> the loss.
But that very notion has been long proven to be one of the least useful in the world.
As an English proverb says "There's no sense crying over spilt milk."
</p>

 <p>
The value of the life that is already lost is then known precisely, and equal to zero.
</p>
</div>
</div>

 <div id="outline-container-Imagination" class="outline-3">
 <h3 id="Imagination"> <span class="section-number-3">3.4.</span>  <a href="#Imagination">Imagination</a></h3>
 <div class="outline-text-3" id="text-Imagination">
 <p>
The concept of imagination is used a lot in her treatise.
This is indeed a place where this book has proven to be useful.
Indeed the result of her imagination I consider to be worthless, but the way she self-reflects on imagining the world, and also tries to model the way other people imagine the world, made me think a lot.
</p>

 <p>
I have never really thought about the "imagination machinery" in the human brain.
And I really like the concept of phantasy, distinct from fantasy by the presence of subconscious component.
I really liked to think about different kinds of imagination as in: imagining scenes, imagining words, both written and spoken, imagining 2d objects, imagining feelings, and much more.
</p>

 <p>
I think that the "imagination software" in the brain is really worth exploring.
</p>
</div>
</div>

 <div id="outline-container-Saving-and-killing." class="outline-3">
 <h3 id="Saving-and-killing."> <span class="section-number-3">3.5.</span>  <a href="#Saving-and-killing.">Saving and killing.</a></h3>
 <div class="outline-text-3" id="text-Saving-and-killing.">
 <p>
The part of the treatise that is dedicated to saving and killing largely rotates about the desire to destroy and the desire to save as given by Freud.
I cannot say that I can distil any meaningful conclusion from her words.
Moreover, all the discussion seems very contrived and produced only in the name of deriving certain political slogans of the day.
That is, it looks (to me) as largely just fitting the argument to the answer that the author already believes to be true.
The very structure that is dedicated to preserving life, she considers to be a manifestation of a "dominance hierarchy" that is worth bringing down.
Indeed, often such structures become corrupt, but she produced no decent substituting concept, besides doing some mental gymnastics modelled after Kant and Freud.
</p>

 <p>
She does give a great account on the police in the USA killing people, especially black people.
The language of those parts of the book is much more lucid and provides a much more vivid image.
This makes me think that as a political professional (e.g. a political campaign mastermind) she could have had a role that would fit her much better than the one of a professional philosopher.
</p>
</div>
</div>

 <div id="outline-container-Some-thoughts-on-basic-instincts." class="outline-3">
 <h3 id="Some-thoughts-on-basic-instincts."> <span class="section-number-3">3.6.</span>  <a href="#Some-thoughts-on-basic-instincts.">Some thoughts on basic instincts.</a></h3>
 <div class="outline-text-3" id="text-Some-thoughts-on-basic-instincts.">
 <p>
This section will just list a few thoughts that I don't think actually fit into any reasonable piece of argument, but are worth scavenging from the book.
</p>

 <ul class="org-ul"> <li>Empathy is done through reflection. We never really empathise with anyone, but only with ourselves imagined in the position of the one being empathised with.</li>
 <li>Treating others well, we compensate for ourselves not being loved enough. (Really?)</li>
 <li>"Make die" and "let die" both cause someone's death, but the second one "let die" is generally much less morally discouraged.</li>
 <li>"Motivations" are actually neither conscious nor unconscious, but in between.</li>
</ul></div>
</div>

 <div id="outline-container-Some-thoughts-on-the-writers-she-cites." class="outline-3">
 <h3 id="Some-thoughts-on-the-writers-she-cites."> <span class="section-number-3">3.7.</span>  <a href="#Some-thoughts-on-the-writers-she-cites.">Some thoughts on the writers she cites.</a></h3>
 <div class="outline-text-3" id="text-Some-thoughts-on-the-writers-she-cites.">
 <p>
Obviously, as mentioned previously, she mentions Freud and Hobbes.
As one of the Freud's successors, she speaks about Anna Klein.
She cites almost all famous Marxists of the 21st century, starting from Althusser.
Laplanche and Derrida, obviously, creep into the narrative too, how could they have not.
Foucault and Fanon even get their own chapter.
</p>

 <p>
Melanie Klein seems to be the only psychologist that she seriously considers, besides Freud.
Perhaps, worth looking into.
</p>
</div>
</div>

 <div id="outline-container-The-actual-force-of-the-non-violent-action." class="outline-3">
 <h3 id="The-actual-force-of-the-non-violent-action."> <span class="section-number-3">3.8.</span>  <a href="#The-actual-force-of-the-non-violent-action.">The actual force of the non-violent action.</a></h3>
 <div class="outline-text-3" id="text-The-actual-force-of-the-non-violent-action.">
 <p>
The most disappointing part of the book is that the actual analysis of the non-violent action is given as little attention as possibly can be given so long that the books still bears some relevance to the non-violent protest.
Apart from "using human bodies as a wall" and "coming to the shores of Europe in boats full of people", not much is spoken about ethicality (or the absence thereof) of different kinds of peaceful protest.
Strategy, tactics, effectiveness – all of that is mostly ignored, apart from insisting that the structural violence itself would always try to present peaceful action as violent.
As if we wouldn't know that.
A lot is said about self-defence, but very little about extralegal defence of the others. 
In particular, the subject of defending humans against dangerous forces of nature is completely ignored.
</p>
</div>
</div>

 <div id="outline-container-Conclusion-1" class="outline-3">
 <h3 id="Conclusion-1"> <span class="section-number-3">3.9.</span>  <a href="#Conclusion-1">Conclusion</a></h3>
 <div class="outline-text-3" id="text-Conclusion-1">
 <p>
When you are approaching someone, who has been well-known as an adversary of the forces you generally sympathise with, there may be several expectations.
You may expect the text to be an outrageous demagoguery, aimed at appealing to emotions and ignoring any traces of rational.
This at least gives you the feeling of guilty pleasure by imagining a picture of a wild combat of ideas.
You may expect a cleverly twisted argument, that is crafted so well that you find it very hard to penetrate the logic and to find flaws.
Then it is upon you to sharpen your mind in order to have a proper duel with your opponent.
You can expect to be mistaken, and be exposed to the ideas that have not yet had a place in your mind, and that would be the best possible option.
Getting enlightened, after all, is one of the best feelings in the world.
</p>

 <p>
What you probably do not expect, although you should, is the book to be just lacking any sort of cohesive picture in it.
Is it of the aspects of the "banality of evil" that Hannah Arendt was writing about?
"The Force of Non-Violence" is from the last category.
Of course, I am not equating Butler with any of the horrible evil-doers of the world.
</p>

 <p>
But the book still leaves me with that creeping in feeling: 
"How can it be that someone who manages to take simple things and express them in a totally incomprehensible way happens to be one of the most prominent philosophers of our time?"
</p>

 <p>
It leaves you with a feeling that you have missed something.
Is that "something" ultimately incomprehensible to just that kind of people that you belong to?
</p>

 <p>
But no, over and over I keep seeing in this book only an exercise in philosophising and nothing else.
Chunks of not very consistent reasoning interspersed with literature reviews of various philosophers and journalists.
Attempts to make a well-structured text that keep failing over and over.
</p>

 <p>
On the other hand, at least it has made me produce the longest so far book review I have made.
At least that I should be grateful for.
</p>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-08-17_The-Force-of-Non-Violence-by-Judith-Butler_notes/2020-08-17_the-force-of-non-violence_judith-butler_notes-words.html"/>
  <id>https://lockywolf.net/2020-08-17_The-Force-of-Non-Violence-by-Judith-Butler_notes/2020-08-17_the-force-of-non-violence_judith-butler_notes-words.html</id>
  <updated>2023-06-20T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Musings on how to have sex without having sex.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Musings on how to have sex without having sex.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract.">1. Abstract.</a></li>
 <li> <a href="#Introduction.">2. Introduction.</a></li>
 <li> <a href="#The-definition.">3. The definition.</a></li>
 <li> <a href="#The-list.">4. The list.</a>
 <ul> <li> <a href="#playing-fortnite-style-network-computer-games.-complimentativeness:-70%;-Cooperativeness:-60%.">4.1. Playing Fortnite-style network computer games. Complimentativeness: 70%; Cooperativeness: 60%.</a></li>
 <li> <a href="#Playing-Portal-style,-or-Ibb&Obb-style-games.-Complimentativeness:-60%;-Cooperativeness:-70%.">4.2. Playing Portal-style, or Ibb&Obb-style games. Complimentativeness: 60%; Cooperativeness: 70%.</a></li>
 <li> <a href="#waltz-and-other-dancing.-complimentativeness:-90%;-Cooperativeness:-90%.">4.3. Waltz and other dancing. Complimentativeness: 90%; Cooperativeness: 90%.</a></li>
 <li> <a href="#going-somewhere-with-split-responsibilities.-complimentativeness:-70%;-Cooperativeness:-70%.">4.4. Going somewhere with split responsibilities. Complimentativeness: 70%; Cooperativeness: 70%.</a></li>
 <li> <a href="#joint-scientific-work.-complimentativeness:-varies,-Cooperativeness:-varies.">4.5. Joint scientific work. Complimentativeness: varies, Cooperativeness: varies.</a></li>
 <li> <a href="#Playing/Singing-in-a-band.-Complimentativeness:-90%,-Cooperativeness:-90%.">4.6. Playing/Singing in a band. Complimentativeness: 90%, Cooperativeness: 90%.</a></li>
 <li> <a href="#Playing-tennis,-ping-pong,-chess.-Complimentativeness:-30%;-Cooperativeness:-70%.">4.7. Playing tennis, ping pong, chess. Complimentativeness: 30%; Cooperativeness: 70%.</a></li>
 <li> <a href="#rock-climbing.-complimentativeness:-40%;-Cooperativeness:-90%.">4.8. Rock climbing. Complimentativeness: 40%; Cooperativeness: 90%.</a></li>
 <li> <a href="#Sport-that-requires-assistance,-like-stretching.-Complimentativeness:-30%;-Cooperativeness:-90%.">4.9. Sport that requires assistance, like stretching. Complimentativeness: 30%; Cooperativeness: 90%.</a></li>
 <li> <a href="#writing-and-editing.-complimentativeness:-50%;-Cooperativeness:-90%.">4.10. Writing and editing. Complimentativeness: 50%; Cooperativeness: 90%.</a></li>
 <li> <a href="#paired-programming.-complimentativeness:-30%;-Cooperativeness:-50%.">4.11. Paired programming. Complimentativeness: 30%; Cooperativeness: 50%.</a></li>
 <li> <a href="#developing-the-same-software-project.-complimentativeness:-70%;-Cooperativeness:-70%.">4.12. Developing the same software project. Complimentativeness: 70%; Cooperativeness: 70%.</a></li>
 <li> <a href="#tandem-bicycle.-complimentativeness:-70%;-Cooperativeness:-70%.">4.13. Tandem-bicycle. Complimentativeness: 70%; Cooperativeness: 70%.</a></li>
 <li> <a href="#reading-a-play-role-by-role.-complimentativeness:-30%;-Cooperativeness:-70%.">4.14. Reading a play role-by-role. Complimentativeness: 30%; Cooperativeness: 70%.</a></li>
 <li> <a href="#Others.">4.15. Others.</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Abstract." class="outline-2"> <h2 id="Abstract."> <span class="section-number-2">1.</span>  <a href="#Abstract.">Abstract.</a></h2>
 <div class="outline-text-2" id="text-Abstract.">
 <p>
People have sex in various ways.
The most obvious way is to do it the way we all know.
However, at times this is not the best option.
</p>

 <p>
This memo is about things we can do instead.
</p>
</div>
</section> <section id="outline-container-Introduction." class="outline-2"> <h2 id="Introduction."> <span class="section-number-2">2.</span>  <a href="#Introduction.">Introduction.</a></h2>
 <div class="outline-text-2" id="text-Introduction.">
 <p>
Men and women sometimes have sex, and  <code>sometimes cannot have sex</code>.
The reasons may be different, from having a lack of security to being unable medically.
</p>

 <p>
The  <code>need</code> for having sex still  <code>remains</code> even if the most obvious solution is not the most viable option.
 <code>Unless satisfied</code>, the need for sex  <code>negatively</code> impacts work performance, social interactions, mental health, among other things.
This memo explores various  <code>surrogates</code>.
</p>
</div>
</section> <section id="outline-container-The-definition." class="outline-2"> <h2 id="The-definition."> <span class="section-number-2">3.</span>  <a href="#The-definition.">The definition.</a></h2>
 <div class="outline-text-2" id="text-The-definition.">
 <p>
 <b>What is having sex?</b>
Answering this question substantially would require a lot of research in psychology, sociology, and physiology, which I am  <code>unable</code> to conduct.
 <code>I think</code> that sex is (a) form of communication, (b) requires two entities of opposite sexes.
The working definition adopted in this document will be:  <code>"complementary cooperation"</code>.
</p>

 <p>
 <b>Types of cooperation.</b>
I divide cooperation into  <span class="underline">complementary</span> and  <span class="underline">substitutive</span>. 
</p>
 <ul class="org-ul"> <li> <code>Substitutive cooperation</code> is a type of cooperation you find in a case when a job needs to be done by several agents, maybe playing different roles, but these roles are  <code>generic</code> enough so that cooperating agents can switch roles.</li>
 <li> <code>Complementary cooperation</code> requires that the roles be so  <code>different</code> that they cannot be easily switched.</li>
</ul> <p>
One actor can  <code>compliment</code> the actions undertaken by another actor.
This classification is not binary, but rather a  <code>continuous</code> spectrum.
</p>

 <p>
 <b>Examples:</b>
</p>
 <ul class="org-ul"> <li> <code>Example 1</code>: a game of tennis.</li>
</ul> <p>
Both players are doing exactly the same job, and are completely replaceable.
This is a very substitutive cooperation.
</p>
 <ul class="org-ul"> <li> <code>Example 2</code>: driving a car with a paper-based map.</li>
</ul> <p>
In this example, one person is driving the car, another person is finding the route on the map.
If both people can drive and both people understand the language the map is written in, this is a substitutive cooperation.
If someone can drive, and the other one can read the map, this cooperation becomes much more complementary.
</p>
 <ul class="org-ul"> <li> <code>Example 3</code>: a father is registering a child for school classes.</li>
</ul> <p>
This is not a cooperation at all.
Even though classes cannot happen without the signature and the student, this paired activity is not cooperative.
</p>
 <ul class="org-ul"> <li> <code>Example 4</code>: a massage.</li>
</ul> <p>
An example of a semi-substitutive cooperation.
One can play the role of the other, but not vice versa.
</p>

 <p>
 <b>Sex surrogates.</b>
So, for sex surrogates we want to find cooperative activities that are as complementary as possible, but are still not classified as explicitly sexual.
This document attempts to create of several such activities.
Not all of them are equally good, but pull requests welcome.
Some of these surrogates will be just dating ideas.
</p>

 <p>
 <b>Clarity</b>
Some of this activities can be forced to be substitutive, and remain complementary only as long as both partners are happy keeping them this way.
This is a drawback, but a minor one.
</p>
</div>
</section> <section id="outline-container-The-list." class="outline-2"> <h2 id="The-list."> <span class="section-number-2">4.</span>  <a href="#The-list.">The list.</a></h2>
 <div class="outline-text-2" id="text-The-list.">
</div>

 <div id="outline-container-playing-fortnite-style-network-computer-games.-complimentativeness:-70%;-Cooperativeness:-60%." class="outline-3">
 <h3 id="playing-fortnite-style-network-computer-games.-complimentativeness:-70%;-Cooperativeness:-60%."> <span class="section-number-3">4.1.</span>  <a href="#playing-fortnite-style-network-computer-games.-complimentativeness:-70%;-Cooperativeness:-60%.">Playing Fortnite-style network computer games. Complimentativeness: 70%; Cooperativeness: 60%.</a></h3>
 <div class="outline-text-3" id="text-playing-fortnite-style-network-computer-games.-complimentativeness:-70%;-Cooperativeness:-60%.">
 <p>
For example, one player can specialise in driving cars, and the other one in shooting or whatever.
2vsW paradigm lets people feel the sense of shared interest.
The drawback is that sometimes the contribution is hugely unequal (i.e. when one can play well, and the other one can’t).
</p>
</div>
</div>

 <div id="outline-container-Playing-Portal-style,-or-Ibb&Obb-style-games.-Complimentativeness:-60%;-Cooperativeness:-70%." class="outline-3">
 <h3 id="Playing-Portal-style,-or-Ibb&Obb-style-games.-Complimentativeness:-60%;-Cooperativeness:-70%."> <span class="section-number-3">4.2.</span>  <a href="#Playing-Portal-style,-or-Ibb&Obb-style-games.-Complimentativeness:-60%;-Cooperativeness:-70%.">Playing Portal-style, or Ibb&Obb-style games. Complimentativeness: 60%; Cooperativeness: 70%.</a></h3>
 <div class="outline-text-3" id="text-Playing-Portal-style,-or-Ibb&Obb-style-games.-Complimentativeness:-60%;-Cooperativeness:-70%.">
 <p>
These are 2vsM games.
The contribution is always equal, but the specialisation is often not that big.
No living human enemies.
</p>
</div>
</div>

 <div id="outline-container-waltz-and-other-dancing.-complimentativeness:-90%;-Cooperativeness:-90%." class="outline-3">
 <h3 id="waltz-and-other-dancing.-complimentativeness:-90%;-Cooperativeness:-90%."> <span class="section-number-3">4.3.</span>  <a href="#waltz-and-other-dancing.-complimentativeness:-90%;-Cooperativeness:-90%.">Waltz and other dancing. Complimentativeness: 90%; Cooperativeness: 90%.</a></h3>
 <div class="outline-text-3" id="text-waltz-and-other-dancing.-complimentativeness:-90%;-Cooperativeness:-90%.">
 <p>
One of the best surrogates.
Sex roles are almost never switched.
There is a shared goal.
</p>
</div>
</div>

 <div id="outline-container-going-somewhere-with-split-responsibilities.-complimentativeness:-70%;-Cooperativeness:-70%." class="outline-3">
 <h3 id="going-somewhere-with-split-responsibilities.-complimentativeness:-70%;-Cooperativeness:-70%."> <span class="section-number-3">4.4.</span>  <a href="#going-somewhere-with-split-responsibilities.-complimentativeness:-70%;-Cooperativeness:-70%.">Going somewhere with split responsibilities. Complimentativeness: 70%; Cooperativeness: 70%.</a></h3>
 <div class="outline-text-3" id="text-going-somewhere-with-split-responsibilities.-complimentativeness:-70%;-Cooperativeness:-70%.">
 <p>
This is the aforementioned case of “one drives, the other one navigates”.
Not so cool in the age of GPS.
</p>
</div>
</div>

 <div id="outline-container-joint-scientific-work.-complimentativeness:-varies,-Cooperativeness:-varies." class="outline-3">
 <h3 id="joint-scientific-work.-complimentativeness:-varies,-Cooperativeness:-varies."> <span class="section-number-3">4.5.</span>  <a href="#joint-scientific-work.-complimentativeness:-varies,-Cooperativeness:-varies.">Joint scientific work. Complimentativeness: varies, Cooperativeness: varies.</a></h3>
 <div class="outline-text-3" id="text-joint-scientific-work.-complimentativeness:-varies,-Cooperativeness:-varies.">
 <p>
We write a research work together.
You propose a theory, I measure the data.
You clean the data, I write the data analysis code.
</p>
</div>
</div>

 <div id="outline-container-Playing/Singing-in-a-band.-Complimentativeness:-90%,-Cooperativeness:-90%." class="outline-3">
 <h3 id="Playing/Singing-in-a-band.-Complimentativeness:-90%,-Cooperativeness:-90%."> <span class="section-number-3">4.6.</span>  <a href="#Playing/Singing-in-a-band.-Complimentativeness:-90%,-Cooperativeness:-90%.">Playing/Singing in a band. Complimentativeness: 90%, Cooperativeness: 90%.</a></h3>
 <div class="outline-text-3" id="text-Playing/Singing-in-a-band.-Complimentativeness:-90%,-Cooperativeness:-90%.">
 <p>
An excellent choice.
If you can play anything.
</p>
</div>
</div>

 <div id="outline-container-Playing-tennis,-ping-pong,-chess.-Complimentativeness:-30%;-Cooperativeness:-70%." class="outline-3">
 <h3 id="Playing-tennis,-ping-pong,-chess.-Complimentativeness:-30%;-Cooperativeness:-70%."> <span class="section-number-3">4.7.</span>  <a href="#Playing-tennis,-ping-pong,-chess.-Complimentativeness:-30%;-Cooperativeness:-70%.">Playing tennis, ping pong, chess. Complimentativeness: 30%; Cooperativeness: 70%.</a></h3>
 <div class="outline-text-3" id="text-Playing-tennis,-ping-pong,-chess.-Complimentativeness:-30%;-Cooperativeness:-70%.">
 <p>
Mentioned above.
Not a very good option actually.
</p>
</div>
</div>

 <div id="outline-container-rock-climbing.-complimentativeness:-40%;-Cooperativeness:-90%." class="outline-3">
 <h3 id="rock-climbing.-complimentativeness:-40%;-Cooperativeness:-90%."> <span class="section-number-3">4.8.</span>  <a href="#rock-climbing.-complimentativeness:-40%;-Cooperativeness:-90%.">Rock climbing. Complimentativeness: 40%; Cooperativeness: 90%.</a></h3>
 <div class="outline-text-3" id="text-rock-climbing.-complimentativeness:-40%;-Cooperativeness:-90%.">
 <p>
If you can lift anyone.
</p>
</div>
</div>

 <div id="outline-container-Sport-that-requires-assistance,-like-stretching.-Complimentativeness:-30%;-Cooperativeness:-90%." class="outline-3">
 <h3 id="Sport-that-requires-assistance,-like-stretching.-Complimentativeness:-30%;-Cooperativeness:-90%."> <span class="section-number-3">4.9.</span>  <a href="#Sport-that-requires-assistance,-like-stretching.-Complimentativeness:-30%;-Cooperativeness:-90%.">Sport that requires assistance, like stretching. Complimentativeness: 30%; Cooperativeness: 90%.</a></h3>
 <div class="outline-text-3" id="text-Sport-that-requires-assistance,-like-stretching.-Complimentativeness:-30%;-Cooperativeness:-90%.">
 <p>
These are that kinds of sports that can be done alone, but are just much better together.
Stretching is one of the example, when your own muscles are just not convenient enough.
</p>
</div>
</div>

 <div id="outline-container-writing-and-editing.-complimentativeness:-50%;-Cooperativeness:-90%." class="outline-3">
 <h3 id="writing-and-editing.-complimentativeness:-50%;-Cooperativeness:-90%."> <span class="section-number-3">4.10.</span>  <a href="#writing-and-editing.-complimentativeness:-50%;-Cooperativeness:-90%.">Writing and editing. Complimentativeness: 50%; Cooperativeness: 90%.</a></h3>
 <div class="outline-text-3" id="text-writing-and-editing.-complimentativeness:-50%;-Cooperativeness:-90%.">
 <p>
Don’t let uncooperative people edit your text, hence high cooperativeness.
Complimentativeness is arguable.
</p>

 <p>
The drawback is that this is a very hard thing, so feels more like a job than a leisure.
Still, can help you placate the sexual instinct if no other options present.
</p>
</div>
</div>

 <div id="outline-container-paired-programming.-complimentativeness:-30%;-Cooperativeness:-50%." class="outline-3">
 <h3 id="paired-programming.-complimentativeness:-30%;-Cooperativeness:-50%."> <span class="section-number-3">4.11.</span>  <a href="#paired-programming.-complimentativeness:-30%;-Cooperativeness:-50%.">Paired programming. Complimentativeness: 30%; Cooperativeness: 50%.</a></h3>
 <div class="outline-text-3" id="text-paired-programming.-complimentativeness:-30%;-Cooperativeness:-50%.">
 <p>
Despite the low scores, one of the best feelings in the world.
If you both know programming though.
One person is writing the code, the other one is commenting and suggesting improvements, and spotting mistakes.
</p>
</div>
</div>

 <div id="outline-container-developing-the-same-software-project.-complimentativeness:-70%;-Cooperativeness:-70%." class="outline-3">
 <h3 id="developing-the-same-software-project.-complimentativeness:-70%;-Cooperativeness:-70%."> <span class="section-number-3">4.12.</span>  <a href="#developing-the-same-software-project.-complimentativeness:-70%;-Cooperativeness:-70%.">Developing the same software project. Complimentativeness: 70%; Cooperativeness: 70%.</a></h3>
 <div class="outline-text-3" id="text-developing-the-same-software-project.-complimentativeness:-70%;-Cooperativeness:-70%.">
 <p>
Works especially well if you have spaghetti code.
Unfortunately, can be hugely imbalanced.
Also becomes less sexy the better programmers you become.
</p>
</div>
</div>

 <div id="outline-container-tandem-bicycle.-complimentativeness:-70%;-Cooperativeness:-70%." class="outline-3">
 <h3 id="tandem-bicycle.-complimentativeness:-70%;-Cooperativeness:-70%."> <span class="section-number-3">4.13.</span>  <a href="#tandem-bicycle.-complimentativeness:-70%;-Cooperativeness:-70%.">Tandem-bicycle. Complimentativeness: 70%; Cooperativeness: 70%.</a></h3>
 <div class="outline-text-3" id="text-tandem-bicycle.-complimentativeness:-70%;-Cooperativeness:-70%.">
 <p>
A better version of the “driving together”.
The stronger partner is probably better at the back seat.
</p>
</div>
</div>

 <div id="outline-container-reading-a-play-role-by-role.-complimentativeness:-30%;-Cooperativeness:-70%." class="outline-3">
 <h3 id="reading-a-play-role-by-role.-complimentativeness:-30%;-Cooperativeness:-70%."> <span class="section-number-3">4.14.</span>  <a href="#reading-a-play-role-by-role.-complimentativeness:-30%;-Cooperativeness:-70%.">Reading a play role-by-role. Complimentativeness: 30%; Cooperativeness: 70%.</a></h3>
 <div class="outline-text-3" id="text-reading-a-play-role-by-role.-complimentativeness:-30%;-Cooperativeness:-70%.">
 <p>
Not an activity you can easily invite someone to do, but if you share a common fondness of some author, it may work.
</p>
</div>
</div>

 <div id="outline-container-Others." class="outline-3">
 <h3 id="Others."> <span class="section-number-3">4.15.</span>  <a href="#Others.">Others.</a></h3>
 <div class="outline-text-3" id="text-Others.">
 <p>
This entry is for the activities that are either not that good, or are too explicitly sexual, but it’s still worth mentioning them.
</p>

 <ul class="org-ul"> <li>Massage. Low cooperation.</li>
 <li>Shibari, Kinbaku, Artsy bondage and the like. Too sexual.</li>
 <li>Drinking coffee together.</li>
 <li>Going to a museum, cinema, lecture, party together.</li>
 <li>Language exchange. Meh, didn’t work for me.</li>
 <li>Shooting and bringing the ammo. (A Russian joke.)</li>
 <li>Cooking together. (A Chinese thing.)</li>
 <li>Sewing together. (And other crafting.)</li>
 <li>Playing board games (created for 2 people max - chess, checkers, Jackal, Uno).</li>
</ul></div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-08-06_How-to-have-sex-without-having-sex.html"/>
  <id>https://lockywolf.net/2020-08-06_How-to-have-sex-without-having-sex.html</id>
  <updated>2022-08-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Notes file for reading Chin-Ning Choo&apos;s (Zhu JinJing) book &quot;Art of War for Strong Women: Winning Without Confrontation&quot;</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Notes file for reading Chin-Ning Choo's (Zhu JinJing) book "Art of War for Strong Women: Winning Without Confrontation"</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Words">1. Words</a></li>
 <li> <a href="#Background">2. Background</a>
 <ul> <li> <a href="#Born-in-Mainland,-ran-away-to-Taiwan,-emigrated-to-the-US.">2.1. Born in Mainland, ran away to Taiwan, emigrated to the US.</a></li>
 <li> <a href="#Speaks-emotionally.">2.2. Speaks emotionally.</a></li>
 <li> <a href="#Was-not-very-supportive-of-the-%22students%22-in-1989.">2.3. Was not very supportive of the "students" in 1989.</a></li>
 <li> <a href="#Over-praised-Wikipedia-page.">2.4. Over-praised Wikipedia page.</a></li>
</ul></li>
 <li> <a href="#Notes">3. Notes</a>
 <ul> <li> <a href="#%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0----%D0%B8-%D0%B6%D0%B5%D0%BD%D0%B0,-%D0%B8-%D0%BC%D0%B0%D1%82%D1%8C,-%D0%B8-%D0%BF%D0%BE%D0%B2%D0%B0%D1%80%D0%B8%D1%85%D0%B0,-%D0%B8-%D1%83%D0%B1%D0%BE%D1%80%D1%89%D0%B8%D1%86%D0%B0,-%D0%B8-%D0%BB%D0%B5%D0%BA%D0%B0%D1%80%D1%8C,-%D0%B8-%D0%BF%D1%81%D0%B8%D1%85%D0%BE%D1%82%D0%B5%D1%80%D0%B0%D0%BF%D0%B5%D0%B2%D1%82,-%D0%B8-%D0%B2%D1%80%D0%B0%D1%87,-%D0%B8-%D0%BF%D0%BE%D1%81%D1%83%D0%B4%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0,-%D0%B8-%D1%81%D0%B1%D0%BE%D1%80%D1%89%D0%B8%D0%BA-%D0%BC%D1%83%D1%81%D0%BE%D1%80%D0%B0.-%D0%A2%D0%B8%D0%BF%D0%B0,-%D1%82%D0%B0%D0%BA-%D0%BB%D0%B8-%D1%8D%D1%82%D0%BE?">3.1. Женщина – и жена, и мать, и повариха, и уборщица, и лекарь, и психотерапевт, и врач, и посудомойка, и сборщик мусора. Типа, так ли это?</a></li>
 <li> <a href="#%D0%9B%D0%B8%D1%88%D1%8C-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0-%D0%B2%D0%B5%D0%B4%D0%B0%D0%B5%D1%82,-%D0%BA%D0%B0%D0%BA-%D1%82%D1%80%D1%83%D0%B4%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%BD%D0%B0%D0%B4%D0%BB%D0%B5%D0%B6%D0%B0%D1%82%D1%8C-%D0%BA-%D1%81%D0%BB%D0%B0%D0%B1%D0%BE%D0%BC%D1%83-%D0%BF%D0%BE%D0%BB%D1%83.">3.2. Лишь женщина ведает, как трудно принадлежать к слабому полу.</a></li>
 <li> <a href="#%D0%92-%D0%BA%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%BE%D0%B9-%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%86%D0%B8%D0%B8-%D0%B2%D0%BE%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D0%B8%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B0-%D0%BD%D0%B5%D1%82-%D0%BC%D0%B5%D1%81%D1%82%D0%B0-%D0%B2%D0%BE%D0%B9%D0%BD%D0%B5.">3.3. В китайской концепции военного искусства нет места войне.</a></li>
 <li> <a href="#%D0%A1%D1%83%D0%BD%D1%8C-%D0%A6%D0%B7%D1%8B-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%B8%D0%B7%D0%BD%D0%B5%D1%81-%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%97%D0%B0%D0%BF%D0%B0%D0%B4%D0%B5,-%D0%B8-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D0%BE%D0%B2-%D0%B2-%D0%A1%D0%A1%D0%A1%D0%A0.">3.4. Сунь Цзы активно применяется для бизнес-тренингов на Западе, и для тренировки агентов в СССР.</a></li>
 <li> <a href="#%D0%95%D1%81%D1%82%D1%8C-%D1%86%D0%B5%D0%BD%D0%B0-%D1%83-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B9-%D0%BF%D0%BE%D0%BA%D0%BE%D1%80%D0%BD%D0%BE%D1%81%D1%82%D0%B8.">3.5. Есть цена у внешней покорности.</a></li>
 <li> <a href="#5-components-of-success">3.6. 5 components of success</a></li>
 <li> <a href="#Think-through-a-strategy.">3.7. Think through a strategy.</a></li>
 <li> <a href="#Pretend-to-be-weaker-than-you-are.-(LWF:-energy-consumption?)">3.8. Pretend to be weaker than you are. (LWF: energy consumption?)</a></li>
 <li> <a href="#%D0%A7%D1%82%D0%BE%D0%B1%D1%8B-%D1%81%D0%B0%D0%BC%D0%BE%D0%BC%D1%83-%D0%BD%D0%B5-%D0%BF%D0%B0%D1%81%D1%82%D1%8C-%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B9-%D1%87%D1%8C%D0%B8%D1%85-%D1%82%D0%BE-%D0%BC%D0%BE%D1%88%D0%B5%D0%BD%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85-%D0%B8%D0%BD%D1%82%D1%80%D0%B8%D0%B3,-%D0%B2%D0%B0%D0%BC-%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82-%D0%B2-%D0%BF%D0%B5%D1%80%D0%B2%D1%83%D1%8E-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C-%D0%B2-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%BE%D0%B1%D0%BE%D1%80%D0%BE%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9-%D0%BC%D0%B5%D1%80%D1%8B-%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%B2%D0%B0%D1%80%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BC%D1%8B%D1%81%D0%BB%D1%8B.">3.9. Чтобы самому не пасть жертвой чьих-то мошеннических интриг, вам следует в первую очередь в качестве оборонительной меры научиться распознавать коварные замыслы.</a></li>
 <li> <a href="#%D0%98%D0%B7%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%B8%D0%B5%D0%BC%D0%BE%D0%B2-%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D0%B5-%D0%BF%D1%80%D0%B5%D0%BA%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B5,-%D0%BD%D0%BE-%D0%BE%D0%B1%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B2%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%D0%BF%D0%BE-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%D1%83-%D1%83%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D1%8E-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%B8%D1%85-%D0%BA%D1%83%D0%B4%D0%B0-%D0%BB%D1%83%D1%87%D1%88%D0%B5.">3.10. Изучение приемов занятие прекрасное, но обладание врожденной способностью по собственному усмотрению создавать их куда лучше.</a></li>
 <li> <a href="#%D0%92-%D0%9A%D0%B8%D1%82%D0%B0%D0%B5-%D0%B2%D1%81%D1%91-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%BE%D1%87%D0%B5%D0%BD%D1%8C-%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE.-%D0%92-%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%BC%D0%B0%D0%BB%D0%BE,-%D0%B8-%D1%8D%D1%82%D0%BE-%D0%BD%D0%B0%D0%B4%D0%BE-%D0%BC%D0%B5%D0%BD%D1%8F%D1%82%D1%8C.">3.11. В Китае всё меняется очень быстро. В России меняется мало, и это надо менять.</a></li>
 <li> <a href="#I-need-to-again-rethink-my-wardrobe-and-hairstyle.-%D0%9D%D0%B0%D0%B4%D0%BE-%D0%B7%D0%B0%D0%BA%D0%BE%D1%81%D0%B8%D1%82%D1%8C-%D0%BF%D0%BE%D0%B4-%D0%A8%D0%B5%D0%BB%D0%B4%D0%BE%D0%BD%D0%B0-%D0%9A%D1%83%D0%BF%D0%B5%D1%80%D0%B0.-%D0%94%D1%91%D1%88%D0%B5%D0%B2%D0%BE-%D0%B8-%D1%81%D0%B5%D1%80%D0%B4%D0%B8%D1%82%D0%BE.">3.12. I need to again rethink my wardrobe and hairstyle. Надо закосить под Шелдона Купера. Дёшево и сердито.</a></li>
 <li> <a href="#%C2%AB%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8F-%D1%81-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8,-%D1%8F-%D0%BD%D0%B8-%D1%80%D0%B0%D0%B7%D1%83-%D0%BD%D0%B5-%D0%BE%D1%89%D1%83%D1%82%D0%B8%D0%BB%D0%B0,-%D1%87%D1%82%D0%BE-%D1%87%D0%B5%D0%BC-%D1%82%D0%BE-%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B0%D1%8E%D1%81%D1%8C-%D0%BE%D1%82-%D0%BD%D0%B8%D1%85%C2%BB.">3.13. «Постоянно работая с мужчинами, я ни разу не ощутила, что чем-то отличаюсь от них».</a></li>
 <li> <a href="#%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BD%D0%B0-%D0%BC%D0%BE%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D1%8E:">3.14. Вопросы на мотивацию:</a></li>
 <li> <a href="#21-%D0%B2%D0%B5%D0%BA----%D0%B2%D0%B5%D0%BA-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD.-%D0%A1%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE,-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D0%B5-%D1%8D%D1%82%D0%BE%D0%B9-%D0%BA%D0%BD%D0%B8%D0%B6%D0%BA%D0%B8-%D1%82%D0%BE%D0%BC%D1%83-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80.-%D0%9F%D0%BE%D0%BC%D0%BD%D0%B8-%D0%BE%D0%B1-%D1%8D%D1%82%D0%BE%D0%BC.">3.15. 21 век – век женщин. Собственно, чтение этой книжки тому пример. Помни об этом.</a></li>
 <li> <a href="#%D0%9D%D0%B0%D0%B4%D0%BE-%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D1%82%D1%8C,-%D0%BA%D0%B0%D0%BA-%D1%81%D0%B5%D0%B1%D1%8F-%D0%BF%D1%80%D0%BE%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C.-%D0%91%D1%80%D1%8D%D0%BD%D0%B4%D0%B8%D0%BD%D0%B3-%D0%B8-%D0%BF%D1%80%D0%BE%D1%84%D0%B0%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3.">3.16. Надо понимать, как себя продавать. Брэндинг и профайлинг.</a></li>
 <li> <a href="#%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C,-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C,-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C-%D1%83%D0%B4%D0%BE%D0%B1%D0%BD%D1%8B%D0%B5-%D0%BC%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%82%D0%BE%D0%B3%D0%BE-%D0%B8-%D0%B4%D0%BB%D1%8F-%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B3%D0%BE.-(%D0%9D%D0%BE-%D0%BD%D0%B5-%D0%B7%D0%B0%D0%B1%D1%8B%D0%B2%D0%B0%D0%B9-%D0%BE-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.)">3.17. Мониторь, мониторь, мониторь удобные моменты для того и для другого. (Но не забывай о качестве данных.)</a></li>
 <li> <a href="#%D0%94%D0%B0%D0%B6%D0%B5-%D0%B5%D1%81%D0%BB%D0%B8-%D0%B2%D1%8B-%D0%BD%D0%B5-%D1%81%D0%BE%D0%B1%D0%B8%D0%B0%D0%B5%D1%82%D0%B5%D1%81%D1%8C-%D0%BF%D1%80%D0%B5%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%B3%D0%BE-%D1%82%D0%BE-%D0%B2-%D1%81%D1%83%D0%B4%D0%B5%D0%B1%D0%BD%D0%BE%D0%BC-%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BA%D0%B5,-%D0%B2%D1%81%D1%91-%D1%80%D0%B0%D0%B2%D0%BD%D0%BE-%D0%B2%D0%B0%D0%BC-%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82-%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%BE%D1%87%D0%B5%D0%BD%D1%8C-%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8.-%D0%9D%D0%B8%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%BD%D0%B5-%D0%B7%D0%BD%D0%B0%D0%B5%D1%88%D1%8C,-%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%BC%D0%BE%D0%B3%D1%83%D1%82-%D0%BF%D1%80%D0%B8%D0%B3%D0%BE%D0%B4%D0%B8%D1%82%D1%8C%D1%81%D1%8F.">3.18. Даже если вы не собиаетесь преследовать кого-то в судебном порядке, всё равно вам следует вести очень подробные записи. Никогда не знаешь, когда могут пригодиться.</a></li>
 <li> <a href="#%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0-%D1%81%D0%B5%D0%B1%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C,-%D0%B1%D1%83%D0%B4%D1%83%D1%87%D0%B8-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD%D0%BE%D0%B9,-%D1%82%D0%B0%D0%BA-%D0%B6%D0%B5-%D0%BA%D0%B0%D0%BA-%D0%B8-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D1%8B-%D0%BC%D0%BE%D0%B3%D1%83%D1%82-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BF%D1%80%D0%B8%D0%B2%D0%BB%D0%B5%D0%BA%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%D0%B4%D0%BB%D1%8F-%D1%82%D0%BE%D0%B3%D0%BE,-%D1%87%D1%82%D0%BE%D0%B1%D1%8B-%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C-%D0%BD%D0%B0-%D1%81%D0%B5%D0%B1%D1%8F.">3.19. Женщин можно заставить на себя работать, будучи мужчиной, так же как и женщины могут пользоваться привлекательностью для того, чтобы заставить мужчин работать на себя.</a></li>
 <li> <a href="#%D0%9E%D1%82%D1%8B%D1%89%D0%B8-%D0%B2-%D1%81%D0%B5%D0%B1%D0%B5-%D1%81%D0%B8%D0%BB%D1%83,-%D1%81%D1%80%D0%BE%D0%B4%D0%BD%D0%B8-%22%D0%BD%D0%B0%D0%B9%D0%B4%D0%B8-%D1%81%D0%B5%D0%B1%D0%B5-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%22,-%D0%B8%D0%BB%D0%B8-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%B5%D1%86-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B6%D0%B0%D0%BD%D0%B8%D1%8F,-%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D0%B2-%D0%BF%D1%80%D0%B8%D1%80%D0%BE%D0%B4%D0%B5.">3.20. Отыщи в себе силу, сродни "найди себе образ", или образец для подражания, только в природе.</a></li>
 <li> <a href="#%D0%BD%D0%B8%D1%87%D1%82%D0%BE-%D0%BD%D0%B5-%D1%82%D1%80%D0%BE%D0%BD%D0%B5%D1%82%D1%81%D1%8F-%D1%81-%D0%BC%D0%B5%D1%81%D1%82%D0%B0-%D0%BF%D0%BE%D0%BA%D0%B0-%D0%BD%D0%B5%D1%82-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F.-%D1%82%D0%BE,-%D1%87%D1%82%D0%BE-%D0%BB%D1%8E%D0%B4%D0%B8-%D0%BD%D0%B5-%D0%B2%D0%B8%D0%B4%D1%8F%D1%82-%D1%81%D0%B5%D0%B1%D1%8F-%D0%B2-%D1%80%D0%BE%D0%BB%D0%B8-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F,-%D0%BF%D1%80%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82-%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5%D0%BE%D0%B1%D1%8A%D1%8F%D1%82%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D0%BB%D0%B5-%D1%81%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D1%85-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9.">3.21. ничто не тронется с места пока нет руководителя. то, что люди не видят себя в роли руководителя, предоставляет вам необъятное поле скрытых возможностей.</a></li>
 <li> <a href="#%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%B0">3.22. Компоненты руководства</a></li>
 <li> <a href="#She-suggests-having-%22family%22-as-a-method-of-ruling-in-a-company.">3.23. She suggests having "family" as a method of ruling in a company.</a></li>
 <li> <a href="#%D0%9F%D0%BE%D0%B7%D0%BD%D0%B0%D1%82%D1%8C-%D1%81%D0%B5%D0%B1%D1%8F...-%D1%85%D0%B5%D1%85%D0%B5.">3.24. Познать себя… хехе.</a></li>
 <li> <a href="#%22%D0%91%D1%83%D0%B4%D1%8C-%D1%81%D0%B0%D0%BC-%D1%81%D0%B5%D0%B1%D0%B5-%D0%BF%D1%81%D0%B8%D1%85%D0%BE%D1%82%D0%B5%D1%80%D0%B0%D0%BF%D0%B5%D0%B2%D1%82%D0%BE%D0%BC%22.-%D0%A5%D0%B5%D1%85%D0%B5.-%D0%92%D0%BE%D1%82-%D0%BF%D0%B5%D1%80%D0%B5%D0%B5%D0%B7%D0%B4-%D0%BF%D0%BE%D0%B3%D0%BB%D0%B0%D0%B4%D0%B8%D0%BB-%D0%BC%D0%B5%D0%BD%D1%8F-%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2-%D1%88%D0%B5%D1%80%D1%81%D1%82%D0%B8,-%D1%85%D0%BE%D1%82%D1%8F-%D0%BA%D0%B0%D0%B7%D0%B0%D0%BB%D0%BE%D1%81%D1%8C-%D0%B1%D1%8B,-%D0%BC%D0%B5%D0%BB%D0%BE%D1%87%D1%8C.">3.25. "Будь сам себе психотерапевтом". Хехе. Вот переезд погладил меня против шерсти, хотя казалось бы, мелочь.</a></li>
 <li> <a href="#Make-%22stop-signals%22-for-yourself.-Stop-yourself-before-making-sharp-remarks.-Think.">3.26. Make "stop signals" for yourself. Stop yourself before making sharp remarks. Think.</a></li>
 <li> <a href="#%D0%9A%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C-%D0%B1%D0%BB%D0%B8%D0%B6%D0%BD%D0%B5%D0%B3%D0%BE-%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0.">3.27. Как понять ближнего человека.</a></li>
 <li> <a href="#%D0%92-%D0%B4%D0%B5%D0%BB%D0%B0%D1%85-%D0%B8-%D0%B2-%D0%BB%D0%B8%D1%87%D0%BD%D0%BE%D0%B9-%D0%B6%D0%B8%D0%B7%D0%BD%D0%B8-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B5-%D0%B4%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-%D0%B4%D0%BE-%D1%83%D0%BC%D0%B0-%D1%82%D0%B5-%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%8B,-%D1%87%D1%82%D0%BE-%D0%B2%D1%8B-%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%D0%B5-%D0%B7%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C,-%D0%B8-%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BE%D1%82-%D1%82%D0%B5%D1%85,-%D1%87%D1%82%D0%BE-%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%B4-%D1%81%D0%B8%D0%BB%D1%83.-%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D0%B5-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D1%83,-%D0%B8%D0%BB%D0%B8-%D0%B7%D0%B0%D0%B1%D1%83%D0%B4%D1%8C%D1%82%D0%B5-%D0%BE-%D0%BD%D0%B5%D0%B9.">3.28. В делах и в личной жизни главное доводить до ума те договоры, что вы можете заключить, и отказываться от тех, что вам не под силу. Заключите сделку, или забудьте о ней.</a></li>
 <li> <a href="#%D0%A7%D0%B5%D1%81%D1%82%D0%BD%D0%BE-%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%8F,-%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F,-%D1%87%D1%82%D0%BE-%D0%B3%D0%BB%D0%B0%D0%B2%D1%8B-1-%D0%B8-2-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D0%BB%D0%B5%D0%B2%D0%BE%D0%B9-%D0%BF%D1%8F%D1%82%D0%BA%D0%BE%D0%B9,-3-%D0%BD%D0%B8-%D1%82%D0%BE-%D0%BD%D0%B8-%D1%81%D1%91,-%D0%B0-4-%D0%B8-5-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D1%81%D0%BE-%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-%D0%B4%D0%B5%D0%BB%D0%B0-%D0%B8-%D1%81-%D1%83%D0%B4%D0%BE%D0%B2%D0%BE%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%B8%D0%B5%D0%BC.-%D0%9C%D0%BD%D1%8D.">3.29. Честно говоря, кажется, что главы 1 и 2 написаны левой пяткой, 3 ни то ни сё, а 4 и 5 написаны со знанием дела и с удовольствием. Мнэ.</a></li>
 <li> <a href="#%D0%9D%D0%B0%D0%B4%D0%BE-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C,-%D0%BD%D0%B0-%D0%BA%D0%B0%D0%BA%D0%BE%D0%BC-%D1%82%D0%B8%D0%BF%D0%B5-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BD%D0%B0%D1%85%D0%BE%D0%B4%D0%B8%D1%88%D1%8C%D1%81%D1%8F,-%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D1%80%D1%8F%D0%B4%D0%BE%D0%BC,-%D0%BA%D0%B0%D0%BA-%D0%BC%D0%B0%D0%BD%D0%B5%D0%B2%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C,-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%B8%D0%B7%D0%B2%D0%BB%D0%B5%D1%87%D1%8C-%D0%B8%D0%B7-%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B5%D0%B3%D0%BE-%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC.">3.30. Надо определить, на каком типе местности находишься, какие местности рядом, как маневрировать, и как извлечь из текущего положения максимум.</a></li>
 <li> <a href="#%D0%9C%D0%B5%D0%BD%D1%8F-%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0-%D0%BF%D0%BE%D1%80%D0%B0%D0%B6%D0%B0%D0%BB%D0%BE-%D0%BE%D0%B4%D0%BD%D0%BE:-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D1%8B-%D1%81%D1%82%D0%BE%D0%BB%D1%8C-%D0%B7%D0%B0%D0%B1%D0%BE%D1%82%D0%BB%D0%B8%D0%B2%D1%8B-%D0%B4%D1%80%D1%83%D0%B3-%D0%BA-%D0%B4%D1%80%D1%83%D0%B3%D1%83-%D0%B2-%D0%B8%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D1%85,-%D0%BD%D0%B8%D1%87%D0%B5%D0%BC-%D0%B8%D0%BC-%D0%BD%D0%B5-%D1%83%D0%B3%D1%80%D0%BE%D0%B6%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F%D1%85,-%D0%B2%D1%80%D0%BE%D0%B4%D0%B5-%D1%81%D1%8A%D0%B5%D0%B7%D0%B4%D0%B0-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD-%D0%B8%D0%BB%D0%B8-%D0%B3%D0%BE%D0%BD%D0%BE%D1%87%D0%BD%D0%BE%D0%B9-%D1%80%D0%B5%D0%B3%D0%B0%D1%82%D1%8B-%D0%BD%D0%B0-%D0%BF%D0%B5%D1%80%D0%B2%D0%B5%D0%BD%D1%81%D1%82%D0%B2%D0%BE-%D0%9A%D1%83%D0%B1%D0%BA%D0%B0-%D0%BC%D0%B8%D1%80%D0%B0,-%D0%BD%D0%BE-%D1%81%D0%BA%D0%BB%D0%BE%D0%BD%D0%BD%D1%8B-%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BE%D0%BF-%D0%B4%D1%80%D1%83%D0%B3-%D0%BF%D0%BE%D0%B4-%D0%B4%D1%80%D1%83%D0%B3%D0%B0-%D0%BD%D0%B0-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B5.">3.31. Меня всегда поражало одно: женщины столь заботливы друг к другу в искусственных, ничем им не угрожающих условиях, вроде съезда женщин или гоночной регаты на первенство Кубка мира, но склонны вести подкоп друг под друга на работе.</a></li>
 <li> <a href="#%D0%92%D0%B5%D1%89%D0%B8,-%D0%B7%D0%B0-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%BC%D0%B8-%D0%BD%D0%B0%D0%B4%D0%BE-%D1%81%D0%BB%D0%B5%D0%B4%D0%B8%D1%82%D1%8C:">3.32. Вещи, за которыми надо следить:</a></li>
 <li> <a href="#%D0%9A%D0%B0%D0%BA-%D0%B4%D0%BE%D1%81%D1%82%D0%B8%D1%87%D1%8C-%D1%80%D0%B0%D0%B2%D0%BD%D1%8B%D1%85-%D0%BF%D1%80%D0%B0%D0%B2-%D0%B1%D0%B5%D0%B7-%D1%84%D0%B5%D0%BC%D0%B8%D0%BD%D0%B8%D0%B7%D0%BC%D0%B0">3.33. Как достичь равных прав без феминизма</a></li>
 <li> <a href="#%D0%A2%D0%B8%D0%BF%D1%8B-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8:">3.34. Типы местности:</a></li>
</ul></li>
 <li> <a href="#Thoughts">4. Thoughts</a>
 <ul> <li> <a href="#%D0%9E%D0%B1%D1%80%D0%B0%D0%B7-%D0%BC%D1%8B%D1%88%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F">4.1. Образ мышления</a></li>
 <li> <a href="#%D0%9C%D1%8B%D1%81%D0%BB%D0%B8">4.2. Мысли</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">1.</span>  <a href="#Words">Words</a></h2>
 <div class="outline-text-2" id="text-Words">
</div>
</section> <section id="outline-container-Background" class="outline-2"> <h2 id="Background"> <span class="section-number-2">2.</span>  <a href="#Background">Background</a></h2>
 <div class="outline-text-2" id="text-Background">
</div>

 <div id="outline-container-Born-in-Mainland,-ran-away-to-Taiwan,-emigrated-to-the-US." class="outline-3">
 <h3 id="Born-in-Mainland,-ran-away-to-Taiwan,-emigrated-to-the-US."> <span class="section-number-3">2.1.</span>  <a href="#Born-in-Mainland,-ran-away-to-Taiwan,-emigrated-to-the-US.">Born in Mainland, ran away to Taiwan, emigrated to the US.</a></h3>
 <div class="outline-text-3" id="text-Born-in-Mainland,-ran-away-to-Taiwan,-emigrated-to-the-US.">
</div>
</div>

 <div id="outline-container-Speaks-emotionally." class="outline-3">
 <h3 id="Speaks-emotionally."> <span class="section-number-3">2.2.</span>  <a href="#Speaks-emotionally.">Speaks emotionally.</a></h3>
 <div class="outline-text-3" id="text-Speaks-emotionally.">
</div>
</div>

 <div id="outline-container-Was-not-very-supportive-of-the-%22students%22-in-1989." class="outline-3">
 <h3 id="Was-not-very-supportive-of-the-%22students%22-in-1989."> <span class="section-number-3">2.3.</span>  <a href="#Was-not-very-supportive-of-the-%22students%22-in-1989.">Was not very supportive of the "students" in 1989.</a></h3>
 <div class="outline-text-3" id="text-Was-not-very-supportive-of-the-%22students%22-in-1989.">
</div>
</div>

 <div id="outline-container-Over-praised-Wikipedia-page." class="outline-3">
 <h3 id="Over-praised-Wikipedia-page."> <span class="section-number-3">2.4.</span>  <a href="#Over-praised-Wikipedia-page.">Over-praised Wikipedia page.</a></h3>
 <div class="outline-text-3" id="text-Over-praised-Wikipedia-page.">
</div>
</div>
</section> <section id="outline-container-Notes" class="outline-2"> <h2 id="Notes"> <span class="section-number-2">3.</span>  <a href="#Notes">Notes</a></h2>
 <div class="outline-text-2" id="text-Notes">
</div>

 <div id="outline-container-%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0----%D0%B8-%D0%B6%D0%B5%D0%BD%D0%B0,-%D0%B8-%D0%BC%D0%B0%D1%82%D1%8C,-%D0%B8-%D0%BF%D0%BE%D0%B2%D0%B0%D1%80%D0%B8%D1%85%D0%B0,-%D0%B8-%D1%83%D0%B1%D0%BE%D1%80%D1%89%D0%B8%D1%86%D0%B0,-%D0%B8-%D0%BB%D0%B5%D0%BA%D0%B0%D1%80%D1%8C,-%D0%B8-%D0%BF%D1%81%D0%B8%D1%85%D0%BE%D1%82%D0%B5%D1%80%D0%B0%D0%BF%D0%B5%D0%B2%D1%82,-%D0%B8-%D0%B2%D1%80%D0%B0%D1%87,-%D0%B8-%D0%BF%D0%BE%D1%81%D1%83%D0%B4%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0,-%D0%B8-%D1%81%D0%B1%D0%BE%D1%80%D1%89%D0%B8%D0%BA-%D0%BC%D1%83%D1%81%D0%BE%D1%80%D0%B0.-%D0%A2%D0%B8%D0%BF%D0%B0,-%D1%82%D0%B0%D0%BA-%D0%BB%D0%B8-%D1%8D%D1%82%D0%BE?" class="outline-3">
 <h3 id="%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0----%D0%B8-%D0%B6%D0%B5%D0%BD%D0%B0,-%D0%B8-%D0%BC%D0%B0%D1%82%D1%8C,-%D0%B8-%D0%BF%D0%BE%D0%B2%D0%B0%D1%80%D0%B8%D1%85%D0%B0,-%D0%B8-%D1%83%D0%B1%D0%BE%D1%80%D1%89%D0%B8%D1%86%D0%B0,-%D0%B8-%D0%BB%D0%B5%D0%BA%D0%B0%D1%80%D1%8C,-%D0%B8-%D0%BF%D1%81%D0%B8%D1%85%D0%BE%D1%82%D0%B5%D1%80%D0%B0%D0%BF%D0%B5%D0%B2%D1%82,-%D0%B8-%D0%B2%D1%80%D0%B0%D1%87,-%D0%B8-%D0%BF%D0%BE%D1%81%D1%83%D0%B4%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0,-%D0%B8-%D1%81%D0%B1%D0%BE%D1%80%D1%89%D0%B8%D0%BA-%D0%BC%D1%83%D1%81%D0%BE%D1%80%D0%B0.-%D0%A2%D0%B8%D0%BF%D0%B0,-%D1%82%D0%B0%D0%BA-%D0%BB%D0%B8-%D1%8D%D1%82%D0%BE?"> <span class="section-number-3">3.1.</span>  <a href="#%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0----%D0%B8-%D0%B6%D0%B5%D0%BD%D0%B0,-%D0%B8-%D0%BC%D0%B0%D1%82%D1%8C,-%D0%B8-%D0%BF%D0%BE%D0%B2%D0%B0%D1%80%D0%B8%D1%85%D0%B0,-%D0%B8-%D1%83%D0%B1%D0%BE%D1%80%D1%89%D0%B8%D1%86%D0%B0,-%D0%B8-%D0%BB%D0%B5%D0%BA%D0%B0%D1%80%D1%8C,-%D0%B8-%D0%BF%D1%81%D0%B8%D1%85%D0%BE%D1%82%D0%B5%D1%80%D0%B0%D0%BF%D0%B5%D0%B2%D1%82,-%D0%B8-%D0%B2%D1%80%D0%B0%D1%87,-%D0%B8-%D0%BF%D0%BE%D1%81%D1%83%D0%B4%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0,-%D0%B8-%D1%81%D0%B1%D0%BE%D1%80%D1%89%D0%B8%D0%BA-%D0%BC%D1%83%D1%81%D0%BE%D1%80%D0%B0.-%D0%A2%D0%B8%D0%BF%D0%B0,-%D1%82%D0%B0%D0%BA-%D0%BB%D0%B8-%D1%8D%D1%82%D0%BE?">Женщина – и жена, и мать, и повариха, и уборщица, и лекарь, и психотерапевт, и врач, и посудомойка, и сборщик мусора. Типа, так ли это?</a></h3>
 <div class="outline-text-3" id="text-%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0----%D0%B8-%D0%B6%D0%B5%D0%BD%D0%B0,-%D0%B8-%D0%BC%D0%B0%D1%82%D1%8C,-%D0%B8-%D0%BF%D0%BE%D0%B2%D0%B0%D1%80%D0%B8%D1%85%D0%B0,-%D0%B8-%D1%83%D0%B1%D0%BE%D1%80%D1%89%D0%B8%D1%86%D0%B0,-%D0%B8-%D0%BB%D0%B5%D0%BA%D0%B0%D1%80%D1%8C,-%D0%B8-%D0%BF%D1%81%D0%B8%D1%85%D0%BE%D1%82%D0%B5%D1%80%D0%B0%D0%BF%D0%B5%D0%B2%D1%82,-%D0%B8-%D0%B2%D1%80%D0%B0%D1%87,-%D0%B8-%D0%BF%D0%BE%D1%81%D1%83%D0%B4%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0,-%D0%B8-%D1%81%D0%B1%D0%BE%D1%80%D1%89%D0%B8%D0%BA-%D0%BC%D1%83%D1%81%D0%BE%D1%80%D0%B0.-%D0%A2%D0%B8%D0%BF%D0%B0,-%D1%82%D0%B0%D0%BA-%D0%BB%D0%B8-%D1%8D%D1%82%D0%BE?">
</div>
</div>

 <div id="outline-container-%D0%9B%D0%B8%D1%88%D1%8C-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0-%D0%B2%D0%B5%D0%B4%D0%B0%D0%B5%D1%82,-%D0%BA%D0%B0%D0%BA-%D1%82%D1%80%D1%83%D0%B4%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%BD%D0%B0%D0%B4%D0%BB%D0%B5%D0%B6%D0%B0%D1%82%D1%8C-%D0%BA-%D1%81%D0%BB%D0%B0%D0%B1%D0%BE%D0%BC%D1%83-%D0%BF%D0%BE%D0%BB%D1%83." class="outline-3">
 <h3 id="%D0%9B%D0%B8%D1%88%D1%8C-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0-%D0%B2%D0%B5%D0%B4%D0%B0%D0%B5%D1%82,-%D0%BA%D0%B0%D0%BA-%D1%82%D1%80%D1%83%D0%B4%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%BD%D0%B0%D0%B4%D0%BB%D0%B5%D0%B6%D0%B0%D1%82%D1%8C-%D0%BA-%D1%81%D0%BB%D0%B0%D0%B1%D0%BE%D0%BC%D1%83-%D0%BF%D0%BE%D0%BB%D1%83."> <span class="section-number-3">3.2.</span>  <a href="#%D0%9B%D0%B8%D1%88%D1%8C-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0-%D0%B2%D0%B5%D0%B4%D0%B0%D0%B5%D1%82,-%D0%BA%D0%B0%D0%BA-%D1%82%D1%80%D1%83%D0%B4%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%BD%D0%B0%D0%B4%D0%BB%D0%B5%D0%B6%D0%B0%D1%82%D1%8C-%D0%BA-%D1%81%D0%BB%D0%B0%D0%B1%D0%BE%D0%BC%D1%83-%D0%BF%D0%BE%D0%BB%D1%83.">Лишь женщина ведает, как трудно принадлежать к слабому полу.</a></h3>
 <div class="outline-text-3" id="text-%D0%9B%D0%B8%D1%88%D1%8C-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0-%D0%B2%D0%B5%D0%B4%D0%B0%D0%B5%D1%82,-%D0%BA%D0%B0%D0%BA-%D1%82%D1%80%D1%83%D0%B4%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%BD%D0%B0%D0%B4%D0%BB%D0%B5%D0%B6%D0%B0%D1%82%D1%8C-%D0%BA-%D1%81%D0%BB%D0%B0%D0%B1%D0%BE%D0%BC%D1%83-%D0%BF%D0%BE%D0%BB%D1%83.">
</div>
</div>

 <div id="outline-container-%D0%92-%D0%BA%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%BE%D0%B9-%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%86%D0%B8%D0%B8-%D0%B2%D0%BE%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D0%B8%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B0-%D0%BD%D0%B5%D1%82-%D0%BC%D0%B5%D1%81%D1%82%D0%B0-%D0%B2%D0%BE%D0%B9%D0%BD%D0%B5." class="outline-3">
 <h3 id="%D0%92-%D0%BA%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%BE%D0%B9-%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%86%D0%B8%D0%B8-%D0%B2%D0%BE%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D0%B8%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B0-%D0%BD%D0%B5%D1%82-%D0%BC%D0%B5%D1%81%D1%82%D0%B0-%D0%B2%D0%BE%D0%B9%D0%BD%D0%B5."> <span class="section-number-3">3.3.</span>  <a href="#%D0%92-%D0%BA%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%BE%D0%B9-%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%86%D0%B8%D0%B8-%D0%B2%D0%BE%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D0%B8%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B0-%D0%BD%D0%B5%D1%82-%D0%BC%D0%B5%D1%81%D1%82%D0%B0-%D0%B2%D0%BE%D0%B9%D0%BD%D0%B5.">В китайской концепции военного искусства нет места войне.</a></h3>
 <div class="outline-text-3" id="text-%D0%92-%D0%BA%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%BE%D0%B9-%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%86%D0%B8%D0%B8-%D0%B2%D0%BE%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D0%B8%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B0-%D0%BD%D0%B5%D1%82-%D0%BC%D0%B5%D1%81%D1%82%D0%B0-%D0%B2%D0%BE%D0%B9%D0%BD%D0%B5.">
</div>
</div>

 <div id="outline-container-%D0%A1%D1%83%D0%BD%D1%8C-%D0%A6%D0%B7%D1%8B-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%B8%D0%B7%D0%BD%D0%B5%D1%81-%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%97%D0%B0%D0%BF%D0%B0%D0%B4%D0%B5,-%D0%B8-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D0%BE%D0%B2-%D0%B2-%D0%A1%D0%A1%D0%A1%D0%A0." class="outline-3">
 <h3 id="%D0%A1%D1%83%D0%BD%D1%8C-%D0%A6%D0%B7%D1%8B-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%B8%D0%B7%D0%BD%D0%B5%D1%81-%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%97%D0%B0%D0%BF%D0%B0%D0%B4%D0%B5,-%D0%B8-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D0%BE%D0%B2-%D0%B2-%D0%A1%D0%A1%D0%A1%D0%A0."> <span class="section-number-3">3.4.</span>  <a href="#%D0%A1%D1%83%D0%BD%D1%8C-%D0%A6%D0%B7%D1%8B-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%B8%D0%B7%D0%BD%D0%B5%D1%81-%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%97%D0%B0%D0%BF%D0%B0%D0%B4%D0%B5,-%D0%B8-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D0%BE%D0%B2-%D0%B2-%D0%A1%D0%A1%D0%A1%D0%A0.">Сунь Цзы активно применяется для бизнес-тренингов на Западе, и для тренировки агентов в СССР.</a></h3>
 <div class="outline-text-3" id="text-%D0%A1%D1%83%D0%BD%D1%8C-%D0%A6%D0%B7%D1%8B-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%B8%D0%B7%D0%BD%D0%B5%D1%81-%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%97%D0%B0%D0%BF%D0%B0%D0%B4%D0%B5,-%D0%B8-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D0%BE%D0%B2-%D0%B2-%D0%A1%D0%A1%D0%A1%D0%A0.">
</div>
</div>

 <div id="outline-container-%D0%95%D1%81%D1%82%D1%8C-%D1%86%D0%B5%D0%BD%D0%B0-%D1%83-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B9-%D0%BF%D0%BE%D0%BA%D0%BE%D1%80%D0%BD%D0%BE%D1%81%D1%82%D0%B8." class="outline-3">
 <h3 id="%D0%95%D1%81%D1%82%D1%8C-%D1%86%D0%B5%D0%BD%D0%B0-%D1%83-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B9-%D0%BF%D0%BE%D0%BA%D0%BE%D1%80%D0%BD%D0%BE%D1%81%D1%82%D0%B8."> <span class="section-number-3">3.5.</span>  <a href="#%D0%95%D1%81%D1%82%D1%8C-%D1%86%D0%B5%D0%BD%D0%B0-%D1%83-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B9-%D0%BF%D0%BE%D0%BA%D0%BE%D1%80%D0%BD%D0%BE%D1%81%D1%82%D0%B8.">Есть цена у внешней покорности.</a></h3>
 <div class="outline-text-3" id="text-%D0%95%D1%81%D1%82%D1%8C-%D1%86%D0%B5%D0%BD%D0%B0-%D1%83-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B9-%D0%BF%D0%BE%D0%BA%D0%BE%D1%80%D0%BD%D0%BE%D1%81%D1%82%D0%B8.">
</div>
</div>

 <div id="outline-container-5-components-of-success" class="outline-3">
 <h3 id="5-components-of-success"> <span class="section-number-3">3.6.</span>  <a href="#5-components-of-success">5 components of success</a></h3>
 <div class="outline-text-3" id="text-5-components-of-success">
 <ul class="org-ul"> <li>High moral ground</li>
 <li>Good choice of time</li>
 <li>Good choice of terrain</li>
 <li>Leadership</li>
 <li>Qualification, competence, and discipline</li>
</ul></div>
</div>

 <div id="outline-container-Think-through-a-strategy." class="outline-3">
 <h3 id="Think-through-a-strategy."> <span class="section-number-3">3.7.</span>  <a href="#Think-through-a-strategy.">Think through a strategy.</a></h3>
 <div class="outline-text-3" id="text-Think-through-a-strategy.">
</div>
</div>

 <div id="outline-container-Pretend-to-be-weaker-than-you-are.-(LWF:-energy-consumption?)" class="outline-3">
 <h3 id="Pretend-to-be-weaker-than-you-are.-(LWF:-energy-consumption?)"> <span class="section-number-3">3.8.</span>  <a href="#Pretend-to-be-weaker-than-you-are.-(LWF:-energy-consumption?)">Pretend to be weaker than you are. (LWF: energy consumption?)</a></h3>
 <div class="outline-text-3" id="text-Pretend-to-be-weaker-than-you-are.-(LWF:-energy-consumption?)">
</div>
</div>

 <div id="outline-container-%D0%A7%D1%82%D0%BE%D0%B1%D1%8B-%D1%81%D0%B0%D0%BC%D0%BE%D0%BC%D1%83-%D0%BD%D0%B5-%D0%BF%D0%B0%D1%81%D1%82%D1%8C-%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B9-%D1%87%D1%8C%D0%B8%D1%85-%D1%82%D0%BE-%D0%BC%D0%BE%D1%88%D0%B5%D0%BD%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85-%D0%B8%D0%BD%D1%82%D1%80%D0%B8%D0%B3,-%D0%B2%D0%B0%D0%BC-%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82-%D0%B2-%D0%BF%D0%B5%D1%80%D0%B2%D1%83%D1%8E-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C-%D0%B2-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%BE%D0%B1%D0%BE%D1%80%D0%BE%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9-%D0%BC%D0%B5%D1%80%D1%8B-%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%B2%D0%B0%D1%80%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BC%D1%8B%D1%81%D0%BB%D1%8B." class="outline-3">
 <h3 id="%D0%A7%D1%82%D0%BE%D0%B1%D1%8B-%D1%81%D0%B0%D0%BC%D0%BE%D0%BC%D1%83-%D0%BD%D0%B5-%D0%BF%D0%B0%D1%81%D1%82%D1%8C-%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B9-%D1%87%D1%8C%D0%B8%D1%85-%D1%82%D0%BE-%D0%BC%D0%BE%D1%88%D0%B5%D0%BD%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85-%D0%B8%D0%BD%D1%82%D1%80%D0%B8%D0%B3,-%D0%B2%D0%B0%D0%BC-%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82-%D0%B2-%D0%BF%D0%B5%D1%80%D0%B2%D1%83%D1%8E-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C-%D0%B2-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%BE%D0%B1%D0%BE%D1%80%D0%BE%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9-%D0%BC%D0%B5%D1%80%D1%8B-%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%B2%D0%B0%D1%80%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BC%D1%8B%D1%81%D0%BB%D1%8B."> <span class="section-number-3">3.9.</span>  <a href="#%D0%A7%D1%82%D0%BE%D0%B1%D1%8B-%D1%81%D0%B0%D0%BC%D0%BE%D0%BC%D1%83-%D0%BD%D0%B5-%D0%BF%D0%B0%D1%81%D1%82%D1%8C-%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B9-%D1%87%D1%8C%D0%B8%D1%85-%D1%82%D0%BE-%D0%BC%D0%BE%D1%88%D0%B5%D0%BD%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85-%D0%B8%D0%BD%D1%82%D1%80%D0%B8%D0%B3,-%D0%B2%D0%B0%D0%BC-%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82-%D0%B2-%D0%BF%D0%B5%D1%80%D0%B2%D1%83%D1%8E-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C-%D0%B2-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%BE%D0%B1%D0%BE%D1%80%D0%BE%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9-%D0%BC%D0%B5%D1%80%D1%8B-%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%B2%D0%B0%D1%80%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BC%D1%8B%D1%81%D0%BB%D1%8B.">Чтобы самому не пасть жертвой чьих-то мошеннических интриг, вам следует в первую очередь в качестве оборонительной меры научиться распознавать коварные замыслы.</a></h3>
 <div class="outline-text-3" id="text-%D0%A7%D1%82%D0%BE%D0%B1%D1%8B-%D1%81%D0%B0%D0%BC%D0%BE%D0%BC%D1%83-%D0%BD%D0%B5-%D0%BF%D0%B0%D1%81%D1%82%D1%8C-%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B9-%D1%87%D1%8C%D0%B8%D1%85-%D1%82%D0%BE-%D0%BC%D0%BE%D1%88%D0%B5%D0%BD%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85-%D0%B8%D0%BD%D1%82%D1%80%D0%B8%D0%B3,-%D0%B2%D0%B0%D0%BC-%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82-%D0%B2-%D0%BF%D0%B5%D1%80%D0%B2%D1%83%D1%8E-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C-%D0%B2-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%BE%D0%B1%D0%BE%D1%80%D0%BE%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9-%D0%BC%D0%B5%D1%80%D1%8B-%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%B2%D0%B0%D1%80%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BC%D1%8B%D1%81%D0%BB%D1%8B.">
</div>
</div>

 <div id="outline-container-%D0%98%D0%B7%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%B8%D0%B5%D0%BC%D0%BE%D0%B2-%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D0%B5-%D0%BF%D1%80%D0%B5%D0%BA%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B5,-%D0%BD%D0%BE-%D0%BE%D0%B1%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B2%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%D0%BF%D0%BE-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%D1%83-%D1%83%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D1%8E-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%B8%D1%85-%D0%BA%D1%83%D0%B4%D0%B0-%D0%BB%D1%83%D1%87%D1%88%D0%B5." class="outline-3">
 <h3 id="%D0%98%D0%B7%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%B8%D0%B5%D0%BC%D0%BE%D0%B2-%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D0%B5-%D0%BF%D1%80%D0%B5%D0%BA%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B5,-%D0%BD%D0%BE-%D0%BE%D0%B1%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B2%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%D0%BF%D0%BE-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%D1%83-%D1%83%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D1%8E-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%B8%D1%85-%D0%BA%D1%83%D0%B4%D0%B0-%D0%BB%D1%83%D1%87%D1%88%D0%B5."> <span class="section-number-3">3.10.</span>  <a href="#%D0%98%D0%B7%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%B8%D0%B5%D0%BC%D0%BE%D0%B2-%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D0%B5-%D0%BF%D1%80%D0%B5%D0%BA%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B5,-%D0%BD%D0%BE-%D0%BE%D0%B1%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B2%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%D0%BF%D0%BE-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%D1%83-%D1%83%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D1%8E-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%B8%D1%85-%D0%BA%D1%83%D0%B4%D0%B0-%D0%BB%D1%83%D1%87%D1%88%D0%B5.">Изучение приемов занятие прекрасное, но обладание врожденной способностью по собственному усмотрению создавать их куда лучше.</a></h3>
 <div class="outline-text-3" id="text-%D0%98%D0%B7%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%B8%D0%B5%D0%BC%D0%BE%D0%B2-%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D0%B5-%D0%BF%D1%80%D0%B5%D0%BA%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B5,-%D0%BD%D0%BE-%D0%BE%D0%B1%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B2%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%D0%BF%D0%BE-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%D1%83-%D1%83%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D1%8E-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%B8%D1%85-%D0%BA%D1%83%D0%B4%D0%B0-%D0%BB%D1%83%D1%87%D1%88%D0%B5.">
</div>
</div>

 <div id="outline-container-%D0%92-%D0%9A%D0%B8%D1%82%D0%B0%D0%B5-%D0%B2%D1%81%D1%91-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%BE%D1%87%D0%B5%D0%BD%D1%8C-%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE.-%D0%92-%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%BC%D0%B0%D0%BB%D0%BE,-%D0%B8-%D1%8D%D1%82%D0%BE-%D0%BD%D0%B0%D0%B4%D0%BE-%D0%BC%D0%B5%D0%BD%D1%8F%D1%82%D1%8C." class="outline-3">
 <h3 id="%D0%92-%D0%9A%D0%B8%D1%82%D0%B0%D0%B5-%D0%B2%D1%81%D1%91-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%BE%D1%87%D0%B5%D0%BD%D1%8C-%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE.-%D0%92-%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%BC%D0%B0%D0%BB%D0%BE,-%D0%B8-%D1%8D%D1%82%D0%BE-%D0%BD%D0%B0%D0%B4%D0%BE-%D0%BC%D0%B5%D0%BD%D1%8F%D1%82%D1%8C."> <span class="section-number-3">3.11.</span>  <a href="#%D0%92-%D0%9A%D0%B8%D1%82%D0%B0%D0%B5-%D0%B2%D1%81%D1%91-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%BE%D1%87%D0%B5%D0%BD%D1%8C-%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE.-%D0%92-%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%BC%D0%B0%D0%BB%D0%BE,-%D0%B8-%D1%8D%D1%82%D0%BE-%D0%BD%D0%B0%D0%B4%D0%BE-%D0%BC%D0%B5%D0%BD%D1%8F%D1%82%D1%8C.">В Китае всё меняется очень быстро. В России меняется мало, и это надо менять.</a></h3>
 <div class="outline-text-3" id="text-%D0%92-%D0%9A%D0%B8%D1%82%D0%B0%D0%B5-%D0%B2%D1%81%D1%91-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%BE%D1%87%D0%B5%D0%BD%D1%8C-%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE.-%D0%92-%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F-%D0%BC%D0%B0%D0%BB%D0%BE,-%D0%B8-%D1%8D%D1%82%D0%BE-%D0%BD%D0%B0%D0%B4%D0%BE-%D0%BC%D0%B5%D0%BD%D1%8F%D1%82%D1%8C.">
</div>
</div>

 <div id="outline-container-I-need-to-again-rethink-my-wardrobe-and-hairstyle.-%D0%9D%D0%B0%D0%B4%D0%BE-%D0%B7%D0%B0%D0%BA%D0%BE%D1%81%D0%B8%D1%82%D1%8C-%D0%BF%D0%BE%D0%B4-%D0%A8%D0%B5%D0%BB%D0%B4%D0%BE%D0%BD%D0%B0-%D0%9A%D1%83%D0%BF%D0%B5%D1%80%D0%B0.-%D0%94%D1%91%D1%88%D0%B5%D0%B2%D0%BE-%D0%B8-%D1%81%D0%B5%D1%80%D0%B4%D0%B8%D1%82%D0%BE." class="outline-3">
 <h3 id="I-need-to-again-rethink-my-wardrobe-and-hairstyle.-%D0%9D%D0%B0%D0%B4%D0%BE-%D0%B7%D0%B0%D0%BA%D0%BE%D1%81%D0%B8%D1%82%D1%8C-%D0%BF%D0%BE%D0%B4-%D0%A8%D0%B5%D0%BB%D0%B4%D0%BE%D0%BD%D0%B0-%D0%9A%D1%83%D0%BF%D0%B5%D1%80%D0%B0.-%D0%94%D1%91%D1%88%D0%B5%D0%B2%D0%BE-%D0%B8-%D1%81%D0%B5%D1%80%D0%B4%D0%B8%D1%82%D0%BE."> <span class="section-number-3">3.12.</span>  <a href="#I-need-to-again-rethink-my-wardrobe-and-hairstyle.-%D0%9D%D0%B0%D0%B4%D0%BE-%D0%B7%D0%B0%D0%BA%D0%BE%D1%81%D0%B8%D1%82%D1%8C-%D0%BF%D0%BE%D0%B4-%D0%A8%D0%B5%D0%BB%D0%B4%D0%BE%D0%BD%D0%B0-%D0%9A%D1%83%D0%BF%D0%B5%D1%80%D0%B0.-%D0%94%D1%91%D1%88%D0%B5%D0%B2%D0%BE-%D0%B8-%D1%81%D0%B5%D1%80%D0%B4%D0%B8%D1%82%D0%BE.">I need to again rethink my wardrobe and hairstyle. Надо закосить под Шелдона Купера. Дёшево и сердито.</a></h3>
 <div class="outline-text-3" id="text-I-need-to-again-rethink-my-wardrobe-and-hairstyle.-%D0%9D%D0%B0%D0%B4%D0%BE-%D0%B7%D0%B0%D0%BA%D0%BE%D1%81%D0%B8%D1%82%D1%8C-%D0%BF%D0%BE%D0%B4-%D0%A8%D0%B5%D0%BB%D0%B4%D0%BE%D0%BD%D0%B0-%D0%9A%D1%83%D0%BF%D0%B5%D1%80%D0%B0.-%D0%94%D1%91%D1%88%D0%B5%D0%B2%D0%BE-%D0%B8-%D1%81%D0%B5%D1%80%D0%B4%D0%B8%D1%82%D0%BE.">
</div>
</div>

 <div id="outline-container-%C2%AB%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8F-%D1%81-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8,-%D1%8F-%D0%BD%D0%B8-%D1%80%D0%B0%D0%B7%D1%83-%D0%BD%D0%B5-%D0%BE%D1%89%D1%83%D1%82%D0%B8%D0%BB%D0%B0,-%D1%87%D1%82%D0%BE-%D1%87%D0%B5%D0%BC-%D1%82%D0%BE-%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B0%D1%8E%D1%81%D1%8C-%D0%BE%D1%82-%D0%BD%D0%B8%D1%85%C2%BB." class="outline-3">
 <h3 id="%C2%AB%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8F-%D1%81-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8,-%D1%8F-%D0%BD%D0%B8-%D1%80%D0%B0%D0%B7%D1%83-%D0%BD%D0%B5-%D0%BE%D1%89%D1%83%D1%82%D0%B8%D0%BB%D0%B0,-%D1%87%D1%82%D0%BE-%D1%87%D0%B5%D0%BC-%D1%82%D0%BE-%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B0%D1%8E%D1%81%D1%8C-%D0%BE%D1%82-%D0%BD%D0%B8%D1%85%C2%BB."> <span class="section-number-3">3.13.</span>  <a href="#%C2%AB%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8F-%D1%81-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8,-%D1%8F-%D0%BD%D0%B8-%D1%80%D0%B0%D0%B7%D1%83-%D0%BD%D0%B5-%D0%BE%D1%89%D1%83%D1%82%D0%B8%D0%BB%D0%B0,-%D1%87%D1%82%D0%BE-%D1%87%D0%B5%D0%BC-%D1%82%D0%BE-%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B0%D1%8E%D1%81%D1%8C-%D0%BE%D1%82-%D0%BD%D0%B8%D1%85%C2%BB.">«Постоянно работая с мужчинами, я ни разу не ощутила, что чем-то отличаюсь от них».</a></h3>
 <div class="outline-text-3" id="text-%C2%AB%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8F-%D1%81-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8,-%D1%8F-%D0%BD%D0%B8-%D1%80%D0%B0%D0%B7%D1%83-%D0%BD%D0%B5-%D0%BE%D1%89%D1%83%D1%82%D0%B8%D0%BB%D0%B0,-%D1%87%D1%82%D0%BE-%D1%87%D0%B5%D0%BC-%D1%82%D0%BE-%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B0%D1%8E%D1%81%D1%8C-%D0%BE%D1%82-%D0%BD%D0%B8%D1%85%C2%BB.">
 <p>
Перефразируем: постоянно работая с китайцами, учёными, программистами, физиками, кем угодно, я никогда не ощущал, что отличаюсь от них. Так ли это?
</p>
</div>
</div>

 <div id="outline-container-%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BD%D0%B0-%D0%BC%D0%BE%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D1%8E:" class="outline-3">
 <h3 id="%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BD%D0%B0-%D0%BC%D0%BE%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D1%8E:"> <span class="section-number-3">3.14.</span>  <a href="#%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BD%D0%B0-%D0%BC%D0%BE%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D1%8E:">Вопросы на мотивацию:</a></h3>
 <div class="outline-text-3" id="text-%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BD%D0%B0-%D0%BC%D0%BE%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D1%8E:">
 <ul class="org-ul"> <li>Добродетельны ли мои мотивы?</li>
 <li>Движет ли мной жадность?</li>
 <li>Движет ли мной отчаянье?</li>
 <li>Движет ли мной высокомерие?</li>
</ul></div>
</div>

 <div id="outline-container-21-%D0%B2%D0%B5%D0%BA----%D0%B2%D0%B5%D0%BA-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD.-%D0%A1%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE,-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D0%B5-%D1%8D%D1%82%D0%BE%D0%B9-%D0%BA%D0%BD%D0%B8%D0%B6%D0%BA%D0%B8-%D1%82%D0%BE%D0%BC%D1%83-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80.-%D0%9F%D0%BE%D0%BC%D0%BD%D0%B8-%D0%BE%D0%B1-%D1%8D%D1%82%D0%BE%D0%BC." class="outline-3">
 <h3 id="21-%D0%B2%D0%B5%D0%BA----%D0%B2%D0%B5%D0%BA-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD.-%D0%A1%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE,-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D0%B5-%D1%8D%D1%82%D0%BE%D0%B9-%D0%BA%D0%BD%D0%B8%D0%B6%D0%BA%D0%B8-%D1%82%D0%BE%D0%BC%D1%83-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80.-%D0%9F%D0%BE%D0%BC%D0%BD%D0%B8-%D0%BE%D0%B1-%D1%8D%D1%82%D0%BE%D0%BC."> <span class="section-number-3">3.15.</span>  <a href="#21-%D0%B2%D0%B5%D0%BA----%D0%B2%D0%B5%D0%BA-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD.-%D0%A1%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE,-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D0%B5-%D1%8D%D1%82%D0%BE%D0%B9-%D0%BA%D0%BD%D0%B8%D0%B6%D0%BA%D0%B8-%D1%82%D0%BE%D0%BC%D1%83-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80.-%D0%9F%D0%BE%D0%BC%D0%BD%D0%B8-%D0%BE%D0%B1-%D1%8D%D1%82%D0%BE%D0%BC.">21 век – век женщин. Собственно, чтение этой книжки тому пример. Помни об этом.</a></h3>
 <div class="outline-text-3" id="text-21-%D0%B2%D0%B5%D0%BA----%D0%B2%D0%B5%D0%BA-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD.-%D0%A1%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE,-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D0%B5-%D1%8D%D1%82%D0%BE%D0%B9-%D0%BA%D0%BD%D0%B8%D0%B6%D0%BA%D0%B8-%D1%82%D0%BE%D0%BC%D1%83-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80.-%D0%9F%D0%BE%D0%BC%D0%BD%D0%B8-%D0%BE%D0%B1-%D1%8D%D1%82%D0%BE%D0%BC.">
</div>
</div>

 <div id="outline-container-%D0%9D%D0%B0%D0%B4%D0%BE-%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D1%82%D1%8C,-%D0%BA%D0%B0%D0%BA-%D1%81%D0%B5%D0%B1%D1%8F-%D0%BF%D1%80%D0%BE%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C.-%D0%91%D1%80%D1%8D%D0%BD%D0%B4%D0%B8%D0%BD%D0%B3-%D0%B8-%D0%BF%D1%80%D0%BE%D1%84%D0%B0%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3." class="outline-3">
 <h3 id="%D0%9D%D0%B0%D0%B4%D0%BE-%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D1%82%D1%8C,-%D0%BA%D0%B0%D0%BA-%D1%81%D0%B5%D0%B1%D1%8F-%D0%BF%D1%80%D0%BE%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C.-%D0%91%D1%80%D1%8D%D0%BD%D0%B4%D0%B8%D0%BD%D0%B3-%D0%B8-%D0%BF%D1%80%D0%BE%D1%84%D0%B0%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3."> <span class="section-number-3">3.16.</span>  <a href="#%D0%9D%D0%B0%D0%B4%D0%BE-%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D1%82%D1%8C,-%D0%BA%D0%B0%D0%BA-%D1%81%D0%B5%D0%B1%D1%8F-%D0%BF%D1%80%D0%BE%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C.-%D0%91%D1%80%D1%8D%D0%BD%D0%B4%D0%B8%D0%BD%D0%B3-%D0%B8-%D0%BF%D1%80%D0%BE%D1%84%D0%B0%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3.">Надо понимать, как себя продавать. Брэндинг и профайлинг.</a></h3>
 <div class="outline-text-3" id="text-%D0%9D%D0%B0%D0%B4%D0%BE-%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D1%82%D1%8C,-%D0%BA%D0%B0%D0%BA-%D1%81%D0%B5%D0%B1%D1%8F-%D0%BF%D1%80%D0%BE%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C.-%D0%91%D1%80%D1%8D%D0%BD%D0%B4%D0%B8%D0%BD%D0%B3-%D0%B8-%D0%BF%D1%80%D0%BE%D1%84%D0%B0%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3.">
 <ul class="org-ul"> <li>Я умный.</li>
 <li>Я русский.</li>
 <li>Я начитанный.</li>
 <li>Я смелый, или не смелый? Важный вопрос!</li>
 <li>Очень критичный.</li>
</ul></div>
</div>

 <div id="outline-container-%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C,-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C,-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C-%D1%83%D0%B4%D0%BE%D0%B1%D0%BD%D1%8B%D0%B5-%D0%BC%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%82%D0%BE%D0%B3%D0%BE-%D0%B8-%D0%B4%D0%BB%D1%8F-%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B3%D0%BE.-(%D0%9D%D0%BE-%D0%BD%D0%B5-%D0%B7%D0%B0%D0%B1%D1%8B%D0%B2%D0%B0%D0%B9-%D0%BE-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.)" class="outline-3">
 <h3 id="%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C,-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C,-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C-%D1%83%D0%B4%D0%BE%D0%B1%D0%BD%D1%8B%D0%B5-%D0%BC%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%82%D0%BE%D0%B3%D0%BE-%D0%B8-%D0%B4%D0%BB%D1%8F-%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B3%D0%BE.-(%D0%9D%D0%BE-%D0%BD%D0%B5-%D0%B7%D0%B0%D0%B1%D1%8B%D0%B2%D0%B0%D0%B9-%D0%BE-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.)"> <span class="section-number-3">3.17.</span>  <a href="#%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C,-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C,-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C-%D1%83%D0%B4%D0%BE%D0%B1%D0%BD%D1%8B%D0%B5-%D0%BC%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%82%D0%BE%D0%B3%D0%BE-%D0%B8-%D0%B4%D0%BB%D1%8F-%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B3%D0%BE.-(%D0%9D%D0%BE-%D0%BD%D0%B5-%D0%B7%D0%B0%D0%B1%D1%8B%D0%B2%D0%B0%D0%B9-%D0%BE-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.)">Мониторь, мониторь, мониторь удобные моменты для того и для другого. (Но не забывай о качестве данных.)</a></h3>
 <div class="outline-text-3" id="text-%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C,-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C,-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8C-%D1%83%D0%B4%D0%BE%D0%B1%D0%BD%D1%8B%D0%B5-%D0%BC%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%82%D0%BE%D0%B3%D0%BE-%D0%B8-%D0%B4%D0%BB%D1%8F-%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B3%D0%BE.-(%D0%9D%D0%BE-%D0%BD%D0%B5-%D0%B7%D0%B0%D0%B1%D1%8B%D0%B2%D0%B0%D0%B9-%D0%BE-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.)">
</div>
</div>

 <div id="outline-container-%D0%94%D0%B0%D0%B6%D0%B5-%D0%B5%D1%81%D0%BB%D0%B8-%D0%B2%D1%8B-%D0%BD%D0%B5-%D1%81%D0%BE%D0%B1%D0%B8%D0%B0%D0%B5%D1%82%D0%B5%D1%81%D1%8C-%D0%BF%D1%80%D0%B5%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%B3%D0%BE-%D1%82%D0%BE-%D0%B2-%D1%81%D1%83%D0%B4%D0%B5%D0%B1%D0%BD%D0%BE%D0%BC-%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BA%D0%B5,-%D0%B2%D1%81%D1%91-%D1%80%D0%B0%D0%B2%D0%BD%D0%BE-%D0%B2%D0%B0%D0%BC-%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82-%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%BE%D1%87%D0%B5%D0%BD%D1%8C-%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8.-%D0%9D%D0%B8%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%BD%D0%B5-%D0%B7%D0%BD%D0%B0%D0%B5%D1%88%D1%8C,-%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%BC%D0%BE%D0%B3%D1%83%D1%82-%D0%BF%D1%80%D0%B8%D0%B3%D0%BE%D0%B4%D0%B8%D1%82%D1%8C%D1%81%D1%8F." class="outline-3">
 <h3 id="%D0%94%D0%B0%D0%B6%D0%B5-%D0%B5%D1%81%D0%BB%D0%B8-%D0%B2%D1%8B-%D0%BD%D0%B5-%D1%81%D0%BE%D0%B1%D0%B8%D0%B0%D0%B5%D1%82%D0%B5%D1%81%D1%8C-%D0%BF%D1%80%D0%B5%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%B3%D0%BE-%D1%82%D0%BE-%D0%B2-%D1%81%D1%83%D0%B4%D0%B5%D0%B1%D0%BD%D0%BE%D0%BC-%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BA%D0%B5,-%D0%B2%D1%81%D1%91-%D1%80%D0%B0%D0%B2%D0%BD%D0%BE-%D0%B2%D0%B0%D0%BC-%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82-%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%BE%D1%87%D0%B5%D0%BD%D1%8C-%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8.-%D0%9D%D0%B8%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%BD%D0%B5-%D0%B7%D0%BD%D0%B0%D0%B5%D1%88%D1%8C,-%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%BC%D0%BE%D0%B3%D1%83%D1%82-%D0%BF%D1%80%D0%B8%D0%B3%D0%BE%D0%B4%D0%B8%D1%82%D1%8C%D1%81%D1%8F."> <span class="section-number-3">3.18.</span>  <a href="#%D0%94%D0%B0%D0%B6%D0%B5-%D0%B5%D1%81%D0%BB%D0%B8-%D0%B2%D1%8B-%D0%BD%D0%B5-%D1%81%D0%BE%D0%B1%D0%B8%D0%B0%D0%B5%D1%82%D0%B5%D1%81%D1%8C-%D0%BF%D1%80%D0%B5%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%B3%D0%BE-%D1%82%D0%BE-%D0%B2-%D1%81%D1%83%D0%B4%D0%B5%D0%B1%D0%BD%D0%BE%D0%BC-%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BA%D0%B5,-%D0%B2%D1%81%D1%91-%D1%80%D0%B0%D0%B2%D0%BD%D0%BE-%D0%B2%D0%B0%D0%BC-%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82-%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%BE%D1%87%D0%B5%D0%BD%D1%8C-%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8.-%D0%9D%D0%B8%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%BD%D0%B5-%D0%B7%D0%BD%D0%B0%D0%B5%D1%88%D1%8C,-%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%BC%D0%BE%D0%B3%D1%83%D1%82-%D0%BF%D1%80%D0%B8%D0%B3%D0%BE%D0%B4%D0%B8%D1%82%D1%8C%D1%81%D1%8F.">Даже если вы не собиаетесь преследовать кого-то в судебном порядке, всё равно вам следует вести очень подробные записи. Никогда не знаешь, когда могут пригодиться.</a></h3>
 <div class="outline-text-3" id="text-%D0%94%D0%B0%D0%B6%D0%B5-%D0%B5%D1%81%D0%BB%D0%B8-%D0%B2%D1%8B-%D0%BD%D0%B5-%D1%81%D0%BE%D0%B1%D0%B8%D0%B0%D0%B5%D1%82%D0%B5%D1%81%D1%8C-%D0%BF%D1%80%D0%B5%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%B3%D0%BE-%D1%82%D0%BE-%D0%B2-%D1%81%D1%83%D0%B4%D0%B5%D0%B1%D0%BD%D0%BE%D0%BC-%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BA%D0%B5,-%D0%B2%D1%81%D1%91-%D1%80%D0%B0%D0%B2%D0%BD%D0%BE-%D0%B2%D0%B0%D0%BC-%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82-%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%BE%D1%87%D0%B5%D0%BD%D1%8C-%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8.-%D0%9D%D0%B8%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%BD%D0%B5-%D0%B7%D0%BD%D0%B0%D0%B5%D1%88%D1%8C,-%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%BC%D0%BE%D0%B3%D1%83%D1%82-%D0%BF%D1%80%D0%B8%D0%B3%D0%BE%D0%B4%D0%B8%D1%82%D1%8C%D1%81%D1%8F.">
</div>
</div>

 <div id="outline-container-%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0-%D1%81%D0%B5%D0%B1%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C,-%D0%B1%D1%83%D0%B4%D1%83%D1%87%D0%B8-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD%D0%BE%D0%B9,-%D1%82%D0%B0%D0%BA-%D0%B6%D0%B5-%D0%BA%D0%B0%D0%BA-%D0%B8-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D1%8B-%D0%BC%D0%BE%D0%B3%D1%83%D1%82-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BF%D1%80%D0%B8%D0%B2%D0%BB%D0%B5%D0%BA%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%D0%B4%D0%BB%D1%8F-%D1%82%D0%BE%D0%B3%D0%BE,-%D1%87%D1%82%D0%BE%D0%B1%D1%8B-%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C-%D0%BD%D0%B0-%D1%81%D0%B5%D0%B1%D1%8F." class="outline-3">
 <h3 id="%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0-%D1%81%D0%B5%D0%B1%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C,-%D0%B1%D1%83%D0%B4%D1%83%D1%87%D0%B8-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD%D0%BE%D0%B9,-%D1%82%D0%B0%D0%BA-%D0%B6%D0%B5-%D0%BA%D0%B0%D0%BA-%D0%B8-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D1%8B-%D0%BC%D0%BE%D0%B3%D1%83%D1%82-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BF%D1%80%D0%B8%D0%B2%D0%BB%D0%B5%D0%BA%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%D0%B4%D0%BB%D1%8F-%D1%82%D0%BE%D0%B3%D0%BE,-%D1%87%D1%82%D0%BE%D0%B1%D1%8B-%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C-%D0%BD%D0%B0-%D1%81%D0%B5%D0%B1%D1%8F."> <span class="section-number-3">3.19.</span>  <a href="#%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0-%D1%81%D0%B5%D0%B1%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C,-%D0%B1%D1%83%D0%B4%D1%83%D1%87%D0%B8-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD%D0%BE%D0%B9,-%D1%82%D0%B0%D0%BA-%D0%B6%D0%B5-%D0%BA%D0%B0%D0%BA-%D0%B8-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D1%8B-%D0%BC%D0%BE%D0%B3%D1%83%D1%82-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BF%D1%80%D0%B8%D0%B2%D0%BB%D0%B5%D0%BA%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%D0%B4%D0%BB%D1%8F-%D1%82%D0%BE%D0%B3%D0%BE,-%D1%87%D1%82%D0%BE%D0%B1%D1%8B-%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C-%D0%BD%D0%B0-%D1%81%D0%B5%D0%B1%D1%8F.">Женщин можно заставить на себя работать, будучи мужчиной, так же как и женщины могут пользоваться привлекательностью для того, чтобы заставить мужчин работать на себя.</a></h3>
 <div class="outline-text-3" id="text-%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0-%D1%81%D0%B5%D0%B1%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C,-%D0%B1%D1%83%D0%B4%D1%83%D1%87%D0%B8-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD%D0%BE%D0%B9,-%D1%82%D0%B0%D0%BA-%D0%B6%D0%B5-%D0%BA%D0%B0%D0%BA-%D0%B8-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D1%8B-%D0%BC%D0%BE%D0%B3%D1%83%D1%82-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BF%D1%80%D0%B8%D0%B2%D0%BB%D0%B5%D0%BA%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%D0%B4%D0%BB%D1%8F-%D1%82%D0%BE%D0%B3%D0%BE,-%D1%87%D1%82%D0%BE%D0%B1%D1%8B-%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C-%D0%BD%D0%B0-%D1%81%D0%B5%D0%B1%D1%8F.">
</div>
</div>

 <div id="outline-container-%D0%9E%D1%82%D1%8B%D1%89%D0%B8-%D0%B2-%D1%81%D0%B5%D0%B1%D0%B5-%D1%81%D0%B8%D0%BB%D1%83,-%D1%81%D1%80%D0%BE%D0%B4%D0%BD%D0%B8-%22%D0%BD%D0%B0%D0%B9%D0%B4%D0%B8-%D1%81%D0%B5%D0%B1%D0%B5-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%22,-%D0%B8%D0%BB%D0%B8-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%B5%D1%86-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B6%D0%B0%D0%BD%D0%B8%D1%8F,-%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D0%B2-%D0%BF%D1%80%D0%B8%D1%80%D0%BE%D0%B4%D0%B5." class="outline-3">
 <h3 id="%D0%9E%D1%82%D1%8B%D1%89%D0%B8-%D0%B2-%D1%81%D0%B5%D0%B1%D0%B5-%D1%81%D0%B8%D0%BB%D1%83,-%D1%81%D1%80%D0%BE%D0%B4%D0%BD%D0%B8-%22%D0%BD%D0%B0%D0%B9%D0%B4%D0%B8-%D1%81%D0%B5%D0%B1%D0%B5-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%22,-%D0%B8%D0%BB%D0%B8-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%B5%D1%86-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B6%D0%B0%D0%BD%D0%B8%D1%8F,-%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D0%B2-%D0%BF%D1%80%D0%B8%D1%80%D0%BE%D0%B4%D0%B5."> <span class="section-number-3">3.20.</span>  <a href="#%D0%9E%D1%82%D1%8B%D1%89%D0%B8-%D0%B2-%D1%81%D0%B5%D0%B1%D0%B5-%D1%81%D0%B8%D0%BB%D1%83,-%D1%81%D1%80%D0%BE%D0%B4%D0%BD%D0%B8-%22%D0%BD%D0%B0%D0%B9%D0%B4%D0%B8-%D1%81%D0%B5%D0%B1%D0%B5-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%22,-%D0%B8%D0%BB%D0%B8-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%B5%D1%86-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B6%D0%B0%D0%BD%D0%B8%D1%8F,-%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D0%B2-%D0%BF%D1%80%D0%B8%D1%80%D0%BE%D0%B4%D0%B5.">Отыщи в себе силу, сродни "найди себе образ", или образец для подражания, только в природе.</a></h3>
 <div class="outline-text-3" id="text-%D0%9E%D1%82%D1%8B%D1%89%D0%B8-%D0%B2-%D1%81%D0%B5%D0%B1%D0%B5-%D1%81%D0%B8%D0%BB%D1%83,-%D1%81%D1%80%D0%BE%D0%B4%D0%BD%D0%B8-%22%D0%BD%D0%B0%D0%B9%D0%B4%D0%B8-%D1%81%D0%B5%D0%B1%D0%B5-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%22,-%D0%B8%D0%BB%D0%B8-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%B5%D1%86-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B6%D0%B0%D0%BD%D0%B8%D1%8F,-%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D0%B2-%D0%BF%D1%80%D0%B8%D1%80%D0%BE%D0%B4%D0%B5.">
</div>
</div>

 <div id="outline-container-%D0%BD%D0%B8%D1%87%D1%82%D0%BE-%D0%BD%D0%B5-%D1%82%D1%80%D0%BE%D0%BD%D0%B5%D1%82%D1%81%D1%8F-%D1%81-%D0%BC%D0%B5%D1%81%D1%82%D0%B0-%D0%BF%D0%BE%D0%BA%D0%B0-%D0%BD%D0%B5%D1%82-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F.-%D1%82%D0%BE,-%D1%87%D1%82%D0%BE-%D0%BB%D1%8E%D0%B4%D0%B8-%D0%BD%D0%B5-%D0%B2%D0%B8%D0%B4%D1%8F%D1%82-%D1%81%D0%B5%D0%B1%D1%8F-%D0%B2-%D1%80%D0%BE%D0%BB%D0%B8-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F,-%D0%BF%D1%80%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82-%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5%D0%BE%D0%B1%D1%8A%D1%8F%D1%82%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D0%BB%D0%B5-%D1%81%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D1%85-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9." class="outline-3">
 <h3 id="%D0%BD%D0%B8%D1%87%D1%82%D0%BE-%D0%BD%D0%B5-%D1%82%D1%80%D0%BE%D0%BD%D0%B5%D1%82%D1%81%D1%8F-%D1%81-%D0%BC%D0%B5%D1%81%D1%82%D0%B0-%D0%BF%D0%BE%D0%BA%D0%B0-%D0%BD%D0%B5%D1%82-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F.-%D1%82%D0%BE,-%D1%87%D1%82%D0%BE-%D0%BB%D1%8E%D0%B4%D0%B8-%D0%BD%D0%B5-%D0%B2%D0%B8%D0%B4%D1%8F%D1%82-%D1%81%D0%B5%D0%B1%D1%8F-%D0%B2-%D1%80%D0%BE%D0%BB%D0%B8-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F,-%D0%BF%D1%80%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82-%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5%D0%BE%D0%B1%D1%8A%D1%8F%D1%82%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D0%BB%D0%B5-%D1%81%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D1%85-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9."> <span class="section-number-3">3.21.</span>  <a href="#%D0%BD%D0%B8%D1%87%D1%82%D0%BE-%D0%BD%D0%B5-%D1%82%D1%80%D0%BE%D0%BD%D0%B5%D1%82%D1%81%D1%8F-%D1%81-%D0%BC%D0%B5%D1%81%D1%82%D0%B0-%D0%BF%D0%BE%D0%BA%D0%B0-%D0%BD%D0%B5%D1%82-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F.-%D1%82%D0%BE,-%D1%87%D1%82%D0%BE-%D0%BB%D1%8E%D0%B4%D0%B8-%D0%BD%D0%B5-%D0%B2%D0%B8%D0%B4%D1%8F%D1%82-%D1%81%D0%B5%D0%B1%D1%8F-%D0%B2-%D1%80%D0%BE%D0%BB%D0%B8-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F,-%D0%BF%D1%80%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82-%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5%D0%BE%D0%B1%D1%8A%D1%8F%D1%82%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D0%BB%D0%B5-%D1%81%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D1%85-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9.">ничто не тронется с места пока нет руководителя. то, что люди не видят себя в роли руководителя, предоставляет вам необъятное поле скрытых возможностей.</a></h3>
 <div class="outline-text-3" id="text-%D0%BD%D0%B8%D1%87%D1%82%D0%BE-%D0%BD%D0%B5-%D1%82%D1%80%D0%BE%D0%BD%D0%B5%D1%82%D1%81%D1%8F-%D1%81-%D0%BC%D0%B5%D1%81%D1%82%D0%B0-%D0%BF%D0%BE%D0%BA%D0%B0-%D0%BD%D0%B5%D1%82-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F.-%D1%82%D0%BE,-%D1%87%D1%82%D0%BE-%D0%BB%D1%8E%D0%B4%D0%B8-%D0%BD%D0%B5-%D0%B2%D0%B8%D0%B4%D1%8F%D1%82-%D1%81%D0%B5%D0%B1%D1%8F-%D0%B2-%D1%80%D0%BE%D0%BB%D0%B8-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F,-%D0%BF%D1%80%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82-%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5%D0%BE%D0%B1%D1%8A%D1%8F%D1%82%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D0%BB%D0%B5-%D1%81%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D1%85-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9.">
</div>
</div>

 <div id="outline-container-%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%B0" class="outline-3">
 <h3 id="%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%B0"> <span class="section-number-3">3.22.</span>  <a href="#%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%B0">Компоненты руководства</a></h3>
 <div class="outline-text-3" id="text-%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%B0">
 <ul class="org-ul"> <li>мудрость</li>
 <li>доверие</li>
 <li>благожелательность</li>
 <li>мужество</li>
 <li>строгость</li>
</ul></div>
</div>

 <div id="outline-container-She-suggests-having-%22family%22-as-a-method-of-ruling-in-a-company." class="outline-3">
 <h3 id="She-suggests-having-%22family%22-as-a-method-of-ruling-in-a-company."> <span class="section-number-3">3.23.</span>  <a href="#She-suggests-having-%22family%22-as-a-method-of-ruling-in-a-company.">She suggests having "family" as a method of ruling in a company.</a></h3>
 <div class="outline-text-3" id="text-She-suggests-having-%22family%22-as-a-method-of-ruling-in-a-company.">
</div>
</div>

 <div id="outline-container-%D0%9F%D0%BE%D0%B7%D0%BD%D0%B0%D1%82%D1%8C-%D1%81%D0%B5%D0%B1%D1%8F...-%D1%85%D0%B5%D1%85%D0%B5." class="outline-3">
 <h3 id="%D0%9F%D0%BE%D0%B7%D0%BD%D0%B0%D1%82%D1%8C-%D1%81%D0%B5%D0%B1%D1%8F...-%D1%85%D0%B5%D1%85%D0%B5."> <span class="section-number-3">3.24.</span>  <a href="#%D0%9F%D0%BE%D0%B7%D0%BD%D0%B0%D1%82%D1%8C-%D1%81%D0%B5%D0%B1%D1%8F...-%D1%85%D0%B5%D1%85%D0%B5.">Познать себя… хехе.</a></h3>
 <div class="outline-text-3" id="text-%D0%9F%D0%BE%D0%B7%D0%BD%D0%B0%D1%82%D1%8C-%D1%81%D0%B5%D0%B1%D1%8F...-%D1%85%D0%B5%D1%85%D0%B5.">
 <p>
Ну, ладно, как минимум, читать книжки про себя самого не так плохо.
Вообще, надо внимательнее подумать на эту тему.
</p>
</div>
</div>

 <div id="outline-container-%22%D0%91%D1%83%D0%B4%D1%8C-%D1%81%D0%B0%D0%BC-%D1%81%D0%B5%D0%B1%D0%B5-%D0%BF%D1%81%D0%B8%D1%85%D0%BE%D1%82%D0%B5%D1%80%D0%B0%D0%BF%D0%B5%D0%B2%D1%82%D0%BE%D0%BC%22.-%D0%A5%D0%B5%D1%85%D0%B5.-%D0%92%D0%BE%D1%82-%D0%BF%D0%B5%D1%80%D0%B5%D0%B5%D0%B7%D0%B4-%D0%BF%D0%BE%D0%B3%D0%BB%D0%B0%D0%B4%D0%B8%D0%BB-%D0%BC%D0%B5%D0%BD%D1%8F-%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2-%D1%88%D0%B5%D1%80%D1%81%D1%82%D0%B8,-%D1%85%D0%BE%D1%82%D1%8F-%D0%BA%D0%B0%D0%B7%D0%B0%D0%BB%D0%BE%D1%81%D1%8C-%D0%B1%D1%8B,-%D0%BC%D0%B5%D0%BB%D0%BE%D1%87%D1%8C." class="outline-3">
 <h3 id="%22%D0%91%D1%83%D0%B4%D1%8C-%D1%81%D0%B0%D0%BC-%D1%81%D0%B5%D0%B1%D0%B5-%D0%BF%D1%81%D0%B8%D1%85%D0%BE%D1%82%D0%B5%D1%80%D0%B0%D0%BF%D0%B5%D0%B2%D1%82%D0%BE%D0%BC%22.-%D0%A5%D0%B5%D1%85%D0%B5.-%D0%92%D0%BE%D1%82-%D0%BF%D0%B5%D1%80%D0%B5%D0%B5%D0%B7%D0%B4-%D0%BF%D0%BE%D0%B3%D0%BB%D0%B0%D0%B4%D0%B8%D0%BB-%D0%BC%D0%B5%D0%BD%D1%8F-%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2-%D1%88%D0%B5%D1%80%D1%81%D1%82%D0%B8,-%D1%85%D0%BE%D1%82%D1%8F-%D0%BA%D0%B0%D0%B7%D0%B0%D0%BB%D0%BE%D1%81%D1%8C-%D0%B1%D1%8B,-%D0%BC%D0%B5%D0%BB%D0%BE%D1%87%D1%8C."> <span class="section-number-3">3.25.</span>  <a href="#%22%D0%91%D1%83%D0%B4%D1%8C-%D1%81%D0%B0%D0%BC-%D1%81%D0%B5%D0%B1%D0%B5-%D0%BF%D1%81%D0%B8%D1%85%D0%BE%D1%82%D0%B5%D1%80%D0%B0%D0%BF%D0%B5%D0%B2%D1%82%D0%BE%D0%BC%22.-%D0%A5%D0%B5%D1%85%D0%B5.-%D0%92%D0%BE%D1%82-%D0%BF%D0%B5%D1%80%D0%B5%D0%B5%D0%B7%D0%B4-%D0%BF%D0%BE%D0%B3%D0%BB%D0%B0%D0%B4%D0%B8%D0%BB-%D0%BC%D0%B5%D0%BD%D1%8F-%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2-%D1%88%D0%B5%D1%80%D1%81%D1%82%D0%B8,-%D1%85%D0%BE%D1%82%D1%8F-%D0%BA%D0%B0%D0%B7%D0%B0%D0%BB%D0%BE%D1%81%D1%8C-%D0%B1%D1%8B,-%D0%BC%D0%B5%D0%BB%D0%BE%D1%87%D1%8C.">"Будь сам себе психотерапевтом". Хехе. Вот переезд погладил меня против шерсти, хотя казалось бы, мелочь.</a></h3>
 <div class="outline-text-3" id="text-%22%D0%91%D1%83%D0%B4%D1%8C-%D1%81%D0%B0%D0%BC-%D1%81%D0%B5%D0%B1%D0%B5-%D0%BF%D1%81%D0%B8%D1%85%D0%BE%D1%82%D0%B5%D1%80%D0%B0%D0%BF%D0%B5%D0%B2%D1%82%D0%BE%D0%BC%22.-%D0%A5%D0%B5%D1%85%D0%B5.-%D0%92%D0%BE%D1%82-%D0%BF%D0%B5%D1%80%D0%B5%D0%B5%D0%B7%D0%B4-%D0%BF%D0%BE%D0%B3%D0%BB%D0%B0%D0%B4%D0%B8%D0%BB-%D0%BC%D0%B5%D0%BD%D1%8F-%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2-%D1%88%D0%B5%D1%80%D1%81%D1%82%D0%B8,-%D1%85%D0%BE%D1%82%D1%8F-%D0%BA%D0%B0%D0%B7%D0%B0%D0%BB%D0%BE%D1%81%D1%8C-%D0%B1%D1%8B,-%D0%BC%D0%B5%D0%BB%D0%BE%D1%87%D1%8C.">
</div>
</div>

 <div id="outline-container-Make-%22stop-signals%22-for-yourself.-Stop-yourself-before-making-sharp-remarks.-Think." class="outline-3">
 <h3 id="Make-%22stop-signals%22-for-yourself.-Stop-yourself-before-making-sharp-remarks.-Think."> <span class="section-number-3">3.26.</span>  <a href="#Make-%22stop-signals%22-for-yourself.-Stop-yourself-before-making-sharp-remarks.-Think.">Make "stop signals" for yourself. Stop yourself before making sharp remarks. Think.</a></h3>
 <div class="outline-text-3" id="text-Make-%22stop-signals%22-for-yourself.-Stop-yourself-before-making-sharp-remarks.-Think.">
</div>
</div>

 <div id="outline-container-%D0%9A%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C-%D0%B1%D0%BB%D0%B8%D0%B6%D0%BD%D0%B5%D0%B3%D0%BE-%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0." class="outline-3">
 <h3 id="%D0%9A%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C-%D0%B1%D0%BB%D0%B8%D0%B6%D0%BD%D0%B5%D0%B3%D0%BE-%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0."> <span class="section-number-3">3.27.</span>  <a href="#%D0%9A%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C-%D0%B1%D0%BB%D0%B8%D0%B6%D0%BD%D0%B5%D0%B3%D0%BE-%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0.">Как понять ближнего человека.</a></h3>
 <div class="outline-text-3" id="text-%D0%9A%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%8C-%D0%B1%D0%BB%D0%B8%D0%B6%D0%BD%D0%B5%D0%B3%D0%BE-%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0.">
 <ul class="org-ul"> <li>Спорить с ней.</li>
 <li>Оспаривать решения.</li>
 <li>Расспрашивать о квалификации.</li>
 <li>Обсуждать планы на будущее.</li>
 <li>Напоить? В моём случае скорее "вскружить голову непривычным опытом".</li>
 <li>Доверить денег "для проверки".</li>
 <li>Поручить работу.</li>
 <li>С кем она дружит. (Особенно в тяжёлые времена.)</li>
 <li>Кто пользуется её помощью в "хорошие времена".</li>
 <li>Кого она сама нанимает?</li>
 <li>Поступает ли неэтично?</li>
 <li>Берёт ли взятки?</li>
 <li>Как ведёт себя, когда соблазняют.</li>
</ul></div>
</div>

 <div id="outline-container-%D0%92-%D0%B4%D0%B5%D0%BB%D0%B0%D1%85-%D0%B8-%D0%B2-%D0%BB%D0%B8%D1%87%D0%BD%D0%BE%D0%B9-%D0%B6%D0%B8%D0%B7%D0%BD%D0%B8-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B5-%D0%B4%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-%D0%B4%D0%BE-%D1%83%D0%BC%D0%B0-%D1%82%D0%B5-%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%8B,-%D1%87%D1%82%D0%BE-%D0%B2%D1%8B-%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%D0%B5-%D0%B7%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C,-%D0%B8-%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BE%D1%82-%D1%82%D0%B5%D1%85,-%D1%87%D1%82%D0%BE-%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%B4-%D1%81%D0%B8%D0%BB%D1%83.-%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D0%B5-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D1%83,-%D0%B8%D0%BB%D0%B8-%D0%B7%D0%B0%D0%B1%D1%83%D0%B4%D1%8C%D1%82%D0%B5-%D0%BE-%D0%BD%D0%B5%D0%B9." class="outline-3">
 <h3 id="%D0%92-%D0%B4%D0%B5%D0%BB%D0%B0%D1%85-%D0%B8-%D0%B2-%D0%BB%D0%B8%D1%87%D0%BD%D0%BE%D0%B9-%D0%B6%D0%B8%D0%B7%D0%BD%D0%B8-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B5-%D0%B4%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-%D0%B4%D0%BE-%D1%83%D0%BC%D0%B0-%D1%82%D0%B5-%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%8B,-%D1%87%D1%82%D0%BE-%D0%B2%D1%8B-%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%D0%B5-%D0%B7%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C,-%D0%B8-%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BE%D1%82-%D1%82%D0%B5%D1%85,-%D1%87%D1%82%D0%BE-%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%B4-%D1%81%D0%B8%D0%BB%D1%83.-%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D0%B5-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D1%83,-%D0%B8%D0%BB%D0%B8-%D0%B7%D0%B0%D0%B1%D1%83%D0%B4%D1%8C%D1%82%D0%B5-%D0%BE-%D0%BD%D0%B5%D0%B9."> <span class="section-number-3">3.28.</span>  <a href="#%D0%92-%D0%B4%D0%B5%D0%BB%D0%B0%D1%85-%D0%B8-%D0%B2-%D0%BB%D0%B8%D1%87%D0%BD%D0%BE%D0%B9-%D0%B6%D0%B8%D0%B7%D0%BD%D0%B8-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B5-%D0%B4%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-%D0%B4%D0%BE-%D1%83%D0%BC%D0%B0-%D1%82%D0%B5-%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%8B,-%D1%87%D1%82%D0%BE-%D0%B2%D1%8B-%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%D0%B5-%D0%B7%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C,-%D0%B8-%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BE%D1%82-%D1%82%D0%B5%D1%85,-%D1%87%D1%82%D0%BE-%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%B4-%D1%81%D0%B8%D0%BB%D1%83.-%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D0%B5-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D1%83,-%D0%B8%D0%BB%D0%B8-%D0%B7%D0%B0%D0%B1%D1%83%D0%B4%D1%8C%D1%82%D0%B5-%D0%BE-%D0%BD%D0%B5%D0%B9.">В делах и в личной жизни главное доводить до ума те договоры, что вы можете заключить, и отказываться от тех, что вам не под силу. Заключите сделку, или забудьте о ней.</a></h3>
 <div class="outline-text-3" id="text-%D0%92-%D0%B4%D0%B5%D0%BB%D0%B0%D1%85-%D0%B8-%D0%B2-%D0%BB%D0%B8%D1%87%D0%BD%D0%BE%D0%B9-%D0%B6%D0%B8%D0%B7%D0%BD%D0%B8-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B5-%D0%B4%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-%D0%B4%D0%BE-%D1%83%D0%BC%D0%B0-%D1%82%D0%B5-%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%8B,-%D1%87%D1%82%D0%BE-%D0%B2%D1%8B-%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%D0%B5-%D0%B7%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C,-%D0%B8-%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BE%D1%82-%D1%82%D0%B5%D1%85,-%D1%87%D1%82%D0%BE-%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%B4-%D1%81%D0%B8%D0%BB%D1%83.-%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D0%B5-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D1%83,-%D0%B8%D0%BB%D0%B8-%D0%B7%D0%B0%D0%B1%D1%83%D0%B4%D1%8C%D1%82%D0%B5-%D0%BE-%D0%BD%D0%B5%D0%B9.">
</div>
</div>

 <div id="outline-container-%D0%A7%D0%B5%D1%81%D1%82%D0%BD%D0%BE-%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%8F,-%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F,-%D1%87%D1%82%D0%BE-%D0%B3%D0%BB%D0%B0%D0%B2%D1%8B-1-%D0%B8-2-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D0%BB%D0%B5%D0%B2%D0%BE%D0%B9-%D0%BF%D1%8F%D1%82%D0%BA%D0%BE%D0%B9,-3-%D0%BD%D0%B8-%D1%82%D0%BE-%D0%BD%D0%B8-%D1%81%D1%91,-%D0%B0-4-%D0%B8-5-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D1%81%D0%BE-%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-%D0%B4%D0%B5%D0%BB%D0%B0-%D0%B8-%D1%81-%D1%83%D0%B4%D0%BE%D0%B2%D0%BE%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%B8%D0%B5%D0%BC.-%D0%9C%D0%BD%D1%8D." class="outline-3">
 <h3 id="%D0%A7%D0%B5%D1%81%D1%82%D0%BD%D0%BE-%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%8F,-%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F,-%D1%87%D1%82%D0%BE-%D0%B3%D0%BB%D0%B0%D0%B2%D1%8B-1-%D0%B8-2-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D0%BB%D0%B5%D0%B2%D0%BE%D0%B9-%D0%BF%D1%8F%D1%82%D0%BA%D0%BE%D0%B9,-3-%D0%BD%D0%B8-%D1%82%D0%BE-%D0%BD%D0%B8-%D1%81%D1%91,-%D0%B0-4-%D0%B8-5-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D1%81%D0%BE-%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-%D0%B4%D0%B5%D0%BB%D0%B0-%D0%B8-%D1%81-%D1%83%D0%B4%D0%BE%D0%B2%D0%BE%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%B8%D0%B5%D0%BC.-%D0%9C%D0%BD%D1%8D."> <span class="section-number-3">3.29.</span>  <a href="#%D0%A7%D0%B5%D1%81%D1%82%D0%BD%D0%BE-%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%8F,-%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F,-%D1%87%D1%82%D0%BE-%D0%B3%D0%BB%D0%B0%D0%B2%D1%8B-1-%D0%B8-2-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D0%BB%D0%B5%D0%B2%D0%BE%D0%B9-%D0%BF%D1%8F%D1%82%D0%BA%D0%BE%D0%B9,-3-%D0%BD%D0%B8-%D1%82%D0%BE-%D0%BD%D0%B8-%D1%81%D1%91,-%D0%B0-4-%D0%B8-5-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D1%81%D0%BE-%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-%D0%B4%D0%B5%D0%BB%D0%B0-%D0%B8-%D1%81-%D1%83%D0%B4%D0%BE%D0%B2%D0%BE%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%B8%D0%B5%D0%BC.-%D0%9C%D0%BD%D1%8D.">Честно говоря, кажется, что главы 1 и 2 написаны левой пяткой, 3 ни то ни сё, а 4 и 5 написаны со знанием дела и с удовольствием. Мнэ.</a></h3>
 <div class="outline-text-3" id="text-%D0%A7%D0%B5%D1%81%D1%82%D0%BD%D0%BE-%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%8F,-%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F,-%D1%87%D1%82%D0%BE-%D0%B3%D0%BB%D0%B0%D0%B2%D1%8B-1-%D0%B8-2-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D0%BB%D0%B5%D0%B2%D0%BE%D0%B9-%D0%BF%D1%8F%D1%82%D0%BA%D0%BE%D0%B9,-3-%D0%BD%D0%B8-%D1%82%D0%BE-%D0%BD%D0%B8-%D1%81%D1%91,-%D0%B0-4-%D0%B8-5-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D1%8B-%D1%81%D0%BE-%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-%D0%B4%D0%B5%D0%BB%D0%B0-%D0%B8-%D1%81-%D1%83%D0%B4%D0%BE%D0%B2%D0%BE%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%B8%D0%B5%D0%BC.-%D0%9C%D0%BD%D1%8D.">
</div>
</div>

 <div id="outline-container-%D0%9D%D0%B0%D0%B4%D0%BE-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C,-%D0%BD%D0%B0-%D0%BA%D0%B0%D0%BA%D0%BE%D0%BC-%D1%82%D0%B8%D0%BF%D0%B5-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BD%D0%B0%D1%85%D0%BE%D0%B4%D0%B8%D1%88%D1%8C%D1%81%D1%8F,-%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D1%80%D1%8F%D0%B4%D0%BE%D0%BC,-%D0%BA%D0%B0%D0%BA-%D0%BC%D0%B0%D0%BD%D0%B5%D0%B2%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C,-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%B8%D0%B7%D0%B2%D0%BB%D0%B5%D1%87%D1%8C-%D0%B8%D0%B7-%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B5%D0%B3%D0%BE-%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC." class="outline-3">
 <h3 id="%D0%9D%D0%B0%D0%B4%D0%BE-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C,-%D0%BD%D0%B0-%D0%BA%D0%B0%D0%BA%D0%BE%D0%BC-%D1%82%D0%B8%D0%BF%D0%B5-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BD%D0%B0%D1%85%D0%BE%D0%B4%D0%B8%D1%88%D1%8C%D1%81%D1%8F,-%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D1%80%D1%8F%D0%B4%D0%BE%D0%BC,-%D0%BA%D0%B0%D0%BA-%D0%BC%D0%B0%D0%BD%D0%B5%D0%B2%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C,-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%B8%D0%B7%D0%B2%D0%BB%D0%B5%D1%87%D1%8C-%D0%B8%D0%B7-%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B5%D0%B3%D0%BE-%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC."> <span class="section-number-3">3.30.</span>  <a href="#%D0%9D%D0%B0%D0%B4%D0%BE-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C,-%D0%BD%D0%B0-%D0%BA%D0%B0%D0%BA%D0%BE%D0%BC-%D1%82%D0%B8%D0%BF%D0%B5-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BD%D0%B0%D1%85%D0%BE%D0%B4%D0%B8%D1%88%D1%8C%D1%81%D1%8F,-%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D1%80%D1%8F%D0%B4%D0%BE%D0%BC,-%D0%BA%D0%B0%D0%BA-%D0%BC%D0%B0%D0%BD%D0%B5%D0%B2%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C,-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%B8%D0%B7%D0%B2%D0%BB%D0%B5%D1%87%D1%8C-%D0%B8%D0%B7-%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B5%D0%B3%D0%BE-%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC.">Надо определить, на каком типе местности находишься, какие местности рядом, как маневрировать, и как извлечь из текущего положения максимум.</a></h3>
 <div class="outline-text-3" id="text-%D0%9D%D0%B0%D0%B4%D0%BE-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C,-%D0%BD%D0%B0-%D0%BA%D0%B0%D0%BA%D0%BE%D0%BC-%D1%82%D0%B8%D0%BF%D0%B5-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BD%D0%B0%D1%85%D0%BE%D0%B4%D0%B8%D1%88%D1%8C%D1%81%D1%8F,-%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D1%80%D1%8F%D0%B4%D0%BE%D0%BC,-%D0%BA%D0%B0%D0%BA-%D0%BC%D0%B0%D0%BD%D0%B5%D0%B2%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C,-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%B8%D0%B7%D0%B2%D0%BB%D0%B5%D1%87%D1%8C-%D0%B8%D0%B7-%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B5%D0%B3%D0%BE-%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC.">
</div>
</div>

 <div id="outline-container-%D0%9C%D0%B5%D0%BD%D1%8F-%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0-%D0%BF%D0%BE%D1%80%D0%B0%D0%B6%D0%B0%D0%BB%D0%BE-%D0%BE%D0%B4%D0%BD%D0%BE:-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D1%8B-%D1%81%D1%82%D0%BE%D0%BB%D1%8C-%D0%B7%D0%B0%D0%B1%D0%BE%D1%82%D0%BB%D0%B8%D0%B2%D1%8B-%D0%B4%D1%80%D1%83%D0%B3-%D0%BA-%D0%B4%D1%80%D1%83%D0%B3%D1%83-%D0%B2-%D0%B8%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D1%85,-%D0%BD%D0%B8%D1%87%D0%B5%D0%BC-%D0%B8%D0%BC-%D0%BD%D0%B5-%D1%83%D0%B3%D1%80%D0%BE%D0%B6%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F%D1%85,-%D0%B2%D1%80%D0%BE%D0%B4%D0%B5-%D1%81%D1%8A%D0%B5%D0%B7%D0%B4%D0%B0-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD-%D0%B8%D0%BB%D0%B8-%D0%B3%D0%BE%D0%BD%D0%BE%D1%87%D0%BD%D0%BE%D0%B9-%D1%80%D0%B5%D0%B3%D0%B0%D1%82%D1%8B-%D0%BD%D0%B0-%D0%BF%D0%B5%D1%80%D0%B2%D0%B5%D0%BD%D1%81%D1%82%D0%B2%D0%BE-%D0%9A%D1%83%D0%B1%D0%BA%D0%B0-%D0%BC%D0%B8%D1%80%D0%B0,-%D0%BD%D0%BE-%D1%81%D0%BA%D0%BB%D0%BE%D0%BD%D0%BD%D1%8B-%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BE%D0%BF-%D0%B4%D1%80%D1%83%D0%B3-%D0%BF%D0%BE%D0%B4-%D0%B4%D1%80%D1%83%D0%B3%D0%B0-%D0%BD%D0%B0-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B5." class="outline-3">
 <h3 id="%D0%9C%D0%B5%D0%BD%D1%8F-%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0-%D0%BF%D0%BE%D1%80%D0%B0%D0%B6%D0%B0%D0%BB%D0%BE-%D0%BE%D0%B4%D0%BD%D0%BE:-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D1%8B-%D1%81%D1%82%D0%BE%D0%BB%D1%8C-%D0%B7%D0%B0%D0%B1%D0%BE%D1%82%D0%BB%D0%B8%D0%B2%D1%8B-%D0%B4%D1%80%D1%83%D0%B3-%D0%BA-%D0%B4%D1%80%D1%83%D0%B3%D1%83-%D0%B2-%D0%B8%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D1%85,-%D0%BD%D0%B8%D1%87%D0%B5%D0%BC-%D0%B8%D0%BC-%D0%BD%D0%B5-%D1%83%D0%B3%D1%80%D0%BE%D0%B6%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F%D1%85,-%D0%B2%D1%80%D0%BE%D0%B4%D0%B5-%D1%81%D1%8A%D0%B5%D0%B7%D0%B4%D0%B0-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD-%D0%B8%D0%BB%D0%B8-%D0%B3%D0%BE%D0%BD%D0%BE%D1%87%D0%BD%D0%BE%D0%B9-%D1%80%D0%B5%D0%B3%D0%B0%D1%82%D1%8B-%D0%BD%D0%B0-%D0%BF%D0%B5%D1%80%D0%B2%D0%B5%D0%BD%D1%81%D1%82%D0%B2%D0%BE-%D0%9A%D1%83%D0%B1%D0%BA%D0%B0-%D0%BC%D0%B8%D1%80%D0%B0,-%D0%BD%D0%BE-%D1%81%D0%BA%D0%BB%D0%BE%D0%BD%D0%BD%D1%8B-%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BE%D0%BF-%D0%B4%D1%80%D1%83%D0%B3-%D0%BF%D0%BE%D0%B4-%D0%B4%D1%80%D1%83%D0%B3%D0%B0-%D0%BD%D0%B0-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B5."> <span class="section-number-3">3.31.</span>  <a href="#%D0%9C%D0%B5%D0%BD%D1%8F-%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0-%D0%BF%D0%BE%D1%80%D0%B0%D0%B6%D0%B0%D0%BB%D0%BE-%D0%BE%D0%B4%D0%BD%D0%BE:-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D1%8B-%D1%81%D1%82%D0%BE%D0%BB%D1%8C-%D0%B7%D0%B0%D0%B1%D0%BE%D1%82%D0%BB%D0%B8%D0%B2%D1%8B-%D0%B4%D1%80%D1%83%D0%B3-%D0%BA-%D0%B4%D1%80%D1%83%D0%B3%D1%83-%D0%B2-%D0%B8%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D1%85,-%D0%BD%D0%B8%D1%87%D0%B5%D0%BC-%D0%B8%D0%BC-%D0%BD%D0%B5-%D1%83%D0%B3%D1%80%D0%BE%D0%B6%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F%D1%85,-%D0%B2%D1%80%D0%BE%D0%B4%D0%B5-%D1%81%D1%8A%D0%B5%D0%B7%D0%B4%D0%B0-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD-%D0%B8%D0%BB%D0%B8-%D0%B3%D0%BE%D0%BD%D0%BE%D1%87%D0%BD%D0%BE%D0%B9-%D1%80%D0%B5%D0%B3%D0%B0%D1%82%D1%8B-%D0%BD%D0%B0-%D0%BF%D0%B5%D1%80%D0%B2%D0%B5%D0%BD%D1%81%D1%82%D0%B2%D0%BE-%D0%9A%D1%83%D0%B1%D0%BA%D0%B0-%D0%BC%D0%B8%D1%80%D0%B0,-%D0%BD%D0%BE-%D1%81%D0%BA%D0%BB%D0%BE%D0%BD%D0%BD%D1%8B-%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BE%D0%BF-%D0%B4%D1%80%D1%83%D0%B3-%D0%BF%D0%BE%D0%B4-%D0%B4%D1%80%D1%83%D0%B3%D0%B0-%D0%BD%D0%B0-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B5.">Меня всегда поражало одно: женщины столь заботливы друг к другу в искусственных, ничем им не угрожающих условиях, вроде съезда женщин или гоночной регаты на первенство Кубка мира, но склонны вести подкоп друг под друга на работе.</a></h3>
 <div class="outline-text-3" id="text-%D0%9C%D0%B5%D0%BD%D1%8F-%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0-%D0%BF%D0%BE%D1%80%D0%B0%D0%B6%D0%B0%D0%BB%D0%BE-%D0%BE%D0%B4%D0%BD%D0%BE:-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D1%8B-%D1%81%D1%82%D0%BE%D0%BB%D1%8C-%D0%B7%D0%B0%D0%B1%D0%BE%D1%82%D0%BB%D0%B8%D0%B2%D1%8B-%D0%B4%D1%80%D1%83%D0%B3-%D0%BA-%D0%B4%D1%80%D1%83%D0%B3%D1%83-%D0%B2-%D0%B8%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D1%85,-%D0%BD%D0%B8%D1%87%D0%B5%D0%BC-%D0%B8%D0%BC-%D0%BD%D0%B5-%D1%83%D0%B3%D1%80%D0%BE%D0%B6%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F%D1%85,-%D0%B2%D1%80%D0%BE%D0%B4%D0%B5-%D1%81%D1%8A%D0%B5%D0%B7%D0%B4%D0%B0-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD-%D0%B8%D0%BB%D0%B8-%D0%B3%D0%BE%D0%BD%D0%BE%D1%87%D0%BD%D0%BE%D0%B9-%D1%80%D0%B5%D0%B3%D0%B0%D1%82%D1%8B-%D0%BD%D0%B0-%D0%BF%D0%B5%D1%80%D0%B2%D0%B5%D0%BD%D1%81%D1%82%D0%B2%D0%BE-%D0%9A%D1%83%D0%B1%D0%BA%D0%B0-%D0%BC%D0%B8%D1%80%D0%B0,-%D0%BD%D0%BE-%D1%81%D0%BA%D0%BB%D0%BE%D0%BD%D0%BD%D1%8B-%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BE%D0%BF-%D0%B4%D1%80%D1%83%D0%B3-%D0%BF%D0%BE%D0%B4-%D0%B4%D1%80%D1%83%D0%B3%D0%B0-%D0%BD%D0%B0-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B5.">
 <p>
Женщинам сложно, но, видимо, можно научиться не ревновать друг друга.
Пожалуй, это одна из самых умных мыслей книги. 
Мужчины ревнуют, чтобы отнять или защитить.
Женщины ревнуют, чтобы не допустить товарку вверх.
Русские в этом смысле ревнуют намного более по-женски, нежели по-мужски, в среднем.
</p>

 <p>
В частности, из-за этого у женщин лучше командная игра в "несущественных" вещах, когда они чувствуют свободу от потребности "одёргивать" друг друга.
Надо строить стены. 
Придумывать контекст, в котором было бы ясно, что вы "не в одной банке".
</p>
</div>
</div>

 <div id="outline-container-%D0%92%D0%B5%D1%89%D0%B8,-%D0%B7%D0%B0-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%BC%D0%B8-%D0%BD%D0%B0%D0%B4%D0%BE-%D1%81%D0%BB%D0%B5%D0%B4%D0%B8%D1%82%D1%8C:" class="outline-3">
 <h3 id="%D0%92%D0%B5%D1%89%D0%B8,-%D0%B7%D0%B0-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%BC%D0%B8-%D0%BD%D0%B0%D0%B4%D0%BE-%D1%81%D0%BB%D0%B5%D0%B4%D0%B8%D1%82%D1%8C:"> <span class="section-number-3">3.32.</span>  <a href="#%D0%92%D0%B5%D1%89%D0%B8,-%D0%B7%D0%B0-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%BC%D0%B8-%D0%BD%D0%B0%D0%B4%D0%BE-%D1%81%D0%BB%D0%B5%D0%B4%D0%B8%D1%82%D1%8C:">Вещи, за которыми надо следить:</a></h3>
 <div class="outline-text-3" id="text-%D0%92%D0%B5%D1%89%D0%B8,-%D0%B7%D0%B0-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%BC%D0%B8-%D0%BD%D0%B0%D0%B4%D0%BE-%D1%81%D0%BB%D0%B5%D0%B4%D0%B8%D1%82%D1%8C:">
 <ul class="org-ul"> <li>Собственные возможности</li>
 <li>Квалификация менеджеров</li>
 <li>Квалификация персонала</li>
 <li>Атмосфера согласия и  <span class="underline">коллективной</span> ответственности</li>
 <li>Дисциплина</li>
 <li>Квалификация себя</li>
</ul></div>
</div>

 <div id="outline-container-%D0%9A%D0%B0%D0%BA-%D0%B4%D0%BE%D1%81%D1%82%D0%B8%D1%87%D1%8C-%D1%80%D0%B0%D0%B2%D0%BD%D1%8B%D1%85-%D0%BF%D1%80%D0%B0%D0%B2-%D0%B1%D0%B5%D0%B7-%D1%84%D0%B5%D0%BC%D0%B8%D0%BD%D0%B8%D0%B7%D0%BC%D0%B0" class="outline-3">
 <h3 id="%D0%9A%D0%B0%D0%BA-%D0%B4%D0%BE%D1%81%D1%82%D0%B8%D1%87%D1%8C-%D1%80%D0%B0%D0%B2%D0%BD%D1%8B%D1%85-%D0%BF%D1%80%D0%B0%D0%B2-%D0%B1%D0%B5%D0%B7-%D1%84%D0%B5%D0%BC%D0%B8%D0%BD%D0%B8%D0%B7%D0%BC%D0%B0"> <span class="section-number-3">3.33.</span>  <a href="#%D0%9A%D0%B0%D0%BA-%D0%B4%D0%BE%D1%81%D1%82%D0%B8%D1%87%D1%8C-%D1%80%D0%B0%D0%B2%D0%BD%D1%8B%D1%85-%D0%BF%D1%80%D0%B0%D0%B2-%D0%B1%D0%B5%D0%B7-%D1%84%D0%B5%D0%BC%D0%B8%D0%BD%D0%B8%D0%B7%D0%BC%D0%B0">Как достичь равных прав без феминизма</a></h3>
 <div class="outline-text-3" id="text-%D0%9A%D0%B0%D0%BA-%D0%B4%D0%BE%D1%81%D1%82%D0%B8%D1%87%D1%8C-%D1%80%D0%B0%D0%B2%D0%BD%D1%8B%D1%85-%D0%BF%D1%80%D0%B0%D0%B2-%D0%B1%D0%B5%D0%B7-%D1%84%D0%B5%D0%BC%D0%B8%D0%BD%D0%B8%D0%B7%D0%BC%D0%B0">
 <ul class="org-ul"> <li>Не протестовать (видимо, если не делаешь карьеру в профсоюзе)</li>
 <li>Не проявлять негатива</li>
 <li>Не чувствовать себя жертвой</li>
 <li>Цель борьбы – победа, а не борьба</li>
 <li>Капитализировать результаты</li>

 <li>Расти в статусе</li>
 <li>Пользоваться сильной позицией</li>
</ul></div>
</div>

 <div id="outline-container-%D0%A2%D0%B8%D0%BF%D1%8B-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8:" class="outline-3">
 <h3 id="%D0%A2%D0%B8%D0%BF%D1%8B-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8:"> <span class="section-number-3">3.34.</span>  <a href="#%D0%A2%D0%B8%D0%BF%D1%8B-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8:">Типы местности:</a></h3>
 <div class="outline-text-3" id="text-%D0%A2%D0%B8%D0%BF%D1%8B-%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8:">
 <ul class="org-ul"> <li>Дружественная земля</li>
 <li>Крутая дорога</li>
 <li>Пересечённая местность</li>
 <li>Узкий проход</li>
 <li>Вершина холма</li>
 <li>Далёкая земля</li>
</ul></div>
</div>
</section> <section id="outline-container-Thoughts" class="outline-2"> <h2 id="Thoughts"> <span class="section-number-2">4.</span>  <a href="#Thoughts">Thoughts</a></h2>
 <div class="outline-text-2" id="text-Thoughts">
</div>

 <div id="outline-container-%D0%9E%D0%B1%D1%80%D0%B0%D0%B7-%D0%BC%D1%8B%D1%88%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F" class="outline-3">
 <h3 id="%D0%9E%D0%B1%D1%80%D0%B0%D0%B7-%D0%BC%D1%8B%D1%88%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F"> <span class="section-number-3">4.1.</span>  <a href="#%D0%9E%D0%B1%D1%80%D0%B0%D0%B7-%D0%BC%D1%8B%D1%88%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F">Образ мышления</a></h3>
 <div class="outline-text-3" id="text-%D0%9E%D0%B1%D1%80%D0%B0%D0%B7-%D0%BC%D1%8B%D1%88%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F">
 <ul class="org-ul"> <li>Талант, мораль</li>
 <li>Момент</li>
 <li>Условия</li>
 <li>План</li>
 <li>Исполнение</li>
</ul></div>
</div>

 <div id="outline-container-%D0%9C%D1%8B%D1%81%D0%BB%D0%B8" class="outline-3">
 <h3 id="%D0%9C%D1%8B%D1%81%D0%BB%D0%B8"> <span class="section-number-3">4.2.</span>  <a href="#%D0%9C%D1%8B%D1%81%D0%BB%D0%B8">Мысли</a></h3>
 <div class="outline-text-3" id="text-%D0%9C%D1%8B%D1%81%D0%BB%D0%B8">
 <p>
Книжка на три с плюсом.
Та часть, которая "про женщин" – откровенно слабая.
Когда она пишет о "историческом заговоре против женщин", это выглядит дико.
(Хотя, вероятно, какие-то из этих аргументов могут помочь в дискуссии с шовинистами.)
Когда она пишет про те черты, которые, якобы "более свойственны женщинам", это выглядит жалко и ни на чём не основанно.
Метафора хрустальной туфельки и армейских ботинок не раскрыта совершенно.
Глава про время – очень мутная, и видно, что автор её не очень понимает.
Ну, то есть, идея о том, что не надо жалеть лишнего, если ты "на своём месте" или "это не твоё", здравая, но тоже раскрыта очень плохо.
Типа, "не носите одежду не по статусу" соседствует с "одевайтесь так, чтобы о вас думали то, что вы хотите чтобы о вас думали".
</p>

 <p>
С другой стороны, главы про менеджмент и офисную работу написаны со знанием дела и довольно зубасты.
Советы осмысленны.
Вот только крайне мало в них специфично женского.
Ну, то есть, призыв аллегорически относиться к предприятию как к семье, а ля "будь мамой" – так мужчинам то же самое можно посоветовать.
Энивей, советы по работе с людьми содержательны, ради них стоит книжку пересматривать время от времени.
</p>

 <p>
Тут поневоле подумаешь, что нет вообще никаких таких черт у женщин, в которых бы они отличались от мужчин, настолько слабо написаны главы, нацеленные на применение женских черт.
Хотя я, честно говоря, думаю, что это скорее госпожа Чжу просто на самом деле не умеет их применять.
</p>

 <p>
Почему, собственно, типы местности даны в главе Фа, а не Ди?
Кажется, что и Сунь Цзы она понимает как-то не очень.
</p>

 <p>
Пожалуй, самый содержательный совет, который даётся в книжке – это совет очень внимательно смотреть, чтобы женщины в коллективе не топили друг друга.
Ради этого даже предлагается строить между ними некоторые стенки.
(Видимо, кроме напарников.)
Это интересно, что для мужчин победить самому важнее, чем завалить соперника.
А женщины считают более важным не допустить конкурента, нежели победить самой.
</p>

 <p>
Хотя в сексуальном плане это не бессмысленно. 
Если мужчине дала тёлочка, это же очень приятно, а то, что у неё может быть муж – это досадное неудобство, но не более того.
А для женщины наличие беременной "второй жены" – это дорого. 
Это отнимает много ресурсов, которые могли бы идти на себя.
</p>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-09-13_Jin-Ning-Zhu_Art-of-War-for-Women/2020-09-13_Jin-Ning-Zhu_Art-of-War-for-Women.html"/>
  <id>https://lockywolf.net/2020-09-13_Jin-Ning-Zhu_Art-of-War-for-Women/2020-09-13_Jin-Ning-Zhu_Art-of-War-for-Women.html</id>
  <updated>2021-01-12T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A short review of the &quot;Art of War for Women&quot; by Chin-Ning Choo.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A short review of the “Art of War for Women” by Chin-Ning Choo.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#The-Art-of-War.">1. The Art of War.</a></li>
 <li> <a href="#The-core-ideas.">2. The core ideas.</a></li>
 <li> <a href="#Conclusion">3. Conclusion</a></li>
</ul></div>
</nav> <section id="outline-container-The-Art-of-War." class="outline-2"> <h2 id="The-Art-of-War."> <span class="section-number-2">1.</span>  <a href="#The-Art-of-War.">The Art of War.</a></h2>
 <div class="outline-text-2" id="text-The-Art-of-War.">
 <p>
The “Art of War”, not such a long time ago used to be fairly unknown to the western audience.
Maybe because there had already been a well-established western military tradition, represented by von Clausewitz.
The Soviets, however, perhaps due to being actively involved with Asia since the very establishment, were much more open to the Eastern tradition, and the Art of War was a part of the Soviet intelligence curriculum for a long time.
Eventually the West has also fallen victim to this millennia-old book on strategy and tactics, and the Art of War began its triumphant parade over the business culture.
This was also partly fuelled by the very visible progress that the Asian cultures, from Mongolia to Japan, had by the end of the 20th century.
One of the most prominent marks of the era was a recent British independence slogan “Will the Brexit Referendum make London the Singapore-on-Thames?”.
Such an astonishing claim to be made in the former capital of the world.
</p>


 <p>
The book by Ms Choo introduces the concept of the 21st century being the “Century of Asia” at the very beginning of the book.
Indeed, although the book is full of citations from the Art of War, my feeling was that they were cherry-picked with the main purpose of adding Ms Choo’s book an Asian flavour, rather being the core knowledge carrier.
</p>

 <p>
Maybe it’s actually for the best. 
To each his own, I am still planning to lay my hands on the old book itself, and thankfully, the “for Women” version was not much of a spoiler.
</p>

 <p>
The second claim that is firmly made in the book is that the 21st century is going to be the century of women.
That’s probably a thing that nobody is going to argue against, since the technology is making the world a much more comfortable place for women, so even though I would be more careful about attributing the whole century to just a since human trait (sex), we are definitely going (in fact we already are) seeing more female influence on the everyday life.
</p>
</div>
</section> <section id="outline-container-The-core-ideas." class="outline-2"> <h2 id="The-core-ideas."> <span class="section-number-2">2.</span>  <a href="#The-core-ideas.">The core ideas.</a></h2>
 <div class="outline-text-2" id="text-The-core-ideas.">
 <p>
The book is roughly structured around five aspects of success.
</p>

 <p>
They bear fancy Chinese names, but for simplicity I am just writing them out in layman terms:
</p>

 <ul class="org-ul"> <li>Personal qualities</li>
 <li>Temporal properties</li>
 <li>Fixed properties</li>
 <li>Skill</li>
 <li>Implementation</li>
</ul> <p>
Each chapter is dedicated to one of the components of success, and in each of those the author tries, beyond presenting the basic concept of a component and the actions that are needed to nurture this component, some additional traits that are supposed to be more related to women than men.
</p>

 <p>
Quite unsurprisingly, as the book progresses, each subsequent chapter bears less “femaleness” and more “practical guidelines”.
</p>

 <p>
In general, I cannot say that I highly assess the parts that are more dedicated to the sexual dimorphism.
The management chapters were quite good.
I have made a lot of records, and rearranged some of my working practices, following her advice.
The “female” parts, to be honest, did not help illuminating how exactly sexual dimorphism affects the differences of performance between the employees of different sexes too much.
The book contains quite a lot of female encouragement and debunking of old misconceptions about women, which is a great thing, but seems to be of less use to those who have already given up those misconceptions.
However, developing “conceptions” (pun intended), that is the understanding when and how exactly sexual differences can be used as a leverage, and where they should be kept in mind as a thing of concern, is sub-optimal, in my opinion.
</p>
</div>
</section> <section id="outline-container-Conclusion" class="outline-2"> <h2 id="Conclusion"> <span class="section-number-2">3.</span>  <a href="#Conclusion">Conclusion</a></h2>
 <div class="outline-text-2" id="text-Conclusion">
 <p>
The book is short, and can be done in a couple of evenings.
It is probably worth reading as an encouraging material, although women who have already decided to be the best of themselves, are unlikely to need any more encouragement.
Some anecdotal evidence is nice, it feels very nice to be able to relate yourself to some real-life examples.
Some paragons of female success are also given, from various areas of life, from politicians to doctors and managers.
The management-related, gender-agnostic chapters are just good and worth looking even more than once.
Is it  <span class="underline">the</span> book to be read to find out about gender differences and how to use them – perhaps not, and it is also not a good book about the “Art of War”.
</p>

 <p>
The main military thought that you can derive from it is that avoiding defeat may be often a much more efficient strategy than winning a battle. 
After all, Suvorov is believed to be emphasising this a lot.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-09-13_Jin-Ning-Zhu_Art-of-War-for-Women/2020-09-15_Art-of-War-for-Women-by-Zhu-JinNing_review.html"/>
  <id>https://lockywolf.net/2020-09-13_Jin-Ning-Zhu_Art-of-War-for-Women/2020-09-15_Art-of-War-for-Women-by-Zhu-JinNing_review.html</id>
  <updated>2021-01-12T00:00:00+00:00</updated>
</entry>
<entry>
  <title>SRFI 203: Drawing Language for SICP</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">SRFI 203: Drawing Language for SICP</h1>
</header> <p>
 <a href="Escher-Woodcut-.jpg">Maurits Escher’s Work in Wood</a>
by M. Escher
</p>

 <p>
This blog hasn’t had enough attention for quite a while. This is not, however, because I have abandoned it, but rather because the original purpose of this blog, that is dumping essays regarding books I read, is still valid. It’s just that the most recent book has taken an order of magnitude more time than I had expected it to take.
</p>

 <p>
Okay, I’m going to write a bigger and better review on the “Structure and Interpretation of Computer Programs”, but the book altogether took so much time, effort and emotions, that even writing the review is going to take a while.
</p>

 <p>
Meanwhile, one of the by-products of my reading happened to be a proposal of a feature to be included into the Scheme Language, that is needed in order to support all the code examples in the book.
</p>

 <p>
(Yes-yes, you’re not misreading it. The book published in 1996 is  <span class="underline">still</span> not covered by the existing language standard in full. Otoh, it means that there is a chance of achieving things.)
</p>

 <p>
Now that the proposal has an official number, there is going to be a public discussion among the potential Language System providers, and maybe (if it passes the review), we will have this feature officially recognised.
</p>

 <p>
Watching discussions of experts on what they may actually work themselves is a fascinating experience, and a chance to improve own skills too. In this case, the discussion is not expected to be too heated, however, but anyway.
</p>

 <p>
 <a href="https://srfi.schemers.org/srfi-203/">https://srfi.schemers.org/srfi-203/</a> — this is the link to my recent proposal.
</p>

 <p>
It speaks about quite an interesting approach to generating computer images, that builds on top of the classical features present in most drawing languages, such as PostScript, TikZ, MetaPost or SVG. While the expressive power is largely the same, the degree of abstractness is greater, which leaves gives greater code reusability and flexibility.
</p>

 <p>
Scheme is by not means the only language that has a community feature review process.
</p>

 <p>
Python has Python Enhancement Proposals (PEP)
Java has Java Community Process (JCP)
Scheme has Scheme Requests For Implementation
</p>

 <p>
The image in the header is a digital copy of a work of M. Escher, whose works have inspired the original author of the “Picture Language” Peter Henderson.  <a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.137.1503">http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.137.1503</a>
</p>

 <p>
Telegram:  <a href="http://t.me/unobvious">http://t.me/unobvious</a>
Facebook:  <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a>
</p>
</main>]]></content>
  <link href="https://lockywolf.net/2020-07-09_SRFI-203_Functional-Geometry/2020-07-09_SRFI-203-blog-post-Henderson-Functional-Geometry.txt.html"/>
  <id>https://lockywolf.net/2020-07-09_SRFI-203_Functional-Geometry/2020-07-09_SRFI-203-blog-post-Henderson-Functional-Geometry.txt.html</id>
  <updated>2020-11-06T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A Review on The Light That Failed by Ivan Krastev and Stephen Holmes.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A Review on The Light That Failed by Ivan Krastev and Stephen Holmes.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#The-Format">1. The Format</a></li>
 <li> <a href="#The-Narrative">2. The Narrative</a></li>
 <li> <a href="#What-to-make-out-of-liberalism?">3. What to make out of liberalism?</a></li>
 <li> <a href="#Imitation">4. Imitation</a></li>
 <li> <a href="#Conclusion">5. Conclusion</a></li>
 <li> <a href="#Contacts">6. Contacts</a></li>
</ul></div>
</nav> <div class="abstract" id="orgdca67db">
 <p>

</p>


 <figure id="org43844eb"> <img src="./001-book-front-s32310042.jpg" alt="001-book-front-s32310042.jpg"></img></figure> <p>
I have read “A Light That Failed”. 
This review is not a part of the series of reviews on technological books.
Nevertheless, in order for a brain to keep moving, some humanitarian reading is advised.
</p>

 <p>
This book was a part of a book club in discussion in Shanghai.
Speaking briefly, it discusses the new (2019) tendency in politics in which the western politicians start using the rhetoric that they have not been using so far; the rhetoric that is not unlike the one used by the authoritarian politicians.
Surprisingly, the book is known among readers in China, it has a rating on DouBan.
The book is not related (at least, directly) to the eponymous novel by Rudyard Kipling.
The book is not related (at least, directly) to the eponymous film of 1939, based on the work by Rudyard Kipling.
</p>

</div>

 <p></p>

 <section id="outline-container-The-Format" class="outline-2"> <h2 id="The-Format"> <span class="section-number-2">1.</span>  <a href="#The-Format">The Format</a></h2>
 <div class="outline-text-2" id="text-The-Format">
 <p>
This book looks like a scientific book.
It tries to be serious.
The book structure is well defined, the chapters have a clearly defined scope, the narrative looks as if it is trying to make a self-consistent argument in favour of a certain thesis, in such a way to establish this thesis’ truthiness.
What is certainly typical for scientific books, it is accompanied by an extensive bibliography.
</p>

 <p>
On the other hand, even though it presents a very carefully crafted image of a scientific book, certain tiny wrinkles on the seemingly impeccable surface of the outside image.
Why are the terms the authors are using are not that clearly defined in right in the beginning?
Why does the reference list include so many links to newspapers and other publicist material?
</p>

 <p>
Well, maybe it is not actually a scientific book? 
</p>

 <p>
My friend told me that this is written in just the way the U.S. discusses the society.
Hmm… too bad for science, too good for the U.S.A., I guess.
Perhaps I would appreciate if Russian books about societal matters were written with this care.
</p>
</div>
</section> <section id="outline-container-The-Narrative" class="outline-2"> <h2 id="The-Narrative"> <span class="section-number-2">2.</span>  <a href="#The-Narrative">The Narrative</a></h2>
 <div class="outline-text-2" id="text-The-Narrative">

 <figure id="org498e477"> <img src="002-right-left.jpg" alt="002-right-left.jpg"></img></figure> <p>
The book largely follows the standard left-wing (but not ultra left-wing) narrative of the generalised West.
This alone would have been enough to not consider the book altogether.
However, the attention to detail, combined with a uniquely broad coverage of the various sources, especially a one of a kind attention to the Central European view of what is going on, still attracted my attention.
</p>

 <p>
The book speaks about the essential tiredness of the peoples all over the world, from Russia, through Central Europe, especially Hungary, to the USA, with it’s already not that freshly inaugurated president Donald Trump, tiredness of the traditional way of speaking about the world’s political path.
</p>

 <p>
There is a lot spoken about the age of imitation.
Contrary to the traditional perception, the imitation by itself is not described as something intrinsically bad.
It is noted, however, that imitation is not traditionally seen as something worth of being proud of either.
</p>

 <p>
This very much reminds me of the typical Chinese attitude that I hear way too often, and even more from people doing “Chinese copies” of stuff.
“We are first and foremost learning, and copies are a nice by-product that makes us rich.”
A similar attitude is explored in the Central Europe, where people were also forced by the laws of history to imitate the Western models, and too often superficially.
Similarly, Russia is shown to behave in an imitative way, only imitating (badly) certain less appreciated elements of the Western behaviour.
</p>

 <p>
The imitation is one of the central themes in the book, even though it didn’t deserve a place in the title.
The other pervasive concept (that is even less well defined than imitation) is “liberalism”. 
Liberalism is not actually defined anywhere in the book, and what the authors imply by “liberalism” seems to be quite conflicting with what I would call liberalism.
This disparity is even more exacerbated by the fact that the authors are forced (by the object of study) to consider the Central European definition of “liberalism” that is “anti-communism”, and somehow reconcile it with the Western European one, which has been recently appropriated by the “left”.
</p>

 <p>
I won’t expose too much of this inevitable conflict in such a short review, and the curious reader is invited to visit the book itself.
</p>
</div>
</section> <section id="outline-container-What-to-make-out-of-liberalism?" class="outline-2"> <h2 id="What-to-make-out-of-liberalism?"> <span class="section-number-2">3.</span>  <a href="#What-to-make-out-of-liberalism?">What to make out of liberalism?</a></h2>
 <div class="outline-text-2" id="text-What-to-make-out-of-liberalism?">

 <figure id="org9bb0db9"> <img src="003-liberalism.jpeg" alt="003-liberalism.jpeg"></img></figure> <p>
What can I make out of the book as a reader?
</p>

 <p>
The authors claim that the world got tired of “liberalism” and now wants freedom from it.
I disagree.
The rhetoric that various politicians all over the world are increasingly using, may be discomfiting to the “establishment liberals”, but the reason why it is used lies not within the literal meaning of the words being pronounced, but rather owes to the fact that the “establishment liberals”, who are so well versed in the liberal jargon, are in fact representing a more authoritarian standpoint that the supposed “illiberals”.
The liberalism itself, as a concept of “live and let live” will probably never get old, just as it, probably, has never been totally alien to people.
It is always worth looking at the essence of things rather than their superficial cover.
</p>

 <p>
This “live and let live”, however, raises an interesting question of “who” should live, and let live “who”?
The idea of “illiberal democracy” (I am quoting the book for a lack of a better term) can be roughly summarised as “the easiest way to protest is to go away”. 
Why would I be fighting a dictator, when I can just move to another country?
In China this may even turn out to be like “why would I be criticising my province head, when I can move to another province?”.
</p>

 <p>
And if taking such an idea to the extreme, you would end up in the world that is incredibly intolerant to each other’s views.
Peculiarly, this world will be also very visibly diverse, as people would mix a lot and have a lot of unlike superficial features.
However, inside of it you will find less diversity, not more, because “really different” people would move away.
It will thus be the world that is both free and intolerant at the same time.
It will be superficially diverse and homogeneous inside the core.
</p>
</div>
</section> <section id="outline-container-Imitation" class="outline-2"> <h2 id="Imitation"> <span class="section-number-2">4.</span>  <a href="#Imitation">Imitation</a></h2>
 <div class="outline-text-2" id="text-Imitation">

 <figure id="org24f58a1"> <img src="004-imitation.jpeg" alt="004-imitation.jpeg"></img></figure> <p>
Imitation is the essence of life.
The first version of this review has “human life” in the first sentience, but in fact it lies in the core of all life whatsoever.
Life is the way that protein bodies replicate.
Information transmission not exist without a medium, and a medium is a thing that copies information from one storage to another.
Each time something is heard, seen, felt, smelled or tasted, there is a copy of it made.
Moreover, there is even nothing that can reliably differentiate between a real object and a synthetic signal to a “brain in a jar”, and we all are essentially “brains in jars” of our own skulls.
</p>

 <p>
It is needless to repeat that repetition is the mother of learning. 
(A Russian proverb.)
Repetition is imitation, imitation is copying.
The West seems to astonishingly unwilling to accept the fact that information is not a physical object.
Immeasurable effort has been spent onto trying to turn information into canned digital artefacts that behave like physical objects, and all of it is wonderfully faulty.
Trying to restrict imitation of anything practical while urging the people around you to imitate you superficially is a perfect recipe for a disaster.
And part of an image of this disaster is so carefully carved on the pages of the book.
</p>

 <p>
The book does not give a definitive answer on what sense to make out of the new prevalence of imitation in the modern world.
Still, as a survey of imitative political endeavours the book is quite comprehensive.
</p>

 <p>
The book even speaks a bit about China, but judging from the fact that I cannot remember anything from that chapter, their discussion wasn’t very compelling.
</p>
</div>
</section> <section id="outline-container-Conclusion" class="outline-2"> <h2 id="Conclusion"> <span class="section-number-2">5.</span>  <a href="#Conclusion">Conclusion</a></h2>
 <div class="outline-text-2" id="text-Conclusion">

 <figure id="org4957707"> <img src="005-umbrella.jpg" alt="005-umbrella.jpg"></img></figure> <p>
If I have to summarise my impression of the book contents in few words: the authors are wrong in that the Light of Liberalism has failed, but Liberalism of the new century will not be very similar to the liberalism that was a baby of the Century of Two World Wars.
</p>

 <p>
It was an entertaining reading. 
I learned a lot of new English words, and reinforced my habit of reading books with a pen.
Will this book be remembered?
Unlikely. 
I think, it will be forgotten withing a couple of years.
Is it fun? 
I’d say, it beats Twitter.
Is it telling the truth?
No, but if you are interested in such kind of literature, you would be filtering out meaningless water automatically.
</p>
</div>
</section> <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">6.</span>  <a href="#Contacts">Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
 <p>
I also have:
</p>
 <dl class="org-dl"> <dt>Facebook</dt> <dd> <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a></dd>
 <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-07-26_The-Light-that-failed-Krastev-Holmes/2020-07-14_Review-on-The-Light-that-Failed_Ivan-Krastev-and-Stephen-Holmes.html"/>
  <id>https://lockywolf.net/2020-07-26_The-Light-that-failed-Krastev-Holmes/2020-07-14_Review-on-The-Light-that-Failed_Ivan-Krastev-and-Stephen-Holmes.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Notes and words for &quot;The Culture of Chinese Communism and the Secret Sources of its Power&quot; by Kerry Brown.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Notes and words for “The Culture of Chinese Communism and the Secret Sources of its Power” by Kerry Brown.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Words">1. Words</a></li>
 <li> <a href="#Remarks">2. Remarks</a>
 <ul> <li> <a href="#No-party-occupies-all-the-political-spectrum,-except-the-Communist-Party-of-China">2.1. No party occupies all the political spectrum, except the Communist Party of China</a></li>
 <li> <a href="#Its-world-view-had-been-proved-by-history-to-be-right-in-the-act-of-granting-it-power.">2.2. Its world-view had been proved by history to be right in the act of granting it power.</a></li>
 <li> <a href="#Are-there-other-parties-like-this-one?">2.3. Are there other parties like this one?</a></li>
 <li> <a href="#Very-long-sentences!">2.4. Very long sentences!</a></li>
 <li> <a href="#how-the-CPC-has-become-parasitical-on-nationalist-messages-and-missions-that-make-it-clear-its-justification-is-in-delivering-these-rather-than-Marxist-objectives">2.5. how the CPC has become parasitical on nationalist messages and missions that make it clear its justification is in delivering these rather than Marxist objectives</a></li>
 <li> <a href="#early-leaders-knew-what-they-didn't-want,-and-what-they-disliked-about-the-China-they-were-living-in-and-experiencing-in-their-day-to-day-lives.-But-there-was-widespread-disagreement-about-what-they-were-actually-aiming-for">2.6. early leaders knew what they didn’t want, and what they disliked about the China they were living in and experiencing in their day-to-day lives. But there was widespread disagreement about what they were actually aiming for</a></li>
 <li> <a href="#The-state-constitution,-agreed-at-the-National-People's-Congress-in-1982,-and-subsequently-(but-not-comprehensively)-revised-several-times-since">2.7. The state constitution, agreed at the National People’s Congress in 1982, and subsequently (but not comprehensively) revised several times since</a></li>
 <li> <a href="#The-language-in-which-the-book-is-written-is-peculiar.">2.8. The language in which the book is written is peculiar.</a></li>
 <li> <a href="#The-USSR-did-not,-for-instance,-have-a-vast-dynastic-past-to-look-back-on.">2.9. The USSR did not, for instance, have a vast dynastic past to look back on.</a></li>
 <li> <a href="#Agrarian-revolution.">2.10. Agrarian revolution.</a></li>
 <li> <a href="#On-the-contrary,-it-embraces-what-was-once-sniffily-called-feudal-China,-and-at-times-also-seeks-to-exploit-it.">2.11. On the contrary, it embraces what was once sniffily called feudal China, and at times also seeks to exploit it.</a></li>
 <li> <a href="#This-permits-the-use-of-an-example-from-theology-to-illustrate-quite-how-the-politics,-administration,-and-country-fit-together.">2.12. This permits the use of an example from theology to illustrate quite how the politics, administration, and country fit together.</a></li>
 <li> <a href="#Liu-Shaoqi-How-to-be-a-Good-Communist.">2.13. Liu Shaoqi How to be a Good Communist.</a></li>
 <li> <a href="#The-most-radical-proposal-of-the-imported-ideology-and-practice-of-Marx-and-Lenin,-as-interpreted-by-Mao-and-Liu,-was-to-contradict,-or-subvert,-this-self-centredness-in-traditional-Chinese-social-structure,-and-to-replace-the-morality-of-the-world-centred-on-the-self-by-that-centred-on-a-collective-organization.">2.14. The most radical proposal of the imported ideology and practice of Marx and Lenin, as interpreted by Mao and Liu, was to contradict, or subvert, this self-centredness in traditional Chinese social structure, and to replace the morality of the world centred on the self by that centred on a collective organization.</a></li>
 <li> <a href="#it-seemed-of-all-the-networks-that-proved-hard-to-control-and-most-irresistible-that-based-on-blood-relations-was-the-strongest-and-most-prominent">2.15. it seemed of all the networks that proved hard to control and most irresistible that based on blood relations was the strongest and most prominent</a></li>
 <li> <a href="#Deep-China.">2.16. Deep China.</a></li>
 <li> <a href="#Its-sustainability-in-power-demands-allegiance-from-their-whole-selves,-not-just-their-material-bodies,-because-reliance-on-the-latter-will-always-run-the-high-risk-that-the-CPC-will-go-the-same-direction-as-the-USSR,-and-be-expendable.">2.17. Its sustainability in power demands allegiance from their whole selves, not just their material bodies, because reliance on the latter will always run the high risk that the CPC will go the same direction as the USSR, and be expendable.</a></li>
 <li> <a href="#Communist-ideology-at-this-time-was-%E2%80%98an-effective-instrument-of-training%E2%80%99,-an-%E2%80%98educational-process-which-elevates-the-system-of-training-above-simple-discipline%E2%80%99.-%E2%80%98For-training-the-cadre-and-party-member,-Chinese-Communist-theory%E2%80%89%E2%80%A6%E2%80%89provides-a-comprehensive-theory-or-learning-to-ensure-the-thorough-remoulding-of-each-individual%E2%80%99">2.18. Communist ideology at this time was ‘an effective instrument of training’, an ‘educational process which elevates the system of training above simple discipline’. ‘For training the cadre and party member, Chinese Communist theory … provides a comprehensive theory or learning to ensure the thorough remoulding of each individual’</a></li>
 <li> <a href="#Mao-the-man-made-many-mistakes.-But-Mao-Zedong-Thought-remains-valid-and-true.-This-strange-bifurcation-between-a-person-of-flesh-and-blood-and-his-or-her-abstract-intellectual-contribution-solved-a-major-problem.">2.19. Mao the man made many mistakes. But Mao Zedong Thought remains valid and true. This strange bifurcation between a person of flesh and blood and his or her abstract intellectual contribution solved a major problem.</a></li>
 <li> <a href="#Leaders-across-the-country-were-judged-on-their-ability-to-%E2%80%98preserve-stability%E2%80%99,-with-an-extensive-apparatus-of-state-security-which-started-to-cost-more-than-national-defence.">2.20. Leaders across the country were judged on their ability to ‘preserve stability’, with an extensive apparatus of state security which started to cost more than national defence.</a></li>
 <li> <a href="#Democracy-Wall-movement-over-1978-to-1980.">2.21. Democracy Wall movement over 1978 to 1980.</a></li>
 <li> <a href="#The-simple-fact-is-that,-as-of-2018,-no-Communist-one-party-system-had-proved-sustainable.">2.22. The simple fact is that, as of 2018, no Communist one-party system had proved sustainable.</a></li>
 <li> <a href="#lockywolf:-this-text-has-to-a-noticeable-extent,-demystified-the-Cultural-Revolution-in-my-thoughts.-More-than-the-October-Revolution.">2.23. Lockywolf: this text has to a noticeable extent, demystified the Cultural Revolution in my thoughts. More than the October Revolution.</a></li>
 <li> <a href="#They-are-not-just-epic-aesthetic-statements-but-also-ideological-ones,-designed-to-create-a-specific-emotional-response,-of-awe,-pride,-a-sense-of-being-part-of-the-great-national-drama-that-is-unfolding-as-one-walks-around-these-stage-sets.">2.24. They are not just epic aesthetic statements but also ideological ones, designed to create a specific emotional response, of awe, pride, a sense of being part of the great national drama that is unfolding as one walks around these stage sets.</a></li>
 <li> <a href="#As-a-political-force-seeking-support-in-the-countryside,-somehow-a-bridge-needed-to-be-made-to-this-vast-community-who-had-only-folk-art-to-reach-them.">2.25. As a political force seeking support in the countryside, somehow a bridge needed to be made to this vast community who had only folk art to reach them.</a></li>
</ul></li>
 <li> <a href="#After-discussion-summary.">3. After-discussion summary.</a></li>
</ul></div>
</nav> <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">1.</span>  <a href="#Words">Words</a></h2>
 <div class="outline-text-2" id="text-Words">
 <table> <colgroup> <col class="org-right"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-right"> </th>
 <th scope="col" class="org-left">English</th>
 <th scope="col" class="org-left">Russian</th>
</tr></thead> <tbody> <tr> <td class="org-right">1</td>
 <td class="org-left">reappraisal</td>
 <td class="org-left">переоценка</td>
</tr> <tr> <td class="org-right">2</td>
 <td class="org-left">stride</td>
 <td class="org-left">шаг, интервал</td>
</tr> <tr> <td class="org-right">3</td>
 <td class="org-left">repudiated</td>
 <td class="org-left">отречься</td>
</tr> <tr> <td class="org-right">4</td>
 <td class="org-left">heady</td>
 <td class="org-left">опьяняющий</td>
</tr> <tr> <td class="org-right">5</td>
 <td class="org-left">a raft of</td>
 <td class="org-left">пачка чего-то</td>
</tr> <tr> <td class="org-right">6</td>
 <td class="org-left">a prong</td>
 <td class="org-left">зубец</td>
</tr> <tr> <td class="org-right">7</td>
 <td class="org-left">epitome</td>
 <td class="org-left">олицетворение</td>
</tr> <tr> <td class="org-right">8</td>
 <td class="org-left">cachet</td>
 <td class="org-left">капсула</td>
</tr> <tr> <td class="org-right">9</td>
 <td class="org-left">onus</td>
 <td class="org-left">бремя</td>
</tr> <tr> <td class="org-right">10</td>
 <td class="org-left">cogency</td>
 <td class="org-left">неоспоримость</td>
</tr> <tr> <td class="org-right">11</td>
 <td class="org-left">subliminal</td>
 <td class="org-left">подсознательный</td>
</tr> <tr> <td class="org-right">12</td>
 <td class="org-left">flagrantly</td>
 <td class="org-left">ужасно, возмутительно</td>
</tr> <tr> <td class="org-right">13</td>
 <td class="org-left">contestation</td>
 <td class="org-left">оспаривание</td>
</tr> <tr> <td class="org-right">14</td>
 <td class="org-left">contention</td>
 <td class="org-left">раздор</td>
</tr> <tr> <td class="org-right">15</td>
 <td class="org-left">afflict</td>
 <td class="org-left">причинять боль, проблемы</td>
</tr> <tr> <td class="org-right">16</td>
 <td class="org-left">prelapsarian</td>
 <td class="org-left">до Падения Человека</td>
</tr> <tr> <td class="org-right">17</td>
 <td class="org-left">harrowing</td>
 <td class="org-left">душераздирание (букв. боронование)</td>
</tr> <tr> <td class="org-right">18</td>
 <td class="org-left">precarious</td>
 <td class="org-left">ненадёжный</td>
</tr> <tr> <td class="org-right">19</td>
 <td class="org-left">squabble</td>
 <td class="org-left">перебранка</td>
</tr> <tr> <td class="org-right">20</td>
 <td class="org-left">be riven</td>
 <td class="org-left">быть расщеплённым</td>
</tr> <tr> <td class="org-right">21</td>
 <td class="org-left">propinquity</td>
 <td class="org-left">сродство</td>
</tr> <tr> <td class="org-right">22</td>
 <td class="org-left">quell</td>
 <td class="org-left">подавлять</td>
</tr> <tr> <td class="org-right">23</td>
 <td class="org-left">contention</td>
 <td class="org-left">раздор</td>
</tr> <tr> <td class="org-right">24</td>
 <td class="org-left">eschew</td>
 <td class="org-left">избегать, сторониться</td>
</tr> <tr> <td class="org-right">25</td>
 <td class="org-left">rashness</td>
 <td class="org-left">опрометчивость</td>
</tr> <tr> <td class="org-right">26</td>
 <td class="org-left">assail</td>
 <td class="org-left">атаковать</td>
</tr> <tr> <td class="org-right">27</td>
 <td class="org-left">evince</td>
 <td class="org-left">выявить наличие</td>
</tr> <tr> <td class="org-right">28</td>
 <td class="org-left">posit</td>
 <td class="org-left">постулировать</td>
</tr> <tr> <td class="org-right">29</td>
 <td class="org-left">verbal garb</td>
 <td class="org-left">словесное обрамление</td>
</tr> <tr> <td class="org-right">30</td>
 <td class="org-left">relinquish</td>
 <td class="org-left">уступить</td>
</tr> <tr> <td class="org-right">31</td>
 <td class="org-left">bide your time</td>
 <td class="org-left">выжидать</td>
</tr> <tr> <td class="org-right">32</td>
 <td class="org-left">kilter</td>
 <td class="org-left">исправность</td>
</tr> <tr> <td class="org-right">33</td>
 <td class="org-left">sniffily</td>
 <td class="org-left">(перен.) высокомерно</td>
</tr> <tr> <td class="org-right">34</td>
 <td class="org-left">wherewithal</td>
 <td class="org-left">необходимые средства</td>
</tr> <tr> <td class="org-right">35</td>
 <td class="org-left">fount</td>
 <td class="org-left">источник, ключ (водяной)</td>
</tr> <tr> <td class="org-right">36</td>
 <td class="org-left">acme</td>
 <td class="org-left">кульминация</td>
</tr> <tr> <td class="org-right">37</td>
 <td class="org-left">brunt</td>
 <td class="org-left">главный удар</td>
</tr> <tr> <td class="org-right">38</td>
 <td class="org-left">inextricable</td>
 <td class="org-left">безвыходный от запутанности</td>
</tr> <tr> <td class="org-right">39</td>
 <td class="org-left">tussle</td>
 <td class="org-left">схватка (также мед. схватки)</td>
</tr> <tr> <td class="org-right">40</td>
 <td class="org-left">hurl</td>
 <td class="org-left">швырять</td>
</tr> <tr> <td class="org-right">41</td>
 <td class="org-left">riven by</td>
 <td class="org-left">раздираемый</td>
</tr> <tr> <td class="org-right">42</td>
 <td class="org-left">caesura</td>
 <td class="org-left">цезура</td>
</tr> <tr> <td class="org-right">43</td>
 <td class="org-left">quandary</td>
 <td class="org-left">затруднительное положение</td>
</tr> <tr> <td class="org-right">44</td>
 <td class="org-left">larceny</td>
 <td class="org-left">воровство</td>
</tr> <tr> <td class="org-right">45</td>
 <td class="org-left">pilfering</td>
 <td class="org-left">мелкое воровство</td>
</tr> <tr> <td class="org-right">46</td>
 <td class="org-left">tutelage</td>
 <td class="org-left">опекунство</td>
</tr> <tr> <td class="org-right">47</td>
 <td class="org-left">to be felled</td>
 <td class="org-left">быть срубленным</td>
</tr> <tr> <td class="org-right">48</td>
 <td class="org-left">malfeasance</td>
 <td class="org-left">злодеяние</td>
</tr> <tr> <td class="org-right">49</td>
 <td class="org-left">awry</td>
 <td class="org-left">косо</td>
</tr> <tr> <td class="org-right">50</td>
 <td class="org-left">toe the line</td>
 <td class="org-left">подчиняться требованиям</td>
</tr> <tr> <td class="org-right">51</td>
 <td class="org-left">to curb</td>
 <td class="org-left">взнуздать (метаф.)</td>
</tr> <tr> <td class="org-right">52</td>
 <td class="org-left">consternation</td>
 <td class="org-left">оцепенение от испуга</td>
</tr> <tr> <td class="org-right">53</td>
 <td class="org-left">buck the trend</td>
 <td class="org-left">сломать тренд</td>
</tr> <tr> <td class="org-right">54</td>
 <td class="org-left">afflict</td>
 <td class="org-left">подействовать негативно</td>
</tr> <tr> <td class="org-right">55</td>
 <td class="org-left">nag away</td>
 <td class="org-left">ворчать</td>
</tr> <tr> <td class="org-right">56</td>
 <td class="org-left">venally</td>
 <td class="org-left">имеющи склонность к мздоимству</td>
</tr> <tr> <td class="org-right">57</td>
 <td class="org-left">mainstay</td>
 <td class="org-left">оплот</td>
</tr> <tr> <td class="org-right">58</td>
 <td class="org-left">abnegation</td>
 <td class="org-left">отречение</td>
</tr> <tr> <td class="org-right">59</td>
 <td class="org-left">vacillate</td>
 <td class="org-left">колебаться</td>
</tr> <tr> <td class="org-right">60</td>
 <td class="org-left">impudence</td>
 <td class="org-left">наглость</td>
</tr> <tr> <td class="org-right">61</td>
 <td class="org-left">bequeathed</td>
 <td class="org-left">завещать</td>
</tr> <tr> <td class="org-right">62</td>
 <td class="org-left">dunce (hat)</td>
 <td class="org-left">“шляпа дурака”, наказание в английских школах</td>
</tr> <tr> <td class="org-right">63</td>
 <td class="org-left">searing</td>
 <td class="org-left">жгучий</td>
</tr> <tr> <td class="org-right">64</td>
 <td class="org-left">harrowing</td>
 <td class="org-left">боронование (мет. душераздирающе)</td>
</tr> <tr> <td class="org-right">65</td>
 <td class="org-left">intricate</td>
 <td class="org-left">запутанный</td>
</tr> <tr> <td class="org-right">66</td>
 <td class="org-left">scuttled</td>
 <td class="org-left">затопленный путём открытия люка (scuttle)</td>
</tr> <tr> <td class="org-right">67</td>
 <td class="org-left">gnawing</td>
 <td class="org-left">грызущий</td>
</tr> <tr> <td class="org-right">68</td>
 <td class="org-left">dishevelled</td>
 <td class="org-left">взъерошенный</td>
</tr> <tr> <td class="org-right">69</td>
 <td class="org-left">emaciated</td>
 <td class="org-left">истощённый</td>
</tr> <tr> <td class="org-right">70</td>
 <td class="org-left">scoffing</td>
 <td class="org-left">саркастический</td>
</tr> <tr> <td class="org-right">71</td>
 <td class="org-left">incensed</td>
 <td class="org-left">восхваляемый (ему возжигают фимиам)</td>
</tr> <tr> <td class="org-right">72</td>
 <td class="org-left">indictment</td>
 <td class="org-left">обвинительный акт</td>
</tr> <tr> <td class="org-right">73</td>
 <td class="org-left">trenchant</td>
 <td class="org-left">язвительный</td>
</tr> <tr> <td class="org-right">74</td>
 <td class="org-left">insolence</td>
 <td class="org-left">наглость</td>
</tr> <tr> <td class="org-right">75</td>
 <td class="org-left">to vent</td>
 <td class="org-left">испускать</td>
</tr> <tr> <td class="org-right">76</td>
 <td class="org-left">venality</td>
 <td class="org-left">продажность</td>
</tr> <tr> <td class="org-right">77</td>
 <td class="org-left">prurient</td>
 <td class="org-left">похотливый</td>
</tr> <tr> <td class="org-right">78</td>
 <td class="org-left">lurid</td>
 <td class="org-left">пылающий, сенсационный</td>
</tr> <tr> <td class="org-right">79</td>
 <td class="org-left">fungibility</td>
 <td class="org-left">взаимозаменяемость</td>
</tr> <tr> <td class="org-right">80</td>
 <td class="org-left">swirl</td>
 <td class="org-left">кружение</td>
</tr> <tr> <td class="org-right">81</td>
 <td class="org-left">sheen</td>
 <td class="org-left">блеск</td>
</tr> <tr> <td class="org-right">82</td>
 <td class="org-left">strenuously</td>
 <td class="org-left">напрягшись</td>
</tr> <tr> <td class="org-right">83</td>
 <td class="org-left">consternation</td>
 <td class="org-left">испуг</td>
</tr> <tr> <td class="org-right">84</td>
 <td class="org-left">coruscating</td>
 <td class="org-left">сверкающий</td>
</tr> <tr> <td class="org-right">85</td>
 <td class="org-left">ferreting</td>
 <td class="org-left">охота с хорьком</td>
</tr> <tr> <td class="org-right">86</td>
 <td class="org-left">benighted</td>
 <td class="org-left">застигнутый ночью</td>
</tr> <tr> <td class="org-right">87</td>
 <td class="org-left">predicament</td>
 <td class="org-left">затруднительное положение</td>
</tr> <tr> <td class="org-right">88</td>
 <td class="org-left">pitting</td>
 <td class="org-left">заставить соревноваться</td>
</tr> <tr> <td class="org-right">89</td>
 <td class="org-left">volte-face</td>
 <td class="org-left">поворот кругом (фиг.)</td>
</tr> <tr> <td class="org-right">90</td>
 <td class="org-left">felled</td>
 <td class="org-left">срубленный</td>
</tr> <tr> <td class="org-right">91</td>
 <td class="org-left">languish</td>
 <td class="org-left">изнывать</td>
</tr> <tr> <td class="org-right">92</td>
 <td class="org-left">hinterland</td>
 <td class="org-left">глубокий тыл</td>
</tr> <tr> <td class="org-right">93</td>
 <td class="org-left">gnomic</td>
 <td class="org-left">гномический</td>
</tr> <tr> <td class="org-right">94</td>
 <td class="org-left">vacillation</td>
 <td class="org-left">колебание (втч мнений)</td>
</tr> <tr> <td class="org-right">95</td>
 <td class="org-left">stint</td>
 <td class="org-left">ограниченный набор (работы, финансирования)</td>
</tr> <tr> <td class="org-right">96</td>
 <td class="org-left">complacent</td>
 <td class="org-left">самодовольный</td>
</tr> <tr> <td class="org-right">97</td>
 <td class="org-left">variegated</td>
 <td class="org-left">разносторонний</td>
</tr> <tr> <td class="org-right">98</td>
 <td class="org-left">snuff out</td>
 <td class="org-left">затушить</td>
</tr> <tr> <td class="org-right">99</td>
 <td class="org-left">revile</td>
 <td class="org-left">поносить, ругать</td>
</tr> <tr> <td class="org-right">100</td>
 <td class="org-left">falter</td>
 <td class="org-left">дрогнуть, запинаться</td>
</tr> <tr> <td class="org-right">101</td>
 <td class="org-left">portends</td>
 <td class="org-left">предвещать</td>
</tr> <tr> <td class="org-right">102</td>
 <td class="org-left">gleaned</td>
 <td class="org-left">подчёрпнутый</td>
</tr> <tr> <td class="org-right">103</td>
 <td class="org-left">circumscribed</td>
 <td class="org-left">чётко ограниченный</td>
</tr> <tr> <td class="org-right">104</td>
 <td class="org-left">tepid</td>
 <td class="org-left">тёпленький</td>
</tr> <tr> <td class="org-right">105</td>
 <td class="org-left">precinct</td>
 <td class="org-left">округ, участок</td>
</tr> <tr> <td class="org-right">106</td>
 <td class="org-left">ruminate</td>
 <td class="org-left">раздумывать</td>
</tr> <tr> <td class="org-right">107</td>
 <td class="org-left">moribund</td>
 <td class="org-left">умирающий, заброшенный</td>
</tr> <tr> <td class="org-right">108</td>
 <td class="org-left">curt</td>
 <td class="org-left">грубо краткий</td>
</tr> <tr> <td class="org-right">109</td>
 <td class="org-left">purblind</td>
 <td class="org-left">недальновидный</td>
</tr> <tr> <td class="org-right">110</td>
 <td class="org-left">ferret</td>
 <td class="org-left">разнюхивать</td>
</tr> <tr> <td class="org-right">111</td>
 <td class="org-left">wryly</td>
 <td class="org-left">косо (о взгляде)</td>
</tr> <tr> <td class="org-right">112</td>
 <td class="org-left">risible</td>
 <td class="org-left">смешливый</td>
</tr></tbody></table></div>
</section> <section id="outline-container-Remarks" class="outline-2"> <h2 id="Remarks"> <span class="section-number-2">2.</span>  <a href="#Remarks">Remarks</a></h2>
 <div class="outline-text-2" id="text-Remarks">
</div>

 <div id="outline-container-No-party-occupies-all-the-political-spectrum,-except-the-Communist-Party-of-China" class="outline-3">
 <h3 id="No-party-occupies-all-the-political-spectrum,-except-the-Communist-Party-of-China"> <span class="section-number-3">2.1.</span>  <a href="#No-party-occupies-all-the-political-spectrum,-except-the-Communist-Party-of-China">No party occupies all the political spectrum, except the Communist Party of China</a></h3>
 <div class="outline-text-3" id="text-No-party-occupies-all-the-political-spectrum,-except-the-Communist-Party-of-China">
 <p>
Is that true nowadays? 
What about Navalny’s?
</p>
</div>
</div>

 <div id="outline-container-Its-world-view-had-been-proved-by-history-to-be-right-in-the-act-of-granting-it-power." class="outline-3">
 <h3 id="Its-world-view-had-been-proved-by-history-to-be-right-in-the-act-of-granting-it-power."> <span class="section-number-3">2.2.</span>  <a href="#Its-world-view-had-been-proved-by-history-to-be-right-in-the-act-of-granting-it-power.">Its world-view had been proved by history to be right in the act of granting it power.</a></h3>
 <div class="outline-text-3" id="text-Its-world-view-had-been-proved-by-history-to-be-right-in-the-act-of-granting-it-power.">
 <p>
The Divine Right of Kings?
</p>
</div>
</div>

 <div id="outline-container-Are-there-other-parties-like-this-one?" class="outline-3">
 <h3 id="Are-there-other-parties-like-this-one?"> <span class="section-number-3">2.3.</span>  <a href="#Are-there-other-parties-like-this-one?">Are there other parties like this one?</a></h3>
 <div class="outline-text-3" id="text-Are-there-other-parties-like-this-one?">
 <p>
Vietnamese? What about Korea, Japan? Triads? Yakuza?
</p>
</div>
</div>

 <div id="outline-container-Very-long-sentences!" class="outline-3">
 <h3 id="Very-long-sentences!"> <span class="section-number-3">2.4.</span>  <a href="#Very-long-sentences!">Very long sentences!</a></h3>
 <div class="outline-text-3" id="text-Very-long-sentences!">
</div>
</div>

 <div id="outline-container-how-the-CPC-has-become-parasitical-on-nationalist-messages-and-missions-that-make-it-clear-its-justification-is-in-delivering-these-rather-than-Marxist-objectives" class="outline-3">
 <h3 id="how-the-CPC-has-become-parasitical-on-nationalist-messages-and-missions-that-make-it-clear-its-justification-is-in-delivering-these-rather-than-Marxist-objectives"> <span class="section-number-3">2.5.</span>  <a href="#how-the-CPC-has-become-parasitical-on-nationalist-messages-and-missions-that-make-it-clear-its-justification-is-in-delivering-these-rather-than-Marxist-objectives">how the CPC has become parasitical on nationalist messages and missions that make it clear its justification is in delivering these rather than Marxist objectives</a></h3>
 <div class="outline-text-3" id="text-how-the-CPC-has-become-parasitical-on-nationalist-messages-and-missions-that-make-it-clear-its-justification-is-in-delivering-these-rather-than-Marxist-objectives">
 <p>
Shall the party be obliged to deliver it’s initially declared objectives?
</p>
</div>
</div>

 <div id="outline-container-early-leaders-knew-what-they-didn't-want,-and-what-they-disliked-about-the-China-they-were-living-in-and-experiencing-in-their-day-to-day-lives.-But-there-was-widespread-disagreement-about-what-they-were-actually-aiming-for" class="outline-3">
 <h3 id="early-leaders-knew-what-they-didn't-want,-and-what-they-disliked-about-the-China-they-were-living-in-and-experiencing-in-their-day-to-day-lives.-But-there-was-widespread-disagreement-about-what-they-were-actually-aiming-for"> <span class="section-number-3">2.6.</span>  <a href="#early-leaders-knew-what-they-didn't-want,-and-what-they-disliked-about-the-China-they-were-living-in-and-experiencing-in-their-day-to-day-lives.-But-there-was-widespread-disagreement-about-what-they-were-actually-aiming-for">early leaders knew what they didn’t want, and what they disliked about the China they were living in and experiencing in their day-to-day lives. But there was widespread disagreement about what they were actually aiming for</a></h3>
 <div class="outline-text-3" id="text-early-leaders-knew-what-they-didn't-want,-and-what-they-disliked-about-the-China-they-were-living-in-and-experiencing-in-their-day-to-day-lives.-But-there-was-widespread-disagreement-about-what-they-were-actually-aiming-for">
 <p>
What about all of us? Don’t we all feel way more confident about things we do not want?
</p>
</div>
</div>

 <div id="outline-container-The-state-constitution,-agreed-at-the-National-People's-Congress-in-1982,-and-subsequently-(but-not-comprehensively)-revised-several-times-since" class="outline-3">
 <h3 id="The-state-constitution,-agreed-at-the-National-People's-Congress-in-1982,-and-subsequently-(but-not-comprehensively)-revised-several-times-since"> <span class="section-number-3">2.7.</span>  <a href="#The-state-constitution,-agreed-at-the-National-People's-Congress-in-1982,-and-subsequently-(but-not-comprehensively)-revised-several-times-since">The state constitution, agreed at the National People’s Congress in 1982, and subsequently (but not comprehensively) revised several times since</a></h3>
 <div class="outline-text-3" id="text-The-state-constitution,-agreed-at-the-National-People's-Congress-in-1982,-and-subsequently-(but-not-comprehensively)-revised-several-times-since">
 <p>
What about the old constitution of ~1950?
</p>
</div>
</div>

 <div id="outline-container-The-language-in-which-the-book-is-written-is-peculiar." class="outline-3">
 <h3 id="The-language-in-which-the-book-is-written-is-peculiar."> <span class="section-number-3">2.8.</span>  <a href="#The-language-in-which-the-book-is-written-is-peculiar.">The language in which the book is written is peculiar.</a></h3>
 <div class="outline-text-3" id="text-The-language-in-which-the-book-is-written-is-peculiar.">
 <p>
Is it “Chinese-ish” English?
</p>
</div>
</div>

 <div id="outline-container-The-USSR-did-not,-for-instance,-have-a-vast-dynastic-past-to-look-back-on." class="outline-3">
 <h3 id="The-USSR-did-not,-for-instance,-have-a-vast-dynastic-past-to-look-back-on."> <span class="section-number-3">2.9.</span>  <a href="#The-USSR-did-not,-for-instance,-have-a-vast-dynastic-past-to-look-back-on.">The USSR did not, for instance, have a vast dynastic past to look back on.</a></h3>
 <div class="outline-text-3" id="text-The-USSR-did-not,-for-instance,-have-a-vast-dynastic-past-to-look-back-on.">
 <p>
Wat?
</p>
</div>
</div>

 <div id="outline-container-Agrarian-revolution." class="outline-3">
 <h3 id="Agrarian-revolution."> <span class="section-number-3">2.10.</span>  <a href="#Agrarian-revolution.">Agrarian revolution.</a></h3>
 <div class="outline-text-3" id="text-Agrarian-revolution.">
 <p>
China has a very fertile land. 
People seem to be growing stuff everywhere easily.
Is this a fundamental difference?
</p>
</div>
</div>

 <div id="outline-container-On-the-contrary,-it-embraces-what-was-once-sniffily-called-feudal-China,-and-at-times-also-seeks-to-exploit-it." class="outline-3">
 <h3 id="On-the-contrary,-it-embraces-what-was-once-sniffily-called-feudal-China,-and-at-times-also-seeks-to-exploit-it."> <span class="section-number-3">2.11.</span>  <a href="#On-the-contrary,-it-embraces-what-was-once-sniffily-called-feudal-China,-and-at-times-also-seeks-to-exploit-it.">On the contrary, it embraces what was once sniffily called feudal China, and at times also seeks to exploit it.</a></h3>
 <div class="outline-text-3" id="text-On-the-contrary,-it-embraces-what-was-once-sniffily-called-feudal-China,-and-at-times-also-seeks-to-exploit-it.">
 <p>
What about everyone else?
Aren’t we all getting into the era of imitated nations?
Just because everyone is ready to pay for what they “want to see”?
</p>
</div>
</div>

 <div id="outline-container-This-permits-the-use-of-an-example-from-theology-to-illustrate-quite-how-the-politics,-administration,-and-country-fit-together." class="outline-3">
 <h3 id="This-permits-the-use-of-an-example-from-theology-to-illustrate-quite-how-the-politics,-administration,-and-country-fit-together."> <span class="section-number-3">2.12.</span>  <a href="#This-permits-the-use-of-an-example-from-theology-to-illustrate-quite-how-the-politics,-administration,-and-country-fit-together.">This permits the use of an example from theology to illustrate quite how the politics, administration, and country fit together.</a></h3>
 <div class="outline-text-3" id="text-This-permits-the-use-of-an-example-from-theology-to-illustrate-quite-how-the-politics,-administration,-and-country-fit-together.">
 <p>
Isn’t this exactly how things worked in the USSR?
Many people admit that the CPSU effectively worked as a religious organisation, when the Marxist dogmas happened to under-perform.
</p>

 <p>
Furthermore, doesn’t  <span class="underline">any</span> totalitarian entity work like this?
The Annenerbe, the FaLunGong, etc…?
</p>
</div>
</div>

 <div id="outline-container-Liu-Shaoqi-How-to-be-a-Good-Communist." class="outline-3">
 <h3 id="Liu-Shaoqi-How-to-be-a-Good-Communist."> <span class="section-number-3">2.13.</span>  <a href="#Liu-Shaoqi-How-to-be-a-Good-Communist.">Liu Shaoqi How to be a Good Communist.</a></h3>
 <div class="outline-text-3" id="text-Liu-Shaoqi-How-to-be-a-Good-Communist.">
 <p>
 <a href="https://www.marxists.org/reference/archive/liu-shaoqi/1939/how-to-be/index.htm">https://www.marxists.org/reference/archive/liu-shaoqi/1939/how-to-be/index.htm</a>
</p>
</div>
</div>

 <div id="outline-container-The-most-radical-proposal-of-the-imported-ideology-and-practice-of-Marx-and-Lenin,-as-interpreted-by-Mao-and-Liu,-was-to-contradict,-or-subvert,-this-self-centredness-in-traditional-Chinese-social-structure,-and-to-replace-the-morality-of-the-world-centred-on-the-self-by-that-centred-on-a-collective-organization." class="outline-3">
 <h3 id="The-most-radical-proposal-of-the-imported-ideology-and-practice-of-Marx-and-Lenin,-as-interpreted-by-Mao-and-Liu,-was-to-contradict,-or-subvert,-this-self-centredness-in-traditional-Chinese-social-structure,-and-to-replace-the-morality-of-the-world-centred-on-the-self-by-that-centred-on-a-collective-organization."> <span class="section-number-3">2.14.</span>  <a href="#The-most-radical-proposal-of-the-imported-ideology-and-practice-of-Marx-and-Lenin,-as-interpreted-by-Mao-and-Liu,-was-to-contradict,-or-subvert,-this-self-centredness-in-traditional-Chinese-social-structure,-and-to-replace-the-morality-of-the-world-centred-on-the-self-by-that-centred-on-a-collective-organization.">The most radical proposal of the imported ideology and practice of Marx and Lenin, as interpreted by Mao and Liu, was to contradict, or subvert, this self-centredness in traditional Chinese social structure, and to replace the morality of the world centred on the self by that centred on a collective organization.</a></h3>
 <div class="outline-text-3" id="text-The-most-radical-proposal-of-the-imported-ideology-and-practice-of-Marx-and-Lenin,-as-interpreted-by-Mao-and-Liu,-was-to-contradict,-or-subvert,-this-self-centredness-in-traditional-Chinese-social-structure,-and-to-replace-the-morality-of-the-world-centred-on-the-self-by-that-centred-on-a-collective-organization.">
 <p>
What about the new Party slogan about Xi being the “core of the party”?
</p>
</div>
</div>

 <div id="outline-container-it-seemed-of-all-the-networks-that-proved-hard-to-control-and-most-irresistible-that-based-on-blood-relations-was-the-strongest-and-most-prominent" class="outline-3">
 <h3 id="it-seemed-of-all-the-networks-that-proved-hard-to-control-and-most-irresistible-that-based-on-blood-relations-was-the-strongest-and-most-prominent"> <span class="section-number-3">2.15.</span>  <a href="#it-seemed-of-all-the-networks-that-proved-hard-to-control-and-most-irresistible-that-based-on-blood-relations-was-the-strongest-and-most-prominent">it seemed of all the networks that proved hard to control and most irresistible that based on blood relations was the strongest and most prominent</a></h3>
 <div class="outline-text-3" id="text-it-seemed-of-all-the-networks-that-proved-hard-to-control-and-most-irresistible-that-based-on-blood-relations-was-the-strongest-and-most-prominent">
</div>
</div>

 <div id="outline-container-Deep-China." class="outline-3">
 <h3 id="Deep-China."> <span class="section-number-3">2.16.</span>  <a href="#Deep-China.">Deep China.</a></h3>
 <div class="outline-text-3" id="text-Deep-China.">
 <p>
Didn’t the “Deep America” elect Trump after all?
Doesn’t every country have a “Deep Country”?
Is there a “Deep Russia”?
</p>
</div>
</div>

 <div id="outline-container-Its-sustainability-in-power-demands-allegiance-from-their-whole-selves,-not-just-their-material-bodies,-because-reliance-on-the-latter-will-always-run-the-high-risk-that-the-CPC-will-go-the-same-direction-as-the-USSR,-and-be-expendable." class="outline-3">
 <h3 id="Its-sustainability-in-power-demands-allegiance-from-their-whole-selves,-not-just-their-material-bodies,-because-reliance-on-the-latter-will-always-run-the-high-risk-that-the-CPC-will-go-the-same-direction-as-the-USSR,-and-be-expendable."> <span class="section-number-3">2.17.</span>  <a href="#Its-sustainability-in-power-demands-allegiance-from-their-whole-selves,-not-just-their-material-bodies,-because-reliance-on-the-latter-will-always-run-the-high-risk-that-the-CPC-will-go-the-same-direction-as-the-USSR,-and-be-expendable.">Its sustainability in power demands allegiance from their whole selves, not just their material bodies, because reliance on the latter will always run the high risk that the CPC will go the same direction as the USSR, and be expendable.</a></h3>
 <div class="outline-text-3" id="text-Its-sustainability-in-power-demands-allegiance-from-their-whole-selves,-not-just-their-material-bodies,-because-reliance-on-the-latter-will-always-run-the-high-risk-that-the-CPC-will-go-the-same-direction-as-the-USSR,-and-be-expendable.">
 <p>
People in the USSR also didn’t believe in anything they were speaking of. 
And were equally content.
</p>
</div>
</div>

 <div id="outline-container-Communist-ideology-at-this-time-was-%E2%80%98an-effective-instrument-of-training%E2%80%99,-an-%E2%80%98educational-process-which-elevates-the-system-of-training-above-simple-discipline%E2%80%99.-%E2%80%98For-training-the-cadre-and-party-member,-Chinese-Communist-theory%E2%80%89%E2%80%A6%E2%80%89provides-a-comprehensive-theory-or-learning-to-ensure-the-thorough-remoulding-of-each-individual%E2%80%99" class="outline-3">
 <h3 id="Communist-ideology-at-this-time-was-%E2%80%98an-effective-instrument-of-training%E2%80%99,-an-%E2%80%98educational-process-which-elevates-the-system-of-training-above-simple-discipline%E2%80%99.-%E2%80%98For-training-the-cadre-and-party-member,-Chinese-Communist-theory%E2%80%89%E2%80%A6%E2%80%89provides-a-comprehensive-theory-or-learning-to-ensure-the-thorough-remoulding-of-each-individual%E2%80%99"> <span class="section-number-3">2.18.</span>  <a href="#Communist-ideology-at-this-time-was-%E2%80%98an-effective-instrument-of-training%E2%80%99,-an-%E2%80%98educational-process-which-elevates-the-system-of-training-above-simple-discipline%E2%80%99.-%E2%80%98For-training-the-cadre-and-party-member,-Chinese-Communist-theory%E2%80%89%E2%80%A6%E2%80%89provides-a-comprehensive-theory-or-learning-to-ensure-the-thorough-remoulding-of-each-individual%E2%80%99">Communist ideology at this time was ‘an effective instrument of training’, an ‘educational process which elevates the system of training above simple discipline’. ‘For training the cadre and party member, Chinese Communist theory … provides a comprehensive theory or learning to ensure the thorough remoulding of each individual’</a></h3>
 <div class="outline-text-3" id="text-Communist-ideology-at-this-time-was-%E2%80%98an-effective-instrument-of-training%E2%80%99,-an-%E2%80%98educational-process-which-elevates-the-system-of-training-above-simple-discipline%E2%80%99.-%E2%80%98For-training-the-cadre-and-party-member,-Chinese-Communist-theory%E2%80%89%E2%80%A6%E2%80%89provides-a-comprehensive-theory-or-learning-to-ensure-the-thorough-remoulding-of-each-individual%E2%80%99">
 <p>
What about Hofstede and cultural codes?
</p>
</div>
</div>

 <div id="outline-container-Mao-the-man-made-many-mistakes.-But-Mao-Zedong-Thought-remains-valid-and-true.-This-strange-bifurcation-between-a-person-of-flesh-and-blood-and-his-or-her-abstract-intellectual-contribution-solved-a-major-problem." class="outline-3">
 <h3 id="Mao-the-man-made-many-mistakes.-But-Mao-Zedong-Thought-remains-valid-and-true.-This-strange-bifurcation-between-a-person-of-flesh-and-blood-and-his-or-her-abstract-intellectual-contribution-solved-a-major-problem."> <span class="section-number-3">2.19.</span>  <a href="#Mao-the-man-made-many-mistakes.-But-Mao-Zedong-Thought-remains-valid-and-true.-This-strange-bifurcation-between-a-person-of-flesh-and-blood-and-his-or-her-abstract-intellectual-contribution-solved-a-major-problem.">Mao the man made many mistakes. But Mao Zedong Thought remains valid and true. This strange bifurcation between a person of flesh and blood and his or her abstract intellectual contribution solved a major problem.</a></h3>
 <div class="outline-text-3" id="text-Mao-the-man-made-many-mistakes.-But-Mao-Zedong-Thought-remains-valid-and-true.-This-strange-bifurcation-between-a-person-of-flesh-and-blood-and-his-or-her-abstract-intellectual-contribution-solved-a-major-problem.">
 <p>
This has been used in the USA in the form of Confederate Generals’ statues.
Why don’t “we” as Russians or whoever, reuse this general mantra?
A person has agency only as long as he is alive.
Afterwards it is natural and perfectly morally acceptable to scavenge all the possible legacy he has left as legacy of the nation.
</p>
</div>
</div>

 <div id="outline-container-Leaders-across-the-country-were-judged-on-their-ability-to-%E2%80%98preserve-stability%E2%80%99,-with-an-extensive-apparatus-of-state-security-which-started-to-cost-more-than-national-defence." class="outline-3">
 <h3 id="Leaders-across-the-country-were-judged-on-their-ability-to-%E2%80%98preserve-stability%E2%80%99,-with-an-extensive-apparatus-of-state-security-which-started-to-cost-more-than-national-defence."> <span class="section-number-3">2.20.</span>  <a href="#Leaders-across-the-country-were-judged-on-their-ability-to-%E2%80%98preserve-stability%E2%80%99,-with-an-extensive-apparatus-of-state-security-which-started-to-cost-more-than-national-defence.">Leaders across the country were judged on their ability to ‘preserve stability’, with an extensive apparatus of state security which started to cost more than national defence.</a></h3>
 <div class="outline-text-3" id="text-Leaders-across-the-country-were-judged-on-their-ability-to-%E2%80%98preserve-stability%E2%80%99,-with-an-extensive-apparatus-of-state-security-which-started-to-cost-more-than-national-defence.">
 <p>
So the “extensive apparatus” became more expensive in China too!
</p>
</div>
</div>

 <div id="outline-container-Democracy-Wall-movement-over-1978-to-1980." class="outline-3">
 <h3 id="Democracy-Wall-movement-over-1978-to-1980."> <span class="section-number-3">2.21.</span>  <a href="#Democracy-Wall-movement-over-1978-to-1980.">Democracy Wall movement over 1978 to 1980.</a></h3>
 <div class="outline-text-3" id="text-Democracy-Wall-movement-over-1978-to-1980.">
</div>
</div>

 <div id="outline-container-The-simple-fact-is-that,-as-of-2018,-no-Communist-one-party-system-had-proved-sustainable." class="outline-3">
 <h3 id="The-simple-fact-is-that,-as-of-2018,-no-Communist-one-party-system-had-proved-sustainable."> <span class="section-number-3">2.22.</span>  <a href="#The-simple-fact-is-that,-as-of-2018,-no-Communist-one-party-system-had-proved-sustainable.">The simple fact is that, as of 2018, no Communist one-party system had proved sustainable.</a></h3>
 <div class="outline-text-3" id="text-The-simple-fact-is-that,-as-of-2018,-no-Communist-one-party-system-had-proved-sustainable.">
 <p>
What about Vietnam?
</p>
</div>
</div>

 <div id="outline-container-lockywolf:-this-text-has-to-a-noticeable-extent,-demystified-the-Cultural-Revolution-in-my-thoughts.-More-than-the-October-Revolution." class="outline-3">
 <h3 id="lockywolf:-this-text-has-to-a-noticeable-extent,-demystified-the-Cultural-Revolution-in-my-thoughts.-More-than-the-October-Revolution."> <span class="section-number-3">2.23.</span>  <a href="#lockywolf:-this-text-has-to-a-noticeable-extent,-demystified-the-Cultural-Revolution-in-my-thoughts.-More-than-the-October-Revolution.">Lockywolf: this text has to a noticeable extent, demystified the Cultural Revolution in my thoughts. More than the October Revolution.</a></h3>
 <div class="outline-text-3" id="text-lockywolf:-this-text-has-to-a-noticeable-extent,-demystified-the-Cultural-Revolution-in-my-thoughts.-More-than-the-October-Revolution.">
</div>
</div>


 <div id="outline-container-They-are-not-just-epic-aesthetic-statements-but-also-ideological-ones,-designed-to-create-a-specific-emotional-response,-of-awe,-pride,-a-sense-of-being-part-of-the-great-national-drama-that-is-unfolding-as-one-walks-around-these-stage-sets." class="outline-3">
 <h3 id="They-are-not-just-epic-aesthetic-statements-but-also-ideological-ones,-designed-to-create-a-specific-emotional-response,-of-awe,-pride,-a-sense-of-being-part-of-the-great-national-drama-that-is-unfolding-as-one-walks-around-these-stage-sets."> <span class="section-number-3">2.24.</span>  <a href="#They-are-not-just-epic-aesthetic-statements-but-also-ideological-ones,-designed-to-create-a-specific-emotional-response,-of-awe,-pride,-a-sense-of-being-part-of-the-great-national-drama-that-is-unfolding-as-one-walks-around-these-stage-sets.">They are not just epic aesthetic statements but also ideological ones, designed to create a specific emotional response, of awe, pride, a sense of being part of the great national drama that is unfolding as one walks around these stage sets.</a></h3>
 <div class="outline-text-3" id="text-They-are-not-just-epic-aesthetic-statements-but-also-ideological-ones,-designed-to-create-a-specific-emotional-response,-of-awe,-pride,-a-sense-of-being-part-of-the-great-national-drama-that-is-unfolding-as-one-walks-around-these-stage-sets.">
 <p>
Soviet Union had those too.
</p>
</div>
</div>

 <div id="outline-container-As-a-political-force-seeking-support-in-the-countryside,-somehow-a-bridge-needed-to-be-made-to-this-vast-community-who-had-only-folk-art-to-reach-them." class="outline-3">
 <h3 id="As-a-political-force-seeking-support-in-the-countryside,-somehow-a-bridge-needed-to-be-made-to-this-vast-community-who-had-only-folk-art-to-reach-them."> <span class="section-number-3">2.25.</span>  <a href="#As-a-political-force-seeking-support-in-the-countryside,-somehow-a-bridge-needed-to-be-made-to-this-vast-community-who-had-only-folk-art-to-reach-them.">As a political force seeking support in the countryside, somehow a bridge needed to be made to this vast community who had only folk art to reach them.</a></h3>
 <div class="outline-text-3" id="text-As-a-political-force-seeking-support-in-the-countryside,-somehow-a-bridge-needed-to-be-made-to-this-vast-community-who-had-only-folk-art-to-reach-them.">
</div>
</div>
</section> <section id="outline-container-After-discussion-summary." class="outline-2"> <h2 id="After-discussion-summary."> <span class="section-number-2">3.</span>  <a href="#After-discussion-summary.">After-discussion summary.</a></h2>
 <div class="outline-text-2" id="text-After-discussion-summary.">
 <p>
We discussed the book at the book club with Frank Tsai, and the discussion was not productive really.
The people kept referring to some old things in the Chinese history, that I feel are not relevant to the daily life.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-07-29_Kerry-Brown_The-Culture-of-Chinese-Communism-and-the-secret-sources-of-its-power/2020-07-20_frank-tsai-book-club_kerry-brown_the-culture-of-chinese-communism_notes.html"/>
  <id>https://lockywolf.net/2020-07-29_Kerry-Brown_The-Culture-of-Chinese-Communism-and-the-secret-sources-of-its-power/2020-07-20_frank-tsai-book-club_kerry-brown_the-culture-of-chinese-communism_notes.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Notes and words for &quot;Psychology of Intelligence Analysis&quot; by Richards J. Heuer Jr.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Notes and words for “Psychology of Intelligence Analysis” by Richards J. Heuer Jr.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Words">1. Words</a></li>
 <li> <a href="#Remarks">2. Remarks</a>
 <ul> <li> <a href="#Mental-models-exist-and-are-quite-simple.-(Algebras?-Graphs?)">2.1. Mental models exist and are quite simple. (Algebras? Graphs?)</a></li>
 <li> <a href="#Write-your-hypotheses-explicitly-when-thinking!">2.2. Write your hypotheses explicitly when thinking!</a></li>
 <li> <a href="#Study-stakeholders!">2.3. Study stakeholders!</a></li>
 <li> <a href="#Memory-is-generally-similar-to-a-tree.-(Making-cross-branch-links-is-hard)">2.4. Memory is generally similar to a tree. (Making cross-branch links is hard)</a></li>
 <li> <a href="#People-react-on-presented-options,-and-often-do-not-consider-the-non-given.-This-is-an-error.">2.5. People react on presented options, and often do not consider the non-given. This is an error.</a></li>
 <li> <a href="#People-do-not-understand-how-much-(amount)-data-is-representative-of-the-matter-(especially-if-it-is-consistent).">2.6. People do not understand how much (amount) data is representative of the matter (especially if it is consistent).</a></li>
 <li> <a href="#People-are-often-blind-to-deliberate-lying.">2.7. People are often blind to deliberate lying.</a></li>
 <li> <a href="#However,-people-often-think-that-others-are-planning-their-actions-very-well.">2.8. However, people often think that others are planning their actions very well.</a></li>
 <li> <a href="#People-over-value-their-own-actions-in-success-but-not-failure.">2.9. People over-value their own actions in success but not failure.</a></li>
 <li> <a href="#People-like-logic-an-consistency.-(People-look-for-patterns.)">2.10. People like logic an consistency. (People look for patterns.)</a></li>
 <li> <a href="#Draw-contingency-tables!-(Yes,-I-mean-you,-the-reader.)">2.11. Draw contingency tables! (Yes, I mean you, the reader.)</a></li>
 <li> <a href="#Give-explicit-probabilities-to-events,-and-prefer-probabilities-to-grades.-(How-likely-are-you-to-buy-a-game/film,-not-%22how-good-it-is%22.)">2.12. Give explicit probabilities to events, and prefer probabilities to grades. (How likely are you to buy a game/film, not “how good it is”.)</a></li>
 <li> <a href="#The-very-thinking-about-something-makes-is-seem-more-likely.-(This-may-not-be-true)">2.13. The very thinking about something makes is seem more likely. (This may not be true)</a></li>
 <li> <a href="#Assessing-something-post-factum-is-always-biased.">2.14. Assessing something post-factum is always biased.</a></li>
 <li> <a href="#Trick-to-assess-quality-of-information.-If-the-opposite-had-occurred,-would-I-have-been-surprised?">2.15. Trick to assess quality of information. If the opposite had occurred, would I have been surprised?</a></li>
 <li> <a href="#Analyst's-checklist">2.16. Analyst’s checklist</a></li>
 <li> <a href="#Disprove-yourself-all-the-time!-And-read-your-enemies-more-than-your-friends.">2.17. Disprove yourself all the time! And read your enemies more than your friends.</a></li>
 <li> <a href="#Externalise.-Write-notes-and-draw-pictures.-Assimilate-data-into-the-schemata.">2.18. Externalise. Write notes and draw pictures. Assimilate data into the schemata.</a></li>
 <li> <a href="#Make-a-hypothesis/evidence-matrix.">2.19. Make a hypothesis/evidence matrix.</a></li>
 <li> <a href="#Ask-your-friends/experts,-but-do-not-forget-about-data.">2.20. Ask your friends/experts, but do not forget about data.</a></li>
 <li> <a href="#Read-your-old-documents!">2.21. Read your old documents!</a></li>
 <li> <a href="#Use-scientific-method.">2.22. Use scientific method.</a></li>
 <li> <a href="#Perception-is-an-active-process-of-polling-sensors,-rather-than-receiving-data.">2.23. Perception is an active process of polling sensors, rather than receiving data.</a></li>
 <li> <a href="#Memory-can-be-crudely-modelled-as-a-3-level-cache.-Fun,-cos-computer-memory-is-too.">2.24. Memory can be crudely modelled as a 3-level cache. Fun, cos computer memory is too.</a></li>
 <li> <a href="#Types-of-thinking-(influenced-by-my-programming-language-experience)">2.25. Types of thinking (influenced by my programming language experience)</a></li>
 <li> <a href="#Quality-of-data-is-generally-more-important-than-quantity-of-data.">2.26. Quality of data is generally more important than quantity of data.</a></li>
 <li> <a href="#how-the-data-may-discribe-the-model:">2.27. How the data may discribe the model:</a></li>
 <li> <a href="#Read-aloud-your-thoughts!">2.28. Read aloud your thoughts!</a></li>
 <li> <a href="#Keep-a-list-of-unexpected-events.">2.29. Keep a list of unexpected events.</a></li>
</ul></li>
 <li> <a href="#Summary-for-myself">3. Summary for myself</a></li>
</ul></div>
</nav> <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">1.</span>  <a href="#Words">Words</a></h2>
 <div class="outline-text-2" id="text-Words">
 <table> <colgroup> <col class="org-left"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-left"> </th>
 <th scope="col" class="org-left"> </th>
 <th scope="col" class="org-left"> </th>
</tr></thead> <tbody> <tr> <td class="org-left"> </td>
 <td class="org-left">disabused</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left"> </td>
 <td class="org-left">preordained</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left"> </td>
 <td class="org-left">prodded</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left"> </td>
 <td class="org-left">pernicious</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left"> </td>
 <td class="org-left">beset</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left"> </td>
 <td class="org-left">beget</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left"> </td>
 <td class="org-left">entail</td>
 <td class="org-left"> </td>
</tr> <tr> <td class="org-left"> </td>
 <td class="org-left"> </td>
 <td class="org-left"> </td>
</tr></tbody></table></div>
</section> <section id="outline-container-Remarks" class="outline-2"> <h2 id="Remarks"> <span class="section-number-2">2.</span>  <a href="#Remarks">Remarks</a></h2>
 <div class="outline-text-2" id="text-Remarks">
</div>

 <div id="outline-container-Mental-models-exist-and-are-quite-simple.-(Algebras?-Graphs?)" class="outline-3">
 <h3 id="Mental-models-exist-and-are-quite-simple.-(Algebras?-Graphs?)"> <span class="section-number-3">2.1.</span>  <a href="#Mental-models-exist-and-are-quite-simple.-(Algebras?-Graphs?)">Mental models exist and are quite simple. (Algebras? Graphs?)</a></h3>
 <div class="outline-text-3" id="text-Mental-models-exist-and-are-quite-simple.-(Algebras?-Graphs?)">
</div>
</div>

 <div id="outline-container-Write-your-hypotheses-explicitly-when-thinking!" class="outline-3">
 <h3 id="Write-your-hypotheses-explicitly-when-thinking!"> <span class="section-number-3">2.2.</span>  <a href="#Write-your-hypotheses-explicitly-when-thinking!">Write your hypotheses explicitly when thinking!</a></h3>
 <div class="outline-text-3" id="text-Write-your-hypotheses-explicitly-when-thinking!">
</div>
</div>

 <div id="outline-container-Study-stakeholders!" class="outline-3">
 <h3 id="Study-stakeholders!"> <span class="section-number-3">2.3.</span>  <a href="#Study-stakeholders!">Study stakeholders!</a></h3>
 <div class="outline-text-3" id="text-Study-stakeholders!">
</div>
</div>

 <div id="outline-container-Memory-is-generally-similar-to-a-tree.-(Making-cross-branch-links-is-hard)" class="outline-3">
 <h3 id="Memory-is-generally-similar-to-a-tree.-(Making-cross-branch-links-is-hard)"> <span class="section-number-3">2.4.</span>  <a href="#Memory-is-generally-similar-to-a-tree.-(Making-cross-branch-links-is-hard)">Memory is generally similar to a tree. (Making cross-branch links is hard)</a></h3>
 <div class="outline-text-3" id="text-Memory-is-generally-similar-to-a-tree.-(Making-cross-branch-links-is-hard)">
</div>
</div>

 <div id="outline-container-People-react-on-presented-options,-and-often-do-not-consider-the-non-given.-This-is-an-error." class="outline-3">
 <h3 id="People-react-on-presented-options,-and-often-do-not-consider-the-non-given.-This-is-an-error."> <span class="section-number-3">2.5.</span>  <a href="#People-react-on-presented-options,-and-often-do-not-consider-the-non-given.-This-is-an-error.">People react on presented options, and often do not consider the non-given. This is an error.</a></h3>
 <div class="outline-text-3" id="text-People-react-on-presented-options,-and-often-do-not-consider-the-non-given.-This-is-an-error.">
</div>
</div>

 <div id="outline-container-People-do-not-understand-how-much-(amount)-data-is-representative-of-the-matter-(especially-if-it-is-consistent)." class="outline-3">
 <h3 id="People-do-not-understand-how-much-(amount)-data-is-representative-of-the-matter-(especially-if-it-is-consistent)."> <span class="section-number-3">2.6.</span>  <a href="#People-do-not-understand-how-much-(amount)-data-is-representative-of-the-matter-(especially-if-it-is-consistent).">People do not understand how much (amount) data is representative of the matter (especially if it is consistent).</a></h3>
 <div class="outline-text-3" id="text-People-do-not-understand-how-much-(amount)-data-is-representative-of-the-matter-(especially-if-it-is-consistent).">
</div>
</div>

 <div id="outline-container-People-are-often-blind-to-deliberate-lying." class="outline-3">
 <h3 id="People-are-often-blind-to-deliberate-lying."> <span class="section-number-3">2.7.</span>  <a href="#People-are-often-blind-to-deliberate-lying.">People are often blind to deliberate lying.</a></h3>
 <div class="outline-text-3" id="text-People-are-often-blind-to-deliberate-lying.">
</div>
</div>

 <div id="outline-container-However,-people-often-think-that-others-are-planning-their-actions-very-well." class="outline-3">
 <h3 id="However,-people-often-think-that-others-are-planning-their-actions-very-well."> <span class="section-number-3">2.8.</span>  <a href="#However,-people-often-think-that-others-are-planning-their-actions-very-well.">However, people often think that others are planning their actions very well.</a></h3>
 <div class="outline-text-3" id="text-However,-people-often-think-that-others-are-planning-their-actions-very-well.">
</div>
</div>

 <div id="outline-container-People-over-value-their-own-actions-in-success-but-not-failure." class="outline-3">
 <h3 id="People-over-value-their-own-actions-in-success-but-not-failure."> <span class="section-number-3">2.9.</span>  <a href="#People-over-value-their-own-actions-in-success-but-not-failure.">People over-value their own actions in success but not failure.</a></h3>
 <div class="outline-text-3" id="text-People-over-value-their-own-actions-in-success-but-not-failure.">
</div>
</div>

 <div id="outline-container-People-like-logic-an-consistency.-(People-look-for-patterns.)" class="outline-3">
 <h3 id="People-like-logic-an-consistency.-(People-look-for-patterns.)"> <span class="section-number-3">2.10.</span>  <a href="#People-like-logic-an-consistency.-(People-look-for-patterns.)">People like logic an consistency. (People look for patterns.)</a></h3>
 <div class="outline-text-3" id="text-People-like-logic-an-consistency.-(People-look-for-patterns.)">
 <p>
People like similarity between cause and effect both in nature and in size.
People feel that correlation equals causality.
</p>
</div>
</div>


 <div id="outline-container-Draw-contingency-tables!-(Yes,-I-mean-you,-the-reader.)" class="outline-3">
 <h3 id="Draw-contingency-tables!-(Yes,-I-mean-you,-the-reader.)"> <span class="section-number-3">2.11.</span>  <a href="#Draw-contingency-tables!-(Yes,-I-mean-you,-the-reader.)">Draw contingency tables! (Yes, I mean you, the reader.)</a></h3>
 <div class="outline-text-3" id="text-Draw-contingency-tables!-(Yes,-I-mean-you,-the-reader.)">
 <table> <colgroup> <col class="org-right"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-right"> </th>
 <th scope="col" class="org-left">0</th>
 <th scope="col" class="org-left">1</th>
</tr></thead> <tbody> <tr> <td class="org-right">0</td>
 <td class="org-left">x</td>
 <td class="org-left">y</td>
</tr> <tr> <td class="org-right">1</td>
 <td class="org-left">z</td>
 <td class="org-left">k</td>
</tr></tbody></table></div>
</div>


 <div id="outline-container-Give-explicit-probabilities-to-events,-and-prefer-probabilities-to-grades.-(How-likely-are-you-to-buy-a-game/film,-not-%22how-good-it-is%22.)" class="outline-3">
 <h3 id="Give-explicit-probabilities-to-events,-and-prefer-probabilities-to-grades.-(How-likely-are-you-to-buy-a-game/film,-not-%22how-good-it-is%22.)"> <span class="section-number-3">2.12.</span>  <a href="#Give-explicit-probabilities-to-events,-and-prefer-probabilities-to-grades.-(How-likely-are-you-to-buy-a-game/film,-not-%22how-good-it-is%22.)">Give explicit probabilities to events, and prefer probabilities to grades. (How likely are you to buy a game/film, not “how good it is”.)</a></h3>
 <div class="outline-text-3" id="text-Give-explicit-probabilities-to-events,-and-prefer-probabilities-to-grades.-(How-likely-are-you-to-buy-a-game/film,-not-%22how-good-it-is%22.)">
</div>
</div>

 <div id="outline-container-The-very-thinking-about-something-makes-is-seem-more-likely.-(This-may-not-be-true)" class="outline-3">
 <h3 id="The-very-thinking-about-something-makes-is-seem-more-likely.-(This-may-not-be-true)"> <span class="section-number-3">2.13.</span>  <a href="#The-very-thinking-about-something-makes-is-seem-more-likely.-(This-may-not-be-true)">The very thinking about something makes is seem more likely. (This may not be true)</a></h3>
 <div class="outline-text-3" id="text-The-very-thinking-about-something-makes-is-seem-more-likely.-(This-may-not-be-true)">
</div>
</div>

 <div id="outline-container-Assessing-something-post-factum-is-always-biased." class="outline-3">
 <h3 id="Assessing-something-post-factum-is-always-biased."> <span class="section-number-3">2.14.</span>  <a href="#Assessing-something-post-factum-is-always-biased.">Assessing something post-factum is always biased.</a></h3>
 <div class="outline-text-3" id="text-Assessing-something-post-factum-is-always-biased.">
</div>
</div>

 <div id="outline-container-Trick-to-assess-quality-of-information.-If-the-opposite-had-occurred,-would-I-have-been-surprised?" class="outline-3">
 <h3 id="Trick-to-assess-quality-of-information.-If-the-opposite-had-occurred,-would-I-have-been-surprised?"> <span class="section-number-3">2.15.</span>  <a href="#Trick-to-assess-quality-of-information.-If-the-opposite-had-occurred,-would-I-have-been-surprised?">Trick to assess quality of information. If the opposite had occurred, would I have been surprised?</a></h3>
 <div class="outline-text-3" id="text-Trick-to-assess-quality-of-information.-If-the-opposite-had-occurred,-would-I-have-been-surprised?">
</div>
</div>

 <div id="outline-container-Analyst's-checklist" class="outline-3">
 <h3 id="Analyst's-checklist"> <span class="section-number-3">2.16.</span>  <a href="#Analyst's-checklist">Analyst’s checklist</a></h3>
 <div class="outline-text-3" id="text-Analyst's-checklist">
 <ol class="org-ol"> <li>Define the problem</li>
 <li>Generate hypotheses</li>
 <li>Collect information</li>
 <li>Evaluate hypotheses</li>
 <li>Select the most likely hypothesis</li>
 <li>Monitor quality in hindsight</li>
</ol></div>
</div>


 <div id="outline-container-Disprove-yourself-all-the-time!-And-read-your-enemies-more-than-your-friends." class="outline-3">
 <h3 id="Disprove-yourself-all-the-time!-And-read-your-enemies-more-than-your-friends."> <span class="section-number-3">2.17.</span>  <a href="#Disprove-yourself-all-the-time!-And-read-your-enemies-more-than-your-friends.">Disprove yourself all the time! And read your enemies more than your friends.</a></h3>
 <div class="outline-text-3" id="text-Disprove-yourself-all-the-time!-And-read-your-enemies-more-than-your-friends.">
 <ul class="org-ul"> <li>Sensitivity testing. What would change the assumption output?</li>
 <li>How do you find that this is no longer true?</li>
 <li>Are you attributing your own characteristics to other people?</li>
</ul></div>
</div>

 <div id="outline-container-Externalise.-Write-notes-and-draw-pictures.-Assimilate-data-into-the-schemata." class="outline-3">
 <h3 id="Externalise.-Write-notes-and-draw-pictures.-Assimilate-data-into-the-schemata."> <span class="section-number-3">2.18.</span>  <a href="#Externalise.-Write-notes-and-draw-pictures.-Assimilate-data-into-the-schemata.">Externalise. Write notes and draw pictures. Assimilate data into the schemata.</a></h3>
 <div class="outline-text-3" id="text-Externalise.-Write-notes-and-draw-pictures.-Assimilate-data-into-the-schemata.">
</div>
</div>

 <div id="outline-container-Make-a-hypothesis/evidence-matrix." class="outline-3">
 <h3 id="Make-a-hypothesis/evidence-matrix."> <span class="section-number-3">2.19.</span>  <a href="#Make-a-hypothesis/evidence-matrix.">Make a hypothesis/evidence matrix.</a></h3>
 <div class="outline-text-3" id="text-Make-a-hypothesis/evidence-matrix.">
</div>
</div>

 <div id="outline-container-Ask-your-friends/experts,-but-do-not-forget-about-data." class="outline-3">
 <h3 id="Ask-your-friends/experts,-but-do-not-forget-about-data."> <span class="section-number-3">2.20.</span>  <a href="#Ask-your-friends/experts,-but-do-not-forget-about-data.">Ask your friends/experts, but do not forget about data.</a></h3>
 <div class="outline-text-3" id="text-Ask-your-friends/experts,-but-do-not-forget-about-data.">
</div>
</div>

 <div id="outline-container-Read-your-old-documents!" class="outline-3">
 <h3 id="Read-your-old-documents!"> <span class="section-number-3">2.21.</span>  <a href="#Read-your-old-documents!">Read your old documents!</a></h3>
 <div class="outline-text-3" id="text-Read-your-old-documents!">
</div>
</div>

 <div id="outline-container-Use-scientific-method." class="outline-3">
 <h3 id="Use-scientific-method."> <span class="section-number-3">2.22.</span>  <a href="#Use-scientific-method.">Use scientific method.</a></h3>
 <div class="outline-text-3" id="text-Use-scientific-method.">
</div>
</div>

 <div id="outline-container-Perception-is-an-active-process-of-polling-sensors,-rather-than-receiving-data." class="outline-3">
 <h3 id="Perception-is-an-active-process-of-polling-sensors,-rather-than-receiving-data."> <span class="section-number-3">2.23.</span>  <a href="#Perception-is-an-active-process-of-polling-sensors,-rather-than-receiving-data.">Perception is an active process of polling sensors, rather than receiving data.</a></h3>
 <div class="outline-text-3" id="text-Perception-is-an-active-process-of-polling-sensors,-rather-than-receiving-data.">
</div>
</div>

 <div id="outline-container-Memory-can-be-crudely-modelled-as-a-3-level-cache.-Fun,-cos-computer-memory-is-too." class="outline-3">
 <h3 id="Memory-can-be-crudely-modelled-as-a-3-level-cache.-Fun,-cos-computer-memory-is-too."> <span class="section-number-3">2.24.</span>  <a href="#Memory-can-be-crudely-modelled-as-a-3-level-cache.-Fun,-cos-computer-memory-is-too.">Memory can be crudely modelled as a 3-level cache. Fun, cos computer memory is too.</a></h3>
 <div class="outline-text-3" id="text-Memory-can-be-crudely-modelled-as-a-3-level-cache.-Fun,-cos-computer-memory-is-too.">
</div>
</div>

 <div id="outline-container-Types-of-thinking-(influenced-by-my-programming-language-experience)" class="outline-3">
 <h3 id="Types-of-thinking-(influenced-by-my-programming-language-experience)"> <span class="section-number-3">2.25.</span>  <a href="#Types-of-thinking-(influenced-by-my-programming-language-experience)">Types of thinking (influenced by my programming language experience)</a></h3>
 <div class="outline-text-3" id="text-Types-of-thinking-(influenced-by-my-programming-language-experience)">
 <dl class="org-dl"> <dt>Situational logic</dt> <dd>similar to imperative programming. Cause and effect are unique and concrete. Predict forward by extrapolation, or backward by reverse execution.</dd>
 <dt>Theoretical logic</dt> <dd>use generalisation to obtain for the same goals. (Similar to functional programming?)</dd>
 <dt>Logic by analogy</dt> <dd>machine learning? pattern transfer?</dd>
 <dt>Logic by data</dt> <dd>kinda same?</dd>
</dl></div>
</div>


 <div id="outline-container-Quality-of-data-is-generally-more-important-than-quantity-of-data." class="outline-3">
 <h3 id="Quality-of-data-is-generally-more-important-than-quantity-of-data."> <span class="section-number-3">2.26.</span>  <a href="#Quality-of-data-is-generally-more-important-than-quantity-of-data.">Quality of data is generally more important than quantity of data.</a></h3>
 <div class="outline-text-3" id="text-Quality-of-data-is-generally-more-important-than-quantity-of-data.">
</div>
</div>

 <div id="outline-container-how-the-data-may-discribe-the-model:" class="outline-3">
 <h3 id="how-the-data-may-discribe-the-model:"> <span class="section-number-3">2.27.</span>  <a href="#how-the-data-may-discribe-the-model:">How the data may discribe the model:</a></h3>
 <div class="outline-text-3" id="text-how-the-data-may-discribe-the-model:">
 <ul class="org-ul"> <li>Data on variable value in model instances.</li>
 <li>Additional variables.</li>
 <li>Trustworthiness of variable data metadata.</li>
 <li>Variable coupling medatada.</li>
</ul></div>
</div>


 <div id="outline-container-Read-aloud-your-thoughts!" class="outline-3">
 <h3 id="Read-aloud-your-thoughts!"> <span class="section-number-3">2.28.</span>  <a href="#Read-aloud-your-thoughts!">Read aloud your thoughts!</a></h3>
 <div class="outline-text-3" id="text-Read-aloud-your-thoughts!">
</div>
</div>

 <div id="outline-container-Keep-a-list-of-unexpected-events." class="outline-3">
 <h3 id="Keep-a-list-of-unexpected-events."> <span class="section-number-3">2.29.</span>  <a href="#Keep-a-list-of-unexpected-events.">Keep a list of unexpected events.</a></h3>
 <div class="outline-text-3" id="text-Keep-a-list-of-unexpected-events.">
</div>
</div>
</section> <section id="outline-container-Summary-for-myself" class="outline-2"> <h2 id="Summary-for-myself"> <span class="section-number-2">3.</span>  <a href="#Summary-for-myself">Summary for myself</a></h2>
 <div class="outline-text-2" id="text-Summary-for-myself">
 <p>
Intelligence people’s work consists of writing reports.
This is one of the reasons why literature is considered such an important subject in school.
How many books do these people create each year?
How much is declassified?
How much is destroyed?
How can this be compared to the FSB, GRU, and SVR?
Who gives them assignments?
</p>

 <p>
It is impressive how much the way a human society works resembles how a living organism works, consisting of different organs.
</p>

 <p>
It is hard to make yourself think about problem solving directly.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-09-03_Richards-J-Heuer-Jr_Psychology-of-Intelligence-Analysis/2020-09-03_richards-j-heuer-jr_psychology-of-intelligence-analysis_notes.html"/>
  <id>https://lockywolf.net/2020-09-03_Richards-J-Heuer-Jr_Psychology-of-Intelligence-Analysis/2020-09-03_richards-j-heuer-jr_psychology-of-intelligence-analysis_notes.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A record of a meeting about news, their sources and development. (Attendees: Vladimir Nikishkin, David Wood, Ilya Vorontsov)</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A record of a meeting about news, their sources and development. (Attendees: Vladimir Nikishkin, David Wood, Ilya Vorontsov)</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Preface">1. Preface</a></li>
 <li> <a href="#Definitions">2. Definitions</a>
 <ul> <li> <a href="#%22Event%22----something-that-physically-happened.-An-intangible-thing.">2.1. “Event” – something that physically happened. An intangible thing.</a></li>
 <li> <a href="#%22News-Source%22----someone-who-reported-the-original-piece-of-news.">2.2. “News Source” – someone who reported the original piece of news.</a></li>
 <li> <a href="#%22News-Provider%22----someone-who-wrote-an-article-about-the-event-and-posted-it-somewhere-on-the-Internet.-Sometimes-they-are-a-%22news-source%22-too,-if-the-content-is-original.">2.3. “News Provider” – someone who wrote an article about the event and posted it somewhere on the Internet. Sometimes they are a “news source” too, if the content is original.</a></li>
 <li> <a href="#%22Traditional-Medium%22----a-resource-(company)-that-existed-in-the-media-business-before-the-advent-of-the-Internet,-or-is-primarily-based-off-line.">2.4. “Traditional Medium” – a resource (company) that existed in the media business before the advent of the Internet, or is primarily based off-line.</a></li>
 <li> <a href="#%22Internet-Medium%22----a-resource-(company)-that-is-primarily-or-exclusively-online-based.">2.5. “Internet Medium” – a resource (company) that is primarily or exclusively online-based.</a>
 <ul> <li> <a href="#%22Social-Medium%22----an-internet-medium-with-a-heavy-emphasis-on-letting-the-users-create-content.">2.5.1. “Social Medium” – an internet medium with a heavy emphasis on letting the users create content.</a></li>
</ul></li>
 <li> <a href="#%22News-Aggregator%22----a-resource-for-collecting-news-pieces-and-presenting-a-unified-interface-for-them.">2.6. “News Aggregator” – a resource for collecting news pieces and presenting a unified interface for them.</a></li>
 <li> <a href="#%22Terminal%22----a-thing-that-the-end-user-is-using-to-access-a-piece-of-news.">2.7. “Terminal” – a thing that the end-user is using to access a piece of news.</a></li>
 <li> <a href="#Weight----the-amount-of-energy-a-customer-needs-to-spend-on-consuming-a-piece-of-news.">2.8. Weight – the amount of energy a customer needs to spend on consuming a piece of news.</a></li>
 <li> <a href="#Medium----a-way-a-piece-of-news-is-stored.">2.9. Medium – a way a piece of news is stored.</a></li>
</ul></li>
 <li> <a href="#The-ways-we-obtain-news-at-the-moment.">3. The ways we obtain news at the moment.</a>
 <ul> <li> <a href="#Smartphone-news-aggregators.-(Read,-Google-News)">3.1. Smartphone news aggregators. (Read, Google News)</a>
 <ul> <li> <a href="#Yandex-Zen-tries-to-be-a-better-version-of-Google-News,-but-asks-you-to-train-the-recommendation-system-yourself.-Reportedly,-needs-a-lot-of-work-and-time-to-train-well.">3.1.1. Yandex Zen tries to be a better version of Google News, but asks you to train the recommendation system yourself. Reportedly, needs a lot of work and time to train well.</a></li>
</ul></li>
 <li> <a href="#Email">3.2. Email</a></li>
 <li> <a href="#Opting-in-for-just-one-or-several-news-providers-and-just-following-them.">3.3. Opting in for just one or several news providers and just following them.</a></li>
 <li> <a href="#Summary">3.4. Summary</a></li>
</ul></li>
 <li> <a href="#News-pipeline">4. News pipeline</a>
 <ul> <li> <a href="#Creation">4.1. Creation</a></li>
 <li> <a href="#Augmentation">4.2. Augmentation</a></li>
 <li> <a href="#Collection">4.3. Collection</a></li>
 <li> <a href="#Filtering">4.4. Filtering</a></li>
 <li> <a href="#Formatting">4.5. Formatting</a>
 <ul> <li> <a href="#Automatic">4.5.1. Automatic</a></li>
 <li> <a href="#Manual">4.5.2. Manual</a></li>
</ul></li>
 <li> <a href="#Classification,-Importance,-Analysis">4.6. Classification, Importance, Analysis</a>
 <ul> <li> <a href="#Distance-to-consumer">4.6.1. Distance to consumer</a></li>
 <li> <a href="#Importance">4.6.2. Importance</a></li>
 <li> <a href="#Area-of-Effect">4.6.3. Area of Effect</a></li>
 <li> <a href="#Areas-of-life">4.6.4. Areas of life</a></li>
 <li> <a href="#Verification">4.6.5. Verification</a></li>
</ul></li>
 <li> <a href="#Delivery">4.7. Delivery</a>
 <ul> <li> <a href="#Terminals">4.7.1. Terminals</a></li>
 <li> <a href="#Time,-selection,-batching,-conversion.">4.7.2. Time, selection, batching, conversion.</a></li>
</ul></li>
 <li> <a href="#Sharing-and-Feedback">4.8. Sharing and Feedback</a>
 <ul> <li> <a href="#Sharing">4.8.1. Sharing</a></li>
 <li> <a href="#Feedback">4.8.2. Feedback</a></li>
</ul></li>
 <li> <a href="#Storage-and-indexing">4.9. Storage and indexing</a></li>
 <li> <a href="#Systems-analysis">4.10. Systems analysis</a>
 <ul> <li> <a href="#Flow-analysis">4.10.1. Flow analysis</a></li>
 <li> <a href="#KYC/Customer-analysis">4.10.2. KYC/Customer analysis</a></li>
 <li> <a href="#Stories">4.10.3. Stories</a></li>
</ul></li>
 <li> <a href="#Sources-of-income">4.11. Sources of income</a></li>
 <li> <a href="#Computing-Technologies-and-Buzzwords">4.12. Computing Technologies and Buzzwords</a>
 <ul> <li> <a href="#technologies:">4.12.1. Technologies:</a></li>
 <li> <a href="#Buzzwords">4.12.2. Buzzwords</a></li>
 <li> <a href="#Companies">4.12.3. Companies</a></li>
 <li> <a href="#Markets">4.12.4. Markets</a></li>
 <li> <a href="#Languages">4.12.5. Languages</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Review">5. Review</a></li>
 <li> <a href="#Conclusion">6. Conclusion</a></li>
</ul></div>
</nav> <section id="outline-container-Preface" class="outline-2"> <h2 id="Preface"> <span class="section-number-2">1.</span>  <a href="#Preface">Preface</a></h2>
 <div class="outline-text-2" id="text-Preface">
 <p>
We all love news.
At the same time, we are all dissatisfied with the state of the news ecosystem of the time.
At the moment we are all coping with this dissatisfaction in different ad-hoc ways.
However, we all want a more efficient, controllable, and affordable (both in money and in effort) solution for getting news.
</p>

 <p>
In that meeting we wanted to discuss what exactly we do, what we want to improve, both technologically and socially, with a potential of developing a novel news-related product.
</p>

 <p>
“News” is a not very clearly defined thing by itself, and this document also aims to give a more or less working definition, as well as clarify the differences between the types of news.
</p>
</div>
</section> <section id="outline-container-Definitions" class="outline-2"> <h2 id="Definitions"> <span class="section-number-2">2.</span>  <a href="#Definitions">Definitions</a></h2>
 <div class="outline-text-2" id="text-Definitions">
</div>

 <div id="outline-container-%22Event%22----something-that-physically-happened.-An-intangible-thing." class="outline-3">
 <h3 id="%22Event%22----something-that-physically-happened.-An-intangible-thing."> <span class="section-number-3">2.1.</span>  <a href="#%22Event%22----something-that-physically-happened.-An-intangible-thing.">“Event” – something that physically happened. An intangible thing.</a></h3>
 <div class="outline-text-3" id="text-%22Event%22----something-that-physically-happened.-An-intangible-thing.">
 <p>
Examples: a tsunami, a piece of software released, a president elected, I made a photo of my cat.
</p>
</div>
</div>

 <div id="outline-container-%22News-Source%22----someone-who-reported-the-original-piece-of-news." class="outline-3">
 <h3 id="%22News-Source%22----someone-who-reported-the-original-piece-of-news."> <span class="section-number-3">2.2.</span>  <a href="#%22News-Source%22----someone-who-reported-the-original-piece-of-news.">“News Source” – someone who reported the original piece of news.</a></h3>
 <div class="outline-text-3" id="text-%22News-Source%22----someone-who-reported-the-original-piece-of-news.">
 <p>
Examples: NVidia publishing a press-release, Government office issuing a press-release, A website issuing an update, I uploaded the cat’s photo online.
</p>
</div>
</div>

 <div id="outline-container-%22News-Provider%22----someone-who-wrote-an-article-about-the-event-and-posted-it-somewhere-on-the-Internet.-Sometimes-they-are-a-%22news-source%22-too,-if-the-content-is-original." class="outline-3">
 <h3 id="%22News-Provider%22----someone-who-wrote-an-article-about-the-event-and-posted-it-somewhere-on-the-Internet.-Sometimes-they-are-a-%22news-source%22-too,-if-the-content-is-original."> <span class="section-number-3">2.3.</span>  <a href="#%22News-Provider%22----someone-who-wrote-an-article-about-the-event-and-posted-it-somewhere-on-the-Internet.-Sometimes-they-are-a-%22news-source%22-too,-if-the-content-is-original.">“News Provider” – someone who wrote an article about the event and posted it somewhere on the Internet. Sometimes they are a “news source” too, if the content is original.</a></h3>
 <div class="outline-text-3" id="text-%22News-Provider%22----someone-who-wrote-an-article-about-the-event-and-posted-it-somewhere-on-the-Internet.-Sometimes-they-are-a-%22news-source%22-too,-if-the-content-is-original.">
 <p>
Example: Bloomberg, Reuters, a blog, a Facebook profile.
</p>
</div>
</div>

 <div id="outline-container-%22Traditional-Medium%22----a-resource-(company)-that-existed-in-the-media-business-before-the-advent-of-the-Internet,-or-is-primarily-based-off-line." class="outline-3">
 <h3 id="%22Traditional-Medium%22----a-resource-(company)-that-existed-in-the-media-business-before-the-advent-of-the-Internet,-or-is-primarily-based-off-line."> <span class="section-number-3">2.4.</span>  <a href="#%22Traditional-Medium%22----a-resource-(company)-that-existed-in-the-media-business-before-the-advent-of-the-Internet,-or-is-primarily-based-off-line.">“Traditional Medium” – a resource (company) that existed in the media business before the advent of the Internet, or is primarily based off-line.</a></h3>
 <div class="outline-text-3" id="text-%22Traditional-Medium%22----a-resource-(company)-that-existed-in-the-media-business-before-the-advent-of-the-Internet,-or-is-primarily-based-off-line.">
 <p>
They are usually in about 90% of the cases acting as news providers, but in about 10% of the cases acting as news sources, when they have “special correspondents”.
</p>

 <p>
Examples: The BBC, The First Channel (of whatever country), The Washington Post, The Echo of Moscow Radio.
</p>
</div>
</div>

 <div id="outline-container-%22Internet-Medium%22----a-resource-(company)-that-is-primarily-or-exclusively-online-based." class="outline-3">
 <h3 id="%22Internet-Medium%22----a-resource-(company)-that-is-primarily-or-exclusively-online-based."> <span class="section-number-3">2.5.</span>  <a href="#%22Internet-Medium%22----a-resource-(company)-that-is-primarily-or-exclusively-online-based.">“Internet Medium” – a resource (company) that is primarily or exclusively online-based.</a></h3>
 <div class="outline-text-3" id="text-%22Internet-Medium%22----a-resource-(company)-that-is-primarily-or-exclusively-online-based.">
 <p>
Examples: Cnet.com, TechRadar.com, Habr.{com,ru}, opensource.com, medium.com.
</p>
</div>

 <div id="outline-container-%22Social-Medium%22----an-internet-medium-with-a-heavy-emphasis-on-letting-the-users-create-content." class="outline-4">
 <h4 id="%22Social-Medium%22----an-internet-medium-with-a-heavy-emphasis-on-letting-the-users-create-content."> <span class="section-number-4">2.5.1.</span>  <a href="#%22Social-Medium%22----an-internet-medium-with-a-heavy-emphasis-on-letting-the-users-create-content.">“Social Medium” – an internet medium with a heavy emphasis on letting the users create content.</a></h4>
 <div class="outline-text-4" id="text-%22Social-Medium%22----an-internet-medium-with-a-heavy-emphasis-on-letting-the-users-create-content.">
 <p>
Examples: Facebook, Twitter, LiveJournal, Mastodon, Parler, VK.
</p>
</div>
</div>
</div>


 <div id="outline-container-%22News-Aggregator%22----a-resource-for-collecting-news-pieces-and-presenting-a-unified-interface-for-them." class="outline-3">
 <h3 id="%22News-Aggregator%22----a-resource-for-collecting-news-pieces-and-presenting-a-unified-interface-for-them."> <span class="section-number-3">2.6.</span>  <a href="#%22News-Aggregator%22----a-resource-for-collecting-news-pieces-and-presenting-a-unified-interface-for-them.">“News Aggregator” – a resource for collecting news pieces and presenting a unified interface for them.</a></h3>
 <div class="outline-text-3" id="text-%22News-Aggregator%22----a-resource-for-collecting-news-pieces-and-presenting-a-unified-interface-for-them.">
 <p>
Examples: Google News, Yandex News, Yandex Zen, news.ycombinator.com, Perl Planet
</p>
</div>
</div>


 <div id="outline-container-%22Terminal%22----a-thing-that-the-end-user-is-using-to-access-a-piece-of-news." class="outline-3">
 <h3 id="%22Terminal%22----a-thing-that-the-end-user-is-using-to-access-a-piece-of-news."> <span class="section-number-3">2.7.</span>  <a href="#%22Terminal%22----a-thing-that-the-end-user-is-using-to-access-a-piece-of-news.">“Terminal” – a thing that the end-user is using to access a piece of news.</a></h3>
 <div class="outline-text-3" id="text-%22Terminal%22----a-thing-that-the-end-user-is-using-to-access-a-piece-of-news.">
 <p>
Examples: Email client, Facebook website, Facebook App, AtomFeed Reader, WeChat messenger, Telegram 
</p>
</div>
</div>

 <div id="outline-container-Weight----the-amount-of-energy-a-customer-needs-to-spend-on-consuming-a-piece-of-news." class="outline-3">
 <h3 id="Weight----the-amount-of-energy-a-customer-needs-to-spend-on-consuming-a-piece-of-news."> <span class="section-number-3">2.8.</span>  <a href="#Weight----the-amount-of-energy-a-customer-needs-to-spend-on-consuming-a-piece-of-news.">Weight – the amount of energy a customer needs to spend on consuming a piece of news.</a></h3>
 <div class="outline-text-3" id="text-Weight----the-amount-of-energy-a-customer-needs-to-spend-on-consuming-a-piece-of-news.">
 <p>
A hard to define precisely thing, since it is context and consumer dependent.
The length of a text/video/audio can be an estimate, but a bad one.
</p>

 <p>
As extreme examples,  <span class="underline">scientific papers</span> can easily demand 8 hours per page, whereas  <span class="underline">pulp fiction</span> can be consumed at a much higher rate. Vladimir’s personal record is the SICP book, which took 9 months to read.
</p>
</div>
</div>

 <div id="outline-container-Medium----a-way-a-piece-of-news-is-stored." class="outline-3">
 <h3 id="Medium----a-way-a-piece-of-news-is-stored."> <span class="section-number-3">2.9.</span>  <a href="#Medium----a-way-a-piece-of-news-is-stored.">Medium – a way a piece of news is stored.</a></h3>
 <div class="outline-text-3" id="text-Medium----a-way-a-piece-of-news-is-stored.">
 <ul class="org-ul"> <li>Text</li>
 <li>Audio</li>
 <li>Graphic</li>
 <li>Video</li>
 <li>Digitally-native (3D/Program)</li>
 <li>N-media (e.g. a text with illustrations)</li>
</ul></div>
</div>
</section> <section id="outline-container-The-ways-we-obtain-news-at-the-moment." class="outline-2"> <h2 id="The-ways-we-obtain-news-at-the-moment."> <span class="section-number-2">3.</span>  <a href="#The-ways-we-obtain-news-at-the-moment.">The ways we obtain news at the moment.</a></h2>
 <div class="outline-text-2" id="text-The-ways-we-obtain-news-at-the-moment.">
</div>

 <div id="outline-container-Smartphone-news-aggregators.-(Read,-Google-News)" class="outline-3">
 <h3 id="Smartphone-news-aggregators.-(Read,-Google-News)"> <span class="section-number-3">3.1.</span>  <a href="#Smartphone-news-aggregators.-(Read,-Google-News)">Smartphone news aggregators. (Read, Google News)</a></h3>
 <div class="outline-text-3" id="text-Smartphone-news-aggregators.-(Read,-Google-News)">
 <p>
Google News is a service that gives you news headlines, as well as full article bodies fetched from news providers.
Google does quite a good job at identifying duplicates.
Since one news source is usually later used by many news providers aiming at delivering the content, enriched and post-processed, to their users.
</p>

 <p>
Google News gives you access to the full article body, fetched from  <span class="underline">one</span> of the providers, but usually not the news source.
</p>

 <p>
Google News uses a sophisticated recommendation method, that is presumably fully algorithmic (no human involvement), to recommend news to the consumers.
This algorithm is heavily based on the data Google knows about the users, collected implicitly, the most used data provider being user’s search queries.
</p>

 <p>
The problem with Google News is that it is hard (impossible) to “force” Google to show you more of something.
It’s just not possible to make it directly subscribe to something.
</p>
</div>

 <div id="outline-container-Yandex-Zen-tries-to-be-a-better-version-of-Google-News,-but-asks-you-to-train-the-recommendation-system-yourself.-Reportedly,-needs-a-lot-of-work-and-time-to-train-well." class="outline-4">
 <h4 id="Yandex-Zen-tries-to-be-a-better-version-of-Google-News,-but-asks-you-to-train-the-recommendation-system-yourself.-Reportedly,-needs-a-lot-of-work-and-time-to-train-well."> <span class="section-number-4">3.1.1.</span>  <a href="#Yandex-Zen-tries-to-be-a-better-version-of-Google-News,-but-asks-you-to-train-the-recommendation-system-yourself.-Reportedly,-needs-a-lot-of-work-and-time-to-train-well.">Yandex Zen tries to be a better version of Google News, but asks you to train the recommendation system yourself. Reportedly, needs a lot of work and time to train well.</a></h4>
 <div class="outline-text-4" id="text-Yandex-Zen-tries-to-be-a-better-version-of-Google-News,-but-asks-you-to-train-the-recommendation-system-yourself.-Reportedly,-needs-a-lot-of-work-and-time-to-train-well.">
</div>
</div>
</div>

 <div id="outline-container-Email" class="outline-3">
 <h3 id="Email"> <span class="section-number-3">3.2.</span>  <a href="#Email">Email</a></h3>
 <div class="outline-text-3" id="text-Email">
 <p>
Vladimir gets his news by subscribing to individual RSS/Atom feeds via an email-gateway.
He gets ~50 news-related emails daily and is quite overwhelmed with them.
</p>

 <p>
This solution has a difficulty in that not all news providers (or news sources) have an Email or Feed gateways.
For example, Facebook disabled their gateways circa 2011.
</p>

 <p>
The filtering problem could be solved by crafting various data-collection “sensors”, such as a Chrome extension or a context-sensitive keylogger, and than training a local filtering tool, but Vladimir has so far been extremely far from doing that.
</p>
</div>
</div>

 <div id="outline-container-Opting-in-for-just-one-or-several-news-providers-and-just-following-them." class="outline-3">
 <h3 id="Opting-in-for-just-one-or-several-news-providers-and-just-following-them."> <span class="section-number-3">3.3.</span>  <a href="#Opting-in-for-just-one-or-several-news-providers-and-just-following-them.">Opting in for just one or several news providers and just following them.</a></h3>
 <div class="outline-text-3" id="text-Opting-in-for-just-one-or-several-news-providers-and-just-following-them.">
 <p>
That’s what most people do. 
They just regularly visit, say, Habr.com, and try to tune the news feed in a way that is as personalised as possible.
</p>

 <ol class="org-ol"> <li>problem with this approach is that it requires most of the time spent on deliberately reading news.</li>
 <li>Another problem is that the user is mostly limited to the news from a single provider. There are ways to break this limit (LiveJournal, for example, lets you introduce RSS feeds into your news feed), but that is not a frequently used feature.</li>
</ol></div>
</div>

 <div id="outline-container-Summary" class="outline-3">
 <h3 id="Summary"> <span class="section-number-3">3.4.</span>  <a href="#Summary">Summary</a></h3>
 <div class="outline-text-3" id="text-Summary">
 <p>
Most of the ways above are annoying.
</p>

 <ul class="org-ul"> <li>Too little control.</li>
 <li>Too bad recommendations.</li>
 <li>Bad coverage.</li>
 <li>Hard to tune interface.</li>
 <li>Lack of API.</li>
 <li>Preferences data leaks likely.</li>
</ul> <p>
What follows will present various thoughts about the news data structures, algorithms and pipelines.
</p>
</div>
</div>
</section> <section id="outline-container-News-pipeline" class="outline-2"> <h2 id="News-pipeline"> <span class="section-number-2">4.</span>  <a href="#News-pipeline">News pipeline</a></h2>
 <div class="outline-text-2" id="text-News-pipeline">
</div>

 <div id="outline-container-Creation" class="outline-3">
 <h3 id="Creation"> <span class="section-number-3">4.1.</span>  <a href="#Creation">Creation</a></h3>
 <div class="outline-text-3" id="text-Creation">
 <p>
News creation can be:
</p>

 <ul class="org-ul"> <li>Automatic : a CCTV camera finished recording for today, uploads a video file, and updates an Atom feed.</li>
 <li>Manual : I take a photo of a beautiful flower-bed and upload it to Instagram, by creating a new post.</li>
 <li>Semi-automatic : I just upload a new software release .tar.gz on a web server (I am making an event), and some other bot or a human spots this and makes a piece of news.</li>
</ul></div>
</div>

 <div id="outline-container-Augmentation" class="outline-3">
 <h3 id="Augmentation"> <span class="section-number-3">4.2.</span>  <a href="#Augmentation">Augmentation</a></h3>
 <div class="outline-text-3" id="text-Augmentation">
 <p>
Often the original piece of news is very terse. 
There is a process that is called “augmentation” in this document, that makes that piece of news more understandable, more readable, and richer.
</p>

 <p>
Example: 
Vladimir wrote SRFI-203, which is a technical document. 
Later, Vladimir wrote an article on Habr.ru, in order to announce the existence of SRFI-203, and in order to provide more context on why it is needed, and to give some examples of its usage.
</p>

 <p>
Augmentation is usually done by the “news providers”, and often is tailored for their audience. 
This is one of the places where bias is introduced.
On the other hand, leaving out augmentation entirely seems not viable, as the readers are often lacking the context.
</p>
</div>
</div>

 <div id="outline-container-Collection" class="outline-3">
 <h3 id="Collection"> <span class="section-number-3">4.3.</span>  <a href="#Collection">Collection</a></h3>
 <div class="outline-text-3" id="text-Collection">
 <p>
Naturally, news providers are many, and it is hardly possible to subscribe to each of them individually, especially since many of them do not have any web pages at all, let alone feeds, especially RSS feeds.
</p>

 <p>
The news, therefore, have to be aggregated.
</p>

 <p>
Aggregation can be:
</p>

 <ul class="org-ul"> <li>Automatic
 <ul class="org-ul"> <li>Pushed (RSS)</li>
 <li>Pulled (parsing bots)</li>
</ul></li>
 <li>By the employees of a news provider (pulled)</li>
 <li>By crowd-sourcing (pushed)</li>
</ul></div>
</div>

 <div id="outline-container-Filtering" class="outline-3">
 <h3 id="Filtering"> <span class="section-number-3">4.4.</span>  <a href="#Filtering">Filtering</a></h3>
 <div class="outline-text-3" id="text-Filtering">
 <p>
Naturally, filtering is crucial for any news-related ecosystem, since the amount of noise is giant.
</p>

 <ul class="org-ul"> <li>Implicit : the news that are missed by the collection systems are naturally filtered out. This is not always bad, but many golden nuggets are lost this way too.</li>
 <li>Automatic : Regexps, Natual Language Processing, stop-words, Sieve spam-filters, etc…</li>
 <li>Human : Direct censorship, editorship, class selection by customers, etc.</li>
 <li>Collaborative : That is a mixture of automatic and human. Some bootstrap is made by humans, and then we try to extrapolate the same filtering mechanism on the other news pieces.</li>
</ul></div>
</div>

 <div id="outline-container-Formatting" class="outline-3">
 <h3 id="Formatting"> <span class="section-number-3">4.5.</span>  <a href="#Formatting">Formatting</a></h3>
 <div class="outline-text-3" id="text-Formatting">
 <p>
Formatting is more important than it is usually seen.
Some people are happy with just headlines.
Some people prefer abstracts.
Other people are into full-length articles, extended articles (long-reads), or even series of articles (a thing that is hard to define!). 
</p>

 <p>
A (hypothetical) perfect piece of news supports all the aforementioned levels of abstraction.
</p>

 <p>
The problem here is usually that news are manufactured at a single level of abstraction.
We are therefore, met with a problem of up-scaling and down-scaling information.
</p>

 <p>
Since this section naturally deals with the problem of news “weight”, apart from up-scaling and down-scaling, we should mention same-scaling, or re-wording a piece of information.
</p>

 <p>
Note that re-wording is tightly connected to lossless compression. Lossless compression reduces the length of a piece of news, while preserving its weight.
However, its practicality seems to be not very self-evident.
</p>

 <p>
In the same section, I have to discuss medium conversion.
Medium conversion 
</p>

 <ul class="org-ul"> <li>Up-scaling</li>
 <li>Down-scaling</li>
 <li>Re-scaling</li>
 <li>Compression</li>
 <li>Generation (faking)</li>
 <li>Medium conversion</li>
 <li>Language translation</li>
</ul></div>

 <div id="outline-container-Automatic" class="outline-4">
 <h4 id="Automatic"> <span class="section-number-4">4.5.1.</span>  <a href="#Automatic">Automatic</a></h4>
 <div class="outline-text-4" id="text-Automatic">
 <p>
Neither  <span class="underline">summarising</span>, nor  <span class="underline">elaborating</span> are solved problems.
</p>

 <p>
The progress on  <span class="underline">summarising</span> is a little bit better, as there are  <code>word2vec~/~text2vec</code>  <code>embeddings</code> that attempt to solve this.
 <span class="underline">Elaborating</span> would require access to external data sources and context, and I am not aware of any progress on this matter.
</p>

 <p>
There is  <code>some</code> progress on  <span class="underline">re-wording</span>, at least up to the level of fooling search engines into believing that a piece of news is distinct from the other pieces.
However, this is a  <code>GAN</code>-like system.
Search engines are increasingly getting better at detecting auto-rewrites.
All of the progress above is generally concerned with pieces of text.
</p>

 <p>
 <span class="underline">Compression</span> is basically non-existent.
</p>

 <p>
 <span class="underline">Conversion</span> exists in the following way:
</p>

 <table> <colgroup> <col class="org-left"></col> <col class="org-left"></col> <col class="org-left"></col> <col class="org-left"></col> <col class="org-left"></col> <col class="org-left"></col></colgroup> <thead> <tr> <th scope="col" class="org-left">from \ to</th>
 <th scope="col" class="org-left">Text</th>
 <th scope="col" class="org-left">Audio</th>
 <th scope="col" class="org-left">Image</th>
 <th scope="col" class="org-left">Video</th>
 <th scope="col" class="org-left">Digital</th>
</tr></thead> <tbody> <tr> <td class="org-left">Text</td>
 <td class="org-left">No need</td>
 <td class="org-left">Good</td>
 <td class="org-left">No</td>
 <td class="org-left">No</td>
 <td class="org-left">No</td>
</tr></tbody> <tbody> <tr> <td class="org-left">Audio</td>
 <td class="org-left">Mediocre</td>
 <td class="org-left">No need</td>
 <td class="org-left">No</td>
 <td class="org-left">No</td>
 <td class="org-left">No</td>
</tr></tbody> <tbody> <tr> <td class="org-left">Image</td>
 <td class="org-left">Bad</td>
 <td class="org-left">Bad (via text)</td>
 <td class="org-left">No need</td>
 <td class="org-left">No</td>
 <td class="org-left">No</td>
</tr></tbody> <tbody> <tr> <td class="org-left">Video</td>
 <td class="org-left">Very bad</td>
 <td class="org-left">Very bad (via text)</td>
 <td class="org-left">?</td>
 <td class="org-left">No need</td>
 <td class="org-left">No</td>
</tr></tbody> <tbody> <tr> <td class="org-left">Digital</td>
 <td class="org-left">Lossy</td>
 <td class="org-left">Lossy</td>
 <td class="org-left">Lossy</td>
 <td class="org-left">Lossy</td>
 <td class="org-left">No need</td>
</tr></tbody></table> <p>
 <span class="underline">Language translation</span> works for an unassuming customer.
</p>
</div>
</div>

 <div id="outline-container-Manual" class="outline-4">
 <h4 id="Manual"> <span class="section-number-4">4.5.2.</span>  <a href="#Manual">Manual</a></h4>
 <div class="outline-text-4" id="text-Manual">
 <p>
Titles (the highest level of abstraction) are usually available for free.
</p>

 <ul class="org-ul"> <li>Up-scaling : generally possible</li>
 <li>Down-scaling : generally possible (main selling point of news providers)</li>
 <li>Re-scaling : generally possible (usually for fooling search engines)</li>
 <li>Compression : generally possible (another selling point)</li>
 <li>Generation (faking) : generally possible</li>
 <li>Medium conversion : very expensive</li>
 <li>Language translation : grows increasingly cheaper</li>
</ul></div>
</div>
</div>

 <div id="outline-container-Classification,-Importance,-Analysis" class="outline-3">
 <h3 id="Classification,-Importance,-Analysis"> <span class="section-number-3">4.6.</span>  <a href="#Classification,-Importance,-Analysis">Classification, Importance, Analysis</a></h3>
 <div class="outline-text-3" id="text-Classification,-Importance,-Analysis">
 <p>
Classifying the news is also important, but a little bit difficult to define. 
Classification is not entirely the same thing as filtering, although the class of a piece of the news can be a basis for filtering it out or letting it go through.
</p>
</div>

 <div id="outline-container-Distance-to-consumer" class="outline-4">
 <h4 id="Distance-to-consumer"> <span class="section-number-4">4.6.1.</span>  <a href="#Distance-to-consumer">Distance to consumer</a></h4>
 <div class="outline-text-4" id="text-Distance-to-consumer">
 <ul class="org-ul"> <li>Immediately connected to the consumer. (E.g. law updates for accountants.)</li>
 <li>Of general importance. (E.g. the introduction of a curfew.)</li>
 <li>Everything else.</li>
</ul></div>
</div>

 <div id="outline-container-Importance" class="outline-4">
 <h4 id="Importance"> <span class="section-number-4">4.6.2.</span>  <a href="#Importance">Importance</a></h4>
 <div class="outline-text-4" id="text-Importance">
 <ul class="org-ul"> <li>Important/Action required</li>
 <li>Important/Action not required</li>
 <li>Ignore-able</li>
</ul></div>
</div>

 <div id="outline-container-Area-of-Effect" class="outline-4">
 <h4 id="Area-of-Effect"> <span class="section-number-4">4.6.3.</span>  <a href="#Area-of-Effect">Area of Effect</a></h4>
 <div class="outline-text-4" id="text-Area-of-Effect">
 <ul class="org-ul"> <li>Single person</li>
 <li>Household</li>
 <li>Locally bound (House/District/Country)</li>
 <li>Universal</li>
 <li>Certain group, e.g. diabetic people, music fans</li>
</ul></div>
</div>

 <div id="outline-container-Areas-of-life" class="outline-4">
 <h4 id="Areas-of-life"> <span class="section-number-4">4.6.4.</span>  <a href="#Areas-of-life">Areas of life</a></h4>
 <div class="outline-text-4" id="text-Areas-of-life">
 <ul class="org-ul"> <li>too many to list</li>
 <li>Science/Technology</li>
 <li>Society</li>
 <li>Hobby</li>
 <li>Art</li>
 <li>Medicine</li>
</ul></div>
</div>

 <div id="outline-container-Verification" class="outline-4">
 <h4 id="Verification"> <span class="section-number-4">4.6.5.</span>  <a href="#Verification">Verification</a></h4>
 <div class="outline-text-4" id="text-Verification">
 <p>
Verification is hard to define.
What is true and what is false in our new world of post-truth?
</p>

 <ul class="org-ul"> <li>Manual</li>
 <li>Automatic</li>
 <li>Absent</li>
</ul></div>
</div>
</div>

 <div id="outline-container-Delivery" class="outline-3">
 <h3 id="Delivery"> <span class="section-number-3">4.7.</span>  <a href="#Delivery">Delivery</a></h3>
 <div class="outline-text-3" id="text-Delivery">
</div>

 <div id="outline-container-Terminals" class="outline-4">
 <h4 id="Terminals"> <span class="section-number-4">4.7.1.</span>  <a href="#Terminals">Terminals</a></h4>
 <div class="outline-text-4" id="text-Terminals">
 <p>
Terminals may be:
</p>

 <ul class="org-ul"> <li>Personal Computers</li>
 <li>Smartphones</li>
 <li>(Smart-)Television Sets</li>
 <li>(Smart-)Radio Sets</li>
 <li>Specialised devices : e-Books, media players, in-vehicle thingies, smart speakers</li>
 <li>Unrelated devices : Billboards, digital photo frames, tickers</li>
 <li>Actual paper newspapers, journals, magazines</li>
 <li>Human assistants</li>
</ul> <p>
Reception tools:
</p>

 <ul class="org-ul"> <li>Specialised : News app, news website, NNTP-reader</li>
 <li>General-purpose (coerced) : Email-reader, LiveJournal feed,</li>
</ul> <p>
By intent: 
</p>

 <ul class="org-ul"> <li>Intentional : I subscribe</li>
 <li>Sponsored : Ads</li>
 <li>Subliminal : “Native ads”, “Biased news providers”</li>
</ul></div>
</div>

 <div id="outline-container-Time,-selection,-batching,-conversion." class="outline-4">
 <h4 id="Time,-selection,-batching,-conversion."> <span class="section-number-4">4.7.2.</span>  <a href="#Time,-selection,-batching,-conversion.">Time, selection, batching, conversion.</a></h4>
 <div class="outline-text-4" id="text-Time,-selection,-batching,-conversion.">
 <p>
This section is hard to describe, but it is an important point of attention.
The time, place, size (weight/length), grouping, format of the news form an important selling point.
</p>

 <p>
For example, a consumer is driving to work. 
Driving requires relatively low concentration, so one may, perhaps, want to receive some news at the time.
However, the sort of attention a driver may dedicate to consuming the information is limited generally to audio.
</p>

 <p>
Selection in this section is not entirely the same thing as filtering.
Vaguely speaking, filtering is a partition of the news into useful/useless, whereas selection is working with the news that have already been chosen to be useful, and are further selected to be the most appropriate for the user at the time/place/class.
</p>

 <ul class="org-ul"> <li>Manual : presidents have it. Do other people?</li>
 <li>Automatic : Logic-based.</li>
 <li>Collaborative : Extending the manual thing to algorithms.</li>
</ul></div>
</div>
</div>

 <div id="outline-container-Sharing-and-Feedback" class="outline-3">
 <h3 id="Sharing-and-Feedback"> <span class="section-number-3">4.8.</span>  <a href="#Sharing-and-Feedback">Sharing and Feedback</a></h3>
 <div class="outline-text-3" id="text-Sharing-and-Feedback">
</div>

 <div id="outline-container-Sharing" class="outline-4">
 <h4 id="Sharing"> <span class="section-number-4">4.8.1.</span>  <a href="#Sharing">Sharing</a></h4>
 <div class="outline-text-4" id="text-Sharing">
 <p>
Sharing is an important part of the news ecosystem.
</p>

 <ul class="org-ul"> <li>Specialised : the news are forwarded to the receivers (friends) using specialised channels, such as the “Share” button, and are delivered to their expected news terminal.</li>
 <li>Ad-hoc : the news are forwarded to the receivers in an ad-hoc manner.</li>
</ul></div>
</div>

 <div id="outline-container-Feedback" class="outline-4">
 <h4 id="Feedback"> <span class="section-number-4">4.8.2.</span>  <a href="#Feedback">Feedback</a></h4>
 <div class="outline-text-4" id="text-Feedback">
 <p>
Feedback is not distant semantically from sharing.
In some sense, sharing is the most basic kind of reaction that a user may have.
</p>

 <ul class="org-ul"> <li>Direct : comments, “like” buttons, subscriptions, donations, stuff built-into the news pieces themselves, class selection, subscriptions, preferences.</li>
 <li>Indirect
 <ul class="org-ul"> <li>Traceable : “Sign a petition”, and the provider sees the number of signatures.</li>
 <li>Non-traceable : “Lock your door”, and the provider does not know if his call is heeded.</li>
</ul></li>
</ul></div>
</div>
</div>

 <div id="outline-container-Storage-and-indexing" class="outline-3">
 <h3 id="Storage-and-indexing"> <span class="section-number-3">4.9.</span>  <a href="#Storage-and-indexing">Storage and indexing</a></h3>
 <div class="outline-text-3" id="text-Storage-and-indexing">
 <p>
News pieces have to be stored somewhere.
News sources often do not care about making the pieces persistent to any degree.
</p>

 <p>
News providers usually care a bit more about that, but even they often neglect permanence of web-links.
</p>

 <p>
It is not by definition clear which news are worth storing for a long time.
CCTV systems are usually wiped very soon after recording, perhaps about half-year maximum.
</p>

 <p>
Indexing and searching is also a difficult question.
Progress exists for text search (e.g. elastic), and there are things like “search by image”, but the state of the art I do not know.
</p>
</div>
</div>


 <div id="outline-container-Systems-analysis" class="outline-3">
 <h3 id="Systems-analysis"> <span class="section-number-3">4.10.</span>  <a href="#Systems-analysis">Systems analysis</a></h3>
 <div class="outline-text-3" id="text-Systems-analysis">
</div>

 <div id="outline-container-Flow-analysis" class="outline-4">
 <h4 id="Flow-analysis"> <span class="section-number-4">4.10.1.</span>  <a href="#Flow-analysis">Flow analysis</a></h4>
 <div class="outline-text-4" id="text-Flow-analysis">
 <p>
In terms of “selling point”, this section is completely on the back-end side of the industry.
</p>

 <p>
It is that kind of services that show you which words are “trending” now, what kind of news is dominating the agenda, which news produce more feedback. 
</p>
</div>
</div>

 <div id="outline-container-KYC/Customer-analysis" class="outline-4">
 <h4 id="KYC/Customer-analysis"> <span class="section-number-4">4.10.2.</span>  <a href="#KYC/Customer-analysis">KYC/Customer analysis</a></h4>
 <div class="outline-text-4" id="text-KYC/Customer-analysis">
 <p>
If a news service is getting feedback, it inevitably has a profile of the users
This information can be used to improve the news flow, as well as make money on it.
</p>
</div>
</div>

 <div id="outline-container-Stories" class="outline-4">
 <h4 id="Stories"> <span class="section-number-4">4.10.3.</span>  <a href="#Stories">Stories</a></h4>
 <div class="outline-text-4" id="text-Stories">
 <p>
If the storage is efficient, and flow analysis is advanced, it should be possible to build “books” or “narratives” that tell a story, as a narrated sequence of events, concatenated and re-worded to the same language. 
Not sure this is really feasible now.
</p>
</div>
</div>
</div>

 <div id="outline-container-Sources-of-income" class="outline-3">
 <h3 id="Sources-of-income"> <span class="section-number-3">4.11.</span>  <a href="#Sources-of-income">Sources of income</a></h3>
 <div class="outline-text-3" id="text-Sources-of-income">
 <p>
These kinds of monetisation may be present at any stage of the pipeline.
</p>

 <ul class="org-ul"> <li>Cost-less/Enthusiasm</li>
 <li>(Sub-)Service subscriptions
 <ul class="org-ul"> <li>Time-limited</li>
 <li>Lifetime</li>
</ul></li>
 <li>Pay-per-piece</li>
 <li>Advertisement
 <ul class="org-ul"> <li>Explicit</li>
 <li>Native</li>
</ul></li>
 <li>Pay-per-publication (from authors, e.g. OpenAccess)</li>
 <li>Information selling (e.g. selling customer data)</li>
 <li>Sponsorship
 <ul class="org-ul"> <li>Government</li>
 <li>Commercial</li>
</ul></li>
 <li>Donations</li>
 <li>Merchandise</li>
 <li>Archive access fee</li>
</ul></div>
</div>

 <div id="outline-container-Computing-Technologies-and-Buzzwords" class="outline-3">
 <h3 id="Computing-Technologies-and-Buzzwords"> <span class="section-number-3">4.12.</span>  <a href="#Computing-Technologies-and-Buzzwords">Computing Technologies and Buzzwords</a></h3>
 <div class="outline-text-3" id="text-Computing-Technologies-and-Buzzwords">
</div>

 <div id="outline-container-technologies:" class="outline-4">
 <h4 id="technologies:"> <span class="section-number-4">4.12.1.</span>  <a href="#technologies:">Technologies:</a></h4>
 <div class="outline-text-4" id="text-technologies:">
 <ul class="org-ul"> <li>RSS, Atom : news-feed supplying format</li>
 <li>NNTP : an old ticker-style news protocol</li>
 <li>Email, webmail : a way to receive news</li>
 <li>HTML, HTTP, Web : the way most people create news nowadays</li>
 <li>NLTK : a Natural Language Processing tool for Python</li>
 <li>Elastic, xapian  : search libraries</li>
 <li>Android, iOS, Windows, Linux, MacOS : computing environments</li>
 <li>Google Analytics, Yandex Analytica : KYC tools</li>
 <li>Selenium : programmable browser</li>
 <li>grep, awk, bison/yacc/lex/flex/sed, perl : text processing tools</li>
 <li>Siri, Alisa, Cortana, Baidu : a way to get audio training data</li>
 <li>OpenCV : a way to extract something from video</li>
 <li>TTS : Text-to-Speech</li>
 <li>Speech Recognition : Speech to text transcription</li>
 <li>OCR : Optical Character Recognition</li>
</ul></div>
</div>

 <div id="outline-container-Buzzwords" class="outline-4">
 <h4 id="Buzzwords"> <span class="section-number-4">4.12.2.</span>  <a href="#Buzzwords">Buzzwords</a></h4>
 <div class="outline-text-4" id="text-Buzzwords">
 <ul class="org-ul"> <li>Cambridge Analytica</li>
 <li>Palantir Technologies</li>
 <li>Semantic Web</li>
 <li>word2vec</li>
 <li>Deep Neural Networks</li>
</ul></div>
</div>

 <div id="outline-container-Companies" class="outline-4">
 <h4 id="Companies"> <span class="section-number-4">4.12.3.</span>  <a href="#Companies">Companies</a></h4>
 <div class="outline-text-4" id="text-Companies">
 <ul class="org-ul"> <li>Bloomberg</li>
 <li>Reuters</li>
 <li>Xinhua News</li>
 <li>BBC</li>
 <li>Habr/TM</li>
 <li>Slashdot Media</li>
 <li>Facebook</li>
 <li>Twitter</li>
 <li>LiveJournal</li>
 <li>Google</li>
 <li>Microsoft</li>
 <li>Yandex</li>
 <li>Baidu</li>
 <li>Tencent</li>
 <li>Alibaba</li>
</ul></div>
</div>

 <div id="outline-container-Markets" class="outline-4">
 <h4 id="Markets"> <span class="section-number-4">4.12.4.</span>  <a href="#Markets">Markets</a></h4>
 <div class="outline-text-4" id="text-Markets">
 <ul class="org-ul"> <li>UK</li>
 <li>USA</li>
 <li>Russia</li>
 <li>China</li>
</ul></div>
</div>

 <div id="outline-container-Languages" class="outline-4">
 <h4 id="Languages"> <span class="section-number-4">4.12.5.</span>  <a href="#Languages">Languages</a></h4>
 <div class="outline-text-4" id="text-Languages">
 <ul class="org-ul"> <li>English</li>
 <li>Russian</li>
 <li>Chinese</li>
</ul> <p>
(- Spanish/French/Arabic/Japanese)
</p>
</div>
</div>
</div>
</section> <section id="outline-container-Review" class="outline-2"> <h2 id="Review"> <span class="section-number-2">5.</span>  <a href="#Review">Review</a></h2>
 <div class="outline-text-2" id="text-Review">
 <p>
Any decent analytic work requires peer-review.
</p>

 <p>
If you are invited to be a peer reviewed for this document, you are encouraged to add you comments into this section.
</p>
</div>
</section> <section id="outline-container-Conclusion" class="outline-2"> <h2 id="Conclusion"> <span class="section-number-2">6.</span>  <a href="#Conclusion">Conclusion</a></h2>
 <div class="outline-text-2" id="text-Conclusion">
 <p>
No conclusion so far.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-09-08_News-A-Discussion-with-Ilya-Vorontsov-and-David-Wood/2020-09-08_News-A-Discussion-with-Ilya-Vorontsov-and-David-Wood.html"/>
  <id>https://lockywolf.net/2020-09-08_News-A-Discussion-with-Ilya-Vorontsov-and-David-Wood/2020-09-08_News-A-Discussion-with-Ilya-Vorontsov-and-David-Wood.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Опубликован Scheme Request For Implementation – 203: A Simple Drawing Language in the Style of SICP.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Опубликован Scheme Request For Implementation – 203: A Simple Drawing Language in the Style of SICP.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#SICP">1. SICP</a></li>
 <li> <a href="#%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%BC%D1%8B">2. Особенные темы</a></li>
 <li> <a href="#SRFI">3. SRFI</a></li>
 <li> <a href="#%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%8F">4. Функциональная геометрия</a></li>
 <li> <a href="#%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F">5. Реализация</a></li>
 <li> <a href="#%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5">6. Заключение</a></li>
 <li> <a href="#%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B">7. Контакты</a></li>
</ul></div>
</nav> <figure id="org70c2108"> <img src="001_headtitle-geometry-examples.png" alt="001_headtitle-geometry-examples.png"></img></figure> <section id="outline-container-SICP" class="outline-2"> <h2 id="SICP"> <span class="section-number-2">1.</span>  <a href="#SICP">SICP</a></h2>
 <div class="outline-text-2" id="text-SICP">

 <figure id="org84c9d2e"> <img src="006_sicp-cover_OIP.wjhtUV4XV0tcZvNnvYcf-gHaHS.jpeg" alt="006_sicp-cover_OIP.wjhtUV4XV0tcZvNnvYcf-gHaHS.jpeg"></img></figure> <p>
Structure and Interpretation of Computer Programs – это один из самых известных учебников программирования в мире, на основе которого несколько десятков лет преподавался начальный курс программирования в MIT, а во многих унивеситетах, в том числе в Беркли, преподаётся до сих пор.
</p>

 <p>
SICP использует Scheme в качестве основного (практически единственного) языка программирования.
Тем не менее, нельзя сказать, что это учебник Scheme, потому что он выходит далеко за пределы того, что обычно входит в программу “изучения языка”.
Стоит только упомянуть, что в программу входят системы распространения ограничений, интерпретаторы языков программирования, симуляторы цифровых схем, а также симулятор целого процессорного модуля.
</p>

 <p>
Большая часть тем, входящих в учебник, выполнимы на “стандартной” (в смысле, соответствующего последнему на текущий момент стандарту Revised^7 Report on Algorithmic Language Scheme) Scheme.
</p>
</div>
</section> <section id="outline-container-%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%BC%D1%8B" class="outline-2"> <h2 id="%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%BC%D1%8B"> <span class="section-number-2">2.</span>  <a href="#%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%BC%D1%8B">Особенные темы</a></h2>
 <div class="outline-text-2" id="text-%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%BC%D1%8B">

 <figure id="orga355e8c"> <img src="007_riple-carry-adder.png" alt="007_riple-carry-adder.png"></img></figure> <p>
Однако, для нескольких тем, встроенных средств языке недостаточно.
В частности, темы случайных чисел, измерения времени выполнения, многопоточности и графического вывода стандартом языка не рассматриваются.
</p>

 <p>
Принятая по-умолчанию в учебнике реализация MIT/GNU-Scheme содержит необходимые примитивы, расширяющие базовый язык так, чтобы курс становился проходим.
</p>

 <p>
За многие годы, прошедшие с момента выхода SICP, некоторые реализации Scheme также реализовали многие примитивы, требуемые для прохождения курса.
</p>

 <p>
Однако, до текущего момента не существовало какого-либо нормативного документа, специфицирующего, каким именно требованиям должен удовлетворять интерпретатор, чтобы “поддерживать” прохождение курса.
</p>
</div>
</section> <section id="outline-container-SRFI" class="outline-2"> <h2 id="SRFI"> <span class="section-number-2">3.</span>  <a href="#SRFI">SRFI</a></h2>
 <div class="outline-text-2" id="text-SRFI">

 <figure id="org5ebc7a7"> <img src="004_srfi-logo.jpg" alt="004_srfi-logo.jpg"></img></figure> <p>
Scheme Requests for Implementation – это community process, принятый в семействе языков 
Scheme. 
В некоторых аспектах он Java Community Process или Python Enhancement Proposals.
Так или иначе, это главный инструмент обсуждения развития языкового семейства, а также главный инструмент обеспечения переносимости кода.
</p>

 <p>
Написание SRFI показалось автору сей заметки естественным выбором для формализации требований к программным системам.
</p>

 <p>
В связи с тем, что ассортимент тем, предлагаемых для выполнения, достаточно велик, показалось разумным ограничить предлагаемый документ узкой, хорошо формализованной, хотя в тоже время очень абстрактной темой графического вывода.
</p>
</div>
</section> <section id="outline-container-%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%8F" class="outline-2"> <h2 id="%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%8F"> <span class="section-number-2">4.</span>  <a href="#%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%8F">Функциональная геометрия</a></h2>
 <div class="outline-text-2" id="text-%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%8F">
 <p>
Основой главы, посвящённой графической подсистема компьютера, в SICP послужила статься Питера Хендерсона “Функциональная Геометрия”. ( <a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.137.1503">http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.137.1503</a>,
 <a href="https://eprints.soton.ac.uk/257577/1/funcgeo2.pdf">https://eprints.soton.ac.uk/257577/1/funcgeo2.pdf</a>)
</p>


 <figure id="org502d425"> <img src="002_image-from-henderson-paper.png" alt="002_image-from-henderson-paper.png"></img></figure> <p>
Знакомым с творчеством Морица Эшера это изображение может показаться смутно знакомым.
</p>


 <figure id="org793098f"> <img src="003_2012_NYR_02548_0042_000(maurits_cornelis_escher_smaller_and_smaller).jpg" alt="003_2012_NYR_02548_0042_000(maurits_cornelis_escher_smaller_and_smaller).jpg"></img></figure> <p>
В основе техник функциольнальной геометрии лежат две идеи.
</p>
 <ul class="org-ul"> <li>Первая идея в том, что должен существовать некоторый языковой объект painter, который при активации должен рисовать в нужном месте холста (экрана) что-то заданное программистом. (В Scheme painter – это функция.)</li>
 <li>Вторая идея в том, что нужен какой-то способ комбинировать painter’ы, получая новые painter’ы.</li>
</ul> <p>
В КДПВ вынесена иллюстрация этого подхода.
</p>
</div>
</section> <section id="outline-container-%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F" class="outline-2"> <h2 id="%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F"> <span class="section-number-2">5.</span>  <a href="#%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F">Реализация</a></h2>
 <div class="outline-text-2" id="text-%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F">
 <p>
В предложенном SRFI не предоставленно исчерпывающей реализации метода функциональной геометрии.
Однако, предложен субстрат, достаточный для того, чтобы активный студент мог сам реализовать подмножество функциональной геометрии, предложенной в SICP на любом интерпретаторе, поддерживающем SRFI-203 (результат работы автора сей заметки).
</p>

 <p>
Полный текст предложения находится по ссылке:
</p>

 <p>
 <a href="https://srfi.schemers.org/srfi-203/srfi-203.html">https://srfi.schemers.org/srfi-203/srfi-203.html</a>
</p>

 <p>
Абстракт и технические детали можно найти здесь:
</p>

 <p>
 <a href="https://srfi.schemers.org/srfi-203/">https://srfi.schemers.org/srfi-203/</a>
</p>

 <p>
SRFI находился на обсуждении два месяца, и за это время было предложено две реализации, для интерпретатора Chibi, и для интерпретатора Kawa.
</p>


 <figure id="org2f758ea"> <img src="005_chibi-scheme_OIP.B9nKwbKB1-okAsaS1zmRMAAAAA.jpeg" alt="005_chibi-scheme_OIP.B9nKwbKB1-okAsaS1zmRMAAAAA.jpeg"></img></figure></div>
</section> <section id="outline-container-%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5" class="outline-2"> <h2 id="%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5"> <span class="section-number-2">6.</span>  <a href="#%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5">Заключение</a></h2>
 <div class="outline-text-2" id="text-%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5">
 <p>
Автор сей заметки (он же автор SRFI) надеется, что предложенное им расширение языка будет позитивно воспринято сообществом. 
(Те, кто уже сейчас пользуются Scheme, могут предложить поставщикам своего интерпретатора включить это расширение в следующий выпуск.)
Автор также надеется, что тем, кто начинает изучать Scheme, SICP или компьютерную графику, данное расширение также поможет сэкономить усилия, затрачиваемые на технические детали, и там самым освободить больше ресурсов для собственно обучения.
</p>
</div>
</section> <section id="outline-container-%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B" class="outline-2"> <h2 id="%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B"> <span class="section-number-2">7.</span>  <a href="#%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B">Контакты</a></h2>
 <div class="outline-text-2" id="text-%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B">
 <p>
Те, кому кажется целесообразным выполняемая работа, приглашаются задонатить по PayPal-ссылке.
Также все желающие приглашаются подписаться на обновления.
</p>

 <dl class="org-dl"> <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>Twitter</dt> <dd> <a href="https://twitter.com/VANikishkin">https://twitter.com/VANikishkin</a></dd>
 <dt>PayPal</dt> <dd> <a href="https://paypal.me/independentresearch">https://paypal.me/independentresearch</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-09-18_Habr-SRFI-203-announcement/2020-09-18_habr-srfi-203-announcement.html"/>
  <id>https://lockywolf.net/2020-09-18_Habr-SRFI-203-announcement/2020-09-18_habr-srfi-203-announcement.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Learning OmegaT.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Learning OmegaT.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Questions-that-appeared-while-learning-OmegaT.">1. Questions that appeared while learning OmegaT.</a>
 <ul> <li>
 <ul> <li> <a href="#What-is-the-unicode-name-for-a-dash?">1.0.1. What is the unicode name for a dash?</a></li>
 <li> <a href="#How-to-type-a-dash-in-a-standard-Linux-keymap?">1.0.2. How to type a dash in a standard Linux keymap?</a></li>
 <li> <a href="#How-to-type-a-dash-in-scim?">1.0.3. How to type a dash in scim?</a></li>
 <li> <a href="#How-to-type-a-dash-in-UNICODE?">1.0.4. How to type a dash in UNICODE?</a></li>
 <li> <a href="#How-to-use-compose-key-to-type-in-a-dash?">1.0.5. How to use compose-key to type in a dash?</a></li>
 <li> <a href="#What-is-'Fuzzy-Matches'?">1.0.6. What is ’Fuzzy Matches’?</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Cheatsheet">2. Cheatsheet</a>
 <ul> <li> <a href="#Hotkeys">2.1. Hotkeys</a></li>
</ul></li>
 <li> <a href="#Suggestions-(bugreports)">3. Suggestions (bugreports)</a>
 <ul> <li> <a href="#Edit-Project-(C-e)">3.1. Edit Project (C-e)</a>
 <ul> <li> <a href="#Add-a-hover-hint-to-Enable-Sentense-level-Segmenting">3.1.1. Add a hover hint to Enable Sentense-level Segmenting</a></li>
 <li> <a href="#Add-a-hover-hint-to-Auto-propagation-of-Translations.">3.1.2. Add a hover hint to Auto-propagation of Translations.</a></li>
 <li> <a href="#Add-a-hover-hint-to-Remove-Tags.">3.1.3. Add a hover hint to Remove Tags.</a></li>
</ul></li>
</ul></li>
 <li> <a href="#Emacs-Questions-that-appeared-while-learning-OmegaT.">4. Emacs Questions that appeared while learning OmegaT.</a>
 <ul> <li>
 <ul> <li> <a href="#How-can-I-efficiently-look-for-character-names-and-synonyms?">4.0.1. How can I efficiently look for character names and synonyms?</a></li>
 <li> <a href="#How-does-blackboard-bold-mode-work?">4.0.2. How does blackboard-bold-mode work?</a></li>
 <li> <a href="#How-does-the-charmap-package-work?">4.0.3. How does the charmap package work?</a></li>
</ul></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Questions-that-appeared-while-learning-OmegaT." class="outline-2"> <h2 id="Questions-that-appeared-while-learning-OmegaT."> <span class="section-number-2">1.</span>  <a href="#Questions-that-appeared-while-learning-OmegaT.">Questions that appeared while learning OmegaT.</a></h2>
 <div class="outline-text-2" id="text-Questions-that-appeared-while-learning-OmegaT.">
</div>
 <div id="outline-container-What-is-the-unicode-name-for-a-dash?" class="outline-4">
 <h4 id="What-is-the-unicode-name-for-a-dash?"> <span class="section-number-4">1.0.1.</span>  <a href="#What-is-the-unicode-name-for-a-dash?">What is the unicode name for a dash?</a></h4>
 <div class="outline-text-4" id="text-What-is-the-unicode-name-for-a-dash?">
</div>
</div>
 <div id="outline-container-How-to-type-a-dash-in-a-standard-Linux-keymap?" class="outline-4">
 <h4 id="How-to-type-a-dash-in-a-standard-Linux-keymap?"> <span class="section-number-4">1.0.2.</span>  <a href="#How-to-type-a-dash-in-a-standard-Linux-keymap?">How to type a dash in a standard Linux keymap?</a></h4>
 <div class="outline-text-4" id="text-How-to-type-a-dash-in-a-standard-Linux-keymap?">
</div>
</div>
 <div id="outline-container-How-to-type-a-dash-in-scim?" class="outline-4">
 <h4 id="How-to-type-a-dash-in-scim?"> <span class="section-number-4">1.0.3.</span>  <a href="#How-to-type-a-dash-in-scim?">How to type a dash in scim?</a></h4>
 <div class="outline-text-4" id="text-How-to-type-a-dash-in-scim?">
</div>
</div>
 <div id="outline-container-How-to-type-a-dash-in-UNICODE?" class="outline-4">
 <h4 id="How-to-type-a-dash-in-UNICODE?"> <span class="section-number-4">1.0.4.</span>  <a href="#How-to-type-a-dash-in-UNICODE?">How to type a dash in UNICODE?</a></h4>
 <div class="outline-text-4" id="text-How-to-type-a-dash-in-UNICODE?">
</div>
</div>
 <div id="outline-container-How-to-use-compose-key-to-type-in-a-dash?" class="outline-4">
 <h4 id="How-to-use-compose-key-to-type-in-a-dash?"> <span class="section-number-4">1.0.5.</span>  <a href="#How-to-use-compose-key-to-type-in-a-dash?">How to use compose-key to type in a dash?</a></h4>
 <div class="outline-text-4" id="text-How-to-use-compose-key-to-type-in-a-dash?">
</div>
</div>
 <div id="outline-container-What-is-'Fuzzy-Matches'?" class="outline-4">
 <h4 id="What-is-'Fuzzy-Matches'?"> <span class="section-number-4">1.0.6.</span>  <a href="#What-is-'Fuzzy-Matches'?">What is ’Fuzzy Matches’?</a></h4>
 <div class="outline-text-4" id="text-What-is-'Fuzzy-Matches'?">
</div>
</div>
</section> <section id="outline-container-Cheatsheet" class="outline-2"> <h2 id="Cheatsheet"> <span class="section-number-2">2.</span>  <a href="#Cheatsheet">Cheatsheet</a></h2>
 <div class="outline-text-2" id="text-Cheatsheet">
</div>
 <div id="outline-container-Hotkeys" class="outline-3">
 <h3 id="Hotkeys"> <span class="section-number-3">2.1.</span>  <a href="#Hotkeys">Hotkeys</a></h3>
 <div class="outline-text-3" id="text-Hotkeys">
 <p>
C-d – generate a translated document.
C-M-v – validate tags.
C-e – project settings.
C-l – see project files.
C-u – move to the next segment.
C-g – add an item to glossary.
C-f – search.
</p>
</div>
</div>
</section> <section id="outline-container-Suggestions-(bugreports)" class="outline-2"> <h2 id="Suggestions-(bugreports)"> <span class="section-number-2">3.</span>  <a href="#Suggestions-(bugreports)">Suggestions (bugreports)</a></h2>
 <div class="outline-text-2" id="text-Suggestions-(bugreports)">
</div>
 <div id="outline-container-Edit-Project-(C-e)" class="outline-3">
 <h3 id="Edit-Project-(C-e)"> <span class="section-number-3">3.1.</span>  <a href="#Edit-Project-(C-e)">Edit Project (C-e)</a></h3>
 <div class="outline-text-3" id="text-Edit-Project-(C-e)">
</div>
 <div id="outline-container-Add-a-hover-hint-to-Enable-Sentense-level-Segmenting" class="outline-4">
 <h4 id="Add-a-hover-hint-to-Enable-Sentense-level-Segmenting"> <span class="section-number-4">3.1.1.</span>  <a href="#Add-a-hover-hint-to-Enable-Sentense-level-Segmenting">Add a hover hint to Enable Sentense-level Segmenting</a></h4>
 <div class="outline-text-4" id="text-Add-a-hover-hint-to-Enable-Sentense-level-Segmenting">
</div>
</div>
 <div id="outline-container-Add-a-hover-hint-to-Auto-propagation-of-Translations." class="outline-4">
 <h4 id="Add-a-hover-hint-to-Auto-propagation-of-Translations."> <span class="section-number-4">3.1.2.</span>  <a href="#Add-a-hover-hint-to-Auto-propagation-of-Translations.">Add a hover hint to Auto-propagation of Translations.</a></h4>
 <div class="outline-text-4" id="text-Add-a-hover-hint-to-Auto-propagation-of-Translations.">
</div>
</div>
 <div id="outline-container-Add-a-hover-hint-to-Remove-Tags." class="outline-4">
 <h4 id="Add-a-hover-hint-to-Remove-Tags."> <span class="section-number-4">3.1.3.</span>  <a href="#Add-a-hover-hint-to-Remove-Tags.">Add a hover hint to Remove Tags.</a></h4>
 <div class="outline-text-4" id="text-Add-a-hover-hint-to-Remove-Tags.">
</div>
</div>
</div>
</section> <section id="outline-container-Emacs-Questions-that-appeared-while-learning-OmegaT." class="outline-2"> <h2 id="Emacs-Questions-that-appeared-while-learning-OmegaT."> <span class="section-number-2">4.</span>  <a href="#Emacs-Questions-that-appeared-while-learning-OmegaT.">Emacs Questions that appeared while learning OmegaT.</a></h2>
 <div class="outline-text-2" id="text-Emacs-Questions-that-appeared-while-learning-OmegaT.">
</div>
 <div id="outline-container-How-can-I-efficiently-look-for-character-names-and-synonyms?" class="outline-4">
 <h4 id="How-can-I-efficiently-look-for-character-names-and-synonyms?"> <span class="section-number-4">4.0.1.</span>  <a href="#How-can-I-efficiently-look-for-character-names-and-synonyms?">How can I efficiently look for character names and synonyms?</a></h4>
 <div class="outline-text-4" id="text-How-can-I-efficiently-look-for-character-names-and-synonyms?">
</div>
</div>
 <div id="outline-container-How-does-blackboard-bold-mode-work?" class="outline-4">
 <h4 id="How-does-blackboard-bold-mode-work?"> <span class="section-number-4">4.0.2.</span>  <a href="#How-does-blackboard-bold-mode-work?">How does blackboard-bold-mode work?</a></h4>
 <div class="outline-text-4" id="text-How-does-blackboard-bold-mode-work?">
</div>
</div>
 <div id="outline-container-How-does-the-charmap-package-work?" class="outline-4">
 <h4 id="How-does-the-charmap-package-work?"> <span class="section-number-4">4.0.3.</span>  <a href="#How-does-the-charmap-package-work?">How does the charmap package work?</a></h4>
 <div class="outline-text-4" id="text-How-does-the-charmap-package-work?">
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2019-05-21-Learning-OmegaT.html"/>
  <id>https://lockywolf.net/2019-05-21-Learning-OmegaT.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>How I read the cgroups manual.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">How I read the cgroups manual.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#How-I-read-the-cgroups-manual.">1. How I read the cgroups manual.</a>
 <ul> <li> <a href="#Literature">1.1. Literature</a>
 <ul> <li> <a href="#man-8-cgroups">1.1.1. man 8 cgroups</a></li>
 <li> <a href="#https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">1.1.2. https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html</a></li>
 <li> <a href="#RHEL-6-Resource-Management-Guide">1.1.3. RHEL 6 Resource Management Guide</a></li>
 <li> <a href="#RHEL-7-Resource-Management-Guide">1.1.4. RHEL 7 Resource Management Guide</a></li>
</ul></li>
 <li> <a href="#Which-packages-are-responsible-for-cgroups-in-Slackware?">1.2. Which packages are responsible for cgroups in Slackware?</a>
 <ul> <li> <a href="#sysvinit-scripts-2.1-noarch-26:28:etc/rc.d/rc.S">1.2.1. sysvinit-scripts-2.1-noarch-26:28:etc/rc.d/rc.S</a></li>
 <li> <a href="#cgmanager-0.42-x86_64-1">1.2.2. cgmanager-0.42-x86_64-1</a></li>
 <li> <a href="#libcgroup-0.41-x86_64-5">1.2.3. libcgroup-0.41-x86_64-5</a></li>
</ul></li>
 <li> <a href="#Which-files-are-responsible-for-cgroups-in-Slackware">1.3. Which files are responsible for cgroups in Slackware</a>
 <ul> <li> <a href="#sysvinit-scripts:-/etc/rc.d/rc.S">1.3.1. sysvinit-scripts: /etc/rc.d/rc.S</a></li>
 <li> <a href="#cgmanager:--------/etc/rc.d/rc.cgmanager">1.3.2. cgmanager:        /etc/rc.d/rc.cgmanager</a></li>
 <li> <a href="#cgmanager:--------/etc/rc.d/rc.cgproxy">1.3.3. cgmanager:        /etc/rc.d/rc.cgproxy</a></li>
 <li> <a href="#libcgroup:--------/etc/rc.d/rc.cgconfig">1.3.4. libcgroup:        /etc/rc.d/rc.cgconfig</a></li>
 <li> <a href="#libcgroup:--------/etc/rc.d/rc.cgred">1.3.5. libcgroup:        /etc/rc.d/rc.cgred</a></li>
 <li> <a href="#libcgroup:--------/etc/cgconfig.conf">1.3.6. libcgroup:        /etc/cgconfig.conf</a></li>
 <li> <a href="#libcgroup:--------/etc/cgrules.conf-default-libcgroup-configuration-file">1.3.7. libcgroup:        /etc/cgrules.conf default libcgroup configuration file</a></li>
 <li> <a href="#libcgroup:--------/etc/cgrules.d-default-libcgroup-configuration-files-directory">1.3.8. libcgroup:        /etc/cgrules.d default libcgroup configuration files directory</a></li>
 <li> <a href="#/etc/cgconfig.conf-default-templates-file">1.3.9. /etc/cgconfig.conf default templates file</a></li>
 <li> <a href="#/etc/cgconfig.d-default-templates-directory">1.3.10. /etc/cgconfig.d default templates directory</a></li>
</ul></li>
 <li> <a href="#Which-binaries-we-can-use">1.4. Which binaries we can use</a>
 <ul> <li> <a href="#libcgroup:--usr/bin/cgclassify">1.4.1. libcgroup:  usr/bin/cgclassify</a></li>
 <li> <a href="#libcgroup:--usr/bin/cgcreate">1.4.2. libcgroup:  usr/bin/cgcreate</a></li>
 <li> <a href="#libcgroup:--usr/bin/cgdelete">1.4.3. libcgroup:  usr/bin/cgdelete</a></li>
 <li> <a href="#libcgroup:--usr/bin/cgexec">1.4.4. libcgroup:  usr/bin/cgexec</a></li>
 <li> <a href="#libcgroup:--usr/bin/cgget">1.4.5. libcgroup:  usr/bin/cgget</a></li>
 <li> <a href="#libcgroup:--usr/bin/cgset">1.4.6. libcgroup:  usr/bin/cgset</a></li>
 <li> <a href="#libcgroup:--usr/bin/cgsnapshot">1.4.7. libcgroup:  usr/bin/cgsnapshot</a></li>
 <li> <a href="#libcgroup:--usr/bin/lscgroup">1.4.8. libcgroup:  usr/bin/lscgroup</a></li>
 <li> <a href="#libcgroup:--usr/bin/lssubsys">1.4.9. libcgroup:  usr/bin/lssubsys</a></li>
 <li> <a href="#libcgroup:--usr/sbin/cgclear">1.4.10. libcgroup:  usr/sbin/cgclear</a></li>
 <li> <a href="#libcgroup:--usr/sbin/cgconfigparser">1.4.11. libcgroup:  usr/sbin/cgconfigparser</a></li>
 <li> <a href="#libcgroup:--usr/sbin/cgrulesengd">1.4.12. libcgroup:  usr/sbin/cgrulesengd</a></li>
 <li> <a href="#cgmanager:--usr/bin/cgm">1.4.13. cgmanager:  usr/bin/cgm</a></li>
 <li> <a href="#cgmanager:--usr/sbin/cgmanager">1.4.14. cgmanager:  usr/sbin/cgmanager</a></li>
 <li> <a href="#cgmanager:--usr/sbin/cgproxy">1.4.15. cgmanager:  usr/sbin/cgproxy</a></li>
</ul></li>
 <li> <a href="#Basic-logic-for-the-resource-usage-restriction">1.5. Basic logic for the resource usage restriction</a>
 <ul> <li> <a href="#I-want-to-never-have-to-launch-cgexec-manually">1.5.1. I want to never have to launch cgexec manually</a></li>
 <li> <a href="#I-want-to-use-stock-Slackware-tools,-whenever-possible">1.5.2. I want to use stock Slackware tools, whenever possible</a></li>
 <li> <a href="#I-want-to-use-cgroupv2-controllers-whenever-possible.">1.5.3. I want to use cgroupv2 controllers whenever possible.</a></li>
</ul></li>
 <li> <a href="#Limitations">1.6. Limitations</a>
 <ul> <li> <a href="#cpuset-controller-is-not-working-in-v2">1.6.1. cpuset controller is not working in v2</a></li>
 <li> <a href="#cpuset-controller-does-not-work-with-hibernation">1.6.2. cpuset controller does not work with hibernation</a></li>
 <li> <a href="#rc.S-explicitly-mounts-the-v1-controllers">1.6.3. rc.S explicitly mounts the v1 controllers</a></li>
 <li> <a href="#libcgroup-doesn't-seem-to-support-setting-release_agent">1.6.4. libcgroup doesn’t seem to support setting release_agent</a></li>
</ul></li>
 <li> <a href="#Questions-to-the-community">1.7. Questions to the community</a>
 <ul> <li> <a href="#A-question-on-the-Slackware-forum">1.7.1. A question on the Slackware forum</a></li>
 <li> <a href="#A-question-on-the-libcgroups-mailing-list">1.7.2. A question on the libcgroups mailing list</a></li>
</ul></li>
 <li> <a href="#I-do-use-the-dlack's-PAM-packages">1.8. I do use the dlack’s PAM packages</a></li>
 <li> <a href="#Decisions">1.9. Decisions</a>
 <ul> <li> <a href="#It-seems-that-I-have-to-use-the-controllers-v1">1.9.1. It seems that I have to use the controllers v1</a></li>
</ul></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-How-I-read-the-cgroups-manual." class="outline-2"> <h2 id="How-I-read-the-cgroups-manual."> <span class="section-number-2">1.</span>  <a href="#How-I-read-the-cgroups-manual.">How I read the cgroups manual.</a></h2>
 <div class="outline-text-2" id="text-How-I-read-the-cgroups-manual.">
</div>
 <div id="outline-container-Literature" class="outline-3">
 <h3 id="Literature"> <span class="section-number-3">1.1.</span>  <a href="#Literature">Literature</a></h3>
 <div class="outline-text-3" id="text-Literature">
 <p>
Total 160 pages.
</p>
</div>
 <div id="outline-container-man-8-cgroups" class="outline-4">
 <h4 id="man-8-cgroups"> <span class="section-number-4">1.1.1.</span>  <a href="#man-8-cgroups">man 8 cgroups</a></h4>
 <div class="outline-text-4" id="text-man-8-cgroups">
</div>
</div>
 <div id="outline-container-https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html" class="outline-4">
 <h4 id="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html"> <span class="section-number-4">1.1.2.</span>  <a href="#https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html"></a> <a href="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html</a></h4>
 <div class="outline-text-4" id="text-https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">
 <p>
Not the last version, but I already lost the filename. From some kernel file October 2015, Tejun Heo
</p>
</div>
</div>
 <div id="outline-container-RHEL-6-Resource-Management-Guide" class="outline-4">
 <h4 id="RHEL-6-Resource-Management-Guide"> <span class="section-number-4">1.1.3.</span>  <a href="#RHEL-6-Resource-Management-Guide">RHEL 6 Resource Management Guide</a></h4>
 <div class="outline-text-4" id="text-RHEL-6-Resource-Management-Guide">
</div>
</div>
 <div id="outline-container-RHEL-7-Resource-Management-Guide" class="outline-4">
 <h4 id="RHEL-7-Resource-Management-Guide"> <span class="section-number-4">1.1.4.</span>  <a href="#RHEL-7-Resource-Management-Guide">RHEL 7 Resource Management Guide</a></h4>
 <div class="outline-text-4" id="text-RHEL-7-Resource-Management-Guide">
</div>
</div>
</div>

 <div id="outline-container-Which-packages-are-responsible-for-cgroups-in-Slackware?" class="outline-3">
 <h3 id="Which-packages-are-responsible-for-cgroups-in-Slackware?"> <span class="section-number-3">1.2.</span>  <a href="#Which-packages-are-responsible-for-cgroups-in-Slackware?">Which packages are responsible for cgroups in Slackware?</a></h3>
 <div class="outline-text-3" id="text-Which-packages-are-responsible-for-cgroups-in-Slackware?">
</div>
 <div id="outline-container-sysvinit-scripts-2.1-noarch-26:28:etc/rc.d/rc.S" class="outline-4">
 <h4 id="sysvinit-scripts-2.1-noarch-26:28:etc/rc.d/rc.S"> <span class="section-number-4">1.2.1.</span>  <a href="#sysvinit-scripts-2.1-noarch-26:28:etc/rc.d/rc.S">sysvinit-scripts-2.1-noarch-26:28:etc/rc.d/rc.S</a></h4>
 <div class="outline-text-4" id="text-sysvinit-scripts-2.1-noarch-26:28:etc/rc.d/rc.S">
 <p>
Mounts the v1 filesystem and starts the services.
</p>
</div>
</div>
 <div id="outline-container-cgmanager-0.42-x86_64-1" class="outline-4">
 <h4 id="cgmanager-0.42-x86_64-1"> <span class="section-number-4">1.2.2.</span>  <a href="#cgmanager-0.42-x86_64-1">cgmanager-0.42-x86_64-1</a></h4>
 <div class="outline-text-4" id="text-cgmanager-0.42-x86_64-1">
 <p>
Is used mostly for proxying control groups to containers.
</p>
</div>
</div>
 <div id="outline-container-libcgroup-0.41-x86_64-5" class="outline-4">
 <h4 id="libcgroup-0.41-x86_64-5"> <span class="section-number-4">1.2.3.</span>  <a href="#libcgroup-0.41-x86_64-5">libcgroup-0.41-x86_64-5</a></h4>
 <div class="outline-text-4" id="text-libcgroup-0.41-x86_64-5">
 <p>
Has an actual daemon to manage control groups.
</p>
</div>
</div>
</div>

 <div id="outline-container-Which-files-are-responsible-for-cgroups-in-Slackware" class="outline-3">
 <h3 id="Which-files-are-responsible-for-cgroups-in-Slackware"> <span class="section-number-3">1.3.</span>  <a href="#Which-files-are-responsible-for-cgroups-in-Slackware">Which files are responsible for cgroups in Slackware</a></h3>
 <div class="outline-text-3" id="text-Which-files-are-responsible-for-cgroups-in-Slackware">
</div>
 <div id="outline-container-sysvinit-scripts:-/etc/rc.d/rc.S" class="outline-4">
 <h4 id="sysvinit-scripts:-/etc/rc.d/rc.S"> <span class="section-number-4">1.3.1.</span>  <a href="#sysvinit-scripts:-/etc/rc.d/rc.S">sysvinit-scripts: /etc/rc.d/rc.S</a></h4>
 <div class="outline-text-4" id="text-sysvinit-scripts:-/etc/rc.d/rc.S">
</div>
 <ol class="org-ol"> <li> <a id="Mounts-the-v1-controllers-at-lines-51-74"></a> <a href="#Mounts-the-v1-controllers-at-lines-51-74">Mounts the v1 controllers at lines 51-74</a> <br></br> <div class="outline-text-5" id="text-Mounts-the-v1-controllers-at-lines-51-74">
</div>
</li>
 <li> <a id="Starts-cgmanager/cgproxy-at-lines-375-378"></a> <a href="#Starts-cgmanager/cgproxy-at-lines-375-378">Starts cgmanager/cgproxy at lines 375-378</a> <br></br> <div class="outline-text-5" id="text-Starts-cgmanager/cgproxy-at-lines-375-378">
</div>
</li>
 <li> <a id="Starts-libcgroup-services-at-lines-380-384"></a> <a href="#Starts-libcgroup-services-at-lines-380-384">Starts libcgroup services at lines 380-384</a> <br></br> <div class="outline-text-5" id="text-Starts-libcgroup-services-at-lines-380-384">
</div>
</li>
</ol></div>
 <div id="outline-container-cgmanager:--------/etc/rc.d/rc.cgmanager" class="outline-4">
 <h4 id="cgmanager:--------/etc/rc.d/rc.cgmanager"> <span class="section-number-4">1.3.2.</span>  <a href="#cgmanager:--------/etc/rc.d/rc.cgmanager">cgmanager:        /etc/rc.d/rc.cgmanager</a></h4>
 <div class="outline-text-4" id="text-cgmanager:--------/etc/rc.d/rc.cgmanager">
</div>
</div>
 <div id="outline-container-cgmanager:--------/etc/rc.d/rc.cgproxy" class="outline-4">
 <h4 id="cgmanager:--------/etc/rc.d/rc.cgproxy"> <span class="section-number-4">1.3.3.</span>  <a href="#cgmanager:--------/etc/rc.d/rc.cgproxy">cgmanager:        /etc/rc.d/rc.cgproxy</a></h4>
 <div class="outline-text-4" id="text-cgmanager:--------/etc/rc.d/rc.cgproxy">
</div>
</div>
 <div id="outline-container-libcgroup:--------/etc/rc.d/rc.cgconfig" class="outline-4">
 <h4 id="libcgroup:--------/etc/rc.d/rc.cgconfig"> <span class="section-number-4">1.3.4.</span>  <a href="#libcgroup:--------/etc/rc.d/rc.cgconfig">libcgroup:        /etc/rc.d/rc.cgconfig</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--------/etc/rc.d/rc.cgconfig">
</div>
</div>
 <div id="outline-container-libcgroup:--------/etc/rc.d/rc.cgred" class="outline-4">
 <h4 id="libcgroup:--------/etc/rc.d/rc.cgred"> <span class="section-number-4">1.3.5.</span>  <a href="#libcgroup:--------/etc/rc.d/rc.cgred">libcgroup:        /etc/rc.d/rc.cgred</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--------/etc/rc.d/rc.cgred">
</div>
</div>
 <div id="outline-container-libcgroup:--------/etc/cgconfig.conf" class="outline-4">
 <h4 id="libcgroup:--------/etc/cgconfig.conf"> <span class="section-number-4">1.3.6.</span>  <a href="#libcgroup:--------/etc/cgconfig.conf">libcgroup:        /etc/cgconfig.conf</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--------/etc/cgconfig.conf">
</div>
</div>
 <div id="outline-container-libcgroup:--------/etc/cgrules.conf-default-libcgroup-configuration-file" class="outline-4">
 <h4 id="libcgroup:--------/etc/cgrules.conf-default-libcgroup-configuration-file"> <span class="section-number-4">1.3.7.</span>  <a href="#libcgroup:--------/etc/cgrules.conf-default-libcgroup-configuration-file">libcgroup:        /etc/cgrules.conf default libcgroup configuration file</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--------/etc/cgrules.conf-default-libcgroup-configuration-file">
</div>
</div>
 <div id="outline-container-libcgroup:--------/etc/cgrules.d-default-libcgroup-configuration-files-directory" class="outline-4">
 <h4 id="libcgroup:--------/etc/cgrules.d-default-libcgroup-configuration-files-directory"> <span class="section-number-4">1.3.8.</span>  <a href="#libcgroup:--------/etc/cgrules.d-default-libcgroup-configuration-files-directory">libcgroup:        /etc/cgrules.d default libcgroup configuration files directory</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--------/etc/cgrules.d-default-libcgroup-configuration-files-directory">
</div>
</div>
 <div id="outline-container-/etc/cgconfig.conf-default-templates-file" class="outline-4">
 <h4 id="/etc/cgconfig.conf-default-templates-file"> <span class="section-number-4">1.3.9.</span>  <a href="#/etc/cgconfig.conf-default-templates-file">/etc/cgconfig.conf default templates file</a></h4>
 <div class="outline-text-4" id="text-/etc/cgconfig.conf-default-templates-file">
</div>
</div>
 <div id="outline-container-/etc/cgconfig.d-default-templates-directory" class="outline-4">
 <h4 id="/etc/cgconfig.d-default-templates-directory"> <span class="section-number-4">1.3.10.</span>  <a href="#/etc/cgconfig.d-default-templates-directory">/etc/cgconfig.d default templates directory</a></h4>
 <div class="outline-text-4" id="text-/etc/cgconfig.d-default-templates-directory">
</div>
</div>
</div>


 <div id="outline-container-Which-binaries-we-can-use" class="outline-3">
 <h3 id="Which-binaries-we-can-use"> <span class="section-number-3">1.4.</span>  <a href="#Which-binaries-we-can-use">Which binaries we can use</a></h3>
 <div class="outline-text-3" id="text-Which-binaries-we-can-use">
</div>
 <div id="outline-container-libcgroup:--usr/bin/cgclassify" class="outline-4">
 <h4 id="libcgroup:--usr/bin/cgclassify"> <span class="section-number-4">1.4.1.</span>  <a href="#libcgroup:--usr/bin/cgclassify">libcgroup:  usr/bin/cgclassify</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/bin/cgclassify">
</div>
</div>
 <div id="outline-container-libcgroup:--usr/bin/cgcreate" class="outline-4">
 <h4 id="libcgroup:--usr/bin/cgcreate"> <span class="section-number-4">1.4.2.</span>  <a href="#libcgroup:--usr/bin/cgcreate">libcgroup:  usr/bin/cgcreate</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/bin/cgcreate">
</div>
</div>
 <div id="outline-container-libcgroup:--usr/bin/cgdelete" class="outline-4">
 <h4 id="libcgroup:--usr/bin/cgdelete"> <span class="section-number-4">1.4.3.</span>  <a href="#libcgroup:--usr/bin/cgdelete">libcgroup:  usr/bin/cgdelete</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/bin/cgdelete">
</div>
</div>
 <div id="outline-container-libcgroup:--usr/bin/cgexec" class="outline-4">
 <h4 id="libcgroup:--usr/bin/cgexec"> <span class="section-number-4">1.4.4.</span>  <a href="#libcgroup:--usr/bin/cgexec">libcgroup:  usr/bin/cgexec</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/bin/cgexec">
</div>
</div>
 <div id="outline-container-libcgroup:--usr/bin/cgget" class="outline-4">
 <h4 id="libcgroup:--usr/bin/cgget"> <span class="section-number-4">1.4.5.</span>  <a href="#libcgroup:--usr/bin/cgget">libcgroup:  usr/bin/cgget</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/bin/cgget">
</div>
</div>
 <div id="outline-container-libcgroup:--usr/bin/cgset" class="outline-4">
 <h4 id="libcgroup:--usr/bin/cgset"> <span class="section-number-4">1.4.6.</span>  <a href="#libcgroup:--usr/bin/cgset">libcgroup:  usr/bin/cgset</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/bin/cgset">
</div>
</div>
 <div id="outline-container-libcgroup:--usr/bin/cgsnapshot" class="outline-4">
 <h4 id="libcgroup:--usr/bin/cgsnapshot"> <span class="section-number-4">1.4.7.</span>  <a href="#libcgroup:--usr/bin/cgsnapshot">libcgroup:  usr/bin/cgsnapshot</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/bin/cgsnapshot">
</div>
</div>
 <div id="outline-container-libcgroup:--usr/bin/lscgroup" class="outline-4">
 <h4 id="libcgroup:--usr/bin/lscgroup"> <span class="section-number-4">1.4.8.</span>  <a href="#libcgroup:--usr/bin/lscgroup">libcgroup:  usr/bin/lscgroup</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/bin/lscgroup">
</div>
</div>
 <div id="outline-container-libcgroup:--usr/bin/lssubsys" class="outline-4">
 <h4 id="libcgroup:--usr/bin/lssubsys"> <span class="section-number-4">1.4.9.</span>  <a href="#libcgroup:--usr/bin/lssubsys">libcgroup:  usr/bin/lssubsys</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/bin/lssubsys">
</div>
</div>
 <div id="outline-container-libcgroup:--usr/sbin/cgclear" class="outline-4">
 <h4 id="libcgroup:--usr/sbin/cgclear"> <span class="section-number-4">1.4.10.</span>  <a href="#libcgroup:--usr/sbin/cgclear">libcgroup:  usr/sbin/cgclear</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/sbin/cgclear">
</div>
</div>
 <div id="outline-container-libcgroup:--usr/sbin/cgconfigparser" class="outline-4">
 <h4 id="libcgroup:--usr/sbin/cgconfigparser"> <span class="section-number-4">1.4.11.</span>  <a href="#libcgroup:--usr/sbin/cgconfigparser">libcgroup:  usr/sbin/cgconfigparser</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/sbin/cgconfigparser">
</div>
</div>
 <div id="outline-container-libcgroup:--usr/sbin/cgrulesengd" class="outline-4">
 <h4 id="libcgroup:--usr/sbin/cgrulesengd"> <span class="section-number-4">1.4.12.</span>  <a href="#libcgroup:--usr/sbin/cgrulesengd">libcgroup:  usr/sbin/cgrulesengd</a></h4>
 <div class="outline-text-4" id="text-libcgroup:--usr/sbin/cgrulesengd">
</div>
</div>
 <div id="outline-container-cgmanager:--usr/bin/cgm" class="outline-4">
 <h4 id="cgmanager:--usr/bin/cgm"> <span class="section-number-4">1.4.13.</span>  <a href="#cgmanager:--usr/bin/cgm">cgmanager:  usr/bin/cgm</a></h4>
 <div class="outline-text-4" id="text-cgmanager:--usr/bin/cgm">
</div>
</div>
 <div id="outline-container-cgmanager:--usr/sbin/cgmanager" class="outline-4">
 <h4 id="cgmanager:--usr/sbin/cgmanager"> <span class="section-number-4">1.4.14.</span>  <a href="#cgmanager:--usr/sbin/cgmanager">cgmanager:  usr/sbin/cgmanager</a></h4>
 <div class="outline-text-4" id="text-cgmanager:--usr/sbin/cgmanager">
</div>
</div>
 <div id="outline-container-cgmanager:--usr/sbin/cgproxy" class="outline-4">
 <h4 id="cgmanager:--usr/sbin/cgproxy"> <span class="section-number-4">1.4.15.</span>  <a href="#cgmanager:--usr/sbin/cgproxy">cgmanager:  usr/sbin/cgproxy</a></h4>
 <div class="outline-text-4" id="text-cgmanager:--usr/sbin/cgproxy">
</div>
</div>
</div>

 <div id="outline-container-Basic-logic-for-the-resource-usage-restriction" class="outline-3">
 <h3 id="Basic-logic-for-the-resource-usage-restriction"> <span class="section-number-3">1.5.</span>  <a href="#Basic-logic-for-the-resource-usage-restriction">Basic logic for the resource usage restriction</a></h3>
 <div class="outline-text-3" id="text-Basic-logic-for-the-resource-usage-restriction">
</div>
 <ol class="org-ol"> <li> <a id="I-want-nasty-guys-to-never-occupy-more-than-75%-of-the-cpu."></a> <a href="#I-want-nasty-guys-to-never-occupy-more-than-75%-of-the-cpu.">I want nasty guys to never occupy more than 75% of the cpu.</a> <br></br> <div class="outline-text-5" id="text-I-want-nasty-guys-to-never-occupy-more-than-75%-of-the-cpu.">
 <p>
echo 10000 > /sys/fs/cgroup/cpu/firefox/cpu.cfs_period_us
echo 30000 > /sys/fs/cgroup/cpu/firefox/cpu.cfs_quota
</p>
</div>

 <ol class="org-ol"> <li> <a id="Should-I-even-want-to-launch-every-firefox-window-as-a-separate-group?"></a> <a href="#Should-I-even-want-to-launch-every-firefox-window-as-a-separate-group?">Should I even want to launch every firefox window as a separate group?</a> <br></br> <div class="outline-text-6" id="text-Should-I-even-want-to-launch-every-firefox-window-as-a-separate-group?">
 <p>
Because when Firefox eats all the CPU, it seems to be doing so with all processes.
</p>
</div>
</li>
</ol></li>

 <li> <a id="I-want-to-make-nasty-guys-never-have-more-than-memsize/2-of-memory."></a> <a href="#I-want-to-make-nasty-guys-never-have-more-than-memsize/2-of-memory.">I want to make nasty guys never have more than memsize/2 of memory.</a> <br></br> <div class="outline-text-5" id="text-I-want-to-make-nasty-guys-never-have-more-than-memsize/2-of-memory.">
 <p>
/sys/fs/cgroup/memory/firefox/memory.limit_in_bytes
</p>
</div>
</li>

 <li> <a id="I-want-GUI-subsystem-apps-to-never-swap-and-always-have-at-least-10%-cpu-and-at-least-1Gb-of-RAM."></a> <a href="#I-want-GUI-subsystem-apps-to-never-swap-and-always-have-at-least-10%-cpu-and-at-least-1Gb-of-RAM.">I want GUI subsystem apps to never swap and always have at least 10% cpu and at least 1Gb of RAM.</a> <br></br> <div class="outline-text-5" id="text-I-want-GUI-subsystem-apps-to-never-swap-and-always-have-at-least-10%-cpu-and-at-least-1Gb-of-RAM.">
 <p>
The GUI subsystem apps are:
Xorg
xfdesktop
xfwm4
xfce4-*
Thunar*
/usr/lib64/xfce4*
/usr/libexec/*
xscreensaver
  <b>scim</b>
</p>

 <p>
cpu is set by:
echo 128 > /sys/fs/cgroup/cpu/gui/cpu.shares
</p>

 <p>
No swap option is set by:
echo 0 > /sys/fs/cgroup/gui/memory.swappiness
</p>

 <p>
Using controllers v1, it seems that it’s not possible to set the ’guaranteed’ amount of RAM.
</p>
</div>
</li>

 <li> <a id="I-want-mission-critical-apps-to-have-at-least-1Gb-of-memory-and-have-at-least-25%-cpu"></a> <a href="#I-want-mission-critical-apps-to-have-at-least-1Gb-of-memory-and-have-at-least-25%-cpu">I want mission-critical apps to have at least 1Gb of memory and have at least 25% cpu</a> <br></br> <div class="outline-text-5" id="text-I-want-mission-critical-apps-to-have-at-least-1Gb-of-memory-and-have-at-least-25%-cpu">
 <p>
Mission-critical apps are:
/sbin/*
/usr/sbin/*
/usr/local/sbin/*
Anything that UID1 runs.
$(cat /etc/shells)
SCREEN
/usr/bin/dbus-daemon
/bin/su
/bin/sulogin
</p>

 <p>
cpu is set by:
echo 256 > /sys/fs/cgroup/cpu/system/cpu.shares
</p>

 <p>
memory:
I don’t know how to give a minimal memory guarantee to an app using v1 controllers.
</p>
</div>
</li>


 <li> <a id="I-want-to-always-have-at-least-$MEMSIZE-of-swap-free-(for-hibernation)"></a> <a href="#I-want-to-always-have-at-least-$MEMSIZE-of-swap-free-(for-hibernation)">I want to always have at least $MEMSIZE of swap free (for hibernation)</a> <br></br> <div class="outline-text-5" id="text-I-want-to-always-have-at-least-$MEMSIZE-of-swap-free-(for-hibernation)">
</div>
 <ol class="org-ol"> <li> <a id="I-need-to-add-'swapaccount=1'-to-/boot/efi/..."></a> <a href="#I-need-to-add-'swapaccount=1'-to-/boot/efi/...">I need to add ’swapaccount=1’ to  <i>boot/efi</i>…</a> <br></br> <div class="outline-text-6" id="text-I-need-to-add-'swapaccount=1'-to-/boot/efi/...">
</div>
</li>
 <li> <a id="i-need-to-set-the-memory-limit-in-the-root-group:"></a> <a href="#i-need-to-set-the-memory-limit-in-the-root-group:">I need to set the memory limit in the root group:</a> <br></br> <div class="outline-text-6" id="text-i-need-to-set-the-memory-limit-in-the-root-group:">
 <p>
/sys/fs/cgroup/memory/memory.memsw.limit_in_bytes
Needs to have the value of swap size.
command:
free -b | awk ’ <i>Swap</i> {print $3}’
</p>

 <p>
I need to add it to cgrules.conf, right?
</p>
</div>
</li>
</ol></li>

 <li> <a id="I-want-any-process-to-never-occupy-more-than-90%-of-the-cpu-time"></a> <a href="#I-want-any-process-to-never-occupy-more-than-90%-of-the-cpu-time">I want any process to never occupy more than 90% of the cpu time</a> <br></br> <div class="outline-text-5" id="text-I-want-any-process-to-never-occupy-more-than-90%-of-the-cpu-time">
 <p>
CONFIG_CFS_BANDWIDTH, cpu controller
Seems weird, as if I have to make a group for every process out there.
</p>

 <p>
echo 100000 > /sys/fs/cgroup/cpu/cpu.cfs_period_us
echo 360000 > /sys/fs/cgroup/cpu/cpu.cfs_quota
</p>
</div>
</li>


 <li> <a id="I-want-to-use-the-Lennart's-%22bash-grouping-trick%22"></a> <a href="#I-want-to-use-the-Lennart's-%22bash-grouping-trick%22">I want to use the Lennart’s “bash grouping trick”</a> <br></br> <div class="outline-text-5" id="text-I-want-to-use-the-Lennart's-%22bash-grouping-trick%22">
</div>

 <ol class="org-ol"> <li> <a id="/sbin/lwf_rc.auto_cpu_cgroup_remover"></a> <a href="#/sbin/lwf_rc.auto_cpu_cgroup_remover">/sbin/lwf_rc.auto_cpu_cgroup_remover</a> <br></br> <div class="outline-text-6" id="text-/sbin/lwf_rc.auto_cpu_cgroup_remover">
 <p>
#!/bin/sh
</p>

 <p>
cgdelete -g cpu:“$*”
fi
#if [ “$*” != “/user” ]; then
</p>

 <p>
#fi
</p>
</div>
</li>

 <li> <a id="/etc/rc.d/rc.lwf_lennarts_bash_trick"></a> <a href="#/etc/rc.d/rc.lwf_lennarts_bash_trick">/etc/rc.d/rc.lwf_lennarts_bash_trick</a> <br></br> <div class="outline-text-6" id="text-/etc/rc.d/rc.lwf_lennarts_bash_trick">
 <p>
#!/bin/sh
. /etc/rc.d/init.d/functions
</p>

 <p>
start()
{
echo -n $“Setting the cpu cgroup release agent: ”
echo “/sbin/rc.auto_cpu_cgroup_remover” > /sys/fs/cgroup/cpu/release_agent
</p>

 <p>
for username in $(awk -F: ’$3 >= 1000 && $1 != “nobody” {print $1}’ /etc/passwd); do
</p>

 <p>
  cgcreate -g cpu:/$username/private -t $username:users -a $username:users –dperm=755 –tperm=755 –fperm=755
done
echo I also need to add a dynamic rule to the cgred service… TODO
chmod +x /etc/profile.d/00lwf_bash_group.sh
chmod +x /etc/profile.d/00lwf_bash_group.csh
return $?
}
stop()
{
echo -n $“Clearing the cpu cgroup release agent: ”
echo “” > /sys/fs/cgroup/cpu/release_agent
chmod -x /etc/profile.d/00lwf_bash_group.sh
chmod -x /etc/profile.d/00lwf_bash_group.csh
echo -n $“Clearing user groups.”
for dirname in $(find . -type d -not -path ’.’ -not -path ’..’ -printf “%f ”); do
  cgdelete -r -g cpu:/users/private
done
return $?
}
status()
{
echo $“Release agent: ”
cat -t /sys/fs/cgroup/cpu/release_agent
echo $“Profile status:”
file=/etc/profile.d/00lwf_bash_group.sh
for file in {“/etc/profile.d/00lwf_bash_group.sh”,“/etc/profile.d/00lwf_bash_group.sh”} ; do
  if ( -x “$file” ) then
    echo “File ‘$file’ is executable”
  else
    echo “File ‘$file’ is not executable or found”
  endif
done
return $?
}
case “\(1" in
	start)
		start
		RETVAL=\)?
		;;
	stop)
		stop
		RETVAL=\(?
		;;
	status)
		status
		RETVAL=\)?
		;;
	restart)
		stop
		start
		RETVAL=$?
		;;
</p>

 <p>
	*)
		echo $“Usage: $0 {start|stop|status}”
		RETVAL=2
		;;
esac
</p>

 <p>
exit $RETVAL
</p>
</div>
</li>



 <li> <a id="Add-rc.lwf_set_auto_cpu_cgroup_remover-to-/etc/rc.d/rc3.d-and-rc4.d"></a> <a href="#Add-rc.lwf_set_auto_cpu_cgroup_remover-to-/etc/rc.d/rc3.d-and-rc4.d">Add rc.lwf_set_auto_cpu_cgroup_remover to /etc/rc.d/rc3.d and rc4.d</a> <br></br> <div class="outline-text-6" id="text-Add-rc.lwf_set_auto_cpu_cgroup_remover-to-/etc/rc.d/rc3.d-and-rc4.d">
 <p>
Add these lines to the doinst.sh
ln -s /etc/rc.d/rc.lwf_lennarts_bash_trick /etc/rc.d/rc3.d/S00cpu_cgroup_remover
ln -s /etc/rc.d/rc.lwf_lennarts_bash_trick /etc/rc.d/rc4.d/S00cpu_cgroup_remover
</p>
</div>
</li>

 <li> <a id="/etc/profile.d/00lwf_bash_group.sh"></a> <a href="#/etc/profile.d/00lwf_bash_group.sh">/etc/profile.d/00lwf_bash_group.sh</a> <br></br> <div class="outline-text-6" id="text-/etc/profile.d/00lwf_bash_group.sh">
 <p>
if [ “$PS1” ] ; then  
#mkdir -m 0700 /sys/fs/cgroup/cpu/user/\[
  agroupname=/users/$(whoami)/private/\]
  cgcreate -g $agroupname
  echo $$ > $agroupname/tasks
fi
</p>
</div>
</li>

 <li> <a id="/etc/profile.d/00lwf_bash_group.csh"></a> <a href="#/etc/profile.d/00lwf_bash_group.csh">/etc/profile.d/00lwf_bash_group.csh</a> <br></br> <div class="outline-text-6" id="text-/etc/profile.d/00lwf_bash_group.csh">
 <p>
/bin/echo “I have no idea how to implement this in C-shell.”
</p>
</div>
</li>
</ol></li>


 <li> <a id="I-want-some-more-latency-tricks."></a> <a href="#I-want-some-more-latency-tricks.">I want some more latency tricks.</a> <br></br> <div class="outline-text-5" id="text-I-want-some-more-latency-tricks.">
 <p>
I’m not sure about the next line: Is one millisecond a lot or not?
echo 1000000 > /proc/sys/kernel/sched_min_granularity_ns
</p>
</div>
</li>
</ol> <div id="outline-container-I-want-to-never-have-to-launch-cgexec-manually" class="outline-4">
 <h4 id="I-want-to-never-have-to-launch-cgexec-manually"> <span class="section-number-4">1.5.1.</span>  <a href="#I-want-to-never-have-to-launch-cgexec-manually">I want to never have to launch cgexec manually</a></h4>
 <div class="outline-text-4" id="text-I-want-to-never-have-to-launch-cgexec-manually">
</div>
</div>
 <div id="outline-container-I-want-to-use-stock-Slackware-tools,-whenever-possible" class="outline-4">
 <h4 id="I-want-to-use-stock-Slackware-tools,-whenever-possible"> <span class="section-number-4">1.5.2.</span>  <a href="#I-want-to-use-stock-Slackware-tools,-whenever-possible">I want to use stock Slackware tools, whenever possible</a></h4>
 <div class="outline-text-4" id="text-I-want-to-use-stock-Slackware-tools,-whenever-possible">
</div>
</div>
 <div id="outline-container-I-want-to-use-cgroupv2-controllers-whenever-possible." class="outline-4">
 <h4 id="I-want-to-use-cgroupv2-controllers-whenever-possible."> <span class="section-number-4">1.5.3.</span>  <a href="#I-want-to-use-cgroupv2-controllers-whenever-possible.">I want to use cgroupv2 controllers whenever possible.</a></h4>
 <div class="outline-text-4" id="text-I-want-to-use-cgroupv2-controllers-whenever-possible.">
</div>
</div>
</div>

 <div id="outline-container-Limitations" class="outline-3">
 <h3 id="Limitations"> <span class="section-number-3">1.6.</span>  <a href="#Limitations">Limitations</a></h3>
 <div class="outline-text-3" id="text-Limitations">
</div>
 <div id="outline-container-cpuset-controller-is-not-working-in-v2" class="outline-4">
 <h4 id="cpuset-controller-is-not-working-in-v2"> <span class="section-number-4">1.6.1.</span>  <a href="#cpuset-controller-is-not-working-in-v2">cpuset controller is not working in v2</a></h4>
 <div class="outline-text-4" id="text-cpuset-controller-is-not-working-in-v2">
</div>
</div>
 <div id="outline-container-cpuset-controller-does-not-work-with-hibernation" class="outline-4">
 <h4 id="cpuset-controller-does-not-work-with-hibernation"> <span class="section-number-4">1.6.2.</span>  <a href="#cpuset-controller-does-not-work-with-hibernation">cpuset controller does not work with hibernation</a></h4>
 <div class="outline-text-4" id="text-cpuset-controller-does-not-work-with-hibernation">
</div>
</div>
 <div id="outline-container-rc.S-explicitly-mounts-the-v1-controllers" class="outline-4">
 <h4 id="rc.S-explicitly-mounts-the-v1-controllers"> <span class="section-number-4">1.6.3.</span>  <a href="#rc.S-explicitly-mounts-the-v1-controllers">rc.S explicitly mounts the v1 controllers</a></h4>
 <div class="outline-text-4" id="text-rc.S-explicitly-mounts-the-v1-controllers">
</div>
</div>
 <div id="outline-container-libcgroup-doesn't-seem-to-support-setting-release_agent" class="outline-4">
 <h4 id="libcgroup-doesn't-seem-to-support-setting-release_agent"> <span class="section-number-4">1.6.4.</span>  <a href="#libcgroup-doesn't-seem-to-support-setting-release_agent">libcgroup doesn’t seem to support setting release_agent</a></h4>
 <div class="outline-text-4" id="text-libcgroup-doesn't-seem-to-support-setting-release_agent">
</div>
</div>
</div>


 <div id="outline-container-Questions-to-the-community" class="outline-3">
 <h3 id="Questions-to-the-community"> <span class="section-number-3">1.7.</span>  <a href="#Questions-to-the-community">Questions to the community</a></h3>
 <div class="outline-text-3" id="text-Questions-to-the-community">
</div>
 <div id="outline-container-A-question-on-the-Slackware-forum" class="outline-4">
 <h4 id="A-question-on-the-Slackware-forum"> <span class="section-number-4">1.7.1.</span>  <a href="#A-question-on-the-Slackware-forum">A question on the Slackware forum</a></h4>
 <div class="outline-text-4" id="text-A-question-on-the-Slackware-forum">
 <p>
 <a href="https://www.linuxquestions.org/questions/slackware-14/cgroups-in-rc-s-and-in-rc-cgconfig-4175654994/">https://www.linuxquestions.org/questions/slackware-14/cgroups-in-rc-s-and-in-rc-cgconfig-4175654994/</a>
</p>
</div>
</div>
 <div id="outline-container-A-question-on-the-libcgroups-mailing-list" class="outline-4">
 <h4 id="A-question-on-the-libcgroups-mailing-list"> <span class="section-number-4">1.7.2.</span>  <a href="#A-question-on-the-libcgroups-mailing-list">A question on the libcgroups mailing list</a></h4>
 <div class="outline-text-4" id="text-A-question-on-the-libcgroups-mailing-list">
 <p>
TODO: awaits moderation
</p>
</div>
</div>
</div>

 <div id="outline-container-I-do-use-the-dlack's-PAM-packages" class="outline-3">
 <h3 id="I-do-use-the-dlack's-PAM-packages"> <span class="section-number-3">1.8.</span>  <a href="#I-do-use-the-dlack's-PAM-packages">I do use the dlack’s PAM packages</a></h3>
 <div class="outline-text-3" id="text-I-do-use-the-dlack's-PAM-packages">
 <p>
So I can just as well cofigure PAM to juggle groups
But I will defer this till version 2.
</p>
</div>
</div>

 <div id="outline-container-Decisions" class="outline-3">
 <h3 id="Decisions"> <span class="section-number-3">1.9.</span>  <a href="#Decisions">Decisions</a></h3>
 <div class="outline-text-3" id="text-Decisions">
</div>
 <div id="outline-container-It-seems-that-I-have-to-use-the-controllers-v1" class="outline-4">
 <h4 id="It-seems-that-I-have-to-use-the-controllers-v1"> <span class="section-number-4">1.9.1.</span>  <a href="#It-seems-that-I-have-to-use-the-controllers-v1">It seems that I have to use the controllers v1</a></h4>
 <div class="outline-text-4" id="text-It-seems-that-I-have-to-use-the-controllers-v1">
</div>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2019-06-01-Reading-cgroups-manual.html"/>
  <id>https://lockywolf.net/2019-06-01-Reading-cgroups-manual.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading org-mode manual.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading org-mode manual.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Introduction">1. Introduction</a></li>
 <li> <a href="#Word-list">2. Word list</a>
 <ul> <li> <a href="#BBDB">2.1. BBDB</a></li>
 <li> <a href="#David-Allen's-GTD-system">2.2. David Allen’s GTD system</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Introduction" class="outline-2"> <h2 id="Introduction"> <span class="section-number-2">1.</span>  <a href="#Introduction">Introduction</a></h2>
 <div class="outline-text-2" id="text-Introduction">
 <p>
This file contains unknown words and their explanations I found during reading the manual of Org-mode 9.1.9. 
</p>
</div>
</section> <section id="outline-container-Word-list" class="outline-2"> <h2 id="Word-list"> <span class="section-number-2">2.</span>  <a href="#Word-list">Word list</a></h2>
 <div class="outline-text-2" id="text-Word-list">
</div>

 <div id="outline-container-BBDB" class="outline-3">
 <h3 id="BBDB"> <span class="section-number-3">2.1.</span>  <a href="#BBDB">BBDB</a></h3>
 <div class="outline-text-3" id="text-BBDB">
 <p>
TODO
</p>
</div>
</div>

 <div id="outline-container-David-Allen's-GTD-system" class="outline-3">
 <h3 id="David-Allen's-GTD-system"> <span class="section-number-3">2.2.</span>  <a href="#David-Allen's-GTD-system">David Allen’s GTD system</a></h3>
 <div class="outline-text-3" id="text-David-Allen's-GTD-system">
 <p>
TODO
</p>
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2019-06-13-Reading-org-mode-manual.html"/>
  <id>https://lockywolf.net/2019-06-13-Reading-org-mode-manual.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;SSH Mastery&quot; by Michael Lucas.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “SSH Mastery” by Michael Lucas.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Questions">1. Questions</a>
 <ul> <li> <a href="#What-is-ECDSA?-Is-is-an-improved-version-of-DSA?-Why-not-just-RSA?">1.1. What is ECDSA? Is is an improved version of DSA? Why not just RSA?</a></li>
 <li> <a href="#What-is-ED25519?-Is-it-any-better-than-RSA?">1.2. What is ED25519? Is it any better than RSA?</a></li>
 <li> <a href="#How-can-I-check-if-my-computer-was-visited-by-%22Hail-Mary-Cloud%22?">1.3. How can I check if my computer was visited by “Hail Mary Cloud”?</a></li>
 <li> <a href="#How-does-a-passphrase-actually-protect-the-ssh-key?-Other-encryption-layer?">1.4. How does a passphrase actually protect the ssh key? Other encryption layer?</a></li>
 <li> <a href="#What-does-xauth(1)-do?">1.5. What does xauth(1) do?</a></li>
 <li> <a href="#let-me-have-an-x-server-running-on-localhost:10.0-;-what-do-10-and-0-mean%EF%BC%9F">1.6. Let me have an X-server running on localhost:10.0 ; what do 10 and 0 mean？</a></li>
 <li> <a href="#xscreensaver-or-xlockmore?-How-does-xfce4-screensaver-choose-one?">1.7. xscreensaver or xlockmore? How does xfce4-screensaver choose one?</a></li>
 <li> <a href="#What-is-DSA?-How-does-it-work?">1.8. What is DSA? How does it work?</a></li>
 <li> <a href="#What-is-sha2?">1.9. What is sha2?</a></li>
 <li> <a href="#What-is-nistp256?">1.10. What is nistp256?</a></li>
 <li> <a href="#How-does-X.509-system-work?">1.11. How does X.509 system work?</a></li>
</ul></li>
 <li> <a href="#Words">2. Words</a>
 <ul> <li> <a href="#aggravating">2.1. aggravating</a></li>
 <li> <a href="#decoy">2.2. decoy</a></li>
 <li> <a href="#piggyback">2.3. piggyback</a></li>
 <li> <a href="#tinpot-despot">2.4. tinpot despot</a></li>
</ul></li>
</ul></div>
</nav> <p>
This file is written while I was reading “SSH Mastery” by Michael W. Lucas.
</p>

 <section id="outline-container-Questions" class="outline-2"> <h2 id="Questions"> <span class="section-number-2">1.</span>  <a href="#Questions">Questions</a></h2>
 <div class="outline-text-2" id="text-Questions">
</div>
 <div id="outline-container-What-is-ECDSA?-Is-is-an-improved-version-of-DSA?-Why-not-just-RSA?" class="outline-3">
 <h3 id="What-is-ECDSA?-Is-is-an-improved-version-of-DSA?-Why-not-just-RSA?"> <span class="section-number-3">1.1.</span>  <a href="#What-is-ECDSA?-Is-is-an-improved-version-of-DSA?-Why-not-just-RSA?">What is ECDSA? Is is an improved version of DSA? Why not just RSA?</a></h3>
 <div class="outline-text-3" id="text-What-is-ECDSA?-Is-is-an-improved-version-of-DSA?-Why-not-just-RSA?">
</div>
</div>
 <div id="outline-container-What-is-ED25519?-Is-it-any-better-than-RSA?" class="outline-3">
 <h3 id="What-is-ED25519?-Is-it-any-better-than-RSA?"> <span class="section-number-3">1.2.</span>  <a href="#What-is-ED25519?-Is-it-any-better-than-RSA?">What is ED25519? Is it any better than RSA?</a></h3>
 <div class="outline-text-3" id="text-What-is-ED25519?-Is-it-any-better-than-RSA?">
</div>
</div>
 <div id="outline-container-How-can-I-check-if-my-computer-was-visited-by-%22Hail-Mary-Cloud%22?" class="outline-3">
 <h3 id="How-can-I-check-if-my-computer-was-visited-by-%22Hail-Mary-Cloud%22?"> <span class="section-number-3">1.3.</span>  <a href="#How-can-I-check-if-my-computer-was-visited-by-%22Hail-Mary-Cloud%22?">How can I check if my computer was visited by “Hail Mary Cloud”?</a></h3>
 <div class="outline-text-3" id="text-How-can-I-check-if-my-computer-was-visited-by-%22Hail-Mary-Cloud%22?">
</div>
</div>
 <div id="outline-container-How-does-a-passphrase-actually-protect-the-ssh-key?-Other-encryption-layer?" class="outline-3">
 <h3 id="How-does-a-passphrase-actually-protect-the-ssh-key?-Other-encryption-layer?"> <span class="section-number-3">1.4.</span>  <a href="#How-does-a-passphrase-actually-protect-the-ssh-key?-Other-encryption-layer?">How does a passphrase actually protect the ssh key? Other encryption layer?</a></h3>
 <div class="outline-text-3" id="text-How-does-a-passphrase-actually-protect-the-ssh-key?-Other-encryption-layer?">
</div>
</div>
 <div id="outline-container-What-does-xauth(1)-do?" class="outline-3">
 <h3 id="What-does-xauth(1)-do?"> <span class="section-number-3">1.5.</span>  <a href="#What-does-xauth(1)-do?">What does xauth(1) do?</a></h3>
 <div class="outline-text-3" id="text-What-does-xauth(1)-do?">
</div>
</div>
 <div id="outline-container-let-me-have-an-x-server-running-on-localhost:10.0-;-what-do-10-and-0-mean%EF%BC%9F" class="outline-3">
 <h3 id="let-me-have-an-x-server-running-on-localhost:10.0-;-what-do-10-and-0-mean%EF%BC%9F"> <span class="section-number-3">1.6.</span>  <a href="#let-me-have-an-x-server-running-on-localhost:10.0-;-what-do-10-and-0-mean%EF%BC%9F">Let me have an X-server running on localhost:10.0 ; what do 10 and 0 mean？</a></h3>
 <div class="outline-text-3" id="text-let-me-have-an-x-server-running-on-localhost:10.0-;-what-do-10-and-0-mean%EF%BC%9F">
</div>
</div>
 <div id="outline-container-xscreensaver-or-xlockmore?-How-does-xfce4-screensaver-choose-one?" class="outline-3">
 <h3 id="xscreensaver-or-xlockmore?-How-does-xfce4-screensaver-choose-one?"> <span class="section-number-3">1.7.</span>  <a href="#xscreensaver-or-xlockmore?-How-does-xfce4-screensaver-choose-one?">xscreensaver or xlockmore? How does xfce4-screensaver choose one?</a></h3>
 <div class="outline-text-3" id="text-xscreensaver-or-xlockmore?-How-does-xfce4-screensaver-choose-one?">
</div>
</div>
 <div id="outline-container-What-is-DSA?-How-does-it-work?" class="outline-3">
 <h3 id="What-is-DSA?-How-does-it-work?"> <span class="section-number-3">1.8.</span>  <a href="#What-is-DSA?-How-does-it-work?">What is DSA? How does it work?</a></h3>
 <div class="outline-text-3" id="text-What-is-DSA?-How-does-it-work?">
</div>
</div>
 <div id="outline-container-What-is-sha2?" class="outline-3">
 <h3 id="What-is-sha2?"> <span class="section-number-3">1.9.</span>  <a href="#What-is-sha2?">What is sha2?</a></h3>
 <div class="outline-text-3" id="text-What-is-sha2?">
</div>
</div>
 <div id="outline-container-What-is-nistp256?" class="outline-3">
 <h3 id="What-is-nistp256?"> <span class="section-number-3">1.10.</span>  <a href="#What-is-nistp256?">What is nistp256?</a></h3>
 <div class="outline-text-3" id="text-What-is-nistp256?">
</div>
</div>
 <div id="outline-container-How-does-X.509-system-work?" class="outline-3">
 <h3 id="How-does-X.509-system-work?"> <span class="section-number-3">1.11.</span>  <a href="#How-does-X.509-system-work?">How does X.509 system work?</a></h3>
 <div class="outline-text-3" id="text-How-does-X.509-system-work?">
</div>
</div>
</section> <section id="outline-container-Words" class="outline-2"> <h2 id="Words"> <span class="section-number-2">2.</span>  <a href="#Words">Words</a></h2>
 <div class="outline-text-2" id="text-Words">
</div>
 <div id="outline-container-aggravating" class="outline-3">
 <h3 id="aggravating"> <span class="section-number-3">2.1.</span>  <a href="#aggravating">aggravating</a></h3>
 <div class="outline-text-3" id="text-aggravating">
</div>
</div>
 <div id="outline-container-decoy" class="outline-3">
 <h3 id="decoy"> <span class="section-number-3">2.2.</span>  <a href="#decoy">decoy</a></h3>
 <div class="outline-text-3" id="text-decoy">
</div>
</div>
 <div id="outline-container-piggyback" class="outline-3">
 <h3 id="piggyback"> <span class="section-number-3">2.3.</span>  <a href="#piggyback">piggyback</a></h3>
 <div class="outline-text-3" id="text-piggyback">
</div>
</div>
 <div id="outline-container-tinpot-despot" class="outline-3">
 <h3 id="tinpot-despot"> <span class="section-number-3">2.4.</span>  <a href="#tinpot-despot">tinpot despot</a></h3>
 <div class="outline-text-3" id="text-tinpot-despot">
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2019-06-19-Reading-SSH-Mastery-Michael-Lucas.html"/>
  <id>https://lockywolf.net/2019-06-19-Reading-SSH-Mastery-Michael-Lucas.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading manual for GNU Screen.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading manual for GNU Screen.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Questions">1. Questions</a>
 <ul> <li> <a href="#What's-the-difference-between-xterm-and-uxterm?">1.1. What’s the difference between xterm and uxterm?</a></li>
 <li> <a href="#What-is-the-difference-between-DEC-VT-100-and-other-DEC-terminals?">1.2. What is the difference between DEC VT 100 and other DEC terminals?</a></li>
 <li> <a href="#What-is-the-ISO-10646-1-standard?">1.3. What is the ISO-10646-1 standard?</a></li>
 <li> <a href="#What-is-the-ISO-6429-(ECMA-48,-ANSI-X3.64)-format?">1.4. What is the ISO 6429 (ECMA 48, ANSI X3.64) format?</a></li>
 <li> <a href="#What-is-the-ISO-2022-standard?">1.5. What is the ISO 2022 standard?</a></li>
 <li> <a href="#Why-don't-I-have-/etc/utmp?">1.6. Why don’t I have /etc/utmp?</a></li>
 <li> <a href="#What-do-the-commands-talk,-script,-shutdown,-rsend,-sccs-do?">1.7. What do the commands talk, script, shutdown, rsend, sccs do?</a></li>
 <li> <a href="#What-do-the-commands-tset,-qterm-do?">1.8. What do the commands tset, qterm do?</a>
 <ul> <li> <a href="#How-does-term=foobar-work?">1.8.1. How does term=foobar work?</a></li>
</ul></li>
 <li> <a href="#What-is-.logout-file?">1.9. What is .logout file?</a></li>
 <li> <a href="#How-to-efficiently-edit-tree-like-data-in-Emacs?">1.10. How to efficiently edit tree-like data in Emacs?</a></li>
 <li> <a href="#What-are-all-the-nice-things-I-needed-to-google-after-reading-the-Emacs-Manual?">1.11. What are all the nice things I needed to google after reading the Emacs Manual?</a></li>
 <li> <a href="#What-is-the-difference-between-w,-who-and-finger?">1.12. What is the difference between w, who and finger?</a></li>
 <li> <a href="#What-is-actually-RSA?">1.13. What is actually RSA?</a>
 <ul> <li> <a href="#How-does-encryption-with-RSA-work?">1.13.1. How does encryption with RSA work?</a></li>
 <li> <a href="#How-does-signing-with-RSA-work?">1.13.2. How does signing with RSA work?</a></li>
</ul></li>
 <li> <a href="#What-is-DSA?">1.14. What is DSA?</a></li>
 <li> <a href="#Can-it-do-both-encryption-and-signing?">1.15. Can it do both encryption and signing?</a></li>
 <li> <a href="#What-is-ECDSA?">1.16. What is ECDSA?</a></li>
 <li> <a href="#What-is-ED25529?">1.17. What is ED25529?</a></li>
 <li> <a href="#What-is-SCTP?">1.18. What is SCTP?</a></li>
 <li> <a href="#What-is-the-use-of-ssh--f?-As-well-as-autossh--f?-How-is-it-different-from-using-&?">1.19. What is the use of ssh -f? As well as autossh -f? How is it different from using &?</a></li>
 <li> <a href="#Why-does-rscreen-by-default-rebinds-C-a-to-C-z?">1.20. Why does rscreen by default rebinds C-a to C-z?</a></li>
 <li> <a href="#What's-pfexec?">1.21. What’s pfexec?</a></li>
 <li> <a href="#Replace-fail2ban-with-blacklistd">1.22. Replace fail2ban with blacklistd</a></li>
 <li> <a href="#What-is-/etc/hosts.allow?">1.23. What is /etc/hosts.allow?</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Questions" class="outline-2"> <h2 id="Questions"> <span class="section-number-2">1.</span>  <a href="#Questions">Questions</a></h2>
 <div class="outline-text-2" id="text-Questions">
</div>
 <div id="outline-container-What's-the-difference-between-xterm-and-uxterm?" class="outline-3">
 <h3 id="What's-the-difference-between-xterm-and-uxterm?"> <span class="section-number-3">1.1.</span>  <a href="#What's-the-difference-between-xterm-and-uxterm?">What’s the difference between xterm and uxterm?</a></h3>
 <div class="outline-text-3" id="text-What's-the-difference-between-xterm-and-uxterm?">
 <p>
Answer: TODO
</p>
</div>
</div>
 <div id="outline-container-What-is-the-difference-between-DEC-VT-100-and-other-DEC-terminals?" class="outline-3">
 <h3 id="What-is-the-difference-between-DEC-VT-100-and-other-DEC-terminals?"> <span class="section-number-3">1.2.</span>  <a href="#What-is-the-difference-between-DEC-VT-100-and-other-DEC-terminals?">What is the difference between DEC VT 100 and other DEC terminals?</a></h3>
 <div class="outline-text-3" id="text-What-is-the-difference-between-DEC-VT-100-and-other-DEC-terminals?">
 <p>
Answer: TODO
</p>
</div>
</div>
 <div id="outline-container-What-is-the-ISO-10646-1-standard?" class="outline-3">
 <h3 id="What-is-the-ISO-10646-1-standard?"> <span class="section-number-3">1.3.</span>  <a href="#What-is-the-ISO-10646-1-standard?">What is the ISO-10646-1 standard?</a></h3>
 <div class="outline-text-3" id="text-What-is-the-ISO-10646-1-standard?">
 <p>
Answer: TODO
</p>
</div>
</div>
 <div id="outline-container-What-is-the-ISO-6429-(ECMA-48,-ANSI-X3.64)-format?" class="outline-3">
 <h3 id="What-is-the-ISO-6429-(ECMA-48,-ANSI-X3.64)-format?"> <span class="section-number-3">1.4.</span>  <a href="#What-is-the-ISO-6429-(ECMA-48,-ANSI-X3.64)-format?">What is the ISO 6429 (ECMA 48, ANSI X3.64) format?</a></h3>
 <div class="outline-text-3" id="text-What-is-the-ISO-6429-(ECMA-48,-ANSI-X3.64)-format?">
 <p>
Answer: TODO
</p>
</div>
</div>
 <div id="outline-container-What-is-the-ISO-2022-standard?" class="outline-3">
 <h3 id="What-is-the-ISO-2022-standard?"> <span class="section-number-3">1.5.</span>  <a href="#What-is-the-ISO-2022-standard?">What is the ISO 2022 standard?</a></h3>
 <div class="outline-text-3" id="text-What-is-the-ISO-2022-standard?">
 <p>
Answer: TODO
</p>
</div>
</div>
 <div id="outline-container-Why-don't-I-have-/etc/utmp?" class="outline-3">
 <h3 id="Why-don't-I-have-/etc/utmp?"> <span class="section-number-3">1.6.</span>  <a href="#Why-don't-I-have-/etc/utmp?">Why don’t I have /etc/utmp?</a></h3>
 <div class="outline-text-3" id="text-Why-don't-I-have-/etc/utmp?">
 <p>
Answer: TODO. I do have a /var/run/utmp , although no /run/utmp .
</p>
</div>
</div>
 <div id="outline-container-What-do-the-commands-talk,-script,-shutdown,-rsend,-sccs-do?" class="outline-3">
 <h3 id="What-do-the-commands-talk,-script,-shutdown,-rsend,-sccs-do?"> <span class="section-number-3">1.7.</span>  <a href="#What-do-the-commands-talk,-script,-shutdown,-rsend,-sccs-do?">What do the commands talk, script, shutdown, rsend, sccs do?</a></h3>
 <div class="outline-text-3" id="text-What-do-the-commands-talk,-script,-shutdown,-rsend,-sccs-do?">
 <p>
Answer: TODO.
</p>
</div>
</div>
 <div id="outline-container-What-do-the-commands-tset,-qterm-do?" class="outline-3">
 <h3 id="What-do-the-commands-tset,-qterm-do?"> <span class="section-number-3">1.8.</span>  <a href="#What-do-the-commands-tset,-qterm-do?">What do the commands tset, qterm do?</a></h3>
 <div class="outline-text-3" id="text-What-do-the-commands-tset,-qterm-do?">
</div>
 <div id="outline-container-How-does-term=foobar-work?" class="outline-4">
 <h4 id="How-does-term=foobar-work?"> <span class="section-number-4">1.8.1.</span>  <a href="#How-does-term=foobar-work?">How does term=foobar work?</a></h4>
 <div class="outline-text-4" id="text-How-does-term=foobar-work?">
 <p>
Answer: TODO
</p>
</div>
</div>
</div>
 <div id="outline-container-What-is-.logout-file?" class="outline-3">
 <h3 id="What-is-.logout-file?"> <span class="section-number-3">1.9.</span>  <a href="#What-is-.logout-file?">What is .logout file?</a></h3>
 <div class="outline-text-3" id="text-What-is-.logout-file?">
 <p>
Answer: TODO
</p>
</div>
</div>
 <div id="outline-container-How-to-efficiently-edit-tree-like-data-in-Emacs?" class="outline-3">
 <h3 id="How-to-efficiently-edit-tree-like-data-in-Emacs?"> <span class="section-number-3">1.10.</span>  <a href="#How-to-efficiently-edit-tree-like-data-in-Emacs?">How to efficiently edit tree-like data in Emacs?</a></h3>
 <div class="outline-text-3" id="text-How-to-efficiently-edit-tree-like-data-in-Emacs?">
 <p>
Answer: org-mode?
</p>
</div>
</div>
 <div id="outline-container-What-are-all-the-nice-things-I-needed-to-google-after-reading-the-Emacs-Manual?" class="outline-3">
 <h3 id="What-are-all-the-nice-things-I-needed-to-google-after-reading-the-Emacs-Manual?"> <span class="section-number-3">1.11.</span>  <a href="#What-are-all-the-nice-things-I-needed-to-google-after-reading-the-Emacs-Manual?">What are all the nice things I needed to google after reading the Emacs Manual?</a></h3>
 <div class="outline-text-3" id="text-What-are-all-the-nice-things-I-needed-to-google-after-reading-the-Emacs-Manual?">
 <p>
Answer: TODO.
</p>
</div>
</div>
 <div id="outline-container-What-is-the-difference-between-w,-who-and-finger?" class="outline-3">
 <h3 id="What-is-the-difference-between-w,-who-and-finger?"> <span class="section-number-3">1.12.</span>  <a href="#What-is-the-difference-between-w,-who-and-finger?">What is the difference between w, who and finger?</a></h3>
 <div class="outline-text-3" id="text-What-is-the-difference-between-w,-who-and-finger?">
 <p>
w and who definitely parse utmp (which is probably /var/run/utmp on
Slackware Linux). But how does Finger find out who’s logged in? 
</p>
</div>
</div>

 <div id="outline-container-What-is-actually-RSA?" class="outline-3">
 <h3 id="What-is-actually-RSA?"> <span class="section-number-3">1.13.</span>  <a href="#What-is-actually-RSA?">What is actually RSA?</a></h3>
 <div class="outline-text-3" id="text-What-is-actually-RSA?">
</div>
 <div id="outline-container-How-does-encryption-with-RSA-work?" class="outline-4">
 <h4 id="How-does-encryption-with-RSA-work?"> <span class="section-number-4">1.13.1.</span>  <a href="#How-does-encryption-with-RSA-work?">How does encryption with RSA work?</a></h4>
 <div class="outline-text-4" id="text-How-does-encryption-with-RSA-work?">
</div>
</div>
 <div id="outline-container-How-does-signing-with-RSA-work?" class="outline-4">
 <h4 id="How-does-signing-with-RSA-work?"> <span class="section-number-4">1.13.2.</span>  <a href="#How-does-signing-with-RSA-work?">How does signing with RSA work?</a></h4>
 <div class="outline-text-4" id="text-How-does-signing-with-RSA-work?">
</div>
</div>
</div>

 <div id="outline-container-What-is-DSA?" class="outline-3">
 <h3 id="What-is-DSA?"> <span class="section-number-3">1.14.</span>  <a href="#What-is-DSA?">What is DSA?</a></h3>
 <div class="outline-text-3" id="text-What-is-DSA?">
</div>
</div>
 <div id="outline-container-Can-it-do-both-encryption-and-signing?" class="outline-3">
 <h3 id="Can-it-do-both-encryption-and-signing?"> <span class="section-number-3">1.15.</span>  <a href="#Can-it-do-both-encryption-and-signing?">Can it do both encryption and signing?</a></h3>
 <div class="outline-text-3" id="text-Can-it-do-both-encryption-and-signing?">
</div>
</div>

 <div id="outline-container-What-is-ECDSA?" class="outline-3">
 <h3 id="What-is-ECDSA?"> <span class="section-number-3">1.16.</span>  <a href="#What-is-ECDSA?">What is ECDSA?</a></h3>
 <div class="outline-text-3" id="text-What-is-ECDSA?">
</div>
</div>

 <div id="outline-container-What-is-ED25529?" class="outline-3">
 <h3 id="What-is-ED25529?"> <span class="section-number-3">1.17.</span>  <a href="#What-is-ED25529?">What is ED25529?</a></h3>
 <div class="outline-text-3" id="text-What-is-ED25529?">
</div>
</div>

 <div id="outline-container-What-is-SCTP?" class="outline-3">
 <h3 id="What-is-SCTP?"> <span class="section-number-3">1.18.</span>  <a href="#What-is-SCTP?">What is SCTP?</a></h3>
 <div class="outline-text-3" id="text-What-is-SCTP?">
</div>
</div>

 <div id="outline-container-What-is-the-use-of-ssh--f?-As-well-as-autossh--f?-How-is-it-different-from-using-&?" class="outline-3">
 <h3 id="What-is-the-use-of-ssh--f?-As-well-as-autossh--f?-How-is-it-different-from-using-&?"> <span class="section-number-3">1.19.</span>  <a href="#What-is-the-use-of-ssh--f?-As-well-as-autossh--f?-How-is-it-different-from-using-&?">What is the use of ssh -f? As well as autossh -f? How is it different from using &?</a></h3>
 <div class="outline-text-3" id="text-What-is-the-use-of-ssh--f?-As-well-as-autossh--f?-How-is-it-different-from-using-&?">
</div>
</div>

 <div id="outline-container-Why-does-rscreen-by-default-rebinds-C-a-to-C-z?" class="outline-3">
 <h3 id="Why-does-rscreen-by-default-rebinds-C-a-to-C-z?"> <span class="section-number-3">1.20.</span>  <a href="#Why-does-rscreen-by-default-rebinds-C-a-to-C-z?">Why does rscreen by default rebinds C-a to C-z?</a></h3>
 <div class="outline-text-3" id="text-Why-does-rscreen-by-default-rebinds-C-a-to-C-z?">
</div>
</div>

 <div id="outline-container-What's-pfexec?" class="outline-3">
 <h3 id="What's-pfexec?"> <span class="section-number-3">1.21.</span>  <a href="#What's-pfexec?">What’s pfexec?</a></h3>
 <div class="outline-text-3" id="text-What's-pfexec?">
</div>
</div>

 <div id="outline-container-Replace-fail2ban-with-blacklistd" class="outline-3">
 <h3 id="Replace-fail2ban-with-blacklistd"> <span class="section-number-3">1.22.</span>  <a href="#Replace-fail2ban-with-blacklistd">Replace fail2ban with blacklistd</a></h3>
 <div class="outline-text-3" id="text-Replace-fail2ban-with-blacklistd">
</div>
</div>

 <div id="outline-container-What-is-/etc/hosts.allow?" class="outline-3">
 <h3 id="What-is-/etc/hosts.allow?"> <span class="section-number-3">1.23.</span>  <a href="#What-is-/etc/hosts.allow?">What is /etc/hosts.allow?</a></h3>
 <div class="outline-text-3" id="text-What-is-/etc/hosts.allow?">
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2019-06-31-Reading-Screen-Manual.html"/>
  <id>https://lockywolf.net/2019-06-31-Reading-Screen-Manual.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;Modern Fortran Explained&quot;.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “Modern Fortran Explained”.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Intro">1. Intro</a></li>
 <li> <a href="#Comments-are-starting-from-'!'">2. Comments are starting from ’!’</a></li>
 <li> <a href="#Test-2">3. Test 2</a></li>
</ul></div>
</nav> <section id="outline-container-Intro" class="outline-2"> <h2 id="Intro"> <span class="section-number-2">1.</span>  <a href="#Intro">Intro</a></h2>
 <div class="outline-text-2" id="text-Intro">
 <p>
Modern Fortran is quite an advanced language, which is still largely
compatible with the old Fortran from the 50s.
</p>

 <p>
It has a very rich (and it is not a good thing) syntax. 
</p>
</div>
</section> <section id="outline-container-Comments-are-starting-from-'!'" class="outline-2"> <h2 id="Comments-are-starting-from-'!'"> <span class="section-number-2">2.</span>  <a href="#Comments-are-starting-from-'!'">Comments are starting from ’!’</a></h2>
 <div class="outline-text-2" id="text-Comments-are-starting-from-'!'">
 <div class="org-src-container">
 <pre class="src src-fortran"> <span style="font-weight: bold; font-style: italic;">! </span> <span style="font-weight: bold; font-style: italic;">Hello, this is a comment
</span> <span style="font-weight: bold;">print</span> *,  <span style="font-style: italic;">"Hello, world"</span>
</pre>
</div>

 <pre class="example">
Hello, world
</pre>
</div>
</section> <section id="outline-container-Test-2" class="outline-2"> <h2 id="Test-2"> <span class="section-number-2">3.</span>  <a href="#Test-2">Test 2</a></h2>
 <div class="outline-text-2" id="text-Test-2">
 <div class="org-src-container">
 <pre class="src src-fortran"> <span style="font-weight: bold;">program</span>  <span style="font-weight: bold;">main</span>
use,  <span style="font-weight: bold; text-decoration: underline;">intrinsic</span> :: iso_fortran_env, only: output_unit
 <span style="font-weight: bold;">print</span> *,  <span style="font-style: italic;">"Hello, world"</span>
 <span style="font-weight: bold;">end</span>  <span style="font-weight: bold;">program</span>  <span style="font-weight: bold;">main</span>
</pre>
</div>

 <pre class="example">
Hello, world
</pre>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-03-21-Reading-Modern-Fortran-Explained-2018.html"/>
  <id>https://lockywolf.net/2020-03-21-Reading-Modern-Fortran-Explained-2018.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A translation of the ICFP 2020 Call-for-Papers into Russian.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A translation of the ICFP 2020 Call-for-Papers into Russian.</h1>
</header> <p>
Call for Papers
</p>

 <p>
Приглашение выступить с докладами
</p>

 <p>
The 2020 Scheme and Functional Programming Workshop is calling for submissions.
</p>

 <p>
Конференция Scheme and Functional Programming Workshop 2020 открывает подачу заявок на доклады.
</p>

 <p>
The Scheme and Functional Programming Workshop is a yearly meeting of programming language practitioners who share an aesthetic sense embodied by the Algorithmic Language Scheme: universality through minimalism, and flexibility through rigorous design.
</p>

 <p>
Scheme and Functional Programming Workshow – это ежегодное мероприятие, научно-практическая конференция, на которой собираются специалисты про языкам программирования, эстетически или технологически отвечающим основным принципам, заложенным в Алгоритмическим Языке Scheme: минимализму, сохраняющему универсальность, и тщательному проектированию, обеспечивающему гибкий дизайн.
</p>

 <p>
We invite high-quality papers about novel research results, lessons learned from practical experience in industrial or educational setting, and even new insights on old ideas. We welcome and encourage submissions that apply to any language that can be considered Scheme: from strict subsets of RnRS to other “Scheme” implementations, to Racket, to Lisp dialects including Clojure, Emacs Lisp, Common Lisp, to functional languages with continuations and/or macros (or extended to have them) such as Dylan, ECMAScript, Hop, Lua, Scala, Rust, etc. The elegance of the paper and the relevance of its topic to the interests of Schemers will matter more than the surface syntax of the examples used. Topics of interest include (but are not limited to):
</p>

 <p>
От докладчиков ожидаются статьи о передовых научных результатах, а также отчёты о практических достижениях, как в инженерной, так и в образовательной сферах, а также развёрнутые предложения по рассмотрению идей сверх-ранней стадии или переосмыслению старых подходов. Приветствуются и поощряются работы, имеющие отношение к любым языкам, входящим в семейство Scheme: от чистых подмножеств RnRS, до “вариаций на тему Схемы”, таких как Racket, других диалектов Lisp, включая Closure, Emacs Lisp, Common Lisp, и иных функциональных языков, поддерживающих замыкания и/или макросы (или имеющих таковую поддержку в средствах расширения языка, например, библиотеках). Примерами подобных могут являться Dylan, ECMAScript, Hop, Lua, Scala, Rust и ещё множество других. Общая элегантность работы и релевантность заявленной тебе будут являться более важным критерием оценки, нежели отдельные элементы синтаксиса, в котором реализованы примеры. Наиболее интересующие темы включают (но не ограничиваются):
</p>

 <p>
Interaction: program-development environments, debugging, testing, refactoring
Implementation: interpreters, compilers, tools, garbage collectors, benchmarks
Extension: macros, hygiene, domain-specific languages, reflection, and how such extension affects interaction.
Expression: control, modularity, ad hoc and parametric polymorphism, types, aspects, ownership models, concurrency, distribution, parallelism, non-determinism, probabilism, and other programming paradigms
Integration: build tools, deployment, interoperation with other languages and systems
Formal semantics: Theory, analyses and transformations, partial evaluation
Human Factors: Past, present and future history, evolution and sociology of the language Scheme, its standard and its dialects
Education: approaches, experiences, curricula
Applications: industrial uses of Scheme
Scheme pearls: elegant, instructive uses of Scheme
</p>

 <p>
Взаимодействие с разработчиком: средства написания программ, интегрированные среды разработки, отладка, тестирование и рефакторинг
Реализация вычислительных движков: интерпретаторы, компиляторы, инструменты, сборщики мусора, бенчмарки
Средства расширения языка: макросы, гигиена, доменно-специфичные языки, рефлексия, а так же как таковые влияют на процесс разработки
Выражения: средства управления, модульность, полиморфизмы разных видов, типы, аспекты, модели владения, параллельные вычисления (конкурентные вычисления, многопоточность), иные способы параллельного выполнения, недетерминированные вычисления, вероятностные вычисления, и тому подобное
Средства интеграции: инструменты сборки, развёртывания, взаимодействия с другими языками и системама
Формальная семантика: теория, анализ и преобразования, частичное выполнение (partial evaluation)
Человеческий фактор: прошлое, настоящее и будущее, эволюция и социология языке Scheme, стандарт и диалекты
Образование: подходы, практические отчёты, образовательные программы
Приложения: промышленные применения Scheme
Искусство: элегантные и красивые трюки и применения Scheme
</p>


 <p>
Important dates
</p>

 <p>
Submission deadline is 15 May 2020.
Authors will be notified by 12 June 2020.
Camera-ready versions are due 30 June 2020.
All deadlines are (23:59 UTC-12), “Anywhere on Earth”.
</p>

 <p>
Даты
</p>

 <p>
Окончание подачи заявок: 15 Мая 2020
Уведомление о рассмотрении заявок 12 Июня 2020
Финальные версии работ для печати: 30 Июня 2020
Под датой дедлайна подразумевается таковая в любой точке Земли (23:59 UTC-12)
</p>

 <p>
Submission Information
</p>

 <p>
Paper submissions must use the format acmart and its sub-format acmlarge. They must be in PDF, printable in black and white on US Letter size. Microsoft Word and LaTeX templates for this format are available at:
</p>

 <p>
 <a href="http://www.sigplan.org/Resources/Author/">http://www.sigplan.org/Resources/Author/</a>
</p>

 <p>
Информация по формату подачи
</p>

 <p>
Финальные бумажные версии работ должны использовать формат acmart и подформат acmlarge. Они должны быть в PDF, и допускать печать на бумаге формата US Letter. Microsoft Word/LaTeX шаблоны можно скачать:
</p>

 <p>
 <a href="http://www.sigplan.org/Resources/Author/">http://www.sigplan.org/Resources/Author/</a>
</p>

 <p>
This format is in line with ACM conferences (such as ICFP with which we are colocated). It is recommended to use the review option when submitting a paper; this option enables line numbers for easy reference in reviews.
</p>

 <p>
Этот формат согласуется с общепринятым форматом конференций ACM (включая ICFP, которая проходит в том же месте в то же время). Рекомендуеся использовать опцию “review” для нумерации строк, это упрощает рецензирование.
</p>

 <p>
We want to encourage all kinds of submissions, including full papers, experience reports and lightning talks. Papers and experience reports are limited to 14 pages, but we encourage submitting smaller papers. Lightning talks are limited to 192 words. Each accepted paper and report will be presented by its authors in a 25 minute slot including Q&A. Each accepted lightning talk will be presented by its authors in a 5 minute slot, followed by 5 minutes of Q&A.
</p>

 <p>
Конференция приветствует все возможные виды докладов, включая полноценные научные статьи, практические отчёты и блиц-доклады (lightning talks). Статьи и отчёты ограничены в объёме 14 страницами, но и меньшие размеры приветствуются. Блиц-доклады ограничены 192 словами. На каждую статью или доклад отводится слот в 25 минут, включая вопросы. На блиц-доклад отводится два пятиминутных слота, один для доклада и один для вопросов. 
</p>

 <p>
The size limits above exclude references and any optional appendices. There are no size limits on appendices, but the papers should stand without the need to read them, and reviewers are not required to read them.
</p>

 <p>
Ограничения по размеру не распространяются на ссылки и приложения. На размер приложений ограничения отсутствуют, однако материал должен читаться без них, и при рассмотрении заявок они могут не учитываться.
</p>

 <p>
Authors are encouraged to publish any code associated to their papers under an open source license, so that reviewers may try the code and verify the claims.
</p>

 <p>
Proceedings will be printed as a Technical Report at the University of Michigan and uploaded to arXiv.org.
</p>

 <p>
Publication of a paper at this workshop is not intended to replace conference or journal publication, and does not preclude re-publication of a more complete or finished version of the paper at some later conference or in a journal.
</p>

 <p>
Публикация исходного кода, связанного с изложенным материалом, под открытой лицензией, для того, чтобы рецензенты могли проверить сделанные утверждения, приветствуется.
</p>

 <p>
Труды конференции (Proceedings) будут опубликованны в формате технического отчёта (Technical Report) Мичиганского Университета (University of Michigan), а также загруженны на arXiv.org
</p>

 <p>
Публикация работы на данной научно-практической конференции не предполагает исключительности, и оставляет возможность для публикации позднее более полной или развёрнутой версии работы на иной научной конференции или в научном журнале.
</p>

 <p>
 <a href="http://schemeworkshop.org/">http://schemeworkshop.org/</a>
</p>

 <p>
 <a href="https://icfp20.sigplan.org/home/scheme-2020#Call-for-Papers">https://icfp20.sigplan.org/home/scheme-2020#Call-for-Papers</a>
</p>

 <p>
Оригинал:
Jason Hemann, Northeastern University
</p>


 <p>
Оргкомитет
Michael D. Adams (Program Co-Chair), University of Michigan
Baptiste Saleil (Program Co-Chair), IBM Canada
Jason Hemann (Publicity Chair), Northeastern University
</p>


 <p>
Программный комитет
Michael D. Adams (Program Co-Chair), University of Michigan
Baptiste Saleil (Program Co-Chair), IBM Canada
Maxime Chevalier-Boisvert, Université de Montréal
Ryan Culpepper, Czech Technical University
Kimball Germane, University of Utah
Yukiyoshi Kameyama, University of Tsukuba
Andy Keep, Cisco Systems, Inc
Julien Pagès, Université de Montréal
Alexey Radul
</p>


 <p>
Направляющий комитет
Will Byrd, University of Alabama at Birmingham
Will Clinger, The Larceny Project
Marc Feeley, Université de Montréal
Dan Friedman, Indiana University
Olin Shivers, Northeastern University
</p>
</main>]]></content>
  <link href="https://lockywolf.net/2020-04-01-Scheme-Workshop-CfP-translation.html"/>
  <id>https://lockywolf.net/2020-04-01-Scheme-Workshop-CfP-translation.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Notes about learning Cinelerra.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Notes about learning Cinelerra.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract">1. Abstract</a></li>
 <li> <a href="#Manuals">2. Manuals</a></li>
 <li> <a href="#High-level-analysis">3. High level analysis</a></li>
 <li> <a href="#Task?">4. Task?</a></li>
 <li> <a href="#Exercises.">5. Exercises.</a>
 <ul> <li> <a href="#exercise-1:-record-a-video-from-your-laptop-webcam.">5.1.  <span class="todo TODO">TODO</span> Exercise 1: record a video from your laptop webcam.</a></li>
 <li> <a href="#exercise-2:-what-are-underrun-frames?">5.2.  <span class="todo TODO">TODO</span> Exercise 2: what are underrun frames?</a></li>
 <li> <a href="#exercise-3:-what-are-overrun-frames?">5.3.  <span class="todo TODO">TODO</span> Exercise 3: what are overrun frames?</a></li>
 <li> <a href="#exercise-4:-how-does-Cinelerra-check-for-commercials?">5.4.  <span class="todo TODO">TODO</span> Exercise 4: how does Cinelerra check for commercials?</a></li>
 <li> <a href="#exercise-5:-what-is-a-timed/untimed-mode?">5.5.  <span class="todo TODO">TODO</span> Exercise 5: what is a timed/untimed mode?</a></li>
 <li> <a href="#exercise-6:-what-is-a-%22transport%22-in-the-Cinelerra-parlance?">5.6.  <span class="todo TODO">TODO</span> Exercise 6: what is a “transport” in the Cinelerra parlance?</a></li>
 <li> <a href="#exercise-7:-what-is-an-mp4.qt-compression-method?">5.7.  <span class="todo TODO">TODO</span> Exercise 7: what is an mp4.qt compression method?</a></li>
 <li> <a href="#exercise-8:-explain-what-all-those-knobs-in-the-%22edit-picture%22-mean?">5.8.  <span class="todo TODO">TODO</span> Exercise 8: explain what all those knobs in the “edit picture” mean?</a></li>
 <li> <a href="#exercise-9:-explain-what-the-curves-in-the-%22view-scope%22-mean?">5.9.  <span class="todo TODO">TODO</span> Exercise 9: explain what the curves in the “view scope” mean?</a></li>
 <li> <a href="#">5.10.  <span class="todo TODO">TODO</span> </a></li>
</ul></li>
 <li> <a href="#Terms">6. Terms</a></li>
 <li> <a href="#Reading-the-Cinelerra-manual.">7. Reading the Cinelerra manual.</a>
 <ul> <li> <a href="#Preferences--%3E-Appearance">7.1. Preferences -> Appearance</a></li>
 <li> <a href="#Preferences--%3E-Recording">7.2. Preferences -> Recording</a></li>
 <li> <a href="#cinelerra:-Compositor-window">7.3. Cinelerra: Compositor window</a></li>
 <li> <a href="#What-is-yuv420p?">7.4. What is yuv420p?</a></li>
 <li> <a href="#What-is-FOURCC?">7.5. What is FOURCC?</a></li>
 <li> <a href="#vicons-are-%22video-icons%22">7.6. vicons are “video icons”</a></li>
</ul></li>
 <li> <a href="#Notes">8. Notes</a>
 <ul> <li> <a href="#One-of-the-few-RGBA-codecs!-QuickTime-Animation-RLE">8.1. One of the few RGBA codecs! QuickTime Animation RLE</a></li>
 <li> <a href="#webcameras:-YUV-vs-MJPEG">8.2. Webcameras: YUV vs MJPEG</a></li>
 <li> <a href="#Asking-a-file-about-it's-contents">8.3. Asking a file about it’s contents</a>
 <ul> <li> <a href="#Cinelerra-can-ask-by-itself,-in-the-Resources-window">8.3.1. Cinelerra can ask by itself, in the Resources window</a></li>
 <li> <a href="#mediainfo-is-a-console-utility">8.3.2. mediainfo is a console utility</a></li>
</ul></li>
 <li> <a href="#Turns-out,-OBS-Studio-may-be-better-for-my-purposes">8.4. Turns out, OBS-Studio may be better for my purposes</a></li>
 <li> <a href="#This-multitrack-editing-thing-reminds-me-of-parallel-programming-a-little-bit.">8.5. This multitrack editing thing reminds me of parallel programming a little bit.</a></li>
 <li> <a href="#Multitrack-editing-also-reminds-me-of-ruling-people-in-an-RPG-game,-e.g.-LARP.">8.6. Multitrack editing also reminds me of ruling people in an RPG game, e.g. LARP.</a></li>
</ul></li>
</ul></div>
</nav> <section id="outline-container-Abstract" class="outline-2"> <h2 id="Abstract"> <span class="section-number-2">1.</span>  <a href="#Abstract">Abstract</a></h2>
 <div class="outline-text-2" id="text-Abstract">
 <p>
This file is about learning Cinelerra. 
I decided to learn Cinelerra because it seems a capable video editor for many operating systems.
The context is the following: international travelling is at a minimum now, because people are afraid of the “Global Coronavirus Pandemic” and the conference have been cancelled.
</p>
</div>
</section> <section id="outline-container-Manuals" class="outline-2"> <h2 id="Manuals"> <span class="section-number-2">2.</span>  <a href="#Manuals">Manuals</a></h2>
 <div class="outline-text-2" id="text-Manuals">
 <dl class="org-dl"> <dt>Old but gold  <a href="http://www.heroinewarrior.com/cinelerra/cinelerra.html#dir">http://www.heroinewarrior.com/cinelerra/cinelerra.html#dir</a></dt> <dd>old but gold</dd>
 <dt>Cinelerra QuickStart</dt> <dd> <a href="file:///root/books/video-editing/CinelerraGG_Quickstart.pdf">file:///root/books/video-editing/CinelerraGG_Quickstart.pdf</a></dd>
 <dt>Cinelerra Manual</dt> <dd> <a href="file:///root/books/video-editing/CinelerraGG_Manual.pdf">file:///root/books/video-editing/CinelerraGG_Manual.pdf</a></dd>
 <dt>Hotkeys</dt> <dd></dd>
</dl></div>
</section> <section id="outline-container-High-level-analysis" class="outline-2"> <h2 id="High-level-analysis"> <span class="section-number-2">3.</span>  <a href="#High-level-analysis">High level analysis</a></h2>
 <div class="outline-text-2" id="text-High-level-analysis">
 <p>
So we need to have a “video presentation”.
What does it even mean?
</p>

 <p>
Let’s say, it is going to be a “Video Review” on the subject described in a paper.
</p>

 <p>
A video review should serve the following purposes:
</p>

 <ol class="org-ol"> <li>Tell the audience what the paper is about, so that they can judge whether to read it.</li>
 <li>Tell the audience who and what is the author, in order to discount his biases, potentially subconsciously embedded into the article.</li>
 <li>Include additional visuals that did not fit into the original document.</li>
 <li>Promote the author as a useful person.</li>
 <li>Add a “human touch” to the paper.</li>
 <li>Explain in human words things that are written rigorously into the text of the paper.</li>
 <li>Anything else?</li>
</ol> <p>
What do I need then?
</p>
</div>
</section> <section id="outline-container-Task?" class="outline-2"> <h2 id="Task?"> <span class="section-number-2">4.</span>  <a href="#Task?">Task?</a></h2>
 <div class="outline-text-2" id="text-Task?">
 <p>
What can I start with?
Record a video of myself “just talking” about SICP?
</p>
</div>
</section> <section id="outline-container-Exercises." class="outline-2"> <h2 id="Exercises."> <span class="section-number-2">5.</span>  <a href="#Exercises.">Exercises.</a></h2>
 <div class="outline-text-2" id="text-Exercises.">
 <p>
In the Cinelerra manual, there is no exercises. It’s a shame! Can I write them?
</p>
</div>

 <div id="outline-container-exercise-1:-record-a-video-from-your-laptop-webcam." class="outline-3">
 <h3 id="exercise-1:-record-a-video-from-your-laptop-webcam."> <span class="section-number-3">5.1.</span>  <a href="#exercise-1:-record-a-video-from-your-laptop-webcam."> <span class="todo TODO">TODO</span> Exercise 1: record a video from your laptop webcam.</a></h3>
 <div class="outline-text-3" id="text-exercise-1:-record-a-video-from-your-laptop-webcam.">
</div>
</div>

 <div id="outline-container-exercise-2:-what-are-underrun-frames?" class="outline-3">
 <h3 id="exercise-2:-what-are-underrun-frames?"> <span class="section-number-3">5.2.</span>  <a href="#exercise-2:-what-are-underrun-frames?"> <span class="todo TODO">TODO</span> Exercise 2: what are underrun frames?</a></h3>
 <div class="outline-text-3" id="text-exercise-2:-what-are-underrun-frames?">
</div>
</div>

 <div id="outline-container-exercise-3:-what-are-overrun-frames?" class="outline-3">
 <h3 id="exercise-3:-what-are-overrun-frames?"> <span class="section-number-3">5.3.</span>  <a href="#exercise-3:-what-are-overrun-frames?"> <span class="todo TODO">TODO</span> Exercise 3: what are overrun frames?</a></h3>
 <div class="outline-text-3" id="text-exercise-3:-what-are-overrun-frames?">
</div>
</div>

 <div id="outline-container-exercise-4:-how-does-Cinelerra-check-for-commercials?" class="outline-3">
 <h3 id="exercise-4:-how-does-Cinelerra-check-for-commercials?"> <span class="section-number-3">5.4.</span>  <a href="#exercise-4:-how-does-Cinelerra-check-for-commercials?"> <span class="todo TODO">TODO</span> Exercise 4: how does Cinelerra check for commercials?</a></h3>
 <div class="outline-text-3" id="text-exercise-4:-how-does-Cinelerra-check-for-commercials?">
</div>
</div>

 <div id="outline-container-exercise-5:-what-is-a-timed/untimed-mode?" class="outline-3">
 <h3 id="exercise-5:-what-is-a-timed/untimed-mode?"> <span class="section-number-3">5.5.</span>  <a href="#exercise-5:-what-is-a-timed/untimed-mode?"> <span class="todo TODO">TODO</span> Exercise 5: what is a timed/untimed mode?</a></h3>
 <div class="outline-text-3" id="text-exercise-5:-what-is-a-timed/untimed-mode?">
</div>
</div>

 <div id="outline-container-exercise-6:-what-is-a-%22transport%22-in-the-Cinelerra-parlance?" class="outline-3">
 <h3 id="exercise-6:-what-is-a-%22transport%22-in-the-Cinelerra-parlance?"> <span class="section-number-3">5.6.</span>  <a href="#exercise-6:-what-is-a-%22transport%22-in-the-Cinelerra-parlance?"> <span class="todo TODO">TODO</span> Exercise 6: what is a “transport” in the Cinelerra parlance?</a></h3>
 <div class="outline-text-3" id="text-exercise-6:-what-is-a-%22transport%22-in-the-Cinelerra-parlance?">
</div>
</div>

 <div id="outline-container-exercise-7:-what-is-an-mp4.qt-compression-method?" class="outline-3">
 <h3 id="exercise-7:-what-is-an-mp4.qt-compression-method?"> <span class="section-number-3">5.7.</span>  <a href="#exercise-7:-what-is-an-mp4.qt-compression-method?"> <span class="todo TODO">TODO</span> Exercise 7: what is an mp4.qt compression method?</a></h3>
 <div class="outline-text-3" id="text-exercise-7:-what-is-an-mp4.qt-compression-method?">
</div>
</div>

 <div id="outline-container-exercise-8:-explain-what-all-those-knobs-in-the-%22edit-picture%22-mean?" class="outline-3">
 <h3 id="exercise-8:-explain-what-all-those-knobs-in-the-%22edit-picture%22-mean?"> <span class="section-number-3">5.8.</span>  <a href="#exercise-8:-explain-what-all-those-knobs-in-the-%22edit-picture%22-mean?"> <span class="todo TODO">TODO</span> Exercise 8: explain what all those knobs in the “edit picture” mean?</a></h3>
 <div class="outline-text-3" id="text-exercise-8:-explain-what-all-those-knobs-in-the-%22edit-picture%22-mean?">
</div>
</div>

 <div id="outline-container-exercise-9:-explain-what-the-curves-in-the-%22view-scope%22-mean?" class="outline-3">
 <h3 id="exercise-9:-explain-what-the-curves-in-the-%22view-scope%22-mean?"> <span class="section-number-3">5.9.</span>  <a href="#exercise-9:-explain-what-the-curves-in-the-%22view-scope%22-mean?"> <span class="todo TODO">TODO</span> Exercise 9: explain what the curves in the “view scope” mean?</a></h3>
 <div class="outline-text-3" id="text-exercise-9:-explain-what-the-curves-in-the-%22view-scope%22-mean?">
</div>
</div>

 <div id="outline-container-" class="outline-3">
 <h3 id=""> <span class="section-number-3">5.10.</span>  <a href="#"> <span class="todo TODO">TODO</span> </a></h3>
 <div class="outline-text-3" id="text-">
</div>
</div>
</section> <section id="outline-container-Terms" class="outline-2"> <h2 id="Terms"> <span class="section-number-2">6.</span>  <a href="#Terms">Terms</a></h2>
 <div class="outline-text-2" id="text-Terms">
 <p>
There are common terms used often.
Some of them are listed in the manual, but I will repeat them any way for completeness.
</p>

 <p>
Brightness - Light intensity. Sometimes marked with Y.
Hue - colour as in “ratio of pure colours”.
Saturation - distance from grey.
</p>
</div>
</section> <section id="outline-container-Reading-the-Cinelerra-manual." class="outline-2"> <h2 id="Reading-the-Cinelerra-manual."> <span class="section-number-2">7.</span>  <a href="#Reading-the-Cinelerra-manual.">Reading the Cinelerra manual.</a></h2>
 <div class="outline-text-2" id="text-Reading-the-Cinelerra-manual.">
</div>

 <div id="outline-container-Preferences--%3E-Appearance" class="outline-3">
 <h3 id="Preferences--%3E-Appearance"> <span class="section-number-3">7.1.</span>  <a href="#Preferences--%3E-Appearance">Preferences -> Appearance</a></h3>
 <div class="outline-text-3" id="text-Preferences--%3E-Appearance">
 <p>
What is BT601 and how is it different from BT709 and BT2020.
</p>

 <p>
 <a href="https://blog.maxofs2d.net/post/148346073513/bt601-vs-bt709">https://blog.maxofs2d.net/post/148346073513/bt601-vs-bt709</a>
</p>

 <p>
It is the set of coefficients used for transcoding RGB->YUV.
</p>
</div>
</div>


 <div id="outline-container-Preferences--%3E-Recording" class="outline-3">
 <h3 id="Preferences--%3E-Recording"> <span class="section-number-3">7.2.</span>  <a href="#Preferences--%3E-Recording">Preferences -> Recording</a></h3>
 <div class="outline-text-3" id="text-Preferences--%3E-Recording">
</div>
</div>

 <div id="outline-container-cinelerra:-Compositor-window" class="outline-3">
 <h3 id="cinelerra:-Compositor-window"> <span class="section-number-3">7.3.</span>  <a href="#cinelerra:-Compositor-window">Cinelerra: Compositor window</a></h3>
 <div class="outline-text-3" id="text-cinelerra:-Compositor-window">
 <p>
The blue dot means that the video is paused.
</p>
</div>
</div>


 <div id="outline-container-What-is-yuv420p?" class="outline-3">
 <h3 id="What-is-yuv420p?"> <span class="section-number-3">7.4.</span>  <a href="#What-is-yuv420p?">What is yuv420p?</a></h3>
 <div class="outline-text-3" id="text-What-is-yuv420p?">
 <p>
This is a format for encoding/compressing raw pixels.
Encoding/compressing, because the data is not compressed mathematically, but some data is simply dropped.
Presumably, this is enough to keep the image “visually identical”.
The block is always two pixels high (I guess it is somehow connected to interlacing), but several pixels wide. 
The first number is the width.
The second is the number of pixels used in the first row. 
It probably makes sense to make it a divisor or the first number.
The second is the number of pixels in the bottom row.
It probably should be a divisor of the first two numbers.
</p>

 <p>
However, in principle, having a good algorithm may allow for different combinations.
</p>
</div>
</div>

 <div id="outline-container-What-is-FOURCC?" class="outline-3">
 <h3 id="What-is-FOURCC?"> <span class="section-number-3">7.5.</span>  <a href="#What-is-FOURCC?">What is FOURCC?</a></h3>
 <div class="outline-text-3" id="text-What-is-FOURCC?">
 <p>
FourCC is a stupid extension to AVI container format, a number designed to indicate which encoder exactly was used to encode the image if/when it is mpeg4-family.
</p>
</div>
</div>


 <div id="outline-container-vicons-are-%22video-icons%22" class="outline-3">
 <h3 id="vicons-are-%22video-icons%22"> <span class="section-number-3">7.6.</span>  <a href="#vicons-are-%22video-icons%22">vicons are “video icons”</a></h3>
 <div class="outline-text-3" id="text-vicons-are-%22video-icons%22">
</div>
</div>
</section> <section id="outline-container-Notes" class="outline-2"> <h2 id="Notes"> <span class="section-number-2">8.</span>  <a href="#Notes">Notes</a></h2>
 <div class="outline-text-2" id="text-Notes">
</div>

 <div id="outline-container-One-of-the-few-RGBA-codecs!-QuickTime-Animation-RLE" class="outline-3">
 <h3 id="One-of-the-few-RGBA-codecs!-QuickTime-Animation-RLE"> <span class="section-number-3">8.1.</span>  <a href="#One-of-the-few-RGBA-codecs!-QuickTime-Animation-RLE">One of the few RGBA codecs! QuickTime Animation RLE</a></h3>
 <div class="outline-text-3" id="text-One-of-the-few-RGBA-codecs!-QuickTime-Animation-RLE">
 <p>
 <a href="https://en.wikipedia.org/wiki/QuickTime_Animation">https://en.wikipedia.org/wiki/QuickTime_Animation</a>
</p>
</div>
</div>

 <div id="outline-container-webcameras:-YUV-vs-MJPEG" class="outline-3">
 <h3 id="webcameras:-YUV-vs-MJPEG"> <span class="section-number-3">8.2.</span>  <a href="#webcameras:-YUV-vs-MJPEG">Webcameras: YUV vs MJPEG</a></h3>
 <div class="outline-text-3" id="text-webcameras:-YUV-vs-MJPEG">
 <p>
You can check what a camera can stream with:
</p>
 <dl class="org-dl"> <dt>qv4l2</dt> <dd>it is a GUI tool for querying cameras</dd>
 <dt>ffmpeg -list_formats all /dev/video0</dt> <dd>in the command line</dd>
</dl></div>
</div>

 <div id="outline-container-Asking-a-file-about-it's-contents" class="outline-3">
 <h3 id="Asking-a-file-about-it's-contents"> <span class="section-number-3">8.3.</span>  <a href="#Asking-a-file-about-it's-contents">Asking a file about it’s contents</a></h3>
 <div class="outline-text-3" id="text-Asking-a-file-about-it's-contents">
</div>

 <div id="outline-container-Cinelerra-can-ask-by-itself,-in-the-Resources-window" class="outline-4">
 <h4 id="Cinelerra-can-ask-by-itself,-in-the-Resources-window"> <span class="section-number-4">8.3.1.</span>  <a href="#Cinelerra-can-ask-by-itself,-in-the-Resources-window">Cinelerra can ask by itself, in the Resources window</a></h4>
 <div class="outline-text-4" id="text-Cinelerra-can-ask-by-itself,-in-the-Resources-window">
</div>
</div>
 <div id="outline-container-mediainfo-is-a-console-utility" class="outline-4">
 <h4 id="mediainfo-is-a-console-utility"> <span class="section-number-4">8.3.2.</span>  <a href="#mediainfo-is-a-console-utility">mediainfo is a console utility</a></h4>
 <div class="outline-text-4" id="text-mediainfo-is-a-console-utility">
</div>
</div>
</div>

 <div id="outline-container-Turns-out,-OBS-Studio-may-be-better-for-my-purposes" class="outline-3">
 <h3 id="Turns-out,-OBS-Studio-may-be-better-for-my-purposes"> <span class="section-number-3">8.4.</span>  <a href="#Turns-out,-OBS-Studio-may-be-better-for-my-purposes">Turns out, OBS-Studio may be better for my purposes</a></h3>
 <div class="outline-text-3" id="text-Turns-out,-OBS-Studio-may-be-better-for-my-purposes">
 <p>
At least for recording a screencast.
</p>

 <p>
Hm… can OBS actually record several tracks into a file, rather than an already combined track? 
</p>
</div>
</div>



 <div id="outline-container-This-multitrack-editing-thing-reminds-me-of-parallel-programming-a-little-bit." class="outline-3">
 <h3 id="This-multitrack-editing-thing-reminds-me-of-parallel-programming-a-little-bit."> <span class="section-number-3">8.5.</span>  <a href="#This-multitrack-editing-thing-reminds-me-of-parallel-programming-a-little-bit.">This multitrack editing thing reminds me of parallel programming a little bit.</a></h3>
 <div class="outline-text-3" id="text-This-multitrack-editing-thing-reminds-me-of-parallel-programming-a-little-bit.">
</div>
</div>
 <div id="outline-container-Multitrack-editing-also-reminds-me-of-ruling-people-in-an-RPG-game,-e.g.-LARP." class="outline-3">
 <h3 id="Multitrack-editing-also-reminds-me-of-ruling-people-in-an-RPG-game,-e.g.-LARP."> <span class="section-number-3">8.6.</span>  <a href="#Multitrack-editing-also-reminds-me-of-ruling-people-in-an-RPG-game,-e.g.-LARP.">Multitrack editing also reminds me of ruling people in an RPG game, e.g. LARP.</a></h3>
 <div class="outline-text-3" id="text-Multitrack-editing-also-reminds-me-of-ruling-people-in-an-RPG-game,-e.g.-LARP.">
</div>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-08-01_Learning-cinelerra-for-International-conference-on-functional-programming-ICFP-2020-online-presentation-on-solving-sicp-and-video.html"/>
  <id>https://lockywolf.net/2020-08-01_Learning-cinelerra-for-International-conference-on-functional-programming-ICFP-2020-online-presentation-on-solving-sicp-and-video.html</id>
  <updated>2020-10-27T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Reading &quot;The growth of the transitivising Reaction Object Construction&quot; by Tamara Bouso Rivas.</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Reading “The growth of the transitivising Reaction Object Construction” by Tamara Bouso Rivas.</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Words-I-do-not-know">1. Words I do not know</a></li>
 <li> <a href="#Terms-I-do-not-know">2. Terms I do not know</a>
 <ul> <li> <a href="#coreferential">2.1. coreferential</a></li>
 <li> <a href="#transitivising-constructions">2.2. transitivising constructions</a></li>
 <li> <a href="#traditional-form-meaning-pattern-(are-there-non-traditional?)">2.3. traditional form-meaning pattern (are there non-traditional?)</a></li>
 <li> <a href="#productivity-(some-special-linguistic-meaning?)">2.4. productivity (some special linguistic meaning?)</a></li>
 <li> <a href="#schematicity">2.5. schematicity</a></li>
 <li> <a href="#compositionality">2.6. compositionality</a></li>
 <li> <a href="#transitivisation">2.7. transitivisation</a></li>
 <li> <a href="#nonverbal-expression">2.8. nonverbal expression</a></li>
 <li> <a href="#manner-of-speaking">2.9. manner of speaking</a></li>
 <li> <a href="#argument-structure">2.10. argument structure</a></li>
 <li> <a href="#amphibious/labile-verbs">2.11. amphibious/labile verbs</a></li>
 <li> <a href="#What-is-the-difference-between-%22direct%22,-%22indirect%22,-%22prepositional%22-and-%22causative%22-objects?">2.12. What is the difference between “direct”, “indirect”, “prepositional” and “causative” objects?</a></li>
 <li> <a href="#What-is-the-difference-between-Modern-English-and-Present-Day-English?">2.13. What is the difference between Modern English and Present Day English?</a></li>
 <li> <a href="#What-are-ergative-verbs?">2.14. What are ergative verbs?</a></li>
 <li> <a href="#What-is-type-frequency-and-how-is-it-different-from-token-frequency?">2.15. What is type frequency and how is it different from token frequency?</a></li>
 <li> <a href="#What-is-Late-Modern-English-and-how-is-it-different-from-Modern-English-and-Present-Day-English?">2.16. What is Late Modern English and how is it different from Modern English and Present Day English?</a></li>
 <li> <a href="#%22dummy-it-object-construction%22">2.17. “dummy it object construction”</a></li>
 <li> <a href="#%22aspectual-cognate-object-construction%22">2.18. “aspectual cognate object construction”</a></li>
 <li> <a href="#%22Noun-Phrase%22-is-a-noun-plus-some-bells-and-whistles-what-don't-change-grammar.">2.19. “Noun Phrase” is a noun plus some bells and whistles what don’t change grammar.</a></li>
 <li> <a href="#constructionalisation">2.20. constructionalisation</a></li>
 <li> <a href="#hapax-legomena">2.21. hapax legomena</a></li>
 <li> <a href="#collostructional-strength">2.22. collostructional strength</a></li>
 <li> <a href="#echoic-verbs">2.23. echoic verbs</a></li>
 <li> <a href="#host-class-expansion">2.24. host-class expansion</a></li>
</ul></li>
 <li> <a href="#Notes">3. Notes</a>
 <ul> <li> <a href="#%22The-door-jingled-a-welcome%22.-Is-it-more-context-dependent,-or-more?-Perhaps-more,-since-bells-jingle,-not-doors.">3.1. “The door jingled a welcome”. Is it more context-dependent, or more? Perhaps more, since bells jingle, not doors.</a></li>
 <li> <a href="#I-do-not-like-the-linguists'-citation-style.-%5BAuthor,-year%5D-is-_much_-better!-UPD:-Ah,-fuck,-it's-not-a-citation,-it's-a-forward-reference-to-an-example!-Fuck-forward-references!">3.2. I do not like the linguists’ citation style. [Author, year] is  <span class="underline">much</span> better! UPD: Ah, fuck, it’s not a citation, it’s a forward-reference to an example! Fuck forward references!</a></li>
 <li> <a href="#Page-240,-line-14,--%22means-and-manner%22----%22means%22-supposedly-means-%22a-method-by-which%22">3.3. Page 240, line 14,  “means and manner” – “means” supposedly means “a method by which”</a></li>
 <li> <a href="#Page-240,-line-14,-%22means-and-manner%22----%22manner%22-probably-means-%22style-of-doing%22">3.4. Page 240, line 14, “means and manner” – “manner” probably means “style of doing”</a></li>
 <li> <a href="#Page-240,-line-20,-Why-is-%22she-smiled%22-called-a-%22monovalent%22-argument-structure?-Shan't-it-be-zero-valent?">3.5. Page 240, line 20, Why is “she smiled” called a “monovalent” argument structure? Shan’t it be zero-valent?</a></li>
 <li> <a href="#Page-240,-line-21,-%22thanks%22-and-%22adoration%22-are-called-%22non-prototypical%22-objects.-What-would-be-the-prototypical-ones?">3.6. Page 240, line 21, “thanks” and “adoration” are called “non-prototypical” objects. What would be the prototypical ones?</a></li>
 <li> <a href="#Page-240,-Modern-English-has-much-more-verbs-that-can-be-both-transitive-and-intransitive.">3.7. Page 240, Modern English has much more verbs that can be both transitive and intransitive.</a></li>
 <li> <a href="#List-of-references,-Differences-in-capitalisation.-van-Geldern-but-Van-Goethem">3.8. List of references, Differences in capitalisation. van Geldern but Van Goethem</a></li>
 <li> <a href="#Can-the-reference-list-at-the-end-of-the-paper-include-full-names-of-the-scientists?">3.9. Can the reference list at the end of the paper include full names of the scientists?</a></li>
 <li> <a href="#Would-it-be-possible-to-make-references-link-to-concrete-pages-and-lines-on-a-page?">3.10. Would it be possible to make references link to concrete pages and lines on a page?</a></li>
 <li> <a href="#Page-241-line-5,-%22,-or-verbs-that%22,-is-it-a-clarification-or-an-option?">3.11. Page 241 line 5, “, or verbs that”, is it a clarification or an option?</a></li>
 <li> <a href="#Any-chances-to-make-a-glossary-at-the-end?">3.12. Any chances to make a glossary at the end?</a></li>
 <li> <a href="#s.v.-means-%22under-the-word%22-or-%22used-as%22">3.13. s.v. means “under the word” or “used as”</a></li>
 <li> <a href="#Page-241,-line-22,-Why-is-%22for-dw%C4%ABnan%22-the-word-that-means-%22sleep%22?">3.14. Page 241, line 22, Why is “for-dwīnan” the word that means “sleep”?</a></li>
 <li> <a href="#Page-241,-last-line.-Is-%22discourse%22-the-same-thing-as-%22context%22?">3.15. Page 241, last line. Is “discourse” the same thing as “context”?</a></li>
 <li> <a href="#Construction-Grammar-1995-seems-to-be-quite-an-important-piece-of-stuff!">3.16. Construction Grammar 1995 seems to be quite an important piece of stuff!</a></li>
 <li> <a href="#%22the-remainder-of-the-article%22--%3E-%22the-rest-of-the-article%22">3.17. “the remainder of the article” -> “the rest of the article”</a></li>
 <li> <a href="#Page-243,-line--2,-what-is-this-formal-notation-for-the-construction-structure?-(SUBJ_%7Bi%7D-%5BV_%7Bintr%7DOBJ_%7Bi%7D%5D)?">3.18. Page 243, line -2, what is this formal notation for the construction structure? (SUBJ <sub>i</sub> [V <sub>intr</sub>OBJ <sub>i</sub>])?</a></li>
 <li> <a href="#Page-243,-line--1.-Lack-compositionality-as-meaning?-What-does-this-mean?">3.19. Page 243, line -1. Lack compositionality as meaning? What does this mean?</a></li>
 <li> <a href="#Page-244,-line-6.-The-%22definition%22-of-Goldberg-is-not-understandable.">3.20. Page 244, line 6. The “definition” of Goldberg is not understandable.</a></li>
 <li> <a href="#Footnote-5,-what-does-%22played-by-the-novel%22-mean?-Which-novel?">3.21. Footnote 5, what does “played by the novel” mean? Which novel?</a></li>
 <li> <a href="#Page-247,-line-21.-This-syntactic-notation-probably-can-be-reformulated-in-a-Backus-Naur-form-to-be-more-sound.">3.22. Page 247, line 21. This syntactic notation probably can be reformulated in a Backus-Naur form to be more sound.</a></li>
 <li> <a href="#What-does-the-subscript_%7Bi%7D-mean-in-the-syntactic-notation-used-in-the-document?">3.23. What does the subscript <sub>i</sub> mean in the syntactic notation used in the document?</a></li>
 <li> <a href="#The-example-(20)-is-completely-out-of-context.-How-does-it-work?">3.24. The example (20) is completely out of context. How does it work?</a></li>
 <li> <a href="#The-semantic-filling-of-the-construction-is-written-down-in-English.-Could-it-have-been-written-in-the-Stoy-Strachey-denotational-semantics?-Or-maybe-%22game-semantics%22?">3.25. The semantic filling of the construction is written down in English. Could it have been written in the Stoy-Strachey denotational semantics? Or maybe “game semantics”?</a></li>
 <li> <a href="#Page-247,-line-26-%22The-proposed-schema-...%22-sentence-is-super-long-and-confusing.">3.26. Page 247, line 26 “The proposed schema …” sentence is super long and confusing.</a></li>
 <li> <a href="#By-the-page-248,-the-~way~-construction-has-been-mentioned-many-times,-but-no-example-has-been-given.">3.27. By the page 248, the  <code>way</code>-construction has been mentioned many times, but no example has been given.</a></li>
 <li> <a href="#Page-248,-paragraph-1,-speaks-about-polysemy.-But-spotting-polysemy-begs-for-an-algorithm-of-lifting-polysemy-for-the-analysing-agent,-after-the-parsing-process-has-let-us-indentify-the-ROC-construction.">3.28. Page 248, paragraph 1, speaks about polysemy. But spotting polysemy begs for an algorithm of lifting polysemy for the analysing agent, after the parsing process has let us indentify the ROC construction.</a></li>
 <li> <a href="#Page-248,-line-11,-the-%22manner-interpretation-with-~while~%22-has-no-example.">3.29. Page 248, line 11, the “manner interpretation with  <code>while</code>” has no example.</a></li>
 <li> <a href="#Page-249,-line-7,-yet-another-type-of-English,-Early-Modern-English,-I'm-completely-lost-already.-Can-there-be-made-a-table?">3.30. Page 249, line 7, yet another type of English, Early Modern English, I’m completely lost already. Can there be made a table?</a></li>
 <li> <a href="#Page-249,-same-ambiguity:-%22Similarly-to-the-way-construction,-in-the-ROC-in-the-means-subschema-the">3.31. Page 249, same ambiguity: “Similarly to the way-construction, in the ROC in the means subschema the</a></li>
 <li> <a href="#Page-250,-line-19-20.-Is-there-a-full-list-of-verbs-used-in-the-ROC?-Having-Google-and-corpora,-it-shouldn't-be-too-hard-to-make-an-extensive-list.">3.32. Page 250, line 19-20. Is there a full list of verbs used in the ROC? Having Google and corpora, it shouldn’t be too hard to make an extensive list.</a></li>
 <li> <a href="#Page-252,-line-18,-the-regular-expressions-for-search-would-look-better-in-a-floating-figure.">3.33. Page 252, line 18, the regular expressions for search would look better in a floating figure.</a></li>
 <li> <a href="#Page-256,Figure-1.-It-would-be-better-if-the-%22English-Periods%22-be-marked-at-the-X-axis.">3.34. Page 256,Figure 1. It would be better if the “English Periods” be marked at the X-axis.</a></li>
 <li> <a href="#Page-257.-I-am-still-confused-at-how-exactly-the-analysis-was-performed.-There-should-be-some-code-doing-it?-Nobody-can-realistically-read-through-all-that-text-and-spot-ROCs.">3.35. Page 257. I am still confused at how exactly the analysis was performed. There should be some code doing it? Nobody can realistically read through all that text and spot ROCs.</a></li>
</ul></li>
 <li> <a href="#Wrap-up">4. Wrap-up</a></li>
</ul></div>
</nav> <section id="outline-container-Words-I-do-not-know" class="outline-2"> <h2 id="Words-I-do-not-know"> <span class="section-number-2">1.</span>  <a href="#Words-I-do-not-know">Words I do not know</a></h2>
 <div class="outline-text-2" id="text-Words-I-do-not-know">
 <p>
construe
acquiesce
squeal
concomitantly
plash
collostructional
waning
bray
neigh
snuffle
warble
grawl
whoop
hoot
coo
guffaw
pshaw
</p>
</div>
</section> <section id="outline-container-Terms-I-do-not-know" class="outline-2"> <h2 id="Terms-I-do-not-know"> <span class="section-number-2">2.</span>  <a href="#Terms-I-do-not-know">Terms I do not know</a></h2>
 <div class="outline-text-2" id="text-Terms-I-do-not-know">
</div>

 <div id="outline-container-coreferential" class="outline-3">
 <h3 id="coreferential"> <span class="section-number-3">2.1.</span>  <a href="#coreferential">coreferential</a></h3>
 <div class="outline-text-3" id="text-coreferential">
</div>
</div>

 <div id="outline-container-transitivising-constructions" class="outline-3">
 <h3 id="transitivising-constructions"> <span class="section-number-3">2.2.</span>  <a href="#transitivising-constructions">transitivising constructions</a></h3>
 <div class="outline-text-3" id="text-transitivising-constructions">
</div>
</div>

 <div id="outline-container-traditional-form-meaning-pattern-(are-there-non-traditional?)" class="outline-3">
 <h3 id="traditional-form-meaning-pattern-(are-there-non-traditional?)"> <span class="section-number-3">2.3.</span>  <a href="#traditional-form-meaning-pattern-(are-there-non-traditional?)">traditional form-meaning pattern (are there non-traditional?)</a></h3>
 <div class="outline-text-3" id="text-traditional-form-meaning-pattern-(are-there-non-traditional?)">
</div>
</div>

 <div id="outline-container-productivity-(some-special-linguistic-meaning?)" class="outline-3">
 <h3 id="productivity-(some-special-linguistic-meaning?)"> <span class="section-number-3">2.4.</span>  <a href="#productivity-(some-special-linguistic-meaning?)">productivity (some special linguistic meaning?)</a></h3>
 <div class="outline-text-3" id="text-productivity-(some-special-linguistic-meaning?)">
</div>
</div>

 <div id="outline-container-schematicity" class="outline-3">
 <h3 id="schematicity"> <span class="section-number-3">2.5.</span>  <a href="#schematicity">schematicity</a></h3>
 <div class="outline-text-3" id="text-schematicity">
</div>
</div>

 <div id="outline-container-compositionality" class="outline-3">
 <h3 id="compositionality"> <span class="section-number-3">2.6.</span>  <a href="#compositionality">compositionality</a></h3>
 <div class="outline-text-3" id="text-compositionality">
 <p>
Is it a capability to be inserted into other constructions? 
Or ability to accept subconstructions?
</p>
</div>
</div>

 <div id="outline-container-transitivisation" class="outline-3">
 <h3 id="transitivisation"> <span class="section-number-3">2.7.</span>  <a href="#transitivisation">transitivisation</a></h3>
 <div class="outline-text-3" id="text-transitivisation">
 <p>
Is it the capability to accept an object? As in “greet someone”, but not “sit a chair”.
</p>
</div>
</div>

 <div id="outline-container-nonverbal-expression" class="outline-3">
 <h3 id="nonverbal-expression"> <span class="section-number-3">2.8.</span>  <a href="#nonverbal-expression">nonverbal expression</a></h3>
 <div class="outline-text-3" id="text-nonverbal-expression">
</div>
</div>

 <div id="outline-container-manner-of-speaking" class="outline-3">
 <h3 id="manner-of-speaking"> <span class="section-number-3">2.9.</span>  <a href="#manner-of-speaking">manner of speaking</a></h3>
 <div class="outline-text-3" id="text-manner-of-speaking">
</div>
</div>

 <div id="outline-container-argument-structure" class="outline-3">
 <h3 id="argument-structure"> <span class="section-number-3">2.10.</span>  <a href="#argument-structure">argument structure</a></h3>
 <div class="outline-text-3" id="text-argument-structure">
</div>
</div>

 <div id="outline-container-amphibious/labile-verbs" class="outline-3">
 <h3 id="amphibious/labile-verbs"> <span class="section-number-3">2.11.</span>  <a href="#amphibious/labile-verbs">amphibious/labile verbs</a></h3>
 <div class="outline-text-3" id="text-amphibious/labile-verbs">
</div>
</div>

 <div id="outline-container-What-is-the-difference-between-%22direct%22,-%22indirect%22,-%22prepositional%22-and-%22causative%22-objects?" class="outline-3">
 <h3 id="What-is-the-difference-between-%22direct%22,-%22indirect%22,-%22prepositional%22-and-%22causative%22-objects?"> <span class="section-number-3">2.12.</span>  <a href="#What-is-the-difference-between-%22direct%22,-%22indirect%22,-%22prepositional%22-and-%22causative%22-objects?">What is the difference between “direct”, “indirect”, “prepositional” and “causative” objects?</a></h3>
 <div class="outline-text-3" id="text-What-is-the-difference-between-%22direct%22,-%22indirect%22,-%22prepositional%22-and-%22causative%22-objects?">
</div>
</div>

 <div id="outline-container-What-is-the-difference-between-Modern-English-and-Present-Day-English?" class="outline-3">
 <h3 id="What-is-the-difference-between-Modern-English-and-Present-Day-English?"> <span class="section-number-3">2.13.</span>  <a href="#What-is-the-difference-between-Modern-English-and-Present-Day-English?">What is the difference between Modern English and Present Day English?</a></h3>
 <div class="outline-text-3" id="text-What-is-the-difference-between-Modern-English-and-Present-Day-English?">
</div>
</div>

 <div id="outline-container-What-are-ergative-verbs?" class="outline-3">
 <h3 id="What-are-ergative-verbs?"> <span class="section-number-3">2.14.</span>  <a href="#What-are-ergative-verbs?">What are ergative verbs?</a></h3>
 <div class="outline-text-3" id="text-What-are-ergative-verbs?">
</div>
</div>

 <div id="outline-container-What-is-type-frequency-and-how-is-it-different-from-token-frequency?" class="outline-3">
 <h3 id="What-is-type-frequency-and-how-is-it-different-from-token-frequency?"> <span class="section-number-3">2.15.</span>  <a href="#What-is-type-frequency-and-how-is-it-different-from-token-frequency?">What is type frequency and how is it different from token frequency?</a></h3>
 <div class="outline-text-3" id="text-What-is-type-frequency-and-how-is-it-different-from-token-frequency?">
</div>
</div>

 <div id="outline-container-What-is-Late-Modern-English-and-how-is-it-different-from-Modern-English-and-Present-Day-English?" class="outline-3">
 <h3 id="What-is-Late-Modern-English-and-how-is-it-different-from-Modern-English-and-Present-Day-English?"> <span class="section-number-3">2.16.</span>  <a href="#What-is-Late-Modern-English-and-how-is-it-different-from-Modern-English-and-Present-Day-English?">What is Late Modern English and how is it different from Modern English and Present Day English?</a></h3>
 <div class="outline-text-3" id="text-What-is-Late-Modern-English-and-how-is-it-different-from-Modern-English-and-Present-Day-English?">
</div>
</div>

 <div id="outline-container-%22dummy-it-object-construction%22" class="outline-3">
 <h3 id="%22dummy-it-object-construction%22"> <span class="section-number-3">2.17.</span>  <a href="#%22dummy-it-object-construction%22">“dummy it object construction”</a></h3>
 <div class="outline-text-3" id="text-%22dummy-it-object-construction%22">
</div>
</div>

 <div id="outline-container-%22aspectual-cognate-object-construction%22" class="outline-3">
 <h3 id="%22aspectual-cognate-object-construction%22"> <span class="section-number-3">2.18.</span>  <a href="#%22aspectual-cognate-object-construction%22">“aspectual cognate object construction”</a></h3>
 <div class="outline-text-3" id="text-%22aspectual-cognate-object-construction%22">
</div>
</div>

 <div id="outline-container-%22Noun-Phrase%22-is-a-noun-plus-some-bells-and-whistles-what-don't-change-grammar." class="outline-3">
 <h3 id="%22Noun-Phrase%22-is-a-noun-plus-some-bells-and-whistles-what-don't-change-grammar."> <span class="section-number-3">2.19.</span>  <a href="#%22Noun-Phrase%22-is-a-noun-plus-some-bells-and-whistles-what-don't-change-grammar.">“Noun Phrase” is a noun plus some bells and whistles what don’t change grammar.</a></h3>
 <div class="outline-text-3" id="text-%22Noun-Phrase%22-is-a-noun-plus-some-bells-and-whistles-what-don't-change-grammar.">
</div>
</div>

 <div id="outline-container-constructionalisation" class="outline-3">
 <h3 id="constructionalisation"> <span class="section-number-3">2.20.</span>  <a href="#constructionalisation">constructionalisation</a></h3>
 <div class="outline-text-3" id="text-constructionalisation">
</div>
</div>

 <div id="outline-container-hapax-legomena" class="outline-3">
 <h3 id="hapax-legomena"> <span class="section-number-3">2.21.</span>  <a href="#hapax-legomena">hapax legomena</a></h3>
 <div class="outline-text-3" id="text-hapax-legomena">
</div>
</div>

 <div id="outline-container-collostructional-strength" class="outline-3">
 <h3 id="collostructional-strength"> <span class="section-number-3">2.22.</span>  <a href="#collostructional-strength">collostructional strength</a></h3>
 <div class="outline-text-3" id="text-collostructional-strength">
</div>
</div>

 <div id="outline-container-echoic-verbs" class="outline-3">
 <h3 id="echoic-verbs"> <span class="section-number-3">2.23.</span>  <a href="#echoic-verbs">echoic verbs</a></h3>
 <div class="outline-text-3" id="text-echoic-verbs">
</div>
</div>

 <div id="outline-container-host-class-expansion" class="outline-3">
 <h3 id="host-class-expansion"> <span class="section-number-3">2.24.</span>  <a href="#host-class-expansion">host-class expansion</a></h3>
 <div class="outline-text-3" id="text-host-class-expansion">
</div>
</div>
</section> <section id="outline-container-Notes" class="outline-2"> <h2 id="Notes"> <span class="section-number-2">3.</span>  <a href="#Notes">Notes</a></h2>
 <div class="outline-text-2" id="text-Notes">
</div>

 <div id="outline-container-%22The-door-jingled-a-welcome%22.-Is-it-more-context-dependent,-or-more?-Perhaps-more,-since-bells-jingle,-not-doors." class="outline-3">
 <h3 id="%22The-door-jingled-a-welcome%22.-Is-it-more-context-dependent,-or-more?-Perhaps-more,-since-bells-jingle,-not-doors."> <span class="section-number-3">3.1.</span>  <a href="#%22The-door-jingled-a-welcome%22.-Is-it-more-context-dependent,-or-more?-Perhaps-more,-since-bells-jingle,-not-doors.">“The door jingled a welcome”. Is it more context-dependent, or more? Perhaps more, since bells jingle, not doors.</a></h3>
 <div class="outline-text-3" id="text-%22The-door-jingled-a-welcome%22.-Is-it-more-context-dependent,-or-more?-Perhaps-more,-since-bells-jingle,-not-doors.">
</div>
</div>

 <div id="outline-container-I-do-not-like-the-linguists'-citation-style.-%5BAuthor,-year%5D-is-_much_-better!-UPD:-Ah,-fuck,-it's-not-a-citation,-it's-a-forward-reference-to-an-example!-Fuck-forward-references!" class="outline-3">
 <h3 id="I-do-not-like-the-linguists'-citation-style.-%5BAuthor,-year%5D-is-_much_-better!-UPD:-Ah,-fuck,-it's-not-a-citation,-it's-a-forward-reference-to-an-example!-Fuck-forward-references!"> <span class="section-number-3">3.2.</span>  <a href="#I-do-not-like-the-linguists'-citation-style.-%5BAuthor,-year%5D-is-_much_-better!-UPD:-Ah,-fuck,-it's-not-a-citation,-it's-a-forward-reference-to-an-example!-Fuck-forward-references!">I do not like the linguists’ citation style. [Author, year] is  <span class="underline">much</span> better! UPD: Ah, fuck, it’s not a citation, it’s a forward-reference to an example! Fuck forward references!</a></h3>
 <div class="outline-text-3" id="text-I-do-not-like-the-linguists'-citation-style.-%5BAuthor,-year%5D-is-_much_-better!-UPD:-Ah,-fuck,-it's-not-a-citation,-it's-a-forward-reference-to-an-example!-Fuck-forward-references!">
</div>
</div>

 <div id="outline-container-Page-240,-line-14,--%22means-and-manner%22----%22means%22-supposedly-means-%22a-method-by-which%22" class="outline-3">
 <h3 id="Page-240,-line-14,--%22means-and-manner%22----%22means%22-supposedly-means-%22a-method-by-which%22"> <span class="section-number-3">3.3.</span>  <a href="#Page-240,-line-14,--%22means-and-manner%22----%22means%22-supposedly-means-%22a-method-by-which%22">Page 240, line 14,  “means and manner” – “means” supposedly means “a method by which”</a></h3>
 <div class="outline-text-3" id="text-Page-240,-line-14,--%22means-and-manner%22----%22means%22-supposedly-means-%22a-method-by-which%22">
</div>
</div>

 <div id="outline-container-Page-240,-line-14,-%22means-and-manner%22----%22manner%22-probably-means-%22style-of-doing%22" class="outline-3">
 <h3 id="Page-240,-line-14,-%22means-and-manner%22----%22manner%22-probably-means-%22style-of-doing%22"> <span class="section-number-3">3.4.</span>  <a href="#Page-240,-line-14,-%22means-and-manner%22----%22manner%22-probably-means-%22style-of-doing%22">Page 240, line 14, “means and manner” – “manner” probably means “style of doing”</a></h3>
 <div class="outline-text-3" id="text-Page-240,-line-14,-%22means-and-manner%22----%22manner%22-probably-means-%22style-of-doing%22">
</div>
</div>

 <div id="outline-container-Page-240,-line-20,-Why-is-%22she-smiled%22-called-a-%22monovalent%22-argument-structure?-Shan't-it-be-zero-valent?" class="outline-3">
 <h3 id="Page-240,-line-20,-Why-is-%22she-smiled%22-called-a-%22monovalent%22-argument-structure?-Shan't-it-be-zero-valent?"> <span class="section-number-3">3.5.</span>  <a href="#Page-240,-line-20,-Why-is-%22she-smiled%22-called-a-%22monovalent%22-argument-structure?-Shan't-it-be-zero-valent?">Page 240, line 20, Why is “she smiled” called a “monovalent” argument structure? Shan’t it be zero-valent?</a></h3>
 <div class="outline-text-3" id="text-Page-240,-line-20,-Why-is-%22she-smiled%22-called-a-%22monovalent%22-argument-structure?-Shan't-it-be-zero-valent?">
</div>
</div>

 <div id="outline-container-Page-240,-line-21,-%22thanks%22-and-%22adoration%22-are-called-%22non-prototypical%22-objects.-What-would-be-the-prototypical-ones?" class="outline-3">
 <h3 id="Page-240,-line-21,-%22thanks%22-and-%22adoration%22-are-called-%22non-prototypical%22-objects.-What-would-be-the-prototypical-ones?"> <span class="section-number-3">3.6.</span>  <a href="#Page-240,-line-21,-%22thanks%22-and-%22adoration%22-are-called-%22non-prototypical%22-objects.-What-would-be-the-prototypical-ones?">Page 240, line 21, “thanks” and “adoration” are called “non-prototypical” objects. What would be the prototypical ones?</a></h3>
 <div class="outline-text-3" id="text-Page-240,-line-21,-%22thanks%22-and-%22adoration%22-are-called-%22non-prototypical%22-objects.-What-would-be-the-prototypical-ones?">
</div>
</div>

 <div id="outline-container-Page-240,-Modern-English-has-much-more-verbs-that-can-be-both-transitive-and-intransitive." class="outline-3">
 <h3 id="Page-240,-Modern-English-has-much-more-verbs-that-can-be-both-transitive-and-intransitive."> <span class="section-number-3">3.7.</span>  <a href="#Page-240,-Modern-English-has-much-more-verbs-that-can-be-both-transitive-and-intransitive.">Page 240, Modern English has much more verbs that can be both transitive and intransitive.</a></h3>
 <div class="outline-text-3" id="text-Page-240,-Modern-English-has-much-more-verbs-that-can-be-both-transitive-and-intransitive.">
</div>
</div>

 <div id="outline-container-List-of-references,-Differences-in-capitalisation.-van-Geldern-but-Van-Goethem" class="outline-3">
 <h3 id="List-of-references,-Differences-in-capitalisation.-van-Geldern-but-Van-Goethem"> <span class="section-number-3">3.8.</span>  <a href="#List-of-references,-Differences-in-capitalisation.-van-Geldern-but-Van-Goethem">List of references, Differences in capitalisation. van Geldern but Van Goethem</a></h3>
 <div class="outline-text-3" id="text-List-of-references,-Differences-in-capitalisation.-van-Geldern-but-Van-Goethem">
</div>
</div>

 <div id="outline-container-Can-the-reference-list-at-the-end-of-the-paper-include-full-names-of-the-scientists?" class="outline-3">
 <h3 id="Can-the-reference-list-at-the-end-of-the-paper-include-full-names-of-the-scientists?"> <span class="section-number-3">3.9.</span>  <a href="#Can-the-reference-list-at-the-end-of-the-paper-include-full-names-of-the-scientists?">Can the reference list at the end of the paper include full names of the scientists?</a></h3>
 <div class="outline-text-3" id="text-Can-the-reference-list-at-the-end-of-the-paper-include-full-names-of-the-scientists?">
 <p>
It is super annoying because many people have the same name.
</p>
</div>
</div>

 <div id="outline-container-Would-it-be-possible-to-make-references-link-to-concrete-pages-and-lines-on-a-page?" class="outline-3">
 <h3 id="Would-it-be-possible-to-make-references-link-to-concrete-pages-and-lines-on-a-page?"> <span class="section-number-3">3.10.</span>  <a href="#Would-it-be-possible-to-make-references-link-to-concrete-pages-and-lines-on-a-page?">Would it be possible to make references link to concrete pages and lines on a page?</a></h3>
 <div class="outline-text-3" id="text-Would-it-be-possible-to-make-references-link-to-concrete-pages-and-lines-on-a-page?">
</div>
</div>

 <div id="outline-container-Page-241-line-5,-%22,-or-verbs-that%22,-is-it-a-clarification-or-an-option?" class="outline-3">
 <h3 id="Page-241-line-5,-%22,-or-verbs-that%22,-is-it-a-clarification-or-an-option?"> <span class="section-number-3">3.11.</span>  <a href="#Page-241-line-5,-%22,-or-verbs-that%22,-is-it-a-clarification-or-an-option?">Page 241 line 5, “, or verbs that”, is it a clarification or an option?</a></h3>
 <div class="outline-text-3" id="text-Page-241-line-5,-%22,-or-verbs-that%22,-is-it-a-clarification-or-an-option?">
</div>
</div>

 <div id="outline-container-Any-chances-to-make-a-glossary-at-the-end?" class="outline-3">
 <h3 id="Any-chances-to-make-a-glossary-at-the-end?"> <span class="section-number-3">3.12.</span>  <a href="#Any-chances-to-make-a-glossary-at-the-end?">Any chances to make a glossary at the end?</a></h3>
 <div class="outline-text-3" id="text-Any-chances-to-make-a-glossary-at-the-end?">
</div>
</div>

 <div id="outline-container-s.v.-means-%22under-the-word%22-or-%22used-as%22" class="outline-3">
 <h3 id="s.v.-means-%22under-the-word%22-or-%22used-as%22"> <span class="section-number-3">3.13.</span>  <a href="#s.v.-means-%22under-the-word%22-or-%22used-as%22">s.v. means “under the word” or “used as”</a></h3>
 <div class="outline-text-3" id="text-s.v.-means-%22under-the-word%22-or-%22used-as%22">
</div>
</div>

 <div id="outline-container-Page-241,-line-22,-Why-is-%22for-dw%C4%ABnan%22-the-word-that-means-%22sleep%22?" class="outline-3">
 <h3 id="Page-241,-line-22,-Why-is-%22for-dw%C4%ABnan%22-the-word-that-means-%22sleep%22?"> <span class="section-number-3">3.14.</span>  <a href="#Page-241,-line-22,-Why-is-%22for-dw%C4%ABnan%22-the-word-that-means-%22sleep%22?">Page 241, line 22, Why is “for-dwīnan” the word that means “sleep”?</a></h3>
 <div class="outline-text-3" id="text-Page-241,-line-22,-Why-is-%22for-dw%C4%ABnan%22-the-word-that-means-%22sleep%22?">
</div>
</div>

 <div id="outline-container-Page-241,-last-line.-Is-%22discourse%22-the-same-thing-as-%22context%22?" class="outline-3">
 <h3 id="Page-241,-last-line.-Is-%22discourse%22-the-same-thing-as-%22context%22?"> <span class="section-number-3">3.15.</span>  <a href="#Page-241,-last-line.-Is-%22discourse%22-the-same-thing-as-%22context%22?">Page 241, last line. Is “discourse” the same thing as “context”?</a></h3>
 <div class="outline-text-3" id="text-Page-241,-last-line.-Is-%22discourse%22-the-same-thing-as-%22context%22?">
</div>
</div>

 <div id="outline-container-Construction-Grammar-1995-seems-to-be-quite-an-important-piece-of-stuff!" class="outline-3">
 <h3 id="Construction-Grammar-1995-seems-to-be-quite-an-important-piece-of-stuff!"> <span class="section-number-3">3.16.</span>  <a href="#Construction-Grammar-1995-seems-to-be-quite-an-important-piece-of-stuff!">Construction Grammar 1995 seems to be quite an important piece of stuff!</a></h3>
 <div class="outline-text-3" id="text-Construction-Grammar-1995-seems-to-be-quite-an-important-piece-of-stuff!">
</div>
</div>

 <div id="outline-container-%22the-remainder-of-the-article%22--%3E-%22the-rest-of-the-article%22" class="outline-3">
 <h3 id="%22the-remainder-of-the-article%22--%3E-%22the-rest-of-the-article%22"> <span class="section-number-3">3.17.</span>  <a href="#%22the-remainder-of-the-article%22--%3E-%22the-rest-of-the-article%22">“the remainder of the article” -> “the rest of the article”</a></h3>
 <div class="outline-text-3" id="text-%22the-remainder-of-the-article%22--%3E-%22the-rest-of-the-article%22">
</div>
</div>

 <div id="outline-container-Page-243,-line--2,-what-is-this-formal-notation-for-the-construction-structure?-(SUBJ_%7Bi%7D-%5BV_%7Bintr%7DOBJ_%7Bi%7D%5D)?" class="outline-3">
 <h3 id="Page-243,-line--2,-what-is-this-formal-notation-for-the-construction-structure?-(SUBJ_%7Bi%7D-%5BV_%7Bintr%7DOBJ_%7Bi%7D%5D)?"> <span class="section-number-3">3.18.</span>  <a href="#Page-243,-line--2,-what-is-this-formal-notation-for-the-construction-structure?-(SUBJ_%7Bi%7D-%5BV_%7Bintr%7DOBJ_%7Bi%7D%5D)?">Page 243, line -2, what is this formal notation for the construction structure? (SUBJ <sub>i</sub> [V <sub>intr</sub>OBJ <sub>i</sub>])?</a></h3>
 <div class="outline-text-3" id="text-Page-243,-line--2,-what-is-this-formal-notation-for-the-construction-structure?-(SUBJ_%7Bi%7D-%5BV_%7Bintr%7DOBJ_%7Bi%7D%5D)?">
</div>
</div>

 <div id="outline-container-Page-243,-line--1.-Lack-compositionality-as-meaning?-What-does-this-mean?" class="outline-3">
 <h3 id="Page-243,-line--1.-Lack-compositionality-as-meaning?-What-does-this-mean?"> <span class="section-number-3">3.19.</span>  <a href="#Page-243,-line--1.-Lack-compositionality-as-meaning?-What-does-this-mean?">Page 243, line -1. Lack compositionality as meaning? What does this mean?</a></h3>
 <div class="outline-text-3" id="text-Page-243,-line--1.-Lack-compositionality-as-meaning?-What-does-this-mean?">
</div>
</div>

 <div id="outline-container-Page-244,-line-6.-The-%22definition%22-of-Goldberg-is-not-understandable." class="outline-3">
 <h3 id="Page-244,-line-6.-The-%22definition%22-of-Goldberg-is-not-understandable."> <span class="section-number-3">3.20.</span>  <a href="#Page-244,-line-6.-The-%22definition%22-of-Goldberg-is-not-understandable.">Page 244, line 6. The “definition” of Goldberg is not understandable.</a></h3>
 <div class="outline-text-3" id="text-Page-244,-line-6.-The-%22definition%22-of-Goldberg-is-not-understandable.">
</div>
</div>

 <div id="outline-container-Footnote-5,-what-does-%22played-by-the-novel%22-mean?-Which-novel?" class="outline-3">
 <h3 id="Footnote-5,-what-does-%22played-by-the-novel%22-mean?-Which-novel?"> <span class="section-number-3">3.21.</span>  <a href="#Footnote-5,-what-does-%22played-by-the-novel%22-mean?-Which-novel?">Footnote 5, what does “played by the novel” mean? Which novel?</a></h3>
 <div class="outline-text-3" id="text-Footnote-5,-what-does-%22played-by-the-novel%22-mean?-Which-novel?">
</div>
</div>

 <div id="outline-container-Page-247,-line-21.-This-syntactic-notation-probably-can-be-reformulated-in-a-Backus-Naur-form-to-be-more-sound." class="outline-3">
 <h3 id="Page-247,-line-21.-This-syntactic-notation-probably-can-be-reformulated-in-a-Backus-Naur-form-to-be-more-sound."> <span class="section-number-3">3.22.</span>  <a href="#Page-247,-line-21.-This-syntactic-notation-probably-can-be-reformulated-in-a-Backus-Naur-form-to-be-more-sound.">Page 247, line 21. This syntactic notation probably can be reformulated in a Backus-Naur form to be more sound.</a></h3>
 <div class="outline-text-3" id="text-Page-247,-line-21.-This-syntactic-notation-probably-can-be-reformulated-in-a-Backus-Naur-form-to-be-more-sound.">
</div>
</div>

 <div id="outline-container-What-does-the-subscript_%7Bi%7D-mean-in-the-syntactic-notation-used-in-the-document?" class="outline-3">
 <h3 id="What-does-the-subscript_%7Bi%7D-mean-in-the-syntactic-notation-used-in-the-document?"> <span class="section-number-3">3.23.</span>  <a href="#What-does-the-subscript_%7Bi%7D-mean-in-the-syntactic-notation-used-in-the-document?">What does the subscript <sub>i</sub> mean in the syntactic notation used in the document?</a></h3>
 <div class="outline-text-3" id="text-What-does-the-subscript_%7Bi%7D-mean-in-the-syntactic-notation-used-in-the-document?">
</div>
</div>

 <div id="outline-container-The-example-(20)-is-completely-out-of-context.-How-does-it-work?" class="outline-3">
 <h3 id="The-example-(20)-is-completely-out-of-context.-How-does-it-work?"> <span class="section-number-3">3.24.</span>  <a href="#The-example-(20)-is-completely-out-of-context.-How-does-it-work?">The example (20) is completely out of context. How does it work?</a></h3>
 <div class="outline-text-3" id="text-The-example-(20)-is-completely-out-of-context.-How-does-it-work?">
</div>
</div>

 <div id="outline-container-The-semantic-filling-of-the-construction-is-written-down-in-English.-Could-it-have-been-written-in-the-Stoy-Strachey-denotational-semantics?-Or-maybe-%22game-semantics%22?" class="outline-3">
 <h3 id="The-semantic-filling-of-the-construction-is-written-down-in-English.-Could-it-have-been-written-in-the-Stoy-Strachey-denotational-semantics?-Or-maybe-%22game-semantics%22?"> <span class="section-number-3">3.25.</span>  <a href="#The-semantic-filling-of-the-construction-is-written-down-in-English.-Could-it-have-been-written-in-the-Stoy-Strachey-denotational-semantics?-Or-maybe-%22game-semantics%22?">The semantic filling of the construction is written down in English. Could it have been written in the Stoy-Strachey denotational semantics? Or maybe “game semantics”?</a></h3>
 <div class="outline-text-3" id="text-The-semantic-filling-of-the-construction-is-written-down-in-English.-Could-it-have-been-written-in-the-Stoy-Strachey-denotational-semantics?-Or-maybe-%22game-semantics%22?">
</div>
</div>

 <div id="outline-container-Page-247,-line-26-%22The-proposed-schema-...%22-sentence-is-super-long-and-confusing." class="outline-3">
 <h3 id="Page-247,-line-26-%22The-proposed-schema-...%22-sentence-is-super-long-and-confusing."> <span class="section-number-3">3.26.</span>  <a href="#Page-247,-line-26-%22The-proposed-schema-...%22-sentence-is-super-long-and-confusing.">Page 247, line 26 “The proposed schema …” sentence is super long and confusing.</a></h3>
 <div class="outline-text-3" id="text-Page-247,-line-26-%22The-proposed-schema-...%22-sentence-is-super-long-and-confusing.">
</div>
</div>

 <div id="outline-container-By-the-page-248,-the-~way~-construction-has-been-mentioned-many-times,-but-no-example-has-been-given." class="outline-3">
 <h3 id="By-the-page-248,-the-~way~-construction-has-been-mentioned-many-times,-but-no-example-has-been-given."> <span class="section-number-3">3.27.</span>  <a href="#By-the-page-248,-the-~way~-construction-has-been-mentioned-many-times,-but-no-example-has-been-given.">By the page 248, the  <code>way</code>-construction has been mentioned many times, but no example has been given.</a></h3>
 <div class="outline-text-3" id="text-By-the-page-248,-the-~way~-construction-has-been-mentioned-many-times,-but-no-example-has-been-given.">
</div>
</div>

 <div id="outline-container-Page-248,-paragraph-1,-speaks-about-polysemy.-But-spotting-polysemy-begs-for-an-algorithm-of-lifting-polysemy-for-the-analysing-agent,-after-the-parsing-process-has-let-us-indentify-the-ROC-construction." class="outline-3">
 <h3 id="Page-248,-paragraph-1,-speaks-about-polysemy.-But-spotting-polysemy-begs-for-an-algorithm-of-lifting-polysemy-for-the-analysing-agent,-after-the-parsing-process-has-let-us-indentify-the-ROC-construction."> <span class="section-number-3">3.28.</span>  <a href="#Page-248,-paragraph-1,-speaks-about-polysemy.-But-spotting-polysemy-begs-for-an-algorithm-of-lifting-polysemy-for-the-analysing-agent,-after-the-parsing-process-has-let-us-indentify-the-ROC-construction.">Page 248, paragraph 1, speaks about polysemy. But spotting polysemy begs for an algorithm of lifting polysemy for the analysing agent, after the parsing process has let us indentify the ROC construction.</a></h3>
 <div class="outline-text-3" id="text-Page-248,-paragraph-1,-speaks-about-polysemy.-But-spotting-polysemy-begs-for-an-algorithm-of-lifting-polysemy-for-the-analysing-agent,-after-the-parsing-process-has-let-us-indentify-the-ROC-construction.">
</div>
</div>

 <div id="outline-container-Page-248,-line-11,-the-%22manner-interpretation-with-~while~%22-has-no-example." class="outline-3">
 <h3 id="Page-248,-line-11,-the-%22manner-interpretation-with-~while~%22-has-no-example."> <span class="section-number-3">3.29.</span>  <a href="#Page-248,-line-11,-the-%22manner-interpretation-with-~while~%22-has-no-example.">Page 248, line 11, the “manner interpretation with  <code>while</code>” has no example.</a></h3>
 <div class="outline-text-3" id="text-Page-248,-line-11,-the-%22manner-interpretation-with-~while~%22-has-no-example.">
</div>
</div>

 <div id="outline-container-Page-249,-line-7,-yet-another-type-of-English,-Early-Modern-English,-I'm-completely-lost-already.-Can-there-be-made-a-table?" class="outline-3">
 <h3 id="Page-249,-line-7,-yet-another-type-of-English,-Early-Modern-English,-I'm-completely-lost-already.-Can-there-be-made-a-table?"> <span class="section-number-3">3.30.</span>  <a href="#Page-249,-line-7,-yet-another-type-of-English,-Early-Modern-English,-I'm-completely-lost-already.-Can-there-be-made-a-table?">Page 249, line 7, yet another type of English, Early Modern English, I’m completely lost already. Can there be made a table?</a></h3>
 <div class="outline-text-3" id="text-Page-249,-line-7,-yet-another-type-of-English,-Early-Modern-English,-I'm-completely-lost-already.-Can-there-be-made-a-table?">
</div>
</div>

 <div id="outline-container-Page-249,-same-ambiguity:-%22Similarly-to-the-way-construction,-in-the-ROC-in-the-means-subschema-the" class="outline-3">
 <h3 id="Page-249,-same-ambiguity:-%22Similarly-to-the-way-construction,-in-the-ROC-in-the-means-subschema-the"> <span class="section-number-3">3.31.</span>  <a href="#Page-249,-same-ambiguity:-%22Similarly-to-the-way-construction,-in-the-ROC-in-the-means-subschema-the">Page 249, same ambiguity: “Similarly to the way-construction, in the ROC in the means subschema the</a></h3>
 <div class="outline-text-3" id="text-Page-249,-same-ambiguity:-%22Similarly-to-the-way-construction,-in-the-ROC-in-the-means-subschema-the">
 <p>
verb describes the means whereby a reaction or an emotion is expressed.“
What is a subitem of what?
As it is written, it seems that the ROC is a subitem of the ”means subschema“, not the other way round.
I would have written it as ”Similarly to the way-construction, in the ROC, in the means subschema, the
verb describes the means whereby a reaction or an emotion is expressed.“
As ”in the means subschema“ is a detalisation of the previous entity (that is the ROC).
</p>
</div>
</div>

 <div id="outline-container-Page-250,-line-19-20.-Is-there-a-full-list-of-verbs-used-in-the-ROC?-Having-Google-and-corpora,-it-shouldn't-be-too-hard-to-make-an-extensive-list." class="outline-3">
 <h3 id="Page-250,-line-19-20.-Is-there-a-full-list-of-verbs-used-in-the-ROC?-Having-Google-and-corpora,-it-shouldn't-be-too-hard-to-make-an-extensive-list."> <span class="section-number-3">3.32.</span>  <a href="#Page-250,-line-19-20.-Is-there-a-full-list-of-verbs-used-in-the-ROC?-Having-Google-and-corpora,-it-shouldn't-be-too-hard-to-make-an-extensive-list.">Page 250, line 19-20. Is there a full list of verbs used in the ROC? Having Google and corpora, it shouldn’t be too hard to make an extensive list.</a></h3>
 <div class="outline-text-3" id="text-Page-250,-line-19-20.-Is-there-a-full-list-of-verbs-used-in-the-ROC?-Having-Google-and-corpora,-it-shouldn't-be-too-hard-to-make-an-extensive-list.">
</div>
</div>

 <div id="outline-container-Page-252,-line-18,-the-regular-expressions-for-search-would-look-better-in-a-floating-figure." class="outline-3">
 <h3 id="Page-252,-line-18,-the-regular-expressions-for-search-would-look-better-in-a-floating-figure."> <span class="section-number-3">3.33.</span>  <a href="#Page-252,-line-18,-the-regular-expressions-for-search-would-look-better-in-a-floating-figure.">Page 252, line 18, the regular expressions for search would look better in a floating figure.</a></h3>
 <div class="outline-text-3" id="text-Page-252,-line-18,-the-regular-expressions-for-search-would-look-better-in-a-floating-figure.">
</div>
</div>

 <div id="outline-container-Page-256,Figure-1.-It-would-be-better-if-the-%22English-Periods%22-be-marked-at-the-X-axis." class="outline-3">
 <h3 id="Page-256,Figure-1.-It-would-be-better-if-the-%22English-Periods%22-be-marked-at-the-X-axis."> <span class="section-number-3">3.34.</span>  <a href="#Page-256,Figure-1.-It-would-be-better-if-the-%22English-Periods%22-be-marked-at-the-X-axis.">Page 256,Figure 1. It would be better if the “English Periods” be marked at the X-axis.</a></h3>
 <div class="outline-text-3" id="text-Page-256,Figure-1.-It-would-be-better-if-the-%22English-Periods%22-be-marked-at-the-X-axis.">
</div>
</div>

 <div id="outline-container-Page-257.-I-am-still-confused-at-how-exactly-the-analysis-was-performed.-There-should-be-some-code-doing-it?-Nobody-can-realistically-read-through-all-that-text-and-spot-ROCs." class="outline-3">
 <h3 id="Page-257.-I-am-still-confused-at-how-exactly-the-analysis-was-performed.-There-should-be-some-code-doing-it?-Nobody-can-realistically-read-through-all-that-text-and-spot-ROCs."> <span class="section-number-3">3.35.</span>  <a href="#Page-257.-I-am-still-confused-at-how-exactly-the-analysis-was-performed.-There-should-be-some-code-doing-it?-Nobody-can-realistically-read-through-all-that-text-and-spot-ROCs.">Page 257. I am still confused at how exactly the analysis was performed. There should be some code doing it? Nobody can realistically read through all that text and spot ROCs.</a></h3>
 <div class="outline-text-3" id="text-Page-257.-I-am-still-confused-at-how-exactly-the-analysis-was-performed.-There-should-be-some-code-doing-it?-Nobody-can-realistically-read-through-all-that-text-and-spot-ROCs.">
</div>
</div>
</section> <section id="outline-container-Wrap-up" class="outline-2"> <h2 id="Wrap-up"> <span class="section-number-2">4.</span>  <a href="#Wrap-up">Wrap-up</a></h2>
 <div class="outline-text-2" id="text-Wrap-up">
 <p>
It took me about 6 hours to read the full text.
These 6 hours spanned 2 long and 1 short session.
</p>

 <p>
The main thing that is worth mentioning is the almost total absence of the research protocols. 
(There is just one regular expression presented for querying some not very well specified database.)
This research is therefore not reproducible.
Neither the databases queried are well specified (except OED), nor the analytical procedures in the form of a code, or at least a natural language numbered list of actions.
</p>

 <p>
The second thing that is probably not that strictly required, but would be almost obvious to include is the application part.
Nothing is said on the application part of this study.
Clearly, the most obvious application would be a software subroutine for identifying ROCs in a text to aid the readers and even more importantly, the translators in spotting those expressions in a text.
Secondly, a software tool could help in identifying which subschema of the ROC is employed in each particular case, and thus aid human or AI translators in finding better expressions in the target language.
</p>

 <p>
Thirdly (although way beyond the scope of this paper), a tool could be written to identify non-ROC patterns in the source non-English languages that would admit a solid translation into English with the help of a ROC.
</p>

 <p>
Fourthly, it would be interesting to forecast which verbs, which are non-transitive yet, are the most likely to undergo transitivisation in the nearest future. 
Such a forecast, if successful, can make present day software more future-proof and more robust. 
If not successful, the forecast would serve as a falsifying tool (in the Popperian sense), and would indicate that some deeper process may be actually taking place, and suggest reassessing the described phenomena in a more abstract framework.
</p>

 <p>
In any case, it was a fascinating reading.
I am happy to be introduced into the world of language analysis.
</p>
</div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-09-10_Reading-Tamara-Bouso-Rivas_the-growth-of-the-transitivising-Reaction-Object-Construction-papers.pdf.html"/>
  <id>https://lockywolf.net/2020-09-10_Reading-Tamara-Bouso-Rivas_the-growth-of-the-transitivising-Reaction-Object-Construction-papers.pdf.html</id>
  <updated>2020-09-11T00:00:00+00:00</updated>
</entry>
<entry>
  <title>A review on &quot;Psychology of Intelligence Analysis by Richards J. Heuer Jr.&quot;</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">A review on "Psychology of Intelligence Analysis by Richards J. Heuer Jr."</h1>
</header> <nav id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul> <li> <a href="#Abstract">1. Abstract</a></li>
 <li> <a href="#What-is-intelligence?">2. What is intelligence?</a></li>
 <li> <a href="#What-does-intelligence-work-look-like?">3. What does intelligence work look like?</a></li>
 <li> <a href="#Thinking-as-an-algorithm.">4. Thinking as an algorithm.</a></li>
 <li> <a href="#A-brief-overview-of-the-guidelines.">5. A brief overview of the guidelines.</a></li>
 <li> <a href="#Conclusion.">6. Conclusion.</a></li>
 <li> <a href="#Contacts">7. Contacts</a></li>
</ul></div>
</nav> <section id="outline-container-Abstract" class="outline-2"> <h2 id="Abstract"> <span class="section-number-2">1.</span>  <a href="#Abstract">Abstract</a></h2>
 <div class="outline-text-2" id="text-Abstract">
 <p>
Richards J.Heuer Jr.is one of the people who revolutionised the way intelligence content is produced in the Central Intelligence Agency of the U.S.A.
Speaking crudely, his main contribution was the introduction of the "Scientific Method" into the everyday routines of the CIA analysts.
This book is partly his self-reflection on this transformation, and partly a list of heuristics that any intellectual worker could employ to improve his own efficiency (and self-satisfaction).
I found it very good. 
It clarified quite a bit of concepts I had been only vaguely aware of, and helped me hone a few of my own ideas.
</p>

 <p>
I actually recommend reading it to everyone, and perhaps would even suggest studying it at school, because it is hard to find a skill of more generality than a skill of thinking.
And the intelligence aroma just makes the book more exciting for kids.
</p>

 <p>
If you are interested in more detail, welcome under the cut.
</p>

 <p>

</p>
</div>
</section> <section id="outline-container-What-is-intelligence?" class="outline-2"> <h2 id="What-is-intelligence?"> <span class="section-number-2">2.</span>  <a href="#What-is-intelligence?">What is intelligence?</a></h2>
 <div class="outline-text-2" id="text-What-is-intelligence?">
 <p>
In English, "intelligence" can mean several things, the best known being the skill of thinking, and the profession of preparing reports about the world to the Head of a State.
The coincidence of these two words is, although probably accidental, very illustrative.
</p>

 <p>
It is astonishing, how living beings, when acting in groups, tend to replicate themselves on a larger scale.
A company or a country can be seen as having a digestive system (economics), a fighting system (the military), an immune system (police), the nervous system (the government), as well as, obviously, a thinking system.
To my own disgrace, I used to consider the academia to be this thinking system, however, after reading Heuer's book, I am much more sceptical about this attribution
The Intelligence agencies, as well as political parties, seem to be much more akin to the "thinking subsystem" than the ivory tower people disconnected from the empirical world.
</p>



 <p>
The Central Intelligence Agency is, perhaps, the most well-known thinking body in the world.
It is not that being famous is a benefit for a secret service, but I guess they could not have avoided that.
In the seventies they became so big that they had to develop and internal self-reflection mechanism, which eventually became the "Institute for Study of Intelligence". 
</p>

 <p>
The institute had a huge role in the CIA's internal reform, which in turn led to a ( self-proclaimed) huge boost in efficiency.
</p>

 <p>
This book, which is written by a prominent player in this reform, summarises several observations, which are supported by quite a solid (for social sciences) scientific base, aimed at precisely identifying what exactly is the process of (human) thinking, where it fails and how it can be improved.
</p>
</div>
</section> <section id="outline-container-What-does-intelligence-work-look-like?" class="outline-2"> <h2 id="What-does-intelligence-work-look-like?"> <span class="section-number-2">3.</span>  <a href="#What-does-intelligence-work-look-like?">What does intelligence work look like?</a></h2>
 <div class="outline-text-2" id="text-What-does-intelligence-work-look-like?">
 <p>
Intelligence is, first an foremost, bureaucracy.
I know, it seems like quite an obvious thing to say, but I'm always impressed by how much exactly I underestimate seemingly obvious things.
I had to interpolate quite a huge cognitive gap between myself and the author by imagining hordes of CIA clerks writing thousands of pages of… can I call them reports?
Maybe the word "encyclopedias" would have been a better fit?
</p>

 <p>
Imagine a government official needing to make a decision.
Nobody, even the smartest one can decide independently on every issue that arises.
Moreover, it is probably impossible to even select a subset of issues and to research those carefully, since the urgency of the issues is not directly related to their importance, some (most?) are pushed in by the political agenda, which cannot be just ignored.
</p>

 <p>
Therefore a super ignorant politician is in a desperate need of something that he can ask for "what shall we do with this super urgent thing that I have no idea about".
God Bless Google and Wikipedia for being able to deliver context to the executives.
But even having the context is not enough, because after the context is established, the politician is very likely to ask "what happens if we do X in this context Y?".
And this is a question Wikipedia cannot answer. 
Moreover, it is probably just as unlikely to be able to produce an high quality answer to such a question on-the-spot, because answering such questions is usually a slow job.
Therefore, there needs to be someone who "pre-caches" answers to such questions.
</p>

 <p>
My imagination already paints immense cupboards filled with identically bound books, only differing by the titles on their spines: "What shall we do if North Korea invades South Korea in 2010 (2011, 2012, 2013, 2014… )", all very similar to each other, but ready to be placed at the U.S. president's (or, indeed a Chinese general secretary) desk in case the event occurs.
</p>

 <p>
Essentially you have writers whose imagination is too poor to entice the readers, or journalists whose writing style is too dry, writing almost identical texts on the almost identical subject, day after day, year after year.
Such extremely boring people are called "intelligence analysts".
</p>

 <p>
There are also people who's job is to invent questions to ask them, as well as people who's job is to assess where the reports they are making bear as much resemblance to reality as possible.
</p>

 <p>
If all of this sounds an awful lot like a very sad version of cosplaying Google – that's because it is.
</p>
</div>
</section> <section id="outline-container-Thinking-as-an-algorithm." class="outline-2"> <h2 id="Thinking-as-an-algorithm."> <span class="section-number-2">4.</span>  <a href="#Thinking-as-an-algorithm.">Thinking as an algorithm.</a></h2>
 <div class="outline-text-2" id="text-Thinking-as-an-algorithm.">
 <p>
So, the intelligence people have invented Google a long time before Google.
And Google's question-answering system is, perhaps, the closest approximation to the "artificial intelligence" that we may think of nowadays.
This leads us to the question of what exactly is artificial intelligence?
</p>

 <p>
In fact this thought hasn't left me all the time that I have been reading this book.
This book is almost like writing an interpreter for a peculiar (military-styled) query language, in an peculiar (psychologically-styled) language, producing reports in a peculiar (politically-styled) language.
</p>

 <p>
And a language interpreter essentially consists of a database (and the books speaks about the knowledge representation in human brains), and a set of subroutines that operate on these data.
Just that simple.
</p>

 <p>
Naturally, as every programmer knows, machine primitives available to the programmer are far from being ideal.
Most programmers are used to integer overflows when adding numbers.
Far less people are prepared for cognitive biases in humans when writing instructions, manuals and guidelines for people.
</p>

 <p>
Indeed the book deals quite a lot with these two topics: how to ensure proper data management in an analyst's brain, and how to program analysts in order for their reports to be written taking into account the limitations of the human brain's thinking subroutines.
</p>
</div>
</section> <section id="outline-container-A-brief-overview-of-the-guidelines." class="outline-2"> <h2 id="A-brief-overview-of-the-guidelines."> <span class="section-number-2">5.</span>  <a href="#A-brief-overview-of-the-guidelines.">A brief overview of the guidelines.</a></h2>
 <div class="outline-text-2" id="text-A-brief-overview-of-the-guidelines.">
 <p>
I will not write a lot about the guidelines themselves.
After all, the book is all about that, and I have prepared a list of key points for myself, in a separate document.
( <a href="https://gitlab.com/Lockywolf/linuxbugs-lwf/-/blob/master/notes/2020-09-03_Richards-J-Heuer-Jr_Psychology-of-Intelligence-Analysis/2020-09-03_richards-j-heuer-jr_psychology-of-intelligence-analysis_notes.org">https://gitlab.com/Lockywolf/linuxbugs-lwf/-/blob/master/notes/2020-09-03_Richards-J-Heuer-Jr_Psychology-of-Intelligence-Analysis/2020-09-03_richards-j-heuer-jr_psychology-of-intelligence-analysis_notes.org</a>)
</p>

 <p>
But I need to give points to the author for writing a book in a way that is pleasant for reading. 
Chapters are well structures, every section has a summary prepended to the main text.
(I revised the book content after reading by doing a second pass and reading summaries only.)
There are several problems given, which illustrate some of the book concepts on the reader himself.
Nice!
</p>

 <p>
In general, however, the three most general advices the book gives would be: 
</p>
 <ul class="org-ul"> <li>Trust nothing, nobody, and foremost, don't trust yourself.</li>
 <li>Do care about your own mental data structure.</li>
 <li>Write, write, and write. Bureaucracy rules the world.</li>
</ul></div>
</section> <section id="outline-container-Conclusion." class="outline-2"> <h2 id="Conclusion."> <span class="section-number-2">6.</span>  <a href="#Conclusion.">Conclusion.</a></h2>
 <div class="outline-text-2" id="text-Conclusion.">
 <p>
One of the best books on the skill of thinking.
I would definitely recommend it as a high school textbook for kids, as a gentle introduction into how messy the thinking process actually is.
I will probably also read it later again, for a recap and to spot the unnoticed jewels.
</p>

 <p>
The only drawback being that this book is already 20 years old, perhaps there is something more advanced already?
Suggestions welcome.
</p>
</div>
</section> <section id="outline-container-Contacts" class="outline-2"> <h2 id="Contacts"> <span class="section-number-2">7.</span>  <a href="#Contacts">Contacts</a></h2>
 <div class="outline-text-2" id="text-Contacts">
 <p>
I also have:
</p>
 <dl class="org-dl"> <dt>Facebook</dt> <dd> <a href="http://facebook.com/vladimir.nikishkin">http://facebook.com/vladimir.nikishkin</a></dd>
 <dt>Telegram</dt> <dd> <a href="http://t.me/unobvious">http://t.me/unobvious</a></dd>
 <dt>GitLab</dt> <dd> <a href="http://gitlab.com/lockywolf">http://gitlab.com/lockywolf</a></dd>
 <dt>Twitter</dt> <dd> <a href="https://twitter.com/VANikishkin">https://twitter.com/VANikishkin</a></dd>
</dl></div>
</section></main>]]></content>
  <link href="https://lockywolf.net/2020-09-03_Richards-J-Heuer-Jr_Psychology-of-Intelligence-Analysis/2020-09-08_Richards-J-Heuer-Jr_Psychology-of-Intelligence-Analysis_Review.html"/>
  <id>https://lockywolf.net/2020-09-03_Richards-J-Heuer-Jr_Psychology-of-Intelligence-Analysis/2020-09-08_Richards-J-Heuer-Jr_Psychology-of-Intelligence-Analysis_Review.html</id>
  <updated>2020-09-10T00:00:00+00:00</updated>
</entry>
<entry>
  <title>https://lockywolf.net/2021-02-08_Solving-SICP-Experience-Report-on-solving-sicp-from-icfp-scheme-2020-html-version-from-2020-08-29/bibliography-bib.html</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<nil></nil>]]></content>
  <link href="https://lockywolf.net/2021-02-08_Solving-SICP-Experience-Report-on-solving-sicp-from-icfp-scheme-2020-html-version-from-2020-08-29/bibliography-bib.html"/>
  <id>https://lockywolf.net/2021-02-08_Solving-SICP-Experience-Report-on-solving-sicp-from-icfp-scheme-2020-html-version-from-2020-08-29/bibliography-bib.html</id>
  <updated>2001-01-01T00:00:00+00:00</updated>
</entry>
<entry>
  <title>https://lockywolf.net/2021-02-08_Solving-SICP-Experience-Report-on-solving-sicp-from-icfp-scheme-2020-html-version-from-2020-08-29/bibliography-bib_bib.html</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<nil></nil>]]></content>
  <link href="https://lockywolf.net/2021-02-08_Solving-SICP-Experience-Report-on-solving-sicp-from-icfp-scheme-2020-html-version-from-2020-08-29/bibliography-bib_bib.html"/>
  <id>https://lockywolf.net/2021-02-08_Solving-SICP-Experience-Report-on-solving-sicp-from-icfp-scheme-2020-html-version-from-2020-08-29/bibliography-bib_bib.html</id>
  <updated>2001-01-01T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Chibi-Scheme</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<nil></nil>]]></content>
  <link href="https://lockywolf.net/chibi-js/index.html"/>
  <id>https://lockywolf.net/chibi-js/index.html</id>
  <updated>2001-01-01T00:00:00+00:00</updated>
</entry>
<entry>
  <title>Index</title>
  <author><name>lockywolf</name></author>
  <content type="html"><![CDATA[<main id="content" class="content"> <header> <h1 class="title">Index</h1>
</header></main>]]></content>
  <link href="https://lockywolf.net/theindex.html"/>
  <id>https://lockywolf.net/theindex.html</id>
  <updated>2001-01-01T00:00:00+00:00</updated>
</entry>
</feed>
