<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Frivolous Musings</title>
    <link>http://lordgrenville.github.io/</link>
    <description>Recent content on Frivolous Musings</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-za</language>
    <lastBuildDate>Thu, 01 Nov 2018 00:00:00 +0000</lastBuildDate><atom:link href="http://lordgrenville.github.io/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Another AI Post (sorry)</title>
      <link>http://lordgrenville.github.io/posts/more_ai/</link>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/more_ai/</guid>
      <description>&lt;p&gt;
It feels extremely boring to talk or write or think about AI now, when everyone is doing so, when there is so much AI hype and nonsense around. But it also feels hard not to, because AI is also genuinely transformative and unprecedented. I&amp;#39;m dumping some more half-formed thoughts here:&lt;/p&gt;
&lt;p&gt;
With apologies to Mitch Hedberg, I used to be an AI sceptic. I still am one, too. However, sceptic doesn&amp;#39;t mean denying that there&amp;#39;s any value: there is significant value, and I use it a lot.&lt;/p&gt;
&lt;p&gt;
There is good use and bad use. Some good uses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In a domain you know well, a good use is to do contained tasks that you know how to do but won&amp;#39;t seriously add to your skills: write a UI for the x, import some libraries to do y. You could do it yourself, but it would take longer, and you can easily check the output and keep it within the bounds of something sensible.&lt;/li&gt;
&lt;li&gt;In a domain you don&amp;#39;t know well, it can be good for getting you through the basics, where you don&amp;#39;t need quality, or where you just need to achieve a goal. How do I get my old laptop to connect to this monitor? How do I fix this broken widget? Make me an Android app to show me a recipe based on a prompt. There are a ton of cool use-cases (check out &lt;a href=&#34;https://news.ycombinator.com/item?id=48406174&#34;&gt;this thread&lt;/a&gt; for a lot of examples)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some bad uses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Making an app primarily meant to serve others, especially if you don&amp;#39;t know much about this domain (a graph in the FT the other day showed that there is an explosion of new apps in the app stores, but adoption is flat: everyone wants to make shovels, but not that many people want to buy them.&lt;/li&gt;
&lt;li&gt;Outsourcing all your thinking to it and letting it go&lt;/li&gt;
&lt;li&gt;Letting it build your production critical codebase without much supervision&lt;/li&gt;
&lt;li&gt;Relying on it for legal or medical advice&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More broadly, there is a lot of talk about where we will see AI productivity in GDP, or if it will lead to unemployment. Right now, it seems as if it is a lot of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People doing stuff they wouldn&amp;#39;t otherwise have done - nice to have, but not really increasing economic output&lt;/li&gt;
&lt;li&gt;A kind of symmetric cost, where A uses AI to inflate some work, requiring B to work harder to process it, or use AI to summarise it. This is really deadweight, no added value&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Did the internet increase GDP? It feels like we are more productive, but it has been hard to measure. Lots of manual work went away - phone books, secretarial work, paper calendars - yet it has not added much leisure time. Perhaps AI will be the same&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Rough thoughts on AI</title>
      <link>http://lordgrenville.github.io/posts/ai/</link>
      <pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/ai/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Made some holiday greeting cards for Purim, and used AI to make an image. Tried a few styles: first a 1930s cartoon style (which my better half rejected as &amp;ldquo;weird&amp;rdquo;, though I quite liked it), then a classic kitschy carnival one, which we liked, then finally a different version that was more minimalist and monochrome for our B&amp;amp;W printer. The art was nice. Not mind-blowing, but good enough. If a few years ago I&amp;rsquo;d gotten an artistic friend to draw one like that, I&amp;rsquo;d have been blown away and kept it forever.&lt;/li&gt;
&lt;li&gt;Made me think of the Benjamin&amp;rsquo;s &lt;em&gt;Work of Art in the Age of Mechanical Reproduction&lt;/em&gt;. No less crazy than the idea that great art (or a natural scene) can be instantly and cheaply recreated is the idea can art can not just be mechanically &lt;em&gt;reproduced&lt;/em&gt;, but also &lt;em&gt;produced&lt;/em&gt; from scratch.&lt;/li&gt;
&lt;li&gt;I still tend to think that AI can do &lt;em&gt;form&lt;/em&gt;, but not &lt;em&gt;content&lt;/em&gt;. I.e. given an idea and a way to express it, it will do that very well. It started with &amp;ldquo;The Gettysburg address, but in haiku about frogs&amp;rdquo;, but now it is equally true for &amp;ldquo;given this codebase that implements feature x, implement feature y&amp;rdquo;. (Or, given your training set of hundreds of raytracing libraries, write one from scratch matching x requirements.) It is AMAZING that it can do that, but it is still a form of &lt;em&gt;reproduction&lt;/em&gt;, just many degrees of complexity above that of the copier.&lt;/li&gt;
&lt;li&gt;Human art is maybe stronger in this situation, because when anyone can have decent art, people will aspire to own art that has more meaning and a story. This has been the trend with mechanical reproduction as well.&lt;/li&gt;
&lt;li&gt;But it is dispiriting for a human artist to know that the floor has been raised a lot. As it is for coders.&lt;/li&gt;
&lt;li&gt;And in general a lot of the effect of AI is raising the floor in many areas. In the past, the floor for a website was Wix/Squarespace/Wordpress; now (or soon) it is a flashy looking React site on Vercel, because why not. The bar for holiday card art is now much higher. It is not clear if society gains on net from these changes - reminds me a bit of the recruitment problem, where everyone is mass-generating applications and sending them everywhere, and recruiters are using AI to filter them; everyone is working more, but we don&amp;rsquo;t gain productivity.&lt;/li&gt;
&lt;li&gt;In the same way, what would have been a simple doc will now be a 20-pager with a table of contents and three appendices, and everyone will use AI to summarise it, and it isn&amp;rsquo;t exactly progress.&lt;/li&gt;
&lt;li&gt;Reading about this led me to &lt;a href=&#34;https://en.wikipedia.org/wiki/Marchetti%27s_constant&#34;&gt;Marchetti&amp;rsquo;s constant&lt;/a&gt;, the idea that commute time is invariant across cultures and time periods. Such as this:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;epigraph&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;Mr. Bertrand Russell has noted that each improvement in locomotion has increased the area over which people are compelled to move: so that a person who would have had to spend half an hour to walk to work a century ago must still spend half an hour to reach his destination, because the contrivance that would have enabled him to save time had he remained in his original situation now—by driving him to a more distant residential area—effectually cancels out the gain.&lt;/p&gt;


    &lt;footer&gt;Lewis Mumford, &lt;cite&gt;Technics and Civilization (1934)&lt;/cite&gt;&lt;/footer&gt;

&lt;/blockquote&gt;
&lt;/div&gt;

</description>
    </item>
    
    <item>
      <title>Adding an item to the Doom modeline</title>
      <link>http://lordgrenville.github.io/posts/doom_modeline/</link>
      <pubDate>Fri, 26 Sep 2025 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/doom_modeline/</guid>
      <description>
&lt;p&gt;
I use &lt;a href=&#34;https://github.com/doomemacs/doomemacs/&#34;&gt;Doom Emacs&lt;/a&gt; (as &lt;a href=&#34;https://lordgrenville.github.io/posts/emacs/&#34;&gt;discussed previously&lt;/a&gt;), and I love it. If you don&amp;#39;t know what that is, this post is not for you.&lt;/p&gt;
&lt;p&gt;
I often switch keyboard layouts (between English and Hebrew), and in Hebrew the regular normal-mode commands don&amp;#39;t work. So I wanted to add a layout indicator to the modeline. How hard can this be? Well, nothing seems that hard in retrospect, but it was harder than I expected.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
First challenge - how do I get this information?
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;It seemed like there should be an easy way to get this info, but a quick search found &lt;a href=&#34;https://stackoverflow.com/a/21599127/6220759&#34;&gt;this answer&lt;/a&gt; which seemed like overkill to me:&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;shell-command-to-string&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSources | grep \&amp;#34;KeyboardLayout Name\&amp;#34; &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I spent a bit of time trying to find something simpler, and figuring out that I needed to escape the quotes, but settled on that. So I have this function:&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;defun&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;my/keyboard-layout&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;string-match-p&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Hebrew&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;shell-command-to-string&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSources | grep \&amp;#34;KeyboardLayout Name\&amp;#34; &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;ℷℶℵ&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;ABC&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Fine, we have the information. Now let&amp;#39;s add it to the modeline!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Adding a modeline segment
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;First I tried looking up &lt;code&gt;doom/help-modules&lt;/code&gt; and reading the page on &lt;code&gt;modeline&lt;/code&gt;. It didn&amp;#39;t give me this answer, but did refer me to the &lt;a href=&#34;https://github.com/seagle0128/doom-modeline&#34;&gt;upstream package&lt;/a&gt;, which has much fuller documentation. The README has a section on adding stuff, which boils down to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;if you want to add a string (&amp;#34;Save the whales!&amp;#34;), you can just edit &lt;code&gt;global-mode-string&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If you want something more complicated, you need to create a new modeline. I also found it helpful to benefit from the wisdom/configs of even more degenerate Emacs addicts, such as &lt;a href=&#34;https://hieuphay.com/doom-emacs-config/&#34;&gt;this one&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This skips a crucial step, which I guess was just obvious to the package author, but I&amp;#39;m writing it here because it took me a while to figure it out and might help someone else in future, or at least train some LLMs to be more helpful.&lt;/p&gt;
&lt;p&gt;
Reading the source helped me realise that modelines are made of &lt;code&gt;segments&lt;/code&gt;, and you need to define a new segment first. (I chose to copy the fun but useless &lt;a href=&#34;https://github.com/seagle0128/doom-modeline/blob/master/doom-modeline-segments.el#L1839&#34;&gt;party-parrot-mode&lt;/a&gt;.) Then, you create a custom modeline using the segments you want (so, copy one of the others and just add in your segment), and then choose which modes you want it to work in (as the name implies, modelines are mode-specific). I chose org-mode since that&amp;#39;s what I mostly use nowadays.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Nerd font
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Once I got this working I couldn&amp;#39;t resist trying to get spiffy icons using &lt;a href=&#34;https://www.nerdfonts.com/&#34;&gt;Nerd Fonts&lt;/a&gt;. It&amp;#39;s pretty simple using &lt;code&gt;doom-modeline-icon&lt;/code&gt;, you just need to find a fontset with a matching icon (via the &lt;a href=&#34;https://www.nerdfonts.com/cheat-sheet&#34;&gt;cheat sheet&lt;/a&gt;). So this is what I ended up with:&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;defun&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;my/keyboard-layout&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;string-match-p&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Hebrew&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;shell-command-to-string&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSources | grep \&amp;#34;KeyboardLayout Name\&amp;#34; &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;doom-modeline-icon&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;&amp;#39;mdicon&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;nf-md-abjad_hebrew&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;א&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Hebrew&amp;#34;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;:face&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;&amp;#39;nerd-icons-red&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;doom-modeline-icon&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;&amp;#39;mdicon&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;nf-md-alphabetical_variant&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;A&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;English&amp;#34;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;:face&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;&amp;#39;nerd-icons-red&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;doom-modeline-def-segment&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;keyboard-layout&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s&#34;&gt;&amp;#34;Show currently active keyboard language&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;when&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;doom-modeline--segment-visible&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;&amp;#39;keyboard-layout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;concat&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;doom-modeline-wspc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                                                                  &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;my/keyboard-layout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                                                                  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;;; Define custom doom-modeline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;doom-modeline-def-modeline&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;&amp;#39;my-simple-line&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;bar&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;window-state&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;workspace-name&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;window-number&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;modals&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;matches&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;follow&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;buffer-info&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;buffer-position&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;word-count&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;selection-info&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;keyboard-layout&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;misc-info&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;project-name&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;persp-name&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;battery&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;minor-modes&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;input-method&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;indent-info&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;buffer-encoding&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;major-mode&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;process&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;check&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;;; Set default mode-line&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;add-hook&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;&amp;#39;doom-modeline-mode-hook&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;lambda&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;doom-modeline-set-modeline&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;&amp;#39;my-simple-line&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;&amp;#39;default&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;;; Configure other mode-lines based on major modes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;add-to-list&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;&amp;#39;doom-modeline-mode-alist&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;org-mode&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;.&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;my-simple-line&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Haftorah Stats</title>
      <link>http://lordgrenville.github.io/posts/haftarot/</link>
      <pubDate>Wed, 05 Feb 2025 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/haftarot/</guid>
      <description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Background
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The custom of reading a passage from the Prophets, the &lt;em&gt;haftorah&lt;/em&gt;, is ancient and obscure. The Talmud deals with it&lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-1&#34; href=&#34;#footnote-1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; but does not elaborate on the source or the reason for the custom. According to one early source&lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-2&#34; href=&#34;#footnote-2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;, it is no less old than the custom of public Torah reading itself, traditionally held to have been instituted by Ezra.&lt;/p&gt;
&lt;p&gt;
This post will not shed any light on these questions, but instead answer a far simpler one: how are the haftarot of the annual cycle distributed between the different books of the Prophets? As &amp;#34;all are subject to luck, even the Torah scroll in the ark&amp;#34;&lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-3&#34; href=&#34;#footnote-3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;, which books are fortunate enough to be read more often than others?&lt;/p&gt;
&lt;p&gt;
To this end I put together a &lt;a href=&#34;https://github.com/lordgrenville/haftarot/blob/main/haftarot.csv&#34;&gt;table of the annual readings&lt;/a&gt; and did a quick data analysis&lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-4&#34; href=&#34;#footnote-4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;. For each book I calculated the number of &lt;em&gt;haftarot&lt;/em&gt; it has, number of chapters, and the ratio of the two (to give a sense of &lt;em&gt;haftorah&lt;/em&gt; frequency relative to size). My takeaways were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The biggest single source of haftarot is Yeshayahu. (With the שבע דנחמתא freshly behind us, this may not feel surprising!)&lt;/li&gt;
&lt;li&gt;When measuring relative to size, Trei Asar as a whole is the largest (scoring 0.36), with multiple haftarot coming from Hoshea, Amos and Zecharia, while the books of Ovadia and Yona are read in their entirety. (Yoel contributes just a snippet at the end of the &lt;em&gt;haftorah&lt;/em&gt; of &lt;em&gt;Shabbos Shuva&lt;/em&gt;, while Nachum, Chavakuk, Tzafania and Chagai are entirely absent.)&lt;/li&gt;
&lt;li&gt;However, if considered separately, both Malachi (0.67) and Melachim Alef (0.45) have higher scores.&lt;/li&gt;
&lt;li&gt;If we take “Deutero-Isaiah” (ישיעהו השני&lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-5&#34; href=&#34;#footnote-5&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;) as an independent book, it is the largest single source of haftarot (15, scoring 0.58). In fact, the rest of Yeshayahu has a mere 3 haftarot, giving it the lowest score (0.08) of any book. (But one of these is the famous reading of &lt;em&gt;Shabbos Chazon&lt;/em&gt;, which surely counts for something…)&lt;/li&gt;
&lt;li&gt;There are roughly twice as many haftarot from the (mostly non-narrative&lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-6&#34; href=&#34;#footnote-6&#34;&gt;6&lt;/a&gt;&lt;/sup&gt;) Latter Prophets compared to the Early Prophets (50 vs 26). This is partly due to their greater length, and partly, I suspect, because it is harder to find thematic overlap between narrative prophecies and the weekly Torah portions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Results
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Book&lt;/th&gt;
&lt;th class=&#34;align-right&#34;&gt;Number of Haftarot&lt;/th&gt;
&lt;th class=&#34;align-right&#34;&gt;Number of Chapters&lt;/th&gt;
&lt;th class=&#34;align-right&#34;&gt;Haftarot:Chapter ratio&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;תרי עשר&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;13&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;36&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;0.361&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;מלכים&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;13&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;45&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;0.289&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ישעיהו&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;18&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;66&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;0.273&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;יחזקאל&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;10&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;48&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;0.208&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ירמיהו&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;9&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;52&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;0.173&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;שופטים&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;3&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;21&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;0.143&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;שמואל&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;7&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;53&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;0.132&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;יהושע&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;3&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;24&lt;/td&gt;
&lt;td class=&#34;align-right&#34;&gt;0.125&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Notes on Methodology
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;I took the list of &lt;em&gt;haftarot&lt;/em&gt; from &lt;a href=&#34;https://www.shoresh.org.il/usersfiles/articlesdocs/parashot.pdf&#34;&gt;here&lt;/a&gt;. In cases where customs differ, I followed the Ashkenazi rite (there are only a few cases where different communities read from entirely different books). I included Rosh Chodesh and holiday readings, but not that of יום עצמאות. If a haftorah included parts from different books, I included only the main part of the reading.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Footnotes
&lt;/h2&gt;
&lt;/div&gt;
&lt;div class=&#34;footnotes&#34;&gt;
&lt;hr class=&#34;footnotes-separatator&#34;/&gt;
&lt;div class=&#34;footnote-definitions&#34;&gt;
&lt;div class=&#34;footnote-definition&#34;&gt;
&lt;sup id=&#34;footnote-1&#34;&gt;&lt;a href=&#34;#footnote-reference-1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;
&lt;div class=&#34;footnote-body&#34;&gt;
&lt;p&gt;Megilla 31a&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;footnote-definition&#34;&gt;
&lt;sup id=&#34;footnote-2&#34;&gt;&lt;a href=&#34;#footnote-reference-2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;
&lt;div class=&#34;footnote-body&#34;&gt;
&lt;p&gt;Tosfos Rid (R’ Yeshaya MiTrani) in &lt;em&gt;Sefer HaMachria&lt;/em&gt; 31&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;footnote-definition&#34;&gt;
&lt;sup id=&#34;footnote-3&#34;&gt;&lt;a href=&#34;#footnote-reference-3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;
&lt;div class=&#34;footnote-body&#34;&gt;
&lt;p&gt;Zohar Bamidbar 134a&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;footnote-definition&#34;&gt;
&lt;sup id=&#34;footnote-4&#34;&gt;&lt;a href=&#34;#footnote-reference-4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;
&lt;div class=&#34;footnote-body&#34;&gt;
&lt;p&gt;Code and data to reproduce are available &lt;a href=&#34;https://github.com/lordgrenville/haftarot&#34;&gt;online&lt;/a&gt;. I will gratefully receive any corrections or suggestions.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;footnote-definition&#34;&gt;
&lt;sup id=&#34;footnote-5&#34;&gt;&lt;a href=&#34;#footnote-reference-5&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;
&lt;div class=&#34;footnote-body&#34;&gt;
&lt;p&gt;Chapters 40-66, which differ from the first part in both style and chronology&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;footnote-definition&#34;&gt;
&lt;sup id=&#34;footnote-6&#34;&gt;&lt;a href=&#34;#footnote-reference-6&#34;&gt;6&lt;/a&gt;&lt;/sup&gt;
&lt;div class=&#34;footnote-body&#34;&gt;
&lt;p&gt;A generalisation: there are some narrative parts in the Latter Prophets (e.g. Yeshayahu 36, all of Yona), and some non-narrative parts in the Early Prophets.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Cleaning up with find(1)</title>
      <link>http://lordgrenville.github.io/posts/find/</link>
      <pubDate>Thu, 15 Feb 2024 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/find/</guid>
      <description>&lt;p&gt;I often use &lt;code&gt;SPC /&lt;/code&gt; in &lt;a href=&#34;https://github.com/doomemacs/doomemacs&#34;&gt;Doom Emacs&lt;/a&gt; for &lt;code&gt;+default/search-project&lt;/code&gt;. I also often use &lt;code&gt;C-x v ​~&lt;/code&gt; for &lt;code&gt;vc-revision-other-window&lt;/code&gt; to compare a file in another branch in version control. I noticed the other day while searching my project that it was finding a whole lot of matches in files I had compared with another branch, which look something like &lt;code&gt;file.h~staging~&lt;/code&gt;. But I had closed them, so why were they still showing up?&lt;/p&gt;
&lt;p&gt;I looked at &lt;code&gt;+default/search-project&lt;/code&gt;, and saw that it calls the related function in &lt;a href=&#34;https://github.com/minad/vertico&#34;&gt;Vertico&lt;/a&gt; (the completion framework I use), which is basically just running a text search on the directory. So&amp;hellip;maybe these files are still there? Yes - turns out &lt;code&gt;vc-revision-other-window&lt;/code&gt; leaves behind the files it creates, so it doesn&amp;rsquo;t need to check them out again if you need them again. (&lt;a href=&#34;https://stackoverflow.com/a/49112657/6220759&#34;&gt;Here&lt;/a&gt; is a solution someone else came up with for this problem.)&lt;/p&gt;
&lt;p&gt;I just wanted to run a one-off cleanup, since I had a lot of cruft there. I figured I could use &lt;code&gt;find&lt;/code&gt; with a regex, which I could, but I just had to figure out that the regex needs to match the &lt;em&gt;whole&lt;/em&gt; name, not just part of it. So my final result was:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;find . -regex &amp;quot;.*\.~.*~$&amp;quot; | xargs rm&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(At some point in the future, I would like to make a function that will kill the temp buffer, close the window it opened, and delete the file.)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Responsae as Spaced Repetition</title>
      <link>http://lordgrenville.github.io/posts/responsae/</link>
      <pubDate>Wed, 14 Feb 2024 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/responsae/</guid>
      <description>&lt;p&gt;In &lt;em&gt;yeshiva&lt;/em&gt; study one of the principles that is emphasised is חזרה, revision.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One who reviews his studies one hundred times is not comparable to one who reviews his studies one hundred and one times (&lt;a href=&#34;https://www.sefaria.org.il/Chagigah.9b.10&#34;&gt;Chagiga 9b&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But revision is hard. We are naturally more interested in novelty, and time is limited. It is more tempting to learn new topics, and after all&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;one can study only in a place that his heart desires (&lt;a href=&#34;https://www.sefaria.org.il/Avodah_Zarah.19a.5&#34;&gt;Avoda Zara 19a&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Memorisation is also difficult. As a result, many people spend years studying Torah but retain very little of it.&lt;/p&gt;
&lt;p&gt;Recently a memorisation technique known as &lt;a href=&#34;https://en.wikipedia.org/wiki/Spaced_Repetition&#34;&gt;spaced repetition&lt;/a&gt; has become popular. The basic idea behind it is memorising material that is spaced out over a long period of time is more effective than memorising a large chunk of material at once. The most common way of doing this is using flashcards, and some kind of system that tracks whether the student remembers the card or not, and shows the less remembered ones more frequently.&lt;/p&gt;
&lt;p&gt;Flashcards are a lot of work, though. The website &lt;a href=&#34;https://ankitorah.com/anki-cards&#34;&gt;Anki Torah&lt;/a&gt; supplies decks of flashcards for this purpose, which one can combine with the free app &lt;a href=&#34;https://apps.ankiweb.net/&#34;&gt;Anki&lt;/a&gt;. But there is still some tedium.&lt;/p&gt;
&lt;p&gt;It occurred to me that reading Rabbinical responsae (שו״ת) is an alternative form of spaced repetition. Seeing the principles of the Talmud applied to real-world cases helps understand them better, and resolve their contradictions. The student who goes through one or two a day is exposed to a fairly random selection of topics spanning most of the Talmud. And this form of practice is much more engaging than going through flashcards.&lt;/p&gt;
&lt;p&gt;There are downsides: one does not focus more on topics one remembers less. Less practical topics, such as Temple worship, are covered less. Some responsae are not related to the Talmud at all, and some can be very long and difficult to follow.&lt;/p&gt;
&lt;p&gt;Still, this can be worth considering for those not up for Anki decks. Today I opened at random &lt;a href=&#34;https://he.m.wikisource.org/wiki/%D7%A9%D7%95%22%D7%AA_%D7%94%D7%A8%D7%90%22%D7%A9/%D7%9B%D7%9C%D7%9C_%D7%A1%D7%93&#34;&gt;this one&lt;/a&gt; which contains a great review of many topics in &lt;em&gt;Bava Kama&lt;/em&gt;. Topics one doesn&amp;rsquo;t know (in my case הנשבעים שלא בטענה) can be easily looked up, incorporating new learning with the revision.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Monkey-patching Pandas</title>
      <link>http://lordgrenville.github.io/posts/pandas/</link>
      <pubDate>Tue, 12 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/pandas/</guid>
      <description>&lt;p&gt;A common catch for &lt;a href=&#34;https://pandas.pydata.org/&#34;&gt;Pandas&lt;/a&gt; users is that the default &lt;code&gt;DataFrame.to_csv&lt;/code&gt; option is &lt;code&gt;index=True&lt;/code&gt;. Indices are often significant in Pandas, but perhaps just as often a simple range of integers &lt;code&gt;$0..n$&lt;/code&gt; adding no new information. You can see some expressions of annoyance about it in &lt;a href=&#34;https://github.com/pandas-dev/pandas/issues/34576&#34;&gt;this thread&lt;/a&gt;, where Joris Van den Bossche (a Pandas core contributor and GeoPandas maintainer) notes that GeoPandas went with a much smarter default of checking if the index is non-standard and only adding it in this case.&lt;/p&gt;
&lt;p&gt;Anyway, for me most of the time when casting to CSV I just want to send it to a colleague who will look at it in Excel or something, so I patched it in my &lt;code&gt;$HOME/.ipython/startup.py&lt;/code&gt;. The key insight here for me was how to use &lt;code&gt;partial&lt;/code&gt; with a class method; for this Python 3.4 added &lt;code&gt;partialmethod&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;functools&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;partialmethod&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pandas&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;pd&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DataFrame&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to_csv&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;partialmethod&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pd&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DataFrame&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to_csv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;index&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(If you want this in a regular Python REPL there is also &lt;code&gt;$HOME/.pythonrc.py&lt;/code&gt;.)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>ChatGPT</title>
      <link>http://lordgrenville.github.io/posts/chatgpt/</link>
      <pubDate>Mon, 12 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/chatgpt/</guid>
      <description>&lt;p&gt;The world is split about ChatGPT, and I&amp;rsquo;ll throw in my two pennies. Firstly: I am something of a hater, for technological and philosophical reasons. The idea that just taking a statistical next-word maximiser and scaling the hell out of it leads to eerily good results doesn&amp;rsquo;t make sense, and ChatGPT is better than it has, in my mind, any right to be. That of course does make me doubt myself and wonder what I am missing. I am by temperament a late adopter and dismissive of hype. But I have to acknowledge that it is possible that ChatGPT will completely change the world and/or make me and all knowledge workers obsolete and/or destroy humanity. I just don&amp;rsquo;t currently think it likely. (I don&amp;rsquo;t worry about this in any case, because this is an &amp;ldquo;everyone problem&amp;rdquo; so I rely on the other people who are busy worrying about it.)&lt;/p&gt;
&lt;p&gt;For a while I refused to try it (or CoPilot, etc). It seemed like a gimmick and I didn&amp;rsquo;t think it would save me time. But under some pressure from colleagues, and an interest in challenging my prejudices, I have been giving it a shot lately.&lt;/p&gt;
&lt;p&gt;Often the output is useless. For example, I needed to write an SQL query which filters &lt;code&gt;WHERE ID IN (long list of ids)&lt;/code&gt;, where the list is much longer than the maximum character limit allowed by the SQL implementation I&amp;rsquo;m querying. So I wanted to write a Python function to take in a query, list of ids, and character limit, and return a list of queries below the maximum length and containing each id, only once. This seems trivial but annoying so I considered it a good task for ChatGPT. It gave me a solution that had a few obvious errors, but once I fixed them I discovered that there was also at least one non-obvious error, so at that point I gave up and just did it myself.&lt;/p&gt;
&lt;p&gt;After a couple of experiences like that, I did finally find something that ChatGPT was helpful with. I wanted an SQLite function that was the equivalent of &lt;code&gt;lstrip&lt;/code&gt; in Python. I couldn&amp;rsquo;t find it by searching the web, although I did find something which worked for removing a single character (combining &lt;code&gt;INSTR&lt;/code&gt; and &lt;code&gt;SUBSTR&lt;/code&gt;). After prodding ChatGPT I discovered &lt;code&gt;LTRIM&lt;/code&gt;, which I hadn&amp;rsquo;t been able to find through Google-fu, so one point for ChatGPT.&lt;/p&gt;
&lt;p&gt;So I think that it can be useful. I was going to say that it is like a better version of Google - surfacing information fairly effectively and with some added polish - but it is also worse in some ways than Google, because since Google shows you the source of the information, you can assess its quality, whereas ChatGPT lies with equal confidence. I think it is better to say that it is a &lt;em&gt;generative Google&lt;/em&gt; - think of it as generating something in the same general zip code of the truth. It can be helpful for brainstorming or to get you unstuck, but its output is more poetry than science.&lt;/p&gt;
&lt;p&gt;People who learned to program in previous generations did it with heavy dead-tree books, which they read end-to-end. Search engines and Stack Overflow changed the way people learn, for good and bad. There are things I do often in a language I know well which I still search for, because I don&amp;rsquo;t bother to remember it since it&amp;rsquo;s so easy to reference online. (Example: the syntax to flatten a nested list in Python - &lt;code&gt;[item for sublist in l for item in sublist]&lt;/code&gt;, which I always look up &lt;a href=&#34;https://stackoverflow.com/a/952952/6220759&#34;&gt;here&lt;/a&gt;.) There is value to the old way - a deeper knowledge of the abilities of the tool you are using, knowing to use capabilities you wouldn&amp;rsquo;t have guessed to search for, the ability to program where you don&amp;rsquo;t have an internet connection - but there is also probably some value in the new ways, too. Tools like IDEs and autocomplete free up the human brain for working faster and more creatively, and it is possible that AI assistants will generate snippets together with a user in the future, widening the circle of entry-level coders, and improving the productivity of experienced coders. Or maybe this is an energy-burning hype trap that has already hit its limits and will soon fade away. Or maybe it will wipe us all out. Only time will tell.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>  &#34;Prestige&#34; in Art and Hobbies
  </title>
      <link>http://lordgrenville.github.io/posts/prestige/</link>
      <pubDate>Thu, 27 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/prestige/</guid>
      <description>&lt;p&gt;Scott Alexander &lt;a href=&#34;https://astralcodexten.substack.com/p/highlights-from-the-comments-on-nerds&#34;&gt;has a post&lt;/a&gt; about nerds and hipsters and &amp;ldquo;authentically&amp;rdquo; liking stuff and what makes art actually &amp;ldquo;good&amp;rdquo;. I&amp;rsquo;ve been interested in this topic for years and it doesn&amp;rsquo;t seem to have gotten much clearer, but I will try gather my scattered thoughts in this post.&lt;/p&gt;
&lt;p&gt;Scott has an amusing classification of tiers of hobbies, or &amp;ldquo;things to build an identity around&amp;rdquo;, based on, I guess, perceived class signals. The top tier is some obscure intellectual area, such as &amp;ldquo;trans-finite 8-dimensional Hoffdorf groups&amp;rdquo;. Next is unusual art or music, or unusual political or philosophical views. Next is normal hobbies and mainstream mass culture. And the bottom tier is ubiquitous, obnoxious politics (&amp;ldquo;hating Trump/hating wokeness&amp;rdquo;), or &amp;ldquo;any kind of corporatized mass culture institution popular enough to have a marketing team&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;We have a vast array of leisure options and there is a corresponding anxiety about this. We are in the territory of class markers. It is easy to say, &amp;ldquo;stop worrying about what other people will think, just consume something you enjoy&amp;rdquo;, but a significant part of that consumption is a social act, a way to build an identity that will be respected and validated by our peers.&lt;/p&gt;
&lt;p&gt;Scott touches on the question of value with the following &lt;em&gt;gedankenexperiment&lt;/em&gt;: let&amp;rsquo;s say you rewrote the film &lt;em&gt;Ant-Man&lt;/em&gt; into the language of ancient Welsh myth. Then you show ten real ancient Welsh myths plus that one to an intelligent, tasteful person. Would they recoil at the Ant-Man story, detecting something lacking the qualities of real mythology? (For the purpose of this experiment, we will assume that &lt;em&gt;Ant-Man&lt;/em&gt; is a bad movie.) If not, does this mean that there is no real difference between ancient myths and new stories, or do we say that the rewriting creates something new and better, or claim that the value of the myth is in its place in time and history, not just the story?&lt;/p&gt;
&lt;p&gt;I personally would go with the last one, and am reminded of Walter Benjamin&amp;rsquo;s idea of &amp;ldquo;aura&amp;rdquo; in relation to mechanical copies of artworks. Images like the &lt;em&gt;Avignon Pietà&lt;/em&gt; are instantly viewable anywhere, but the original retains a value derived from its physical position and its interaction with generations of devout viewers. Today with AI models we can conjure infinite new works in the style of Picasso or Goya, and if the originals have value it is probably in the way they are enmeshed in this social context.&lt;/p&gt;


    &lt;figure class=&#34;class param&#34;&gt;
  
    &lt;label for=&#34;mn-export-import&#34; class=&#34;margin-toggle marginnote-ind&#34;&gt;&lt;/label&gt;
    &lt;input type=&#34;checkbox&#34; id=&#34;mn-export-import&#34; class=&#34;margin-toggle&#34;/&gt;
    &lt;span class=&#34;marginnote&#34;&gt;

&lt;strong&gt;Pietà of Villeneuve-lès-Avignon. &lt;/strong&gt;
Oil on wood, 163cm x 219cm
Enguerrand Quarton.


&lt;/span&gt;



  
  &lt;img src=&#34;https://upload.wikimedia.org/wikipedia/commons/f/fb/Enguerrand_Quarton%2C_La_Piet%C3%A0_de_Villeneuve-l%C3%A8s-Avignon_%28c._1455%29.jpg&#34; alt=&#34;Avignon Pieta&#34;&gt;
  




&lt;/figure&gt;


&lt;p&gt;When it comes to the Marvel Cinematic Universe vs Welsh myth, or Bergman, I am split between two views, which I think both have some validity. The first is that a good story is a good story, and genre snobbery is just class signalling. Art is about entertainment, and modern mass cinema has distilled its essence. But in modern society success is mainly predicated on IQ, or the perception of it, and so people try find means to signal intellectual sophistication, by sitting through movies that are objectively less fun.&lt;/p&gt;
&lt;p&gt;The other argument is that there are more sophisticated kinds of aesthetic pleasures than seeing people get blown up or fall in love. In this respect, the MCU films might be more sophisticated than, say, &lt;em&gt;Die Hard&lt;/em&gt;: they are self-aware, they bring up more complicated ethical dilemmas, they contain myriad hidden details planted for obsessive fans. But &lt;em&gt;Last Year at Marienbad&lt;/em&gt;, say, goes much further in challenging the viewer, and creates an experience that must be digested, and might have a more profound impact on the viewer. People talk about books that changed their lives: could this happen from a movie that aimed purely to entertain?&lt;/p&gt;
&lt;p&gt;(Honestly, I consider pretty much all entertainment a waste of time, and think that if there is any value at all it is in something which describes the world in a way you hadn&amp;rsquo;t thought of that seems true. I remember as a high-schooler being very moved by&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip;a gusty shower wraps&lt;br&gt;
The grimy scraps&lt;br&gt;
Of withered leaves about your feet&lt;br&gt;
And newspapers from vacant lots;&lt;br&gt;
The showers beat&lt;br&gt;
On broken blinds and chimney-pots,&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;or by fiction about human relationships that pointed out things about people that I hadn&amp;rsquo;t realised and that helped me be less obtuse in social situations.)&lt;/p&gt;
&lt;p&gt;So, I guess I come down on the side of 50% pretentiousness, 50% real value. And it struck me that the program I am using to write this, &lt;a href=&#34;https://en.wikipedia.org/wiki/GNU_Emacs&#34;&gt;GNU Emacs&lt;/a&gt;, is similar. I have to admit that I picked it up out of a desire to fake being a very talented developer. What the army calls &amp;ldquo;wasah&amp;rdquo;, the appearance of seniority, like the private beating his beret to make it seem worn, or the student bending the spines of his new books. I wanted a 1337 h4x0r setup, the no-mouse, all command-line, lines of output scrolling nonstop. And for the most part this was a silly but harmless pastime. But I think I also did get something out of it. It is true that one could argue that Emacs has been replaced by IntelliJ, many of whose features are hard if not impossible to replicate in Emacs, and as a general purpose editor by VSCode, and that the nostalgia for it is just the prejudice of older developers who remember when IDEs were much worse. But I think that using Emacs has also made me a better developer. It taught me to be better at reading documentation and asking for help in a way that would get an answer; it gave me some practice writing Lisp code; it made me learn the fundamentals of some of my tools when trying to integrate them with Emacs because they don&amp;rsquo;t &amp;ldquo;just work&amp;rdquo; out of the box. So 50% pretentiousness, 50% real value.&lt;/p&gt;
&lt;p&gt;And would I ever have switched into tech if society hadn&amp;rsquo;t decided that it had higher status than it did when I as a high schooler chose not to take any coding classes? Being totally honest - probably not.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Deadweight</title>
      <link>http://lordgrenville.github.io/posts/deadweight/</link>
      <pubDate>Tue, 06 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/deadweight/</guid>
      <description>&lt;p&gt;I was listening to a podcast about the topic of politician&amp;rsquo;s salaries, which I think are too high almost everywhere because of the obvious, but hard to mitigate, moral hazard issue. Maybe it&amp;rsquo;s best just to think of money wasted on inflated salaries as an inevitable extra tax that pays for political stability? But just for fun, let&amp;rsquo;s pretend the issue was managed fairly and consider how to handle one aspect: differentiation.&lt;/p&gt;
&lt;p&gt;Clearly there are some parliamentarians who accomplish a lot and others who barely show up, despite the paucity of hours their office is open in general. Ideally we would condition pay on performance, but how would we measure this? One obviously bad metric is number of laws passed: too easy to game. (The more libertarian-minded might prefer number of regulations removed, but you have the same issue here.) And even if you &lt;em&gt;could&lt;/em&gt; measure performance accurately, different citizens want different things: if the pro-X politician passes lots of X laws, the pro-X citizens are happy for her salary to be higher, but not the anti-X ones.&lt;/p&gt;
&lt;p&gt;I considered suggesting simple attendance as a metric. Just &lt;em&gt;show up&lt;/em&gt;, you know? And maybe check your phone at the door so you have to actually participate. What bad behaviour might this encourage? But on second thought, the politicians who don&amp;rsquo;t care enough to show up might actually be more harm than good if forced to participate. Paying the bad people to stay out of the way might be better than making them show up and having them get in the way of people that are getting things done. In a similar vein, the role of &amp;ldquo;Minister without Portfolio&amp;rdquo; has mostly been eliminated due to public mockery, but the result is that now some sort of portfolio is hacked together from other offices in order to give the redundant minister some responsibilities, resulting in added layers of bureaucracy and less efficiency. The Minister without Portfolio would be better for the public. Once again, just paying the deadweight tax seems the only way to go.&lt;/p&gt;
&lt;p&gt;(Had Israel in mind, but applies to a lot of countries.)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Easy Things that are Hard</title>
      <link>http://lordgrenville.github.io/posts/server/</link>
      <pubDate>Sun, 04 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/server/</guid>
      <description>&lt;p&gt;Something that should be easy but weirdly isn&amp;rsquo;t is sharing text or files between two of my devices, say a laptop and a phone. There are lots of sometime solutions for this - if you have a Macbook and an iPhone on the same account, you have a shared clipboard, and &lt;a href=&#34;https://kdeconnect.kde.org/&#34;&gt;KDE Connect&lt;/a&gt; is also designed to solve this, but unfortunately its support for macOS is &lt;a href=&#34;https://binary-factory.kde.org/view/MacOS/job/kdeconnect-kde_Nightly_macos/&#34;&gt;experimental&lt;/a&gt; and doesn&amp;rsquo;t seem to support Apple Silicon. Failing that, there are the more prosaic workarounds: texting it to a trusted friend (and maybe deleting afterwards), or emailing it to yourself. These solutions are inelegant to me - why should I send a file all the way to a Google or WhatsApp or Dropbox server just to move it 20 centimetres physically, within the same local network? There must be a better way!&lt;/p&gt;
&lt;p&gt;(My previous solutions have also included using my knowledge base &lt;a href=&#34;https://joplinapp.org/&#34;&gt;Joplin&lt;/a&gt;, which also roundtrips to Dropbox [side point: another rainy day project is to use local sync most of the time for this, with a separate regular backup to Dropbox, but this does at least pose more difficult problems of consistency and resolving conflicts, etc], or else using the unpretentious &lt;a href=&#34;https://sharetxt.live&#34;&gt;https://sharetxt.live&lt;/a&gt;, built for this purpose, but sharing everything publicly unless you log in.)&lt;/p&gt;
&lt;p&gt;Anyway, I&amp;rsquo;ve recently been writing long messages to send on my phone, so I want to edit them in Emacs and then send them to my phone clipboard. This is actually easy to solve with a local server (so the title of this post is wrong I guess&amp;hellip;), and I&amp;rsquo;m mainly just putting it here to remember the exact command. I use &lt;code&gt;buffer.txt&lt;/code&gt; for editing, then in &lt;code&gt;app.py&lt;/code&gt; I have:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;flask&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Flask&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;app&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Flask&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;vm&#34;&gt;__name__&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nd&#34;&gt;@app.route&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;message&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;buffer.txt&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;lt;br&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;readlines&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;lt;/p&amp;gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And then launch with &lt;code&gt;flask --debug run --host=0.0.0.0 --port=5001&lt;/code&gt;. Explanations for the options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;debug&lt;/code&gt; is to auto-reload the server whenever one of the files in the directory changes (in this case &lt;code&gt;buffer.txt&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;host&lt;/code&gt; given explicitly is to make it available to other machines on the network, which is otherwise disabled as a security precaution. Python&amp;rsquo;s &lt;code&gt;http.server&lt;/code&gt; doesn&amp;rsquo;t restrict this, but it only allows files to be viewed and downloaded, not code execution.&lt;/li&gt;
&lt;li&gt;Explicit port is only needed because the default, 5000, is used by Apple for some dumb service of its own (&lt;code&gt;AirPlay Receiver&lt;/code&gt;, whatever that is).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then the text is accessible to any device connected to the local network at &lt;code&gt;http://&amp;lt;internal IP address&amp;gt;:5001&lt;/code&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Editing an Android App</title>
      <link>http://lordgrenville.github.io/posts/android/</link>
      <pubDate>Wed, 01 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/android/</guid>
      <description>&lt;p&gt;Problem: I have an app I like. I want to make a trivial change to the text in one screen. Emailed the developer, he said I could just edit the file in the &lt;code&gt;assets&lt;/code&gt; folder and sideload it (although he failed to see the point of the edit&amp;hellip;)&lt;/p&gt;
&lt;p&gt;Background: an APK is just a zipped archive, you can unzip it and edit the text files, then zip, rename to a &lt;code&gt;.apk&lt;/code&gt; extension and try install it (easiest is &lt;code&gt;adb install /path/to/app.apk&lt;/code&gt;). Since an Android app is compiled, most of the decompressed files will be binaries, but not all - some simple things are in plain text, including the ones I wanted to change.&lt;/p&gt;
&lt;p&gt;Solved? Not quite. For security reasons, Android requires the app to be &lt;em&gt;signed&lt;/em&gt;, so once I edited it and sent it back, it was lacking a signature and I got the error &lt;code&gt;Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]&lt;/code&gt;. OK, how do I sign it? The &lt;a href=&#34;https://developer.android.com/studio/publish/app-signing&#34;&gt;Android Studio docs&lt;/a&gt; have detailed instructions. I downloaded Android Studio, and hit a wall - the menu option &lt;code&gt;Build &amp;gt; Generate Signed Bundle/APK&lt;/code&gt; just didn&amp;rsquo;t exist on the menu. I looked at some online advice, but none of it helped. Anyway, I just wanted to generate a key pair, do I really need an entire IDE for that? Apparently not, the IDE is using a tool that comes with Java called &lt;code&gt;jarsigner&lt;/code&gt; but I wasn&amp;rsquo;t able to find this in my &lt;code&gt;%JAVA\_HOME%&lt;/code&gt; and also hit permission issues (I was using WSL on Windows which may have been part of the cause).&lt;/p&gt;
&lt;p&gt;Anyway, I eventually found a &amp;ldquo;batteries included&amp;rdquo; &lt;a href=&#34;https://github.com/techexpertize/SignApk&#34;&gt;repo&lt;/a&gt; claiming to do this for me. The signing worked, but the install still didn&amp;rsquo;t. Maybe this was because the repo was eight years old? I found &lt;a href=&#34;https://github.com/patrickfav/uber-apk-signer&#34;&gt;a newer one&lt;/a&gt; which happily signed my APK, but installation still failed, with the error &lt;code&gt;[INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed to parse /data/app...AndroidManifest.xml]&lt;/code&gt;. What was wrong the AndroidManifest.xml? I hadn&amp;rsquo;t touched it, and I couldn&amp;rsquo;t read it because it was compiled. (&lt;a href=&#34;https://blogs.sap.com/2014/05/21/how-to-modify-an-apk-file/&#34;&gt;Here&lt;/a&gt; is a blog post from 2014, a more innocent time, which does what I did until here and succeeds.)&lt;/p&gt;
&lt;p&gt;Time for the big guns. I downloaded &lt;a href=&#34;https://ibotpeaches.github.io/Apktool/&#34;&gt;Apktool&lt;/a&gt;, a reverse-engineering tool that tries to restore the source. I was warned that this can break complicated apps, but the one I was editing is pretty simple and survived the compilation. Starting with my original &lt;code&gt;apk&lt;/code&gt; file, I ran &lt;code&gt;apktool d myapp.apk&lt;/code&gt;, edited the file in the assets, had a quick look at the now-readable &lt;code&gt;AndroidManifest.xml&lt;/code&gt; (utterly ordinary, nothing of interest to see!), rebuilt the app with &lt;code&gt;apktool b myapp.zip.out -o edited_app.apk&lt;/code&gt;, and then tried to install. No good - no certificate! Signed the new &lt;code&gt;apk&lt;/code&gt; with &lt;code&gt;uber-apk-signer&lt;/code&gt; and tried again: this time it was rejected with a new error: &lt;code&gt;[INSTALL_FAILED_UPDATE_INCOMPATIBLE]&lt;/code&gt;. Looks like the problem is the old version existing on my phone. I uninstalled it, reran &lt;code&gt;adb install&lt;/code&gt; and hey presto - it worked!&lt;/p&gt;
&lt;p&gt;If this sounds like a tedious and horrible exercise to you, you&amp;rsquo;re
probably right. But somehow my brain is wired to find the lure of the
solution greater than the frustration of the journey.&lt;/p&gt;
&lt;p&gt;Summary:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Merely unzipping and editing doesn&amp;rsquo;t work. Use &lt;code&gt;apktool&lt;/code&gt; to reverse-engineer and a modern signing tool to generate a new signature&lt;/li&gt;
&lt;li&gt;Uninstall the old version, and then &lt;code&gt;adb install&lt;/code&gt;. (You&amp;rsquo;ll lose your old settings, this way, so be ready to restore them.)&lt;/li&gt;
&lt;li&gt;If you want to distribute your app to other people via the Play Store, you&amp;rsquo;re beyond the scope of this post!&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Evolution of Ideas</title>
      <link>http://lordgrenville.github.io/posts/evolution/</link>
      <pubDate>Thu, 24 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/evolution/</guid>
      <description>&lt;p&gt;I recently came across a &lt;a href=&#34;https://astralcodexten.substack.com/p/book-review-sadly-porn&#34;&gt;blog post&lt;/a&gt; reviewing the long-awaited book of a certain anonymous blogger who disappeared from the internet about a decade ago (after being doxxed). It reminded me that around that time I had kept up a correspondence with a friend over some of the big issues - what is the ideal political system? what makes some art better than other art? or the meaning of some common terms like &amp;ldquo;hipster&amp;rdquo; or &amp;ldquo;liberal&amp;rdquo; or &amp;ldquo;conservative&amp;rdquo;. My friend was an avid reader of said blog. I reread some of the emails and considered how much I think about those questions now, and what my views are on them today. Here are two:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;What makes, say, Proust better than, say, any given young adult romance ebook?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Today I would start off with the caveat that such judgements are ultimately more subjective than, say, the laws of physics. There are probably people who would claim that their favourite obscure self-published romance novel is better than any given classic, and there is no definitive way in which they are wrong. A book&amp;rsquo;s being a &amp;ldquo;classic&amp;rdquo; is just a matter of broad consensus that it is worth something, and for any given classic - Proust, Shakespeare, Joyce - you are certain to find experts who think it is worthless.&lt;/p&gt;
&lt;p&gt;The judgement of literary or artistic value is the subject of the subfield of philosophy known as aesthetics and, as with most philosophical questions, there are plenty of decent theories but no definitive answer. Traditionally the criterion for visual art was that it look nice, in a way that was beyond the ability of most people, and later, that it perhaps introduce a new way of doing things. (Plenty of people in the age of Rembrandt or Goya could paint pretty landscapes or still lifes, but we are usually more interested in their work which was in a totally unprecedented style.) Duchamp and his urinal introduced a contradiction here which people are still thinking about. But in literature, we can apply the same criterion: Proust introduced a new style of writing, and is considered by many to be beautiful. Most novels, which tend to follow conventions, or else break them in ways considered less attractive, are considered (by many, and many experts) less worthy.&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;&lt;strong&gt;Is capitalism more conducive than communism to human nature?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(Firstly, this is an old debate, between Hobbes and Rousseau.)


    &lt;label for=&#34;cage&#34; class=&#34;margin-toggle marginnote-ind&#34;&gt;&lt;/label&gt;
    &lt;input type=&#34;checkbox&#34; id=&#34;cage&#34; class=&#34;margin-toggle&#34;/&gt;
    &lt;span class=&#34;marginnote&#34;&gt;
    
    &lt;img src=&#34;https://pyxis.nymag.com/v1/imgs/e98/60b/54adc00b2464e4d121017900c37924b19a-06-nicholas-cage.rsquare.w190.jpg&#34; alt=&#34;Nicolas Cage&#34;&gt;
    

&lt;strong&gt;Nicolas Cage. &lt;/strong&gt;
Keep this guy out of your commune



&lt;/span&gt;







I don&amp;rsquo;t believe this is true, but I do believe that communism &lt;em&gt;doesn&amp;rsquo;t scale&lt;/em&gt; because as the group grows, the likelihood of bad actors increases, and bad actors destroy the trust needed for a communist society to thrive.
For this reason I think that it tends to work at small scale, like the &lt;em&gt;kibbutz&lt;/em&gt; movement or student dorm co-ops. Say I live on a &lt;em&gt;kibbutz&lt;/em&gt; and am a software engineer at Google. I put my salary into the pot, so does my neighbour the poet. At the end of year one we have a big surplus. In year two one of the members is diagnosed with a medical condition requiring expensive treatment, but luckily the surplus covers it. In year three we have grown, and by the end of the year there is little surplus left, despite the sick member having stabilised and not requiring new treatments. Upon inspection we discover that one new member, Bob, fraudulently claimed for some expenses related to renovations, spending the money on cars he sold on the side. We kick him out, but I still feel resentful. While my colleagues at Google are living it up, I am leading a modest and idealistic lifestyle, just so someone can steal or mismanage the money?!&lt;/p&gt;
&lt;p&gt;This is a miniature; but we can well imagine that a Ukrainian farmer might not feel well-disposed towards the Workers&amp;rsquo; Republic after &lt;a href=&#34;https://en.wikipedia.org/wiki/Holodomor&#34;&gt;being starved&lt;/a&gt; (historians disagree over whether it was intentional or if Stalin just didn&amp;rsquo;t care, but there&amp;rsquo;s not much difference for our purposes.) The Russian Empire was a vast mix of ethnicities, languages and religions, who never had much of a shared basis for trust; that is the worst possible situation in which to build a communist society.&lt;/p&gt;
&lt;p&gt;So in sum what I believe is that it is &amp;ldquo;against human nature&amp;rdquo; only in the sense that some people are bad; and in a situation with bad people capitalism works better, since it requires less trust. In small groups of decent people it does work. I strive to make the world better; in the interim, capitalism is a Band-Aid, not a panacea.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wordle in One Line</title>
      <link>http://lordgrenville.github.io/posts/wordle/</link>
      <pubDate>Tue, 25 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/wordle/</guid>
      <description>&lt;p&gt;You may know that the solution for each day&amp;rsquo;s Wordle puzzle is in its source code. Is there a way to grab it from the command line? Naturally.&lt;/p&gt;
&lt;p&gt;Start with grabbing the source and outputting to stdin (may as well add &lt;code&gt;-q&lt;/code&gt;, we don&amp;rsquo;t need the output):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wget -q -O- powerlanguage.co.uk/wordle/main.e65ce0a5.js
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Next we just grab the solutions list (look for &lt;code&gt;Var La&lt;/code&gt;, then note the index of the opening bracket, then go to the matching bracket (using &lt;code&gt;%&lt;/code&gt; in Vim) and note the closing index):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cut -c 28467-46985
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Next, calculate the number of days since the beginning and return this word. This stage took a bit of experimenting, to find today&amp;rsquo;s solution&amp;rsquo;s index, then work backwards to find how many days ago Solution Zero is.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;day&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$((&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;date &lt;span class=&#34;s2&#34;&gt;&amp;#34;+%s&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;date -jf &lt;span class=&#34;s2&#34;&gt;&amp;#34;%F&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;2021-06-18&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;+%s&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)/(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3600&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then we can use awk to find the word:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;awk -F&lt;span class=&#34;s1&#34;&gt;&amp;#39;,&amp;#39;&lt;/span&gt; -v &lt;span class=&#34;nv&#34;&gt;day&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$day&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;{print $day}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We now have our answer, but this returns a lot of whitespace, so let&amp;rsquo;s clean it up:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sed &lt;span class=&#34;s1&#34;&gt;&amp;#39;/^$/d&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And remove the quotes, for extra credit:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tr -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#34;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To sum up:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wget -O- -q powerlanguage.co.uk/wordle/main.e65ce0a5.js &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; cut -c 28467-46985 &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; awk -F&lt;span class=&#34;s1&#34;&gt;&amp;#39;,&amp;#39;&lt;/span&gt; -v &lt;span class=&#34;nv&#34;&gt;day&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$((&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;date &lt;span class=&#34;s2&#34;&gt;&amp;#34;+%s&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;date -jf &lt;span class=&#34;s2&#34;&gt;&amp;#34;%F&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;2021-06-18&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;+%s&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)/(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3600&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;{print $day}&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sed &lt;span class=&#34;s1&#34;&gt;&amp;#39;/^$/d&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; tr -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#34;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Wordle 220 1/6&lt;/p&gt;
&lt;p&gt;🟩🟩🟩🟩🟩&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Populism</title>
      <link>http://lordgrenville.github.io/posts/populism/</link>
      <pubDate>Sun, 09 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/populism/</guid>
      <description>&lt;p&gt;Populism is hard to define. It can be associated with both the political left and right, and, although it doesn&amp;rsquo;t sound like a pejorative term (what&amp;rsquo;s wrong with being popular?), it&amp;rsquo;s one of those terms people only used to describe others (negatively). I used to think of it as meaning &amp;ldquo;anti-elitist&amp;rdquo;, or basically something which is popular but most educated people think is stupid. But I&amp;rsquo;ve come up with something a bit clearer.&lt;/p&gt;
&lt;p&gt;The word &amp;ldquo;democracy&amp;rdquo; can mean two somewhat contradictory things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;the will of the majority&lt;/li&gt;
&lt;li&gt;a system of checks and balances&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So ignoring the will of the people is certainly anti-democratic, but following them too freely, without letting other aspects of government put the brakes on it, is also a bad outcome. This is Plato&amp;rsquo;s critique of democracy in the &lt;em&gt;Republic&lt;/em&gt;, and also why the authors of the &lt;em&gt;Federalist Papers&lt;/em&gt; reject democracy in favour of &amp;ldquo;republicanism&amp;rdquo;. But when people use the term today they refer more or less to &amp;ldquo;representative&amp;rdquo; or &amp;ldquo;liberal&amp;rdquo; democracy, which attempts to mitigate these critiques in two ways: by weakening centralised power and distributing more of it to individuals, and by adding institutional roadblocks which slow down hasty decision making and encourage broader consensus.&lt;/p&gt;
&lt;p&gt;Thus the contradiction. As an example, imagine Ruritania has elected a new president by a small but clear majority. His first act in power is to outlaw the main opposition newspaper. The Ruritanian high court tries to block this, on the basis of a general precedent allowing free speech.&lt;/p&gt;
&lt;p&gt;Foreign media outlets accuse the Ruritanian president of &amp;ldquo;assaulting democracy&amp;rdquo; by trying to restrict free speech, which we associate with the kind of liberal environment necessary for true democracy. However, the president&amp;rsquo;s supporters argue that &lt;em&gt;they,&lt;/em&gt; in fact, are standing up for democracy, since the will of the majority of the people is to ban this newspaper, while some latte-sipping, unelected, out-of-touch eggheads from the high court are trying to obstruct them.&lt;/p&gt;
&lt;p&gt;This kind of conflict plays out all the time, and while this example is a clear case of liberal left vs populist right, it can easily go both ways. To take a real life example, the United States has a majority of &amp;ldquo;liberal&amp;rdquo; voters (Republicans have won the popular vote in a presidential election only once in the last thirty years), and so major areas of conflict - voter registration laws, the structure of the Senate/Electoral College/Supreme Court - tend to be expressed in terms of liberals (Democrats) arguing for the majority to be heard, and Republicans arguing for the importance of the other aspects of democracy, such as checks and balances, maintaining precedents, constitutionality, etc.&lt;/p&gt;
&lt;p&gt;This leads to a slightly more charitable definition of populism: that there is an inherent tension in the two contradictory definitions of democracy, and that the ideal is probably a dynamic synthesis that changes over time, honouring institutional checks and balances while also being attentive to the voice of the people; and that &amp;ldquo;populism&amp;rdquo; is our term for someone who leans too far towards the latter.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Corruption</title>
      <link>http://lordgrenville.github.io/posts/corruption/</link>
      <pubDate>Tue, 07 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/corruption/</guid>
      <description>&lt;p&gt;I was listening to a &lt;a href=&#34;https://newbooksnetwork.com/epstein&#34;&gt;podcast&lt;/a&gt; (about metaphysics in the social sciences, very interesting but not the topic of this post) and the guest mentioned as an aside the principal-agent theory of political corruption, pretty common in economically-inclined poli-sci literature.&lt;label for=&#34;sidenote-1&#34; class=&#34;margin-toggle sidenote-number&#34;&gt;(1)&lt;/label&gt;
&lt;input type=&#34;checkbox&#34; id=&#34;sidenote-1&#34; class=&#34;margin-toggle&#34;/&gt;
&lt;span class=&#34;sidenote&#34;&gt;
&lt;span class=&#34;sidenote-number&#34;&gt;(1)&lt;/span&gt;Susan Rose-Ackerman, &lt;em&gt;&lt;a href=&#34;https://www.sciencedirect.com/book/9780125963503/corruption&#34;&gt;Corruption: A Study in Political Economy&lt;/a&gt;&lt;/em&gt; seems to be the classic
&lt;/span&gt;
The idea that politicians will rationally try to maximise personal gain unless held accountable by voters struck me as excessively cynical. Aren&amp;rsquo;t they at least somewhat motivated by a desire to serve the public, shame about very explicit graft, a basic sense of right and wrong? Somewhat serendipitously I came across a couple of counterexamples later the same day which disabused me of my innocence:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In Israel, income from residential rentals is tax-exempt up to a certain threshold, and has a reduced flat rate for any amount above that. This unusual rule - which doesn&amp;rsquo;t seem to exist in other countries, and has obvious distorting effects on the (already heated) housing market - doesn&amp;rsquo;t make much sense. One common reason offered for it is that many of the legislators themselves own rental properties. I can&amp;rsquo;t assess the truth of this, but &lt;a href=&#34;https://www.globes.co.il/news/article.aspx?did=1000967993&#34;&gt;here it is&lt;/a&gt; from a law professor: &amp;ldquo;The usual explanation given for this loophole is &amp;lsquo;guess how many legislators benefit from it&amp;rsquo;&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;(Not about a politician, but still relevant.) The former head of the Diabetes Association(!) &lt;a href=&#34;https://twitter.com/RonnyLinder/status/1468157746994417671&#34;&gt;appeared today in Parliament&lt;/a&gt; as a paid lobbyist for Coca-Cola to argue against a tax on diet soda. He denied being paid until he was asked about it several times.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Andrew Gelman had a &lt;a href=&#34;https://statmodeling.stat.columbia.edu/2021/12/03/46112/&#34;&gt;post&lt;/a&gt; the other day about Harry Truman lying about his poverty, and researchers in general who take money to represent dubious causes. He suggested that the motivation is often not financial but psychological: pride at being offered money to consult, or some idea of how the recipient will use the money for good.&lt;/p&gt;
&lt;p&gt;Money blinds, is I guess the point. Excuses will always be found if the payoff is big enough.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Scraping Kevin Lewis</title>
      <link>http://lordgrenville.github.io/posts/kevin/</link>
      <pubDate>Thu, 11 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/kevin/</guid>
      <description>&lt;p&gt;Kevin Lewis&amp;rsquo; daily &lt;em&gt;Findings&lt;/em&gt; blog at National Affairs is a great way to stay on top of social science news, presenting a daily themed collection of abstracts of recent papers. The site is free to read, but doesn&amp;rsquo;t offer an RSS feed, which is my preferred way to consume it. I decided to write a short Python script to scrape new posts into a local XML file.&lt;/p&gt;
&lt;p&gt;The basic script I started with went to &lt;a href=&#34;https://www.nationalaffairs.com/authors/detail/kevin-lewis&#34;&gt;the author&amp;rsquo;s page&lt;/a&gt;, found the box with most recent posts, followed and scraped each link, encoded them as RSS (basically URL-encoding the HTML tags), added opening and closing RSS XML tags, and saved the file. In further iterations I added the ability to open the file if it exists, check if an item exists (and not scrape it), and cleaned up the code. Once I was happy with it, the last thing I wanted to add (for now!) was the ability to run it on the reg. The code is &lt;a href=&#34;https://github.com/lordgrenville/scrape_kevin&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My first instinct was to run &lt;code&gt;crontab -e&lt;/code&gt; and set up a weekly run there. But I found that since my Macbook goes to sleep quite aggressively to save power, often the job wouldn&amp;rsquo;t be carried out. Turns out that macOS has a built in tool called &lt;code&gt;launchd&lt;/code&gt; which is recommended over cron, and can also run after waking if it missed its cue.&lt;/p&gt;
&lt;p&gt;To add it I created a file called &lt;code&gt;~/Library/LaunchAgents/update_lewis.plist&lt;/code&gt;, with the command arguments as outlined &lt;a href=&#34;https://www.launchd.info/&#34;&gt;here&lt;/a&gt;. Then I called &lt;code&gt;launchctl load ~/Library/LaunchAgents/update_lewis.plist&lt;/code&gt; (cancel with &lt;code&gt;unload&lt;/code&gt;), and voilà!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Notes from Installing Arch Linux</title>
      <link>http://lordgrenville.github.io/posts/arch/</link>
      <pubDate>Wed, 07 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/arch/</guid>
      <description>&lt;p&gt;About six months ago I downloaded &lt;a href=&#34;https://archlinux.org/download/&#34;&gt;the Arch ISO&lt;/a&gt; and stuck it on a thumb drive. I finally got around to installing it now - I was nervous about accidentally nuking my computer, so didn&amp;rsquo;t want to try dual-boot the way I would with a distro with a graphical installer, and &lt;a href=&#34;https://github.com/yuk7/ArchWSL&#34;&gt;running it via WSL&lt;/a&gt; would be missing the point. I finally got my hands on an old laptop I could mess around with and did it.&lt;/p&gt;
&lt;p&gt;Overall, it was pretty simple following the &lt;a href=&#34;https://wiki.archlinux.org/index.php/Installation_guide&#34;&gt;installation guide from the Wiki&lt;/a&gt;. The only hairy bit was editing my disk partitions via &lt;code&gt;fdisk&lt;/code&gt; - I relied on &lt;a href=&#34;https://itsfoss.com/install-arch-linux/&#34;&gt;this guide&lt;/a&gt; at that point. But there were two notable issues which held me up.&lt;/p&gt;
&lt;p&gt;The first was expired PGP keys. I ran into a lot of &lt;code&gt;Key could not be verified locally&lt;/code&gt; messages while installing, and one page told me to update my keyring with &lt;code&gt;pacman -Su archlinux-keyring&lt;/code&gt;. This resulted in trying to install a lot more software and running out of space in my thumb drive. I also tried deleting everything in &lt;code&gt;/etc/pacman.d/gnupg&lt;/code&gt; and rerunning &lt;code&gt;pacman-key --init &amp;amp;&amp;amp; pacman-key --populate archlinux&lt;/code&gt;, all to no avail. Eventually I just downloaded the newest version, overwrote it onto my thumb drive, and began from scratch. This time it worked.&lt;/p&gt;
&lt;p&gt;The other major issue I had was with BIOS vs UEFI. It seemed like my machine was using the legacy BIOS boot, since there was no directory called &lt;code&gt;/sys/firmware/efi&lt;/code&gt;. Based on this I initially created just one partition, &lt;code&gt;/dev/sda&lt;/code&gt;, on which I mounted root based on &lt;a href=&#34;https://itsfoss.com/install-arch-linux/&#34;&gt;the above-mentioned guide&lt;/a&gt;. After installing and rebooting, I got stuck in a boot loop where the machine was turning to the router and asking for a DHCP lease&amp;hellip;apparently skipping past the HDD boot medium and trying to boot from the network! That is, it didn&amp;rsquo;t recognise that there was an OS installed. I once again started over (the installation process is pretty quick, so this isn&amp;rsquo;t such a big deal) and redid it while adding &lt;code&gt;/dev/sda1&lt;/code&gt; for UEFI and &lt;code&gt;/dev/sda2&lt;/code&gt; for root. This time it worked smoothly, so apparently I did need the ESP partition?&lt;/p&gt;
&lt;p&gt;A final note: Arch doesn&amp;rsquo;t include sudo with its basic install, so you can just grab it with pacman. But note that if you first created a non-root user, you get a &amp;ldquo;naughty, naughty&amp;rdquo; message when trying to use sudo as no-root. I had to set a default &lt;code&gt;\$EDITOR&lt;/code&gt;, and then call &lt;code&gt;visudo&lt;/code&gt; and add myself to sudo-capable users. Once I had this I installed &lt;code&gt;yay&lt;/code&gt;, Firefox, and vim and called it a day.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>A Complete Idiot&#39;s Guide to Doom Emacs</title>
      <link>http://lordgrenville.github.io/posts/emacs/</link>
      <pubDate>Tue, 01 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/emacs/</guid>
      <description>&lt;p&gt;(This guide assumes familiarity with Vim, git and command line, but no prior knowledge of Emacs. &lt;a href=&#34;http://www.jesshamrick.com/2012/09/10/absolute-beginners-guide-to-emacs/&#34;&gt;This&lt;/a&gt; is a good guide from zero to Emacs. I was also helped/inspired by &lt;a href=&#34;https://noelwelsh.com/posts/2019-01-10-doom-emacs.html&#34;&gt;Noel Welsh&amp;rsquo;s&lt;/a&gt; Doom guide, and that of mad genius &lt;a href=&#34;https://tecosaur.github.io/emacs-config/config.html&#34;&gt;Tecosaur&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;After several aborted attempts to get started with Emacs, I&amp;rsquo;ve finally made some sense of it. Since there aren&amp;rsquo;t many basic guides online, I thought I&amp;rsquo;d document my process. Vim (which I&amp;rsquo;m using to type this) is a lot simpler to get started with (as soon as you figure out how to quit&amp;hellip;) I think that has to do with its greater simplicity, as well as the fact that there&amp;rsquo;s basically only one flavour. (NeoVim is from a user&amp;rsquo;s perspective mostly identical, and if you&amp;rsquo;re using &lt;code&gt;vi&lt;/code&gt; you probably know what you&amp;rsquo;re doing.) Emacs by contrast is a whole world.&lt;/p&gt;
&lt;p&gt;The first question I had to deal with is: which Emacs do I use? Vanilla Emacs looks like something from the Stone Age, and doesn&amp;rsquo;t offer you enough out of the box to persuade you to learn it - at least that was my experience. I was tempted back first with &lt;a href=&#34;https://www.spacemacs.org/&#34;&gt;Spacemacs&lt;/a&gt;, and finally settled on &lt;a href=&#34;https://github.com/hlissner/doom-emacs&#34;&gt;Doom Emacs&lt;/a&gt;, which will be the subject of this guide.&lt;/p&gt;
&lt;p&gt;To clarify, all of these involve installing Emacs, and then building stuff on top of it. Emacs adds a &lt;code&gt;.emacs.d&lt;/code&gt; folder to your home directory for your personal config, and these both customize that to look snazzier and use some extra tools right out of the box. Both Spacemacs and Doom emphasise &lt;code&gt;Evil&lt;/code&gt;, an Emacs layer allowing Vim keys to be used instead of learning Emacs keys (though they allow either to be configured). Doom also stresses quick loading time and simplicity: it strives to do some basic config and let you get on with your work, rather than going down the rabbit-hole of eternal tweaking.&lt;/p&gt;
&lt;p&gt;After installing Emacs and cloning the Doom repo, you will have a &lt;code&gt;.doom.d&lt;/code&gt; folder alongside &lt;code&gt;emacs.d&lt;/code&gt;. This is where you will do everything. &lt;code&gt;.doom.d&lt;/code&gt; contains three files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;init.el&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;config.el&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;packages.el&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;init.el&lt;/code&gt; is where you select what you want Doom to take care of. This part is the most abstracted away from regular Emacs. Instead of installing, say, a package for Python development, you tell Doom you want to use Python and it will install the Python stuff it recommends.  If you want to know how to configure this, you need to look inside the repo itself: &lt;code&gt;~/doom-emacs/modules/lang/python/README.org&lt;/code&gt; in this example. (Don&amp;rsquo;t make changes here, though, unless you want to contribute to Doom development, in which case you&amp;rsquo;re way beyond this humble guide.) That README will tell you what packages are used, and sometimes which flags you can add. For example, you can add a &lt;code&gt;conda&lt;/code&gt; flag in Python by replacing &lt;code&gt;python&lt;/code&gt; in &lt;code&gt;init.el&lt;/code&gt; with &lt;code&gt;(python +conda)&lt;/code&gt;. The more languages and other tools you add, the slower start-up will be, so take only what you need. You can edit it at any time, but you must then sync, either with &lt;code&gt;~/.emacs.d/bin/doom sync&lt;/code&gt;, or if you have Emacs open with &lt;code&gt;M-x doom-reload&lt;/code&gt;. (&lt;code&gt;M-x&lt;/code&gt; is META-x, or alt-x, the Emacs key for a menu for typing in commands. In Evil this is &lt;code&gt;SPC :&lt;/code&gt; However this stuff is found in many newbie guides, so I&amp;rsquo;ll try focus on stuff that I struggled to find online.)&lt;/p&gt;
&lt;p&gt;The reason you have to sync after changing &lt;code&gt;init.el&lt;/code&gt; is that it relies on Doom doing some work behind the scenes to install and load
packages - those are the abstractions. &lt;code&gt;config.el&lt;/code&gt;, by contrast, is a regular Emacs lisp document, so any changes you make in it can be
evaluated and applied immediately. &lt;code&gt;config.el&lt;/code&gt; is where you&amp;rsquo;ll make any custom changes you want. &lt;em&gt;Whenever people tell you online to add
stuff with&lt;/em&gt; &lt;code&gt;(setq blah blah)&lt;/code&gt; &lt;em&gt;you should put it in here.&lt;/em&gt; If you want to install any &lt;em&gt;packages&lt;/em&gt;, which in Emacs are usually installed from
a repository called MELPA, but can also come from the web (eg GitHub), you put them in &lt;code&gt;packages.el&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;By default Emacs uses different workspaces, each one containing a project. When you start working you should add your project root, and then you can navigate within it with &lt;code&gt;SPC f f&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Lastly, a word about modes. Continuing the musical analogy of chords (key combinations), Emacs has modes which are basically added functionality within a buffer. A major mode is usually the language type, and a buffer can only have one, while it can have many minor modes. Major mode chords in Evil begin with &lt;code&gt;SPC m&lt;/code&gt;, after which you will see a guide in the minibuffer with your next options. (Always true in Doom.)&lt;/p&gt;
&lt;p&gt;Hopefully this should be enough to get you started with a project, the correct major mode, and some nice looking defaults. I definitely haven&amp;rsquo;t been persuaded to drop Vim as my default &lt;code&gt;$EDITOR&lt;/code&gt;, but I see it as my day-to-day tool, with Emacs as more of a speciality tool with capabilities like &lt;a href=&#34;https://magit.vc/&#34;&gt;Magit&lt;/a&gt;, &lt;code&gt;org-mode&lt;/code&gt;, and way more.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Status &amp; Jewish Intellectuals</title>
      <link>http://lordgrenville.github.io/posts/status/</link>
      <pubDate>Tue, 28 Jul 2020 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/status/</guid>
      <description>&lt;p&gt;I recently asked a French friend why that country produces so many brilliant mathematicians and scientists - not really expecting a good answer. He replied that in France, being an academic or theoretician is seen as the most admirable position to aspire to, on a par with philosopher or artist. However, engineers and entrepreneurs are associated with far less prestige, which would roughly explain why so many of those scientists and mathematicians end up working for foreign companies.&lt;/p&gt;
&lt;p&gt;It reminded me that when I was growing up, I thought of writers, historians, philosophers and other intellectuals as most worthy of respect, and assumed that I should want to do something similar when I was older, if I could afford it. It is possible that this is undergoing a sea-change, as the increased prominence of information technology and financial difficulties of media and academia increase the social capital (in Bourdieu&amp;rsquo;s term) associated with &amp;ldquo;STEM&amp;rdquo; subjects. Nonetheless, I was surprised to find a very bald expression of this idea in Stefan Zweig&amp;rsquo;s memoir &lt;em&gt;The World of Yesterday&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It is generally assumed that getting rich is a Jew’s true and typical aim in life. Nothing could be further from the truth. Getting rich, to a Jew, is only an interim stage, a means to his real end, by no means his aim in itself. The true desire of a Jew, his inbuilt ideal, is to rise to a higher social plane by becoming an intellectual. Even the most prosperous Jew would rather marry his daughter to an indigent intellectual than a merchant. This high regard for intellectuals runs through all classes of Jewish society, and the poorest pedlar who carries his pack through wind and weather will try to give at least one son the chance of studying at university, however great the sacrifices he must make, and will consider it an honour to the entire family that one of them is clearly regarded as an intellectual: a professor, a scholar, a musician. It is as if such a man’s achievements ennobled them all.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Another expression of this I found in Tom Wolfe&amp;rsquo;s &lt;a href=&#34;https://www.esquire.com/news-politics/a12149389/robert-noyce-tom-wolfe/&#34;&gt;long, interesting &lt;em&gt;Esquire&lt;/em&gt; history&lt;/a&gt; of Bob Noyce (co-founder of Fairchild Semiconductor and Intel), discussing why so many early tech pioneers came from the Midwest and West Coast, rather than the traditional East Coast centres of intellectual brilliance:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Back east engineering was an unfashionable field. The East looked to Europe in matters of intellectual fashion, and in Europe the ancient aristocratic bias against manual labor lived on. Engineering was looked upon as nothing more than manual labor raised to the level of a science. There was &amp;ldquo;pure&amp;rdquo; science and there was engineering, which was merely practical. Back east engineers ranked, socially, below lawyers; doctors; Army colonels; Navy captains; English, history, biology, chemistry, and physics professors; and business executives.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title>The Douglas Adams Principle</title>
      <link>http://lordgrenville.github.io/posts/adams/</link>
      <pubDate>Sun, 14 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/adams/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s a great quote from Douglas Adams&amp;rsquo; posthumous final novel, &lt;em&gt;The Salmon of Doubt&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Anything that is in the world when you’re born is normal and ordinary and is just a natural part of the way the world works.&lt;/p&gt;
&lt;p&gt;Anything that&amp;rsquo;s invented between when you’re fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it.&lt;/p&gt;
&lt;p&gt;Anything invented after you&amp;rsquo;re thirty-five is against the natural order of things.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is applicable to a lot of things - politics, say. There&amp;rsquo;s a common stereotype that people become more conservative as they age. Logically we could see most people becoming more politically aware in their late teens/twenties, and then seeing those new politics as the way forward. As they become older, newer innovations just seem wrong. I think I recall Paul Krugman saying on a podcast that older members of the Federal Reserve are more opposed to keeping interest rates low, because they remember the high interest rates of the &amp;rsquo;70s. Younger members, who have never experienced high inflation, are more concerned about the labour market and willing to consider low rates in the longer term. Even though this seems like a simple, easily noticed cognitive bias, it can be hard to countermand.&lt;/p&gt;
&lt;p&gt;In a more prosaic sense, I find as I get older that I am less and less interested in discovering new music. It isn&amp;rsquo;t that I think new music is less good; I just &lt;em&gt;know enough&lt;/em&gt; music! And likewise, to a lesser extent, with TV and movies: I have enough to get by, I don&amp;rsquo;t need any more. Of course one could make an effort to overcome this, by constantly exposing oneself to new stuff, it just takes work - there are plenty of people who keep up with new gadgets or music well into old age. But it doesn&amp;rsquo;t seem worth it to most people. Perhaps in the political sphere the effort is more worthwhile.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Gifts</title>
      <link>http://lordgrenville.github.io/posts/gifts/</link>
      <pubDate>Mon, 25 May 2020 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/gifts/</guid>
      <description>&lt;p&gt;I recently read the book &lt;a href=&#34;https://www.goodreads.com/book/show/160171.Just_for_Fun&#34;&gt;Just for Fun&lt;/a&gt;, a lot of which focuses on Linus Torvalds&amp;rsquo; battle for his operating system, Linux, to be &amp;ldquo;Open Source&amp;rdquo; software. Open Source doesn&amp;rsquo;t mean free; but it  means that the software&amp;rsquo;s code (the source) is freely available, so anyone can copy it. Thus there&amp;rsquo;s no viable business in selling the code, but there could be in supplying and installing the software for less tech-savvy users, or in ancillary services such as support. At the time, the &lt;em&gt;bête noire&lt;/em&gt; of OS was Bill Gates, who made a reasonable argument: OS software made it hard to earn a living from software, meaning worse quality for everybody. Yet today OS has basically won out, with even Microsoft embracing Linux and &lt;a href=&#34;https://github.com/microsoft?q=license%3Agpl-3.0+license%3Amit&amp;amp;type=&amp;amp;language=&#34;&gt;open-sourcing&lt;/a&gt; hundreds of projects. So how does the Open Source world square the circle of making it pay?&lt;/p&gt;
&lt;p&gt;This reminds me of something the financial writer Matt Levine says about the &lt;a href=&#34;https://www.bloomberg.com/opinion/articles/2017-05-02/litvaking-and-lending&#34;&gt;gift economy&lt;/a&gt; (based on the essay &lt;a href=&#34;https://en.wikipedia.org/wiki/The_Gift_(essay)&#34;&gt;&lt;em&gt;The Gift&lt;/em&gt;&lt;/a&gt; by the anthropologist Marcel Mauss). At a basic level, people trade goods based on pure financial value; but at a very large scale - say, an oil-and-gas company is looking for bankers to facilitate an acquisition - decisions are made much more based on gifts and relationships, which are not anchored in pure economic rationality. For example, the bank may gift the company&amp;rsquo;s decision-makers watches or fancy dinners or golfing weekends, in the hope that at some later point, they will remember them for some major deal (never as an explicit &lt;em&gt;quid pro quo&lt;/em&gt;, which would seem distatestful to both sides).&lt;/p&gt;
&lt;p&gt;In some ways the software world has moved toward this model. Companies want to hire star developers, and to do so try to impress them with their friendliness toward open-source, perhaps through sponsorships or by allowing some of their employees to contribute to open-source projects on company time. They may also open up some of their own source code, usually from side projects which aren&amp;rsquo;t part of their main business model, or as a way to tempt customers to integrate into their ecosystem. On the developer side, a beginner programmer may contribute to an open-source project related to her specialty as a way of making an name for herself. In each case, these are not transactions based on economic value, but part of a more sophisticated ritual in which each side hopes to gain, but is able to talk in terms of lofty values such as the good of the community, gift-giving, and generally a world free of grubby pecuniary thoughts.&lt;/p&gt;
&lt;p&gt;Of course, as &lt;a href=&#34;https://twitter.com/wesmckinn/status/1237488666425131011&#34;&gt;this complaint&lt;/a&gt; (representative of many others) shows, in practice the model doesn&amp;rsquo;t  work as well as we might hope.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Pragmatism</title>
      <link>http://lordgrenville.github.io/posts/pragmatism/</link>
      <pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/pragmatism/</guid>
      <description>&lt;p&gt;In &lt;em&gt;The Will to Believe&lt;/em&gt; (&lt;em&gt;Is Life Worth Living?&lt;/em&gt;, IV), William James writes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Suppose, for instance, that you are climbing a mountain, and have worked yourself into a position from which the only escape is by a terrible leap. Have faith that you can successfully make it, and your feet are nerved to its accomplishment. But mistrust yourself, and think of all the sweet things you have heard the scientists say of maybes, and you will hesitate so long that, at last, all unstrung and trembling, and launching yourself in a moment of despair, you roll in the abyss. In such a case (and it belongs to an enormous class), the part of wisdom as well as of courage is to believe what is in the line of your needs, for only by such belief is the need fulfilled. Refuse to believe, and you shall indeed be right, for you shall irretrievably perish. But believe, and again you shall be right, for you shall save yourself. You make one or the other of two possible universes true by your trust or mistrust,—both universes having been only maybes, in this particular, before you contributed your act.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;ve come across a similar idea in &lt;a href=&#34;https://philosophybites.com/2014/03/david-papineau-on-philosophy-and-sport.html&#34;&gt;this podcast&lt;/a&gt;: that &lt;em&gt;the fact of believing in something&lt;/em&gt; makes it more likely to happen. This can be true in mountaineering (James&amp;rsquo; example), sport (as in the podcast), or in business, which I&amp;rsquo;ve always thought takes extraordinary self-belief: most businesses fail, so one has to wilfully ignore the laws of probability in order to start a new one, yet countless people do, and society benefits from their appetite for risk.&lt;/p&gt;
&lt;p&gt;As someone who tends towards &amp;ldquo;rationalism&amp;rdquo; (using the term colloquially), I struggle to understand this impulse. How does one ignore reality and leap ahead into something, convincing oneself that is true? And, at what point should reality be allowed to once again influence one&amp;rsquo;s decision-making? The perenially loss-making business foolhardily propelled into an avalanche of red ink comes to mind.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://lordgrenville.github.io/img/wework.jpg&#34; alt=&#34;Look before you leap?&#34;&gt;&lt;/p&gt;
&lt;p&gt;This is also relevant in what we might might call &amp;ldquo;self-help&amp;rdquo;. Common advice goes that one should &amp;ldquo;be oneself&amp;rdquo; and not worry about what other people think. And sure, confidence is attractive. But judgements from others are also a way in which society communicates; obviously one doesn&amp;rsquo;t want to entirely cut oneself off from what others think. Say someone has an intensely annoying laugh, something which causes anyone with normal hearing deep psychic pain - wouldn&amp;rsquo;t it be more reasonable for him to try change it, rather than soldier on believing that others should just accept him?&lt;/p&gt;
&lt;p&gt;But maybe I&amp;rsquo;m too rational to understand all this&amp;hellip;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Tar Hack</title>
      <link>http://lordgrenville.github.io/posts/tar/</link>
      <pubDate>Mon, 11 May 2020 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/tar/</guid>
      <description>&lt;p&gt;There’s a funny &lt;a href=&#34;https://xkcd.com/1168/&#34;&gt;xkcd cartoon&lt;/a&gt; about the &lt;code&gt;tar&lt;/code&gt; command:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://imgs.xkcd.com/comics/tar_2x.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;How does one remember those ridiculous single letter commands? My preferred solution is to first consult with &lt;a href=&#34;https://tldr.sh/&#34;&gt;TLDR&lt;/a&gt;, but Justin Abrahams has a fun solution &lt;a href=&#34;https://justin.abrah.ms/bash/forgotten_friend_3.html&#34;&gt;over at his blog&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  extract &lt;span class=&#34;o&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -f &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;k&#34;&gt;case&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; in
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        *.tar.bz2&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;        tar xjf &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        *.tar.gz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;         tar xzf &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        *.bz2&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;            bunzip2 &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        *.rar&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;            unrar x &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        *.gz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;             gunzip &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;         &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        *.tar&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;            tar xf &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;         &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        *.tbz2&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;           tar xjf &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        *.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;            tar xzf &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        *.zip&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;            unzip &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;          &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        *.Z&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;              uncompress &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;     &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        *&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;                &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#39;1&amp;#39; cannot be extracted via extract()&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;esac&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#39;1&amp;#39; is not a valid file&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(Appended, naturally, to &lt;code&gt;.bashrc&lt;/code&gt;.)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Communication</title>
      <link>http://lordgrenville.github.io/posts/communication/</link>
      <pubDate>Sun, 03 May 2020 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/communication/</guid>
      <description>&lt;p&gt;I’ve just finished a &lt;a href=&#34;https://www.goodreads.com/book/show/560818.Speaking_Peace&#34;&gt;book on Nonviolent Comunication&lt;/a&gt; and thought it would have made a good pairing with one I read last year, &lt;a href=&#34;https://www.goodreads.com/book/show/26156469-never-split-the-difference&#34;&gt;&lt;em&gt;Never Split the Difference&lt;/em&gt;&lt;/a&gt;, as a lesson in effective communication. The latter is about getting what you want from your counterparty, no matter your relationship afterwards. An adversarial, zero-sum situation is assumed, and Voss (the author, a former FBI hostage negotiator) urges the reader to push for everything, using empathy toward the counterparty only as a weapon.&lt;/p&gt;
&lt;p&gt;By contrast, Rosenberg urges something of the opposite approach: creating a peaceful relationship even at the risk of not achieving your goals. He has a somewhat Buddhistic approach to life, seeing all people as essentially good and the goal of communication as seeing the goodness in the counterparty, validating their feelings without criticising (this applies equally to oneself), and trying to find a way in which everyone’s goals can be achieved.&lt;/p&gt;
&lt;p&gt;Both authors present a bevy of case studies in which they used their principles to achieve miraculous results, even in cases which seemed like certain exceptions. I think that both authors imply a falsehood, without making it explicit: &lt;em&gt;my principles will work in all situations&lt;/em&gt;. When push comes to shove, both would have to admit that some situations are simply insoluble; no amount of negotiating savvy or peace-building communication will lead to a positive outcome. Nonetheless, such cases are rare, and some hyperbole is probably needed in order to convince sceptical readers to apply these rules among their families and colleagues.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Boredom</title>
      <link>http://lordgrenville.github.io/posts/boredom/</link>
      <pubDate>Fri, 17 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/boredom/</guid>
      <description>&lt;p&gt;I almost always have earphones in, filling up the time in which I&amp;rsquo;m not actively focusing on something else with a steady patter of podcasts or mildly interesting books. But occasionally I wonder: aren&amp;rsquo;t I missing out on being alone with my thoughts, the serendipitous free flow borne of tedium? Maybe it isn&amp;rsquo;t worth it.&lt;/p&gt;
&lt;p&gt;So I have a control: one day a week, I forswear all electronic devices, and when I go for walks it&amp;rsquo;s just me and my own thoughts. I guess the ideal would be for me to ponder hard problems, or come up with a more efficient solution to a maths problem (this actually did happen the other day, for &lt;a href=&#34;https://projecteuler.net/problem=205&#34;&gt;this&lt;/a&gt;! But most of the time the topics seem to be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Inventing the perfect response for situations where I didn&amp;rsquo;t have one&lt;/li&gt;
&lt;li&gt;Getting angry about the news&lt;/li&gt;
&lt;li&gt;Imagining situations where someone tries to beat me up, but then it turns out that I have superpowers and I beat &lt;em&gt;them&lt;/em&gt; up (is this normal for an adult??? What does this say about me!?)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tentative conclusion: I&amp;rsquo;m not missing out on much. Although it&amp;rsquo;s possible that the &amp;ldquo;boredom premium&amp;rdquo; is cumulative, and only after building up a long period of boredom does true creativity flourish. By cycling between long periods of hyperstimulation and brief pauses, I&amp;rsquo;m just letting my overstimulated mind lapse into white noise on its off days. ¯_(ツ)_/¯&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Finally Figured Out Monty Hall!</title>
      <link>http://lordgrenville.github.io/posts/monty_hall/</link>
      <pubDate>Mon, 30 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/monty_hall/</guid>
      <description>&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/DeegC/monty_hall_paradox&#34;&gt;this explanation&lt;/a&gt; (coding it out in Ruby made it clearer to me, but it&amp;rsquo;s really the verbal explanation that worked).&lt;/p&gt;
&lt;p&gt;At the outset you have doors A, B and C. Given the choice between A or B and C, obviously you would take the latter. That&amp;rsquo;s what you&amp;rsquo;re choosing here! B and C, which combined have a greater chance of being correct. It&amp;rsquo;s more likely that it was in the two you didn&amp;rsquo;t choose: specifically the one of them which isn&amp;rsquo;t wrong. But they still represent 2/3.&lt;/p&gt;
&lt;p&gt;As a &lt;a href=&#34;https://news.ycombinator.com/item?id=22717754&#34;&gt;HN commenter&lt;/a&gt; put it, it&amp;rsquo;s easier to think of it when it&amp;rsquo;s 100 doors. To begin, you choose one. What&amp;rsquo;s the chance you&amp;rsquo;re correct? A measly 1%. You almost certainly got it wrong. Imagine if you could switch to select &lt;em&gt;the other 99&lt;/em&gt;. Of course you&amp;rsquo;d do it! Now the host opens the 98 goat doors. The other 99 are 98 goats + 1 &lt;code&gt;?&lt;/code&gt;. Of course you should switch! &lt;em&gt;You picked the minority, so the majority of times you are wrong. You&amp;rsquo;re being given a chance to switch to the majority&lt;/em&gt;. Of course, if no door is opened, you&amp;rsquo;re still picking one of 3 - you&amp;rsquo;re still a minority, so it makes no difference if you switch or stay.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>How Twitter Works in 2019</title>
      <link>http://lordgrenville.github.io/posts/twitter/</link>
      <pubDate>Wed, 13 Nov 2019 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/twitter/</guid>
      <description>&lt;p&gt;Someone tweets: I like mushrooms. Mushrooms are great. Yummy! Hits “send tweet”.&lt;/p&gt;
&lt;p&gt;Most of the replies are from the person’s followers. “Wow, you’re so  right! You have the best take on mushrooms.” “Totally! Mushrooms rule!”  “Ugh people who don’t like mushrooms be like [GIF from The Office]”.&lt;/p&gt;
&lt;p&gt;Then one person says “mushrooms are OK, but garlic is also cool”.&lt;/p&gt;
&lt;p&gt;Everyone else goes: “oh look it’s reply guy! here to mansplain the evils of mushrooms. Who hurt you?!?”&lt;/p&gt;
&lt;p&gt;I kind of understand the product decision behind this, because in  previous iterations of Twitter, what would happen is some random user  with a Nazi avatar searching the hashtag #mushrooms would find the tweet and say something like “death to the mushroom eaters!!! I will track  you down and rape and kill you. I know where you live” So helpfully,  Twitter wanted to make the conversation more like a conversation in a  safe space between friends, and less like an open space.&lt;/p&gt;
&lt;p&gt;The problem is just that Twitter is &lt;em&gt;also&lt;/em&gt; an open space: lots of people (like me) follow influential people because we want to hear  their views, but it’s nice to see those views encounter the views of  others who disagree, fostering conversation. When someone’s conversation is only with their acolytes, the public discourse is impoverished.&lt;/p&gt;
&lt;p&gt;I don’t have a good solution for this.&lt;/p&gt;
&lt;p&gt;(This essay is indebted to Megan McArdle’s idea &lt;a href=&#34;https://www.econtalk.org/megan-mcardle-on-internet-shaming-and-online-mobs/&#34;&gt;here&lt;/a&gt; about friend circles and internet circles.)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Carrying Podcasts From the Well On My Shoulders, Like In the Old Days</title>
      <link>http://lordgrenville.github.io/posts/podcasts/</link>
      <pubDate>Tue, 16 Jul 2019 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/podcasts/</guid>
      <description>&lt;p&gt;In general my view on podcasts is the shorter the better. So I really
like &lt;a href=&#34;https://www.bloomberg.com/podcasts/view&#34;&gt;Bloomberg View&lt;/a&gt;, which
runs just over a minute and distills the essence of a longer (usually
well thought-out) op-ed. (I guess by this logic the ideal podcast would
be 0 seconds - very Cagean.)&lt;/p&gt;
&lt;p&gt;But it seems like the Berg is phasing this one out. It no longer appears
on the website or on most podcast providers, and the RSS feed I had
(from iTunes) on &lt;a href=&#34;https://play.google.com/store/apps/details?id=com.bambuna.podcastaddict&amp;amp;hl=en_US&#34;&gt;Podcast
Addict&lt;/a&gt;
(a truly excellent app) suddenly returned
&lt;code&gt;SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found&lt;/code&gt;.
I emailed the developer and he promptly (shout-out Xavier! He really is
awesome) explained that SSL cert verification in modern versions of
Android is done by the device for all apps (except web browsers), so
this error is not coming from inside the app. I confirmed that I hadn&amp;rsquo;t
accidentally disabled my trust of any previously accepted certificate,
and he later showed me that the SSL cert for the RSS feed was indeed
expired.&lt;/p&gt;
&lt;p&gt;I emailed Bloomberg about this, but I think they are sunsetting this
podcast, and their support ticket confirmation email never showed up. In
the meantime I wanted to just grab those episodes, so I did it old
school.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import requests
import xml.etree.ElementTree as ET

feed = requests.get(&#39;https://feeds.bloomberg.fm/BLM8578726790&#39;, verify=False).text
# you need to disable verify because of the dodgy SSL. requests throws up a warning telling you that this is very foolish
feed = ET.fromstring(feed)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After fooling around with the &lt;code&gt;xml&lt;/code&gt; I get this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;for child in feed.getchildren()[0].getchildren():
    if child.tag == &#39;item&#39;:
        x = child.getchildren()
        print(x[0].text)
        print(x[-2].text)

&amp;gt;
Bloomberg Opinion Radio: Weekend Edition for 7-12-19 (Podcast)
https://assets.bwbx.io/av/users/iqjWHBFdfxIU/vrsTK.0wJcuQ/v4.mp3
How to Tame Europe’s Game of Thrones: Editorial (Podcast)
https://assets.bwbx.io/av/users/iqjWHBFdfxIU/vRijgKsrekSc/v4.mp3
Ramesh Ponnuru on the Obamacare Lawsuit Paradox (Podcast)
https://assets.bwbx.io/av/users/iqjWHBFdfxIU/vRzEW1v7.DEc/v4.mp3
Demanding Straight Answers on Immigration: Editorial (Podcast)
https://assets.bwbx.io/av/users/iqjWHBFdfxIU/viPbxsujOdcQ/v4.mp3

etc..
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And then I just grabbed the ones I wanted with &lt;code&gt;wget&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir podcasts &amp;amp;&amp;amp; cd podcasts/
wget -O pelosi.mp3 https://assets.bwbx.io/av/users/iqjWHBFdfxIU/vAThJHLXwFKM/v4.mp3

etc...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sent them to my phone with Bluetooth, and added the &lt;code&gt;bluetooth&lt;/code&gt; folder
as a virtual podcast. And there you go, podcasts the old fashioned way!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>The Truth Is Whatever We Believe</title>
      <link>http://lordgrenville.github.io/posts/truth/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/truth/</guid>
      <description>&lt;p&gt;You could tell a story in which the West is in decline, and China (and
perhaps India, Africa, whoever) is rising to take its place. Similarly,
you could take the post Cold War view that liberalism survives all
attacks, and that the current backlash against liberalism will also run
out of steam. Which of these is correct? Maybe whichever we believe it
is. I thought of this while reading Jack Weatherford&amp;rsquo;s &lt;em&gt;Genghis Khan and
the Making of the Modern World&lt;/em&gt;. He talks about Kublai Khan&amp;rsquo;s conquest
of China, and his assiduous use of propaganda. While the Mongols fought
the Song in Southern China and tried to unite the country, they were
able to change their public perception from that of foreign invaders to
be cast out, to that of new rulers, graced by heaven, who gained
legitimacy with every new victory. Many people defected to them and were
treated fairly.&lt;/p&gt;
&lt;p&gt;Probably the leaders of all the great powers today suspect that their
narratives might not be true, and that destiny might not actually carry
them forward. But they hope it to be the case, and try to convince
others. Perhaps that is all that is necessary.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>The Futility of Writing</title>
      <link>http://lordgrenville.github.io/posts/futility_of_writing/</link>
      <pubDate>Thu, 16 May 2019 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/futility_of_writing/</guid>
      <description>&lt;p&gt;Haven&amp;rsquo;t written anything in a while, and so this post seems appropriate.
It seems sometimes like in the Internet age, everything has been said,
and it&amp;rsquo;s mostly wrong. Take any news event in the last 24 hours, and you
will find on Twitter a vast panoply of opinions, taking every possible
perspective: joking, chiding, worrying, connecting it to the Grain Riots
of 1874. These will link to longer takes, rushing up like mushrooms
before the internet&amp;rsquo;s atttention shifts and we forget all about it. I
tend to be cynical, but my cynicism is in every case pre-empted: and so
is any other position I might take. Considering how I might want to
respond, I&amp;rsquo;m confronted with the feeling that I won&amp;rsquo;t be adding
anything, and so I usually refrain.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Of making many books there is no end&lt;/em&gt;, says Ecclesiastes. Today
everyone can publish everything and distribute everything they have to
say. In some ways this is good - more variety in media. It may have hurt
society in some ways, because when you remove all gatekeepers you give
equal weight to every crank and paranoiac. But it has also caused me to
doubt my interest in and love for the printed word. Lately I find myself
reading more maths, which for all its troubles, is a much calmer place
to be. I don&amp;rsquo;t know if it&amp;rsquo;s a long term solution.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Conversation</title>
      <link>http://lordgrenville.github.io/posts/conversation/</link>
      <pubDate>Wed, 27 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/conversation/</guid>
      <description>&lt;p&gt;I like to think that I&amp;rsquo;ve taught myself to become a better
conversationalist. I know that makes me sounds rather dull; but I do try
not to think about it as a set of procedures or an algorithm, but rather
as a general attitude that can make you more fun to hang out with.&lt;/p&gt;
&lt;p&gt;Famously, the golden rule of conversation is to &amp;ldquo;ask people about
themselves and let them talk&amp;rdquo;. This is true; with the caveat that &lt;strong&gt;you
need to be interested in their answers&lt;/strong&gt;. This means, essentially, that
you need to cultivate an interest in all sorts of people, to open
yourself up to conversations outside your immediate areas of interest.
If you can&amp;rsquo;t make yourself care about someone else&amp;rsquo;s life, they&amp;rsquo;ll be
aware of it. Luckily, people are fascinating - if you can&amp;rsquo;t see that,
read some fiction!&lt;/p&gt;
&lt;p&gt;Open-ended or ambiguous questions, of course, are infinitely better.
&amp;ldquo;What is your favourite part of &amp;ndash;&amp;rdquo; or &amp;ldquo;Do you think that &amp;ndash;&amp;rdquo; are better
than questions with specific answers (&amp;ldquo;do you like it?&amp;rdquo;), and &amp;ldquo;what do
you do?&amp;rdquo; is better than &amp;ldquo;what line of work are you in?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Another common idea is that you shouldn&amp;rsquo;t ask boring questions such as
&amp;ldquo;where are you from&amp;rdquo; or &amp;ldquo;what job do you do&amp;rdquo;. I don&amp;rsquo;t agree with this
bit of wisdom. To me, hitting someone you&amp;rsquo;ve just met with something
like &amp;ldquo;what&amp;rsquo;s the scariest thing you&amp;rsquo;ve ever done?&amp;rdquo; or &amp;ldquo;are humans
becoming obsolete?&amp;rdquo; is somewhat obnoxious. It&amp;rsquo;s a way of putting
yourself in the centre, marking yourself as a Bold and Interesting
Person who has no time for little minds. Some people find small talk
reassuring, at least at the beginning, and there&amp;rsquo;s a reason why it&amp;rsquo;s a
pretty common social lubricant. To me the goal of conversation is to
find the other person&amp;rsquo;s comfort zone and interests, find what excites
them, find some way that it intersects with your own interests, and
build on that. Everyone is different: some people like to talk about
hypotheticals, some people like talking about their jobs, some like
debating current events, some like emotional discussions, and some
people don&amp;rsquo;t like to talk at all, or don&amp;rsquo;t want to talk to you, and
shouldn&amp;rsquo;t be pushed. A non-threatening opener is your gambit into
finding which one it is.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Rhetoric &amp; Rationalism</title>
      <link>http://lordgrenville.github.io/posts/rhetoric_rationalism/</link>
      <pubDate>Mon, 11 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/rhetoric_rationalism/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s common to think of rhetoric as a gloss on top of &amp;rsquo;true&amp;rsquo; thinking,
mere packaging for the intellectual content of our ideas. From some of
the Platonic dialogues it seems like rhetoric, (or &lt;em&gt;sophistry&lt;/em&gt;, which
Plato made into an insult) is a foil to rational thought, an alternative
tradition which privileges aesthetic value - elegance of expression -
over content. (I seem to remember hearing a podcast [probably &lt;a href=&#34;https://partiallyexaminedlife.com/2013/05/14/ep76-deleuze/&#34;&gt;this
one&lt;/a&gt;] about
how Deleuze and Guattari suggest that as a better criterion than Occam&amp;rsquo;s
Razor for choosing a scientific explanation.)&lt;/p&gt;
&lt;p&gt;In his book &lt;em&gt;Amusing Ourselves to Death&lt;/em&gt; Neil Postman mentions this as a
possible difference between the media of oral and written culture: when
things are said, they must be constructed to be beautiful; when written,
people care more about how much sense they make.&lt;/p&gt;
&lt;p&gt;There may be a similar idea with &lt;em&gt;mishna&lt;/em&gt; and &lt;em&gt;gemara&lt;/em&gt;: could this be
why the &lt;em&gt;gemara&lt;/em&gt; so often reinterprets a pithy &lt;em&gt;mishna&lt;/em&gt; to a clunky but
more consistent reading?&lt;/p&gt;
&lt;p&gt;And of course the underlying, mischievous idea that one is not
necessarily better - they are just different forms of knowledge.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Parallel Texts</title>
      <link>http://lordgrenville.github.io/posts/parallel_texts/</link>
      <pubDate>Sun, 06 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/parallel_texts/</guid>
      <description>&lt;p&gt;An anecdote from Richard Rhodes&amp;rsquo; book &lt;em&gt;The Making of the Atomic Bomb&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Out of curiosity in 1940, while visiting Berkeley to deliver a
lecture, Enrico Fermi attended a seminar one of [J. Robert]
Oppenheimer&amp;rsquo;s protégés led in the master&amp;rsquo;s style. &amp;ldquo;Emilio,&amp;rdquo; Fermi
joked afterward with Segrè, &amp;ldquo;I am getting rusty and old. I cannot
follow the highbrow theory developed by Oppenheimer&amp;rsquo;s pupils anymore.
I went to their seminar and was depressed by my inability to
understand them. Only the last sentence cheered me up; it was: &amp;lsquo;and
this is Fermi&amp;rsquo;s theory of beta decay.&amp;rsquo;&amp;rdquo; (p. 667)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you&amp;rsquo;re familiar with Menachot 29b, you&amp;rsquo;ll see the parallel
immediately. In case you don&amp;rsquo;t, I quote it here (&lt;a href=&#34;https://www.sefaria.org.il/Menachot.29b.4?lang=bi&amp;amp;with=all&amp;amp;lang2=en&#34;&gt;via
Sefaria&lt;/a&gt;):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Moses said before God: Master of the Universe, show him to me. God
said to him: Return behind you. Moses went and sat at the end of the
eighth row in Rabbi Akiva&amp;rsquo;s study hall and did not understand what
they were saying. Moses&amp;rsquo; strength waned, as he thought his Torah
knowledge was deficient. When Rabbi Akiva arrived at the discussion of
one matter, his students said to him: My teacher, from where do you
derive this? Rabbi Akiva said to them: It is a &lt;em&gt;halakha&lt;/em&gt; transmitted
to Moses from Sinai. When Moses heard this, his mind was put at ease,
as this too was part of the Torah that he was to receive.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title>Depressing Art // Likable Politicians</title>
      <link>http://lordgrenville.github.io/posts/depressing_art_likable_politicians/</link>
      <pubDate>Thu, 03 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/depressing_art_likable_politicians/</guid>
      <description>&lt;p&gt;There are elections now, and people here are deeply cynical about the
slate of candidates. Political despair is the dominant tone, and has
been for some time. This is also true in the wider world, where few
politicians inspire trust or excitement. There was talk this week of
Elizabeth Warren launching a Presidential campaign, which &lt;a href=&#34;https://www.mcsweeneys.net/articles/i-dont-hate-women-candidates-i-just-hated-hillary-and-coincidentally-im-starting-to-hate-elizabeth-warren&#34;&gt;&amp;quot;I Don&amp;rsquo;t
Hate Women Candidates &amp;mdash; I Just Hated Hillary and Coincidentally I&amp;rsquo;m
Starting to Hate Elizabeth
Warren&lt;/a&gt;&amp;quot;
references. I don&amp;rsquo;t really have an opinion on Warren, but it made me
think of a politician I do find powerfully likable: Alexandria
Ocasio-Cortez. Trying to put my finger on what it was, I came up with 1)
cheerfulness and 2) optimism. O-C is a politician, and invariably does
need to say divisive things and spar with rivals; but she seems excited,
spontaneous, and again, optimistic. That optimism is very valuable in
such a toxic political climate. Perhaps Obama as a Senator projected a
similar fresh optimism. It probably is made easier when a young
candidate puts together a string of victories. Beto O&amp;rsquo;Rouke&amp;rsquo;s defeat to
Ted Cruz - no matter how predictable - may have detracted slightly from
his likability. (And for a bit of nonpartisanship, I&amp;rsquo;d mention Ben
Shapiro as a conservative whose precociousness and Reaganesque moral
optimism has won him a lot of attention, though he&amp;rsquo;s not exactly a
political figure - more in the &amp;ldquo;discourse&amp;rdquo; game.)&lt;/p&gt;
&lt;p&gt;I should stress that I do not think this likability necessarily
translates to leadership ability or worthwhile ideas. This approbation
is from a rhetoric/political communication point of view. &amp;ldquo;Cheer&amp;rdquo; and
&amp;ldquo;optimism&amp;rdquo; are hard to fake successfully: the public is used to seeing
politicians try all the time. When they exist sincerely, they are
valuable assets, but not a substitute for good policy and governance.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A lot of the music I like is not exactly fun. A fair amount of it might
be described as something one might bump themselves off to. And yet I
don&amp;rsquo;t really relate to it from a depressed space. In a way, I find it
cathartic to listen to other people&amp;rsquo;s depression (and perhaps feel
better by comparison!)&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s an old debate about if some artists need to suffer from
depression, or other mental illness, to be successful at their craft.
Many find this idea repugnant, with its implication that these people
must live in a state of untreated illness in order to ply their trade. I
certainly don&amp;rsquo;t think anyone&amp;rsquo;s mental health should take second place to
their artistic output. We as a society should do everything possible to
make professional medical help available to everyone, and encourage
people to make use of it. But it is at least possible that there are
artistic truths that are accessible only to those deep in the well of
melancholy. Better, certainly, that we lived without these truths, and
still had Elliot Smith. But that doesn&amp;rsquo;t alter the fact.&lt;/p&gt;
&lt;p&gt;The idea of &lt;a href=&#34;https://en.wikipedia.org/wiki/Depressive_realism&#34;&gt;depressive
realism&lt;/a&gt; dovetails
with this nicely: if we imagine that the world is fundamentally a tragic
place, and that neurotypical people deal with it via defensive mental
obfuscating, it might make sense that we would be drawn to the work of
the depressed, seeing in the expression of these unlucky prophets a
vision of a truth almost, but not quite perceived.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Prayer</title>
      <link>http://lordgrenville.github.io/posts/prayer/</link>
      <pubDate>Thu, 20 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/prayer/</guid>
      <description>&lt;p&gt;Back in my yeshiva days, I struggled with the concept of prayer. We
observe that sometimes people pray for things and aren&amp;rsquo;t answered -
after all, we all pray every day for health, wealth and the ultimate
redemption. So the underlying theory seems to be something along the
lines of prayer increasing your odds. Or, since presumably these things
are deterministic, your score: perhaps a young, healthy person needs 100
points to recover from an illness, and has 80 points on their own merit,
prayer can boost them 20 points and make it happen. Perhaps to recover
from a rare cancer requires 10,000 points and so even a pretty righteous
person, with many people praying for them, might get like, 8,000 points,
close but no cigar. (Perhaps this even warrants them a temporary
remission, but not a full one.)&lt;br&gt;
&lt;br&gt;
But all of this seems a little silly: the &amp;ldquo;vending machine&amp;rdquo; model of
divine worship. Insert prayers, get rewarded. In fact there are Jewish
sources that claim that God makes life especially tough for the
righteous because he desires their prayers. A model that appeals to me
more would be the exact opposite: that prayer affects nothing at all,
but is a form of meditation and Divine closeness, and so is worthy for
its own sake. But in this case praying for something to happen does
absolutely nothing, which makes the activity seem somewhat paradoxical.&lt;br&gt;
&lt;br&gt;
Of course, at its core this is entangled with the problem of theodicy,
so it&amp;rsquo;s no wonder that it&amp;rsquo;s such a conundrum.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>What is a Male Feminist? // Stats and the Social Sciences</title>
      <link>http://lordgrenville.github.io/posts/what_is_a_male_feminist_stats_and_the_social_sciences/</link>
      <pubDate>Wed, 21 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/what_is_a_male_feminist_stats_and_the_social_sciences/</guid>
      <description>&lt;p&gt;A few years ago, a lot of people were sharing an &lt;a href=&#34;https://www.youtube.com/watch?v=WJvm5-lO_Dw&#34;&gt;Aziz Ansari
bit&lt;/a&gt; about feminism. The
thrust - if you don&amp;rsquo;t want to click through - is that if you think men
and women deserve equal treatment, then you are a feminist, and
shouldn&amp;rsquo;t try avoid the label.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a good joke, but philosophically I think it is a little bit more
complex. Words have multiple shades of meaning, and words with far less
complex histories can be hard to define simply. Put simply, what is
feminism? It can mean a wide range of views, from &amp;lsquo;Wages for Housework&amp;rsquo;
to &amp;lsquo;Lean In&amp;rsquo; neoliberal feminism to intersectionality to TERFs to
arguments about abortion and the wage gap. If someone feels that women
deserve to earn equally to men, but that the wage gap is explained by
revealed preferences, unequal choices of hours and profession, is he not
a feminist? If a Christian believes abortion is murder, is she not a
feminist?&lt;/p&gt;
&lt;p&gt;There is undoubtedly complexity here, and I&amp;rsquo;m here to say this: &lt;em&gt;I think
men should not be involved in this discussion&lt;/em&gt;. It is women who are
affected by these issues, and they who should decide what feminism is
defined by, each in her own way. I think this is a reasonable claim,
though not a common one, even if one does not subscribe to the
identitarian &amp;ldquo;&lt;a href=&#34;https://en.wikipedia.org/wiki/Standpoint_theory&#34;&gt;standpoint
theory&lt;/a&gt;&amp;rdquo; epistemology
that claims the impossibility of outsider knowledge&lt;/p&gt;
&lt;p&gt;But a corollary of this is, since I can&amp;rsquo;t define feminism, I prefer to
call myself &lt;em&gt;pro-feminist&lt;/em&gt;, not a &lt;em&gt;feminist&lt;/em&gt;. It is up to women to
decide what feminism is. But I can&amp;rsquo;t call myself something I can&amp;rsquo;t
define.&lt;/p&gt;
&lt;p&gt;Put another way: &amp;ldquo;&lt;em&gt;I don&amp;rsquo;t know what feminism is, but whatever it is,
I&amp;rsquo;m for it&lt;/em&gt;.&amp;rdquo;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Data Science may be a sexy term for statistics, but statistics is more
sexy than it&amp;rsquo;s given credit for. Any social science, under the Popperian
paradigm, must make predictions: diagnosing a structure means nothing if
it has no predictive capacity. (Or else it&amp;rsquo;s humanities, kind of the way
some historians want to go, and the way psychoanalysis has gone
completely). Are, say, political scientists any better than monkeys
throwing darts? That&amp;rsquo;s why they need statistics. So both data science
and all of the social sciences can be defined as &lt;em&gt;applied statistics&lt;/em&gt;
(with the balance just varying between domain knowledge vs stats
knowledge, though any long-term DS project does involve getting deep
into the domain knowledge). Where it gets weird is where DS models and
makes predictions without an explanatory model, such as the case of NLP.
Statistical relationships working by themselves, not being supported by
any deep idea of how things fundamentally are supposed to work. The next
word is &amp;ldquo;meeting&amp;rdquo;, that green lump is a tree, just based on probability.
This was the subject of a debate between Google&amp;rsquo;s Peter Norvig and Noam
Chomsky, the former sums it up in a fascinating, deep-ranging blog post
&lt;a href=&#34;http://norvig.com/chomsky.html&#34;&gt;over here&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Social Justice Warriors on the Intellectual Dark Web // Who Needs the News? // The Nature of Reality</title>
      <link>http://lordgrenville.github.io/posts/social_justice_warriors_on_the_intellectual_dark_web_who_needs_the_news_the_nature_of_reality/</link>
      <pubDate>Mon, 12 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/social_justice_warriors_on_the_intellectual_dark_web_who_needs_the_news_the_nature_of_reality/</guid>
      <description>&lt;p&gt;A very overdiscussed topic lately is political correctness, and if
there&amp;rsquo;s too much of it. I propose the following three points:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;At least some measure of socially ordained political correctness is
unquestionably a good thing.&lt;/li&gt;
&lt;li&gt;There is a point where social monitoring of offensive speech becomes
intrusive, burdensome and overall not worthwhile.&lt;/li&gt;
&lt;li&gt;&amp;lsquo;PC Culture&amp;rsquo; is currently unevenly distributed - there are some
places which have it in very high levels (many university campuses,
say), whereas there are also plenty of places where some pretty
offensive things are considered acceptable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Basically my feeling is that there is a high level of variance among
people. Outside of the Western world there is a wild thicket of systems
of etiquette, views on race and caste and culture and gender, etc. And
even within the West, there is quite a lot of variance. I think this
variance is OK, a part of human nature. What the internet has changed is
that we see much more of each other&amp;rsquo;s views, and have more opportunity
to take offence, such that people get angrier and more polarised. The
internet is less like a global village than like all the villages in the
world compressed into one physical space, haphazardly glimpsing each
other&amp;rsquo;s business and getting offended.&lt;/p&gt;
&lt;p&gt;I also suspect that a lot of people within places that have high levels
of PC aren&amp;rsquo;t fully on board with the culture, but don&amp;rsquo;t feel it&amp;rsquo;s worth
taking on. I strongly endorse this hypothetical view, because a) this
doesn&amp;rsquo;t seem like the biggest deal, and b) people&amp;rsquo;s will probably
regress back to a calmer mean over time.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;So the late, revered programmer Aaron Swartz, patron saint of the
Internet, has a &lt;a href=&#34;http://www.aaronsw.com/weblog/hatethenews&#34;&gt;blog post&lt;/a&gt; I
categorically disagree with. Swartz argues that reading the news is
pointless because it doesn&amp;rsquo;t affect your life, and that it is a form of
mindless entertainment.&lt;/p&gt;
&lt;p&gt;By that logic, should you read news of scientific developments? It
affects your life very little, too, and it&amp;rsquo;s unlikely that someone
outside of a very specialised field will be able to contribute. Why read
anything besides technical literature from your profession, and perhaps
investment advice? If one is going to read anything, it might as well be
keeping up with the world around you, and one might even be able to use
it to make small talk with other human beings.&lt;/p&gt;
&lt;p&gt;I also think that this argument stems from a time when the media seemed
sturdier. Nowadays, the media business model is barely alive, and the
media&amp;rsquo;s role in a democracy doesn&amp;rsquo;t just work on its own. Swartz argues
that if the newspaper criticises the mayor, the mayor will apologise or
justify herself or whatever, so why does the reader need to get
involved? But nowadays the mayor has her own media. You could still
argue, as Swartz does, that one individual&amp;rsquo;s opinion, or their vote,
doesn&amp;rsquo;t really matter. But one might say in today&amp;rsquo;s terms that that
argument &amp;ldquo;doesn&amp;rsquo;t scale&amp;rdquo;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;English speakers encountering the words for scientific things in other
languages often find them somewhat childlike, but that&amp;rsquo;s only because
English obfuscates them with Latin and Greek, because tradition. Just
one example: TV in German is Fernsehen, &amp;ldquo;see-far&amp;rdquo;; in English it&amp;rsquo;s the
same, but a hideous Greek-Latin hybrid. Leaving aside the Sapir-Whorff
hypothesis, it&amp;rsquo;s beyond a doubt that the solidity of our language hides
an enormous amount of uncertainty. Not to get too Kantian, but in a
sense scientific models - not just of black holes and quantum particles,
but of all matter, consciousness, life! - are weird, hacky concepts,
leaky metaphors which partially describe observations of phenomena that
multiple people experience. I found this idea of the ubiquity and
fundamental nature of metaphor in human experience in a book I&amp;rsquo;m reading
(&lt;a href=&#34;https://www.amazon.com/Origin-Consciousness-Breakdown-Bicameral-Mind/dp/0618057072&#34;&gt;&lt;em&gt;The Origin of Consciousness in the Breakdown of the Bicameral
Mind&lt;/em&gt;&lt;/a&gt;),
and I&amp;rsquo;ll quote from it somewhat at length.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A random glance at the etymologies of common words in a dictionary
will demonstrate [the ubiquity of metaphors]. Or take the naming of
various fauna and flora in their Latin indicants, or even in their
wonderful common English names, such as stag beetle, lady&amp;rsquo;s-slipper,
darning needle, Queen Anne&amp;rsquo;s lace, or buttercup. The human body is a
particularly generative metaphier [his term for a source of
metaphors], creating previously unspeakable distinctions in a throng
of areas. The &lt;em&gt;head&lt;/em&gt; of an army, table, page, bed, ship, household, or
nail, or of steam or water; the &lt;em&gt;face&lt;/em&gt; of a clock, cliff, card, or
crystal; the &lt;em&gt;eyes&lt;/em&gt; of needles, winds, storms, targets, flowers, or
potatoes; the &lt;em&gt;brow&lt;/em&gt; of a hill; the &lt;em&gt;cheeks&lt;/em&gt; of a vise; the &lt;em&gt;teeth&lt;/em&gt; of
cogs or combs; the &lt;em&gt;lips&lt;/em&gt; of pitchers, craters, augers; the &lt;em&gt;tongues&lt;/em&gt;
of shoes, board joints, or railway switches; the &lt;em&gt;arm&lt;/em&gt; of a chair or
the sea; the &lt;em&gt;leg&lt;/em&gt; of a table, compass, sailor&amp;rsquo;s voyage, or cricket
field; and so on and on. Or the &lt;em&gt;foot&lt;/em&gt; of this page. Or the &lt;em&gt;leaf&lt;/em&gt; you
will soon turn. All of these concrete metaphors increase enormously
our powers of perception of the world about us and our understanding
of it, and literally create new objects. Indeed, language is an organ
of perception, not simply a means of communication.&lt;/p&gt;
&lt;p&gt;&amp;hellip;This is indeed the nub (knob), heart, pith, kernel, core, marrow,
etc. of my argument, which itself is a metaphor and &amp;lsquo;seen&amp;rsquo; only with
the mind&amp;rsquo;s &amp;rsquo;eye&amp;rsquo;. In the abstractions of human relations, the skin
becomes a particularly important metaphier. We get or stay &amp;lsquo;in touch&amp;rsquo;
with others who may be &amp;rsquo;thick-&amp;rsquo; or &amp;rsquo;thin-skinned&amp;rsquo; or perhaps &amp;rsquo;touchy&amp;rsquo;
in which case they have to be &amp;lsquo;handled&amp;rsquo; carefully lest we &amp;lsquo;rub&amp;rsquo; them
the wrong way; we may have a &amp;lsquo;feeling&amp;rsquo; for another person with whom we
may have a &amp;rsquo;touching&amp;rsquo; experience.&lt;/p&gt;
&lt;p&gt;The concepts of science are all of this kind, abstract concepts
generated by concrete metaphors. In physics, we have force,
acceleration (to increase one&amp;rsquo;s steps), inertia (originally an
indolent person), impedance, resistance, fields, and now charm. In
physiology, the metaphier of a machine has been at the very center of
discovery. We understand the brain by metaphors to everything from
batteries and telegraphy to computers and holograms. Medical practice
is sometimes dictated by metaphor. In the eighteenth century, the
heart in fever was like a boiling pot, and so bloodletting was
prescribed to reduce its fuel. And even today, a great deal of
medicine is based upon the military metaphor of defense of the body
against attacks of this or that. The very concept of law in Greek
derives from &lt;em&gt;nomos,&lt;/em&gt; the word for the foundations of a building. To
be liable, or bound in law, comes from the Latin &lt;em&gt;ligare,&lt;/em&gt; meaning to
bind with cord.&lt;/p&gt;
&lt;p&gt;In early times, language and its referents climbed up from the
concrete to the abstract on the steps of metaphors, even, we may say,
created the abstract on the bases of metaphors.&lt;/p&gt;
&lt;p&gt;It is not always obvious that metaphor has played this all important
function. But this is because the concrete metaphiers become hidden in
phonemic change, leaving the words to exist on their own. Even such an
unmetaphorical-sounding word as the verb &amp;rsquo;to be&amp;rsquo; was generated from a
metaphor. It comes from the Sanskrit &lt;em&gt;bhu&lt;/em&gt;, &amp;ldquo;to grow, or make grow,&amp;rdquo;
while the English forms &amp;lsquo;am&amp;rsquo; and &amp;lsquo;is&amp;rsquo; have evolved from the same root
as the Sanskrit &lt;em&gt;asmi,&lt;/em&gt; &amp;ldquo;to breathe.&amp;rdquo; It is something of a lovely
surprise that the irregular conjugation of our most nondescript verb
is thus a record of a time when man had no independent word for
&amp;rsquo;existence&amp;rsquo; and could only say that something &amp;lsquo;grows&amp;rsquo; or that it
&amp;ldquo;breathes.&amp;rdquo; Of course we are not conscious that the concept of being
is thus generated from a metaphor about growing and breathing.
Abstract words are ancient coins whose concrete images in the busy
give-and-take of talk have worn away with use.&lt;/p&gt;
&lt;p&gt;Because in our brief lives we catch so little of the vastnesses of
history, we tend too much to think of language as being solid as a
dictionary, with a granite-like permanence, rather than as the rampant
restless sea of metaphor which it is. Indeed, if we consider the
changes in vocabulary that have occurred over the last few millennia,
and project them several millennia hence, an interesting paradox
arises. For if we ever achieve a language that has the power of
expressing everything, then metaphor will no longer be possible. I
would not say, in that case, my love is like a red, red rose, for love
would have exploded into terms for its thousands of nuances, and
applying the correct term would leave the rose metaphorically dead.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title>Democracy &amp; Elitism // Fish</title>
      <link>http://lordgrenville.github.io/posts/democracy___elitism_fish/</link>
      <pubDate>Thu, 08 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/democracy___elitism_fish/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s a &amp;ldquo;salon&amp;rdquo; here where people get together once in a fortnight to
discuss a topic. The other week we were talking about politics and I
floated the idea that there are &amp;ldquo;good&amp;rdquo; and &amp;ldquo;bad&amp;rdquo; voters: those who
understand the issues to a greater extent and vote correctly
representing their interests, and those who understand less, whose vote
is essentially adding noise to the system. I&amp;rsquo;ve been groping towards an
idea of &amp;ldquo;democratic elitism&amp;rdquo; for a while, in which the great value of
democracy, I think, is that everyone&amp;rsquo;s &lt;em&gt;interests&lt;/em&gt; are represented
equally, but the messy practice of democracy muddies that and leads to
suboptimal outcomes.&lt;/p&gt;
&lt;p&gt;In this as in most things, it turns out that there&amp;rsquo;s a literature. While
reading Alan Ryan&amp;rsquo;s biography &lt;a href=&#34;https://www.amazon.com/John-Dewey-High-American-Liberalism/dp/1511384352&#34;&gt;&lt;em&gt;John Dewey and the High Tide of American
Liberalism&lt;/em&gt;&lt;/a&gt;,
I came across Dewey&amp;rsquo;s debates with journalist Walter Lippmann, a
towering figure in American journalism I&amp;rsquo;d never heard of. He studied
under Santayana at Harvard, co-founded the &lt;em&gt;New Republic&lt;/em&gt;, and was a
much read journalist and critic for half a century. (This &lt;a href=&#34;https://www.foreignaffairs.com/reviews/review-essay/2015-02-11/walter-lippmann-and-american-century&#34;&gt;helpful 1980
retrospective&lt;/a&gt;
in &lt;em&gt;Foreign Affairs&lt;/em&gt; is temporarily ungated, probably due to an
oversight.) In the
&lt;a href=&#34;https://en.wikipedia.org/wiki/Journalism#Writing_for_experts_or_for_ordinary_citizens?&#34;&gt;Lippmann-Dewey&lt;/a&gt;
debates, Lippmann made several very prescient critiques of the
media-public pipeline: firstly, reality is too complicated for anyone to
understand, and journalists tend to fall back on a stereotype backed up
by some reporting. Secondly, the public has little interest in political
engagement, and is not prepared to pay the price of thorough,
well-researched journalism. &amp;ldquo;For a dollar, you may not even get an
armful of candy, but for a dollar or less people expect
reality/representations of truth to fall into their laps.&amp;rdquo; A lot of
important facts are impossible to find out, and editorial judgment adds
bias to the allocation of news coverage. Thus, people don&amp;rsquo;t want to keep
up, and wouldn&amp;rsquo;t be able to even if they could.&lt;/p&gt;
&lt;p&gt;Lippmann advocated a technocracy, where a governing elite would be
advised by a cadre of technocrats, experts in a very narrow field.
(Lippmann&amp;rsquo;s name is thus associated with our modern vision of the
neoliberal state, and in fact it was Foucault who pointed out that the
the term originated at the first meeting in Paris of the &lt;a href=&#34;https://en.wikipedia.org/wiki/Colloque_Walter_Lippmann&#34;&gt;Colloque
Walter
Lippmann&lt;/a&gt;.)
Dewey&amp;rsquo;s side of the argument was in favour of civilian journalism, and a
&amp;ldquo;Great Society&amp;rdquo; of slow community-wide consensus. (Always majestic in
idealism but obscurely phrased, Dewey&amp;rsquo;s writing was perfectly described
by Oliver Wendell Homes Jr.:&amp;ldquo;So methought God would have spoken had He
been inarticulate but keenly desirous to tell you how it was.&amp;rdquo;)&lt;/p&gt;
&lt;p&gt;Ryan notes that the classic theorist of democratic elitism is actually
Joseph Schumpeter. In his famous work &lt;a href=&#34;https://en.wikipedia.org/wiki/Capitalism,_Socialism_and_Democracy&#34;&gt;Capitalism, Socialism and
Democracy&lt;/a&gt;
Schumpeter argued that a) the people are unlikely to know what is best
for them, since they are usually manipulated by politicians, and b) even
if they did have a clear agenda, they wouldn&amp;rsquo;t know the best means to
achieving it. He thus (following Weber) argued for a largely arms-length
democratic system, in which policy decisions are made at a government
level and the public&amp;rsquo;s role is restricted to choosing one of these
options and giving it a rubber stamp.&lt;/p&gt;
&lt;p&gt;Of course the issue here, where a lot of people disagree with me, is if
there really is a rational, ideal way to run a modern society. The
democratic upheaval of the last few years (which no doubt sowed the seed
of these musings) can arguably be attributed to the failure of the
watchman state during the financial crisis and America&amp;rsquo;s war on terror.
If the technocrats cannot claim greater knowledge than the public, what
authority do they hold? And if reason has no special status in public
life, does that mean that we are all forever doomed to shout at each
other to no end, ignorant voters on a darkling plain?&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Today, for the first time in my life, I picked up a whole fish (red
tilapia) at the souk, and decided to cook it. It feels so strange and
primitive! I gingerly unwrapped the newspaper and plastic bag, let the
liquid (blood?) drain, marinated it, added some garlic and thyme and
banged it in the oven. A brave new world.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Biodiversity // Doctors // BMX</title>
      <link>http://lordgrenville.github.io/posts/biodiversity_doctors_bmx/</link>
      <pubDate>Thu, 01 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>http://lordgrenville.github.io/posts/biodiversity_doctors_bmx/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been working at home this week, and leaving the windows open, as I like doing in all but the hottest weather. But I&amp;rsquo;ve been bothered by these guys on the right.


    &lt;label for=&#34;marginfig-1&#34; class=&#34;margin-toggle marginnote-ind&#34;&gt;&lt;/label&gt;
    &lt;input type=&#34;checkbox&#34; id=&#34;marginfig-1&#34; class=&#34;margin-toggle&#34;/&gt;
    &lt;span class=&#34;marginnote&#34;&gt;
    
    &lt;img src=&#34;http://lordgrenville.github.io/img/Aedes_Albopictus.jpg&#34; alt=&#34;mosquito&#34;&gt;
    

&lt;strong&gt;Aedes Albopictus. &lt;/strong&gt;

Public domain image via the Centre for Disease Control.


&lt;/span&gt;






&lt;/p&gt;
&lt;p&gt;Googling mosquitoes with zebra-striped abdomens reveals that this is a &lt;a href=&#34;https://en.wikipedia.org/wiki/Aedes_albopictus&#34;&gt;tiger mosquito&lt;/a&gt;, an aggressive invader from SE Asia. Ranked as one of the hundred worst invasive species, it originally spread on packing crates and has penetrated most of the world, first being seen in Israel in 2003. And besides for worse things, such as being disease vectors, they are unusually awful pests: they hunt by day, unlike regular mozzies, and can easily adapt to living in almost any human habitat, not needing a humid bog. I can testify to their peculiarly aggressive nature, not minding being brushed away or swatted at, persisting until finding blood.&lt;/p&gt;
&lt;p&gt;One of the side-effects of globalisation is the cross-pollination of nonhuman species all over the world, and simple Darwinism makes it likely that the strongest contenders from foreign environments will quickly take over many others (note the invasive Indian Mynahs and crows so prevalent here). It seems inevitable that this will result in a significant reduction in biodiversity. (The WWF claimed &lt;a href=&#34;https://qz.com/1443473/wwf-living-planet-report-says-humans-wiped-out-60-of-animals-since-1970/&#34;&gt;in a report this week&lt;/a&gt; that 60% of species had been wiped out since 1970.) This seems unpreventable, hard to track, and there might even be some unanticipated positive consequences. But it is a remarkable phenomenon.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A doctor recommended I have a mole taken out, so I went to a plastic surgeon, who said it was unnecessary, but he could do it anyway. &amp;ldquo;OK,&amp;rdquo; I said. &amp;ldquo;OK what?&amp;rdquo; he asked, with typical Israeli patience. &amp;ldquo;Well, you say no, she says yes - how can I know what to do?&amp;rdquo; He waved his hand. &amp;ldquo;Don&amp;rsquo;t worry about it, you can rely on me. It&amp;rsquo;s the easiest thing to prescribe an op. That&amp;rsquo;s not called being a doctor! Anyone could say that. It takes knowledge to say, it&amp;rsquo;s not necessary.&amp;rdquo; It reminded me a bit of doctrine of &lt;a href=&#34;https://he.wikipedia.org/wiki/%D7%9B%D7%95%D7%97_%D7%93%D7%94%D7%99%D7%AA%D7%A8%D7%90_%D7%A2%D7%93%D7%99%D7%A3&#34;&gt;כוחא דהיתרא עדיף&lt;/a&gt; (Beitza 2b) - anyone can prohibit something, but it takes a scholar to permit it!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;On the way back from the doctor I walked past BMXers doing tricks outside the Cinematheque. What they do is unreal, Matrix stuff; it seems to override the law of gravity.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>

