Congratulations!

[Valid Atom 1.0] This is a valid Atom 1.0 feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: https://p1k3.com/feed

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <feed xmlns="http://www.w3.org/2005/Atom"><title>p1k3::feed</title><link href="https://p1k3.com/"/><link href="https://p1k3.com/feed" rel="self"/><icon>/favicon.png</icon><author><name>Brennen Bearnes</name></author><id>https://p1k3.com/</id><generator>App::WRT.pm / XML::Atom::SimpleFeed</generator><updated>2018-08-15T16:59:07Z</updated><entry><title>wednesday, august 15</title><link href="https://p1k3.com/2018/8/15"/><id>https://p1k3.com/2018/8/15</id><content type="html">&lt;h1&gt;wednesday, august 15&lt;/h1&gt;
  3.  
  4. &lt;p&gt;it rained hard and fast late tuesday afternoon&lt;br /&gt;
  5. long after midnight now, water drips off the needles of the trees&lt;br /&gt;
  6. and rises off the streets in tracers of fog to&lt;br /&gt;
  7. mingle with the haze of the fires burning further west&lt;br /&gt;
  8. i can hear the old cat, muttering in his sleep on&lt;br /&gt;
  9. a chair in the living room&lt;br /&gt;
  10. a motorcycle on the otherwise-deserted highway&lt;br /&gt;
  11. and the frogs in the trees across the street&lt;/p&gt;
  12.  
  13. &lt;p class=&#34;datelink&#34;&gt;
  14. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  15. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  16. &lt;a href=&#34;https://p1k3.com/2018/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  17. &lt;a href=&#34;https://p1k3.com/2018/8/15/&#34; title=&#34;15&#34;&gt;15&lt;/a&gt;
  18. &lt;/p&gt;</content><updated>2018-08-15T16:59:07Z</updated></entry><entry><title>Wednesday, August  1 - some notebooks i have known and loved</title><link href="https://p1k3.com/2018/8/1"/><id>https://p1k3.com/2018/8/1</id><content type="html">&lt;h1&gt;Wednesday, August  1&lt;/h1&gt;
  19.  
  20. &lt;h2&gt;some notebooks i have known and loved&lt;/h2&gt;
  21.  
  22. &lt;ol&gt;
  23. &lt;li&gt;&lt;p&gt;The little tear-off notepads with the MoorMan&#38;rsquo;s Feed logo on them in the
  24. faux-leather vinyl covers that were everywhere when I was a kid, emblematic of
  25. a just-bygone era in corporate swag.&lt;/p&gt;&lt;/li&gt;
  26. &lt;li&gt;&lt;p&gt;The spiral-bound-at-the-top diary calendars with ag co-op logos on which my
  27. grandmother kept decades of notes.&lt;/p&gt;&lt;/li&gt;
  28. &lt;li&gt;&lt;p&gt;The half-full college student chemistry notebook, spiral bound, with little manila
  29. pockets and graph paper that I found in a curbside &#38;ldquo;FREE&#38;rdquo; pile in Boulder, and
  30. used to jot nerd ideas for years thereafter.&lt;/p&gt;&lt;/li&gt;
  31. &lt;li&gt;&lt;p&gt;The blocky, softcover, trade-paperback-sized recycled-paper sketchbook that
  32. is the only place I ever really made any progress in learning to draw
  33. anything.  I&#38;rsquo;ve sought its like in craft store art supply sections for the
  34. better part of 15 years now, to no avail.  Google is no more help.  It is
  35. that specimen of a consumer artifact which seems never to have existed, so
  36. far as the network is concerned.&lt;/p&gt;&lt;/li&gt;
  37. &lt;/ol&gt;
  38.  
  39.  
  40.  
  41. &lt;p class=&#34;datelink&#34;&gt;
  42. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  43. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  44. &lt;a href=&#34;https://p1k3.com/2018/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  45. &lt;a href=&#34;https://p1k3.com/2018/8/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt;
  46. &lt;/p&gt;</content><updated>2018-08-15T16:59:07Z</updated></entry><entry><title>Thursday, July 26 - feed discovery and live bookmarks should not be removed from firefox</title><link href="https://p1k3.com/2018/7/26"/><id>https://p1k3.com/2018/7/26</id><content type="html">&lt;h1&gt;Thursday, July 26&lt;/h1&gt;
  47.  
  48. &lt;h2&gt;feed discovery and live bookmarks should not be removed from firefox&lt;/h2&gt;
  49.  
  50. &lt;p&gt;&lt;strong&gt;tl;dr:&lt;/strong&gt; Mozilla are &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=1477667&#34;&gt;removing RSS feed discovery and display features from
  51. Firefox in an upcoming release&lt;/a&gt;.  This is an unfortunate decision
  52. which will actively harm the open web, and should be reversed.  It is also part
  53. of a larger pattern of unfortunate decisions by browser makers which contribute
  54. to a user-hostile network.&lt;/p&gt;
  55.  
  56. &lt;p&gt;I am writing this post first in the hopes that it will be read by people at
  57. Mozilla, and secondly for users of Firefox who may not know about useful tools
  58. that they&#38;rsquo;re about to lose.&lt;/p&gt;
  59.  
  60. &lt;p class=&#34;centerpiece&#34;&gt; ☆ &lt;/p&gt;
  61.  
  62.  
  63. &lt;p&gt;RSS and Atom (usually referred to just as &#38;ldquo;RSS&#38;rdquo; because naming stuff is hard)
  64. are related standards for publishing feeds of stuff on the web so that users
  65. can subscribe to updates.  If you see a little icon that looks like this:&lt;/p&gt;
  66.  
  67. &lt;p class=centerpiece&gt;
  68. &lt;img src=&#34;/files/icons/rss-feed.svg&#34; alt=&#34;orange RSS feed icon&#34; height=&#34;45&#34; width=&#34;45&#34;&gt;
  69. &lt;/p&gt;
  70.  
  71.  
  72. &lt;p&gt;&#38;hellip;it&#38;rsquo;s usually a link to a feed.  Feeds are just files that describe a set of
  73. entries along with publication dates and other metadata, and feedreader
  74. software can usually display the full text of entries, or link to them for
  75. reading in a browser.  This works especially well for things like blogs or
  76. social media streams, but it&#38;rsquo;s also the technology underlying podcasts.
  77. There&#38;rsquo;s a standard for linking a web page to its corresponding feed, so that
  78. browsers can display a feed icon and you can click it to subscribe.&lt;/p&gt;
  79.  
  80. &lt;p&gt;Firefox has had this feature for most of its existence, along with the ability
  81. to subscribe to feeds as &#38;ldquo;Live Bookmarks&#38;rdquo; that update with the contents of a feed.&lt;/p&gt;
  82.  
  83. &lt;p&gt;Back in 2011 the feed subscription button was removed from the default set of
  84. toolbar buttons.  As of this writing, you can add it back in by right-clicking
  85. the toolbar or clicking on the menu button (the three little lines towards the
  86. upper-righthand corner), clicking &#38;ldquo;Customize&#38;hellip;&#38;rdquo;, and dragging the &#38;ldquo;Subscribe&#38;rdquo;
  87. button to the toolbar.&lt;/p&gt;
  88.  
  89. &lt;p class=&#34;centerpiece&#34;&gt; ☆ &lt;/p&gt;
  90.  
  91.  
  92. &lt;p&gt;That&#38;rsquo;s the casual background.  Now I&#38;rsquo;ll try to lay out the substance of my
  93. belief that feeds should be a first-class citizen of the modern web, and that
  94. organizations like Mozilla should devote resources to supporting and improving
  95. the feed ecosystem.&lt;/p&gt;
  96.  
  97. &lt;ul&gt;
  98. &lt;li&gt;&lt;p&gt;Feeds are a direct channel of communication outside the control of silos
  99. like Facebook, Google, Twitter, and reddit.  As such, they empower publishers
  100. to communicate and end-users read the web without the mediation of hostile
  101. algorithms and the imperatives of surveillance capitalism.&lt;/p&gt;&lt;/li&gt;
  102. &lt;li&gt;&lt;p&gt;Though imperfect, the existing feed standards are
  103. stable, established technology with library support in nearly every major
  104. programming language.  They offer straightforward publishing at a tiny
  105. fraction of the implementation overhead demanded by other tooling that
  106. modern browsers devote vast resources to supporting.  They&#38;rsquo;re also
  107. accessible to anyone with the resources to configure a static site
  108. generator or a WordPress site.&lt;/p&gt;&lt;/li&gt;
  109. &lt;li&gt;&lt;p&gt;Work like &lt;a href=&#34;https://jsonfeed.org/&#34;&gt;JSON Feed&lt;/a&gt; (and probably various microformats), though
  110. also obviously imperfect, suggests that there are paths forward for feed-like
  111. tech that map pretty well to the existing abstractions.&lt;/p&gt;&lt;/li&gt;
  112. &lt;li&gt;&lt;p&gt;Unmediated syndication helps small businesses and independent publishers
  113. reach their customers without paying rent to social media platforms.  It
  114. helps governments be more transparent, journalists more informed, and web
  115. platforms more open without paying heavy costs to integrate with
  116. manipulative, closed-source systems.  It bolsters archiving and sharing of
  117. work &lt;em&gt;across&lt;/em&gt; systems.  It offers a clean alternative to spammy,
  118. personal-information-hoarding e-mail newsletter subscription lists.&lt;/p&gt;&lt;/li&gt;
  119. &lt;li&gt;&lt;p&gt;Unmediated syndication helps users make their own choices about the
  120. attention economy instead of wading through the click-maximizing behavioral
  121. engineering that now dominates web platforms.&lt;/p&gt;&lt;/li&gt;
  122. &lt;li&gt;&lt;p&gt;Accessibility: Feedreaders are now one of the few modes of consuming web
  123. publishing that don&#38;rsquo;t rely entirely on client-side JavaScript, which is
  124. a huge boon to people with any of low-end hardware, constrained bandwidth,
  125. or an entirely reasonable paranoia about running giant blobs of arbitrary
  126. code.&lt;/p&gt;&lt;/li&gt;
  127. &lt;li&gt;&lt;p&gt;Feed discovery and live bookmarks are differentiating features at a time
  128. when Firefox&#38;rsquo;s userbase has massively declined relative to Chrome, a
  129. browser built by a monopoly corporation which first enclosed and then
  130. destroyed a substantial part of the web syndication infrastructure in
  131. pursuit of its own interests.  (A browser built by a monopoly corporation
  132. which effectively controls a massive percentage of the client devices and
  133. operating systems, just in case anyone missed the 1990s the first time
  134. around.) Crudely put, following Chrome&#38;rsquo;s lead in pushing syndication
  135. entirely out of the browser to plugins removes a competitive advantage,
  136. while such advantages are in short and dwindling supply.&lt;/p&gt;&lt;/li&gt;
  137. &lt;li&gt;&lt;p&gt;Moving this functionality to plugins isn&#38;rsquo;t satisfactory for the simple
  138. reason that visibility is everything and &lt;em&gt;defaults matter&lt;/em&gt;.  If people know
  139. that feeds are a going concern, a percentage of people will use feeds, and
  140. the internet will be better for it.&lt;/p&gt;&lt;/li&gt;
  141. &lt;/ul&gt;
  142.  
  143.  
  144. &lt;p&gt;These are for the most part positive statements about feed-related features and
  145. what they offer.  To briefly be more negative, I also want to address the
  146. reasoning laid out in the &lt;a href=&#34;https://docs.google.com/document/d/1aIMPZVy33mn34pXBUETk4lt_NrJXupcMilTPFFVpmnI/edit&#34;&gt;draft blog post&lt;/a&gt; linked in &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=1477667&#34;&gt;bug 1477667&lt;/a&gt;:&lt;/p&gt;
  147.  
  148. &lt;blockquote&gt;&lt;p&gt;What’s more, these parts of Firefox aren’t offering features users want. Live
  149. bookmark doesn’t really have a concept of “read” state (it uses history visit
  150. state as a proxy, which doesn’t work for redirects), it doesn’t work well
  151. with sync, and arguably shouldn’t be part of our bookmarks implementation in
  152. the first place. It’s also not available on either Android or iOS and so has
  153. no mobile integration. Finally, podcasts are more successful than text-based
  154. feeds, but neither our feed viewer nor live bookmarks have good integration
  155. for them.&lt;/p&gt;
  156.  
  157. &lt;p&gt;Usage data from Firefox shows that 99.9% of our users don’t actually use
  158. either the feed viewer or live bookmarks. Furthermore, the usage of feeds
  159. outside of Firefox doesn’t justify it, either - RSS/Atom has been slowly
  160. losing popularity, and various tools and companies have dropped support years
  161. ago (Apple Mail, Google Reader, …), stopped existing if they were focused on
  162. feeds (e.g. FeedDemon) or changed focus (e.g. NetVibes).&lt;/p&gt;&lt;/blockquote&gt;
  163.  
  164. &lt;p&gt;There&#38;rsquo;s a pattern at work here, and it&#38;rsquo;s one I find frustrating just about
  165. every time I encounter it as a user.  (I&#38;rsquo;m also well aware I&#38;rsquo;ve been guilty of
  166. it myself in the past, but I&#38;rsquo;m mostly trying to do better.)&lt;/p&gt;
  167.  
  168. &lt;p&gt;It doesn&#38;rsquo;t mean much for the purposes of evaluating these features that the
  169. data doesn&#38;rsquo;t show heavy usage, because they&#38;rsquo;re features that were deliberately
  170. obscured from the user population something like &lt;em&gt;seven years ago&lt;/em&gt;.  I would be
  171. surprised if more than a tiny fraction of the current userbase of Firefox is
  172. aware that they (still) exist.  I was prompted to write this post itself by
  173. conversation with a technical professional who already uses feeds and 3rd-party
  174. feed discovery tools and didn&#38;rsquo;t know that they were already built into the
  175. browser.&lt;/p&gt;
  176.  
  177. &lt;p&gt;Leaving that aside, argumentation from Google&#38;rsquo;s actions around Reader and their
  178. knock-on effects is essentially poisoned.  RSS/Atom hasn&#38;rsquo;t simply been
  179. passively losing popularity; to the contrary it&#38;rsquo;s still remarkably popular
  180. given that it&#38;rsquo;s been so aggressively deprecated by a broad swath of industry
  181. powers whose commercial and structural interests run contrary to its
  182. purpose.&lt;/p&gt;
  183.  
  184. &lt;p class=&#34;centerpiece&#34;&gt; ☆ &lt;/p&gt;
  185.  
  186.  
  187. &lt;p&gt;I&#38;rsquo;m making an effort to write this in good faith.  I have concerns about
  188. Mozilla&#38;rsquo;s funding model and the attendant (dis)incentives.  I thoroughly
  189. despair, in general, about the fate and nature of the web as a whole.  But none
  190. of those things override my sense that Mozilla is a good organization doing
  191. necessary work and staffed by well-intentioned people.  I&#38;rsquo;m grateful for the
  192. work that goes into Firefox, and I&#38;rsquo;ll almost certainly keep using it for the
  193. foreseeable future.&lt;/p&gt;
  194.  
  195. &lt;p&gt;I don&#38;rsquo;t believe there&#38;rsquo;s an anti-RSS/Atom conspiracy, as such.  Nor do I
  196. necessarily think that feed discovery was &lt;em&gt;deliberately&lt;/em&gt; hidden in Firefox with
  197. the conscious intent that once hidden its removal could eventually be justified
  198. when enough people had forgotten about it.  Nevertheless, in the general case
  199. there&#38;rsquo;s a kind of broad emergent conspiracy, if you will, of industry consensus
  200. and action at work, and it manifests in small individual actions like this one.&lt;/p&gt;
  201.  
  202. &lt;p&gt;Mozilla is the kind of organization with copy like &#38;ldquo;We’re the not-for-profit
  203. behind products, technologies and programs that make the internet healthier for
  204. everyone&#38;rdquo; prominently displayed on its home page.  I don&#38;rsquo;t begrudge anyone the
  205. desire to simplify and improve legacy systems.  I&#38;rsquo;ve written enough code by now
  206. to know that deleting the stuff is just about the happiest interaction a
  207. programmer can have with the stuff.  Nevertheless, I&#38;rsquo;d ask you, a hypothetical
  208. Firefox developer reading this plaint, to consider that this really may not be
  209. a decision that makes the internet healthier.&lt;/p&gt;
  210.  
  211. &lt;p&gt;Thanks.&lt;/p&gt;
  212.  
  213. &lt;p class=&#34;centerpiece&#34;&gt;&lt;a href=&#34;/feed&#34;&gt;&lt;img src=&#34;/files/icons/feed.png&#34; alt=&#34;&#34; width=&#34;12&#34; height=&#34;12&#34;&gt;&lt;/a&gt;&lt;/p&gt;
  214.  
  215.  
  216.  
  217.  
  218.  
  219. &lt;p class=&#34;datelink&#34;&gt;
  220. &lt;a href=&#34;https://p1k3.com/topics/firefox&#34;&gt;firefox&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/panopticon&#34;&gt;panopticon&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/syndication&#34;&gt;syndication&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  221. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  222. &lt;a href=&#34;https://p1k3.com/2018/7/&#34; title=&#34;7&#34;&gt;7&lt;/a&gt; /
  223. &lt;a href=&#34;https://p1k3.com/2018/7/26/&#34; title=&#34;26&#34;&gt;26&lt;/a&gt;
  224. &lt;/p&gt;</content><updated>2018-08-02T06:45:41Z</updated></entry><entry><title>Sunday, June 24 - code.p1k3.com</title><link href="https://p1k3.com/2018/6/24"/><id>https://p1k3.com/2018/6/24</id><content type="html">&lt;h1&gt;Sunday, June 24&lt;/h1&gt;
  225.  
  226. &lt;h2&gt;code.p1k3.com&lt;/h2&gt;
  227.  
  228. &lt;p&gt;Here&#38;rsquo;s &lt;a href=&#34;https://code.p1k3.com/&#34;&gt;code.p1k3.com&lt;/a&gt;, which is (provisionally) where
  229. I&#38;rsquo;m planning to host my own projects from here on out.  This was precipitated
  230. by &lt;a href=&#34;/2018/6/3&#34;&gt;the Microsoft-eating-GitHub thing&lt;/a&gt;, but now that I have it feels like
  231. something I should have set up a while ago.&lt;/p&gt;
  232.  
  233. &lt;p&gt;For the moment, it&#38;rsquo;s running &lt;a href=&#34;https://gitea.io/&#34;&gt;Gitea&lt;/a&gt;, a sort of GitHub-lite in terms of
  234. interface, which is written in Go and distributed as a single binary.  This
  235. feels like a good piece of software in many ways, although some of the
  236. decisions to straightforwardly copy GitHub features feel kind of arbitrary.
  237. It&#38;rsquo;s talking to a local PostgreSQL instance, although it&#38;rsquo;s also capable of
  238. using SQLite.  At the volume of traffic I&#38;rsquo;m likely to get, SQLite would
  239. probably be fine.&lt;/p&gt;
  240.  
  241. &lt;p&gt;I decided to put Gitea in a subdirectory and write a minimal front page for the
  242. site, so as to avoid locking myself into one piece of third-party tooling.
  243. I&#38;rsquo;ll experiment with other ways to view the repositories stored there, and
  244. probably with other version control systems, like the SQLite-backed
  245. &lt;a href=&#34;https://www.fossil-scm.org/&#34;&gt;Fossil&lt;/a&gt;.&lt;/p&gt;
  246.  
  247. &lt;p&gt;code.p1k3.com is a $5/month DigitalOcean droplet with a gig of memory and 25
  248. gigs of storage, running Debian 9.4.&lt;/p&gt;
  249.  
  250. &lt;p&gt;I&#38;rsquo;m using Nginx to serve the front page, and as a reverse proxy for the Gitea
  251. installation, with the following configuration:&lt;/p&gt;
  252.  
  253. &lt;pre&gt;&lt;code&gt;server {
  254.  root /var/www/html;
  255.  
  256.  # Add index.php to the list if you are using PHP
  257.  index index.html index.htm index.nginx-debian.html;
  258.  server_name code.p1k3.com; # managed by Certbot
  259.  
  260.  listen [::]:443 ssl ipv6only=on; # managed by Certbot
  261.  listen 443 ssl; # managed by Certbot
  262.  ssl_certificate /etc/letsencrypt/live/code.p1k3.com/fullchain.pem; # managed by Certbot
  263.  ssl_certificate_key /etc/letsencrypt/live/code.p1k3.com/privkey.pem; # managed by Certbot
  264.  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  265.  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
  266.  
  267.  location / {
  268.    ssi on;
  269.  }
  270.  
  271.  location /gitea/ {
  272.    proxy_pass http://localhost:3000/;
  273.  }
  274. }
  275.  
  276. server {
  277.  if ($host = code.p1k3.com) {
  278.    return 301 https://$host$request_uri;
  279.  } # managed by Certbot
  280.  
  281.  listen 80 ;
  282.  listen [::]:80 ;
  283.  server_name code.p1k3.com;
  284.  return 404; # managed by Certbot
  285. }
  286. &lt;/code&gt;&lt;/pre&gt;
  287.  
  288. &lt;p&gt;You can &lt;a href=&#34;https://code.p1k3.com/gitea/brennen/p1k3/src/branch/master/code.p1k3.com&#34;&gt;see source for the front page&lt;/a&gt; in the p1k3 repo.&lt;/p&gt;
  289.  
  290. &lt;p&gt;I used &lt;a href=&#34;https://letsencrypt.org/getting-started/&#34;&gt;Let&#38;rsquo;s Encrypt / Certbot&lt;/a&gt; to get a certificate for the site (note
  291. all the &lt;code&gt;# managed by Certbot&lt;/code&gt; comments above).  I still have not set up a cron
  292. job to renew the cert.&lt;/p&gt;
  293.  
  294. &lt;p&gt;For copying repos over from GitHub, I used Jonas Franz&#38;rsquo;s
  295. &lt;a href=&#34;https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator&#34;&gt;gitea-github-migrator&lt;/a&gt;, with a command like the following:&lt;/p&gt;
  296.  
  297. &lt;pre&gt;&lt;code&gt;gitea-github-migrator migrate-all \
  298.    --gh-user brennen \
  299.    --gh-token $GH_TOKEN \
  300.    --url https://code.p1k3.com/gitea/ \
  301.    --token $GITEA_TOKEN \
  302.    --owner 1
  303. &lt;/code&gt;&lt;/pre&gt;
  304.  
  305. &lt;p&gt;On GitHub, you can get an API token under Settings / Developer Settings /
  306. Personal access tokens, and on a Gitea installation under Your Settings /
  307. Applications.&lt;/p&gt;
  308.  
  309. &lt;p&gt;I&#38;rsquo;m not sure whether I&#38;rsquo;m going to continue mirroring existing repos to GitHub
  310. or not.  In terms of discoverability, archival resilience, and continuity for
  311. anyone who has something cloned from there, it makes sense.  On the other hand,
  312. it continues lending force to GitHub&#38;rsquo;s near-monopoly.  Maybe I&#38;rsquo;ll just add some
  313. disclaimers to READMEs.&lt;/p&gt;
  314.  
  315. &lt;p&gt;Fortunately, no one actually &lt;em&gt;uses&lt;/em&gt; any of my code, so it&#38;rsquo;s all kind of
  316. academic.&lt;/p&gt;
  317.  
  318. &lt;p class=&#34;centerpiece&#34;&gt; ❀ &lt;/p&gt;
  319.  
  320.  
  321. &lt;p&gt;The above is a pretty haphazard writeup, and it&#38;rsquo;s missing a bunch of detail
  322. about installing golang and configuring Gitea.  As I refine the setup, I&#38;rsquo;ll try
  323. to document the whole thing more effectively in code, so that it can be mostly
  324. reproduced by running a script or something.&lt;/p&gt;
  325.  
  326.  
  327. &lt;p class=&#34;datelink&#34;&gt;
  328. &lt;a href=&#34;https://p1k3.com/topics/gitea&#34;&gt;gitea&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/github&#34;&gt;github&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/self-hosting&#34;&gt;self-hosting&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  329. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  330. &lt;a href=&#34;https://p1k3.com/2018/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  331. &lt;a href=&#34;https://p1k3.com/2018/6/24/&#34; title=&#34;24&#34;&gt;24&lt;/a&gt;
  332. &lt;/p&gt;</content><updated>2018-06-24T18:47:37Z</updated></entry><entry><title>Wednesday, June 20</title><link href="https://p1k3.com/2018/6/20"/><id>https://p1k3.com/2018/6/20</id><content type="html">&lt;h1&gt;Wednesday, June 20&lt;/h1&gt;
  333.  
  334. &lt;p class=centerpiece&gt;
  335. &lt;a href=&#34;https://www.cappadonafh.com/notices/Dara-Klopfenstein&#34;&gt;Dara Ann Klopfenstein &#38;mdash; July 20, 1957 &#38;ndash; June 13, 2018&lt;/a&gt;
  336. &lt;/p&gt;
  337.  
  338. &lt;p class=&#34;datelink&#34;&gt;
  339. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  340. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  341. &lt;a href=&#34;https://p1k3.com/2018/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  342. &lt;a href=&#34;https://p1k3.com/2018/6/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  343. &lt;/p&gt;</content><updated>2018-06-21T06:40:52Z</updated></entry><entry><title>Sunday, June  3 - on the vexed subject of github</title><link href="https://p1k3.com/2018/6/3"/><id>https://p1k3.com/2018/6/3</id><content type="html">&lt;h1&gt;Sunday, June  3&lt;/h1&gt;
  344.  
  345. &lt;h2&gt;on the vexed subject of github&lt;/h2&gt;
  346.  
  347. &lt;p&gt;So Microsoft bought GitHub.  I started to outline a whole essay here, under a
  348. different title, making various arguments about that.  I got about 500 words in
  349. before deleting it for being terrible writing.&lt;/p&gt;
  350.  
  351. &lt;p&gt;Here&#38;rsquo;s the gist of the opinionating without the supporting rhetoric:&lt;/p&gt;
  352.  
  353. &lt;ol&gt;
  354. &lt;li&gt;&lt;p&gt;This is bad and should probably be stopped (it won&#38;rsquo;t be).&lt;/p&gt;&lt;/li&gt;
  355. &lt;li&gt;&lt;p&gt;Microsoft are still bad even though it&#38;rsquo;s very much out of fashion to believe
  356. so.&lt;/p&gt;&lt;/li&gt;
  357. &lt;li&gt;&lt;p&gt;The real problem is that GitHub itself is bad and functions as such a
  358. lobster trap for open code, making the whole ecosystem more vulnerable to
  359. capture.&lt;/p&gt;&lt;/li&gt;
  360. &lt;/ol&gt;
  361.  
  362.  
  363. &lt;p&gt;The &lt;em&gt;real&lt;/em&gt; real problem is that capitalism is bad.&lt;/p&gt;
  364.  
  365. &lt;p class=&#34;centerpiece&#34;&gt; ✥ &lt;/p&gt;
  366.  
  367.  
  368. &lt;p&gt;I was just reading about another acquisition:  Bayer is buying Monsanto, to the
  369. tune of $63 billion.  This is bad and should probably be stopped (it won&#38;rsquo;t be).&lt;/p&gt;
  370.  
  371. &lt;p&gt;Microsoft made a convenient figure to cast as a villain for the computing
  372. counterculture of the 90s and early 2000s, but that&#38;rsquo;s not why they&#38;rsquo;re bad.
  373. Monsanto make a convenient villain for agricultural hippies and people who
  374. construe Whole Foods style luxury consumption as a moral good, but that&#38;rsquo;s not
  375. why they&#38;rsquo;re bad.&lt;/p&gt;
  376.  
  377. &lt;p&gt;Both are bad because massive accumulations of unaccountable power are
  378. unhealthy, and we live in a time of escalating inequality and deteriorating
  379. governance.&lt;/p&gt;
  380.  
  381. &lt;p&gt;I don&#38;rsquo;t know what to do about any of that.&lt;/p&gt;
  382.  
  383. &lt;p class=&#34;centerpiece&#34;&gt; ✾ &lt;/p&gt;
  384.  
  385.  
  386. &lt;p&gt;GitHub itself is, in some sense, the product of what we could call design
  387. externalities in Git.  Git&#38;rsquo;s model is distributed, sure, but it leaves the
  388. plumbing up to its users.  Meanwhile, hub-and-spokes development models work
  389. pretty well for most projects, and features like issue tracking, friendly
  390. publishing, and code review are really useful.  So is the discoverability of
  391. having one place to search, a unified namespace of users, and so on and so
  392. forth.&lt;/p&gt;
  393.  
  394. &lt;p&gt;That there aren&#38;rsquo;t well-defined mechanisms for issues, code review, and other
  395. metadata to be stored and transmitted with code history is &lt;em&gt;understandable&lt;/em&gt;
  396. from the perspective of a thing described as &#38;ldquo;the stupid content tracker&#38;rdquo;, but
  397. it&#38;rsquo;s also a giant vulnerability to the kinds of services centralizing SaaS
  398. providers are good at offering.&lt;/p&gt;
  399.  
  400. &lt;p&gt;GitHub has solved a lot of hard problems, and solved them pretty well from the
  401. perspectives of interface, usability, and presentation.  A lot of the stuff
  402. that&#38;rsquo;s missing from core Git is intrinsically difficult, and it&#38;rsquo;s &lt;em&gt;more&lt;/em&gt;
  403. difficult to solve in a distributed way.  That&#38;rsquo;s true even if your incentives
  404. aren&#38;rsquo;t to, as a friend recently put it, turn git back into svn.&lt;/p&gt;
  405.  
  406. &lt;p class=&#34;centerpiece&#34;&gt; ✺ &lt;/p&gt;
  407.  
  408.  
  409. &lt;p&gt;Of course, if GitHub were a foundation or a cooperative with a clearly defined
  410. public mission instead of a highly successful financial engineering scheme
  411. built on the slow enclosure of the commons (i.e., a technology business in
  412. 2018), I&#38;rsquo;d probably applaud it the way I do something like
  413. &lt;a href=&#34;https://archive.org&#34;&gt;archive.org&lt;/a&gt;.  It&#38;rsquo;s not like there&#38;rsquo;s not considerable
  414. social benefit to its archival / publishing / communication functions.&lt;/p&gt;
  415.  
  416. &lt;p&gt;(Even if, in practice, much of that social benefit is leveraged towards
  417. bootstrapping other financial engineering schemes so that assholes can get rich
  418. building the panopticon, because software is also bad and should be stopped.)&lt;/p&gt;
  419.  
  420. &lt;p class=&#34;centerpiece&#34;&gt; ✯ &lt;/p&gt;
  421.  
  422.  
  423. &lt;p&gt;Anyway, here we are.  I&#38;rsquo;m not doing anything about it this week, other than
  424. mulling some options, but within a couple of weeks is probably the right time
  425. to move all of the canonical hosting for my personal projects to a system I
  426. control.  It&#38;rsquo;s been on my mind every now and then for years.&lt;/p&gt;
  427.  
  428. &lt;p&gt;That part&#38;rsquo;s straightforward &#38;mdash; there&#38;rsquo;s nothing I maintain on my own time that
  429. has a development team, or for that matter any users to speak of.  Something
  430. like &lt;a href=&#34;https://gitea.io/en-US/&#34;&gt;Gitea&lt;/a&gt; has more features than I need for things
  431. like the source code to this blog or a &lt;code&gt;.vimrc&lt;/code&gt; that I occasionally link to in
  432. IRC.  I&#38;rsquo;ll try to do an extremely boring writeup when I decide what I&#38;rsquo;m doing.&lt;/p&gt;
  433.  
  434. &lt;p&gt;There&#38;rsquo;s a much bigger meta-game here, though, than just where some &lt;code&gt;.git&lt;/code&gt;
  435. directories are stashed.  That&#38;rsquo;s the part I&#38;rsquo;ll be watching with interest.&lt;/p&gt;
  436.  
  437.  
  438. &lt;p class=&#34;datelink&#34;&gt;
  439. &lt;a href=&#34;https://p1k3.com/topics/agriculture&#34;&gt;agriculture&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/business&#34;&gt;business&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/git&#34;&gt;git&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/github&#34;&gt;github&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/microsoft&#34;&gt;microsoft&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/politics&#34;&gt;politics&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  440. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  441. &lt;a href=&#34;https://p1k3.com/2018/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  442. &lt;a href=&#34;https://p1k3.com/2018/6/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt;
  443. &lt;/p&gt;</content><updated>2018-06-05T07:59:14Z</updated></entry><entry><title>Saturday, June  2 - a refrain</title><link href="https://p1k3.com/2018/6/2"/><id>https://p1k3.com/2018/6/2</id><content type="html">&lt;h1&gt;Saturday, June  2&lt;/h1&gt;
  444.  
  445. &lt;h2&gt;a refrain&lt;/h2&gt;
  446.  
  447. &lt;p&gt;AM/FM radio is a pretty remarkable thing.&lt;/p&gt;
  448.  
  449. &lt;p&gt;I suppose this has been obscured by the way that talk radio has played a
  450. starring role in decades of America&#38;rsquo;s political drift towards the authoritarian
  451. right, and also by the homogeneity of commercial music programming on FM.  All
  452. the same, here&#38;rsquo;s a massively deployed analog technology that covers most of the
  453. world and remains compatible with decades-old hardware.  There is, at this
  454. writing, hardly a house or car in the United States that can&#38;rsquo;t tune in radio
  455. stations.  I&#38;rsquo;m listening to the news right now on a handheld radio that was
  456. purchased the day I was born.&lt;/p&gt;
  457.  
  458. &lt;p&gt;The news is bad, but the radio still works about as well as it ever has.&lt;/p&gt;
  459.  
  460.  
  461. &lt;p class=&#34;datelink&#34;&gt;
  462. &lt;a href=&#34;https://p1k3.com/topics/radio&#34;&gt;radio&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  463. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  464. &lt;a href=&#34;https://p1k3.com/2018/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  465. &lt;a href=&#34;https://p1k3.com/2018/6/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt;
  466. &lt;/p&gt;</content><updated>2018-06-03T06:02:47Z</updated></entry><entry><title>Friday, June  1 - notes from nowhere, somewhat after midnight</title><link href="https://p1k3.com/2018/6/1"/><id>https://p1k3.com/2018/6/1</id><content type="html">&lt;h1&gt;Friday, June  1&lt;/h1&gt;
  467.  
  468. &lt;h2&gt;notes from nowhere, somewhat after midnight&lt;/h2&gt;
  469.  
  470. &lt;p&gt;&#38;ldquo;We&#38;rsquo;re nowhere&#38;rdquo;, characters on &lt;em&gt;The West Wing&lt;/em&gt; have a habit of saying as they
  471. reach a standstill in the middle of some intractable debate about policy or
  472. legislation.  This is basically how I have been feeling lately.&lt;/p&gt;
  473.  
  474. &lt;p&gt;It&#38;rsquo;s late.  I should be asleep.  I&#38;rsquo;ve been trying to work, but it hasn&#38;rsquo;t been
  475. working.  My girlfriend&#38;rsquo;s out of town, facing down a family tragedy; I am
  476. feeling especially powerless to help.  I came home for a couple of days to do
  477. things like pay the rent and beat the lawn back into submission and get a van
  478. running and reassure the cat that we hadn&#38;rsquo;t entirely abandoned him.&lt;/p&gt;
  479.  
  480. &lt;p&gt;At some point tonight the silence started to get to me and the cat both so we
  481. watched some TV:&lt;/p&gt;
  482.  
  483. &lt;p&gt;An early first-season episode of &lt;em&gt;Star Trek: The Next Generation&lt;/em&gt; that was so
  484. bad I became fascinated by it &#38;mdash; you forget how stilted and kind of foundering
  485. that show could be in the beginning, how much it could still feel like the
  486. original show at its worst.  Then the first episode of &lt;em&gt;sense8&lt;/em&gt;, a show I kind
  487. of wanted to hate immediately, and then wanted to like, and then wished didn&#38;rsquo;t
  488. seem like it was going to be so animated by violence because a lot of the other
  489. things that animate it are way more interesting.&lt;/p&gt;
  490.  
  491. &lt;p&gt;Anyway I&#38;rsquo;m eating too many tic tacs and trying to write.&lt;/p&gt;
  492.  
  493. &lt;p&gt;The first crop of radishes came up thick in my garden; I picked half today and
  494. will get the rest soon.  The chard that wintered over is threatening to bolt,
  495. but I think I&#38;rsquo;m going to let it go.  It feels like anything that hardy probably
  496. deserves a chance to go to seed, and maybe I can plant the seeds for a fall
  497. crop.&lt;/p&gt;
  498.  
  499. &lt;p&gt;The tree &#38;amp; grass pollen is unescapable.  You can see it in the air, there&#38;rsquo;s a
  500. thickening film on all the windshields.  My eyes are burning constantly,
  501. sometimes I can hardly keep them open.  I can&#38;rsquo;t breathe for shit.  I&#38;rsquo;ve got to
  502. go to an allergist and plead for some kind of intervention.  Of the things I
  503. never guessed about living past my early 30s, that I&#38;rsquo;d be wrecked for entire
  504. seasons on end by ambient plant sex definitely makes the list of
  505. disappointments.  It&#38;rsquo;s not quite as bad as fully realizing the mortality of
  506. everyone and everything I love, but I might put it roughly on a level with the
  507. awareness that computers are actually a terrifying existential threat in terms
  508. of its overall impact on my mental health.&lt;/p&gt;
  509.  
  510. &lt;p&gt;I found myself searching the commercial internet for facemasks capable of
  511. filtering pollen earlier today.  That can&#38;rsquo;t be an actual product category,
  512. right?  Just a filter mask you wear for like half the year?  No way.  Even if
  513. it were a thing, I can barely stand to put one of those things on for fifteen
  514. minutes when I&#38;rsquo;m dealing with solvents or, as recently, shoveling packrat shit
  515. out of a derelict shed in the woods in New Mexico.  I&#38;rsquo;m probably not going to
  516. become full-time face mask guy.&lt;/p&gt;
  517.  
  518. &lt;p&gt;The town turned on the irrigation ditch again, maybe for the duration this
  519. time.  It was running muddy and full of leaves yesterday; I pulled a bunch of
  520. crap out with a rake.  Today it was moving fast and clear.&lt;/p&gt;
  521.  
  522. &lt;p&gt;I just remembered that they found a body in the creek just around the corner
  523. earlier today.  (Yesterday now.)  I don&#38;rsquo;t know anything about it except the guy
  524. was younger than me.  I hope to God it doesn&#38;rsquo;t turn out to be anybody I know.&lt;/p&gt;
  525.  
  526.  
  527. &lt;p class=&#34;datelink&#34;&gt;
  528. &lt;a href=&#34;https://p1k3.com/topics/lawn-and-garden&#34;&gt;lawn-and-garden&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/star-trek&#34;&gt;star-trek&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  529. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  530. &lt;a href=&#34;https://p1k3.com/2018/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  531. &lt;a href=&#34;https://p1k3.com/2018/6/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt;
  532. &lt;/p&gt;</content><updated>2018-06-03T06:02:47Z</updated></entry><entry><title>Thursday, May 31</title><link href="https://p1k3.com/2018/5/31"/><id>https://p1k3.com/2018/5/31</id><content type="html">&lt;h1&gt;Thursday, May 31&lt;/h1&gt;
  533.  
  534. &lt;div class=photos&gt;
  535. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8513.JPG&#34;&gt;
  536.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8513.JPG&#34; width=&#34;200&#34;&gt;
  537. &lt;/a&gt;
  538. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8514.JPG&#34;&gt;
  539.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8514.JPG&#34; width=&#34;200&#34;&gt;
  540. &lt;/a&gt;
  541. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8515.JPG&#34;&gt;
  542.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8515.JPG&#34; width=&#34;200&#34;&gt;
  543. &lt;/a&gt;
  544. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8523.JPG&#34;&gt;
  545.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8523.JPG&#34; width=&#34;200&#34;&gt;
  546. &lt;/a&gt;
  547. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8537.JPG&#34;&gt;
  548.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8537.JPG&#34; width=&#34;200&#34;&gt;
  549. &lt;/a&gt;
  550. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8542.JPG&#34;&gt;
  551.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8542.JPG&#34; width=&#34;200&#34;&gt;
  552. &lt;/a&gt;
  553. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8560.JPG&#34;&gt;
  554.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8560.JPG&#34; width=&#34;200&#34;&gt;
  555. &lt;/a&gt;
  556. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8564.JPG&#34;&gt;
  557.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8564.JPG&#34; width=&#34;200&#34;&gt;
  558. &lt;/a&gt;
  559. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8569.JPG&#34;&gt;
  560.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8569.JPG&#34; width=&#34;200&#34;&gt;
  561. &lt;/a&gt;
  562. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8574.JPG&#34;&gt;
  563.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8574.JPG&#34; width=&#34;200&#34;&gt;
  564. &lt;/a&gt;
  565. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8580.JPG&#34;&gt;
  566.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8580.JPG&#34; width=&#34;200&#34;&gt;
  567. &lt;/a&gt;
  568. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8581.JPG&#34;&gt;
  569.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8581.JPG&#34; width=&#34;200&#34;&gt;
  570. &lt;/a&gt;
  571. &lt;/div&gt;
  572.  
  573. &lt;p class=&#34;datelink&#34;&gt;
  574. &lt;a href=&#34;https://p1k3.com/topics/cat&#34;&gt;cat&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/garden&#34;&gt;garden&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  575. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  576. &lt;a href=&#34;https://p1k3.com/2018/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  577. &lt;a href=&#34;https://p1k3.com/2018/5/31/&#34; title=&#34;31&#34;&gt;31&lt;/a&gt;
  578. &lt;/p&gt;</content><updated>2018-06-03T06:02:47Z</updated></entry><entry><title>Monday, May 28 - XML::Atom::SimpleFeed and utf-8 text</title><link href="https://p1k3.com/2018/5/28"/><id>https://p1k3.com/2018/5/28</id><content type="html">&lt;h1&gt;Monday, May 28&lt;/h1&gt;
  579.  
  580. &lt;h2&gt;XML::Atom::SimpleFeed and utf-8 text&lt;/h2&gt;
  581.  
  582. &lt;p&gt;&lt;strong&gt;tl;dr&lt;/strong&gt;: If you&#38;rsquo;ve got character weirdness with UTF-8 content and the
  583. XML::Atom::SimpleFeed module in Perl, make sure you&#38;rsquo;re doing something
  584. like:&lt;/p&gt;
  585.  
  586. &lt;pre&gt;&lt;code&gt;my $feed = XML::Atom::SimpleFeed-&#38;gt;new(
  587.  -encoding =&#38;gt; &#39;UTF-8&#39;,
  588.  # ...
  589. );
  590.  
  591. my $utf8_content = decode(&#39;UTF-8&#39;, $content, Encode::FB_CROAK);
  592.  
  593. $feed-&#38;gt;add_entry(
  594.  content   =&#38;gt; $utf8_content,
  595.  # ...
  596. );
  597. &lt;/code&gt;&lt;/pre&gt;
  598.  
  599. &lt;p&gt;A fuller explanation follows.&lt;/p&gt;
  600.  
  601. &lt;p class=&#34;centerpiece&#34;&gt; ☙ &lt;/p&gt;
  602.  
  603.  
  604. &lt;p&gt;There&#38;rsquo;s long been a bug with &lt;a href=&#34;/feed&#34;&gt;the Atom feed I generate for this site&lt;/a&gt;
  605. with &lt;a href=&#34;/topics/wrt&#34;&gt;wrt&lt;/a&gt;, where characters outside of the ASCII set (like ✿ ✢ ☆) were
  606. showing up mangled in the feed.&lt;/p&gt;
  607.  
  608. &lt;p&gt;I noticed this once in a while, but never investigated too deeply.  Since
  609. things usually seemed to display correctly in feedreaders (or at least in
  610. &lt;a href=&#34;https://www.newsblur.com/&#34;&gt;NewsBlur&lt;/a&gt;), I always wrote it off as some sort of vaguely
  611. intractable encoding glitch and forgot about it.&lt;/p&gt;
  612.  
  613. &lt;p&gt;Back in April, though, I &lt;a href=&#34;/2018/4/9/&#34;&gt;made some changes&lt;/a&gt; to how the feed
  614. generation worked, and &lt;a href=&#34;https://www.feedvalidator.org/check.cgi?url=https%3A%2F%2Fp1k3.com%2Ffeed&#34;&gt;checking it with feedvalidator.org&lt;/a&gt; made
  615. it obvious that something was legitimately broken.  Sure enough, in the Firefox
  616. feed view, decorative glyphs like &lt;code&gt;✺&lt;/code&gt; were rendering instead as multiple
  617. characters (see addendum below) while the first line of the generated Atom XML
  618. looked like so:&lt;/p&gt;
  619.  
  620. &lt;pre&gt;&lt;code&gt;&#38;lt;?xml version=&#34;1.0&#34; encoding=&#34;us-ascii&#34;?&#38;gt;
  621. &lt;/code&gt;&lt;/pre&gt;
  622.  
  623. &lt;p&gt;I&#38;rsquo;m using a CPAN library called XML::Atom::SimpleFeed for this.  Digging around
  624. &lt;a href=&#34;https://metacpan.org/pod/XML::Atom::SimpleFeed#INTERFACE&#34;&gt;in the docs&lt;/a&gt;, I found this bit:&lt;/p&gt;
  625.  
  626. &lt;pre&gt;&lt;code&gt;-encoding (omissible, default us-ascii)
  627. &lt;/code&gt;&lt;/pre&gt;
  628.  
  629. &lt;p&gt;So I changed the constructor in my code to look like this:&lt;/p&gt;
  630.  
  631. &lt;pre&gt;&lt;code&gt;my $feed = XML::Atom::SimpleFeed-&#38;gt;new(
  632.  -encoding =&#38;gt; &#39;UTF-8&#39;,
  633.  title     =&#38;gt; $self-&#38;gt;{title_prefix} . &#39;::&#39; . $self-&#38;gt;{title},
  634.  link      =&#38;gt; $self-&#38;gt;{url_root},
  635.  link      =&#38;gt; { rel =&#38;gt; &#39;self&#39;, href =&#38;gt; $feed_url, },
  636.  icon      =&#38;gt; $self-&#38;gt;{favicon_url},
  637.  author    =&#38;gt; $self-&#38;gt;{author},
  638.  id        =&#38;gt; $self-&#38;gt;{url_root},
  639.  generator =&#38;gt; &#39;App::WRT.pm / XML::Atom::SimpleFeed&#39;,
  640.  updated   =&#38;gt; App::WRT::Date::iso_date(App::WRT::Date::get_mtime($first_entry_file)),
  641. );
  642. &lt;/code&gt;&lt;/pre&gt;
  643.  
  644. &lt;p&gt;That took care of the declared encoding, but I was still getting mangled
  645. characters.  In order to fix that, I had to add something like:&lt;/p&gt;
  646.  
  647. &lt;pre&gt;&lt;code&gt;use Encode qw(decode encode);
  648.  
  649. my $utf8_content = decode(&#39;UTF-8&#39;, $content, Encode::FB_CROAK);
  650. $feed-&#38;gt;add_entry(
  651.  title     =&#38;gt; $title,
  652.  link      =&#38;gt; $entry_url,
  653.  id        =&#38;gt; $entry_url,
  654.  content   =&#38;gt; $utf8_content,
  655.  updated   =&#38;gt; $iso_date,
  656. );
  657. &lt;/code&gt;&lt;/pre&gt;
  658.  
  659. &lt;p&gt;&#38;hellip;where I add individual entries to the feed.&lt;/p&gt;
  660.  
  661. &lt;p&gt;As I understand it, when you read a UTF-8-encoded text file into a Perl string,
  662. the string&#38;rsquo;s contents will correspond to the &lt;em&gt;bytes&lt;/em&gt; in the file &#38;mdash; all well
  663. and good, for many purposes, but unless you explicitly use
  664. &lt;code&gt;Encode::decode(&#39;UTF-8&#39;, $string)&lt;/code&gt; to map multi-byte characters in UTF-8 to the
  665. correct Unicode code points in Perl&#38;rsquo;s internal string representation, weirdness
  666. will result when somebody calls &lt;code&gt;Encode::encode($character_set, $string)&lt;/code&gt; to
  667. explicitly turn those bytes back into correctly-encoded &lt;em&gt;output&lt;/em&gt;, which
  668. XML::Atom::SimpleFeed does.&lt;/p&gt;
  669.  
  670. &lt;p&gt;I may well be mangling that explanation somewhat.  I&#38;rsquo;ve never really had my
  671. head around this class of problems in general, which at this late date should
  672. probably be kind of embarrassing for a working programmer, but I also suspect
  673. that character encoding remains a confusing topic for almost everyone.&lt;/p&gt;
  674.  
  675. &lt;p&gt;See also:&lt;/p&gt;
  676.  
  677. &lt;ul&gt;
  678. &lt;li&gt;&lt;a href=&#34;http://perldoc.perl.org/perlunicode.html&#34;&gt;perlunicode&lt;/a&gt;,
  679. &lt;a href=&#34;http://perldoc.perl.org/perlunitut.html&#34;&gt;perlunitut&lt;/a&gt; (official docs)&lt;/li&gt;
  680. &lt;li&gt;&lt;a href=&#34;https://github.com/ap/XML-Atom-SimpleFeed/issues/2&#34;&gt;Allow XML encodings other than us-ascii&lt;/a&gt; (GitHub issue)&lt;/li&gt;
  681. &lt;li&gt;&lt;a href=&#34;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=793069&#34;&gt;libxml-atom-simplefeed-perl: Encoding hardcoded to us-ascii&lt;/a&gt;&lt;/li&gt;
  682. &lt;li&gt;&lt;a href=&#34;https://rt.cpan.org/Public/Bug/Display.html?id=19722&#34;&gt;Bug #19722 for XML-Atom-SimpleFeed: Can&#38;rsquo;t make it to work with international charsets&lt;/a&gt;&lt;/li&gt;
  683. &lt;li&gt;&lt;a href=&#34;https://cpanratings.perl.org/dist/XML-Atom-SimpleFeed&#34;&gt;CPAN Ratings XML-Atom-SimpleFeed reviews&lt;/a&gt;&lt;/li&gt;
  684. &lt;/ul&gt;
  685.  
  686.  
  687. &lt;p&gt;A comment in the review by Darren Kulp (from 2008, no less) pretty much
  688. contains the solution I landed on, but of course I skimmed over it on the first
  689. reading and spent a bunch more time getting there.&lt;/p&gt;
  690.  
  691. &lt;p class=&#34;centerpiece&#34;&gt; ✩ &lt;/p&gt;
  692.  
  693.  
  694. &lt;p&gt;&lt;strong&gt;Addendum:&lt;/strong&gt; I mentioned that &lt;code&gt;✺&lt;/code&gt; was rendering as multiple characters.
  695. Specifically, it was turning into what vim displays as &lt;code&gt;â&#38;lt;9c&#38;gt;º&lt;/code&gt;.  You can use
  696. &lt;code&gt;xxd&lt;/code&gt; to get a hexdump of this:&lt;/p&gt;
  697.  
  698. &lt;pre&gt;&lt;code&gt;$ cat original
  699.  
  700. $ cat re_encoded
  701. âº
  702.  
  703. $ xxd original
  704. 00000000: e29c ba                                  ...
  705.  
  706. $ xxd re_encoded
  707. 00000000: c3a2 c29c c2ba                           ......
  708. &lt;/code&gt;&lt;/pre&gt;
  709.  
  710. &lt;p&gt;So without running &lt;code&gt;Encode::decode()&lt;/code&gt; on this input, each of those initial 3
  711. bytes (&lt;code&gt;e2 9c ba&lt;/code&gt;) becomes a character in Perl&#38;rsquo;s internal string
  712. representation, and then &lt;code&gt;Encode::encode()&lt;/code&gt; says &#38;ldquo;ok, let&#38;rsquo;s represent these
  713. three characters as UTF-8&#38;rdquo;, from which you obviously get nonsense (though it&#38;rsquo;s
  714. nonsense in which some of the original &lt;em&gt;bytes&lt;/em&gt; are preserved).&lt;/p&gt;
  715.  
  716.  
  717. &lt;p class=&#34;datelink&#34;&gt;
  718. &lt;a href=&#34;https://p1k3.com/topics/perl&#34;&gt;perl&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/unicode&#34;&gt;unicode&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/wrt&#34;&gt;wrt&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/xml&#34;&gt;xml&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  719. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  720. &lt;a href=&#34;https://p1k3.com/2018/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  721. &lt;a href=&#34;https://p1k3.com/2018/5/28/&#34; title=&#34;28&#34;&gt;28&lt;/a&gt;
  722. &lt;/p&gt;</content><updated>2018-06-03T06:02:47Z</updated></entry><entry><title type="html">sunday, may 13 - a mother&#39;s day lawn and garden report</title><link href="https://p1k3.com/2018/5/13"/><id>https://p1k3.com/2018/5/13</id><content type="html">&lt;h1&gt;sunday, may 13&lt;/h1&gt;
  723.  
  724. &lt;h2&gt;a mother&#39;s day lawn and garden report&lt;/h2&gt;
  725.  
  726. &lt;p&gt;coming over the hill on 36 where&lt;br /&gt;
  727. you catch that first view of boulder,&lt;br /&gt;
  728. clouds move over and in the gray and green of&lt;br /&gt;
  729. the bowl of the valley, against the mountains&lt;br /&gt;
  730. sweeping away to the north and west&lt;br /&gt;
  731. and in seconds thick drops hit the glass&lt;br /&gt;
  732. turning to heavy rain by the edge of town&lt;/p&gt;
  733.  
  734. &lt;p&gt;windshield wipers all the way up 28th and onto&lt;br /&gt;
  735. the road north, low rumbling as i park and lug my&lt;br /&gt;
  736. bag into the house, half-deranged from the day&#39;s&lt;br /&gt;
  737. driving and a dozen of the sadnesses that&lt;br /&gt;
  738. middle adulthood scores over and over again&lt;br /&gt;
  739. into surfaces like these&lt;/p&gt;
  740.  
  741. &lt;p&gt;the cat and i are watching the water come down&lt;br /&gt;
  742. out the screendoor when the thunder picks up&lt;br /&gt;
  743. i run outside and yank a tarp off the woodpile&lt;br /&gt;
  744. in back to throw across the garden&lt;br /&gt;
  745. just as the hail really gets going&lt;br /&gt;
  746. the flowers from the apple tree falling fast&lt;br /&gt;
  747. in the rain and ice, my shirt soaking&lt;/p&gt;
  748.  
  749. &lt;p&gt;the tarp is probably futile, but i have memories&lt;br /&gt;
  750. of more than one vegetable crop shredded by a&lt;br /&gt;
  751. spring storm like this one&lt;br /&gt;
  752. and i&#39;m not sure what else i can do&lt;/p&gt;
  753.  
  754. &lt;p&gt;which is both a metaphor and not.&lt;/p&gt;
  755.  
  756. &lt;p class=&#34;datelink&#34;&gt;
  757. &lt;a href=&#34;https://p1k3.com/topics/lawn-and-garden&#34;&gt;lawn-and-garden&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  758. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  759. &lt;a href=&#34;https://p1k3.com/2018/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  760. &lt;a href=&#34;https://p1k3.com/2018/5/13/&#34; title=&#34;13&#34;&gt;13&lt;/a&gt;
  761. &lt;/p&gt;</content><updated>2018-05-14T03:55:09Z</updated></entry><entry><title>Tuesday, May  1 - wtfm</title><link href="https://p1k3.com/2018/5/1"/><id>https://p1k3.com/2018/5/1</id><content type="html">&lt;h1&gt;Tuesday, May  1&lt;/h1&gt;
  762.  
  763. &lt;h2&gt;wtfm&lt;/h2&gt;
  764.  
  765. &lt;p&gt;I&#38;rsquo;m thinking, far from the first time, about how few open source projects meet
  766. a certain standard of practical openness:&lt;/p&gt;
  767.  
  768. &lt;p&gt;Can a user unfamiliar with the project start with the published source code and
  769. the included documentation, and wind up with a working installation?&lt;/p&gt;
  770.  
  771. &lt;p&gt;The answer is &#38;ldquo;no way&#38;rdquo; a lot more often than it should be.&lt;/p&gt;
  772.  
  773. &lt;p&gt;I&#38;rsquo;m all too aware that the full context it takes to build a lot of software is
  774. a pretty hard thing to explain in a README.  All the same, if you&#38;rsquo;re working on
  775. a project of any size, maybe you ought to ask yourself some of the following:&lt;/p&gt;
  776.  
  777. &lt;ul&gt;
  778. &lt;li&gt;&lt;p&gt;Have I documented, in full, an up-to-date list of every environmental
  779. condition that a user will have to manually obtain in order to build,
  780. install, or run this code?&lt;/p&gt;&lt;/li&gt;
  781. &lt;li&gt;&lt;p&gt;Is it clear what environments this code is developed in, and where it&#38;rsquo;s
  782. known to run without issue?  Am I being brutally honest about this part?&lt;/p&gt;&lt;/li&gt;
  783. &lt;li&gt;&lt;p&gt;Is it clear what version of everything I used?&lt;/p&gt;&lt;/li&gt;
  784. &lt;li&gt;&lt;p&gt;When was the last time I tested the installation procedures in my
  785. documentation in a clean environment?  Has it been since the last time I
  786. changed dependencies or configuration requirements, no matter how
  787. apparently trivial?&lt;/p&gt;&lt;/li&gt;
  788. &lt;li&gt;&lt;p&gt;To what extent am I relying on implicit details of some OS, distribution,
  789. virtual machine, container, configuration management tool, package, init
  790. system, etc., without communicating those details to the user?&lt;/p&gt;&lt;/li&gt;
  791. &lt;li&gt;&lt;p&gt;If a user is unfamiliar with details of a language, package manager, build
  792. system, or other tooling, are they pretty much just SOL?  If
  793. so, is my software of interest to anyone outside of my specific technical
  794. community, narrowly defined?  Is there any potential that it will need to
  795. be supported, for example, by admins or ops people who don&#38;rsquo;t share my
  796. context, for use by some less technical audience?&lt;/p&gt;&lt;/li&gt;
  797. &lt;li&gt;&lt;p&gt;If I personally returned to developing the software after leaving it
  798. untouched for two years, how many problems would I be required to solve
  799. from a combination of my own patchy memory, search engine queries, and
  800. painstaking software architecture?&lt;/p&gt;&lt;/li&gt;
  801. &lt;li&gt;&lt;p&gt;Are there any required environment variables, config file values, or
  802. command-line parameters that are for some reason undocumented?&lt;/p&gt;&lt;/li&gt;
  803. &lt;li&gt;&lt;p&gt;Am I posturing like a link to some automatically extracted API
  804. documentation is a useful substitute for a real user manual?&lt;/p&gt;&lt;/li&gt;
  805. &lt;li&gt;&lt;p&gt;Did I just publish a command-line utility with a crappy builtin help system
  806. instead of a real man page?&lt;/p&gt;&lt;/li&gt;
  807. &lt;/ul&gt;
  808.  
  809.  
  810. &lt;p&gt;I could go on like this for a while, but I suppose the point is clear enough.
  811. If it sounds like I&#38;rsquo;m advocating a stricter standard than I usually manage to
  812. live up to myself, well, that&#38;rsquo;s probably fair.  Still, I think we could all
  813. probably do better.&lt;/p&gt;
  814.  
  815.  
  816. &lt;p class=&#34;datelink&#34;&gt;
  817. &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  818. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  819. &lt;a href=&#34;https://p1k3.com/2018/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  820. &lt;a href=&#34;https://p1k3.com/2018/5/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt;
  821. &lt;/p&gt;</content><updated>2018-05-04T04:48:49Z</updated></entry><entry><title>Thursday, April 19 - a git log with both tags and dates</title><link href="https://p1k3.com/2018/4/19"/><id>https://p1k3.com/2018/4/19</id><content type="html">&lt;h1&gt;Thursday, April 19&lt;/h1&gt;
  822.  
  823. &lt;h2&gt;a git log with both tags and dates&lt;/h2&gt;
  824.  
  825. &lt;p&gt;Trying to write a human-readable changelog for &lt;a href=&#34;/topics/wrt&#34;&gt;wrt&lt;/a&gt;, I wanted to
  826. see git history that included:&lt;/p&gt;
  827.  
  828. &lt;ul&gt;
  829. &lt;li&gt;commit hash&lt;/li&gt;
  830. &lt;li&gt;a datestamp&lt;/li&gt;
  831. &lt;li&gt;any tags pointing at a commit&lt;/li&gt;
  832. &lt;li&gt;subject line&lt;/li&gt;
  833. &lt;/ul&gt;
  834.  
  835.  
  836. &lt;p&gt;Since tags are used to designate released versions, this should at least give
  837. me a rough idea of what changed between releases.&lt;/p&gt;
  838.  
  839. &lt;p&gt;This was not as obvious as I wanted it to be.  You can see the tags in &lt;code&gt;gitk&lt;/code&gt;&#38;rsquo;s
  840. view of history, but I didn&#38;rsquo;t know how to extract it from &lt;code&gt;git log&lt;/code&gt;.  The usual
  841. searching led to:&lt;/p&gt;
  842.  
  843. &lt;pre&gt;&lt;code&gt;$ git log --oneline --decorate
  844. 99a584f (HEAD -&#38;gt; master, tag: v5.0.0-alpha, origin/master, origin/HEAD) set version string to v5.0.0
  845. e919a56 some comment tweaking; latest readme
  846. 7b543b5 address a bunch of hotspots from Devel::NYTProf, removing MethodSpit
  847. 3fa80ca link_bar(): retain actual &#38;lt;a&#38;gt; tag for current page in linkbar
  848. cf3dd64 remove failing recent_month test
  849. b5fe642 kill an extraneous space char in Markup.pm
  850. c1e17a9 sync README.pod with latest from WRT.pm
  851. 7d80dd5 kill recent_month(), month_before(), and feed_print_latest()
  852. 143613f get_date_entries_by_depth()
  853. 4f9a71b (tag: v4.3.0) switch example config from p1k3.com to example.com urls
  854. &lt;/code&gt;&lt;/pre&gt;
  855.  
  856. &lt;p&gt;Which is pretty close - you can see the tags inline with the rest of the
  857. history, but no date.  (I&#38;rsquo;m not sure if I ever knew about &lt;code&gt;--decorate&lt;/code&gt;; almost
  858. feels like it should be the default.)&lt;/p&gt;
  859.  
  860. &lt;p&gt;I spent some time with &lt;code&gt;git help log&lt;/code&gt; and eventually landed on:&lt;/p&gt;
  861.  
  862. &lt;pre&gt;&lt;code&gt;$ git log --date=short --pretty=&#39;format:%h %ad %d %s&#39;
  863. 99a584f 2018-04-19  (HEAD -&#38;gt; master, tag: v5.0.0-alpha, origin/master, origin/HEAD) set version string to v5.0.0
  864. e919a56 2018-04-19  some comment tweaking; latest readme
  865. 7b543b5 2018-04-11  address a bunch of hotspots from Devel::NYTProf, removing MethodSpit
  866. 3fa80ca 2018-04-08  link_bar(): retain actual &#38;lt;a&#38;gt; tag for current page in linkbar
  867. cf3dd64 2018-04-08  remove failing recent_month test
  868. b5fe642 2018-04-08  kill an extraneous space char in Markup.pm
  869. c1e17a9 2018-04-08  sync README.pod with latest from WRT.pm
  870. 7d80dd5 2018-04-08  kill recent_month(), month_before(), and feed_print_latest()
  871. 143613f 2018-04-08  get_date_entries_by_depth()
  872. 4f9a71b 2018-04-06  (tag: v4.3.0) switch example config from p1k3.com to example.com urls
  873. a5e5f21 2018-04-06  render feed for last n day entries instead of for current month
  874. 77d90d2 2018-02-10  (tag: v4.2.2) fix --config option to wrt-display &#38;amp; wrt-render-all
  875. &lt;/code&gt;&lt;/pre&gt;
  876.  
  877. &lt;p&gt;This is better.  In the format:&lt;/p&gt;
  878.  
  879. &lt;ul&gt;
  880. &lt;li&gt;&lt;code&gt;%h&lt;/code&gt; is hash&lt;/li&gt;
  881. &lt;li&gt;&lt;code&gt;%ad&lt;/code&gt; is author date (shorted by the &lt;code&gt;--date=short&lt;/code&gt; option)&lt;/li&gt;
  882. &lt;li&gt;&lt;code&gt;%d&lt;/code&gt; is any ref pointing at that commit, which will include tags (it&#38;rsquo;s
  883. &lt;code&gt;%d&lt;/code&gt; by analogy to the &lt;code&gt;--decorate&lt;/code&gt; option)&lt;/li&gt;
  884. &lt;li&gt;&lt;code&gt;%s&lt;/code&gt; is subject&lt;/li&gt;
  885. &lt;/ul&gt;
  886.  
  887.  
  888. &lt;p&gt;Not super obvious, but it could be worse.&lt;/p&gt;
  889.  
  890. &lt;p class=&#34;centerpiece&#34;&gt; ✺ &lt;/p&gt;
  891.  
  892.  
  893. &lt;p&gt;The other thing this did for me is re-cement the notion of what references
  894. &lt;em&gt;are&lt;/em&gt;.  If you look in a repo&#38;rsquo;s &lt;code&gt;.git/refs/&lt;/code&gt; directory, you&#38;rsquo;ll see something
  895. laid out roughly like the following:&lt;/p&gt;
  896.  
  897. &lt;pre&gt;&lt;code&gt;$ tree .git/refs
  898. .git/refs
  899. ├── heads
  900. │   ├── jsonfeed
  901. │   ├── master
  902. │   └── subcommands
  903. ├── remotes
  904. │   ├── origin
  905. │   │   ├── HEAD
  906. │   │   ├── master
  907. │   │   └── subcommands
  908. │   └── p1k3_server
  909. │       ├── master
  910. │       ├── tag_list
  911. │       └── topiclinks
  912. └── tags
  913.    ├── v4.2.0
  914.    ├── v4.2.2
  915.    ├── v4.3.0
  916.    └── v5.0.0-alpha
  917. &lt;/code&gt;&lt;/pre&gt;
  918.  
  919. &lt;p&gt;If you look at the contents of any of these files, you&#38;rsquo;ll see that they just
  920. contain some hashes which point to objects.&lt;/p&gt;
  921.  
  922. &lt;pre&gt;&lt;code&gt;$ cat .git/refs/heads/master
  923. 99a584fb080e1f295d9522b684ab05f80f60918e
  924.  
  925. $ cat .git/refs/remotes/origin/master
  926. 99a584fb080e1f295d9522b684ab05f80f60918e
  927.  
  928. $ cat .git/refs/tags/v4.3.0
  929. 0ad7dbe5249aff2eab05e8c7f6d8d73c41fc7323
  930. &lt;/code&gt;&lt;/pre&gt;
  931.  
  932. &lt;p&gt;Because git actually has &lt;em&gt;two&lt;/em&gt; kinds of tags, you might have some tags that
  933. don&#38;rsquo;t show up in that directory tree.  Lightweight tags are, apparently, just
  934. commit objects.  I&#38;rsquo;m not totally sure how this works, but you can get a better
  935. idea of it with:&lt;/p&gt;
  936.  
  937. &lt;pre&gt;&lt;code&gt;$ git tag -l --format=&#34;%(objectname:short) %(refname)%09%(objecttype)&#34;
  938. 2c789d3 refs/tags/2007-03-10    commit
  939. a1f5c23 refs/tags/2007-06-20    commit
  940. 88a445e refs/tags/2007-06-21    commit
  941. 17beaef refs/tags/2007-07-07    commit
  942. dac8154 refs/tags/2007-08-08    commit
  943. 221d1a3 refs/tags/2007-09-11    commit
  944. 54016b2 refs/tags/2007-10-04    commit
  945. 5437005 refs/tags/2008-01-11    commit
  946. 3c76277 refs/tags/2008-01-28    commit
  947. 20551c0 refs/tags/2008-03-15    commit
  948. 4bd68fe refs/tags/v4.2.0        tag
  949. 84948fa refs/tags/v4.2.2        tag
  950. 0ad7dbe refs/tags/v4.3.0        tag
  951. 199f704 refs/tags/v5.0.0-alpha  tag
  952. &lt;/code&gt;&lt;/pre&gt;
  953.  
  954. &lt;p&gt;The ones with an object type of &#38;ldquo;commit&#38;rdquo; are lightweight tags, the others are
  955. annotated.&lt;/p&gt;
  956.  
  957. &lt;p&gt;Useful docs:&lt;/p&gt;
  958.  
  959. &lt;ul&gt;
  960. &lt;li&gt;&lt;a href=&#34;https://git-scm.com/book/en/v2/Git-Basics-Tagging&#34;&gt;Git Basics - Tagging&lt;/a&gt;&lt;/li&gt;
  961. &lt;li&gt;&lt;a href=&#34;https://git-scm.com/book/en/v2/Git-Internals-Git-References&#34;&gt;Git Internals - Git References&lt;/a&gt;&lt;/li&gt;
  962. &lt;/ul&gt;
  963.  
  964.  
  965. &lt;p&gt;I should probably invest more time in understanding the contents of a &lt;code&gt;.git&lt;/code&gt;.&lt;/p&gt;
  966.  
  967.  
  968. &lt;p class=&#34;datelink&#34;&gt;
  969. &lt;a href=&#34;https://p1k3.com/topics/git&#34;&gt;git&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/wrt&#34;&gt;wrt&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  970. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  971. &lt;a href=&#34;https://p1k3.com/2018/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  972. &lt;a href=&#34;https://p1k3.com/2018/4/19/&#34; title=&#34;19&#34;&gt;19&lt;/a&gt;
  973. &lt;/p&gt;</content><updated>2018-04-20T22:23:09Z</updated></entry><entry><title>Sunday, April 15 - watching: the west wing</title><link href="https://p1k3.com/2018/4/15"/><id>https://p1k3.com/2018/4/15</id><content type="html">&lt;h1&gt;Sunday, April 15&lt;/h1&gt;
  974.  
  975. &lt;h2&gt;watching: the west wing&lt;/h2&gt;
  976.  
  977. &lt;p&gt;(Spoilers follow.)&lt;/p&gt;
  978.  
  979. &lt;p&gt;I didn&#38;rsquo;t watch a whole lot of TV during the years from 2002 to about 2014.  I
  980. mean, not &lt;em&gt;no TV&lt;/em&gt;, just not most of it.  Here and there I lived with roommates
  981. who had cable, some kind of streaming subscription, or the ambition to pirate
  982. stuff.  I eventually saw most of &lt;em&gt;The Office&lt;/em&gt; (US), &lt;em&gt;Arrested Development&lt;/em&gt;,
  983. and a couple seasons of &lt;em&gt;Community&lt;/em&gt;.  A bunch of &lt;em&gt;Daily Show&lt;/em&gt; episodes, towards
  984. the end of the Bush years.  A season or three of &lt;em&gt;Archer&lt;/em&gt;.  I know there was
  985. other stuff, soaked up during family get-togethers and hotel-room stays, but
  986. those shows are everything that comes to mind:  Not exactly a comprehensive
  987. survey of the form.&lt;/p&gt;
  988.  
  989. &lt;p&gt;And then I bought a lightly-used Roku off a friend and got a Netflix streaming
  990. subscription, then subsequently moved in with a girlfriend who owns a bunch of
  991. DVDs.  We&#38;rsquo;ve watched what &lt;em&gt;feels&lt;/em&gt; like a lot of TV shows since then, but aside
  992. from &lt;em&gt;Parks &#38;amp; Rec&lt;/em&gt; (which I love without reservation), I&#38;rsquo;m not much more caught
  993. up than I was before.  Mostly it turns out I&#38;rsquo;m just more in tune with how my
  994. adult self feels about stuff I originally watched in the 1980s and 90s, because
  995. we&#38;rsquo;ve slowly been working our way through most of &lt;em&gt;Star Trek&lt;/em&gt;, &lt;em&gt;The X-Files&lt;/em&gt;,
  996. &lt;em&gt;Babylon 5&lt;/em&gt;, and &lt;em&gt;Cheers&lt;/em&gt;.&lt;/p&gt;
  997.  
  998. &lt;p&gt;I probably don&#38;rsquo;t have a whole lot of utility as a TV critic.&lt;/p&gt;
  999.  
  1000. &lt;p class=&#34;centerpiece&#34;&gt; ✶ &lt;/p&gt;
  1001.  
  1002.  
  1003. &lt;p&gt;&lt;em&gt;The West Wing&lt;/em&gt; is a recent addition to the rotation, probably because Netflix
  1004. put it on the screen enough times and I clicked.  It&#38;rsquo;s a show I watched during
  1005. at least its first couple of seasons, enough to pick up on the characters and
  1006. remember a bunch of plot points, but beyond that memory is hazy.  I remember my
  1007. (conservative Republican) parents being into it.&lt;/p&gt;
  1008.  
  1009. &lt;p&gt;We&#38;rsquo;re a couple of seasons in now, more or less.  This can be a weird and kind
  1010. of depressing show to experience in the deepening gloom of 2018, in my late
  1011. 30s, after 15 years or so of watching the American state do the things it does.
  1012. It was probably a weird thing to watch in its own time too, with Bush in office
  1013. for most of its run and its whole premise an ever-more-obvious counterfactual.&lt;/p&gt;
  1014.  
  1015. &lt;p&gt;Some of the plot material is overtly bad.  There&#38;rsquo;s this whole thing where Sam
  1016. Seaborn sleeps with an escort he doesn&#38;rsquo;t know is an escort in like the first
  1017. episode and it keeps coming back up, and though in the end it&#38;rsquo;s not as badly
  1018. handled as it could be and I&#38;rsquo;d guess at the time &#38;ldquo;sex workers are just people
  1019. and your judginess is bullshit&#38;rdquo; was probably intended as a brave moral stance
  1020. for late turn-of-the-century network TV, it&#38;rsquo;s also full of moments where I
  1021. almost decided to stop watching the show as a whole.&lt;/p&gt;
  1022.  
  1023. &lt;p&gt;The dialog is hooky and clever, but also almost a parody of itself from the
  1024. very beginning (like the endless walk-and-talk sequences that the show pauses
  1025. to make fun of itself for before the first season is up) and occasionally veers
  1026. into these swelling-music-and-earnest-sentiment moments that don&#38;rsquo;t really earn
  1027. their implied significance.  Some of the stuff I remembered as a really great
  1028. fuck you to the Bad Guys of the time now reads as a little bit cheap and
  1029. pandering.  (This one sequence, for example, where the President humiliates an
  1030. obvious stand-in for &lt;a href=&#34;https://en.wikipedia.org/wiki/Laura_Schlessinger&#34;&gt;Laura Schlessinger&lt;/a&gt; in what is apparently
  1031. actually a lecture lifted from an e-mail forward.  Not that Dr. Laura herself
  1032. wasn&#38;rsquo;t a frankly evil force in the culture just then.)&lt;/p&gt;
  1033.  
  1034. &lt;p&gt;It&#38;rsquo;s also a narrative that can&#38;rsquo;t quite decide whether politics are inherently
  1035. fucked and no progress is possible, or whether deep down we&#38;rsquo;re all on the same
  1036. team here and we can rise above our etc.  The left-ish but also kind of
  1037. pragmatically neoliberal Democrats who make up the Good Guys are constantly
  1038. shooting themselves in the foot by compromising some belief to perceived
  1039. political necessity, which is frustrating to watch, especially when the show
  1040. goes out of its way to demonstrate that they&#38;rsquo;d do better if they just did what
  1041. they knew was right, but then reverts to the same pattern an episode later.
  1042. Things have a tendency to get kind of patronizing and American-exceptionalist
  1043. whenever a foreign policy plot comes up.&lt;/p&gt;
  1044.  
  1045. &lt;p&gt;There&#38;rsquo;s a lot of other stuff I&#38;rsquo;m not sure about.  I mean, I&#38;rsquo;m not especially
  1046. sure how I feel about the entire project of American government at this stage
  1047. of history, which complicates how I feel about these kinds of stories.  But
  1048. whatever.  All that said, it&#38;rsquo;s a good show.  The cast are amazing.  The writing
  1049. is frequently cornball and sometimes juvenile but also really entertaining.
  1050. It&#38;rsquo;s often hopeful in a way that I have mostly lost track of how to be.  It
  1051. makes you want to work with good people on something important, and that
  1052. feeling is most of the reason that I&#38;rsquo;m such a sucker for workplace drama stuff
  1053. like this.&lt;/p&gt;
  1054.  
  1055.  
  1056. &lt;p class=&#34;datelink&#34;&gt;
  1057. &lt;a href=&#34;https://p1k3.com/topics/politics&#34;&gt;politics&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/tv&#34;&gt;tv&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1058. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1059. &lt;a href=&#34;https://p1k3.com/2018/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  1060. &lt;a href=&#34;https://p1k3.com/2018/4/15/&#34; title=&#34;15&#34;&gt;15&lt;/a&gt;
  1061. &lt;/p&gt;</content><updated>2018-04-21T21:44:39Z</updated></entry><entry><title>Monday, April  9 - App::WRT v4.3.0: schwartzian transforms, long-term projects</title><link href="https://p1k3.com/2018/4/9"/><id>https://p1k3.com/2018/4/9</id><content type="html">&lt;h1&gt;Monday, April  9&lt;/h1&gt;
  1062.  
  1063. &lt;h2&gt;App::WRT v4.3.0: schwartzian transforms, long-term projects&lt;/h2&gt;
  1064.  
  1065. &lt;p&gt;I should have been doing other things, but I spent a couple of hours over the
  1066. weekend making &lt;a href=&#34;https://github.com/brennen/wrt&#34;&gt;wrt&lt;/a&gt;, the static site generator I use for p1k3.com, a
  1067. bit more capable.&lt;/p&gt;
  1068.  
  1069. &lt;p&gt;I decided I wanted to make the feed wrt generates (&lt;a href=&#34;/feed&#34;&gt;like this one&lt;/a&gt;)
  1070. contain the most recent &lt;em&gt;n&lt;/em&gt; entries instead of just the entries for the most
  1071. recent month.  For example, instead of just rendering a feed with the entries
  1072. for this April, I wanted it to contain the last 30 days for which I&#38;rsquo;d written
  1073. something.&lt;/p&gt;
  1074.  
  1075. &lt;p&gt;If wrt entries lived in, say, an SQL database of some sort, this would be just
  1076. a matter of changing a query to get some different ones.  Since they&#38;rsquo;re just
  1077. flatfiles in a directory tree without a lot of abstractions around them, it was
  1078. a bit trickier but also more interesting.&lt;/p&gt;
  1079.  
  1080. &lt;p&gt;Simplified a lot, the wrt repository for this site looks something like this:&lt;/p&gt;
  1081.  
  1082. &lt;pre&gt;&lt;code&gt;/home/brennen/p1k3/
  1083. ▾ archives/
  1084.  ▾ 2018/
  1085.    ▸ 1/
  1086.    ▸ 2/
  1087.    ▸ 3/
  1088.    ▾ 4/
  1089.      ▸ 5/
  1090.      ▸ 8/
  1091.      ▸ 9/
  1092. &lt;/code&gt;&lt;/pre&gt;
  1093.  
  1094. &lt;p&gt;The basic idea is that a file 3 deep in the hierarchy of numerical
  1095. entries&#38;mdash;like &lt;code&gt;2018/4/9&lt;/code&gt; for this entry&#38;mdash;represents a day, inside a month, inside a
  1096. year.  If I wanted to put the last 30 entries into the feed, I&#38;rsquo;d need to
  1097. flatten this structure out into a sorted list.&lt;/p&gt;
  1098.  
  1099. &lt;p&gt;I remembered that I was already getting a list of all the entries for the &lt;code&gt;wrt
  1100. render-all&lt;/code&gt; script that renders the whole site at once, so it seemed simple
  1101. enough to reuse that list, but there was a catch:  Doing a simple reversed
  1102. &lt;code&gt;sort&lt;/code&gt; on that list gave me results like these:&lt;/p&gt;
  1103.  
  1104. &lt;pre&gt;&lt;code&gt;...
  1105. 2016/10/16
  1106. 2016/10/14
  1107. 2016/10/12
  1108. 2016/10
  1109. 2016/1/5
  1110. 2016/1/3
  1111. 2016/1/28
  1112. ...
  1113. &lt;/code&gt;&lt;/pre&gt;
  1114.  
  1115. &lt;p&gt;&#38;hellip;because in a string comparison, &lt;code&gt;2018/10&lt;/code&gt; follows &lt;code&gt;2018/1&lt;/code&gt;, not &lt;code&gt;2018/9&lt;/code&gt;.&lt;/p&gt;
  1116.  
  1117. &lt;p&gt;If I&#38;rsquo;d decided to pad the months with 0s, like &lt;code&gt;2018/01&lt;/code&gt;, a while back, this
  1118. would have been less of a problem, but it seemed pretty solvable.  I just
  1119. needed to convert the entry paths to a different format and sort by that.&lt;/p&gt;
  1120.  
  1121. &lt;p&gt;I wound up reading the Wikipedia entry for the &lt;a href=&#34;https://en.wikipedia.org/wiki/Schwartzian_transform&#34;&gt;Schwartzian transform&lt;/a&gt;,
  1122. and writing something like the following:&lt;/p&gt;
  1123.  
  1124. &lt;pre&gt;&lt;code&gt;sub get_date_entries_by_depth {
  1125.  my $self = shift;
  1126.  my ($depth) = @_;
  1127.  
  1128.  # Match given $depth:
  1129.  my @particles;
  1130.  for (my $i = 0; $i &#38;lt; $depth; $i++) {
  1131.    push @particles, &#39;\d+&#39;;
  1132.  }
  1133.  my $pattern = join &#39;/&#39;, @particles;
  1134.  
  1135.  # Sort matching entries by sortable_date_from_entry()
  1136.  return map  { $_-&#38;gt;[0] }
  1137.         sort { $a-&#38;gt;[1] cmp $b-&#38;gt;[1] }
  1138.         map  { [$_, sortable_date_from_entry($_)] }
  1139.         grep m{^ $pattern $}x, $self-&#38;gt;get_all_source_files();
  1140. }
  1141.  
  1142. sub sortable_date_from_entry {
  1143.  my ($entry) = @_;
  1144.  my @parts = map { sprintf(&#34;%4d&#34;, $_) } split &#39;/&#39;, $entry;
  1145.  return join &#39;&#39;, @parts;
  1146. }
  1147. &lt;/code&gt;&lt;/pre&gt;
  1148.  
  1149. &lt;p&gt;First, this builds a regular expression to match entries that are at a
  1150. certain depth in the hierarchy (1 is a year, 2 is a month, 3 is a day).&lt;/p&gt;
  1151.  
  1152. &lt;p&gt;Then it:&lt;/p&gt;
  1153.  
  1154. &lt;ol&gt;
  1155. &lt;li&gt;&lt;code&gt;grep&lt;/code&gt;s the list returned by &lt;code&gt;get_all_source_files()&lt;/code&gt; for entries matching
  1156. the pattern.&lt;/li&gt;
  1157. &lt;li&gt;&lt;code&gt;map&lt;/code&gt;s the matching entries to a list of two-element arrays where the 0th
  1158. element is the original path to the entry (&lt;code&gt;2018/4/9&lt;/code&gt;), and the 1st element
  1159. is a format returned by &lt;code&gt;sortable_date_from_entry()&lt;/code&gt; that will sort
  1160. correctly using string comparison (&lt;code&gt;201800040009&lt;/code&gt;).&lt;/li&gt;
  1161. &lt;li&gt;Sorts the overall list by comparing the formatted values.&lt;/li&gt;
  1162. &lt;li&gt;Re-&lt;code&gt;map&lt;/code&gt;s the list to the original format stored in the 0th element.&lt;/li&gt;
  1163. &lt;/ol&gt;
  1164.  
  1165.  
  1166. &lt;p&gt;So now, in order to get the list of entries to turn into a feed, I can just
  1167. call:&lt;/p&gt;
  1168.  
  1169. &lt;pre&gt;&lt;code&gt;my @entries = reverse $self-&#38;gt;get_date_entries_by_depth(3);
  1170. &lt;/code&gt;&lt;/pre&gt;
  1171.  
  1172. &lt;p&gt;&#38;hellip;and take the first 30 or so.&lt;/p&gt;
  1173.  
  1174. &lt;p class=&#34;centerpiece&#34;&gt; ❁ &lt;/p&gt;
  1175.  
  1176.  
  1177. &lt;p&gt;Once I had the feed done, I decided to apply the same idea to the set of
  1178. entries on the front page, and once I&#38;rsquo;d done &lt;em&gt;that&lt;/em&gt; I realized that I could
  1179. also use the same sorted lists to generate next/previous links for any given
  1180. node in the date tree.&lt;/p&gt;
  1181.  
  1182. &lt;p&gt;This was an interesting way to kill some time, both because I revisited an
  1183. algorithm I&#38;rsquo;d forgotten about, and because every time I hack on a project like
  1184. this I&#38;rsquo;m in a dialog with basic decisions I made before I knew how to write
  1185. software at all.  And maybe, by the same token, looking with fresh eyes at
  1186. norms that I&#38;rsquo;d take for granted in any more modern context.  &lt;code&gt;wrt&lt;/code&gt; isn&#38;rsquo;t a good
  1187. piece of software by any contemporary standard, and the approach it represents
  1188. isn&#38;rsquo;t one I&#38;rsquo;d use for anything bigger than a trivial shell script at my day
  1189. job, but there&#38;rsquo;s a curious durability to it all the same.&lt;/p&gt;
  1190.  
  1191. &lt;p&gt;Every few years I revisit some facet of this tiny, mundane tool and apply a bit
  1192. of understanding I lacked when it was first written, and some structure comes a
  1193. little clearer that lives in the space between my ignorance at 20 and my
  1194. experience, such as it is, at whatever age I&#38;rsquo;ve reached.&lt;/p&gt;
  1195.  
  1196. &lt;p&gt;Everyone should have a few long-term projects, however small and unremarkable.&lt;/p&gt;
  1197.  
  1198. &lt;ul&gt;
  1199. &lt;li&gt;&lt;a href=&#34;https://metacpan.org/release/App-WRT&#34;&gt;App::WRT on CPAN&lt;/a&gt;&lt;/li&gt;
  1200. &lt;li&gt;&lt;a href=&#34;https://github.com/brennen/wrt&#34;&gt;wrt on GitHub&lt;/a&gt;&lt;/li&gt;
  1201. &lt;/ul&gt;
  1202.  
  1203.  
  1204.  
  1205. &lt;p class=&#34;datelink&#34;&gt;
  1206. &lt;a href=&#34;https://p1k3.com/topics/perl&#34;&gt;perl&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/wrt&#34;&gt;wrt&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1207. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1208. &lt;a href=&#34;https://p1k3.com/2018/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  1209. &lt;a href=&#34;https://p1k3.com/2018/4/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt;
  1210. &lt;/p&gt;</content><updated>2018-04-12T03:08:31Z</updated></entry><entry><title>Sunday, April  8 - another lawn and garden report</title><link href="https://p1k3.com/2018/4/8"/><id>https://p1k3.com/2018/4/8</id><content type="html">&lt;h1&gt;Sunday, April  8&lt;/h1&gt;
  1211.  
  1212. &lt;h2&gt;another lawn and garden report&lt;/h2&gt;
  1213.  
  1214. &lt;p&gt;Up in the mountains it&#38;rsquo;s windy, the trees whipping around and the sky changing
  1215. fast.  Down below it feels calm, sunny.  You can see the wind in the clouds
  1216. though.  Pay attention for a second and you can see the layers parallaxing, the
  1217. edges curling through fragmented permutations.  I take the recycling out and
  1218. sit on the front step with my laptop, listening to the little brown birds in
  1219. the trees.  There was snow on the ground when we woke up yesterday morning, but
  1220. I walked through the front gate just now and heard a snake rustle its way
  1221. unmistakably through the weedy vines that clog the front fence:  The snake has
  1222. much more bearing on the subjective seasonality of things than snow.&lt;/p&gt;
  1223.  
  1224.  
  1225. &lt;p class=&#34;datelink&#34;&gt;
  1226. &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/garden&#34;&gt;garden&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/lawn-and-garden&#34;&gt;lawn-and-garden&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1227. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1228. &lt;a href=&#34;https://p1k3.com/2018/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  1229. &lt;a href=&#34;https://p1k3.com/2018/4/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt;
  1230. &lt;/p&gt;</content><updated>2018-05-14T03:55:09Z</updated></entry><entry><title>thursday, april  5</title><link href="https://p1k3.com/2018/4/5"/><id>https://p1k3.com/2018/4/5</id><content type="html">&lt;h1&gt;thursday, april  5&lt;/h1&gt;
  1231.  
  1232. &lt;p&gt;i think the special tragedy of&lt;br /&gt;
  1233. humans, in the long term,&lt;br /&gt;
  1234. might not so much be&lt;br /&gt;
  1235. that we die  &#38;mdash;  &lt;i&gt;that&lt;/i&gt; we&lt;br /&gt;
  1236. share with all things, after all&lt;/p&gt;
  1237.  
  1238. &lt;p&gt;but rather that we destroy so&lt;br /&gt;
  1239. much with all the considerable&lt;br /&gt;
  1240. powers granted by&lt;br /&gt;
  1241. our long biological heritage  &#38;mdash; &lt;br /&gt;
  1242. and among those powers&lt;br /&gt;
  1243. is just sufficient perception&lt;br /&gt;
  1244. to know ourselves as destroyers&lt;/p&gt;
  1245.  
  1246. &lt;p&gt;an algal bloom, an asteroid, an exploding sun&lt;br /&gt;
  1247. &#38;mdash;  all these destroy, i assume,&lt;br /&gt;
  1248. without reflection, without memory&lt;/p&gt;
  1249.  
  1250. &lt;p&gt;but we are something else:&lt;br /&gt;
  1251. we are capable of apprehending that&lt;br /&gt;
  1252. we are machines for murdering the world&lt;br /&gt;
  1253. we bend all our faculties&lt;br /&gt;
  1254. to slaughter, to obliteration,&lt;br /&gt;
  1255. to consumption beyond any&lt;br /&gt;
  1256. reasonable need  &#38;mdash;  and among&lt;br /&gt;
  1257. those faculties is the&lt;br /&gt;
  1258. ability to realize, at intervals&lt;br /&gt;
  1259. that this is true&lt;/p&gt;
  1260.  
  1261. &lt;p&gt;to &lt;i&gt;love&lt;/i&gt; what our aggregate&lt;br /&gt;
  1262. undertaking is always and&lt;br /&gt;
  1263. inescapable to &lt;i&gt;ruin&lt;/i&gt;:&lt;br /&gt;
  1264. the animals, the land,&lt;br /&gt;
  1265. the air and water&lt;br /&gt;
  1266. our very selves&lt;br /&gt;
  1267. all of us&lt;/p&gt;
  1268.  
  1269. &lt;p&gt;we&#39;re a fire burning&lt;br /&gt;
  1270. and damned to know ourselves&lt;br /&gt;
  1271. as flames.&lt;/p&gt;
  1272.  
  1273. &lt;p class=&#34;datelink&#34;&gt;
  1274. &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1275. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1276. &lt;a href=&#34;https://p1k3.com/2018/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  1277. &lt;a href=&#34;https://p1k3.com/2018/4/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt;
  1278. &lt;/p&gt;</content><updated>2018-04-06T05:07:00Z</updated></entry><entry><title>Friday, March 30</title><link href="https://p1k3.com/2018/3/30"/><id>https://p1k3.com/2018/3/30</id><content type="html">&lt;h1&gt;Friday, March 30&lt;/h1&gt;
  1279.  
  1280. &lt;p&gt;There are plenty of arguments you can make for long distance train transit, but
  1281. I think maybe the most compelling I know of is the sensation of drinking beer
  1282. at your own table in the bar car, with power for your laptop, while you roll
  1283. along through the night at interstate speeds, totally unconcerned with
  1284. &lt;em&gt;directing&lt;/em&gt; anything.&lt;/p&gt;
  1285.  
  1286. &lt;p class=&#34;centerpiece&#34;&gt; ✯ &lt;/p&gt;
  1287.  
  1288.  
  1289. &lt;p&gt;The 10 or 12 year old playing UNO with his dad a table over is quietly singing
  1290. the lyrics to Culture Club&#38;rsquo;s &#38;ldquo;Chameleon&#38;rdquo;.&lt;/p&gt;
  1291.  
  1292. &lt;p class=&#34;centerpiece&#34;&gt; ✶ &lt;/p&gt;
  1293.  
  1294.  
  1295. &lt;p&gt;It&#38;rsquo;s Good Friday, for another half hour at least.  Like every year I&#38;rsquo;m not in
  1296. church on this night, I think of the Tenebrae service all the same.&lt;/p&gt;
  1297.  
  1298.  
  1299. &lt;p class=&#34;datelink&#34;&gt;
  1300. &lt;a href=&#34;https://p1k3.com/topics/trains&#34;&gt;trains&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1301. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1302. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1303. &lt;a href=&#34;https://p1k3.com/2018/3/30/&#34; title=&#34;30&#34;&gt;30&lt;/a&gt;
  1304. &lt;/p&gt;</content><updated>2018-04-06T05:07:00Z</updated></entry><entry><title>Tuesday, March 27 - some guesses</title><link href="https://p1k3.com/2018/3/27"/><id>https://p1k3.com/2018/3/27</id><content type="html">&lt;h1&gt;Tuesday, March 27&lt;/h1&gt;
  1305.  
  1306. &lt;h2&gt;some guesses&lt;/h2&gt;
  1307.  
  1308. &lt;p&gt;As an exercise in checking some intuitions, hopes, fears, etc., here are
  1309. some statements I&#39;d like to re-evaluate 5 and 10 years from now, if I&#39;m around
  1310. to do the evaluating.&lt;/p&gt;
  1311.  
  1312. &lt;p&gt;This is just me being depressing; it&#39;s definitely not a coherent thesis
  1313. about the future.  You should skip reading it.  If you&#39;re looking for
  1314. depressing material about the future that might actually be worth your time, &lt;a
  1315. href=&#34;http://www.antipope.org/charlie/&#34;&gt;Charlie Stross has a blog&lt;/a&gt;.  (Or if
  1316. you really, &lt;i&gt;really&lt;/i&gt; want to feel bad, there&#39;s always &lt;a
  1317. href=&#34;http://www.rifters.com/crawl/&#34;&gt;Peter Watts&lt;/a&gt;.)&lt;/p&gt;
  1318.  
  1319. &lt;p class=&#34;centerpiece&#34;&gt; ✵ &lt;/p&gt;
  1320.  
  1321. &lt;p&gt;1. Cryptocurrency (at least as formulated in 2018) is a scam, a nascent
  1322. energy use disaster, and a probable driver of inequality in an already
  1323. dangerously inequitable system.  Blockchain-adjacent techniques will
  1324. demonstrate various kinds of utility, but if everybody&#39;s still talking about
  1325. &#34;crypto&#34; in a decade this utility will probably be overshadowed by the damage
  1326. Bitcoin and all its children have wrought.  I will still be irritated that
  1327. &#34;crypto&#34; somehow became shorthand for &#34;cryptocurrency&#34;.&lt;/p&gt;
  1328.  
  1329. &lt;p&gt;2. Early 2018 is seeing stronger and more generalized public Facebook
  1330. backlash than we&#39;ve gotten before.  (The flashpoint at the moment is the whole
  1331. Cambridge Analytica thing.) Here&#39;s my prediction: Facebook isn&#39;t going
  1332. anywhere, but even if it does suffer reversals, the &lt;i&gt;model&lt;/i&gt; it represents
  1333. will only have increased its actual dominance by 2023 or 2028.&lt;/p&gt;
  1334.  
  1335. &lt;p&gt;2a. The movement to rebuild a more decentralized, federated, &#38;amp;
  1336. protocol-driven network outside of surveillance capitalism isn&#39;t going away.
  1337. It will gain adherents and build more robust infrastructure.  It will also
  1338. remain marginal, ideologically driven (as opposed to widely adopted on
  1339. practical grounds), and incapable of mounting any &lt;i&gt;fundamental&lt;/i&gt; challenge
  1340. to a status quo dominated by megacorporations with control over most of the
  1341. devices, most of the data, and most of the intensively-surveilled public and
  1342. private sphere.  Neo-Luddite tendencies will begin to more noticeably produce
  1343. isolationist communities in the &lt;del&gt;real&lt;/del&gt; physical world.&lt;/p&gt;
  1344.  
  1345. &lt;p&gt;2b. US legislation affecting social media, networks, software, and privacy
  1346. will have further entrenched, rather than limited, the power dynamic described
  1347. in 2a.  EU legislation on privacy won&#39;t prove &lt;i&gt;entirely&lt;/i&gt; useless at
  1348. protecting users, but mostly it&#39;ll just add some bureaucratic overhead without
  1349. being drastic enough to really hamper actors at the scale of Facebook, Google,
  1350. and Amazon.&lt;/p&gt;
  1351.  
  1352. &lt;p&gt;3. Desktop computing won&#39;t be dead, but it&#39;ll be widely viewed as obsolete
  1353. and on its way out.  Physical keyboards will be increasingly seen as an
  1354. affectation even for professionals.  It will be getting hard to even buy a
  1355. mouse.&lt;/p&gt;
  1356.  
  1357. &lt;p&gt;4. Always-on cameras and microphones will be totally normalized across every
  1358. family of widely-used consumer computing device, and almost no public space in
  1359. the developed world will be free of permanent video and audio logging to cloud
  1360. services.&lt;/p&gt;
  1361.  
  1362. &lt;p&gt;5. Mass shootings will continue at more or less the same pace in the US, if
  1363. not increase substantially.  Aside from relatively minor concessions like
  1364. banning bump stocks, no very effective restrictions on gun ownership will make
  1365. it into federal law.  Traditional gun culture&#39;s adherence will nevertheless
  1366. have declined substantially, and an escalation in far-right racist
  1367. power-fantasy gun culture among non-rural white people who have never hunted or
  1368. gone sport shooting a day in their lives probably won&#39;t be enough to make up
  1369. for it numerically.&lt;/p&gt;
  1370.  
  1371. &lt;p&gt;6. Driverless cars will be happening for real, and like Uber or Lyft,
  1372. they&#39;ll have serious practical advantages for prosperous (sub)urbanites and the
  1373. professional class.  They&#39;ll also gut public transit systems, increase
  1374. congestion and passenger miles traveled, further marginalize poor people and
  1375. &#34;gig economy&#34; laborers, and double as data sponges for various megacorps.
  1376. Truckers will be looking real worried.&lt;/p&gt;
  1377.  
  1378. &lt;p&gt;6a. There will still be no genuinely serious indications of a shift in the
  1379. United States away from car-centric development patterns and lifestyles.&lt;/p&gt;
  1380.  
  1381. &lt;p&gt;7. It&#39;ll become much easier to tell that skilled tech worker leverage
  1382. against employers is going to decrease while automation ramps up and software
  1383. power further consolidates.  People in the industry won&#39;t be quite as nervous
  1384. as truckers, but they&#39;ll be getting there.&lt;/p&gt;
  1385.  
  1386. &lt;p&gt;7a. The window of available time for people in software to unionize with any
  1387. effective power will obviously be narrowing.  People in software will not have
  1388. unionized at any scale and no credible efforts will be underway.&lt;/p&gt;
  1389.  
  1390. &lt;p&gt;8. It will no longer be possible to trust any video, photo, or audio
  1391. recording without cryptographically verified signatures from a reputable party.
  1392. It&#39;ll be getting pretty easy to fake a lot of stuff in realtime.&lt;/p&gt;
  1393.  
  1394. &lt;p&gt;8a. Fully machine-generated music will really start to take off.&lt;/p&gt;
  1395.  
  1396. &lt;p&gt;9. In five years, weed will be well on its way to legal nationwide.  In ten,
  1397. it&#39;ll pretty much be there, or at least effectively decriminalized.  There&#39;ll
  1398. be some real casualties because lots of people are going to smoke a
  1399. mind-destroying volume of concentrated THC all day long every day.  On balance,
  1400. it&#39;ll still probably be an improvement in public health.  It will not, despite
  1401. every stoned conversation you&#39;ve ever had about legalization, fix the problems
  1402. of mass incarceration.&lt;/p&gt;
  1403.  
  1404. &lt;p&gt;10. No meaningful reforms of policing in America will have gained any
  1405. traction.  When I go to look at this list again, I will be able to recall one
  1406. or more killings of an unarmed black civilian by law enforcement within the
  1407. previous 2-3 months.&lt;/p&gt;
  1408.  
  1409. &lt;p&gt;11. Various socialisms are going to become increasingly mainstream positions
  1410. in the US.  As an unfortunate corollary, the actual no-shit authoritarian left
  1411. will be a recognizable factor in political life.&lt;/p&gt;
  1412.  
  1413. &lt;p&gt;12. We&#39;ll have permanently lost a few more large mammal species, but the
  1414. really telling numbers will be increasingly comprehensive evidence of massive
  1415. decline in absolute numbers of birds, insects, fish, amphibians, etc.&lt;/p&gt;
  1416.  
  1417. &lt;p class=&#34;datelink&#34;&gt;
  1418. &lt;a href=&#34;https://p1k3.com/topics/facebook&#34;&gt;facebook&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/panopticon&#34;&gt;panopticon&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1419. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1420. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1421. &lt;a href=&#34;https://p1k3.com/2018/3/27/&#34; title=&#34;27&#34;&gt;27&lt;/a&gt;
  1422. &lt;/p&gt;</content><updated>2018-06-03T06:02:47Z</updated></entry><entry><title>monday, march 26</title><link href="https://p1k3.com/2018/3/26"/><id>https://p1k3.com/2018/3/26</id><content type="html">&lt;h1&gt;monday, march 26&lt;/h1&gt;
  1423.  
  1424. &lt;p&gt;it&#39;s gray all day, somewhere in the 40s fahrenheit&lt;br /&gt;
  1425. rain starts some time in the late afternoon&lt;br /&gt;
  1426. and i&#39;m glad i thought to tarp the rototiller&lt;br /&gt;
  1427. sitting by the fence out in the back yard&lt;br /&gt;
  1428. a friend comes over, his last visit before&lt;br /&gt;
  1429. leaving town; we drink box wine and eat&lt;br /&gt;
  1430. plates of fresh pasta as the rain shifts into&lt;br /&gt;
  1431. the wet, transient snow of a colorado spring&lt;/p&gt;
  1432.  
  1433. &lt;p class=&#34;datelink&#34;&gt;
  1434. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1435. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1436. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1437. &lt;a href=&#34;https://p1k3.com/2018/3/26/&#34; title=&#34;26&#34;&gt;26&lt;/a&gt;
  1438. &lt;/p&gt;</content><updated>2018-03-31T02:22:28Z</updated></entry><entry><title>Wednesday, March 21 - a lawn and garden report</title><link href="https://p1k3.com/2018/3/21"/><id>https://p1k3.com/2018/3/21</id><content type="html">&lt;h1&gt;Wednesday, March 21&lt;/h1&gt;
  1439.  
  1440. &lt;h2&gt;a lawn and garden report&lt;/h2&gt;
  1441.  
  1442. &lt;p&gt;It&#38;rsquo;s suddenly springtime:  Robins on top of the house, fattening rabbits in the
  1443. yard, a dandelion flowering alongside the back walk.  I should have listened to
  1444. my older relatives and planted flats of seeds for the garden a month ago.  It
  1445. may well be past time to get some of the hardier stuff in the dirt.  There was
  1446. a little rain and the lawn is if not exactly green, then also not exactly
  1447. entirely dead.  A couple of last year&#38;rsquo;s brassicas give some evidence of having
  1448. survived the winter, mild and unsatisfying as it was.&lt;/p&gt;
  1449.  
  1450.  
  1451. &lt;p class=&#34;datelink&#34;&gt;
  1452. &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/garden&#34;&gt;garden&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/lawn-and-garden&#34;&gt;lawn-and-garden&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1453. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1454. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1455. &lt;a href=&#34;https://p1k3.com/2018/3/21/&#34; title=&#34;21&#34;&gt;21&lt;/a&gt;
  1456. &lt;/p&gt;</content><updated>2018-05-14T03:55:09Z</updated></entry><entry><title>Sunday, March 18</title><link href="https://p1k3.com/2018/3/18"/><id>https://p1k3.com/2018/3/18</id><content type="html">&lt;h1&gt;Sunday, March 18&lt;/h1&gt;
  1457.  
  1458. &lt;div class=photos&gt;
  1459. &lt;a href=&#34;/files/photos/./2018-03-18/IMG_8066.JPG&#34;&gt;
  1460.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-03-18/Thumbs/IMG_8066.JPG&#34; width=&#34;200&#34;&gt;
  1461. &lt;/a&gt;
  1462. &lt;a href=&#34;/files/photos/./2018-03-18/IMG_8067.JPG&#34;&gt;
  1463.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-03-18/Thumbs/IMG_8067.JPG&#34; width=&#34;200&#34;&gt;
  1464. &lt;/a&gt;
  1465. &lt;a href=&#34;/files/photos/./2018-03-18/IMG_8071.JPG&#34;&gt;
  1466.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-03-18/Thumbs/IMG_8071.JPG&#34; width=&#34;200&#34;&gt;
  1467. &lt;/a&gt;
  1468. &lt;a href=&#34;/files/photos/./2018-03-18/IMG_8075.JPG&#34;&gt;
  1469.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-03-18/Thumbs/IMG_8075.JPG&#34; width=&#34;200&#34;&gt;
  1470. &lt;/a&gt;
  1471. &lt;a href=&#34;/files/photos/./2018-03-18/IMG_8077.JPG&#34;&gt;
  1472.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-03-18/Thumbs/IMG_8077.JPG&#34; width=&#34;200&#34;&gt;
  1473. &lt;/a&gt;
  1474. &lt;/div&gt;
  1475.  
  1476. &lt;p&gt;Cleaning out a handful of pens I haven&#38;rsquo;t used yet this year, before the ink can
  1477. fossilize in them, I&#38;rsquo;m struck by how I&#38;rsquo;ve never learned any way to do this that
  1478. isn&#38;rsquo;t just kind of a mess.&lt;/p&gt;
  1479.  
  1480. &lt;p&gt;I still write quite a bit of the time with fountain pens.  It&#38;rsquo;s impractical in
  1481. a lot of ways, but nothing else quite matches the &lt;em&gt;feel&lt;/em&gt; of it, or the results
  1482. on a page.&lt;/p&gt;
  1483.  
  1484. &lt;p&gt;I tend to carry fine-tipped pigment markers instead (Sakura Pigma Micron,
  1485. Faber-Castell PITT Artist Pens, or a few other brands&#38;mdash;drawing markers you
  1486. can find in most art supply sections for a couple bucks a pop) when I&#38;rsquo;m leaving
  1487. the house or traveling, because they&#38;rsquo;re easy to replace and much harder to get
  1488. ink all over the place with.&lt;/p&gt;
  1489.  
  1490. &lt;p&gt;Last year, though, I spent somewhere north of a hundred dollars on a Pilot
  1491. Vanishing Point, this weird fountain pen with a clicky push-button retractable
  1492. nib.  It&#38;rsquo;s gone almost everywhere with me since then.&lt;/p&gt;
  1493.  
  1494. &lt;p&gt;I&#38;rsquo;ve spent real money on pens before this, but I&#38;rsquo;ve usually regretted it.  The
  1495. last one quit writing after a couple of days and then literally fell apart.
  1496. I&#38;rsquo;ve experimented with a bunch of things, but mostly to date I&#38;rsquo;ve had the best
  1497. luck with cheap, simple plastic-bodied pens like the &lt;a href=&#34;https://www.sheaffer.com/&#34;&gt;Sheaffer&lt;/a&gt; ones
  1498. my mom got in school some time in the 60s or 70s&#38;mdash;a design they probably still
  1499. make some variation on for less than $10.  If you wanted to get into fountain
  1500. pens, you could do a lot worse than picking up one of their &#38;ldquo;calligraphy&#38;rdquo; sets.&lt;/p&gt;
  1501.  
  1502. &lt;p&gt;The Vanishing Point is something else, though.  It writes nicer than just about
  1503. anything I&#38;rsquo;ve ever used (aside from maybe a vintage &lt;a href=&#34;https://en.wikipedia.org/wiki/Parker_51&#34;&gt;Parker 51&lt;/a&gt;), and the
  1504. retractable nib is more than a gimmick.  After a year&#38;rsquo;s pretty hard use, it&#38;rsquo;s
  1505. started leaking some inside the body of the pen, which is kind of a drag, but
  1506. so far it hasn&#38;rsquo;t leaked anywhere else and it feels safe to keep in a bag or a
  1507. pocket.  I like it so much that if it breaks, I&#38;rsquo;ll probably buy another one.
  1508. In fact, the idea that it &lt;em&gt;might&lt;/em&gt; break has me thinking about buying one right
  1509. now, the way I stock up on the notebooks I like, because not having one
  1510. available at any given time fills me with this kind of low-key agitation.&lt;/p&gt;
  1511.  
  1512. &lt;p&gt;Totally worth it, if you are the kind of person who can somehow justify a thing
  1513. as ridiculous as a &lt;em&gt;luxury writing implement&lt;/em&gt; while the world burns and
  1514. computers finish eating the physical act of writing completely.&lt;/p&gt;
  1515.  
  1516. &lt;p class=&#34;centerpiece&#34;&gt; ✦ &lt;/p&gt;
  1517.  
  1518.  
  1519. &lt;p&gt;Writing on paper crossed an interesting threshold for me recently:  I&#38;rsquo;d been
  1520. thinking of it as almost purely an affectation, a thing I persisted in for
  1521. reasons of aesthetic stubbornness and simple physical attachment to the
  1522. ritual&#38;mdash;all well and good, but scarcely justifiable on any practical grounds
  1523. beyond &#38;ldquo;I like it, and writing the way I enjoy writing helps me write at all&#38;rdquo;.&lt;/p&gt;
  1524.  
  1525. &lt;p&gt;Lately, though, I feel a deepening appreciation for any technology that&#38;rsquo;s
  1526. outside the reach of the network and software.  Much like printed paper books
  1527. live outside of Amazon&#38;rsquo;s surveillance machinery, stubbornly resist deletion,
  1528. and can be freely lent out, paper notes are cognitive tools that don&#38;rsquo;t have
  1529. Google Analytics and a sea of inscrutable machine-learning slapped on them.  I
  1530. guess that&#38;rsquo;ll only last until sufficiently high-resolution always-on cameras
  1531. inescapably cover every angle in every building (or come with whatever
  1532. augmented-reality system we all have to use in order to keep participating in
  1533. society) but it&#38;rsquo;s no small thing for the moment.&lt;/p&gt;
  1534.  
  1535.  
  1536. &lt;p class=&#34;datelink&#34;&gt;
  1537. &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/pens&#34;&gt;pens&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1538. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1539. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1540. &lt;a href=&#34;https://p1k3.com/2018/3/18/&#34; title=&#34;18&#34;&gt;18&lt;/a&gt;
  1541. &lt;/p&gt;</content><updated>2018-03-21T05:41:43Z</updated></entry><entry><title>Tuesday, March  6</title><link href="https://p1k3.com/2018/3/6"/><id>https://p1k3.com/2018/3/6</id><content type="html">&lt;h1&gt;Tuesday, March  6&lt;/h1&gt;
  1542.  
  1543. &lt;p&gt;I&#38;rsquo;m in the mountains, dog-sitting for family.  They live in the kind of place
  1544. that&#38;rsquo;s flooded with natural light during the day, where you can see the
  1545. Continental Divide out the windows.  Put wood on the fire, take the dog
  1546. outside, startle as big corvids of some kind glide past overhead.&lt;/p&gt;
  1547.  
  1548. &lt;p&gt;This is a long ways from the countryside where I grew up, but out in the
  1549. mountains is still unmistakably &lt;em&gt;in the country&lt;/em&gt; in some crucial way.&lt;/p&gt;
  1550.  
  1551. &lt;p&gt;There&#38;rsquo;s a tension between how good I feel in this kind of place and how much
  1552. and how often I&#38;rsquo;m told that the only survivable future for civilization is
  1553. urban density, tall blocks of towers, and more or less the planned eradication
  1554. of the communities where I&#38;rsquo;ve spent the better part of my life.&lt;/p&gt;
  1555.  
  1556. &lt;p&gt;Part of the tension is that these ideas probably aren&#38;rsquo;t so far wrong, so far as
  1557. they go.  It&#38;rsquo;s at least pretty clear that commuting in cars across vast
  1558. distances is destroying the world&lt;sup class=footnote&gt;1&lt;/sup&gt; as much as
  1559. anything, and the way I live my life &lt;em&gt;now&lt;/em&gt; scarcely generalizes to 7 billion
  1560. people, nevermind how I&#38;rsquo;d live it given a few more degrees of freedom.  I may
  1561. want &lt;em&gt;me&lt;/em&gt; to have a rambling compound on a couple of hundred acres in the
  1562. middle of nowhere, but &lt;em&gt;everybody&lt;/em&gt; having that just devolves into &lt;em&gt;Mad Max&lt;/em&gt;.&lt;/p&gt;
  1563.  
  1564. &lt;p&gt;I can understand the idea that the most good for the most humans is to be found
  1565. in thickly populated cityscapes, efficiencies of scale, and a rural
  1566. infrastructure reduced to some bare minimum for sparsely-crewed giant farmbots.
  1567. At any rate I&#38;rsquo;m sure the most good doesn&#38;rsquo;t look much like the vast
  1568. automotive sprawl coagulating all along the I-25 corridor just a few miles east
  1569. of here.&lt;/p&gt;
  1570.  
  1571. &lt;p&gt;Still, there&#38;rsquo;s something missing between what I&#38;rsquo;m &lt;em&gt;supposed&lt;/em&gt; to take away from
  1572. the consensus of the various learned-and-wise and how I actually think and feel
  1573. about the shape of these questions.&lt;/p&gt;
  1574.  
  1575.  
  1576. &lt;p class=&#34;centerpiece&#34;&gt; ❉ &lt;/p&gt;
  1577.  
  1578. &lt;p class=footnote&gt;&lt;sup&gt;1&lt;/sup&gt; A paragraph from &lt;a href=&#34;/2014/3/10&#34;&gt;four years
  1579. ago&lt;/a&gt;: &#34;America is never ever going to stop running entirely on cars.  Not
  1580. until it kills us.  Not even when it becomes completely obvious even to
  1581. Republicans and retirees and farmers that it&#39;s killing us.  We just don&#39;t care.
  1582. We aren&#39;t even capable of imagining caring.  We are going to drive until there
  1583. is nothing left for driving to destroy, and then we are going to drive some
  1584. more.  The last American will die alone, huffing gasoline in the front seat of
  1585. a late-model Toyota the size of a city block in the center of a vast,
  1586. oil-stained pavement stretching from horizon to horizon.&#34;&lt;/p&gt;
  1587.  
  1588. &lt;p class=&#34;datelink&#34;&gt;
  1589. &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1590. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1591. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1592. &lt;a href=&#34;https://p1k3.com/2018/3/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt;
  1593. &lt;/p&gt;</content><updated>2018-03-27T05:04:31Z</updated></entry><entry><title>Tuesday, February 20</title><link href="https://p1k3.com/2018/2/20"/><id>https://p1k3.com/2018/2/20</id><content type="html">&lt;h1&gt;Tuesday, February 20&lt;/h1&gt;
  1594.  
  1595. &lt;p&gt;It&#38;rsquo;s snowing, finally.  Single digits outside, according to the search engines,
  1596. which I have no reason to doubt too much.  The little indicator in my taskbar
  1597. says 3°F for Denver International Airport.  It was in the 50s yesterday, if not
  1598. warmer.  Tonight we came out of a show and brushed 3 or 4 inches of fresh dry
  1599. powder off the Jeep before we drove home on mostly-empty roads.&lt;/p&gt;
  1600.  
  1601.  
  1602. &lt;p class=&#34;datelink&#34;&gt;
  1603. &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/weather&#34;&gt;weather&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1604. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1605. &lt;a href=&#34;https://p1k3.com/2018/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  1606. &lt;a href=&#34;https://p1k3.com/2018/2/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  1607. &lt;/p&gt;</content><updated>2018-02-22T01:58:13Z</updated></entry><entry><title type="html">Sunday, February 18 - self hosting: as off of gmail as i&#39;m going to get</title><link href="https://p1k3.com/2018/2/18"/><id>https://p1k3.com/2018/2/18</id><content type="html">&lt;h1&gt;Sunday, February 18&lt;/h1&gt;
  1608.  
  1609. &lt;h2&gt;self hosting: as off of gmail as i&#39;m going to get&lt;/h2&gt;
  1610.  
  1611. &lt;p&gt;Previously:&lt;/p&gt;
  1612.  
  1613. &lt;ul&gt;
  1614. &lt;li&gt;&lt;a href=&#34;http://localhost/2017/11/29/&#34;&gt;self-hosting, cloud disentanglement, windmill tilting, etc.&lt;/a&gt;&lt;/li&gt;
  1615. &lt;li&gt;&lt;a href=&#34;2018/1/17/&#34;&gt;self hosting, a status check&lt;/a&gt;&lt;/li&gt;
  1616. &lt;/ul&gt;
  1617.  
  1618.  
  1619. &lt;p&gt;I sent out one of those &#38;ldquo;I have a new e-mail address&#38;rdquo; e-mails today.  It felt
  1620. strange because the whole idea that I might have a personal mail provider other
  1621. than Google, let alone that I&#38;rsquo;d be changing &lt;em&gt;from&lt;/em&gt; Gmail to something else, so
  1622. clearly belongs to the past.  The last time I can remember doing this was
  1623. during George W. Bush&#38;rsquo;s second term in office.&lt;/p&gt;
  1624.  
  1625. &lt;p&gt;Moving off of Gmail is an ongoing project, and probably will be for months or
  1626. years, but I&#38;rsquo;m mentally filing it as kinda done.  From here it&#38;rsquo;s just a matter
  1627. of unsubscribing from mailing lists and commercial spam, and changing login
  1628. credentials for several hundred accounts as it comes up.&lt;/p&gt;
  1629.  
  1630. &lt;p class=&#34;centerpiece&#34;&gt; ✮ &lt;/p&gt;
  1631.  
  1632.  
  1633. &lt;p&gt;An outline of my approach:&lt;/p&gt;
  1634.  
  1635. &lt;p&gt;&lt;strong&gt;Archive most of my Gmail account to a local &lt;a href=&#34;https://en.wikipedia.org/wiki/Maildir&#34;&gt;Maildir&lt;/a&gt; with
  1636. &lt;a href=&#34;http://www.offlineimap.org/&#34;&gt;OfflineIMAP&lt;/a&gt;&lt;/strong&gt;.  In my case this came to 6.4 gigs of mail on
  1637. drive, and around 250000 messages.  This took hours and failed a few times
  1638. along the way to completion.  The vast majority of this mail should probably be
  1639. discarded, but this way I can do it at my leisure.&lt;/p&gt;
  1640.  
  1641. &lt;p&gt;&lt;strong&gt;Set up &lt;a href=&#34;https://notmuchmail.org/&#34;&gt;notmuch&lt;/a&gt; for searching local archive Maildirs.&lt;/strong&gt;  This
  1642. allows for a fulltext search of messages from the commandline.  I&#38;rsquo;m not totally
  1643. sold on it, but it&#38;rsquo;s better than nothing.&lt;/p&gt;
  1644.  
  1645. &lt;p&gt;&lt;strong&gt;Delete all mail stored in Gmail.&lt;/strong&gt;  This took a couple of hours, because the
  1646. process is to select everything in All Mail, delete, get locked out of the
  1647. account for 5-10 minutes, and repeat until everything is gone.  It&#38;rsquo;s glitchy,
  1648. but it seems like on average you can delete about 10000 conversations at a
  1649. time.  &#38;ldquo;Delete&#38;rdquo; actually moves stuff to the trash, and you can then empty the
  1650. trash with a little dialog counting down how many messages are left to be
  1651. &lt;em&gt;actually&lt;/em&gt; deleted.  I&#38;rsquo;m pretty sure this all could have been scripted by way
  1652. of some API, but life is short and in this case some repetitive clicking was
  1653. easier than reading API docs for something I wish didn&#38;rsquo;t exist anyway.&lt;/p&gt;
  1654.  
  1655. &lt;p&gt;&lt;strong&gt;Delete all labels and all filters in Gmail.&lt;/strong&gt;  Filters can be exported as an
  1656. XML file in some kind of Atom-derived format, which I went ahead and did
  1657. because I figured having a master list of the labels would be useful later on
  1658. for search purposes.  There&#38;rsquo;s a way to select all filters and hit a button to
  1659. delete.  Deleting the labels could probably be scripted somehow or another, but
  1660. through the web interface it&#38;rsquo;s a matter of a bunch of horrible clicking.&lt;/p&gt;
  1661.  
  1662. &lt;p&gt;&lt;strong&gt;Configure Evolution as a primary client, pointed both at the old Gmail
  1663. account and the new Fastmail one.&lt;/strong&gt;  Evolution can be clunky, but it&#38;rsquo;s easy
  1664. enough to use and has features for stuff like calendaring and contact lists, so
  1665. I can use it to slowly pry that stuff out of Google&#38;rsquo;s clutches.  (Thanks,
  1666. people who make Evolution.  I may not be in your target &#38;ldquo;person who needs to
  1667. replace Outlook&#38;rdquo; demographic, but I truly appreciate your hard work all the
  1668. same.)&lt;/p&gt;
  1669.  
  1670. &lt;p&gt;I thought about just forwarding the Gmail address to the new one, but it seems
  1671. better to keep a clean separation between the two.  This way, incoming Gmail
  1672. can double as a to-do list for places I still need to update the address.&lt;/p&gt;
  1673.  
  1674. &lt;p class=&#34;centerpiece&#34;&gt; ✾ &lt;/p&gt;
  1675.  
  1676.  
  1677. &lt;p&gt;&lt;strong&gt;Addendum&lt;/strong&gt;: The build of Evolution I have installed (probably ancient,
  1678. because I&#38;rsquo;m on Debian stable) was displaying some weird behavior &#38;mdash; marking
  1679. stuff as Junk / moving to Spam folders and then making it impossible to mark
  1680. non-Junk or permanently move back to the Inbox.  It took me a while to realize
  1681. that there&#38;rsquo;s a built-in spam filter (Preferences &#38;rarr; Mail Preferences &#38;rarr;
  1682. Junk &#38;rarr; Check incoming messages for junk) that&#38;rsquo;s turned on by default and
  1683. gets a ton of false positives, at least without training.  Even when turned off,
  1684. I couldn&#38;rsquo;t seem to get those messages permanently out of the Spam folder, so
  1685. I decided to give Thunderbird a shot.&lt;/p&gt;
  1686.  
  1687. &lt;p&gt;Thunderbird &lt;em&gt;also&lt;/em&gt; has a builtin spam filter that has to be disabled on a
  1688. per-account basis (right click on an account &#38;rarr; Settings &#38;rarr; Junk
  1689. Settings &#38;rarr; Enable adaptive junk mail controls for this account).  It
  1690. otherwise feels less flaky than Evolution, and glitches less over IMAP for me,
  1691. though it will occasionally hang for a while on large folders.&lt;/p&gt;
  1692.  
  1693. &lt;p&gt;In general, I feel like the state of desktop GUI e-mail clients is less than
  1694. great.  My next move is probably to &lt;a href=&#34;http://www.mutt.org/&#34;&gt;give Mutt another shot&lt;/a&gt;.&lt;/p&gt;
  1695.  
  1696. &lt;p class=&#34;centerpiece&#34;&gt; ☆ &lt;/p&gt;
  1697.  
  1698.  
  1699. &lt;p&gt;I should fill out the above with specific configuration details for some stuff,
  1700. but I wanted to get some notes down while I was thinking about it.&lt;/p&gt;
  1701.  
  1702.  
  1703. &lt;p class=&#34;datelink&#34;&gt;
  1704. &lt;a href=&#34;https://p1k3.com/topics/fastmail&#34;&gt;fastmail&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/google&#34;&gt;google&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/mail&#34;&gt;mail&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/self-hosting&#34;&gt;self-hosting&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/warelogging&#34;&gt;warelogging&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1705. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1706. &lt;a href=&#34;https://p1k3.com/2018/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  1707. &lt;a href=&#34;https://p1k3.com/2018/2/18/&#34; title=&#34;18&#34;&gt;18&lt;/a&gt;
  1708. &lt;/p&gt;</content><updated>2018-02-22T01:58:13Z</updated></entry><entry><title>Sunday, February 11</title><link href="https://p1k3.com/2018/2/11"/><id>https://p1k3.com/2018/2/11</id><content type="html">&lt;h1&gt;Sunday, February 11&lt;/h1&gt;
  1709.  
  1710. &lt;div class=photos&gt;
  1711. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7737_bw.JPG&#34;&gt;
  1712.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7737_bw.JPG&#34; width=&#34;200&#34;&gt;
  1713. &lt;/a&gt;
  1714. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7772.JPG&#34;&gt;
  1715.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7772.JPG&#34; width=&#34;200&#34;&gt;
  1716. &lt;/a&gt;
  1717. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7792.JPG&#34;&gt;
  1718.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7792.JPG&#34; width=&#34;200&#34;&gt;
  1719. &lt;/a&gt;
  1720. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7835.JPG&#34;&gt;
  1721.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7835.JPG&#34; width=&#34;200&#34;&gt;
  1722. &lt;/a&gt;
  1723. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7851.JPG&#34;&gt;
  1724.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7851.JPG&#34; width=&#34;200&#34;&gt;
  1725. &lt;/a&gt;
  1726. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7862.JPG&#34;&gt;
  1727.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7862.JPG&#34; width=&#34;200&#34;&gt;
  1728. &lt;/a&gt;
  1729. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7894.JPG&#34;&gt;
  1730.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7894.JPG&#34; width=&#34;200&#34;&gt;
  1731. &lt;/a&gt;
  1732. &lt;/div&gt;
  1733.  
  1734. &lt;p class=&#34;datelink&#34;&gt;
  1735. &lt;a href=&#34;https://p1k3.com/topics/cat&#34;&gt;cat&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/typewriter&#34;&gt;typewriter&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1736. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1737. &lt;a href=&#34;https://p1k3.com/2018/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  1738. &lt;a href=&#34;https://p1k3.com/2018/2/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt;
  1739. &lt;/p&gt;</content><updated>2018-02-22T01:21:08Z</updated></entry><entry><title>Saturday, February 10 - App::WRT v4.2.2</title><link href="https://p1k3.com/2018/2/10"/><id>https://p1k3.com/2018/2/10</id><content type="html">&lt;h1&gt;Saturday, February 10&lt;/h1&gt;
  1740.  
  1741. &lt;h2&gt;App::WRT v4.2.2&lt;/h2&gt;
  1742.  
  1743. &lt;p&gt;This is a minor release of wrt, the site generator I use for p1k3 and finally
  1744. got around to publishing on CPAN &lt;a href=&#34;/2017/11/18/&#34;&gt;back in November&lt;/a&gt;.&lt;/p&gt;
  1745.  
  1746. &lt;ul&gt;
  1747. &lt;li&gt;&lt;a href=&#34;https://metacpan.org/release/App-WRT&#34;&gt;App::WRT on CPAN&lt;/a&gt;&lt;/li&gt;
  1748. &lt;li&gt;&lt;a href=&#34;https://github.com/brennen/wrt&#34;&gt;wrt on GitHub&lt;/a&gt;&lt;/li&gt;
  1749. &lt;/ul&gt;
  1750.  
  1751.  
  1752. &lt;p&gt;This version tweaks configuration defaults for root URL, removes links to years
  1753. from the top navigation bar, and fixes a bug with the &lt;code&gt;--config&lt;/code&gt; option to &lt;code&gt;wrt
  1754. render-all&lt;/code&gt; and &lt;code&gt;wrt display&lt;/code&gt;.  It should now work to specify a separate
  1755. configuration file.&lt;/p&gt;
  1756.  
  1757. &lt;p&gt;(I worked on this today because I wanted to be able to generate a preview
  1758. version of the site that I could navigate in &lt;a href=&#34;http://lynx.invisible-island.net/&#34;&gt;Lynx&lt;/a&gt;, and in order to do
  1759. that it was easiest to write a separate configuration file.)&lt;/p&gt;
  1760.  
  1761.  
  1762. &lt;p class=&#34;datelink&#34;&gt;
  1763. &lt;a href=&#34;https://p1k3.com/topics/perl&#34;&gt;perl&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/wrt&#34;&gt;wrt&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1764. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1765. &lt;a href=&#34;https://p1k3.com/2018/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  1766. &lt;a href=&#34;https://p1k3.com/2018/2/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt;
  1767. &lt;/p&gt;</content><updated>2018-02-12T16:42:11Z</updated></entry><entry><title>Monday, January 29 - reading: a wizard of earthsea</title><link href="https://p1k3.com/2018/1/29"/><id>https://p1k3.com/2018/1/29</id><content type="html">&lt;h1&gt;Monday, January 29&lt;/h1&gt;
  1768.  
  1769. &lt;h2&gt;reading: a wizard of earthsea&lt;/h2&gt;
  1770.  
  1771. &lt;p&gt;I started this once some years back, but I didn&#38;rsquo;t get very far.  Then my sister
  1772. gave me the first three Earthsea books for Christmas, and on the 22nd of this
  1773. month Ursula K. Le Guin died.  When I heard, I sat at my kitchen table and
  1774. cried, and then got out my copy of &lt;em&gt;The Dispossessed&lt;/em&gt; and thumbed through it
  1775. for an hour.  Eventually I decided to pick up &lt;em&gt;Wizard&lt;/em&gt;, and finished it in a
  1776. handful of sittings.&lt;/p&gt;
  1777.  
  1778. &lt;p&gt;It&#38;rsquo;s the kind of thing I wish I&#38;rsquo;d read at 10 and yet was grateful to find that
  1779. I still had ahead of me at 36.  Its closest parallel in anything I&#38;rsquo;ve read is
  1780. probably Lloyd Alexander&#38;rsquo;s &lt;em&gt;Chronicles of Prydain&lt;/em&gt;, which I mean as high
  1781. praise.&lt;/p&gt;
  1782.  
  1783. &lt;p&gt;I&#38;rsquo;ve loved Le Guin&#38;rsquo;s work for a long time, but I think I&#38;rsquo;ve probably read at
  1784. most a quarter of her published material.  I don&#38;rsquo;t think it all works for me,
  1785. but there&#38;rsquo;s a lot more of it I intend to pick up.&lt;/p&gt;
  1786.  
  1787.  
  1788. &lt;p class=&#34;datelink&#34;&gt;
  1789. &lt;a href=&#34;https://p1k3.com/topics/earthsea&#34;&gt;earthsea&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/le-guin&#34;&gt;le-guin&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/reading&#34;&gt;reading&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/sfnal&#34;&gt;sfnal&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1790. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1791. &lt;a href=&#34;https://p1k3.com/2018/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  1792. &lt;a href=&#34;https://p1k3.com/2018/1/29/&#34; title=&#34;29&#34;&gt;29&lt;/a&gt;
  1793. &lt;/p&gt;</content><updated>2018-02-09T02:51:13Z</updated></entry><entry><title>Thursday, January 18 - reading: master and commander</title><link href="https://p1k3.com/2018/1/18"/><id>https://p1k3.com/2018/1/18</id><content type="html">&lt;h1&gt;Thursday, January 18&lt;/h1&gt;
  1794.  
  1795. &lt;h2&gt;reading: master and commander&lt;/h2&gt;
  1796.  
  1797. &lt;p&gt;By Patrick O&#39;Brian.  No longer remember how this landed on my shelf, but it&#38;rsquo;s
  1798. been there for a while.  &lt;a href=&#34;https://en.wikipedia.org/wiki/Master_and_Commander&#34;&gt;Quoth Wikipedia&lt;/a&gt;:&lt;/p&gt;
  1799.  
  1800. &lt;blockquote&gt;&lt;p&gt;The novel is set at the turn of the 19th century. It follows the young Jack
  1801. Aubrey who has just been promoted to the rank of Master and Commander, and
  1802. Stephen Maturin, a destitute physician and naturalist whom Aubrey appoints as
  1803. his naval surgeon. They sail in HM Sloop of War &lt;em&gt;Sophie&lt;/em&gt; with first lieutenant
  1804. James Dillon, a wealthy and aristocratic Irishman. …&lt;/p&gt;
  1805.  
  1806. &lt;p&gt;&lt;em&gt;Master and Commander&lt;/em&gt; met with mixed early reviews on its first publication.
  1807. Although UK sales were respectable enough for O&#39;Brian to continue with his
  1808. series, it was not initially a success in the US. In Britain and Ireland,
  1809. however, voices of praise gradually became dominant. In 1990, the US publisher
  1810. W. W. Norton re-issued the book and its sequels; this was an almost immediate
  1811. success and drew O&#39;Brian a new, large readership. O&#39;Brian&#38;rsquo;s biographer has
  1812. placed the novel at the start of what he called the author&#38;rsquo;s magnum opus, a
  1813. series that has become perhaps the best-loved &lt;em&gt;roman fleuves&lt;/em&gt; of the twentieth
  1814. century.&lt;/p&gt;&lt;/blockquote&gt;
  1815.  
  1816. &lt;p&gt;This is the first in a giant series of books about dudes doing stuff on wooden
  1817. ships with lots of sails and rigging, the complexities of which I am never
  1818. going to grasp even slightly.  There is just an &lt;em&gt;unreal&lt;/em&gt; amount of technical
  1819. exposition about sails and sailing stuff.  It&#38;rsquo;d probably be equally correct to
  1820. say that it&#38;rsquo;s about the sailing stuff or to say that it&#38;rsquo;s about Jack and
  1821. Stephen being friends while everything is all complicatedly mannered, colonial,
  1822. and riddled with fucked-up relations of power.&lt;/p&gt;
  1823.  
  1824. &lt;p&gt;It&#38;rsquo;s a surprisingly funny, subtle book.  I don&#38;rsquo;t know if I&#38;rsquo;ll attempt the rest
  1825. of the series, but I enjoyed this one and I think I can see why people love
  1826. them so much.&lt;/p&gt;
  1827.  
  1828.  
  1829. &lt;p class=&#34;datelink&#34;&gt;
  1830. &lt;a href=&#34;https://p1k3.com/topics/aubrey-maturin&#34;&gt;aubrey-maturin&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/reading&#34;&gt;reading&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/sailing&#34;&gt;sailing&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1831. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1832. &lt;a href=&#34;https://p1k3.com/2018/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  1833. &lt;a href=&#34;https://p1k3.com/2018/1/18/&#34; title=&#34;18&#34;&gt;18&lt;/a&gt;
  1834. &lt;/p&gt;</content><updated>2018-01-19T03:54:18Z</updated></entry><entry><title>Wednesday, January 17 - self-hosting, a status check</title><link href="https://p1k3.com/2018/1/17"/><id>https://p1k3.com/2018/1/17</id><content type="html">&lt;h1&gt;Wednesday, January 17&lt;/h1&gt;
  1835.  
  1836. &lt;h2&gt;self-hosting, a status check&lt;/h2&gt;
  1837.  
  1838. &lt;p&gt;Following up on &lt;a href=&#34;/2017/11/29&#34;&gt;self-hosting, cloud disentanglement, windmill tilting,
  1839. etc.&lt;/a&gt;, a brief summary of progress:&lt;/p&gt;
  1840.  
  1841. &lt;h3&gt;mail&lt;/h3&gt;
  1842.  
  1843. &lt;p&gt;I&#38;rsquo;m using &lt;a href=&#34;https://www.fastmail.com/&#34;&gt;FastMail&lt;/a&gt; as a provider for my new address(es), for now
  1844. anyway.  (Actually it&#38;rsquo;s an old address - one I used more than a decade ago and
  1845. should have retained instead of being lured in by GMail&#38;rsquo;s gleaming surface.)  I
  1846. could wish for more open code and more encryption in the mix, but they seem
  1847. well-managed and offer some useful features without obviously breaking the
  1848. ecosystem in any way I&#38;rsquo;ve noticed yet.&lt;/p&gt;
  1849.  
  1850. &lt;p&gt;I&#38;rsquo;m using &lt;a href=&#34;http://www.offlineimap.org/&#34;&gt;OfflineIMAP&lt;/a&gt; to keep a rolling local copy of everything
  1851. still in GMail.  I think at some point this will become purely archival and
  1852. I&#38;rsquo;ll delete everything stored in GMail and just treat that address as one
  1853. regular account in whatever client I&#38;rsquo;m using at the time.  Realistically, I can
  1854. probably never actually kill the account, because even if I make an effort to
  1855. change the address on every account I have elsewhere, I&#38;rsquo;ll miss something that
  1856. will turn out to be vital.&lt;/p&gt;
  1857.  
  1858. &lt;p&gt;The desktop e-mail client situation is dire, but not impossible.  There&#38;rsquo;s a
  1859. strong temptation to go back to &lt;a href=&#34;http://www.mutt.org/&#34;&gt;Mutt&lt;/a&gt;.  I used it before, I could
  1860. probably use it again.  I could also probably just use Thunderbird, Evolution,
  1861. or some other mediocre but stable holdover from the era when native GUI desktop
  1862. client applications were still a thing.&lt;/p&gt;
  1863.  
  1864. &lt;p&gt;In summary, this is a giant pain in the ass and I hate it, but I&#38;rsquo;m probably 20%
  1865. of the way there.  I hope to document my setup when it settles down into
  1866. something coherent.&lt;/p&gt;
  1867.  
  1868. &lt;h3&gt;phone service / mobile os, apps, etc.&lt;/h3&gt;
  1869.  
  1870. &lt;p&gt;I ordered a &lt;a href=&#34;https://www.indiegogo.com/projects/gemini-pda-android-linux-keyboard-mobile-device-phone&#34;&gt;Gemini PDA&lt;/a&gt;, a small device with a physical keyboard which
  1871. will theoretically boot into a real Debian.  This is a gamble, and will
  1872. &lt;em&gt;likely&lt;/em&gt; amount to having thrown away the price of a new phone, but it does
  1873. potentially represent a step in the right direction.  If nothing else, spending
  1874. the money is another signal to the market that I am still interested in
  1875. keyboards and would like a device that does what this one is &lt;em&gt;supposed&lt;/em&gt; to.&lt;/p&gt;
  1876.  
  1877. &lt;p&gt;Eventually, perhaps someone will decide that there are enough idiosyncratic
  1878. fanatics like me to sell us useful goods.&lt;/p&gt;
  1879.  
  1880. &lt;h3&gt;e-books&lt;/h3&gt;
  1881.  
  1882. &lt;p&gt;I canceled my Amazon Prime account today; a futile but mildly satisfying
  1883. gesture.&lt;/p&gt;
  1884.  
  1885. &lt;p&gt;So far every book I&#38;rsquo;ve read in 2018 has been on paper.  Which is probably my
  1886. best solution for as long as they&#38;rsquo;re still printing paper books.&lt;/p&gt;
  1887.  
  1888. &lt;h3&gt;laptop and desktop hardware&lt;/h3&gt;
  1889.  
  1890. &lt;p&gt;In the wake of &lt;a href=&#34;https://spectreattack.com/&#34;&gt;Meltdown/Spectre&lt;/a&gt;, It turns out this situation is
  1891. even more unfathomably fucked than I thought it was a couple of months ago.
  1892. Solutions are in very short supply.&lt;/p&gt;
  1893.  
  1894.  
  1895. &lt;p class=&#34;datelink&#34;&gt;
  1896. &lt;a href=&#34;https://p1k3.com/topics/android&#34;&gt;android&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/fastmail&#34;&gt;fastmail&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/gemini-pda&#34;&gt;gemini-pda&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/google&#34;&gt;google&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/intel&#34;&gt;intel&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/mail&#34;&gt;mail&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/offlineimap&#34;&gt;offlineimap&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/panopticon&#34;&gt;panopticon&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/self-hosting&#34;&gt;self-hosting&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/warelogging&#34;&gt;warelogging&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1897. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1898. &lt;a href=&#34;https://p1k3.com/2018/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  1899. &lt;a href=&#34;https://p1k3.com/2018/1/17/&#34; title=&#34;17&#34;&gt;17&lt;/a&gt;
  1900. &lt;/p&gt;</content><updated>2018-01-31T23:08:37Z</updated></entry><entry><title type="html">Tuesday, January 16 - reading: smilla&#39;s sense of snow</title><link href="https://p1k3.com/2018/1/16"/><id>https://p1k3.com/2018/1/16</id><content type="html">&lt;h1&gt;Tuesday, January 16&lt;/h1&gt;
  1901.  
  1902. &lt;h2&gt;reading: smilla&#39;s sense of snow&lt;/h2&gt;
  1903.  
  1904. &lt;p&gt;Peter Høeg, translated by Tiina Nunnally.  Murder mystery / thriller of sorts,
  1905. set in Copenhagen and the arctic.  I forgot to bring reading material for a
  1906. flight, and when I saw this in the airport bookstore I remembered that I liked
  1907. the movie.  (IMDB says: 1997, Julie Ormond, Gabriel Byrne, Richard Harris.  I
  1908. seem to have &lt;a href=&#34;/1999/4/18&#34;&gt;watched it in 1999&lt;/a&gt;.)&lt;/p&gt;
  1909.  
  1910. &lt;p&gt;This is a translation from Danish.  The author&#38;rsquo;s Danish; his protagonist is
  1911. half Danish and half Inuit from Greenland.  I wonder what a native Greenlander
  1912. would think about this story.  There&#38;rsquo;s more than a little of the &lt;a href=&#34;http://tvtropes.org/pmwiki/pmwiki.php/Main/MagicalNativeAmerican&#34;&gt;Magical
  1913. Native American&lt;/a&gt; thing going on with Smilla.&lt;/p&gt;
  1914.  
  1915. &lt;p&gt;It&#38;rsquo;s also got one of those plots that strains suspension of disbelief just past
  1916. the breaking point half a dozen times, and it has probably a hundred more pages
  1917. than it needs.  All that said, it was an engrossing read.&lt;/p&gt;
  1918.  
  1919.  
  1920. &lt;p class=&#34;datelink&#34;&gt;
  1921. &lt;a href=&#34;https://p1k3.com/topics/denmark&#34;&gt;denmark&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/greenland&#34;&gt;greenland&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/reading&#34;&gt;reading&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1922. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1923. &lt;a href=&#34;https://p1k3.com/2018/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  1924. &lt;a href=&#34;https://p1k3.com/2018/1/16/&#34; title=&#34;16&#34;&gt;16&lt;/a&gt;
  1925. &lt;/p&gt;</content><updated>2018-01-19T03:15:03Z</updated></entry><entry><title>thursday, january  4 - speculative execution</title><link href="https://p1k3.com/2018/1/4"/><id>https://p1k3.com/2018/1/4</id><content type="html">&lt;h1&gt;thursday, january  4&lt;/h1&gt;
  1926.  
  1927. &lt;h2&gt;speculative execution&lt;/h2&gt;
  1928.  
  1929. &lt;p&gt;walking across the highway, the wire&lt;br /&gt;
  1930. silhouettes of the deactived holiday lights&lt;br /&gt;
  1931. sketched beneath the streetlamps&lt;br /&gt;
  1932. the cars don&#39;t stop at the crosswalks this time&lt;br /&gt;
  1933. you get lucky once in a while but you wouldn&#39;t&lt;br /&gt;
  1934. want to push it too hard&lt;/p&gt;
  1935.  
  1936. &lt;p&gt;it was a long weird day in computerland, all&lt;br /&gt;
  1937. echoing with the sense that the machinery we&#39;ve&lt;br /&gt;
  1938. built a civilization on is rotten somewhere near&lt;br /&gt;
  1939. the core, close to the foundations&lt;/p&gt;
  1940.  
  1941. &lt;p&gt;the machinery electrical and economic all at once&lt;br /&gt;
  1942. the logic of silicon and software;&lt;br /&gt;
  1943. the logic of expansion, enclosure, and control;&lt;br /&gt;
  1944. the systems and the systems they&#39;re made of&lt;/p&gt;
  1945.  
  1946. &lt;p&gt;it&#39;ll pass - it&#39;ll recede into the daily cycle&lt;br /&gt;
  1947. in a year it will be hard to remember the specifics&lt;br /&gt;
  1948. of today&#39;s failure; the next one may be worse,&lt;br /&gt;
  1949. and anyway the last dozen mistakes and betrayals in this&lt;br /&gt;
  1950. endless series have collapsed into one another so quickly&lt;br /&gt;
  1951. that they defy narrative&lt;/p&gt;
  1952.  
  1953. &lt;p&gt;but there&#39;s something cumulative here.&lt;br /&gt;
  1954. something is clearer now, to some of us.&lt;/p&gt;
  1955.  
  1956. &lt;p class=&#34;datelink&#34;&gt;
  1957. &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1958. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1959. &lt;a href=&#34;https://p1k3.com/2018/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  1960. &lt;a href=&#34;https://p1k3.com/2018/1/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt;
  1961. &lt;/p&gt;</content><updated>2018-01-14T05:16:42Z</updated></entry><entry><title>Monday, January  1 - reading in 2017</title><link href="https://p1k3.com/2018/1/1"/><id>https://p1k3.com/2018/1/1</id><content type="html">&lt;h1&gt;Monday, January  1&lt;/h1&gt;
  1962.  
  1963. &lt;h2&gt;reading in 2017&lt;/h2&gt;
  1964.  
  1965. &lt;p&gt;Trying to remember: What did I actually read in the last year?&lt;/p&gt;
  1966.  
  1967. &lt;p&gt;I &lt;a href=&#34;/2017/2/28/&#34;&gt;know for sure&lt;/a&gt; that in February I read &lt;em&gt;The War Against the Assholes&lt;/em&gt;,
  1968. by Sam Munson, and &lt;em&gt;Pansy&lt;/em&gt;, by Andrea Gibson, because I wrote about it here.&lt;/p&gt;
  1969.  
  1970. &lt;p&gt;In April I started and failed to get anywhere with &lt;em&gt;The Icon Thief&lt;/em&gt;, by Alec
  1971. Nevala-Lee, whose &lt;a href=&#34;https://nevalalee.wordpress.com/&#34;&gt;blog writing&lt;/a&gt; on topics like golden age SF,
  1972. filmmaking, and the craft of writing is consistently excellent (and sort of
  1973. bogglingly prolific).  &lt;em&gt;The Icon Thief&lt;/em&gt; didn&#38;rsquo;t really grab me, but I should buy
  1974. more of Nevala-Lee&#38;rsquo;s books anyway because he&#38;rsquo;s one of the best things in my
  1975. feedreader most weeks.  (And I&#38;rsquo;m really looking forward to his upcoming
  1976. &lt;em&gt;Astounding: John W.  Campbell, Isaac Asimov, Robert A. Heinlein, L.  Ron
  1977. Hubbard, and the Golden Age of Science Fiction&lt;/em&gt;.)&lt;/p&gt;
  1978.  
  1979. &lt;p&gt;In May I bought a Kindle copy of &lt;em&gt;Twitter and Tear Gas: The Power and Fragility
  1980. of Networked Protest&lt;/em&gt;, by Zeynep Tufekci.  I think I managed about 20%, not so
  1981. much because it&#38;rsquo;s bad (it&#38;rsquo;s not, and Tufekci is a writer and thinker worth
  1982. listening to) as because I spent so much time this year thinking about networks
  1983. and network dysfunction that the whole topic had already become paralyzing and
  1984. spiral-of-despair-inducing by the time I started the book.&lt;/p&gt;
  1985.  
  1986. &lt;p&gt;Also in May I started gradually re-reading chunks of the Bible (mostly the New
  1987. Testament and mostly in the NRSV).&lt;/p&gt;
  1988.  
  1989. &lt;p&gt;I remember buying &lt;em&gt;Dark Canyon&lt;/em&gt;, a middling Louis L&#39;Amour novel about
  1990. bankrobbers making good, at a truckstop on the way to a festival in June.&lt;/p&gt;
  1991.  
  1992. &lt;p&gt;Some time after that, I found a copy of &lt;em&gt;Split Image&lt;/em&gt; by Robert B. Parker at
  1993. the laundromat and read it in a sitting or two.  It&#38;rsquo;s a Jesse Stone novel, so
  1994. it&#38;rsquo;s outside of the Spenser narrative (though I seem to remember it&#38;rsquo;s clearly
  1995. set in the Spenser-verse).  Thinking about it now, I feel like I might as well
  1996. go back and read the rest of Parker&#38;rsquo;s other series.  None of it&#38;rsquo;s up to the
  1997. standard of the early Spenser material, and some of it is frankly pretty
  1998. terrible, but whatever.  There&#38;rsquo;s no shame in the comforts of familiar pulpy
  1999. genre series intake.&lt;/p&gt;
  2000.  
  2001. &lt;p&gt;I &lt;em&gt;think&lt;/em&gt; I got John Le Carré&#38;rsquo;s &lt;em&gt;Tinker Tailor Soldier Spy&lt;/em&gt; at a yard sale in
  2002. the summer, but it&#38;rsquo;s a clean enough trade paperback (the Penguin one with Gary
  2003. Oldman&#38;rsquo;s face from the 2011ish movie on the cover) that I might have bought it
  2004. new at a bookstore.  I liked it more than I expected, and want to read more Le
  2005. Carré.  Something about the sort of weirdly restrained, jargon-laden procedural
  2006. dryness of it was really appealing.&lt;/p&gt;
  2007.  
  2008. &lt;p&gt;Ann Leckie&#38;rsquo;s &lt;em&gt;Provenance&lt;/em&gt;, a book adjacent to (but not a direct sequel to) her
  2009. &lt;a href=&#34;/2015/10/20/&#34;&gt;&lt;em&gt;Ancillary&lt;/em&gt; trilogy&lt;/a&gt; came out in September and I read it on a
  2010. Kindle.  I liked many of the same things about it that I liked about the
  2011. earlier novels, though the scale felt smaller and less consequential.&lt;/p&gt;
  2012.  
  2013. &lt;p&gt;Somewhere in the fall I got &lt;em&gt;Days Without End&lt;/em&gt;, by Sebastian Barry, and made it
  2014. something like a hundred pages in before losing the will to continue.  The
  2015. language was well-handled, and there were striking images, but the poetically
  2016. vivid genocide and so forth weren&#38;rsquo;t something I really needed.  Maybe it&#38;rsquo;s just
  2017. that I&#38;rsquo;ve already read too much Cormac McCarthy and don&#38;rsquo;t really need any more
  2018. of a certain mode of western.&lt;/p&gt;
  2019.  
  2020. &lt;p&gt;I&#38;rsquo;ve had an old library copy of &lt;em&gt;Nebraska Moments&lt;/em&gt;, by Donald R. Hickey, for
  2021. years now, and finally started skimming through it.  It&#38;rsquo;s a collection of
  2022. historical sketches on topics like the Great Blizzard of 1888, the founding of
  2023. Omaha, William Jennings Bryan, and so forth.  Kind of dry, but it&#38;rsquo;s got a good
  2024. level of detail for the kind of thing that it is, and the writing is clear.
  2025. It&#38;rsquo;s good for the 10 or 15 minutes before sleep when I want something that
  2026. feels educational without being so interesting that it keeps me awake.&lt;/p&gt;
  2027.  
  2028. &lt;p&gt;I &lt;a href=&#34;/2017/11/24&#34;&gt;started a Ted Chiang collection&lt;/a&gt; in November.&lt;/p&gt;
  2029.  
  2030. &lt;p&gt;In December I bought a paperback edition of Alvin Toffler&#38;rsquo;s &lt;em&gt;Future Shock&lt;/em&gt; at a
  2031. thrift store.  So far I haven&#38;rsquo;t made it much further than the introduction, and
  2032. I begin to suspect I probably won&#38;rsquo;t.  It feels like the kind of thing that
  2033. works best as intellectual background radiation for a book like &lt;em&gt;The Shockwave
  2034. Rider&lt;/em&gt;.&lt;/p&gt;
  2035.  
  2036. &lt;p&gt;All year I&#38;rsquo;ve been getting issues of &lt;a href=&#34;http://www.hcn.org/&#34;&gt;&lt;em&gt;High Country News&lt;/em&gt;&lt;/a&gt;, and sometimes
  2037. I even read them.  (It&#38;rsquo;s a good publication, doing good journalism.  I just
  2038. re-upped my subscription.)&lt;/p&gt;
  2039.  
  2040. &lt;p class=&#34;centerpiece&#34;&gt; ☼ &lt;/p&gt;
  2041.  
  2042.  
  2043. &lt;p&gt;What else?  There must have been some programming books and random excursions
  2044. into poetry or reference material.  I know I&#38;rsquo;m forgetting a few things.  But
  2045. the above list is basically it, except for the internet.&lt;/p&gt;
  2046.  
  2047. &lt;p&gt;Because really what I read in 2017, in most of the last several years, was the
  2048. internet.  Not even, in any real sense that registers, individual documents
  2049. hosted on the network, or the work of authors I can clearly identify.  Just
  2050. the endless scroll.&lt;/p&gt;
  2051.  
  2052. &lt;p&gt;The internet:  A tide of incoherent technical documentation, error logs,
  2053. seething sociopolitical rage, ideological agitation and condemnation (somewhere
  2054. between authentic and engineered/rehearsed, on some spectrum it is no longer
  2055. possible for me to easily parse), clickbait, reaction, comment vitriol,
  2056. disinformation, machine-generated pseudojournalism, notification spam,
  2057. marketing, infographical non-info, hot-take product, autoplaying video, and
  2058. generalized memetic spew.&lt;/p&gt;
  2059.  
  2060. &lt;p&gt;This is the year I &lt;a href=&#34;/2017/10/16/&#34;&gt;lost hope for the web&lt;/a&gt;, probably for the network as a
  2061. whole.  It&#38;rsquo;s also the year I tried hardest to look away, found it most
  2062. necessary for my own mental health to avoid what the internet has become,
  2063. watched my friends and family experience the same.  And with all that, it&#38;rsquo;s
  2064. also the year the internet most thoroughly consumed my relationship to words.&lt;/p&gt;
  2065.  
  2066. &lt;p&gt;It feels like that&#38;rsquo;s an index to something.&lt;/p&gt;
  2067.  
  2068.  
  2069. &lt;p class=&#34;datelink&#34;&gt;
  2070. &lt;a href=&#34;https://p1k3.com/topics/fantasy&#34;&gt;fantasy&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/history&#34;&gt;history&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/nebraska&#34;&gt;nebraska&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/reading&#34;&gt;reading&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/sfnal&#34;&gt;sfnal&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2071. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  2072. &lt;a href=&#34;https://p1k3.com/2018/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  2073. &lt;a href=&#34;https://p1k3.com/2018/1/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt;
  2074. &lt;/p&gt;</content><updated>2018-01-02T16:00:06Z</updated></entry><entry><title>Thursday, December  7</title><link href="https://p1k3.com/2017/12/7"/><id>https://p1k3.com/2017/12/7</id><content type="html">&lt;h1&gt;Thursday, December  7&lt;/h1&gt;
  2075.  
  2076. &lt;p&gt;I woke up this morning from a vivid dream of blinding flashes and looming
  2077. mushroom clouds on the horizon, in which I&#38;rsquo;d been screaming at my family to
  2078. get in the basement before a blast wave hit.&lt;/p&gt;
  2079.  
  2080.  
  2081. &lt;p class=&#34;datelink&#34;&gt;
  2082. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2083. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2084. &lt;a href=&#34;https://p1k3.com/2017/12/&#34; title=&#34;12&#34;&gt;12&lt;/a&gt; /
  2085. &lt;a href=&#34;https://p1k3.com/2017/12/7/&#34; title=&#34;7&#34;&gt;7&lt;/a&gt;
  2086. &lt;/p&gt;</content><updated>2018-01-14T05:16:42Z</updated></entry><entry><title>Wednesday, November 29 - self-hosting, cloud disentanglement, windmill tilting, etc.</title><link href="https://p1k3.com/2017/11/29"/><id>https://p1k3.com/2017/11/29</id><content type="html">&lt;h1&gt;Wednesday, November 29&lt;/h1&gt;
  2087.  
  2088. &lt;h2&gt;self-hosting, cloud disentanglement, windmill tilting, etc.&lt;/h2&gt;
  2089.  
  2090. &lt;p&gt;So my computational life is kind of a mess, and also is more locked-in to
  2091. services provided by third-party corporations (subtype: gigantic, evil) than
  2092. I&#38;rsquo;d like.  I&#38;rsquo;ve spent years promising myself I&#38;rsquo;d become less dependent on the
  2093. megacorps, but I&#38;rsquo;m still beholden to Google and a pack of others.&lt;/p&gt;
  2094.  
  2095. &lt;p&gt;I&#38;rsquo;ve decided that late 2017 is as good a time as any to start working on this
  2096. problem in earnest.&lt;/p&gt;
  2097.  
  2098. &lt;p&gt;This is the kind of list that I&#38;rsquo;d normally write on a piece of paper with
  2099. checkboxes, but I may as well document it here in case it&#38;rsquo;s useful to anyone
  2100. else.&lt;/p&gt;
  2101.  
  2102. &lt;p class=&#34;centerpiece&#34;&gt; ✯ &lt;/p&gt;
  2103.  
  2104.  
  2105. &lt;p&gt;These are the systems I&#38;rsquo;m concerned with:&lt;/p&gt;
  2106.  
  2107. &lt;h3&gt;mail&lt;/h3&gt;
  2108.  
  2109. &lt;p&gt;I&#38;rsquo;ve been on GMail since August of 2004 (I had to check this), when it was
  2110. still an invite-your-friends service working to build clout by starting with
  2111. nerds.  I have about 9 gigs worth of archives; by volume most of that is
  2112. probably mailing lists, notifications, and other machine-driven noise, but
  2113. there&#38;rsquo;s plenty I&#38;rsquo;d like to retain.  Right now I plan to keep this locally in
  2114. &lt;a href=&#34;https://en.wikipedia.org/wiki/Maildir&#34;&gt;Maildir&lt;/a&gt; form and use some kind of desktop client for everything.&lt;/p&gt;
  2115.  
  2116. &lt;p&gt;There&#38;rsquo;s also the basic problem of all the other identities that get attached to
  2117. an e-mail address in the course of &lt;em&gt;thirteen years&lt;/em&gt; of heavy use.  I can&#38;rsquo;t
  2118. afford to delete the account in the short term, but I guess I can forward
  2119. everything and spend months chipping away at all the stuff tied to it.&lt;/p&gt;
  2120.  
  2121. &lt;p&gt;Difficulty: Unpleasant, repetitive, but well understood and achievable.&lt;/p&gt;
  2122.  
  2123. &lt;h3&gt;phone service&lt;/h3&gt;
  2124.  
  2125. &lt;p&gt;I&#38;rsquo;ve had the same phone number for most of my adult life.  I&#38;rsquo;m not sure whether
  2126. it&#38;rsquo;s possible to pry it out of the clutches of Verizon, but I&#38;rsquo;d like to.  Even
  2127. if that&#38;rsquo;s not possible, things I want Verizon to lose include:&lt;/p&gt;
  2128.  
  2129. &lt;ul&gt;
  2130. &lt;li&gt;constant knowledge of my location&lt;/li&gt;
  2131. &lt;li&gt;control over the OS and installed applications on my phone&lt;/li&gt;
  2132. &lt;li&gt;interception of most of my data traffic&lt;/li&gt;
  2133. &lt;/ul&gt;
  2134.  
  2135.  
  2136. &lt;p&gt;I&#38;rsquo;m aware that any connection to the phone network will involve an unsavory
  2137. corporate provider &#38;mdash; I just have a special and particular contempt for
  2138. Verizon, built on years of acquaintance.&lt;/p&gt;
  2139.  
  2140. &lt;p&gt;Difficulty: Heroic levels of cat vacuuming, probably.&lt;/p&gt;
  2141.  
  2142. &lt;h3&gt;mobile os, apps, etc.&lt;/h3&gt;
  2143.  
  2144. &lt;p&gt;I use an Android device.  At its best, Android is a pretty reasonable user
  2145. experience, but it&#38;rsquo;s full of tracky shit and increasingly pushy about
  2146. integrating itself with the broader panopticon.  Every time my phone asks me to
  2147. review and post photos of some random gas station off of I-25, or encourages to
  2148. me to read a news story &#38;ldquo;based on your interest in Donald Trump&#38;rdquo;, I feel
  2149. incrementally more alienation and loathing for everything our technical culture
  2150. has become.&lt;/p&gt;
  2151.  
  2152. &lt;p&gt;Since alienation and loathing are no fun, I would like to stop using Android
  2153. (preferably without switching to iOS).&lt;/p&gt;
  2154.  
  2155. &lt;p&gt;Difficulty: See above, re: cat vacuuming.  If this is achievable, it&#38;rsquo;s probably
  2156. in part by splitting the functions of a phone out into a couple of devices and
  2157. just abandoning others.&lt;/p&gt;
  2158.  
  2159. &lt;h3&gt;e-books&lt;/h3&gt;
  2160.  
  2161. &lt;p&gt;I&#38;rsquo;m on my third or fourth Kindle, the e-ink kind.  It&#38;rsquo;s convenient enough, but
  2162. Amazon is doing its best to eat everything (including the publishing industry),
  2163. and I would like to contribute less energy to their efforts.  Plus I&#38;rsquo;m pretty
  2164. sure future iterations of any Amazon device will eventually include an
  2165. always-on microphone, and I am not interested.&lt;/p&gt;
  2166.  
  2167. &lt;p&gt;Difficulty: I &lt;em&gt;think&lt;/em&gt; there&#38;rsquo;s other hardware out there, and other marketplaces
  2168. for e-books.  Also, paper mostly still has better ergonomics, aside from weight
  2169. and bulk.  But then most of my book reading happens in an easy chair or a
  2170. bathtub, not on an airplane.&lt;/p&gt;
  2171.  
  2172. &lt;h3&gt;laptop and desktop hardware&lt;/h3&gt;
  2173.  
  2174. &lt;p&gt;Some set of world-historically stupid assholes at Intel decided that it would
  2175. be a good idea to &lt;a href=&#34;https://en.wikipedia.org/wiki/Intel_Management_Engine&#34;&gt;install a full-blown operating system completely outside of
  2176. end-user control&lt;/a&gt; on most of the chipsets they&#38;rsquo;ve sold for the last
  2177. decade, so it&#38;rsquo;s even less possible than naive paranoia would suggest to trust
  2178. the hardware I own.&lt;/p&gt;
  2179.  
  2180. &lt;p&gt;Difficulty: Fucked.  I can do quite a bit using relatively open single-board
  2181. ARM machines like the Beaglebone or the Novena, but I can&#38;rsquo;t easily escape
  2182. from the need for a system robust enough to run a bunch of modern web apps.&lt;/p&gt;
  2183.  
  2184. &lt;p class=&#34;centerpiece&#34;&gt; ✣ &lt;/p&gt;
  2185.  
  2186.  
  2187. &lt;p&gt;Further notes to come as I tackle these.&lt;/p&gt;
  2188.  
  2189.  
  2190. &lt;p class=&#34;datelink&#34;&gt;
  2191. &lt;a href=&#34;https://p1k3.com/topics/android&#34;&gt;android&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/fastmail&#34;&gt;fastmail&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/google&#34;&gt;google&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/intel&#34;&gt;intel&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/mail&#34;&gt;mail&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/panopticon&#34;&gt;panopticon&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/self-hosting&#34;&gt;self-hosting&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/warelogging&#34;&gt;warelogging&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2192. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2193. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2194. &lt;a href=&#34;https://p1k3.com/2017/11/29/&#34; title=&#34;29&#34;&gt;29&lt;/a&gt;
  2195. &lt;/p&gt;</content><updated>2017-12-05T06:24:23Z</updated></entry><entry><title>tuesday, november 28</title><link href="https://p1k3.com/2017/11/28"/><id>https://p1k3.com/2017/11/28</id><content type="html">&lt;h1&gt;tuesday, november 28&lt;/h1&gt;
  2196.  
  2197. &lt;p&gt;it helps (maybe it&#39;s a need)&lt;br /&gt;
  2198. to find a place to look outward&lt;br /&gt;
  2199. from, to center&lt;br /&gt;
  2200. a self and order all the&lt;br /&gt;
  2201. pieces of things&lt;/p&gt;
  2202.  
  2203. &lt;p&gt;if a mind is a kind of loop&lt;br /&gt;
  2204. operating on itself, feeding&lt;br /&gt;
  2205. back and amplifying&lt;br /&gt;
  2206. it helps to find some kind&lt;br /&gt;
  2207. of standing wave, some&lt;br /&gt;
  2208. place within the loop to lift above&lt;br /&gt;
  2209. the constant motion&lt;br /&gt;
  2210. some arising approximation of a steady state&lt;br /&gt;
  2211. in all the relentless becoming&lt;/p&gt;
  2212.  
  2213. &lt;p&gt;i had these thoughts sitting&lt;br /&gt;
  2214. on the floor in front of a&lt;br /&gt;
  2215. bookshelf in my bedroom,&lt;br /&gt;
  2216. looking down the spines&lt;br /&gt;
  2217. of the books&lt;/p&gt;
  2218.  
  2219. &lt;p&gt;and touching the&lt;br /&gt;
  2220. covers and pages&lt;br /&gt;
  2221. feeling a certain calm&lt;br /&gt;
  2222. that&#39;s hard for me to reach&lt;br /&gt;
  2223. most of these days&lt;/p&gt;
  2224.  
  2225. &lt;p&gt;and now i think about the sacraments&lt;br /&gt;
  2226. and the scriptures,&lt;br /&gt;
  2227. star trek reruns on netflix,&lt;br /&gt;
  2228. the biting wind across the fields at home,&lt;br /&gt;
  2229. and all of you.&lt;/p&gt;
  2230.  
  2231. &lt;p class=&#34;datelink&#34;&gt;
  2232. &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/reading&#34;&gt;reading&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2233. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2234. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2235. &lt;a href=&#34;https://p1k3.com/2017/11/28/&#34; title=&#34;28&#34;&gt;28&lt;/a&gt;
  2236. &lt;/p&gt;</content><updated>2018-01-02T05:16:47Z</updated></entry><entry><title>Monday, November 27</title><link href="https://p1k3.com/2017/11/27"/><id>https://p1k3.com/2017/11/27</id><content type="html">&lt;h1&gt;Monday, November 27&lt;/h1&gt;
  2237.  
  2238. &lt;p&gt;It&#38;rsquo;s the first Monday after a long weekend, which at this stage of history is a
  2239. reminder that there aren&#38;rsquo;t many good reasons for weekends to be short.&lt;/p&gt;
  2240.  
  2241.  
  2242. &lt;p class=&#34;datelink&#34;&gt;
  2243. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2244. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2245. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2246. &lt;a href=&#34;https://p1k3.com/2017/11/27/&#34; title=&#34;27&#34;&gt;27&lt;/a&gt;
  2247. &lt;/p&gt;</content><updated>2017-12-05T05:43:07Z</updated></entry><entry><title>Friday, November 24 - reading: stories of your life and others</title><link href="https://p1k3.com/2017/11/24"/><id>https://p1k3.com/2017/11/24</id><content type="html">&lt;h1&gt;Friday, November 24&lt;/h1&gt;
  2248.  
  2249. &lt;h2&gt;reading: stories of your life and others&lt;/h2&gt;
  2250.  
  2251. &lt;p&gt;I thought &lt;em&gt;Arrival&lt;/em&gt; was a good movie, so eventually I picked up Ted Chiang&#38;rsquo;s
  2252. &lt;em&gt;Stories of Your Life and Others&lt;/em&gt;, which contains the short piece it&#38;rsquo;s based
  2253. on.&lt;/p&gt;
  2254.  
  2255. &lt;p&gt;I&#38;rsquo;m a bit over halfway through the volume.  It&#38;rsquo;s good stuff.  A reminder of
  2256. how much I used to enjoy short SF.&lt;/p&gt;
  2257.  
  2258.  
  2259. &lt;p class=&#34;datelink&#34;&gt;
  2260. &lt;a href=&#34;https://p1k3.com/topics/reading&#34;&gt;reading&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/sfnal&#34;&gt;sfnal&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2261. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2262. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2263. &lt;a href=&#34;https://p1k3.com/2017/11/24/&#34; title=&#34;24&#34;&gt;24&lt;/a&gt;
  2264. &lt;/p&gt;</content><updated>2018-01-02T05:16:47Z</updated></entry><entry><title>Saturday, November 18 - App::WRT - WRiting Tool, a static site generator and related utilities</title><link href="https://p1k3.com/2017/11/18"/><id>https://p1k3.com/2017/11/18</id><content type="html">&lt;h1&gt;Saturday, November 18&lt;/h1&gt;
  2265.  
  2266. &lt;h2&gt;App::WRT - WRiting Tool, a static site generator and related utilities&lt;/h2&gt;
  2267.  
  2268. &lt;p&gt;Probably a decade after the first time I put it on a TODO list, I finally got
  2269. around to &lt;a href=&#34;https://metacpan.org/release/App-WRT&#34;&gt;publishing this site&#38;rsquo;s underlying software on CPAN&lt;/a&gt;.  It
  2270. didn&#38;rsquo;t used to be called App::WRT; for a long time it was just &lt;code&gt;display.pl&lt;/code&gt;,
  2271. and then &lt;code&gt;Display.pm&lt;/code&gt; when I turned it into (sort of) a library.&lt;/p&gt;
  2272.  
  2273. &lt;p&gt;Last February, I &lt;a href=&#34;/2016/2/5&#34;&gt;switched it&lt;/a&gt; from CGI that ran server-side
  2274. on every page request to a site generator that would render the entire site to
  2275. static HTML files.  That July, after &lt;a href=&#34;/2016/7/11&#34;&gt;agonizing about&lt;/a&gt;
  2276. good command names not already taken by real software, I switched the
  2277. command-line interface from &lt;code&gt;display&lt;/code&gt; to &lt;code&gt;wrt&lt;/code&gt;, short for &lt;b&gt;wr&lt;/b&gt;iting
  2278. &lt;b&gt;t&lt;/b&gt;ool.  CPAN naming guidelines suggest putting this sort of thing in the
  2279. App namespace, so that&#38;rsquo;s what I did.&lt;/p&gt;
  2280.  
  2281. &lt;p&gt;CPAN is the &lt;a href=&#34;https://www.cpan.org/&#34;&gt;Comprehensive Perl Archive Network&lt;/a&gt;, a big repository of
  2282. libraries, utilities, and documentation in Perl.  Which is to say that it&#38;rsquo;s
  2283. Perl&#38;rsquo;s answer to npm, Packagist, RubyGems, PyPI, etc.  (It would probably be
  2284. more accurate to say those things are other languages&#39; answer to CPAN, since
  2285. CPAN dates to the mid-1990s.)&lt;/p&gt;
  2286.  
  2287. &lt;p&gt;I&#38;rsquo;ve generally had a bad experience with language-specific package management
  2288. systems, but after all these years CPAN remains an exception, for all of its
  2289. foibles.  &lt;em&gt;Publishing&lt;/em&gt; a release to CPAN turns out to be a very 1990s / early
  2290. 2000s kind of experience, with a wait to see results and a generally piecemeal
  2291. feeling.  It suffers by comparison to the &#38;ldquo;push a git tag to the remote&#38;rdquo;
  2292. approach to creating a &#38;ldquo;release&#38;rdquo; on GitHub.  On the other hand, it pushed me to
  2293. make a bunch of improvements to the documentation and fill out a handful of the
  2294. features that &lt;code&gt;wrt&lt;/code&gt; needs to be usable as a standalone tool.&lt;/p&gt;
  2295.  
  2296. &lt;p class=&#34;centerpiece&#34;&gt; 🌲 &lt;/p&gt;
  2297.  
  2298.  
  2299. &lt;p&gt;I know no one else will ever use this thing.  In case you did want to,
  2300. installing on most GNU/Linux systems &lt;em&gt;should&lt;/em&gt; be as simple as running:&lt;/p&gt;
  2301.  
  2302. &lt;pre&gt;&lt;code&gt;$ sudo cpan -i App::WRT
  2303. &lt;/code&gt;&lt;/pre&gt;
  2304.  
  2305. &lt;p&gt;Or, if you happen to have &lt;code&gt;cpanm&lt;/code&gt; installed:&lt;/p&gt;
  2306.  
  2307. &lt;pre&gt;&lt;code&gt;$ sudo cpanm App::WRT
  2308. &lt;/code&gt;&lt;/pre&gt;
  2309.  
  2310. &lt;p&gt;Once installed, you should be able to run &lt;code&gt;wrt&lt;/code&gt;:&lt;/p&gt;
  2311.  
  2312. &lt;pre&gt;&lt;code&gt;$ wrt
  2313. wrt - a writing tool
  2314.  
  2315. Usage: /usr/local/bin/wrt [command] [args]
  2316.    wrt init        Initialize a wrt repository
  2317.    wrt display     Print HTML for entries
  2318.    wrt render-all  Render all defined entries to filesystem
  2319.    wrt addprop     Add a property to an entry
  2320.    wrt findprop    Find entries containing certain properties
  2321.    wrt -h          Print this help message
  2322.  
  2323. You must specify a command.
  2324. &lt;/code&gt;&lt;/pre&gt;
  2325.  
  2326. &lt;p&gt;In order to make an entry for the current day, create a file like
  2327. &lt;code&gt;archives/2017/9/18&lt;/code&gt;, and write some HTML in it.  Or use Markdown, like so:&lt;/p&gt;
  2328.  
  2329.  
  2330. &lt;pre&gt;&lt;code&gt;&#38;lt;h1&#38;gt;Saturday, November 18&#38;lt;/&#38;gt;
  2331.  
  2332. &#38;lt;markdown&#38;gt;
  2333. Your text here.
  2334. &#38;lt;/markdown&#38;gt;&lt;/code&gt;&lt;/pre&gt;
  2335.  
  2336. &lt;p&gt;If I live long enough, I &lt;em&gt;might&lt;/em&gt; get around to rewriting wrt in something else,
  2337. but aside from C, I&#38;rsquo;m not sure I could have started out by picking a language
  2338. more boringly likely than Perl to keep working for a couple of decades.&lt;/p&gt;
  2339.  
  2340. &lt;p&gt;The underlying archive format could be better in some ways, but so far it&#38;rsquo;s
  2341. also been fairly future-proof.  My only real worry is that one of these days,
  2342. as the open web vanishes further into the maw of facegooglemazon, HTML itself
  2343. may start to seem like a bad idea.  In that case, however, it should be pretty
  2344. easy to convert the simple subset of HTML I&#38;rsquo;m using here to some other
  2345. language.&lt;/p&gt;
  2346.  
  2347.  
  2348. &lt;p class=&#34;datelink&#34;&gt;
  2349. &lt;a href=&#34;https://p1k3.com/topics/cli&#34;&gt;cli&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/perl&#34;&gt;perl&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/shell&#34;&gt;shell&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/warelogging&#34;&gt;warelogging&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/wrt&#34;&gt;wrt&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2350. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2351. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2352. &lt;a href=&#34;https://p1k3.com/2017/11/18/&#34; title=&#34;18&#34;&gt;18&lt;/a&gt;
  2353. &lt;/p&gt;</content><updated>2017-11-21T03:31:58Z</updated></entry><entry><title>Monday, November 13</title><link href="https://p1k3.com/2017/11/13"/><id>https://p1k3.com/2017/11/13</id><content type="html">&lt;h1&gt;Monday, November 13&lt;/h1&gt;
  2354.  
  2355. &lt;div class=photos&gt;
  2356. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7623.JPG&#34;&gt;
  2357.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7623.JPG&#34; width=&#34;200&#34;&gt;
  2358. &lt;/a&gt;
  2359. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7667.JPG&#34;&gt;
  2360.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7667.JPG&#34; width=&#34;200&#34;&gt;
  2361. &lt;/a&gt;
  2362. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7690.JPG&#34;&gt;
  2363.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7690.JPG&#34; width=&#34;200&#34;&gt;
  2364. &lt;/a&gt;
  2365. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7696.JPG&#34;&gt;
  2366.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7696.JPG&#34; width=&#34;200&#34;&gt;
  2367. &lt;/a&gt;
  2368. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7702.JPG&#34;&gt;
  2369.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7702.JPG&#34; width=&#34;200&#34;&gt;
  2370. &lt;/a&gt;
  2371. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7707.JPG&#34;&gt;
  2372.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7707.JPG&#34; width=&#34;200&#34;&gt;
  2373. &lt;/a&gt;
  2374. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7711.JPG&#34;&gt;
  2375.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7711.JPG&#34; width=&#34;200&#34;&gt;
  2376. &lt;/a&gt;
  2377. &lt;/div&gt;
  2378.  
  2379. &lt;p class=&#34;datelink&#34;&gt;
  2380. &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2381. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2382. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2383. &lt;a href=&#34;https://p1k3.com/2017/11/13/&#34; title=&#34;13&#34;&gt;13&lt;/a&gt;
  2384. &lt;/p&gt;</content><updated>2017-11-14T05:02:57Z</updated></entry><entry><title>wednesday, november 8</title><link href="https://p1k3.com/2017/11/8"/><id>https://p1k3.com/2017/11/8</id><content type="html">&lt;h1&gt;wednesday, november 8&lt;/h1&gt;
  2385.  
  2386. &lt;p&gt;the snow melting over the green grass&lt;br /&gt;
  2387. the leaves half fallen&lt;br /&gt;
  2388. three blackbirds chasing a hawk&lt;br /&gt;
  2389. haze over the flatirons and&lt;br /&gt;
  2390. a single lenticular disc of&lt;br /&gt;
  2391. cloud above the canyon&lt;/p&gt;
  2392.  
  2393. &lt;p class=&#34;datelink&#34;&gt;
  2394. &lt;a href=&#34;https://p1k3.com/topics/boulder&#34;&gt;boulder&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2395. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2396. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2397. &lt;a href=&#34;https://p1k3.com/2017/11/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt;
  2398. &lt;/p&gt;</content><updated>2017-11-09T21:24:51Z</updated></entry><entry><title>Tuesday, November  7 - mushrooms</title><link href="https://p1k3.com/2017/11/7"/><id>https://p1k3.com/2017/11/7</id><content type="html">
  2399. &lt;h1&gt;Tuesday, November  7&lt;/h1&gt;
  2400.  
  2401. &lt;h2&gt;mushrooms&lt;/h2&gt;
  2402.  
  2403. &lt;p&gt;A couple of summers ago, we took a roadtrip with some good friends of ours,
  2404. meeting them in Slovenia and taking a van down to Croatia and along the coast
  2405. into Albania.&lt;/p&gt;
  2406.  
  2407. &lt;p&gt;We saw a lot of remarkable things, and spent time with a lot of remarkable
  2408. people.  This isn&#38;rsquo;t really a post about most of that, though.  This is a post
  2409. about the Albanian built environment.&lt;/p&gt;
  2410.  
  2411. &lt;p&gt;Albanian architecture is &lt;em&gt;nuts&lt;/em&gt;.  Our friend, a local by birth, described the
  2412. predominant mode of building as &#38;ldquo;mushrooms&#38;rdquo;.  From googling, &#38;ldquo;concrete
  2413. mushrooms&#38;rdquo; is a term often applied to the pillboxes scattered paranoically all
  2414. over the country during the course of the &lt;a href=&#34;https://en.wikipedia.org/wiki/Enver_Hoxha&#34;&gt;Hoxha&lt;/a&gt; dictatorship.  In her
  2415. usage, though, it was more along the lines of: These ridiculous things that
  2416. grew up all over the landscape like fungus after a rain once communism
  2417. collapsed.&lt;/p&gt;
  2418.  
  2419. &lt;p&gt;One of the first things you notice is concrete and rebar (&#38;ldquo;the national plant&#38;rdquo;,
  2420. as a friend remarked).  Reinforced concrete is everywhere, and little tufts of
  2421. rebar seem to protrude from every other roof and column.  This is because few
  2422. of the buildings started within living memory ever seem to be quite &lt;em&gt;finished&lt;/em&gt;.
  2423. It&#38;rsquo;s routine to see three or four level structures which are mostly open
  2424. concrete boxes with businesses or housing built out only the first floor, the
  2425. top story looking ready to serve as platform for the next layer once someone
  2426. gets around to it.&lt;/p&gt;
  2427.  
  2428. &lt;p&gt;I don&#38;rsquo;t have the vocabulary or the eye to describe the style, really, but
  2429. there&#38;rsquo;s a kind of characteristic hodgepodge of clashing designs and types.
  2430. Brutalism and weird outbursts of eclecticism coexist with a
  2431. neo-classical-by-way-of-Las-Vegas vibe, sometimes in the same building.
  2432. Materials will shift radically halfway through a structure.  Sometimes you look
  2433. over and there&#38;rsquo;s just a tiny house build on the roof of the casino-hotel next
  2434. door.  Multi-story coffeeshop-hotel-gas-stations with cavernous interiors are a
  2435. routine feature of the landscape, as are empty shells scattered at odd angles
  2436. in the middle of fields.&lt;/p&gt;
  2437.  
  2438. &lt;p&gt;Anyway, I took some pictures, thinking that at some point I&#38;rsquo;d try to do a kind
  2439. of photo essay about this.  They aren&#38;rsquo;t very good, but they catch some of the
  2440. flavor and a handful seemed worth posting, even though I don&#38;rsquo;t really have the
  2441. time and energy to research and write about the subject like it deserves.&lt;/p&gt;
  2442.  
  2443. &lt;p&gt;(I should also say that Albania is a fascinating place for many reasons, and
  2444. the buildings are probably the least of it, though they point to a lot in the
  2445. history.)&lt;/p&gt;
  2446.  
  2447.  
  2448. &lt;div class=photos&gt;
  2449. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5937.JPG&#34;&gt;
  2450.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5937.JPG&#34; width=&#34;200&#34;&gt;
  2451. &lt;/a&gt;
  2452. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5955.JPG&#34;&gt;
  2453.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5955.JPG&#34; width=&#34;150&#34;&gt;
  2454. &lt;/a&gt;
  2455. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5966.JPG&#34;&gt;
  2456.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5966.JPG&#34; width=&#34;200&#34;&gt;
  2457. &lt;/a&gt;
  2458. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5972.JPG&#34;&gt;
  2459.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5972.JPG&#34; width=&#34;200&#34;&gt;
  2460. &lt;/a&gt;
  2461. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5974.JPG&#34;&gt;
  2462.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5974.JPG&#34; width=&#34;200&#34;&gt;
  2463. &lt;/a&gt;
  2464. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5991.JPG&#34;&gt;
  2465.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5991.JPG&#34; width=&#34;200&#34;&gt;
  2466. &lt;/a&gt;
  2467. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5999.JPG&#34;&gt;
  2468.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5999.JPG&#34; width=&#34;200&#34;&gt;
  2469. &lt;/a&gt;
  2470. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6011.JPG&#34;&gt;
  2471.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6011.JPG&#34; width=&#34;150&#34;&gt;
  2472. &lt;/a&gt;
  2473. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6026.JPG&#34;&gt;
  2474.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6026.JPG&#34; width=&#34;150&#34;&gt;
  2475. &lt;/a&gt;
  2476. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6027.JPG&#34;&gt;
  2477.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6027.JPG&#34; width=&#34;200&#34;&gt;
  2478. &lt;/a&gt;
  2479. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6030.JPG&#34;&gt;
  2480.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6030.JPG&#34; width=&#34;200&#34;&gt;
  2481. &lt;/a&gt;
  2482. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6076.JPG&#34;&gt;
  2483.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6076.JPG&#34; width=&#34;200&#34;&gt;
  2484. &lt;/a&gt;
  2485. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6080.JPG&#34;&gt;
  2486.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6080.JPG&#34; width=&#34;200&#34;&gt;
  2487. &lt;/a&gt;
  2488. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6090.JPG&#34;&gt;
  2489.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6090.JPG&#34; width=&#34;200&#34;&gt;
  2490. &lt;/a&gt;
  2491. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6096.JPG&#34;&gt;
  2492.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6096.JPG&#34; width=&#34;200&#34;&gt;
  2493. &lt;/a&gt;
  2494. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6097.JPG&#34;&gt;
  2495.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6097.JPG&#34; width=&#34;200&#34;&gt;
  2496. &lt;/a&gt;
  2497. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6116.JPG&#34;&gt;
  2498.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6116.JPG&#34; width=&#34;200&#34;&gt;
  2499. &lt;/a&gt;
  2500. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6117.JPG&#34;&gt;
  2501.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6117.JPG&#34; width=&#34;200&#34;&gt;
  2502. &lt;/a&gt;
  2503. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6118.JPG&#34;&gt;
  2504.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6118.JPG&#34; width=&#34;150&#34;&gt;
  2505. &lt;/a&gt;
  2506. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6122.JPG&#34;&gt;
  2507.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6122.JPG&#34; width=&#34;200&#34;&gt;
  2508. &lt;/a&gt;
  2509. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6147.JPG&#34;&gt;
  2510.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6147.JPG&#34; width=&#34;200&#34;&gt;
  2511. &lt;/a&gt;
  2512. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6231.JPG&#34;&gt;
  2513.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6231.JPG&#34; width=&#34;200&#34;&gt;
  2514. &lt;/a&gt;
  2515. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6232.JPG&#34;&gt;
  2516.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6232.JPG&#34; width=&#34;200&#34;&gt;
  2517. &lt;/a&gt;
  2518. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6248.JPG&#34;&gt;
  2519.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6248.JPG&#34; width=&#34;200&#34;&gt;
  2520. &lt;/a&gt;
  2521. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6250.JPG&#34;&gt;
  2522.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6250.JPG&#34; width=&#34;200&#34;&gt;
  2523. &lt;/a&gt;
  2524. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6251.JPG&#34;&gt;
  2525.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6251.JPG&#34; width=&#34;200&#34;&gt;
  2526. &lt;/a&gt;
  2527. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6259.JPG&#34;&gt;
  2528.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6259.JPG&#34; width=&#34;150&#34;&gt;
  2529. &lt;/a&gt;
  2530. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6260.JPG&#34;&gt;
  2531.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6260.JPG&#34; width=&#34;200&#34;&gt;
  2532. &lt;/a&gt;
  2533. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6263.JPG&#34;&gt;
  2534.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6263.JPG&#34; width=&#34;200&#34;&gt;
  2535. &lt;/a&gt;
  2536. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6264.JPG&#34;&gt;
  2537.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6264.JPG&#34; width=&#34;200&#34;&gt;
  2538. &lt;/a&gt;
  2539. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6303.JPG&#34;&gt;
  2540.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6303.JPG&#34; width=&#34;150&#34;&gt;
  2541. &lt;/a&gt;
  2542. &lt;a href=&#34;/files/photos/./mushrooms/albania.jpg&#34;&gt;
  2543.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/albania.jpg&#34; width=&#34;200&#34;&gt;
  2544. &lt;/a&gt;
  2545. &lt;a href=&#34;/files/photos/./mushrooms/bldg.jpg&#34;&gt;
  2546.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/bldg.jpg&#34; width=&#34;150&#34;&gt;
  2547. &lt;/a&gt;
  2548. &lt;/div&gt;
  2549.  
  2550. &lt;p class=&#34;datelink&#34;&gt;
  2551. &lt;a href=&#34;https://p1k3.com/topics/albania&#34;&gt;albania&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/europe&#34;&gt;europe&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2552. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2553. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2554. &lt;a href=&#34;https://p1k3.com/2017/11/7/&#34; title=&#34;7&#34;&gt;7&lt;/a&gt;
  2555. &lt;/p&gt;</content><updated>2017-11-10T23:45:35Z</updated></entry><entry><title>thursday, october 26</title><link href="https://p1k3.com/2017/10/26"/><id>https://p1k3.com/2017/10/26</id><content type="html">&lt;h1&gt;thursday, october 26&lt;/h1&gt;
  2556.  
  2557. &lt;p&gt;&lt;br /&gt;
  2558. outside the windows the newly&lt;br /&gt;
  2559. installed LED streetlights&lt;br /&gt;
  2560. are bright against the&lt;br /&gt;
  2561. falling snow, the&lt;br /&gt;
  2562. halfnaked trees and&lt;br /&gt;
  2563. wet dark pavement&lt;br /&gt;
  2564. the hills half-faded into&lt;br /&gt;
  2565. clouds and falling light&lt;/p&gt;
  2566.  
  2567. &lt;p&gt;inside the dodgers and the&lt;br /&gt;
  2568. astros are tied on the&lt;br /&gt;
  2569. tv over the bar&lt;br /&gt;
  2570. bottom of the 5th&lt;/p&gt;
  2571.  
  2572. &lt;p&gt;in the ads all the&lt;br /&gt;
  2573. grinning baseball guys&lt;br /&gt;
  2574. are wearing big&lt;br /&gt;
  2575. chunky watches&lt;/p&gt;
  2576.  
  2577. &lt;p&gt;it&#39;s a quiet night&lt;br /&gt;
  2578. the tourist traffic&lt;br /&gt;
  2579. falls off this time of year,&lt;br /&gt;
  2580. if it never completely&lt;br /&gt;
  2581. disappears&lt;/p&gt;
  2582.  
  2583. &lt;p&gt;the ones i can spot&lt;br /&gt;
  2584. for sure have that&lt;br /&gt;
  2585. midwestern look, a&lt;br /&gt;
  2586. kind of squared-off&lt;br /&gt;
  2587. masculinity&lt;/p&gt;
  2588.  
  2589. &lt;p&gt;they&#39;ve been friends since&lt;br /&gt;
  2590. college, i&#39;m guessing, or maybe&lt;br /&gt;
  2591. highschool&lt;/p&gt;
  2592.  
  2593. &lt;p&gt;the one with the beard has&lt;br /&gt;
  2594. a wife back home, young children&lt;br /&gt;
  2595. the taller one was in&lt;br /&gt;
  2596. the army for a while&lt;br /&gt;
  2597. or maybe he played football&lt;/p&gt;
  2598.  
  2599. &lt;p&gt;at any rate there is&lt;br /&gt;
  2600. in how he holds himself&lt;br /&gt;
  2601. that thing you see sometimes in&lt;br /&gt;
  2602. soldiers and athletes&lt;/p&gt;
  2603.  
  2604. &lt;p&gt;i imagine them&lt;br /&gt;
  2605. later on, leaving&lt;br /&gt;
  2606. the pot shop for&lt;br /&gt;
  2607. the airbnb,&lt;br /&gt;
  2608. small paper bag&lt;br /&gt;
  2609. in hand&lt;/p&gt;
  2610.  
  2611. &lt;p&gt;they stand outside to smoke&lt;br /&gt;
  2612. in the october cold&lt;br /&gt;
  2613. the bearded guy coughs&lt;br /&gt;
  2614. for minutes on end&lt;/p&gt;
  2615.  
  2616. &lt;p&gt;they haven&#39;t done this&lt;br /&gt;
  2617. since they were kids.&lt;br /&gt;
  2618. &lt;/p&gt;
  2619.  
  2620. &lt;p class=&#34;datelink&#34;&gt;
  2621. &lt;a href=&#34;https://p1k3.com/topics/baseball&#34;&gt;baseball&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/tv&#34;&gt;tv&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2622. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2623. &lt;a href=&#34;https://p1k3.com/2017/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  2624. &lt;a href=&#34;https://p1k3.com/2017/10/26/&#34; title=&#34;26&#34;&gt;26&lt;/a&gt;
  2625. &lt;/p&gt;</content><updated>2018-04-21T21:44:39Z</updated></entry><entry><title>thursday, october 19</title><link href="https://p1k3.com/2017/10/19"/><id>https://p1k3.com/2017/10/19</id><content type="html">&lt;h1&gt;thursday, october 19&lt;/h1&gt;
  2626.  
  2627. &lt;p&gt;the late afternoon&lt;br /&gt;
  2628. of the year gathers&lt;br /&gt;
  2629. around the town&lt;br /&gt;
  2630. where we live&lt;/p&gt;
  2631.  
  2632. &lt;p&gt;bright leaves, the&lt;br /&gt;
  2633. varicolored grass&lt;br /&gt;
  2634. tangles of vegetative&lt;br /&gt;
  2635. debris in the ditches&lt;/p&gt;
  2636.  
  2637. &lt;p&gt;the shaggy final&lt;br /&gt;
  2638. exuberance of&lt;br /&gt;
  2639. growth and flowering&lt;br /&gt;
  2640. into seed on warm&lt;br /&gt;
  2641. october days;&lt;br /&gt;
  2642. the ragged inroads&lt;br /&gt;
  2643. made by frost&lt;br /&gt;
  2644. and wind&lt;/p&gt;
  2645.  
  2646. &lt;p class=&#34;datelink&#34;&gt;
  2647. &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2648. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2649. &lt;a href=&#34;https://p1k3.com/2017/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  2650. &lt;a href=&#34;https://p1k3.com/2017/10/19/&#34; title=&#34;19&#34;&gt;19&lt;/a&gt;
  2651. &lt;/p&gt;</content><updated>2017-10-19T21:28:58Z</updated></entry><entry><title>Monday, October 16 - decades</title><link href="https://p1k3.com/2017/10/16"/><id>https://p1k3.com/2017/10/16</id><content type="html">&lt;h1&gt;Monday, October 16&lt;/h1&gt;
  2652.  
  2653. &lt;h2&gt;decades&lt;/h2&gt;
  2654.  
  2655. &lt;p&gt;Paul Ford &lt;a href=&#34;http://www.ftrain.com/20.html&#34;&gt;wrote about starting
  2656. ftrain 20 years ago&lt;/a&gt;:
  2657.  
  2658. &lt;blockquote&gt;
  2659.  
  2660.  &lt;p&gt;I started this website 20 years ago, give or take a week. The original
  2661.  address was &lt;tt&gt;www.interactive.net/~ford&lt;/tt&gt;. Eventually it migrated here
  2662.  into the form you see. I took it very seriously for many years and it earned
  2663.  me thousands of readers, thousands of emails, and tons of opportunity. It was
  2664.  better at generating opportunity than money. I drifted away for all the
  2665.  regular reasons.&lt;/p&gt;
  2666.  
  2667. &lt;/blockquote&gt;
  2668.  
  2669. &lt;p&gt;Which got me thinking:  The oldest surviving bits of this website go back to
  2670. &lt;a href=&#34;/1997/4/&#34;&gt;April of 1997&lt;/a&gt;, so it&#39;s 20 years, give or take six
  2671. months.  It lived other places for a while (GeoCities and a shell box with a
  2672. tilde in the URL) until I actually got a domain for it.  p1k3.com was the first
  2673. domain I ever bought, and I chose it because my middle name is Pike and I like
  2674. the number 13 and it was four characters long, which even in the early years of
  2675. this century was getting to be kind of hard to come up with.  There was also
  2676. this running joke with friends from IRC, about whether a pike was a weapon or a
  2677. fish, and I guess that must have played into my thinking somehow.&lt;/p&gt;
  2678.  
  2679. &lt;p&gt;p1k3 has clearly not made me into a low-key internet celebrity.  I don&#39;t
  2680. know about opportunity, but it has helped me get a couple of good jobs, and
  2681. probably prevented me from getting several more bad ones.  To guess at its
  2682. current readership, I think that about a dozen humans might see this post sooner
  2683. or later.&lt;/p&gt;
  2684.  
  2685. &lt;p&gt;I wrote one possible variation on the post you&#39;re reading now &lt;a
  2686. href=&#34;https://p1k3.com/2017/1/2/&#34;&gt;back in February&lt;/a&gt; &#38;mdash; the one where
  2687. I regret writing so much stupid bullshit.  That one doesn&#39;t really explain
  2688. why I&#39;ve written so much less this year than most, though.  This other one where
  2689. I &lt;a href=&#34;/2017/2/4/&#34;&gt;worry about self-surveillance&lt;/a&gt; in an age of weaponized
  2690. data and network fascists comes a lot closer to the mark.&lt;/p&gt;
  2691.  
  2692. &lt;p&gt;In 2017, I&#39;ve fully given up on some things.  A big one is the World Wide
  2693. Web.  The &#34;open web&#34;, as such, is dead.  Or at best on life support.  The
  2694. actually existing web is, mostly, bad.  It&#39;s an abject failure in the terms I
  2695. thought I was involved with it on, and its architecture has helped bootstrap an
  2696. internet that&#39;s hostile to my values, if not ultimately to human life
  2697. itself.&lt;/p&gt;
  2698.  
  2699. &lt;p&gt;It&#39;s no longer possible to use the web in a way that respects your privacy,
  2700. autonomy, basic personhood, etc.  And for the same reasons, it&#39;s incredibly
  2701. difficult to work on the web for a living in any kind of ethical fashion.&lt;/p&gt;
  2702.  
  2703. &lt;p&gt;But then:  So what?&lt;/p&gt;
  2704.  
  2705. &lt;p&gt;I think it&#39;s broadly true that most of us should treat the network as a
  2706. hostile environment, and that any information we publish about ourselves will
  2707. be used against us and our communities by systems we have no control over
  2708. &#38;mdash; systems operating under few legal constraints, answering only to the
  2709. profit motive, under the authority of &lt;i&gt;complete assholes&lt;/i&gt; with no sense of
  2710. responsibility, proportion, or historical perspective.&lt;/p&gt;
  2711.  
  2712. &lt;p&gt;It&#39;s really tempting, in the face of this conviction, to shut up and just
  2713. focus on sequestering myself from the network to whatever limited extent that&#39;s
  2714. still possible.&lt;/p&gt;
  2715.  
  2716. &lt;p&gt;On the other hand.  Writing is one of the only real powers I&#39;ve ever had,
  2717. and the surface of this terrible website is still mine to write on.  The web is
  2718. dead to me, as a hope or a cause, and the world it&#39;s made &#38;mdash; the world
  2719. that so many thousands of us helped to make &#38;mdash; is in bad shape and getting
  2720. worse.  But why should I give up my only real canvas, the only place where I
  2721. have any voice at all?&lt;/p&gt;
  2722.  
  2723. &lt;p&gt;Possibly (almost certainly) having a voice is itself an illusion, irrelevant
  2724. to the course of things now.  But I guess it&#39;s something.&lt;/p&gt;
  2725.  
  2726. &lt;p class=&#34;datelink&#34;&gt;
  2727. &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2728. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2729. &lt;a href=&#34;https://p1k3.com/2017/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  2730. &lt;a href=&#34;https://p1k3.com/2017/10/16/&#34; title=&#34;16&#34;&gt;16&lt;/a&gt;
  2731. &lt;/p&gt;</content><updated>2017-11-10T23:45:35Z</updated></entry><entry><title>Saturday, September 23</title><link href="https://p1k3.com/2017/9/23"/><id>https://p1k3.com/2017/9/23</id><content type="html">&lt;h1&gt;Saturday, September 23&lt;/h1&gt;
  2732.  
  2733. &lt;div class=photos&gt;
  2734. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_7527.JPG&#34;&gt;
  2735.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_7527.JPG&#34; width=&#34;200&#34;&gt;
  2736. &lt;/a&gt;
  2737. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_7953.JPG&#34;&gt;
  2738.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_7953.JPG&#34; width=&#34;200&#34;&gt;
  2739. &lt;/a&gt;
  2740. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_7978.JPG&#34;&gt;
  2741.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_7978.JPG&#34; width=&#34;200&#34;&gt;
  2742. &lt;/a&gt;
  2743. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8002.JPG&#34;&gt;
  2744.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8002.JPG&#34; width=&#34;200&#34;&gt;
  2745. &lt;/a&gt;
  2746. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8026.JPG&#34;&gt;
  2747.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8026.JPG&#34; width=&#34;200&#34;&gt;
  2748. &lt;/a&gt;
  2749. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8049.JPG&#34;&gt;
  2750.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8049.JPG&#34; width=&#34;200&#34;&gt;
  2751. &lt;/a&gt;
  2752. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8056.JPG&#34;&gt;
  2753.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8056.JPG&#34; width=&#34;200&#34;&gt;
  2754. &lt;/a&gt;
  2755. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8070.JPG&#34;&gt;
  2756.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8070.JPG&#34; width=&#34;200&#34;&gt;
  2757. &lt;/a&gt;
  2758. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8086.JPG&#34;&gt;
  2759.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8086.JPG&#34; width=&#34;200&#34;&gt;
  2760. &lt;/a&gt;
  2761. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8095.JPG&#34;&gt;
  2762.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8095.JPG&#34; width=&#34;200&#34;&gt;
  2763. &lt;/a&gt;
  2764. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8100.JPG&#34;&gt;
  2765.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8100.JPG&#34; width=&#34;200&#34;&gt;
  2766. &lt;/a&gt;
  2767. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8107.JPG&#34;&gt;
  2768.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8107.JPG&#34; width=&#34;200&#34;&gt;
  2769. &lt;/a&gt;
  2770. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8143.JPG&#34;&gt;
  2771.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8143.JPG&#34; width=&#34;200&#34;&gt;
  2772. &lt;/a&gt;
  2773. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8155.JPG&#34;&gt;
  2774.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8155.JPG&#34; width=&#34;200&#34;&gt;
  2775. &lt;/a&gt;
  2776. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8210.JPG&#34;&gt;
  2777.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8210.JPG&#34; width=&#34;200&#34;&gt;
  2778. &lt;/a&gt;
  2779. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8233.JPG&#34;&gt;
  2780.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8233.JPG&#34; width=&#34;200&#34;&gt;
  2781. &lt;/a&gt;
  2782. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8240.JPG&#34;&gt;
  2783.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8240.JPG&#34; width=&#34;200&#34;&gt;
  2784. &lt;/a&gt;
  2785. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8245.JPG&#34;&gt;
  2786.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8245.JPG&#34; width=&#34;200&#34;&gt;
  2787. &lt;/a&gt;
  2788. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8248.JPG&#34;&gt;
  2789.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8248.JPG&#34; width=&#34;200&#34;&gt;
  2790. &lt;/a&gt;
  2791. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8251.JPG&#34;&gt;
  2792.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8251.JPG&#34; width=&#34;200&#34;&gt;
  2793. &lt;/a&gt;
  2794. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8260.JPG&#34;&gt;
  2795.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8260.JPG&#34; width=&#34;200&#34;&gt;
  2796. &lt;/a&gt;
  2797. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8267.JPG&#34;&gt;
  2798.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8267.JPG&#34; width=&#34;200&#34;&gt;
  2799. &lt;/a&gt;
  2800. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8292.JPG&#34;&gt;
  2801.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8292.JPG&#34; width=&#34;200&#34;&gt;
  2802. &lt;/a&gt;
  2803. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8348.JPG&#34;&gt;
  2804.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8348.JPG&#34; width=&#34;200&#34;&gt;
  2805. &lt;/a&gt;
  2806. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8351.JPG&#34;&gt;
  2807.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8351.JPG&#34; width=&#34;200&#34;&gt;
  2808. &lt;/a&gt;
  2809. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8384.JPG&#34;&gt;
  2810.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8384.JPG&#34; width=&#34;200&#34;&gt;
  2811. &lt;/a&gt;
  2812. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8410.JPG&#34;&gt;
  2813.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8410.JPG&#34; width=&#34;200&#34;&gt;
  2814. &lt;/a&gt;
  2815. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8416.JPG&#34;&gt;
  2816.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8416.JPG&#34; width=&#34;200&#34;&gt;
  2817. &lt;/a&gt;
  2818. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8424.JPG&#34;&gt;
  2819.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8424.JPG&#34; width=&#34;200&#34;&gt;
  2820. &lt;/a&gt;
  2821. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8443.JPG&#34;&gt;
  2822.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8443.JPG&#34; width=&#34;200&#34;&gt;
  2823. &lt;/a&gt;
  2824. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8471.JPG&#34;&gt;
  2825.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8471.JPG&#34; width=&#34;200&#34;&gt;
  2826. &lt;/a&gt;
  2827. &lt;/div&gt;
  2828.  
  2829. &lt;p class=&#34;datelink&#34;&gt;
  2830. &lt;a href=&#34;https://p1k3.com/topics/burning-man&#34;&gt;burning-man&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/cat&#34;&gt;cat&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/kansas&#34;&gt;kansas&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2831. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2832. &lt;a href=&#34;https://p1k3.com/2017/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  2833. &lt;a href=&#34;https://p1k3.com/2017/9/23/&#34; title=&#34;23&#34;&gt;23&lt;/a&gt;
  2834. &lt;/p&gt;</content><updated>2017-09-24T05:41:11Z</updated></entry><entry><title>Thursday, August 10 - catenating files in order of modification time, a bad solution</title><link href="https://p1k3.com/2017/8/10"/><id>https://p1k3.com/2017/8/10</id><content type="html">&lt;h1&gt;Thursday, August 10&lt;/h1&gt;
  2835.  
  2836. &lt;h2&gt;catenating files in order of modification time, a bad solution&lt;/h2&gt;
  2837.  
  2838. &lt;p&gt;Setting: Linux - a recent Ubuntu.  GNU coreutils.&lt;/p&gt;
  2839.  
  2840. &lt;p&gt;I wanted to join a large set of small logfiles together into a single file, in
  2841. the order they were originally written.  The list of files &lt;a href=&#34;https://wiki.debian.org/CommonErrorMessages/ArgumentListTooLong&#34;&gt;exceeded
  2842. ARG_MAX&lt;/a&gt;, so &lt;code&gt;cat * &#38;gt; foo&lt;/code&gt; would fail with:&lt;/p&gt;
  2843.  
  2844. &lt;pre&gt;&lt;code&gt;bash: /bin/cat: Argument list too long
  2845. &lt;/code&gt;&lt;/pre&gt;
  2846.  
  2847. &lt;p&gt;I knew I&#38;rsquo;d probably use some sort of &lt;code&gt;find | xargs&lt;/code&gt; combo, with NULs instead of
  2848. newlines because I couldn&#38;rsquo;t be entirely sure that logfiles would never have
  2849. spaces or other weirdness in the names.&lt;/p&gt;
  2850.  
  2851. &lt;p&gt;As usual, there&#38;rsquo;s a set of &lt;a href=&#34;https://superuser.com/questions/294161/unix-linux-find-and-sort-by-date-modified&#34;&gt;StackExchange answers&lt;/a&gt; for this.  I
  2852. wound up writing this ridiculous variant:&lt;/p&gt;
  2853.  
  2854. &lt;pre&gt;&lt;code&gt;find . -name &#39;*.log&#39; -printf &#39;%[email protected] %p\0&#39; |
  2855.  sort -nz |
  2856.  sed -Ez &#39;s/^[^ ]+ (.*)$/\1/&#39; |
  2857.  xargs -0 cat &#38;gt; all
  2858. &lt;/code&gt;&lt;/pre&gt;
  2859.  
  2860. &lt;p&gt;A script with a test and some explanatory comments:&lt;/p&gt;
  2861.  
  2862. &lt;pre&gt;&lt;code&gt;#!/bin/sh
  2863.  
  2864. # create some test files:
  2865. echo &#34;a&#34; &#38;gt; &#34;a a.log&#34;
  2866. echo &#34;b&#34; &#38;gt; &#34;b b.log&#34;
  2867. echo &#34;c&#34; &#38;gt; &#34;c c.log&#34;
  2868.  
  2869. # print mtime, space, full path to file, separated by NULs:
  2870. find . -name &#39;*.log&#39; -printf &#39;%[email protected] %p\0&#39; |
  2871.  
  2872.  # the -z option to GNU sort(1) and sed(1) treats NUL as line delimiter
  2873.  
  2874.  # sort lines numerically:
  2875.  sort -nz |
  2876.  
  2877.  # strip leading timestamp - I&#39;d use cut(1) here but it lacks a -z option:
  2878.  sed -Ez &#39;s/^[^ ]+ (.*)$/\1/&#39; |
  2879.  
  2880.  # feed filenames, separated by NULs, to cat(1), and
  2881.  # redirect output to a file called &#34;all&#34;:
  2882.  xargs -0 cat &#38;gt; all
  2883.  
  2884. cat all
  2885. &lt;/code&gt;&lt;/pre&gt;
  2886.  
  2887. &lt;p&gt;When run, this outputs:&lt;/p&gt;
  2888.  
  2889. &lt;pre&gt;&lt;code&gt;a
  2890. b
  2891. c
  2892. &lt;/code&gt;&lt;/pre&gt;
  2893.  
  2894. &lt;p&gt;I think this works.  It is, no doubt, several kinds of wrong.  It does function
  2895. as a useful illustration of how silly things can get when everything is a
  2896. string and quoting problems take over an otherwise simple solution.  find(1)
  2897. and xargs(1) really seem to live in the space where classical Unix shell and
  2898. filesystem approaches expose their sharp edges quickly.&lt;/p&gt;
  2899.  
  2900.  
  2901. &lt;p class=&#34;datelink&#34;&gt;
  2902. &lt;a href=&#34;https://p1k3.com/topics/shell&#34;&gt;shell&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2903. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2904. &lt;a href=&#34;https://p1k3.com/2017/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  2905. &lt;a href=&#34;https://p1k3.com/2017/8/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt;
  2906. &lt;/p&gt;</content><updated>2017-08-11T05:54:00Z</updated></entry><entry><title>friday, august  4</title><link href="https://p1k3.com/2017/8/4"/><id>https://p1k3.com/2017/8/4</id><content type="html">&lt;h1&gt;friday, august  4&lt;/h1&gt;
  2907.  
  2908. &lt;p&gt;we&#39;re a fire&lt;br /&gt;
  2909. burning in the fibers&lt;br /&gt;
  2910. and tissues of the world&lt;/p&gt;
  2911.  
  2912. &lt;p class=&#34;datelink&#34;&gt;
  2913. &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2914. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2915. &lt;a href=&#34;https://p1k3.com/2017/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  2916. &lt;a href=&#34;https://p1k3.com/2017/8/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt;
  2917. &lt;/p&gt;</content><updated>2017-08-04T23:45:33Z</updated></entry><entry><title>Wednesday, July 19</title><link href="https://p1k3.com/2017/7/19"/><id>https://p1k3.com/2017/7/19</id><content type="html">&lt;h1&gt;Wednesday, July 19&lt;/h1&gt;
  2918.  
  2919. &lt;p&gt;My Uncle retired from decades as the pastor of two Lutheran congregations in
  2920. Kansas this past weekend, so I rented a car in Boulder and drove across a swath
  2921. of the High Plains to hear him preach a final service and attend a retirement
  2922. party, followed by loading boxes onto a U-Haul.&lt;/p&gt;
  2923.  
  2924. &lt;p&gt;Along the way I stopped at a garage sale and bought two boxes of cassette tapes
  2925. for $2 each.  It&#38;rsquo;s classic country for the most part:  Willie Nelson, Hank
  2926. Snow, Jim Reeves, Patsy Cline, Ray Price, Marty Robbins.  Outliers include the
  2927. Andrews Sisters and some big band material.  I got boxes 19 and 13.  The tapes
  2928. inside each have a little green tag made with one of those label makers that
  2929. punches the letters into a strip of adhesive plastic.  Box 19 contains tapes
  2930. B115 through B144.  The individul slots in the tape boxes are also labeled.&lt;/p&gt;
  2931.  
  2932. &lt;p&gt;This was clearly part of a lifetime collection; the guy I bought them from said
  2933. they&#38;rsquo;d picked them up from a sale and the owner had everything catalogued,
  2934. tapes and records.  If I&#38;rsquo;d been in a little different frame of mind I&#38;rsquo;d probably
  2935. have loaded up the whole thing.&lt;/p&gt;
  2936.  
  2937.  
  2938. &lt;p class=&#34;datelink&#34;&gt;
  2939. &lt;a href=&#34;https://p1k3.com/topics/kansas&#34;&gt;kansas&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2940. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2941. &lt;a href=&#34;https://p1k3.com/2017/7/&#34; title=&#34;7&#34;&gt;7&lt;/a&gt; /
  2942. &lt;a href=&#34;https://p1k3.com/2017/7/19/&#34; title=&#34;19&#34;&gt;19&lt;/a&gt;
  2943. &lt;/p&gt;</content><updated>2017-08-04T23:45:33Z</updated></entry><entry><title>thursday, july 27</title><link href="https://p1k3.com/2017/7/11"/><id>https://p1k3.com/2017/7/11</id><content type="html">&lt;h1&gt;thursday, july 27&lt;/h1&gt;
  2944.  
  2945. &lt;p&gt;sometimes&lt;/p&gt;
  2946.  
  2947. &lt;p&gt;from the perspective of the sick&lt;br /&gt;
  2948. it&#39;s wellness that feels impossible&lt;/p&gt;
  2949.  
  2950. &lt;p&gt;so here we are, and democracy&lt;br /&gt;
  2951. feels like some kind of a fever dream&lt;/p&gt;
  2952.  
  2953. &lt;p class=&#34;datelink&#34;&gt;
  2954. &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2955. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2956. &lt;a href=&#34;https://p1k3.com/2017/7/&#34; title=&#34;7&#34;&gt;7&lt;/a&gt; /
  2957. &lt;a href=&#34;https://p1k3.com/2017/7/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt;
  2958. &lt;/p&gt;</content><updated>2017-08-04T23:45:33Z</updated></entry><entry><title>monday, june 26 - photography</title><link href="https://p1k3.com/2017/6/26"/><id>https://p1k3.com/2017/6/26</id><content type="html">&lt;h1&gt;monday, june 26&lt;/h1&gt;
  2959.  
  2960. &lt;h2&gt;photography&lt;/h2&gt;
  2961.  
  2962. &lt;div class=photos&gt;
  2963. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7294.JPG&#34;&gt;
  2964.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7294.JPG&#34; width=&#34;200&#34;&gt;
  2965. &lt;/a&gt;
  2966. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7302.JPG&#34;&gt;
  2967.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7302.JPG&#34; width=&#34;200&#34;&gt;
  2968. &lt;/a&gt;
  2969. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7416.JPG&#34;&gt;
  2970.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7416.JPG&#34; width=&#34;200&#34;&gt;
  2971. &lt;/a&gt;
  2972. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7437.JPG&#34;&gt;
  2973.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7437.JPG&#34; width=&#34;200&#34;&gt;
  2974. &lt;/a&gt;
  2975. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7451.JPG&#34;&gt;
  2976.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7451.JPG&#34; width=&#34;200&#34;&gt;
  2977. &lt;/a&gt;
  2978. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7456.JPG&#34;&gt;
  2979.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7456.JPG&#34; width=&#34;200&#34;&gt;
  2980. &lt;/a&gt;
  2981. &lt;/div&gt;
  2982.  
  2983. &lt;p&gt;as the datamining gets better,&lt;br /&gt;
  2984. every captured image carries its own index&lt;br /&gt;
  2985. to other captured images and other datasets&lt;br /&gt;
  2986. and thus into the lives and environments of other people&lt;/p&gt;
  2987.  
  2988. &lt;p&gt;photography, like other acts of recall and expression,&lt;br /&gt;
  2989. has been weaponized by and for the panopticon&lt;/p&gt;
  2990.  
  2991. &lt;p&gt;and so the receding into triviality&lt;br /&gt;
  2992. of images that seem unlikely to serve the miners:&lt;br /&gt;
  2993. fuzzed out closeups, abstractions,&lt;br /&gt;
  2994. landscapes and technologies without humans in them&lt;/p&gt;
  2995.  
  2996. &lt;p&gt;i was sorting pictures for publication just now,&lt;br /&gt;
  2997. and paused before deciding against:&lt;br /&gt;
  2998. an identifiable portion of my front yard in the snow&lt;br /&gt;
  2999. my girlfriend&#39;s hands&lt;br /&gt;
  3000. the blurry faces of my family around a campfire&lt;/p&gt;
  3001.  
  3002. &lt;p&gt;the same reluctance logically applies to text, to names and&lt;br /&gt;
  3003. concrete descriptions, to signifiers of place and relation&lt;br /&gt;
  3004. all the facts that might be mechanically sieved by algorithm&lt;br /&gt;
  3005. or carefully dissected and turned to violent ends by antagonists&lt;br /&gt;
  3006. in the grip of some networked ideological disease&lt;/p&gt;
  3007.  
  3008.  
  3009. &lt;p class=&#34;datelink&#34;&gt;
  3010. &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/panopticon&#34;&gt;panopticon&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3011. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3012. &lt;a href=&#34;https://p1k3.com/2017/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  3013. &lt;a href=&#34;https://p1k3.com/2017/6/26/&#34; title=&#34;26&#34;&gt;26&lt;/a&gt;
  3014. &lt;/p&gt;</content><updated>2017-07-20T00:20:20Z</updated></entry><entry><title>Wednesday, June 21 - extracting your photos from flickr</title><link href="https://p1k3.com/2017/6/21"/><id>https://p1k3.com/2017/6/21</id><content type="html">&lt;h1&gt;Wednesday, June 21&lt;/h1&gt;
  3015.  
  3016. &lt;h2&gt;extracting your photos from flickr&lt;/h2&gt;
  3017.  
  3018. &lt;p&gt;Background:  I&#38;rsquo;ve been meaning to delete my flickr account &lt;a href=&#34;/2016/8/14&#34;&gt;for a
  3019. while&lt;/a&gt;.  A recent e-mail stating that all Yahoo accounts
  3020. would be subject to Verizon&#38;rsquo;s terms-of-service by the 15th of this month
  3021. prompted me to actually go ahead and do it.  On the off chance this is useful
  3022. to anyone else, here are a few notes about exporting photo data and working
  3023. with the results.&lt;/p&gt;
  3024.  
  3025. &lt;p&gt;Some priors:  I run Debian GNU/Linux, and have a DigitalOcean droplet that was
  3026. convenient for intermediate storage.  I wasn&#38;rsquo;t too concerned about metadata
  3027. beyond the photos themselves, the titles I&#38;rsquo;d given them, and what sets they
  3028. were in.  Depending on how you use flickr, you might care about more than that.&lt;/p&gt;
  3029.  
  3030. &lt;p class=&#34;centerpiece&#34;&gt; ☙ &lt;/p&gt;
  3031.  
  3032.  
  3033. &lt;p&gt;I started off by Googling around for a flickr export utility, and after trying
  3034. a couple of other things I landed on a script called &lt;code&gt;flickrbackup&lt;/code&gt;.  It&#38;rsquo;s
  3035. about 400 lines of Python, and packaged for Debian (and thus also Ubuntu).&lt;/p&gt;
  3036.  
  3037. &lt;p&gt;Here&#38;rsquo;s the package description from Debian Stretch as of this writing:&lt;/p&gt;
  3038.  
  3039. &lt;!-- exec --&gt;
  3040.  
  3041.  
  3042. &lt;pre&gt;&lt;code&gt;$ apt-cache show flickrbackup
  3043. Package: flickrbackup
  3044. Version: 0.2-3.1
  3045. Installed-Size: 51
  3046. Maintainer: Tiago Bortoletto Vaz &#38;lt;[email protected]&#38;gt;
  3047. Architecture: all
  3048. Depends: python, python-pyexiv2
  3049. Description-en: Simple tool to perform a backup of your photos in flickr
  3050. flickrbackup is a simple python script which make a local copy of all your
  3051. pictures hosted in flickr.com.
  3052. .
  3053. It downloads the pictures and organize them using your set names. flickrbackup
  3054. is also able to store title, description, tags and other metadata from flickr
  3055. sets as EXIF data.
  3056. Description-md5: ce24e11f393b22430037469a74e4a131
  3057. Section: utils
  3058. Priority: optional
  3059. Filename: pool/main/f/flickrbackup/flickrbackup_0.2-3.1_all.deb
  3060. Size: 6420
  3061. MD5sum: 0569e3d2513c6dbd519b7b45cef9eed8
  3062. SHA256: 1e1cafa542904fa97734939adef77dd7631fb595361c67120440fc2068b889a8
  3063. &lt;/code&gt;&lt;/pre&gt;
  3064.  
  3065. &lt;!-- end --&gt;
  3066.  
  3067.  
  3068. &lt;p&gt;On a Debian system, you can install the script with:&lt;/p&gt;
  3069.  
  3070. &lt;pre&gt;&lt;code&gt;$ apt-get install flickrbackup
  3071. &lt;/code&gt;&lt;/pre&gt;
  3072.  
  3073. &lt;p&gt;Then make a directory for photos:&lt;/p&gt;
  3074.  
  3075. &lt;pre&gt;&lt;code&gt;$ mkdir flickr_dump
  3076. &lt;/code&gt;&lt;/pre&gt;
  3077.  
  3078. &lt;p&gt;And run the script like so:&lt;/p&gt;
  3079.  
  3080. &lt;pre&gt;&lt;code&gt;$ flickrbackup -e -o flickr_dump
  3081. &lt;/code&gt;&lt;/pre&gt;
  3082.  
  3083. &lt;p&gt;The &lt;code&gt;-e&lt;/code&gt; tells it to store flickr metadata in Exif tags on the image files,
  3084. and &lt;code&gt;-o flickr_dump&lt;/code&gt; tells it where to stash the photos.&lt;/p&gt;
  3085.  
  3086. &lt;p&gt;I&#38;rsquo;m a bit fuzzy on this part and can&#38;rsquo;t easily replicate it since I already
  3087. deleted my account, but the script should open a browser where you&#38;rsquo;ll be
  3088. prompted to login if necessary and authorize the script to access your account.
  3089. It stashes credentials in a file called &lt;code&gt;.flickrbackup.frob.cache&lt;/code&gt; - I had to
  3090. get this on my laptop and then copy it over to a system on DigitalOcean to use
  3091. &lt;code&gt;flickrbackup&lt;/code&gt; from there, since attempting to run a browser on the DO box
  3092. didn&#38;rsquo;t work.&lt;/p&gt;
  3093.  
  3094. &lt;p&gt;After that, image files will be downloaded into subdirectories of &lt;code&gt;flickr_dump&lt;/code&gt;
  3095. by set name.  Anything not in a set should land in &lt;code&gt;flickr_dump/No Set&lt;/code&gt;.  This
  3096. part takes a while.&lt;/p&gt;
  3097.  
  3098. &lt;p class=&#34;centerpiece&#34;&gt; ✦ &lt;/p&gt;
  3099.  
  3100.  
  3101. &lt;p&gt;Next, I used a handful of tools to reorganize things.  I&#38;rsquo;m still deciding how
  3102. to self-host a photo collection, so this is fairly rough, but after some
  3103. experimentation I decided to stash the set names for later use and then move
  3104. everything into directories by date taken.&lt;/p&gt;
  3105.  
  3106. &lt;p&gt;Before doing anything else, I used the &lt;code&gt;rename&lt;/code&gt; utility to lowercase set names,
  3107. replace spaces with underscores, and remove some extra characters:&lt;/p&gt;
  3108.  
  3109. &lt;pre&gt;&lt;code&gt;$ cd flickr_dump
  3110.  
  3111. # spaces to underscores:
  3112. $ rename &#39;s/ +/_/g&#39; ./*
  3113.  
  3114. # lowercase:
  3115. $ rename &#39;tr/A-Z/a-z/&#39; ./*
  3116.  
  3117. # zap parentheses:
  3118. $ rename &#39;s/[()]//g&#39; ./*
  3119. &lt;/code&gt;&lt;/pre&gt;
  3120.  
  3121. &lt;p&gt;Next I made a tab-separated file containing set names in the first column and
  3122. image filenames in the second:&lt;/p&gt;
  3123.  
  3124. &lt;pre&gt;&lt;code&gt;$ find . -iname &#39;*.jpg&#39; | sed &#39;s/\// /g&#39; | awk &#39;{ print $2 &#34;\t&#34; $3; }&#39; &#38;gt; setlist.txt
  3125. &lt;/code&gt;&lt;/pre&gt;
  3126.  
  3127. &lt;p&gt;This finds everything that ends in a &lt;code&gt;.jpg&lt;/code&gt; extension, replaces slashes in the
  3128. path with spaces, and feeds those lines to &lt;code&gt;awk&lt;/code&gt;, which by default treats
  3129. space-separated values as fields that can be referenced by number.  (So the
  3130. line &lt;code&gt;./sprkfn/12843074003.jpg&lt;/code&gt; becomes &lt;code&gt;. sprkfn 12843074003.jpg&lt;/code&gt;, and then
  3131. &lt;code&gt;sprkfn 12843074003.jpg&lt;/code&gt;.)  I&#38;rsquo;ll probably convert these to topic tags in my
  3132. blog system at some point in the future.  (It seems safe to just do this by
  3133. filename because as far as I can tell the filenames are unique.  I think.)&lt;/p&gt;
  3134.  
  3135. &lt;p&gt;With that out of the way, I started messing around with &lt;a href=&#34;http://www.sno.phy.queensu.ca/~phil/exiftool/&#34;&gt;ExifTool&lt;/a&gt;.
  3136. ExifTool is an old-school swiss-army style utility (written in Perl, natch) for
  3137. slicing and dicing photos based on &lt;a href=&#34;https://en.wikipedia.org/wiki/Exif&#34;&gt;Exif tags&lt;/a&gt;.  It can manipulate the
  3138. data in individual images, as well as organizing sets of files based on values
  3139. like creation date.  I followed &lt;a href=&#34;http://ninedegreesbelow.com/photography/exiftool-commands.html#move&#34;&gt;the examples here&lt;/a&gt; and copied the
  3140. photos into directories like so:&lt;/p&gt;
  3141.  
  3142. &lt;pre&gt;&lt;code&gt;$ exiftool -o . &#39;-Directory&#38;lt;CreateDate&#39; -d ~/p1k3/files/photos/%Y-%m -r .
  3143. &lt;/code&gt;&lt;/pre&gt;
  3144.  
  3145. &lt;p&gt;For right now, &lt;a href=&#34;/photos&#34;&gt;this is the resulting set of folders&lt;/a&gt;, by way of some
  3146. scripting I&#38;rsquo;m &lt;a href=&#34;https://github.com/brennen/galleryhtml&#34;&gt;already using&lt;/a&gt; to display photos here.  It&#38;rsquo;s pretty
  3147. clunky, but I&#38;rsquo;ll improve on it eventually.  (At least, that is, if I don&#38;rsquo;t just
  3148. delete everything out of hopeless disgust with my small part in creating the
  3149. emergent panopticon.)&lt;/p&gt;
  3150.  
  3151.  
  3152. &lt;p class=&#34;datelink&#34;&gt;
  3153. &lt;a href=&#34;https://p1k3.com/topics/debian&#34;&gt;debian&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/flickr&#34;&gt;flickr&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/notes&#34;&gt;notes&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/perl&#34;&gt;perl&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/shell&#34;&gt;shell&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3154. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3155. &lt;a href=&#34;https://p1k3.com/2017/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  3156. &lt;a href=&#34;https://p1k3.com/2017/6/21/&#34; title=&#34;21&#34;&gt;21&lt;/a&gt;
  3157. &lt;/p&gt;</content><updated>2017-06-23T22:50:36Z</updated></entry><entry><title>sunday, may 14</title><link href="https://p1k3.com/2017/5/14"/><id>https://p1k3.com/2017/5/14</id><content type="html">&lt;h1&gt;sunday, may 14&lt;/h1&gt;
  3158.  
  3159. &lt;p&gt;it&#38;rsquo;s a sunday night in the late spring of 2017.  i&#38;rsquo;m in a house on one of the
  3160. sparser edges of an exurb of colorado springs.&lt;/p&gt;
  3161.  
  3162. &lt;p&gt;on the tv:  &#38;ldquo;pat boone, a word about the secret war&#38;rdquo;.  pat wants us to know
  3163. that banks are required to spy on us for the government.  the war on cash, he
  3164. explains, is really a war on all freedom-loving americans.&lt;/p&gt;
  3165.  
  3166. &lt;p&gt;and well, shit.  pat boone isn&#38;rsquo;t observably &lt;em&gt;wrong&lt;/em&gt;, honestly.  i mean, at
  3167. least not about those parts.&lt;/p&gt;
  3168.  
  3169. &lt;p&gt;i didn&#38;rsquo;t even know pat boone was still alive.  i guess it&#38;rsquo;s possible he&#38;rsquo;s not.
  3170. this could be a &lt;em&gt;completely fossilized&lt;/em&gt; late-night
  3171. gold-as-an-investment-vehicle scam, quietly circulating the televised
  3172. backwaters for years or decades now, damaging a life here and there as the last
  3173. traces of the pat boone meme encounter minds left vulnerable by age and
  3174. isolation.&lt;/p&gt;
  3175.  
  3176.  
  3177. &lt;p class=&#34;datelink&#34;&gt;
  3178. &lt;a href=&#34;https://p1k3.com/topics/tv&#34;&gt;tv&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3179. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3180. &lt;a href=&#34;https://p1k3.com/2017/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  3181. &lt;a href=&#34;https://p1k3.com/2017/5/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  3182. &lt;/p&gt;</content><updated>2018-04-21T21:44:39Z</updated></entry><entry><title>Friday, May 12</title><link href="https://p1k3.com/2017/5/12"/><id>https://p1k3.com/2017/5/12</id><content type="html">&lt;h1&gt;Friday, May 12&lt;/h1&gt;
  3183.  
  3184. &lt;p&gt;&lt;a href=&#34;https://electricity.wtf/thereminusrex/&#34;&gt;Thereminus Rex&lt;/a&gt;
  3185. begins to emerge:&lt;/p&gt;
  3186.  
  3187. &lt;div class=photos&gt;
  3188. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7780.JPG&#34;&gt;
  3189.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7780.JPG&#34; width=&#34;200&#34;&gt;
  3190. &lt;/a&gt;
  3191. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7820.JPG&#34;&gt;
  3192.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7820.JPG&#34; width=&#34;200&#34;&gt;
  3193. &lt;/a&gt;
  3194. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7825.JPG&#34;&gt;
  3195.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7825.JPG&#34; width=&#34;200&#34;&gt;
  3196. &lt;/a&gt;
  3197. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7854.JPG&#34;&gt;
  3198.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7854.JPG&#34; width=&#34;200&#34;&gt;
  3199. &lt;/a&gt;
  3200. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7855.JPG&#34;&gt;
  3201.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7855.JPG&#34; width=&#34;200&#34;&gt;
  3202. &lt;/a&gt;
  3203. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7871.JPG&#34;&gt;
  3204.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7871.JPG&#34; width=&#34;200&#34;&gt;
  3205. &lt;/a&gt;
  3206. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7874.JPG&#34;&gt;
  3207.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7874.JPG&#34; width=&#34;200&#34;&gt;
  3208. &lt;/a&gt;
  3209. &lt;/div&gt;
  3210.  
  3211. &lt;p class=&#34;datelink&#34;&gt;
  3212. &lt;a href=&#34;https://p1k3.com/topics/burn&#34;&gt;burn&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/thereminus-rex&#34;&gt;thereminus-rex&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/woodworking&#34;&gt;woodworking&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3213. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3214. &lt;a href=&#34;https://p1k3.com/2017/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  3215. &lt;a href=&#34;https://p1k3.com/2017/5/12/&#34; title=&#34;12&#34;&gt;12&lt;/a&gt;
  3216. &lt;/p&gt;</content><updated>2017-05-12T16:32:06Z</updated></entry><entry><title>Sunday, April 30</title><link href="https://p1k3.com/2017/4/30"/><id>https://p1k3.com/2017/4/30</id><content type="html">&lt;h1&gt;Sunday, April 30&lt;/h1&gt;
  3217.  
  3218. &lt;p&gt;Alan &lt;a href=&#34;http://alangrow.com/blog/blog-refresh-now-with-less&#34;&gt;shaves some blog yaks&lt;/a&gt;:&lt;/p&gt;
  3219.  
  3220. &lt;blockquote&gt;&lt;p&gt;To readers who enjoyed the 3-column layout, the Edgar Allen Poe quote, and the
  3221. engraving of the fragile rowboat disappearing into the mighty maelstrom: I&#38;rsquo;m
  3222. sorry. It&#38;rsquo;s all gone. To me, minimalism is less an aesthetic than it is the
  3223. search for time invariants, and well&#38;hellip;here we are.&lt;/p&gt;&lt;/blockquote&gt;
  3224.  
  3225. &lt;p&gt;I did have a certain fondness for the fragile rowboat, but broadly speaking I
  3226. think these are the right impulses.&lt;/p&gt;
  3227.  
  3228.  
  3229. &lt;p class=&#34;datelink&#34;&gt;
  3230. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3231. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3232. &lt;a href=&#34;https://p1k3.com/2017/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  3233. &lt;a href=&#34;https://p1k3.com/2017/4/30/&#34; title=&#34;30&#34;&gt;30&lt;/a&gt;
  3234. &lt;/p&gt;</content><updated>2017-05-01T06:09:31Z</updated></entry><entry><title type="html">Wednesday, April 12 - mastodon.social - ignoring the internet - don&#38;rsquo;t write the comments</title><link href="https://p1k3.com/2017/4/12"/><id>https://p1k3.com/2017/4/12</id><content type="html">&lt;h1&gt;Wednesday, April 12&lt;/h1&gt;
  3235.  
  3236. &lt;h2&gt;mastodon.social&lt;/h2&gt;
  3237.  
  3238. &lt;p&gt;I registered an account on &lt;a href=&#34;https://mastodon.social/&#34;&gt;mastodon.social&lt;/a&gt; a couple of months back
  3239. and lurked a little.  The vibe was a little heavy on the whole gay communist
  3240. furry post-tumblr thing for me to feel like I had a whole lot to add
  3241. personally, but it seemed like an interesting enough little corner of the
  3242. network all the same.&lt;/p&gt;
  3243.  
  3244. &lt;p&gt;Then the other day circumstances (&lt;a href=&#34;https://motherboard.vice.com/en_us/article/mastodon-is-like-twitter-without-nazis-so-why-are-we-not-using-it&#34;&gt;and Sarah Jeong&lt;/a&gt;) conspired to
  3245. bring it to the attention of the disgruntled-with-Twitter internet, and it got
  3246. a bunch of extra signups and traffic.  So far, despite an influx of longtime
  3247. twitterites, the dominant style is a lot less rampagingly negative than a lot
  3248. of places.  It&#38;rsquo;s also heavy on programming, mental health issues, formulaic
  3249. denouncements of capitalism, and reflexive Twitter-bashing.  Most specific
  3250. political content outside questions of software architecture seems to be
  3251. culturally discouraged, though it&#38;rsquo;s starting to filter in.&lt;/p&gt;
  3252.  
  3253. &lt;p&gt;Maybe more importantly over the long term, it&#38;rsquo;s built on &lt;a href=&#34;https://gnu.io/&#34;&gt;GNU
  3254. Social&lt;/a&gt; et al. and takes seriously the idea of a guaranteed-open
  3255. implementation (&lt;a href=&#34;https://www.gnu.org/licenses/agpl-3.0.en.html&#34;&gt;AGPL&lt;/a&gt;!) and a network federated along the lines of
  3256. old-school services like e-mail.  Clients talk to a server, but servers are
  3257. many and interconnected, while the identity of the user is bound to a server
  3258. instance rather than global to the network.  There are problems, but from first
  3259. principles it&#38;rsquo;s a more hopeful of an effort than I expect from things that can
  3260. gain traction on the internet in 2017.&lt;/p&gt;
  3261.  
  3262. &lt;p&gt;Of course things could easily enough go to shit at any moment, and it does
  3263. nothing to solve &lt;a href=&#34;/2017/2/4/&#34;&gt;the problem of whether doing things on the public network is
  3264. a good idea at all&lt;/a&gt;.  All the same, it feels like a better effort
  3265. than yet another centralized service.&lt;/p&gt;
  3266.  
  3267. &lt;h2&gt;ignoring the internet&lt;/h2&gt;
  3268.  
  3269. &lt;p&gt;Outside of that one specific thing, I have been basically ignoring what happens
  3270. on the internet, especially the corners of it that are routine for professional
  3271. nerds and people with an interest in politics.  Which is probably detrimental
  3272. to both my career and my capacity for civic involvement in the long term, but
  3273. greatly increases the odds that I can work my way through any given waking day
  3274. without falling into a crippling despair.&lt;/p&gt;
  3275.  
  3276. &lt;p&gt;I recommend it unreservedly, and hope that I have the strength to continue it
  3277. as a practice.&lt;/p&gt;
  3278.  
  3279. &lt;p&gt;I&#38;rsquo;d like to work out a way to keep having political knowledge to the extent
  3280. that it informs my actions in a useful way, but I&#38;rsquo;m pretty sure spending all of
  3281. my time paralyzed with anger and disgust doesn&#38;rsquo;t do much for my political
  3282. efficacy or my relationships to other human beings.&lt;/p&gt;
  3283.  
  3284. &lt;h2&gt;don&#38;rsquo;t write the comments&lt;/h2&gt;
  3285.  
  3286. &lt;p&gt;A related thought:  I kind of stopped writing so many comments on websites, and
  3287. I sure do feel like less of a full-time asshole.&lt;/p&gt;
  3288.  
  3289. &lt;p&gt;&#38;ldquo;Don&#38;rsquo;t read the comments&#38;rdquo; has gotten pretty well ingrained in the general
  3290. understanding (if not the general behavior), but I think it probably doesn&#38;rsquo;t go
  3291. far enough.  It&#38;rsquo;s not just that they&#38;rsquo;re usually a bad idea to consume.  It&#38;rsquo;s
  3292. that undertaking their &lt;em&gt;production&lt;/em&gt; is on average actively harmful.&lt;/p&gt;
  3293.  
  3294. &lt;p&gt;The exceptions are real, but rare.&lt;/p&gt;
  3295.  
  3296.  
  3297. &lt;p class=&#34;datelink&#34;&gt;
  3298. &lt;a href=&#34;https://p1k3.com/topics/federation&#34;&gt;federation&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/mastodon&#34;&gt;mastodon&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/twitter&#34;&gt;twitter&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/warelogging&#34;&gt;warelogging&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3299. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3300. &lt;a href=&#34;https://p1k3.com/2017/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  3301. &lt;a href=&#34;https://p1k3.com/2017/4/12/&#34; title=&#34;12&#34;&gt;12&lt;/a&gt;
  3302. &lt;/p&gt;</content><updated>2017-04-14T02:09:41Z</updated></entry><entry><title>Tuesday, April 11 - #IstandwithCEU</title><link href="https://p1k3.com/2017/4/11"/><id>https://p1k3.com/2017/4/11</id><content type="html">&lt;h1&gt;Tuesday, April 11&lt;/h1&gt;
  3303.  
  3304. &lt;h2&gt;#IstandwithCEU&lt;/h2&gt;
  3305.  
  3306. &lt;p&gt;The first time I ever traveled outside the United States, I spent a &lt;a href=&#34;/2004/6/&#34;&gt;couple of
  3307. weeks&lt;/a&gt; staying with a friend in Budapest.  I was young and hadn&#38;rsquo;t seen
  3308. very much.  It felt like an extraordinary and sometimes electric place to me,
  3309. the first city I&#38;rsquo;d been in that felt like &lt;em&gt;Europe&lt;/em&gt;.&lt;/p&gt;
  3310.  
  3311. &lt;p&gt;I&#38;rsquo;ve seen a little bit more of the world since then, and I understand the kind
  3312. of place that Budapest is better now:  A local center with a deep, complicated,
  3313. and periodically brutal history, but also a periphery and a minor node in the
  3314. current graph of power and capital.  (And in that last way not unlike a lot of
  3315. the places I&#38;rsquo;ve lived.)  It remains one of my favorite cities; I&#38;rsquo;ve been back a
  3316. few times and will likely go again, depending on just how far the political
  3317. situation deteriorates.&lt;/p&gt;
  3318.  
  3319. &lt;p&gt;Because the political situation is pretty well fucked these days.  That friend
  3320. I first stayed with in Budapest works now at &lt;a href=&#34;https://www.ceu.edu/&#34;&gt;Central European
  3321. University&lt;/a&gt;, and CEU has lately been under direct legislative attack by a
  3322. government that news outlets very circumspectly describe as composed of
  3323. &#38;ldquo;right-wing populists&#38;rdquo;.  (I guess I prefixed this with &#38;ldquo;protofascist&#38;rdquo; the &lt;a href=&#34;/2012/2/6&#34;&gt;last
  3324. time I went&lt;/a&gt;.)&lt;/p&gt;
  3325.  
  3326. &lt;p&gt;CEU itself has a &lt;a href=&#34;https://www.ceu.edu/category/istandwithceu&#34;&gt;bunch of material on this&lt;/a&gt;:&lt;/p&gt;
  3327.  
  3328. &lt;blockquote&gt;&lt;p&gt;On April 10, 2017, President of the Republic of Hungary Janos Ader signed
  3329. into law amendments to Hungary’s national higher education legislation which
  3330. restrict academic freedom for CEU and other international universities
  3331. operating in Hungary.&lt;/p&gt;
  3332.  
  3333. &lt;p&gt;CEU &lt;a href=&#34;https://www.ceu.edu/node/18061&#34;&gt;strongly disagrees&lt;/a&gt; with this decision and, accordingly,
  3334. continues to pursue all available legal remedies. Further, CEU calls on the
  3335. Hungarian government to display the “mutual good will” called for by
  3336. President Ader to find a solution to enable CEU to stay in Budapest.&lt;/p&gt;&lt;/blockquote&gt;
  3337.  
  3338. &lt;p&gt;There&#38;rsquo;s a &lt;a href=&#34;https://www.change.org/p/hungarian-national-assembly-save-the-central-european-university&#34;&gt;change.org petition&lt;/a&gt;.&lt;/p&gt;
  3339.  
  3340. &lt;p&gt;I&#38;rsquo;ll be writing some letters.  I&#38;rsquo;ve decided that&#38;rsquo;s my new thing, writing
  3341. letters.&lt;/p&gt;
  3342.  
  3343.  
  3344. &lt;p class=&#34;datelink&#34;&gt;
  3345. &lt;a href=&#34;https://p1k3.com/topics/ceu&#34;&gt;ceu&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/hungary&#34;&gt;hungary&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/politics&#34;&gt;politics&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3346. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3347. &lt;a href=&#34;https://p1k3.com/2017/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  3348. &lt;a href=&#34;https://p1k3.com/2017/4/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt;
  3349. &lt;/p&gt;</content><updated>2017-04-12T05:59:21Z</updated></entry><entry><title>Thursday, April  6</title><link href="https://p1k3.com/2017/4/6"/><id>https://p1k3.com/2017/4/6</id><content type="html">
  3350. &lt;h1&gt;Thursday, April  6&lt;/h1&gt;
  3351.  
  3352. &lt;div class=comics&gt;
  3353.  &lt;p&gt;
  3354.    &lt;img src=&#34;/files/comics/2.jpg&#34;&gt;
  3355.  &lt;/p&gt;
  3356. &lt;/div&gt;
  3357.  
  3358. &lt;p class=&#34;datelink&#34;&gt;
  3359. &lt;a href=&#34;https://p1k3.com/topics/comic&#34;&gt;comic&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3360. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3361. &lt;a href=&#34;https://p1k3.com/2017/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  3362. &lt;a href=&#34;https://p1k3.com/2017/4/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt;
  3363. &lt;/p&gt;</content><updated>2017-04-07T16:31:02Z</updated></entry><entry><title>Tuesday, April  4 - weather</title><link href="https://p1k3.com/2017/4/4"/><id>https://p1k3.com/2017/4/4</id><content type="html">&lt;h1&gt;Tuesday, April  4&lt;/h1&gt;
  3364.  
  3365. &lt;h2&gt;weather&lt;/h2&gt;
  3366.  
  3367. &lt;div class=photos&gt;
  3368. &lt;a href=&#34;/files/photos/./2017-04-04/IMG_7738.JPG&#34;&gt;
  3369.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-04-04/Thumbs/IMG_7738.JPG&#34; width=&#34;200&#34;&gt;
  3370. &lt;/a&gt;
  3371. &lt;a href=&#34;/files/photos/./2017-04-04/IMG_7742.JPG&#34;&gt;
  3372.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-04-04/Thumbs/IMG_7742.JPG&#34; width=&#34;200&#34;&gt;
  3373. &lt;/a&gt;
  3374. &lt;a href=&#34;/files/photos/./2017-04-04/IMG_7750.JPG&#34;&gt;
  3375.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-04-04/Thumbs/IMG_7750.JPG&#34; width=&#34;200&#34;&gt;
  3376. &lt;/a&gt;
  3377. &lt;a href=&#34;/files/photos/./2017-04-04/IMG_7751.JPG&#34;&gt;
  3378.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-04-04/Thumbs/IMG_7751.JPG&#34; width=&#34;200&#34;&gt;
  3379. &lt;/a&gt;
  3380. &lt;a href=&#34;/files/photos/./2017-04-04/IMG_7752.JPG&#34;&gt;
  3381.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-04-04/Thumbs/IMG_7752.JPG&#34; width=&#34;200&#34;&gt;
  3382. &lt;/a&gt;
  3383. &lt;/div&gt;
  3384.  
  3385. &lt;p class=&#34;datelink&#34;&gt;
  3386. &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/snow&#34;&gt;snow&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3387. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3388. &lt;a href=&#34;https://p1k3.com/2017/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  3389. &lt;a href=&#34;https://p1k3.com/2017/4/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt;
  3390. &lt;/p&gt;</content><updated>2017-04-05T02:16:53Z</updated></entry><entry><title>Tuesday, March 28</title><link href="https://p1k3.com/2017/3/28"/><id>https://p1k3.com/2017/3/28</id><content type="html">&lt;h1&gt;Tuesday, March 28&lt;/h1&gt;
  3391.  
  3392. &lt;div class=photos&gt;
  3393. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7122.JPG&#34;&gt;
  3394.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7122.JPG&#34; width=&#34;200&#34;&gt;
  3395. &lt;/a&gt;
  3396. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7682.JPG&#34;&gt;
  3397.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7682.JPG&#34; width=&#34;200&#34;&gt;
  3398. &lt;/a&gt;
  3399. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7686.JPG&#34;&gt;
  3400.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7686.JPG&#34; width=&#34;200&#34;&gt;
  3401. &lt;/a&gt;
  3402. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7692.JPG&#34;&gt;
  3403.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7692.JPG&#34; width=&#34;200&#34;&gt;
  3404. &lt;/a&gt;
  3405. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7699.JPG&#34;&gt;
  3406.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7699.JPG&#34; width=&#34;200&#34;&gt;
  3407. &lt;/a&gt;
  3408. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7702.JPG&#34;&gt;
  3409.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7702.JPG&#34; width=&#34;200&#34;&gt;
  3410. &lt;/a&gt;
  3411. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7705.JPG&#34;&gt;
  3412.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7705.JPG&#34; width=&#34;200&#34;&gt;
  3413. &lt;/a&gt;
  3414. &lt;/div&gt;
  3415.  
  3416. &lt;p class=&#34;datelink&#34;&gt;
  3417. &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3418. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3419. &lt;a href=&#34;https://p1k3.com/2017/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  3420. &lt;a href=&#34;https://p1k3.com/2017/3/28/&#34; title=&#34;28&#34;&gt;28&lt;/a&gt;
  3421. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>wednesday, march 15</title><link href="https://p1k3.com/2017/3/15"/><id>https://p1k3.com/2017/3/15</id><content type="html">&lt;h1&gt;wednesday, march 15&lt;/h1&gt;
  3422.  
  3423. &lt;p&gt;you&#39;ve got to remember&lt;br /&gt;
  3424. that a lot of your mind,&lt;br /&gt;
  3425. a lot of the systems that your mind&lt;br /&gt;
  3426. integrates with&lt;br /&gt;
  3427. live outside of your body as you conventionally&lt;br /&gt;
  3428. think of it&lt;br /&gt;
  3429. outside of the skin and bones, beyond&lt;br /&gt;
  3430. the fur and feathers, external to the&lt;br /&gt;
  3431. narrow motions and faculties of an isolated animal&lt;/p&gt;
  3432.  
  3433. &lt;p&gt;you&#39;re on the bus, riding up the highway through&lt;br /&gt;
  3434. the grass and utility polls, past the houses&lt;br /&gt;
  3435. and herds and irrigation ditches&lt;br /&gt;
  3436. you&#39;re looking out the windows of a conveyance&lt;br /&gt;
  3437. borne on taxes and legislation and road projects&lt;br /&gt;
  3438. and the history of a whole place&lt;/p&gt;
  3439.  
  3440. &lt;p&gt;you&#39;ve got the wind in your hair and a watch on&lt;br /&gt;
  3441. your wrist telling time according to a system&lt;br /&gt;
  3442. with its roots centuries deep, date math grounded&lt;br /&gt;
  3443. somewhere in systems ancient now for millenia&lt;/p&gt;
  3444.  
  3445. &lt;p&gt;you&#39;re writing on a device impossible&lt;br /&gt;
  3446. to build a decade back&lt;br /&gt;
  3447. in strings of glyphs with their roots in&lt;br /&gt;
  3448. phonecia, in rome&lt;/p&gt;
  3449.  
  3450. &lt;p&gt;the birds are coming back and making nests&lt;br /&gt;
  3451. the grass and leaves are breaking out into the sun&lt;br /&gt;
  3452. you feel good when you step outside and breathe the air&lt;br /&gt;
  3453. the air is a product of a system well beyond your&lt;br /&gt;
  3454. understanding and control&lt;/p&gt;
  3455.  
  3456. &lt;p&gt;and yet also a system that includes you and enfolds&lt;br /&gt;
  3457. your actions, encompasses whatever meaning your life&lt;br /&gt;
  3458. might have, travels through the circuits flickering&lt;br /&gt;
  3459. inside your head, your heart, your lungs and legs&lt;br /&gt;
  3460. and fingers walking on the keys&lt;/p&gt;
  3461.  
  3462. &lt;p class=&#34;datelink&#34;&gt;
  3463. &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3464. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3465. &lt;a href=&#34;https://p1k3.com/2017/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  3466. &lt;a href=&#34;https://p1k3.com/2017/3/15/&#34; title=&#34;15&#34;&gt;15&lt;/a&gt;
  3467. &lt;/p&gt;</content><updated>2017-04-04T03:51:21Z</updated></entry><entry><title> Saturday, March 11  - git-do: execute commands in the top level of a git repo</title><link href="https://p1k3.com/2017/3/11"/><id>https://p1k3.com/2017/3/11</id><content type="html">&lt;h1&gt; Saturday, March 11 &lt;/h1&gt;
  3468.  
  3469. &lt;h2&gt;git-do: execute commands in the top level of a git repo&lt;/h2&gt;
  3470.  
  3471. &lt;p&gt;tl;dr: Use &lt;code&gt;git config --global alias.exec &#39;!exec &#39;&lt;/code&gt;.   Or for some
  3472. reason you could write &lt;a href=&#34;https://github.com/brennen/bpb-kit/blob/master/home/bin/git-do&#34;&gt;a script like this one&lt;/a&gt; to execute
  3473. commands in the root of a git repository.&lt;/p&gt;
  3474.  
  3475. &lt;p class=&#34;centerpiece&#34;&gt; ❃ &lt;/p&gt;
  3476.  
  3477.  
  3478. &lt;p&gt;This blog lives in a git repository with entries broken up by date.  So, for
  3479. example, when editing this entry, I might be in a path like so:&lt;/p&gt;
  3480.  
  3481. &lt;pre&gt;&lt;code&gt;~/p1k3/archives/2017/3/11/
  3482. &lt;/code&gt;&lt;/pre&gt;
  3483.  
  3484. &lt;p&gt;I also have a &lt;code&gt;Makefile&lt;/code&gt; in the top level of the repo, which contains targets
  3485. like &lt;code&gt;render&lt;/code&gt; and &lt;code&gt;publish&lt;/code&gt;.  Since &lt;code&gt;make&lt;/code&gt; expects to find a &lt;code&gt;Makefile&lt;/code&gt; in the
  3486. current working directory, I often found myself in a loop where I edit a blog
  3487. entry, change to the top level of a repo, run a &lt;code&gt;make&lt;/code&gt; command, and then need
  3488. to change the blog entry again.&lt;/p&gt;
  3489.  
  3490. &lt;p&gt;This seems silly, and generalizes to a bunch of different repositories.&lt;/p&gt;
  3491.  
  3492. &lt;p&gt;&lt;a href=&#34;https://stackoverflow.com/questions/957928/is-there-a-way-to-get-the-git-root-directory-in-one-command&#34;&gt;Stack Overflow says&lt;/a&gt; that you can do
  3493. &lt;code&gt;git rev-parse --show-toplevel&lt;/code&gt; to get the root directory of the repository,
  3494. which led me to something like:&lt;/p&gt;
  3495.  
  3496. &lt;pre&gt;&lt;code&gt;$ git config --global alias.root &#34;rev-parse --show-toplevel&#34;
  3497. $ cd `git root` &#38;amp;&#38;amp; make render &#38;amp;&#38;amp; cd -
  3498. &lt;/code&gt;&lt;/pre&gt;
  3499.  
  3500. &lt;p&gt;That works, but it&#38;rsquo;s a stupid amount of typing.  There are a couple of
  3501. solutions for this.  One, from that SO post, is:&lt;/p&gt;
  3502.  
  3503. &lt;pre&gt;&lt;code&gt;$ git config --global alias.exec &#39;!exec &#39;
  3504. $ git exec make render
  3505. &lt;/code&gt;&lt;/pre&gt;
  3506.  
  3507. &lt;p&gt;This works because the leading &lt;code&gt;!&lt;/code&gt; on the command tells git to treat it as a
  3508. shell command, and by default git executes aliases to shell commands from the
  3509. top-level directory of the repo.  This is probably good enough, but I didn&#38;rsquo;t
  3510. notice it at first so I added a git subcommand called &lt;code&gt;git-do&lt;/code&gt; to do pretty
  3511. much the same.  A very simple version looks like this:&lt;/p&gt;
  3512.  
  3513. &lt;pre&gt;&lt;code&gt;#!/bin/sh
  3514.  
  3515. git_root=`git rev-parse --show-toplevel`
  3516. cd &#34;$git_root&#34;
  3517. [email protected]
  3518. &lt;/code&gt;&lt;/pre&gt;
  3519.  
  3520. &lt;p&gt;A slightly more &#38;ldquo;sophisticated&#38;rdquo; one uses &lt;a href=&#34;https://www.kernel.org/pub/software/scm/git/docs/git-sh-setup.html&#34;&gt;&lt;code&gt;git-sh-setup&lt;/code&gt;&lt;/a&gt;, which
  3521. provides some boilerplate for shell scripts written as git subcommands:&lt;/p&gt;
  3522.  
  3523. &lt;pre&gt;&lt;code&gt;#!/usr/bin/env bash
  3524.  
  3525. # Help messages:
  3526. USAGE=&#34;&#38;lt;command&#38;gt;&#34;
  3527. LONG_USAGE=&#34;Executes &#38;lt;command&#38;gt; from the root of the repository.&#34;
  3528.  
  3529. # Tell git-sh-setup we&#39;re ok with being in a subdir:
  3530. SUBDIRECTORY_OK=1
  3531.  
  3532. source &#34;$(git --exec-path)/git-sh-setup&#34;
  3533.  
  3534. # Make sure we&#39;re in a working tree, jump to top level, do command:
  3535. require_work_tree_exists
  3536. cd_to_toplevel
  3537. [email protected]
  3538. &lt;/code&gt;&lt;/pre&gt;
  3539.  
  3540. &lt;p&gt;In both cases, &lt;code&gt;[email protected]&lt;/code&gt; is a variable containing all of the arguments to the
  3541. script, which run as shell commands.&lt;/p&gt;
  3542.  
  3543.  
  3544. &lt;p class=&#34;datelink&#34;&gt;
  3545. &lt;a href=&#34;https://p1k3.com/topics/git&#34;&gt;git&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/shell&#34;&gt;shell&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3546. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3547. &lt;a href=&#34;https://p1k3.com/2017/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  3548. &lt;a href=&#34;https://p1k3.com/2017/3/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt;
  3549. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Tuesday, February 28 - reading</title><link href="https://p1k3.com/2017/2/28"/><id>https://p1k3.com/2017/2/28</id><content type="html">&lt;h1&gt;Tuesday, February 28&lt;/h1&gt;
  3550.  
  3551. &lt;h2&gt;reading&lt;/h2&gt;
  3552.  
  3553. &lt;p&gt;&lt;em&gt;The War Against the Assholes&lt;/em&gt;, by Sam Munson:  New York City highschooler
  3554. private school magician fantasy with substance abuse and savage beatings.
  3555. Better, I think, than this sub-subgenre at its worst.  Better than that
  3556. description makes it sound.  I was unconvinced by plenty of it.  I&#38;rsquo;m a little
  3557. angry that I found it so compelling.  All the same, I read it in a couple of
  3558. sittings, the first in the bookstore and the second of them thoroughly
  3559. whiskey-drunk late on a Sunday afternoon, and the writing grabbed me in a way
  3560. that most fiction I&#38;rsquo;ve tried lately hasn&#38;rsquo;t.&lt;/p&gt;
  3561.  
  3562. &lt;p&gt;I&#38;rsquo;d be lying if I said I didn&#38;rsquo;t buy it purely on the strength of the title.&lt;/p&gt;
  3563.  
  3564. &lt;p class=&#34;centerpiece&#34;&gt; ✶ &lt;/p&gt;
  3565.  
  3566.  
  3567. &lt;p&gt;&lt;em&gt;Pansy&lt;/em&gt;, poems by Andrea Gibson: A local poet - a friend of friends, or a
  3568. friend of a friend of a friend, or something approximately like that.  I was
  3569. walking through the Boulder Book Store and made my usual hopeless circle past
  3570. the poetry section (hopeless, to be clear, because I still don&#38;rsquo;t know a goddamn
  3571. thing about poetry and I&#38;rsquo;m hopelessly unequipped to read most of it with any
  3572. real perception or discernment), and I thought well, why not.  I&#38;rsquo;ve read their
  3573. work before.  I&#38;rsquo;ve probably been to a reading.  Unlike many poems that I buy,
  3574. I actually read these.  They were good, as far as I&#38;rsquo;m equipped to tell.&lt;/p&gt;
  3575.  
  3576.  
  3577. &lt;p class=&#34;datelink&#34;&gt;
  3578. &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/fantasy&#34;&gt;fantasy&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/magic&#34;&gt;magic&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/new-york&#34;&gt;new-york&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/reading&#34;&gt;reading&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3579. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3580. &lt;a href=&#34;https://p1k3.com/2017/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  3581. &lt;a href=&#34;https://p1k3.com/2017/2/28/&#34; title=&#34;28&#34;&gt;28&lt;/a&gt;
  3582. &lt;/p&gt;</content><updated>2018-01-02T05:16:47Z</updated></entry><entry><title>Saturday, February  4 - the incipient model</title><link href="https://p1k3.com/2017/2/4"/><id>https://p1k3.com/2017/2/4</id><content type="html">&lt;h1&gt;Saturday, February  4&lt;/h1&gt;
  3583.  
  3584. &lt;h2&gt;the incipient model&lt;/h2&gt;
  3585.  
  3586. &lt;p&gt;I wrote last month about &lt;a href=&#34;/2017/1/2&#34;&gt;being embarrassed by all the stupid shit I&#38;rsquo;ve
  3587. written&lt;/a&gt;:&lt;/p&gt;
  3588.  
  3589. &lt;blockquote&gt;&lt;p&gt;I&#38;rsquo;m not going to delete all this stuff, though.  I&#38;rsquo;m not sure if I can quite
  3590. say why.  I don&#38;rsquo;t blame anyone else for that impulse, but it&#38;rsquo;s not for me right
  3591. now.  Maybe I&#38;rsquo;m just too obsessed with memory to deliberately efface one of the
  3592. few artifacts I&#38;rsquo;ve made out of it.  Or too conscious of how little else I&#38;rsquo;ve
  3593. built than a pile of words, as I near an age when it&#38;rsquo;s just as likely the bulk
  3594. of my accomplishments are in the past.&lt;/p&gt;&lt;/blockquote&gt;
  3595.  
  3596. &lt;p&gt;But having written that, I keep thinking about the value of putting anything on
  3597. the public internet at all.&lt;/p&gt;
  3598.  
  3599. &lt;p&gt;This is rooted in a bunch of half-formed thoughts:  I used to think the
  3600. internet was in some deep sense a benign phenomenon, with some kind of root
  3601. ethos or principle that tended to erode power and build a more humane
  3602. community.  I&#38;rsquo;m now &lt;a href=&#34;/2016/11/16&#34;&gt;pretty sure&lt;/a&gt; I was wrong.&lt;/p&gt;
  3603.  
  3604. &lt;p class=&#34;centerpiece&#34;&gt; ✧ &lt;/p&gt;
  3605.  
  3606.  
  3607. &lt;p&gt;The first thing is that networked computation is an epidemic.&lt;/p&gt;
  3608.  
  3609. &lt;p&gt;Cellphones have already rewritten civilization; beyond that, the epidemic is
  3610. expanding into every remaining domain where it can be supported by market
  3611. speculation, narrow technological advantage, fast prototyping, spying on users,
  3612. and/or generalized b-school hype-machine idiocy.  Processing power is cheap,
  3613. wireless networks begin to approach ubiquity, software is easier than hardware,
  3614. business is full of gullible power-mongering assholes, and data collection is
  3615. like catnip to every system of control on the planet.  That people and
  3616. industries will keep putting computers in shit is &lt;em&gt;hilariously overdetermined&lt;/em&gt;,
  3617. and there is nothing short of an apocalyptic calamity that can be done to stop
  3618. it.&lt;/p&gt;
  3619.  
  3620. &lt;p&gt;Network-scale capital has built us a baby panopticon, and it&#38;rsquo;s maturing fast.
  3621. So is the technology to extract meaningful structure from all of the data it
  3622. eats.&lt;/p&gt;
  3623.  
  3624. &lt;p&gt;We already know, for example, that photos exposed to the internet are scanned
  3625. for recognizable objects (like faces) and correlated.  Google does this for
  3626. image search.  Social networks do this to associate media with individual
  3627. users.  Law enforcement agencies are applying similar tech to an ever-growing
  3628. firehose of surveillance data.  Facial recognition and license-plate tracking
  3629. have only just begun having consequences, and they&#38;rsquo;re the tip of an iceberg.
  3630. Given enough storage and compute, the facts and associations latent in things
  3631. we think of as opaque blobs of content are about to become visible to everybody
  3632. with a big enough database.  It&#38;rsquo;s &lt;em&gt;all&lt;/em&gt; metadata, given enough of the stuff.&lt;/p&gt;
  3633.  
  3634. &lt;p&gt;Of course there&#38;rsquo;s a vast amount of opportunistic bullshit being spun about
  3635. machine learning and AI right now, but all of this is really just an emergent
  3636. effect of a less shiny-marketable thing: Databases and networks have
  3637. consequences.  Kinds of data that our culture still think of as requiring human
  3638. interpretation are rapidly becoming easily-queried tags and indexes.&lt;/p&gt;
  3639.  
  3640. &lt;p&gt;So the network at large contains this cumulative model of me.  It&#38;rsquo;s not all
  3641. contiguous and cross-referenced yet.  Much of it is hidden from direct view,
  3642. it&#38;rsquo;s lossy in a bunch of particulars, and it&#38;rsquo;s still fractured in part by legal
  3643. apparatus and social norms.  But it&#38;rsquo;s a big thing and it&#38;rsquo;s not going away.
  3644. It&#38;rsquo;s going to &lt;a href=&#34;https://en.wikipedia.org/wiki/T-1000&#34;&gt;T-1000&lt;/a&gt; itself together from all those pieces just about
  3645. no matter what.  There are very few remaining technical impediments, and no
  3646. political institutions seem willing (or able) to create effective legal ones.&lt;/p&gt;
  3647.  
  3648. &lt;p&gt;So I wonder:  Should I be feeding this model my writing and pictures?  Should I
  3649. volunteer, for that matter, any kind of self-surveillance?&lt;/p&gt;
  3650.  
  3651. &lt;p class=&#34;centerpiece&#34;&gt; ✧ &lt;/p&gt;
  3652.  
  3653.  
  3654. &lt;p&gt;The second thing is that we&#38;rsquo;re starting to have good empirical evidence about
  3655. the kinds of social systems the internet generates.  Plenty of them are good,
  3656. or at least fairly benign.  Others of them are, for example, &lt;em&gt;a resurgent
  3657. fascism&lt;/em&gt;.  Hateful shitheads turn out to do just fine in the network
  3658. environment.  Reactionary backlash and the inelastic properties of damaged
  3659. cultures propagate as well in new media as anything does.  Sometimes better.&lt;/p&gt;
  3660.  
  3661. &lt;p&gt;There&#38;rsquo;s something here about systems.  I was wrong about how this system
  3662. operates and what&#38;rsquo;s possible within it.  I think I&#38;rsquo;ve been naive about systems
  3663. &lt;em&gt;in general&lt;/em&gt;.&lt;/p&gt;
  3664.  
  3665. &lt;p&gt;So I wonder:  What part of the self-surveillance I volunteer isn&#38;rsquo;t an attack
  3666. surface?&lt;/p&gt;
  3667.  
  3668. &lt;p class=&#34;centerpiece&#34;&gt; ✧ &lt;/p&gt;
  3669.  
  3670.  
  3671. &lt;p&gt;Anyway:  I &lt;em&gt;want&lt;/em&gt; to put writing and pictures out here.  But there&#38;rsquo;s this
  3672. competing impulse to hide all the stuff as far as possible and take down all of
  3673. the public accounts.  Go dark and operate only in the quiet corners of things,
  3674. keep longform writing and pictures for letters to family and a handful of
  3675. friends.&lt;/p&gt;
  3676.  
  3677.  
  3678. &lt;p class=&#34;datelink&#34;&gt;
  3679. &lt;a href=&#34;https://p1k3.com/topics/panopticon&#34;&gt;panopticon&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/surveillance&#34;&gt;surveillance&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3680. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3681. &lt;a href=&#34;https://p1k3.com/2017/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  3682. &lt;a href=&#34;https://p1k3.com/2017/2/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt;
  3683. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title> friday, january 27 </title><link href="https://p1k3.com/2017/1/27"/><id>https://p1k3.com/2017/1/27</id><content type="html">&lt;h1&gt; friday, january 27 &lt;/h1&gt;
  3684.  
  3685. &lt;p&gt;insomnia&#39;s a poor subject, i guess&lt;br /&gt;
  3686. but an inevitable one&lt;br /&gt;
  3687. it&#39;s too late to be awake,&lt;br /&gt;
  3688. but you&#39;re awake&lt;br /&gt;
  3689. all the failures and mistakes&lt;br /&gt;
  3690. are playing on tight loops in your head&lt;br /&gt;
  3691. all the pain you cause&lt;br /&gt;
  3692. the unkindnesses you&#39;ve dealt&lt;br /&gt;
  3693. out and the promises you&#39;ve broken&lt;/p&gt;
  3694.  
  3695. &lt;p&gt;daytimes the sunlight keeps them&lt;br /&gt;
  3696. out of circulation for a while&lt;br /&gt;
  3697. and the machinery of distraction you cultivate&lt;br /&gt;
  3698. but the sun goes down the engines&lt;br /&gt;
  3699. cough and sputter out&lt;br /&gt;
  3700. and there you are again&lt;br /&gt;
  3701. the future like an empty field&lt;br /&gt;
  3702. the past so many absences and resignations&lt;br /&gt;
  3703. the cost of everything tallying itself&lt;br /&gt;
  3704. in the tattered ledgerbook of&lt;br /&gt;
  3705. a memory handled carelessly&lt;br /&gt;
  3706. for too long&lt;/p&gt;
  3707.  
  3708. &lt;p&gt;so you write something&lt;br /&gt;
  3709. it doesn&#39;t really matter what&lt;br /&gt;
  3710. a letter, a poem&lt;br /&gt;
  3711. you&#39;re only trying to obscure for now the traces&lt;br /&gt;
  3712. of all that traffic in mistakes and dull&lt;br /&gt;
  3713. the chattering exchange of all your trade in the&lt;br /&gt;
  3714. economy of squandered gifts&lt;/p&gt;
  3715.  
  3716. &lt;p class=&#34;datelink&#34;&gt;
  3717. &lt;a href=&#34;https://p1k3.com/topics/insomnia&#34;&gt;insomnia&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3718. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3719. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3720. &lt;a href=&#34;https://p1k3.com/2017/1/27/&#34; title=&#34;27&#34;&gt;27&lt;/a&gt;
  3721. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Wednesday, January 25</title><link href="https://p1k3.com/2017/1/25"/><id>https://p1k3.com/2017/1/25</id><content type="html">&lt;h1&gt;Wednesday, January 25&lt;/h1&gt;
  3722.  
  3723. &lt;p&gt;I went down to the Women&#38;rsquo;s March in Denver on Saturday with my girlfriend and
  3724. my sister and a couple of our friends and (from the looks of things at the bus
  3725. station) a pretty good percentage of Boulder County.  I didn&#38;rsquo;t take a camera
  3726. any better than my phone; none of us were really sure what to expect from the
  3727. whole thing, and traveling light seemed like a good idea.&lt;/p&gt;
  3728.  
  3729. &lt;div class=&#34;photos&#34;&gt;
  3730. &lt;a href=&#34;/files/photos/./2017-01-25/IMG_7661.JPG&#34;&gt;
  3731.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-25/Thumbs/IMG_7661.JPG&#34; width=&#34;200&#34;&gt;
  3732. &lt;/a&gt;
  3733. &lt;a href=&#34;/files/photos/./2017-01-25/IMG_7664.JPG&#34;&gt;
  3734.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-25/Thumbs/IMG_7664.JPG&#34; width=&#34;200&#34;&gt;
  3735. &lt;/a&gt;
  3736. &lt;a href=&#34;/files/photos/./2017-01-25/IMG_7665.JPG&#34;&gt;
  3737.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-25/Thumbs/IMG_7665.JPG&#34; width=&#34;200&#34;&gt;
  3738. &lt;/a&gt;
  3739. &lt;a href=&#34;/files/photos/./2017-01-25/signal-2017-01-21-100339.jpg&#34;&gt;
  3740.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-25/Thumbs/signal-2017-01-21-100339.jpg&#34; width=&#34;200&#34;&gt;
  3741. &lt;/a&gt;
  3742. &lt;/div&gt;
  3743.  
  3744.  
  3745. &lt;p&gt;&lt;em&gt;above: rough-draft sign mockups, patches, blurry phonecam of crowd&lt;/em&gt;&lt;/p&gt;
  3746.  
  3747. &lt;p&gt;I only went to a few antiwar events in the run-up to the Iraq invasion (a thing
  3748. I didn&#38;rsquo;t really know what to think about, in a time before I knew what to think
  3749. about a lot of things).  I sat out Occupy, although I had friends involved in
  3750. one way or another.  I&#38;rsquo;ve never done a genuinely big march or demonstration of
  3751. any kind, really.  We talked to people on the way down who said they never had
  3752. either, but they felt that things had gone too far and it was time.&lt;/p&gt;
  3753.  
  3754. &lt;p&gt;As it turned out, this march at least was overwhelmingly peaceful.  The parts
  3755. of it I was there for were, I don&#38;rsquo;t know how else to put this, mellow.  Calm.
  3756. Kind of happy.  Lots of pleasant middle-aged ladies.  Families with kids.
  3757. Maybe the biggest crowd I&#38;rsquo;ve ever been part of, and everyone who bumped into me
  3758. politely apologized.  I think I exchanged smiles with a lot of people who have
  3759. been feeling for a while like the entire probable tide of history is chipping away at
  3760. their sanity.&lt;/p&gt;
  3761.  
  3762. &lt;p&gt;I knew some of the chants:  &#38;ldquo;No justice / no peace&#38;rdquo;, &#38;ldquo;no Trump / no KKK / no
  3763. fascist USA&#38;rdquo;.  &#38;ldquo;What does democracy look like / this is what democracy looks
  3764. like&#38;rdquo;.  Is some of this shit cringey in its sincerity?  Yes.  On the other
  3765. hand, do I disagree?  Not really.  The Klan and fascism and Donald Trump are
  3766. all bad things.  Down with this sort of thing.&lt;/p&gt;
  3767.  
  3768. &lt;p&gt;&#38;ldquo;United / we stand / against his tiny hands&#38;rdquo; was a big hit.  &#38;ldquo;Science is real&#38;rdquo;
  3769. was both affirming and not a thing you want to look at too hard, because why
  3770. are we in a situation where asserting that there&#38;rsquo;s something like an
  3771. observable, correlatable external reality qualifies as a form of dissent?&lt;/p&gt;
  3772.  
  3773. &lt;p&gt;I don&#38;rsquo;t have any neat conclusions about this.  I&#38;rsquo;ve spent a long time thinking
  3774. that protest in general has been pretty well assimilated and neutralized by an
  3775. emergent collusion between governments, law enforcement, and news media.  I
  3776. still think that, but I have other thoughts too:  Maybe marching and chanting
  3777. in the streets is for its effect on the marchers and the marched-for, not the
  3778. marched-against.  Maybe it&#38;rsquo;s not all quite so toothless as I have been
  3779. conditioned to think.&lt;/p&gt;
  3780.  
  3781. &lt;p&gt;I&#38;rsquo;m not going to frame taking to the streets as a moral imperative.  But I also
  3782. think well, it&#38;rsquo;s not &lt;em&gt;nothing&lt;/em&gt;.&lt;/p&gt;
  3783.  
  3784.  
  3785. &lt;p class=&#34;datelink&#34;&gt;
  3786. &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/politics&#34;&gt;politics&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3787. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3788. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3789. &lt;a href=&#34;https://p1k3.com/2017/1/25/&#34; title=&#34;25&#34;&gt;25&lt;/a&gt;
  3790. &lt;/p&gt;</content><updated>2017-04-01T20:54:20Z</updated></entry><entry><title>Tuesday, January 24 - shell history using RASH</title><link href="https://p1k3.com/2017/1/24"/><id>https://p1k3.com/2017/1/24</id><content type="html">&lt;h1&gt;Tuesday, January 24&lt;/h1&gt;
  3791.  
  3792. &lt;h2&gt;shell history using RASH&lt;/h2&gt;
  3793.  
  3794. &lt;p&gt;Back in October of 2016, I &lt;a href=&#34;/2016/10/25&#34;&gt;mentioned that I&#38;rsquo;d started working&lt;/a&gt; on
  3795. a &lt;a href=&#34;https://github.com/brennen/commandlog/&#34;&gt;utility called commandlog&lt;/a&gt; for keeping Bash and Zsh shell
  3796. history in a database.  My proof-of-concept was tiny and didn&#38;rsquo;t do much, but it
  3797. seemed like an obviously fruitful idea.  Especially after I talked to friends about
  3798. the idea of using shell history to build up a kind of logbook and per-directory
  3799. menu system&lt;/p&gt;
  3800.  
  3801. &lt;p&gt;I&#38;rsquo;m fighting a cold tonight and too fuzzy in the head to work on anything very
  3802. complicated, so I thought I&#38;rsquo;d hack on commandlog a bit.  It occurred to me
  3803. that I hadn&#38;rsquo;t really looked very hard at other alternatives, so I did some
  3804. googling first.&lt;/p&gt;
  3805.  
  3806. &lt;p&gt;Sure enough, people have done some work.  I&#38;rsquo;m tagging a few things under
  3807. &lt;a href=&#34;https://pinboard.in/u:brennen/t:shell-history/&#34;&gt;&#38;ldquo;shell-history&#38;rdquo; on Pinboard&lt;/a&gt;.  The most promising
  3808. thing I&#38;rsquo;ve found so far is a Python project called &lt;a href=&#34;https://github.com/tkf/rash&#34;&gt;RASH&lt;/a&gt;.  Like
  3809. commandlog, it keeps history in an SQLite db, albeit with a weird intermediate
  3810. step where JSON files are written to a directory and then added to the database
  3811. by a daemon process.&lt;/p&gt;
  3812.  
  3813. &lt;p&gt;RASH seems to have a bunch of the features I want out of a tool like this.
  3814. For example, you can search history by the current directory:&lt;/p&gt;
  3815.  
  3816. &lt;pre&gt;&lt;code&gt;$ rash search -d .
  3817. ll
  3818. v index
  3819. fg
  3820. h
  3821. ls
  3822. touch tag-technical tag-commandlog
  3823. &lt;/code&gt;&lt;/pre&gt;
  3824.  
  3825. &lt;p&gt;Or use a regexp to look for commands beginning with &lt;code&gt;comment&lt;/code&gt;, and display 5
  3826. lines of context on either side of them:&lt;/p&gt;
  3827.  
  3828. &lt;pre&gt;&lt;code&gt;$ rash search -M &#39;^comment&#39; -C 5
  3829. rash search -M comment -C 3 --with-command-id
  3830. rash search -M comment -C 3
  3831. rash search -M comment
  3832. rash search -h
  3833. rash search
  3834. comment &#34;checking out rash for shell history logging&#34;
  3835. sqlite3 ./db.sqlite
  3836. rash search -h
  3837. lah
  3838. lah
  3839. &lt;/code&gt;&lt;/pre&gt;
  3840.  
  3841. &lt;p&gt;&#38;hellip;which is useful because I use &lt;code&gt;comment &#34;foo&#34;&lt;/code&gt; to toss in little descriptions
  3842. of tasks.  It also logs a customizable set of environment variables, which
  3843. would probably be the right thing if I wanted to add tagging or grouping of
  3844. commands.&lt;/p&gt;
  3845.  
  3846. &lt;p&gt;My hesitation is that it&#38;rsquo;s a Python project with a low version number and only
  3847. partial Python 3 support, and development appears to have stopped some time in
  3848. 2015.  Still, it&#38;rsquo;s promising.  I &lt;em&gt;probably&lt;/em&gt; shouldn&#38;rsquo;t write my own version of
  3849. all this if an existing project proves to work.&lt;/p&gt;
  3850.  
  3851.  
  3852. &lt;p class=&#34;datelink&#34;&gt;
  3853. &lt;a href=&#34;https://p1k3.com/topics/commandlog&#34;&gt;commandlog&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/shell&#34;&gt;shell&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/zsh&#34;&gt;zsh&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3854. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3855. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3856. &lt;a href=&#34;https://p1k3.com/2017/1/24/&#34; title=&#34;24&#34;&gt;24&lt;/a&gt;
  3857. &lt;/p&gt;</content><updated>2017-04-04T04:48:34Z</updated></entry><entry><title>Sunday, January 22 - org mode - vimwiki</title><link href="https://p1k3.com/2017/1/22"/><id>https://p1k3.com/2017/1/22</id><content type="html">&lt;h1&gt;Sunday, January 22&lt;/h1&gt;
  3858.  
  3859. &lt;h2&gt;org mode&lt;/h2&gt;
  3860.  
  3861. &lt;p&gt;I finally tried &lt;a href=&#34;http://orgmode.org/&#34;&gt;Org mode for Emacs&lt;/a&gt;, &lt;a href=&#34;http://spacemacs.org/layers/+emacs/org/README.html&#34;&gt;by way&lt;/a&gt; of
  3862. a &lt;a href=&#34;http://spacemacs.org/&#34;&gt;spacemacs&lt;/a&gt; install.  I wanted to find something more structured
  3863. for notes and TODOs than the directory full of text files I&#38;rsquo;ve been using, and
  3864. Org nearly always comes up in these discussions.&lt;/p&gt;
  3865.  
  3866. &lt;p&gt;It turns out to be nearly as all-singing-all-dancing as it&#38;rsquo;s made out to be:
  3867. Crazy huge featureset, and situated in a very capable environment.  (Emacs
  3868. really is something very like an operating system, and has many of the
  3869. qualities of being an &lt;em&gt;environment of tool usage&lt;/em&gt; that I look for in software.)&lt;/p&gt;
  3870.  
  3871. &lt;p&gt;The basic idea is that it&#38;rsquo;s an outliner, with collapsible nested sections that
  3872. can be cycled open and closed by hitting &lt;kbd&gt;Tab&lt;/kbd&gt;.  There are checklist
  3873. items that can be cycled through various states, date metadata, and ways to
  3874. execute inlined code.  There&#38;rsquo;s also tooling for viewing uncompleted tasks, a
  3875. calendar interface, and an agenda based on upcoming events and task start dates
  3876. / deadlines.&lt;/p&gt;
  3877.  
  3878. &lt;p&gt;The syntax is moderately ugly and not as regular as I would have expected from
  3879. its Lisp-adjacency, but it&#38;rsquo;s handled fluidly, with fewer glitches and more
  3880. polish than I tend to expect from complex editor plugins.&lt;/p&gt;
  3881.  
  3882. &lt;p&gt;It&#38;rsquo;s magical, but I didn&#38;rsquo;t actually wind up sticking with it.&lt;/p&gt;
  3883.  
  3884. &lt;h2&gt;vimwiki&lt;/h2&gt;
  3885.  
  3886. &lt;p&gt;I got a few days into the Org mode thing, and then Ben pointed me at
  3887. &lt;a href=&#34;https://vimwiki.github.io/&#34;&gt;Vimwiki&lt;/a&gt;.  I had already by that point tried
  3888. &lt;a href=&#34;https://github.com/jceb/vim-orgmode&#34;&gt;vim-orgmode&lt;/a&gt;, which wasn&#38;rsquo;t quite what I was looking for.
  3889. Vimwiki turned out to be it, or at least something much closer.&lt;/p&gt;
  3890.  
  3891. &lt;p&gt;Vim-instead-of-Emacs reasons:&lt;/p&gt;
  3892.  
  3893. &lt;ul&gt;
  3894. &lt;li&gt;&lt;p&gt;Even with good Vim-style keybindings (and evil-mode, which is on by default
  3895. in spacemacs, is very good), I always wind up in the part of Emacs that&#38;rsquo;s
  3896. physically painful to use.  (Lots of key chording really seems to bring on
  3897. my always-latent RSI.)&lt;/p&gt;&lt;/li&gt;
  3898. &lt;li&gt;&lt;p&gt;I lean a lot on Vim behavior that&#38;rsquo;s different or missing
  3899. in evil-mode.  I&#38;rsquo;m not sure I could even tell you &lt;em&gt;what&lt;/em&gt; behavior, just
  3900. that it differs enough to break my brain.  Stuff around visual selections
  3901. and line endings is a lot of it, I think.&lt;/p&gt;&lt;/li&gt;
  3902. &lt;li&gt;&lt;p&gt;I cannot afford to mess around customizing Emacs for a month right now.&lt;/p&gt;&lt;/li&gt;
  3903. &lt;/ul&gt;
  3904.  
  3905.  
  3906. &lt;p&gt;Vimwiki-is-legit-good reasons:&lt;/p&gt;
  3907.  
  3908. &lt;ul&gt;
  3909. &lt;li&gt;&lt;p&gt;This is a simple, old-school wiki.  Storage is plaintext with
  3910. very basic syntax, links and new pages are cheap to create.&lt;/p&gt;&lt;/li&gt;
  3911. &lt;li&gt;&lt;p&gt;You can be up and running with no config and 4 or 5 key sequences with
  3912. pretty simple mnemonics.  I didn&#38;rsquo;t have to memorize much of anything I
  3913. don&#38;rsquo;t already know.&lt;/p&gt;&lt;/li&gt;
  3914. &lt;li&gt;&lt;p&gt;There&#38;rsquo;s a checklist syntax, headers are easy, and you can inline code (with
  3915. syntax highlighting).  This is pretty much all I need.&lt;/p&gt;&lt;/li&gt;
  3916. &lt;/ul&gt;
  3917.  
  3918.  
  3919. &lt;p&gt;Lastly, there&#38;rsquo;s the diary.  This turns out to be the thing I use more than any
  3920. other feature.  It works like this:  You press &lt;kbd&gt;,w,w&lt;/kbd&gt; (where
  3921. &lt;kbd&gt;,&lt;/kbd&gt; is your leader key) and you get a page for the current date.&lt;/p&gt;
  3922.  
  3923. &lt;p&gt;Here are the Vimwiki-relevant parts of my current &lt;code&gt;.vimrc&lt;/code&gt; (I&#38;rsquo;m using &lt;a href=&#34;https://github.com/VundleVim/Vundle.vim&#34;&gt;Vundle&lt;/a&gt;
  3924. to manage plugins - you may prefer other options):&lt;/p&gt;
  3925.  
  3926. &lt;pre&gt;&lt;code&gt;&#34; a calendar - used in conjunction with vimwiki diaries
  3927. let g:calendar_keys = { &#39;goto_next_month&#39;: &#39;&#38;lt;C-Right&#38;gt;&#39;, &#39;goto_prev_month&#39;: &#39;&#38;lt;C-Left&#38;gt;&#39;}
  3928. Plugin &#39;mattn/calendar-vim&#39;
  3929.  
  3930. &#34; CUSTOMIZE: vimwikis - for notes, daily logs, etc. {{{
  3931.  
  3932.  let wiki = {}
  3933.  let wiki.path = &#39;~/notes/vimwiki/&#39;
  3934.  let wiki.path_html = &#39;~/notes/html/&#39;
  3935.  let wiki.auto_tags = 1
  3936.  
  3937.  &#34; do syntax highlight in preformatted blocks:
  3938.  let wiki.nested_syntaxes = {
  3939.    \ &#39;python&#39;: &#39;python&#39;,
  3940.    \ &#39;ruby&#39;: &#39;ruby&#39;,
  3941.    \ &#39;perl&#39;: &#39;perl&#39;,
  3942.    \ &#39;sh&#39;: &#39;sh&#39;
  3943.  \ }
  3944.  
  3945.  &#34; there can be many of these:
  3946.  let g:vimwiki_list = [wiki]
  3947.  
  3948.  let g:vimwiki_folding = &#39;expr&#39;
  3949.  
  3950.  Plugin &#39;vimwiki/vimwiki&#39;
  3951.  
  3952. &#34; }}}
  3953. &lt;/code&gt;&lt;/pre&gt;
  3954.  
  3955. &lt;p&gt;Nothing is perfect, but if you&#38;rsquo;re already a user of Vim and looking for a
  3956. semi-formal note-taking paradigm, I endorse Vimwiki as a starting point.&lt;/p&gt;
  3957.  
  3958. &lt;p&gt;For future work, I&#38;rsquo;d like to think about:&lt;/p&gt;
  3959.  
  3960. &lt;ul&gt;
  3961. &lt;li&gt;&lt;p&gt;Executing inlined code (I already have this for Markdown documents;
  3962. it should be simple enough).&lt;/p&gt;&lt;/li&gt;
  3963. &lt;li&gt;&lt;p&gt;Inlining structured data (like timestamps for invoicing).&lt;/p&gt;&lt;/li&gt;
  3964. &lt;li&gt;&lt;p&gt;Some kind of glue script to correlate diary entries with VCS commit logs,
  3965. Atom/RSS feeds, and command-line history.&lt;/p&gt;&lt;/li&gt;
  3966. &lt;li&gt;&lt;p&gt;Using Vimwiki to manage the wiki entries on this site that used to be
  3967. handled by WalaWiki (I&#38;rsquo;d intended to turn WalaWiki back on, but the modern
  3968. web is such a hostile environment that I think it&#38;rsquo;d require a from-scratch
  3969. rewrite or use of some other wiki platform to feel safe exposing it.  It&#38;rsquo;s
  3970. easier to just generate static HTML pages and accept changes by way of
  3971. git).&lt;/p&gt;&lt;/li&gt;
  3972. &lt;/ul&gt;
  3973.  
  3974.  
  3975.  
  3976. &lt;p class=&#34;datelink&#34;&gt;
  3977. &lt;a href=&#34;https://p1k3.com/topics/emacs&#34;&gt;emacs&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/notes&#34;&gt;notes&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/vim&#34;&gt;vim&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/vimwiki&#34;&gt;vimwiki&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3978. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3979. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3980. &lt;a href=&#34;https://p1k3.com/2017/1/22/&#34; title=&#34;22&#34;&gt;22&lt;/a&gt;
  3981. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>friday, january 20</title><link href="https://p1k3.com/2017/1/20"/><id>https://p1k3.com/2017/1/20</id><content type="html">&lt;h1&gt;friday, january 20&lt;/h1&gt;
  3982.  
  3983. &lt;p&gt;the text is a program&lt;br /&gt;
  3984. running on the reader&#39;s mind&lt;br /&gt;
  3985. this is no small responsibility&lt;/p&gt;
  3986.  
  3987. &lt;p&gt;it consumes resources and&lt;br /&gt;
  3988. has side effects in&lt;br /&gt;
  3989. a highly &lt;a href=&#34;/2012/10/9&#34;&gt;stateful system&lt;/a&gt;&lt;br /&gt;
  3990. indexes into existing storage&lt;br /&gt;
  3991. and may replicate itself in exposed&lt;br /&gt;
  3992. environments&lt;/p&gt;
  3993.  
  3994. &lt;p&gt;may run in parallel&lt;br /&gt;
  3995. on many minds,&lt;br /&gt;
  3996. or become a dependency&lt;br /&gt;
  3997. of other texts, other programs&lt;br /&gt;
  3998. entire operating systems&lt;br /&gt;
  3999. of the human soul&lt;/p&gt;
  4000.  
  4001. &lt;p&gt;i mean this as more&lt;br /&gt;
  4002. than an image&lt;br /&gt;
  4003. it&#39;s broadly true, if imprecise  &#38;mdash; &lt;/p&gt;
  4004.  
  4005. &lt;p&gt;just as in code we programmers&lt;br /&gt;
  4006. too routinely neglect our responsibilities&lt;br /&gt;
  4007. even as our art becomes the stuff of&lt;br /&gt;
  4008. power and territory,&lt;br /&gt;
  4009. in all this text we seem to neglect&lt;br /&gt;
  4010. the fragility and transience of mind&lt;br /&gt;
  4011. the possibility of harm&lt;br /&gt;
  4012. the cost of all these wasted cycles&lt;br /&gt;
  4013. and chained complexities&lt;/p&gt;
  4014.  
  4015. &lt;p class=&#34;datelink&#34;&gt;
  4016. &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4017. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  4018. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  4019. &lt;a href=&#34;https://p1k3.com/2017/1/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  4020. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Thursday, January 19</title><link href="https://p1k3.com/2017/1/19"/><id>https://p1k3.com/2017/1/19</id><content type="html">&lt;h1&gt;Thursday, January 19&lt;/h1&gt;
  4021.  
  4022. &lt;div class=&#34;photos&#34;&gt;
  4023. &lt;a href=&#34;/files/photos/./2017-01-19/IMG_6905.JPG&#34;&gt;
  4024.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-19/Thumbs/IMG_6905.JPG&#34; width=&#34;200&#34;&gt;
  4025. &lt;/a&gt;
  4026. &lt;/div&gt;
  4027.  
  4028. &lt;p class=&#34;datelink&#34;&gt;
  4029. &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4030. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  4031. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  4032. &lt;a href=&#34;https://p1k3.com/2017/1/19/&#34; title=&#34;19&#34;&gt;19&lt;/a&gt;
  4033. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>saturday, january 14</title><link href="https://p1k3.com/2017/1/14"/><id>https://p1k3.com/2017/1/14</id><content type="html">&lt;h1&gt;saturday, january 14&lt;/h1&gt;
  4034.  
  4035. &lt;p&gt;enough exposure to the look and feel of&lt;br /&gt;
  4036. old science fiction will give you&lt;br /&gt;
  4037. this kind of double vision when it comes&lt;br /&gt;
  4038. to the style of the present&lt;/p&gt;
  4039.  
  4040. &lt;p&gt;the valence of the future has changed&lt;br /&gt;
  4041. it has begun to merge with that of the present moment&lt;br /&gt;
  4042. which maybe signifies a shear in the structure&lt;br /&gt;
  4043. of, at least, our tastes and expectations&lt;/p&gt;
  4044.  
  4045. &lt;p&gt;i started consuming ideas of the future&lt;br /&gt;
  4046. by reading ones that had aged into alternate histories&lt;br /&gt;
  4047. decades before i was born;&lt;br /&gt;
  4048. in the decades since then i have outlived the&lt;br /&gt;
  4049. time horizon of countless others&lt;/p&gt;
  4050.  
  4051. &lt;p&gt;this may help explain why, in the chronological&lt;br /&gt;
  4052. territory of my mind, 1970 is always&lt;br /&gt;
  4053. somewhere in the near-future-past&lt;br /&gt;
  4054. and 2017 has that strange dual quality of &lt;i&gt;now&lt;/i&gt;&lt;br /&gt;
  4055. and &lt;i&gt;still yet to come&lt;/i&gt;&lt;/p&gt;
  4056.  
  4057. &lt;p class=&#34;datelink&#34;&gt;
  4058. &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/reading&#34;&gt;reading&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/sfnal&#34;&gt;sfnal&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4059. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  4060. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  4061. &lt;a href=&#34;https://p1k3.com/2017/1/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  4062. &lt;/p&gt;</content><updated>2018-03-29T06:20:33Z</updated></entry><entry><title>Wednesday, January 11</title><link href="https://p1k3.com/2017/1/11"/><id>https://p1k3.com/2017/1/11</id><content type="html">&lt;h1&gt;Wednesday, January 11&lt;/h1&gt;
  4063.  
  4064. &lt;div class=&#34;photos&#34;&gt;
  4065. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_6960.JPG&#34;&gt;
  4066.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_6960.JPG&#34; width=&#34;200&#34;&gt;
  4067. &lt;/a&gt;
  4068. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_6966.JPG&#34;&gt;
  4069.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_6966.JPG&#34; width=&#34;200&#34;&gt;
  4070. &lt;/a&gt;
  4071. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_6967.JPG&#34;&gt;
  4072.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_6967.JPG&#34; width=&#34;200&#34;&gt;
  4073. &lt;/a&gt;
  4074. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_6969.JPG&#34;&gt;
  4075.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_6969.JPG&#34; width=&#34;200&#34;&gt;
  4076. &lt;/a&gt;
  4077. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_6974.JPG&#34;&gt;
  4078.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_6974.JPG&#34; width=&#34;200&#34;&gt;
  4079. &lt;/a&gt;
  4080. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7008.JPG&#34;&gt;
  4081.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7008.JPG&#34; width=&#34;200&#34;&gt;
  4082. &lt;/a&gt;
  4083. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7011.JPG&#34;&gt;
  4084.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7011.JPG&#34; width=&#34;200&#34;&gt;
  4085. &lt;/a&gt;
  4086. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7013.JPG&#34;&gt;
  4087.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7013.JPG&#34; width=&#34;200&#34;&gt;
  4088. &lt;/a&gt;
  4089. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7016.JPG&#34;&gt;
  4090.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7016.JPG&#34; width=&#34;200&#34;&gt;
  4091. &lt;/a&gt;
  4092. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7018.JPG&#34;&gt;
  4093.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7018.JPG&#34; width=&#34;200&#34;&gt;
  4094. &lt;/a&gt;
  4095. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7027.JPG&#34;&gt;
  4096.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7027.JPG&#34; width=&#34;200&#34;&gt;
  4097. &lt;/a&gt;
  4098. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7031.JPG&#34;&gt;
  4099.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7031.JPG&#34; width=&#34;200&#34;&gt;
  4100. &lt;/a&gt;
  4101. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7032.JPG&#34;&gt;
  4102.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7032.JPG&#34; width=&#34;200&#34;&gt;
  4103. &lt;/a&gt;
  4104. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7038.JPG&#34;&gt;
  4105.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7038.JPG&#34; width=&#34;200&#34;&gt;
  4106. &lt;/a&gt;
  4107. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7045.JPG&#34;&gt;
  4108.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7045.JPG&#34; width=&#34;200&#34;&gt;
  4109. &lt;/a&gt;
  4110. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7088.JPG&#34;&gt;
  4111.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7088.JPG&#34; width=&#34;200&#34;&gt;
  4112. &lt;/a&gt;
  4113. &lt;/div&gt;
  4114.  
  4115. &lt;p class=&#34;datelink&#34;&gt;
  4116. &lt;a href=&#34;https://p1k3.com/topics/candles&#34;&gt;candles&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/kansas&#34;&gt;kansas&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/nebraska&#34;&gt;nebraska&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4117. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  4118. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  4119. &lt;a href=&#34;https://p1k3.com/2017/1/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt;
  4120. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Saturday, January  7 - initial notes on the dell xps 13 developer edition (9360)</title><link href="https://p1k3.com/2017/1/7"/><id>https://p1k3.com/2017/1/7</id><content type="html">&lt;h1&gt;Saturday, January  7&lt;/h1&gt;
  4121.  
  4122. &lt;h2&gt;initial notes on the dell xps 13 developer edition (9360)&lt;/h2&gt;
  4123.  
  4124. &lt;p&gt;This will probably only be of interest to people who own (or are thinking about
  4125. owning) a Dell XPS 13, and running Debian GNU/Linux on it.&lt;/p&gt;
  4126.  
  4127. &lt;p class=&#34;centerpiece&#34;&gt; ✾ &lt;/p&gt;
  4128.  
  4129.  
  4130. &lt;p&gt;I recently got a new work laptop courtesy of Adafruit, and have been getting it
  4131. into working shape over the last few days.  It&#38;rsquo;s a Dell XPS 13 Developer
  4132. Edition, manufactured in late December of 2016.  It shipped with Ubuntu 16.04
  4133. installed, so I assumed it would probably run Debian acceptably.  That&#38;rsquo;s been
  4134. true, for the most part.  I&#38;rsquo;ve had to install Stretch / Testing, as Jessie
  4135. doesn&#38;rsquo;t appear to support the hardware.&lt;/p&gt;
  4136.  
  4137. &lt;p&gt;Some general observations, first:&lt;/p&gt;
  4138.  
  4139. &lt;ul&gt;
  4140. &lt;li&gt;&lt;p&gt;I got this system on the advice of friends who&#38;rsquo;ve been using similar models
  4141. for a few months, and also specifically because it comes with a Linux
  4142. distro out of the box.  That&#38;rsquo;s still depressingly rare from mainstream
  4143. manufacturers, and it seems like a good idea to send the signal that there
  4144. &lt;em&gt;is&lt;/em&gt; a market.&lt;/p&gt;&lt;/li&gt;
  4145. &lt;li&gt;&lt;p&gt;There are more pixels on this thing than anybody needs, and that&#38;rsquo;s probably
  4146. the biggest obstacle to using a non-mainstream windowing environment.  More
  4147. about that in a moment.&lt;/p&gt;&lt;/li&gt;
  4148. &lt;li&gt;&lt;p&gt;The keyboard here is more or less what I expect from expensive modern
  4149. laptops, which is to say that it&#38;rsquo;s kind of shitty but not completely
  4150. intolerable.  Keys with real travel and a ThinkPad-esque layout would be
  4151. nice, even at the expense of a few mm more case thickness, but Apple casts
  4152. a long shadow over this conceptual landscape, so I know better than to
  4153. expect them.  (So it goes.  If there&#38;rsquo;s one thing I know about markets, it&#38;rsquo;s
  4154. that they happily prefer worse functional alternatives where aesthetic
  4155. religion dictates.)&lt;/p&gt;&lt;/li&gt;
  4156. &lt;li&gt;&lt;p&gt;Two USB ports and a USB Type C / Thunderbolt port (I think; I have yet to
  4157. fully get what is going on with this thing, but I guess it can do
  4158. everything?).  This is obviously not as many ports as you&#38;rsquo;d want, but on a
  4159. machine this tiny it&#38;rsquo;s probably acceptable.  Keep in mind you will need to
  4160. buy accessories to connect to most legacy monitors or to an ethernet
  4161. network.  Which is on one level ridiculous, but again, it&#38;rsquo;s what it is.&lt;/p&gt;&lt;/li&gt;
  4162. &lt;li&gt;&lt;p&gt;Ok, so it doesn&#38;rsquo;t have nearly as much physical stuff as I often want.  On
  4163. the other hand, it&#38;rsquo;s really small and takes up like half as much space in
  4164. my bag as my last couple of portable machines.  Also the case build feels
  4165. pretty nice - it&#38;rsquo;s aluminum and carbon fiber, which beats hell out of the
  4166. flimsy, brittle plastic that&#38;rsquo;s standard on most non-Apple laptops.&lt;/p&gt;&lt;/li&gt;
  4167. &lt;li&gt;&lt;p&gt;There&#38;rsquo;s a touchscreen.  This isn&#38;rsquo;t lifechanging, but with the right
  4168. configuration it might be pretty neat.  With scrolling and gestural
  4169. input for window management tasks, it could be a major advantage.&lt;/p&gt;&lt;/li&gt;
  4170. &lt;/ul&gt;
  4171.  
  4172.  
  4173. &lt;p&gt;Anyhow, on to setup specifics.&lt;/p&gt;
  4174.  
  4175. &lt;p&gt;I used this &lt;a href=&#34;https://wiki.debian.org/InstallingDebianOn/Dell/Dell_XPS_13_9360&#34;&gt;Debian wiki installation guide&lt;/a&gt;, which says to install
  4176. Stretch because Jessie won&#38;rsquo;t work.  (I tried Jessie anyway first, since I had a
  4177. recent netinst image laying around &#38;mdash; no go.)&lt;/p&gt;
  4178.  
  4179. &lt;p&gt;I found a &lt;a href=&#34;http://www.dell.com/support/home/us/en/04/product-support/product/xps-13-9360-laptop/drivers&#34;&gt;BIOS update&lt;/a&gt; to version 1.2.3, which I installed by putting
  4180. it on a USB stick with a FAT filesystem (actually a camera microSD card in a
  4181. little keychain reader thing I got at SparkFun; everything else I have laying
  4182. around seems to be EXT3 or 4), hitting &lt;kbd&gt;F12&lt;/kbd&gt; at boot, and selecting
  4183. &#38;ldquo;BIOS Flash Update&#38;rdquo; from inside the BIOS menu.  I&#38;rsquo;m not sure if this was
  4184. strictly necessary, but it probably didn&#38;rsquo;t hurt anything.&lt;/p&gt;
  4185.  
  4186. &lt;p&gt;I also followed this part of the instructions from the wiki:&lt;/p&gt;
  4187.  
  4188. &lt;blockquote&gt;&lt;p&gt;Choose the first option, BIOS Setup. You have to change two settings:&lt;/p&gt;
  4189.  
  4190. &lt;p&gt;System Configuration: SATA Operation: change &#38;ldquo;RAID On&#38;rdquo; to &#38;ldquo;AHCI&#38;rdquo;. Without
  4191. this change, Linux won&#38;rsquo;t find the SSD.&lt;/p&gt;
  4192.  
  4193. &lt;p&gt;Secure Boot: Secure Boot Enable: change to &#38;ldquo;disabled&#38;rdquo; since Debian currently
  4194. doesn&#38;rsquo;t support secure boot.&lt;/p&gt;&lt;/blockquote&gt;
  4195.  
  4196. &lt;p&gt;&#38;hellip;although since the system was already running Ubuntu, I think at least one
  4197. of these didn&#38;rsquo;t need changed.&lt;/p&gt;
  4198.  
  4199. &lt;p&gt;For the Debian install, I wound up downloading a &lt;a href=&#34;http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha8/amd64/iso-cd/&#34;&gt;netinst image with the extra
  4200. nonfree firmware from cdimage.debian.org&lt;/a&gt;, in order to support the
  4201. Atheros network hardware in the installer.&lt;/p&gt;
  4202.  
  4203. &lt;p&gt;On another Debian system, I did:&lt;/p&gt;
  4204.  
  4205. &lt;pre&gt;&lt;code&gt;sudo dd if=firmware-stretch-DI-alpha8-amd64-netinst.iso of=/dev/sdc
  4206. &lt;/code&gt;&lt;/pre&gt;
  4207.  
  4208. &lt;p&gt;&#38;hellip;where &lt;code&gt;/dev/sdc&lt;/code&gt; was another microSD card in the USB reader stick, and then
  4209. booted the Dell from it.  If I remember right, I may have needed to hit
  4210. &lt;kbd&gt;F12&lt;/kbd&gt; again to get a boot menu that would let me select the stick.&lt;/p&gt;
  4211.  
  4212. &lt;p&gt;I used the classic text-mode installer.  I&#38;rsquo;ve been through this thing hundreds
  4213. of times by now, and it&#38;rsquo;s usually painless, but this time was tricky because
  4214. the console text was so tiny that I had to put on a pair of reading glasses and
  4215. hold the monitor inches from my face to read the menus (I tried a magnifying
  4216. glass first - it worked, but was a pain to hold while typing).  I also had to
  4217. restart the installer at least once before it picked up the existence of the
  4218. extra nonfree firmware on the installation media - no idea why.&lt;/p&gt;
  4219.  
  4220. &lt;p&gt;It&#38;rsquo;s worth pointing out that this version of the distribution is &lt;em&gt;not stable
  4221. software&lt;/em&gt;, and may cause pain.  I&#38;rsquo;m pretty comfortable fixing Debian systems
  4222. when something goes wrong, but if you&#38;rsquo;re new to the whole thing I&#38;rsquo;d recommend
  4223. sticking with the out-of-box Ubuntu install for a while.  (And maybe installing
  4224. Gnome instead of Unity.)&lt;/p&gt;
  4225.  
  4226. &lt;p class=&#34;centerpiece&#34;&gt; ✩ &lt;/p&gt;
  4227.  
  4228.  
  4229. &lt;p&gt;Once I had a running operating system, I needed to be able to read things
  4230. and use the keyboard.&lt;/p&gt;
  4231.  
  4232. &lt;p&gt;By default, you have to chord &lt;kbd&gt;Fn&lt;/kbd&gt; and a function key to get
  4233. traditional &lt;kbd&gt;F1&lt;/kbd&gt; - &lt;kbd&gt;F12&lt;/kbd&gt; input. Since I bind a bunch of stuff
  4234. to function keys in my editor, and only change the volume or toggle the
  4235. keyboard backlight occasionally, this feels backwards.  I eventually found a
  4236. forum post that mentioned the BIOS settings for this are now hidden in POST
  4237. Behavior -&gt; FN Lock Options.&lt;/p&gt;
  4238.  
  4239. &lt;p&gt;As to reading things on the display, I currently have
  4240. &lt;a href=&#34;https://github.com/brennen/bpb-kit/compare/escalation&#34;&gt;a branch of bpb-kit&lt;/a&gt; going for this machine-specific
  4241. set of config changes.  Some notes:&lt;/p&gt;
  4242.  
  4243. &lt;ul&gt;
  4244. &lt;li&gt;&lt;p&gt;My level of certainty about most of this stuff is pretty low.  A bunch of
  4245. things interact, and I&#38;rsquo;ve never learned how most of them are actually put
  4246. together.&lt;/p&gt;&lt;/li&gt;
  4247. &lt;li&gt;&lt;p&gt;Gnome pretty well worked ok out of the box.  I set Fonts -&gt; Scaling Factor to
  4248. 1.30 in &lt;code&gt;gnome-tweak-tool&lt;/code&gt;, which seems maybe to have an effect on &lt;a href=&#34;https://www.freedesktop.org/wiki/Software/Xft/&#34;&gt;Xft&lt;/a&gt;
  4249. font scaling when &lt;code&gt;gnome-settings-daemon&lt;/code&gt; is running, even outside of
  4250. Gnome-proper?&lt;/p&gt;&lt;/li&gt;
  4251. &lt;li&gt;&lt;p&gt;XMonad needed more help.&lt;/p&gt;
  4252.  
  4253. &lt;ul&gt;
  4254. &lt;li&gt;Set &lt;code&gt;Xft.dpi = 192&lt;/code&gt; in &lt;code&gt;~/.Xresources&lt;/code&gt;, which is included by a line
  4255. in my &lt;code&gt;xmonad.start&lt;/code&gt; script.&lt;/li&gt;
  4256. &lt;li&gt;Increased trayer height to 40 in &lt;code&gt;xmonad.start&lt;/code&gt;.&lt;/li&gt;
  4257. &lt;li&gt;Changed xmobar&#38;rsquo;s default font to &lt;code&gt;xft:Bitstream Vera Sans Mono:size=9:antialias=true&lt;/code&gt;
  4258. in &lt;code&gt;.xmobarrc&lt;/code&gt;.&lt;/li&gt;
  4259. &lt;li&gt;Rewrote a good chunk of my &lt;code&gt;~/.xmonad/xmonad.hs&lt;/code&gt;, but mostly for
  4260. other reasons than resolution - added &lt;code&gt;rofi&lt;/code&gt; as a launcher and &lt;code&gt;i3lock&lt;/code&gt;
  4261. for screen locking, rewrote keybindings to use &lt;code&gt;EZConfig&lt;/code&gt;, added some
  4262. comments.&lt;/li&gt;
  4263. &lt;li&gt;Added XMonad keybindings for volume &#38;amp; brightness keys.&lt;/li&gt;
  4264. &lt;/ul&gt;
  4265. &lt;/li&gt;
  4266. &lt;li&gt;&lt;p&gt;In Firefox, I entered &lt;code&gt;about:config&lt;/code&gt; in the URL bar and set
  4267. &lt;code&gt;layout.css.devPixelsPerPx&lt;/code&gt; to 2.0.&lt;/p&gt;&lt;/li&gt;
  4268. &lt;/ul&gt;
  4269.  
  4270.  
  4271. &lt;p&gt;Stuff I still haven&#38;rsquo;t figured out:&lt;/p&gt;
  4272.  
  4273. &lt;ul&gt;
  4274. &lt;li&gt;Scaling in some GTK applications like Gimp and Inkscape.&lt;/li&gt;
  4275. &lt;li&gt;Scaling in Qt applications like Konsole, which I&#38;rsquo;ve been using for a while
  4276. now as a primary terminal (I just set the font real big).&lt;/li&gt;
  4277. &lt;li&gt;Font sizes in XMonad tabs are still tiny.&lt;/li&gt;
  4278. &lt;li&gt;There&#38;rsquo;s a weird, perceptible lag in starting applications, even tiny
  4279. ones like xterm.  Some bit of configuration state is almost certainly
  4280. causing this.&lt;/li&gt;
  4281. &lt;li&gt;&lt;code&gt;ssh-agent&lt;/code&gt; doesn&#38;rsquo;t seem to be active by default.  Related to above?
  4282. Maybe.&lt;/li&gt;
  4283. &lt;/ul&gt;
  4284.  
  4285.  
  4286. &lt;p&gt;I may improve these notes at some later date, but I wanted to publish what I
  4287. had so far.&lt;/p&gt;
  4288.  
  4289. &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I &lt;a href=&#34;https://github.com/brennen/bpb-kit/commit/3d055a3796b2e99a865304918771764c04ee7923&#34;&gt;swapped out&lt;/a&gt; &lt;code&gt;gnome-settings-daemon&lt;/code&gt; for
  4290. &lt;a href=&#34;https://github.com/derat/xsettingsd&#34;&gt;xsettingsd&lt;/a&gt;.&lt;/p&gt;
  4291.  
  4292. &lt;p&gt;There&#38;rsquo;s still a bunch of stuff running that I &lt;em&gt;probably&lt;/em&gt; don&#38;rsquo;t need.  I may get
  4293. rid of GDM and see what happens.  I should probably also think about building
  4294. a custom kernel and look into power tweaks.&lt;/p&gt;
  4295.  
  4296.  
  4297. &lt;p class=&#34;datelink&#34;&gt;
  4298. &lt;a href=&#34;https://p1k3.com/topics/debian&#34;&gt;debian&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/linux&#34;&gt;linux&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/warelogging&#34;&gt;warelogging&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/xmonad&#34;&gt;xmonad&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4299. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  4300. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  4301. &lt;a href=&#34;https://p1k3.com/2017/1/7/&#34; title=&#34;7&#34;&gt;7&lt;/a&gt;
  4302. &lt;/p&gt;</content><updated>2018-06-03T06:02:47Z</updated></entry><entry><title>Monday, January  2</title><link href="https://p1k3.com/2017/1/2"/><id>https://p1k3.com/2017/1/2</id><content type="html">&lt;h1&gt;Monday, January  2&lt;/h1&gt;
  4303.  
  4304. &lt;p&gt;A while back, I added a simple &lt;a href=&#34;/topics&#34;&gt;tag system&lt;/a&gt; to this site.  Going back and
  4305. skimming old entries to tag them, it&#38;rsquo;s hard not to be overcome by this kind of
  4306. creeping self-hatred and regret for just about everything I&#38;rsquo;ve ever written.&lt;/p&gt;
  4307.  
  4308. &lt;p&gt;I was pretty young when I started writing Brennen&#38;rsquo;s Homepage, or whatever I
  4309. called it at the time.&lt;sup class=footnote&gt;1&lt;/sup&gt;   I started, if this tells
  4310. you anything, on &lt;a href=&#34;https://en.wikipedia.org/wiki/Yahoo!_GeoCities&#34;&gt;GeoCities&lt;/a&gt;, and then rented a shell account from a
  4311. guy named Robert Hardesty who had a Unix box somewhere in Boston.&lt;/p&gt;
  4312.  
  4313. &lt;p&gt;The earliest entry I have here is from April of 1997, which means I was 16 and
  4314. the Internet was still a place (or a thing) that it&#38;rsquo;s hard to realistically
  4315. remember at all now.&lt;/p&gt;
  4316.  
  4317. &lt;p class=&#34;centerpiece&#34;&gt; ✤ &lt;/p&gt;
  4318.  
  4319.  
  4320. &lt;p&gt;I want to think of my failings recorded here as the product of something like
  4321. childhood ignorance, even if they lasted well into my 30s.&lt;/p&gt;
  4322.  
  4323. &lt;p&gt;I suppose that a lot of the last ~375000 words aren&#38;rsquo;t something I&#38;rsquo;d write now
  4324. partly because the web was smaller and it made sense to write confessional
  4325. bullshit out where anyone could see it (probably because in fact only internet
  4326. weirdos like you would see it).&lt;/p&gt;
  4327.  
  4328. &lt;p&gt;Most of the early blogs and LiveJournals and GeoCities sites have evaporated
  4329. now.  They survive, if at all on the public web, only in the recesses of
  4330. archive.org.  Mostly they died of bitrot, but there&#38;rsquo;s been plenty of deliberate
  4331. clean-slating too.  People look at something they started writing when they
  4332. were still kids, and then they take it out back to shoot it.  A final mercy for
  4333. those cringier traces of their younger selves.&lt;/p&gt;
  4334.  
  4335. &lt;p&gt;I know people who burn all their journals.  The impulse makes a lot of sense.&lt;/p&gt;
  4336.  
  4337. &lt;p class=&#34;centerpiece&#34;&gt; ✣ &lt;/p&gt;
  4338.  
  4339.  
  4340. &lt;p&gt;That&#38;rsquo;s all something of a cop-out, though.  Even if everything I felt bad about
  4341. writing was gone, I&#38;rsquo;d still have written it.  I&#38;rsquo;m trying to take this
  4342. collection of terrible writing as a useful index to some things, like what I
  4343. have (despite myself) actually learned since I was a teenager.&lt;/p&gt;
  4344.  
  4345. &lt;p&gt;Here are some things I&#38;rsquo;ll own:&lt;/p&gt;
  4346.  
  4347. &lt;ul&gt;
  4348. &lt;li&gt;&lt;p&gt;I&#38;rsquo;ve written a lot of stupid, embarrassing shit about women.  I&#38;rsquo;ve also
  4349. written some stupid, unthinking, racist nonsense.&lt;/p&gt;&lt;/li&gt;
  4350. &lt;li&gt;&lt;p&gt;I&#38;rsquo;ve done more than my fair share of tasteless appropriation.&lt;/p&gt;&lt;/li&gt;
  4351. &lt;li&gt;&lt;p&gt;I grew up so embedded in midwestern American cultural and religious
  4352. conservatism that its dimensions were basically invisible to me.&lt;/p&gt;&lt;/li&gt;
  4353. &lt;li&gt;&lt;p&gt;I soaked up a whole lot of SFnal libertarianism (and much stranger stuff) and
  4354. then Free Software hit my nascent political brain like a ton of lead bricks.
  4355. I danced around anarchism for a long time without understanding it.  At 35, I
  4356. do not have a coherent political philosophy.  My writing, no doubt, reflects
  4357. this.&lt;/p&gt;&lt;/li&gt;
  4358. &lt;li&gt;&lt;p&gt;I both repeat and contradict myself constantly.  I adopt a posture of
  4359. expertise or certainty far more often than is warranted.&lt;/p&gt;&lt;/li&gt;
  4360. &lt;li&gt;&lt;p&gt;My enthusiasm for art has usually been poorly contextualized, embarrassingly
  4361. naive, or just a bad idea.&lt;sup class=footnote&gt;2&lt;/sup&gt;&lt;/p&gt;&lt;/li&gt;
  4362. &lt;li&gt;&lt;p&gt;I write poems without any real grounding in &lt;em&gt;poetry&lt;/em&gt; as such, and they are
  4363. for the most part very bad poems.&lt;/p&gt;&lt;/li&gt;
  4364. &lt;li&gt;&lt;p&gt;I almost never know what the fuck is going on.&lt;/p&gt;&lt;/li&gt;
  4365. &lt;/ul&gt;
  4366.  
  4367.  
  4368. &lt;p&gt;I could go on in this vein for a while, but I suppose the point is this:  If
  4369. you needed for some reason to discover that I&#38;rsquo;m a ridiculous asshole, or
  4370. convict me of a wide range of ideological offenses (or crimes against basic
  4371. good taste), you&#38;rsquo;d have an easy enough time of it.  However ill you want to
  4372. think of me, the text here is likely sufficient to your needs.&lt;/p&gt;
  4373.  
  4374. &lt;p class=&#34;centerpiece&#34;&gt; ✴ &lt;/p&gt;
  4375.  
  4376.  
  4377. &lt;p&gt;I&#38;rsquo;m not going to delete all this stuff, though.  I&#38;rsquo;m not sure if I can quite
  4378. say why.  I don&#38;rsquo;t blame anyone else for that impulse, but it&#38;rsquo;s not for me right
  4379. now.  Maybe I&#38;rsquo;m just too obsessed with memory to deliberately efface one of the
  4380. few artifacts I&#38;rsquo;ve made out of it.  Or too conscious of how little else I&#38;rsquo;ve
  4381. built than a pile of words, as I near an age when it&#38;rsquo;s just as likely the bulk
  4382. of my accomplishments are in the past.&lt;/p&gt;
  4383.  
  4384. &lt;p&gt;What I would say is:  If you find something here you&#38;rsquo;re repulsed by, well, you
  4385. might be right.  You might well be under no obligation to cut me much slack,
  4386. but there&#38;rsquo;s a decent chance I&#38;rsquo;m trying to do better.  At any rate, I&#38;rsquo;m all too
  4387. aware I haven&#38;rsquo;t been doing so hot as it stands.&lt;/p&gt;
  4388.  
  4389. &lt;p class=&#34;centerpiece&#34;&gt; ❂ &lt;/p&gt;
  4390.  
  4391.  
  4392.  
  4393.  
  4394. &lt;p class=footnote&gt;&lt;sup&gt;1&lt;/sup&gt; There was, for a little while, this kind of
  4395. computer gaming zine that I made in Microsoft Publisher and called &#34;Feed The
  4396. Machine&#34;.  It was full of cheatcodes I copied from other places and screenshots
  4397. of demos installed off of the &lt;i&gt;PC Gamer&lt;/i&gt; disc.  I think it had a web
  4398. incarnation for about 5 minutes somewhere in there.&lt;/p&gt;
  4399.  
  4400.  
  4401.  
  4402.  
  4403. &lt;p class=footnote&gt;&lt;sup&gt;2&lt;/sup&gt; The opinions I had in public on Usenet...  Look,
  4404. I&#39;m sorry, ok?&lt;/p&gt;
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410. &lt;p class=&#34;datelink&#34;&gt;
  4411. &lt;a href=&#34;https://p1k3.com/topics/writing&#34;&gt;writing&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4412. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  4413. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  4414. &lt;a href=&#34;https://p1k3.com/2017/1/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt;
  4415. &lt;/p&gt;</content><updated>2017-06-21T22:34:31Z</updated></entry><entry><title>Sunday, November 20</title><link href="https://p1k3.com/2016/11/20"/><id>https://p1k3.com/2016/11/20</id><content type="html">&lt;h1&gt;Sunday, November 20&lt;/h1&gt;
  4416.  
  4417. &lt;p&gt;Maciej Cegłowski, &lt;a href=&#34;http://idlewords.com/talks/robot_armies.htm&#34;&gt;Who
  4418. Will Command The Robot Armies?&lt;/a&gt;:
  4419.  
  4420. &lt;blockquote&gt;
  4421.  
  4422.  &lt;p&gt;Over the last two decades, the government&#39;s ability to spy on its citizens
  4423.  has grown immeasurably.&lt;/p&gt;
  4424.  
  4425.  &lt;p&gt;Mostly this is due to technology transfer from the commercial Internet,
  4426.  whose economic model is mass surveillance. Techniques and software that work in
  4427.  the marketplace are quickly adopted by intelligence agencies worldwide.&lt;/p&gt;
  4428.  
  4429.  &lt;p&gt;President Obama has been fairly sparing in his use of this power. I say this
  4430.  not to praise him, but actually to condemn him. His relative restraint, and his
  4431.  administration&#39;s obsession with secrecy, have masked the full extent of power
  4432.  that is available to the executive branch.&lt;/p&gt;
  4433.  
  4434.  &lt;p&gt;Now that power is being passed on to a new President, and we are going to learn
  4435.  all about what it can do. &lt;/p&gt;
  4436.  
  4437. &lt;/blockquote&gt;
  4438.  
  4439. &lt;p&gt;More or less all of this is worth thinking about.&lt;/p&gt;
  4440.  
  4441. &lt;p class=&#34;datelink&#34;&gt;
  4442. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4443. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4444. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4445. &lt;a href=&#34;https://p1k3.com/2016/11/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  4446. &lt;/p&gt;</content><updated>2016-11-20T18:49:17Z</updated></entry><entry><title>Wednesday, November 16</title><link href="https://p1k3.com/2016/11/16"/><id>https://p1k3.com/2016/11/16</id><content type="html">&lt;h1&gt;Wednesday, November 16&lt;/h1&gt;
  4447.  
  4448. &lt;p&gt;Flashes of clarity:&lt;/p&gt;
  4449.  
  4450. &lt;p&gt;It&#38;rsquo;s probably time to treat the network we have as a failure mode.&lt;/p&gt;
  4451.  
  4452. &lt;p&gt;A pathological network may be an existential threat to the project of
  4453. democratic governance.&lt;/p&gt;
  4454.  
  4455. &lt;p&gt;Whatever anarchic inclinations I&#38;rsquo;ve had over the years: I have a hard time
  4456. imagining that any preferable alternative emerges from the large-scale failure
  4457. of a democratic state.  At least not this one, however imperfectly democratic
  4458. it has been in fact.&lt;/p&gt;
  4459.  
  4460. &lt;p class=&#34;centerpiece&#34;&gt; ❃ &lt;/p&gt;
  4461.  
  4462.  
  4463. &lt;p&gt;Ok, let me think for a minute.&lt;/p&gt;
  4464.  
  4465. &lt;p&gt;Much of the American political system has been captured by a combination of
  4466. populist authoritarian racists&lt;sup class=footnote&gt;1&lt;/sup&gt; and a dangerously
  4467. deteriorated Republican Party.  That&#38;rsquo;s one thing that&#38;rsquo;s happening.  It would be
  4468. a bad idea to downplay it.&lt;/p&gt;
  4469.  
  4470. &lt;p&gt;Beyond that, but also all wrapped up in it:  It feels like there&#38;rsquo;s this
  4471. intensifying of in-group / out-group dynamics like I don&#38;rsquo;t think I&#38;rsquo;ve seen in
  4472. my lifetime.&lt;/p&gt;
  4473.  
  4474. &lt;p&gt;Of course that&#38;rsquo;s an old process.  American ideological polarization has roots
  4475. centuries older than this election cycle.  In a nation-state founded in the
  4476. context of slavery, genocidal colonization, cycles of mass migration and social
  4477. upheaval, and grand-scale ideological/religious ferment &#38;mdash; how could it
  4478. not?&lt;/p&gt;
  4479.  
  4480. &lt;p&gt;But above and beyond the American historical background radiation:&lt;/p&gt;
  4481.  
  4482. &lt;p&gt;From outside it but not outside its reach, the dominant right-wing discourse
  4483. appears as a cesspit of disinformation and resentment.  It abhors moderation or
  4484. nuance.  The guffawing idiocy of talk radio and shit-tier web forums has
  4485. consumed institutions for which those things were once just useful instruments
  4486. of propaganda.  It&#38;rsquo;s become a determining norm.  Even conservative cultural
  4487. outlets and individual voices that buck this trend seem complicit with its aims
  4488. or incapable of exerting any moderating influence.&lt;/p&gt;
  4489.  
  4490. &lt;p&gt;Left-wing discourse (even though smart people in it will explicitly and
  4491. thoughtfully reject this assessment) seems locked in a cycle of conflict
  4492. between factions and individuals whose goals and values are often
  4493. indistinguishable to outsiders.  The parsing of text for adherence to a
  4494. constantly shifting and sometimes arbitrary standard of correctness consumes
  4495. vast resources, alienates potential allies from one another, and poisons
  4496. efforts at basic empathy.  It&#38;rsquo;s almost impossible to address this pattern
  4497. &lt;em&gt;within&lt;/em&gt; the norms of left-wing discourse, because it will be parsed as a
  4498. regressive defense of incorrect postures or identity relationships which in
  4499. turn reduces to a right-wing argument about &#38;ldquo;political correctness&#38;rdquo;.  (Without
  4500. those norms, it tends to reduce &lt;em&gt;itself&lt;/em&gt; to that sort of thing.)&lt;/p&gt;
  4501.  
  4502. &lt;p&gt;Some of the left-wing / social-justice internet has simply crawled up its own
  4503. asshole into absurdist theatrics.  Considerably worse, some of it feels like
  4504. it&#38;rsquo;s curdled into a culture of weirdly exaggerated mob discipline, dogpiling,
  4505. and absolutist territorial infighting.  This pattern seeps into the language
  4506. and behavior even of lots of intellectually rigorous people who try hard to
  4507. communicate in good faith.  (And also probably the behavior of me.)&lt;/p&gt;
  4508.  
  4509. &lt;p&gt;It&#38;rsquo;s early in a bad time, but most of these things feel unlikely to improve
  4510. under the constraints we now face.  Or to stop feeding one another.&lt;/p&gt;
  4511.  
  4512. &lt;p class=&#34;centerpiece&#34;&gt; ❃ &lt;/p&gt;
  4513.  
  4514.  
  4515. &lt;p&gt;The network now defines, if it doesn&#38;rsquo;t yet thoroughly own, the space we occupy
  4516. in reality.  Too much of the network space encourages adversarial communication
  4517. as the only means of participation.  Just existing without engaging some
  4518. conflict narrative is possible within a lot of physical rooms.  It&#38;rsquo;s a lot
  4519. harder on a lot of the internet.  This alone is almost a deterministic
  4520. guarantee of fighty bullshit.&lt;/p&gt;
  4521.  
  4522. &lt;p class=&#34;centerpiece&#34;&gt; ❁ &lt;/p&gt;
  4523.  
  4524.  
  4525. &lt;p&gt;Two bumper stickers on a car in the Post Office parking lot the other morning:&lt;/p&gt;
  4526.  
  4527. &lt;blockquote&gt;&lt;p&gt;TRUMP: MAKE AMERICA GREAT AGAIN&lt;/p&gt;&lt;/blockquote&gt;
  4528.  
  4529. &lt;p&gt;And:&lt;/p&gt;
  4530.  
  4531. &lt;blockquote&gt;&lt;p&gt;If Guns Are Outlawed
  4532. What Will We Shoot Liberals With?&lt;/p&gt;&lt;/blockquote&gt;
  4533.  
  4534. &lt;p class=&#34;centerpiece&#34;&gt; 🌲 &lt;/p&gt;
  4535.  
  4536.  
  4537. &lt;p&gt;Charlie Loyd, &lt;a href=&#34;http://basecase.org/2016/11/grandma&#34;&gt;Some memories of my grandmother&lt;/a&gt;:&lt;/p&gt;
  4538.  
  4539. &lt;blockquote&gt;&lt;p&gt;It’s not enough to remember Nazis as symbols of evil. What happened to six
  4540. million people was not done by metaphors for wickedness, it was done by other
  4541. people with hands and brains like ours. They were infected with the idea that
  4542. there are intrinsically good people and intrinsically evil people. They were
  4543. extremely evil, but not intrinsically. They were wrong in ways that you and I
  4544. can be wrong. This is the most terrifying thing I know, and I know it from
  4545. Grandma. What do “it can happen here” and “never again” mean? I can’t know the
  4546. way that Grandpa did or Grandma did.&lt;/p&gt;
  4547.  
  4548. &lt;p&gt;&#38;hellip;&lt;/p&gt;
  4549.  
  4550. &lt;p&gt;From there, it’s obvious that she did not let go, was not subsumed into the
  4551. history textbook subheds of the century; she was always moving under her own
  4552. power, in catastrophies and in merely imperfect systems. And so was everyone.
  4553. Grandma was special in many ways, but point to anyone and so are they. Some of
  4554. us are lucky enough to get to a place where our work can accrete, where we can
  4555. build a piece of the world we want. Many of us are not. War is only one of the
  4556. forces that can destroy a person’s chances, or a generation’s work, or a
  4557. generation. The weight of history is intolerable, an ocean-trench pressure, if
  4558. we try to take it as a weight. Talking with Grandma helped me take it as a
  4559. liquid, something that we can equalize against without being crushed, something
  4560. whose unintelligible mass we can, with luck, push through and move within.&lt;/p&gt;&lt;/blockquote&gt;
  4561.  
  4562. &lt;p&gt;I&#38;rsquo;ll leave it on that one.  It&#38;rsquo;s more useful than any thoughts I&#38;rsquo;m having.&lt;/p&gt;
  4563.  
  4564. &lt;p class=&#34;centerpiece&#34;&gt; ✧ &lt;/p&gt;
  4565.  
  4566.  
  4567.  
  4568.  
  4569. &lt;p class=&#34;footnote&#34;&gt;&lt;sup&gt;1&lt;/sup&gt; Only _some_ members of this movement are
  4570. self-declared Nazis, in the Klan, or activist antisemites, so I guess we&#39;re
  4571. still collectively on the fence about whether &#34;pack of fascists&#34; would be
  4572. appropriate terminology.&lt;/p&gt;
  4573.  
  4574.  
  4575.  
  4576. &lt;p class=&#34;datelink&#34;&gt;
  4577. &lt;a href=&#34;https://p1k3.com/topics/radio&#34;&gt;radio&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4578. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4579. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4580. &lt;a href=&#34;https://p1k3.com/2016/11/16/&#34; title=&#34;16&#34;&gt;16&lt;/a&gt;
  4581. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Tuesday, November 15</title><link href="https://p1k3.com/2016/11/15"/><id>https://p1k3.com/2016/11/15</id><content type="html">&lt;h1&gt;Tuesday, November 15&lt;/h1&gt;
  4582.  
  4583. &lt;div class=&#34;photos&#34;&gt;
  4584. &lt;a href=&#34;/files/photos/./2016-11-15/IMG_6831.JPG&#34;&gt;
  4585.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-11-15/Thumbs/IMG_6831.JPG&#34; width=&#34;200&#34;&gt;
  4586. &lt;/a&gt;
  4587. &lt;a href=&#34;/files/photos/./2016-11-15/IMG_6841.JPG&#34;&gt;
  4588.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-11-15/Thumbs/IMG_6841.JPG&#34; width=&#34;200&#34;&gt;
  4589. &lt;/a&gt;
  4590. &lt;a href=&#34;/files/photos/./2016-11-15/IMG_6857.JPG&#34;&gt;
  4591.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-11-15/Thumbs/IMG_6857.JPG&#34; width=&#34;200&#34;&gt;
  4592. &lt;/a&gt;
  4593. &lt;a href=&#34;/files/photos/./2016-11-15/IMG_6915.JPG&#34;&gt;
  4594.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-11-15/Thumbs/IMG_6915.JPG&#34; width=&#34;200&#34;&gt;
  4595. &lt;/a&gt;
  4596. &lt;/div&gt;
  4597.  
  4598. &lt;p class=&#34;datelink&#34;&gt;
  4599. &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4600. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4601. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4602. &lt;a href=&#34;https://p1k3.com/2016/11/15/&#34; title=&#34;15&#34;&gt;15&lt;/a&gt;
  4603. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Monday, November 14</title><link href="https://p1k3.com/2016/11/14"/><id>https://p1k3.com/2016/11/14</id><content type="html">&lt;h1&gt;Monday, November 14&lt;/h1&gt;
  4604.  
  4605. &lt;p&gt;Like usual I&#38;rsquo;m at the bar; I brought a laptop this time.  Some football is
  4606. happening on TV.  Old guys bullshitting, etc.  I waited too long to eat and
  4607. I&#38;rsquo;ve been reading the internet all day, so my head hurts and I can&#38;rsquo;t think
  4608. straight enough to program.  I guess that leaves writing.&lt;/p&gt;
  4609.  
  4610. &lt;p&gt;The part of the internet I know how to see is a wall of text right now.  It
  4611. feels like you could scroll for a hundred years.  It&#38;rsquo;s nearly all got a kind of
  4612. hallucinatory, half-drugged quality to it.  I scan through take after take and
  4613. my eyes glaze across most of the sentences.  There is a kind of systemic shock
  4614. on display.  People are trying to order the world by reading and writing, and
  4615. the new arrangement of the world resists ordering.&lt;/p&gt;
  4616.  
  4617. &lt;p&gt;In other views on the network, I imagine you can see a kind of deranged
  4618. elation.  If there&#38;rsquo;s coherence anywhere, I don&#38;rsquo;t know how to find it.&lt;/p&gt;
  4619.  
  4620. &lt;p&gt;At the bar the old guy on my left shouts GOD BLESS AMERICA TODAY across me to
  4621. the guy on my right and tries to draw me into an argument about whether God
  4622. exists.  The guy on my right and the bartender engage in some friendly dialog
  4623. about how upset the people in his office were the other morning when he brought
  4624. in donuts to celebrate.  They&#38;rsquo;re &lt;em&gt;status quo&lt;/em&gt; people, he explains.  Afraid of
  4625. change.  The bartender expresses contempt for people who say they don&#38;rsquo;t know
  4626. what&#38;rsquo;s happened to this country on the internet.&lt;/p&gt;
  4627.  
  4628. &lt;p&gt;Several feet down another old guy is hassling a woman who voted for Trump about
  4629. how Trump will be convicted under RICO any day now.  He must say &#38;ldquo;RICO&#38;rdquo; twenty
  4630. or thirty times.  People are talking about demonstrations and how once upon a
  4631. time they got arrested for protesting after Kent State.  I can&#38;rsquo;t really read
  4632. what they think about the current state of affairs.  After a while I stop
  4633. trying so I can focus on finishing my beer and leave without looking too much
  4634. like I&#38;rsquo;m in a hurry.&lt;/p&gt;
  4635.  
  4636. &lt;p&gt;There are no conversations that don&#38;rsquo;t seem to be at least implicitly about the
  4637. election.&lt;/p&gt;
  4638.  
  4639.  
  4640. &lt;p class=&#34;datelink&#34;&gt;
  4641. &lt;a href=&#34;https://p1k3.com/topics/tv&#34;&gt;tv&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4642. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4643. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4644. &lt;a href=&#34;https://p1k3.com/2016/11/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  4645. &lt;/p&gt;</content><updated>2018-04-21T21:44:39Z</updated></entry><entry><title>Sunday, November  6</title><link href="https://p1k3.com/2016/11/6"/><id>https://p1k3.com/2016/11/6</id><content type="html">&lt;h1&gt;Sunday, November  6&lt;/h1&gt;
  4646.  
  4647. &lt;p&gt;&lt;em&gt;I wrote this on Sunday night.  I didn&#38;rsquo;t post it then because it wasn&#38;rsquo;t
  4648. finished and I thought I should reword it so it was kinder.  I guess it
  4649. might as well go up as-is.&lt;/em&gt;&lt;/p&gt;
  4650.  
  4651. &lt;p&gt;It&#38;rsquo;s early in an unseasonably hot November in the Western United States of
  4652. America.  An election day looms.  I find myself, in those moments when I can
  4653. face the news, somewhere between paralyzed with fear and numb with disgust.&lt;/p&gt;
  4654.  
  4655. &lt;p&gt;I filled out my ballot a few days back.  I voted for a single-payer healthcare
  4656. system I doubt will pass, and an increase in the minimum wage, and some other
  4657. things that are fairly important in Colorado.  I voted essentially party-line
  4658. for Democratic candidates for state office, though I am registered as an
  4659. independent and do not much love the Democratic party itself.  In some cases I
  4660. voted that way because I approve of the candidate, but mostly I just view a
  4661. Democratic majority as the lesser evil in a system too vast and calcified to
  4662. admit any choices that reflect my theoretical politics more closely.&lt;/p&gt;
  4663.  
  4664. &lt;p&gt;I didn&#38;rsquo;t feel any ambiguity about voting for Hillary Clinton.  Not really.  One
  4665. of the first things my culture tried to teach me was that I should hate Hillary
  4666. Clinton.  Later on I came to dislike her politics for reasons pretty well
  4667. removed from the ones that saturate the discourse of the rural Plains.  It
  4668. doesn&#38;rsquo;t really matter given the options.  She&#38;rsquo;s an establishment politician
  4669. with a mixed record, but she&#38;rsquo;s not observably a fascist.&lt;/p&gt;
  4670.  
  4671. &lt;p class=&#34;centerpiece&#34;&gt; ✩ &lt;/p&gt;
  4672.  
  4673.  
  4674. &lt;p&gt;I have told this story a dozen times by now:  The other night we sat at the
  4675. basement bar of the beer joint a few blocks over and watched the last 6 innings
  4676. of a game where the Cubs won the World Series.  During the commercial breaks
  4677. there were a lot of campaign ads.  No one seemed to pay the official Trump ones
  4678. much mind, but it was laughs and smiles every time a Clinton ad tried to play
  4679. up Trump&#38;rsquo;s vicious idiocy.&lt;/p&gt;
  4680.  
  4681. &lt;p&gt;&#38;ldquo;That guy&#38;rsquo;s funny.&#38;rdquo;&lt;/p&gt;
  4682.  
  4683. &lt;p&gt;I got scared then.  I thought:  Jesus Christ, he might win.  I haven&#38;rsquo;t been
  4684. able to shake it off.  I think it could happen, even if the polling says it
  4685. probably won&#38;rsquo;t.  This idea might have been funny once.  I can&#38;rsquo;t even remember
  4686. what I thought when it was still a punchline of a candidacy.  It&#38;rsquo;s not funny
  4687. any more.  A lot of bad things are going to happen.  Even if he loses, I
  4688. suspect that white nationalism has a platform now that isn&#38;rsquo;t going away any
  4689. time soon.  A certain kind of overt, brainsick hate is blooming out again
  4690. through the culture.  It&#38;rsquo;s hard to turn a failed campaign into a lasting
  4691. movement, but it&#38;rsquo;s not impossible.&lt;/p&gt;
  4692.  
  4693. &lt;p&gt;The people who like Donald Trump, in large part they like him for things that
  4694. would make me look for the nearest exit if I encountered them from any random
  4695. dude in a bar.  They like him because he&#38;rsquo;s a crude racist and violent to women.
  4696. They like him for acting like a highschool bully and not knowing things.  They
  4697. like him for the reasons I wouldn&#38;rsquo;t leave anyone vulnerable alone in a room
  4698. with him.&lt;/p&gt;
  4699.  
  4700. &lt;p class=&#34;centerpiece&#34;&gt; ✣ &lt;/p&gt;
  4701.  
  4702.  
  4703. &lt;p&gt;When I was younger, I came home from college and ruined family get-togethers by
  4704. being angry about the Iraq War and all the other things that kids like me,
  4705. fresh out of the sticks and turning into hippies, were angry about then.  The
  4706. Bush years taught people my age so much about how corrupt and destructive a
  4707. thing American power could be in the world.  The decisions of power in those
  4708. years are still teaching us, come to that.  So much of the poison of then is
  4709. the poison of now, one way or another.&lt;/p&gt;
  4710.  
  4711. &lt;p&gt;I&#38;rsquo;m sure I know people who are voting for Donald Trump.  Some of them are
  4712. people I love.  Maybe you, reading this, are one of them.  It&#38;rsquo;s hard to know
  4713. exactly what to do with that.  You might be wiser and better than me, in much
  4714. of life:  I&#38;rsquo;m neither wise nor especially good.  But I can tell you this is an
  4715. ugly thing.&lt;/p&gt;
  4716.  
  4717.  
  4718. &lt;p class=&#34;datelink&#34;&gt;
  4719. &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4720. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4721. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4722. &lt;a href=&#34;https://p1k3.com/2016/11/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt;
  4723. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>thursday, november  3</title><link href="https://p1k3.com/2016/11/3"/><id>https://p1k3.com/2016/11/3</id><content type="html">&lt;h1&gt;thursday, november  3&lt;/h1&gt;
  4724.  
  4725. &lt;div class=&#34;comics&#34;&gt;
  4726.  &lt;p&gt;
  4727.    &lt;img src=&#34;/files/comics/1.jpg&#34;
  4728.         alt=&#34;some animals #1&#34;
  4729.         title=&#34;some animals #1&#34; /&gt;
  4730.  &lt;/p&gt;
  4731. &lt;/div&gt;
  4732.  
  4733. &lt;p class=&#34;datelink&#34;&gt;
  4734. &lt;a href=&#34;https://p1k3.com/topics/comic&#34;&gt;comic&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4735. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4736. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4737. &lt;a href=&#34;https://p1k3.com/2016/11/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt;
  4738. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Wednesday, November  2 - some things i have been using lately</title><link href="https://p1k3.com/2016/11/2"/><id>https://p1k3.com/2016/11/2</id><content type="html">&lt;h1&gt;Wednesday, November  2&lt;/h1&gt;
  4739.  
  4740. &lt;h2&gt;some things i have been using lately&lt;/h2&gt;
  4741.  
  4742. &lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://git-annex.branchable.com/&#34;&gt;git-annex&lt;/a&gt;&lt;/strong&gt;: I don&#38;rsquo;t yet have my head around more than a
  4743. fraction of what git-annex and the &lt;a href=&#34;https://git-annex.branchable.com/assistant/&#34;&gt;git-annex assistant&lt;/a&gt;
  4744. do.  That said, the short version is that it lets you track files (usually
  4745. large files like photos, but really anything) in a git repository without
  4746. storing their actual &lt;em&gt;contents&lt;/em&gt; in the repo&#38;rsquo;s history.  It does this by
  4747. leveraging symbolic links to blobs of data in the &lt;code&gt;.git&lt;/code&gt; directory, and pushing
  4748. data around between your local copy of the repo and various kinds of remote
  4749. storage:  Other repositories accessed over SSH, filesystem locations, Amazon
  4750. S3, and so on.&lt;/p&gt;
  4751.  
  4752. &lt;p&gt;I&#38;rsquo;ve been using these features on p1k3 to store images and thumbnails for
  4753. simple galleries.  (&lt;a href=&#34;/2016/8/14&#34;&gt;Here are some notes about my use case&lt;/a&gt; from
  4754. back in August &#38;mdash; the short version is I want to publish pictures without
  4755. having to trust third parties like flickr, imgur, or Instagram.) The workflow
  4756. is still a little bit confusing, and git-annex itself is enough of a hack that
  4757. there are bugs to work out.  Still, this feels like one of those fundamental
  4758. changes to a paradigm that becomes, over time, an obvious necessity.&lt;/p&gt;
  4759.  
  4760. &lt;p&gt;I &lt;a href=&#34;https://git-annex.branchable.com/thanks/&#34;&gt;backed&lt;/a&gt; one of Joey Hess&#38;rsquo;s crowdfunding campaigns for this
  4761. project a while ago.  It&#38;rsquo;s good to see work like this get real traction, and I
  4762. plan to keep chipping in for its development.&lt;/p&gt;
  4763.  
  4764. &lt;p&gt;Debian/Ubuntu installation: &lt;code&gt;apt-get install git-annex&lt;/code&gt;&lt;/p&gt;
  4765.  
  4766. &lt;p class=&#34;centerpiece&#34;&gt; ☆ &lt;/p&gt;
  4767.  
  4768.  
  4769. &lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://joeyh.name/code/moreutils/&#34;&gt;moreutils&lt;/a&gt;&lt;/strong&gt;: Another joeyh joint, this one has been around for a
  4770. while.  It bundles a set of tools that fill gaps in the classic set of Unix
  4771. utilities.&lt;/p&gt;
  4772.  
  4773. &lt;p&gt;The thing I&#38;rsquo;ve used most often here is &lt;code&gt;sponge(1)&lt;/code&gt;, which collects standard
  4774. input and writes it to a desired file.  That doesn&#38;rsquo;t seem like much, but it
  4775. lets you do something like this:&lt;/p&gt;
  4776.  
  4777. &lt;pre&gt;&lt;code&gt;somecommand somefile | sponge somefile
  4778. &lt;/code&gt;&lt;/pre&gt;
  4779.  
  4780. &lt;p&gt;A reasonable replacement for this idiom:&lt;/p&gt;
  4781.  
  4782. &lt;pre&gt;&lt;code&gt;somecommand somefile &#38;gt; somefile
  4783. &lt;/code&gt;&lt;/pre&gt;
  4784.  
  4785. &lt;p&gt;&#38;hellip;which sooner or later everyone discovers doesn&#38;rsquo;t do what they&#38;rsquo;d expect,
  4786. because redirecting to a file opens the file for writing before it executes
  4787. &lt;code&gt;somecommand somefile&lt;/code&gt;.&lt;/p&gt;
  4788.  
  4789. &lt;p&gt;Debian/Ubuntu installation: &lt;code&gt;apt-get install moreutils&lt;/code&gt;&lt;/p&gt;
  4790.  
  4791. &lt;p class=&#34;centerpiece&#34;&gt; ✪ &lt;/p&gt;
  4792.  
  4793.  
  4794. &lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/junegunn/fzf&#34;&gt;fzf&lt;/a&gt;&lt;/strong&gt;: I&#38;rsquo;ve been using &lt;a href=&#34;http://tools.suckless.org/dmenu/&#34;&gt;dmenu&lt;/a&gt; to launch programs,
  4795. &lt;a href=&#34;https://github.com/brennen/bpb-kit/blob/master/home/bin/jump-to-window&#34;&gt;jump between windows&lt;/a&gt;, and
  4796. &lt;a href=&#34;/2016/5/17&#34;&gt;navigate directories&lt;/a&gt; for quite a while now. &lt;code&gt;dmenu&lt;/code&gt; takes lines
  4797. of standard input and lets the user select one (narrowing the selection with
  4798. type-to-search), then prints it to standard out.  It&#38;rsquo;s a simple idea, but elegant
  4799. and fast for a good many tasks.&lt;/p&gt;
  4800.  
  4801. &lt;p&gt;&lt;code&gt;fzf&lt;/code&gt; is essentially the same idea, but runs in a terminal and offers more
  4802. tunable search modes along with optional prefab keybindings in the shell.  It
  4803. can replace, for example, Bash or zsh&#38;rsquo;s standard Ctrl-R for searching in
  4804. history.  There are also shims for integration with tmux and Vim, and the
  4805. author has taken an admirably modular and unixy approach to all of this.&lt;/p&gt;
  4806.  
  4807. &lt;p&gt;I&#38;rsquo;m not &lt;em&gt;completely&lt;/em&gt; comfortable with the interface of this one yet, but it&#38;rsquo;s a
  4808. general purpose utility I&#38;rsquo;ve wanted for a while, and can easily imagine
  4809. building other tools around.  I&#38;rsquo;ll probably integrate it with
  4810. &lt;a href=&#34;/2016/10/25&#34;&gt;commandlog&lt;/a&gt; for searching and annotating history.&lt;/p&gt;
  4811.  
  4812. &lt;p&gt;Installation:  Some ad hoc hackery explained in &lt;a href=&#34;https://github.com/junegunn/fzf&#34;&gt;the repo&lt;/a&gt;.  Here&#38;rsquo;s hoping
  4813. it winds up widely packaged before long.&lt;/p&gt;
  4814.  
  4815. &lt;p class=&#34;centerpiece&#34;&gt; ❂ &lt;/p&gt;
  4816.  
  4817.  
  4818. &lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://ranger.nongnu.org/&#34;&gt;ranger&lt;/a&gt;&lt;/strong&gt;: A column-based file manager with vi-style navigation.
  4819. Python, but so far hasn&#38;rsquo;t been terrible and crashy, so it&#38;rsquo;s doing something
  4820. right.  Feels in the spirit of &lt;a href=&#34;https://web.archive.org/web/20070815213713/http://www.buerg.com/index.html&#34;&gt;LIST&lt;/a&gt;, a piece of software I still miss
  4821. constantly.&lt;/p&gt;
  4822.  
  4823. &lt;p&gt;Debian installation: &lt;code&gt;apt-get install ranger&lt;/code&gt;&lt;/p&gt;
  4824.  
  4825.  
  4826. &lt;p class=&#34;datelink&#34;&gt;
  4827. &lt;a href=&#34;https://p1k3.com/topics/cli&#34;&gt;cli&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/commandlog&#34;&gt;commandlog&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/debian&#34;&gt;debian&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/git-annex&#34;&gt;git-annex&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/linux&#34;&gt;linux&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/moreutils&#34;&gt;moreutils&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/warelogging&#34;&gt;warelogging&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4828. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4829. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4830. &lt;a href=&#34;https://p1k3.com/2016/11/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt;
  4831. &lt;/p&gt;</content><updated>2017-04-01T20:40:39Z</updated></entry><entry><title>Thursday, October 27</title><link href="https://p1k3.com/2016/10/27"/><id>https://p1k3.com/2016/10/27</id><content type="html">&lt;h1&gt;Thursday, October 27&lt;/h1&gt;
  4832.  
  4833. &lt;p class=centerpiece&gt;&lt;img src=&#34;/files/memetic/watches.jpg&#34;&gt;&lt;/p&gt;
  4834.  
  4835. &lt;p&gt;This one has always meant a lot to me.&lt;/p&gt;
  4836.  
  4837. &lt;p class=&#34;datelink&#34;&gt;
  4838. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4839. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4840. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  4841. &lt;a href=&#34;https://p1k3.com/2016/10/27/&#34; title=&#34;27&#34;&gt;27&lt;/a&gt;
  4842. &lt;/p&gt;</content><updated>2016-11-05T04:07:36Z</updated></entry><entry><title>Tuesday, October 25</title><link href="https://p1k3.com/2016/10/25"/><id>https://p1k3.com/2016/10/25</id><content type="html">&lt;h1&gt;Tuesday, October 25&lt;/h1&gt;
  4843.  
  4844. &lt;p&gt;I&#38;rsquo;ve been getting back into the exciting world of desktop Linux &lt;del&gt;cat
  4845. vacuuming&lt;/del&gt; yak shaving lately.  (I never completely leave, but I guess the
  4846. intensity of my presence varies.)&lt;/p&gt;
  4847.  
  4848. &lt;p&gt;I&#38;rsquo;m not exactly sure when I crossed this threshold, but a while back I became
  4849. the sort of person who &lt;a href=&#34;https://github.com/brennen/bpb-kit&#34;&gt;cultivates dotfiles&lt;/a&gt; in earnest.  I suppose
  4850. what it amounts to is that I&#38;rsquo;ve been using a lot of the same software for years
  4851. (and maybe decades by now).  The customizations pile up.&lt;/p&gt;
  4852.  
  4853. &lt;p&gt;I used to flit around all over the place, soaking up the novelty and variation,
  4854. fascinated by all sorts of weird little evolutionary niches in interface and
  4855. capability.  I used to jump between DOS and Windows and Debian and Actual
  4856. Antiquated Unix and Apple&#38;rsquo;s System (7|8|9) and whatever whacky demo you could
  4857. boot off a floppy.  The thing I miss most about old-school Debian is how there
  4858. was just a menu for switching to a different window manager mid-session, which
  4859. for some reason I spent &lt;em&gt;hours&lt;/em&gt; doing.&lt;/p&gt;
  4860.  
  4861. &lt;p&gt;Now: the &lt;a href=&#34;/2009/9/22&#34;&gt;first mention of XMonad&lt;/a&gt; on this blog is 2009; Vim is
  4862. &lt;a href=&#34;/1999/12/7&#34;&gt;1999&lt;/a&gt;.  I&#38;rsquo;ve probably been on IRC for the majority of the time since
  4863. 1996.  If my software habits were human, some of them could be voting against
  4864. Donald Trump in a presidential election.&lt;/p&gt;
  4865.  
  4866. &lt;p class=centerpiece&gt; ✩ &lt;/p&gt;
  4867.  
  4868.  
  4869. &lt;p&gt;Anyway, in keeping with all those yak clippings and my recent fixation on
  4870. note-taking, I started a tiny project this evening:  &lt;a href=&#34;https://github.com/brennen/commandlog&#34;&gt;commandlog&lt;/a&gt;
  4871. will be a handful of tools for accumulating command-line history with context,
  4872. grouping them, and making notes about them.  My hope is that eventually I can
  4873. turn all my haphazard, undocumented shell time into a cumulative, re-usable log
  4874. of different tasks and techniques.  It seems to me like there should be a
  4875. natural flow from doing some set of operations in the shell to building a
  4876. reusable script.&lt;/p&gt;
  4877.  
  4878. &lt;p&gt;My first couple of gestures at this were a lot simpler:  I set the length of
  4879. shell history to something ridiculously long, and added a &lt;code&gt;comment&lt;/code&gt; command
  4880. that was just a no-op for sticking things in history, so I could say:&lt;/p&gt;
  4881.  
  4882. &lt;pre&gt;&lt;code&gt;$ frobnicate /dev/intangentializer
  4883. $ man frobnicate
  4884. $ apropos frobnicate
  4885. $ man frob
  4886. $ frob -i /dev/intangentializer
  4887. $ comment &#34;trying to figure out frobnication of external devices&#34;
  4888. &lt;/code&gt;&lt;/pre&gt;
  4889.  
  4890. &lt;p&gt;&#38;hellip;and then later grep for that sort of thing.  (It is probably worth noting
  4891. that these are made up commands.)  It works ok as far as it goes, but it&#38;rsquo;s often
  4892. lacking the context you&#38;rsquo;d want.  (I can&#38;rsquo;t for the life of me remember why I
  4893. didn&#38;rsquo;t just use &lt;code&gt;#&lt;/code&gt; for comments, but I feel like there &lt;em&gt;was&lt;/em&gt; some reason.)&lt;/p&gt;
  4894.  
  4895. &lt;p&gt;&lt;code&gt;commandlog&lt;/code&gt; is a touch heavier:  It drops the command, along with context data
  4896. like working directory, host, user, time, and current shell, into an SQLite
  4897. database.&lt;/p&gt;
  4898.  
  4899. &lt;p&gt;It probably isn&#38;rsquo;t ready for general use yet, but it won&#38;rsquo;t take much to get it
  4900. there.  I think the interesting pieces will probably come from search, grouping
  4901. or tagging commands, and a notes system.&lt;/p&gt;
  4902.  
  4903.  
  4904. &lt;p class=&#34;datelink&#34;&gt;
  4905. &lt;a href=&#34;https://p1k3.com/topics/commandlog&#34;&gt;commandlog&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/debian&#34;&gt;debian&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/linux&#34;&gt;linux&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/warelogging&#34;&gt;warelogging&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/xmonad&#34;&gt;xmonad&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4906. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4907. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  4908. &lt;a href=&#34;https://p1k3.com/2016/10/25/&#34; title=&#34;25&#34;&gt;25&lt;/a&gt;
  4909. &lt;/p&gt;</content><updated>2017-04-01T20:40:39Z</updated></entry><entry><title>Monday, October 24 - tree rat</title><link href="https://p1k3.com/2016/10/24"/><id>https://p1k3.com/2016/10/24</id><content type="html">&lt;h1&gt;Monday, October 24&lt;/h1&gt;
  4910.  
  4911. &lt;h2&gt;tree rat&lt;/h2&gt;
  4912.  
  4913. &lt;div class=photos&gt;
  4914. &lt;a href=&#34;/files/photos/./2016-10-24/IMG_7591.JPG&#34;&gt;
  4915.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-24/Thumbs/IMG_7591.JPG&#34; width=&#34;200&#34;&gt;
  4916. &lt;/a&gt;
  4917. &lt;a href=&#34;/files/photos/./2016-10-24/IMG_7593.JPG&#34;&gt;
  4918.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-24/Thumbs/IMG_7593.JPG&#34; width=&#34;200&#34;&gt;
  4919. &lt;/a&gt;
  4920. &lt;a href=&#34;/files/photos/./2016-10-24/IMG_7594.JPG&#34;&gt;
  4921.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-24/Thumbs/IMG_7594.JPG&#34; width=&#34;200&#34;&gt;
  4922. &lt;/a&gt;
  4923. &lt;a href=&#34;/files/photos/./2016-10-24/IMG_7595.JPG&#34;&gt;
  4924.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-24/Thumbs/IMG_7595.JPG&#34; width=&#34;200&#34;&gt;
  4925. &lt;/a&gt;
  4926. &lt;/div&gt;
  4927.  
  4928. &lt;p class=&#34;datelink&#34;&gt;
  4929. &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4930. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4931. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  4932. &lt;a href=&#34;https://p1k3.com/2016/10/24/&#34; title=&#34;24&#34;&gt;24&lt;/a&gt;
  4933. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Saturday, October 22 - recently</title><link href="https://p1k3.com/2016/10/22"/><id>https://p1k3.com/2016/10/22</id><content type="html">&lt;h1&gt;Saturday, October 22&lt;/h1&gt;
  4934.  
  4935. &lt;h2&gt;recently&lt;/h2&gt;
  4936.  
  4937. &lt;div class=&#34;photos&#34;&gt;
  4938. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7526.JPG&#34;&gt;
  4939.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7526.JPG&#34; width=&#34;200&#34;&gt;
  4940. &lt;/a&gt;
  4941. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7537.JPG&#34;&gt;
  4942.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7537.JPG&#34; width=&#34;200&#34;&gt;
  4943. &lt;/a&gt;
  4944. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7549.JPG&#34;&gt;
  4945.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7549.JPG&#34; width=&#34;200&#34;&gt;
  4946. &lt;/a&gt;
  4947. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7556.JPG&#34;&gt;
  4948.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7556.JPG&#34; width=&#34;200&#34;&gt;
  4949. &lt;/a&gt;
  4950. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7560.JPG&#34;&gt;
  4951.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7560.JPG&#34; width=&#34;200&#34;&gt;
  4952. &lt;/a&gt;
  4953. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7561.JPG&#34;&gt;
  4954.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7561.JPG&#34; width=&#34;200&#34;&gt;
  4955. &lt;/a&gt;
  4956. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7564.JPG&#34;&gt;
  4957.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7564.JPG&#34; width=&#34;200&#34;&gt;
  4958. &lt;/a&gt;
  4959. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7576.JPG&#34;&gt;
  4960.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7576.JPG&#34; width=&#34;200&#34;&gt;
  4961. &lt;/a&gt;
  4962. &lt;/div&gt;
  4963.  
  4964. &lt;p&gt;It&#38;rsquo;s hot and windy.  80-something in the sun, at least.  It is not a perfect
  4965. day for a bike ride, but it will work, and I haven&#38;rsquo;t ridden anywhere in months,
  4966. so I become determined.  Lacking any special destination, I head for Hygiene.&lt;/p&gt;
  4967.  
  4968. &lt;p&gt;There&#38;rsquo;s a stand selling honey at the turn onto 75th, so I buy some.  I&#38;rsquo;ve been
  4969. thinking about the idea that eating locally-produced honey will somehow
  4970. innoculate you against allergens.  It&#38;rsquo;s probably nonsense, but it&#38;rsquo;s the kind of
  4971. folk-medicine thing you hear from people for long enough and it starts to sound
  4972. plausible.  It&#38;rsquo;s probably worth a try.&lt;/p&gt;
  4973.  
  4974. &lt;p&gt;I sit around with the locals at the farm (it&#38;rsquo;s an ever-rotating cast) and talk
  4975. nonsense over a joint and a pickle jar full of water, buy a deli sandwich at
  4976. the market by the intersection, and head west on Hygiene Road with a stop along
  4977. the way for more bullshitting.&lt;/p&gt;
  4978.  
  4979. &lt;p class=&#34;centerpiece&#34;&gt; 🚲 &lt;/p&gt;
  4980.  
  4981.  
  4982. &lt;p&gt;If you ever want a good sense of how people driving cars feel about sharing
  4983. road space with bikes, Hygiene Rd is a useful exercise.  With the exception of
  4984. a few bridges and pullouts, there&#38;rsquo;s no paved shoulder &#38;mdash; just a white line
  4985. where pavement turns into dirt and goathead thorns.&lt;/p&gt;
  4986.  
  4987. &lt;p&gt;I learn over and over that the safest thing to do on roads like this one is
  4988. usually to take and hold the unambiguous center of the lane, which seems to
  4989. force some mental switch for drivers that gets them to cross the line and take
  4990. the other lane.  Or maybe even wait to pass if there&#38;rsquo;s oncoming traffic.&lt;/p&gt;
  4991.  
  4992. &lt;p&gt;I waver, though &#38;mdash; the other thing that taking the lane does is make
  4993. people angry.  Honking, yelling out windows.  Every time I do it, I remember
  4994. the drivers I ride with (usually good people, my friends, etc.) who will
  4995. gesture extravagantly and yell &#38;ldquo;GET OFF THE ROAD&#38;rdquo; in situations where the rules
  4996. of the road clearly allow (or require!) bikers to be where they are.  There&#38;rsquo;s a
  4997. psychological tide pulling you ever closer to hugging the edge.  You get to
  4998. feeling that maybe meek conformity to expected norms will keep you alive longer
  4999. than asserting your presence.  Or you feel that way until a couple tons of
  5000. metal tear past at 50 or 60 mph a few inches off your left elbow.&lt;/p&gt;
  5001.  
  5002. &lt;p&gt;A home truth about cycling in America is that, whatever the statistics are on
  5003. fatalities per passenger mile traveled, it&#38;rsquo;s pretty dangerous to bike on a
  5004. large subset of roads.  I suppose conformity to expected norms by way of &lt;em&gt;not
  5005. being on a bike&lt;/em&gt; is the major outcome of realizing that, for most people.&lt;/p&gt;
  5006.  
  5007. &lt;p class=&#34;centerpiece&#34;&gt; 🚲 &lt;/p&gt;
  5008.  
  5009.  
  5010. &lt;p&gt;I don&#38;rsquo;t mean to get all adversarial about this, as hostile as things sometimes
  5011. get in practice.  I drive a lot on roads that are popular with the local road
  5012. bike community, and I live in fear of the day I see somebody die because he
  5013. (it&#38;rsquo;s just about always he) decides it&#38;rsquo;s well within his rights to ride three
  5014. abreast out into the lane on a curvy, 60mph two lane highway full of tourist
  5015. drivers already overwhelmed by the presence of mountains.  Some of the
  5016. standard-issue bike pieties wear kind of thin after a while, right along with
  5017. some of the standard-issue bike behaviors.&lt;/p&gt;
  5018.  
  5019. &lt;p&gt;Maybe there&#38;rsquo;s just a big experiential impedance mismatch between big metal
  5020. boxes that feel slow at 40 miles an hour and skinny little metal frames that
  5021. feel fast at 25.  It&#38;rsquo;s probably best to remember that, however things &lt;em&gt;should&lt;/em&gt;
  5022. be, there&#38;rsquo;s an actual, material conflict of interests and modalities between
  5023. different classes of vehicle.  I piss off the drivers because I&#38;rsquo;m in their way.
  5024. The drivers piss me off because there&#38;rsquo;s a decent chance they&#38;rsquo;ll kill me.  So it
  5025. goes.&lt;/p&gt;
  5026.  
  5027. &lt;p class=&#34;centerpiece&#34;&gt; 🚲 &lt;/p&gt;
  5028.  
  5029.  
  5030. &lt;p&gt;All the same:  Riding bikes is one of the better things.&lt;/p&gt;
  5031.  
  5032.  
  5033. &lt;p class=&#34;datelink&#34;&gt;
  5034. &lt;a href=&#34;https://p1k3.com/topics/bikes&#34;&gt;bikes&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5035. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5036. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  5037. &lt;a href=&#34;https://p1k3.com/2016/10/22/&#34; title=&#34;22&#34;&gt;22&lt;/a&gt;
  5038. &lt;/p&gt;</content><updated>2018-04-16T04:55:10Z</updated></entry><entry><title>thursday, october 20</title><link href="https://p1k3.com/2016/10/20"/><id>https://p1k3.com/2016/10/20</id><content type="html">&lt;h1&gt;thursday, october 20&lt;/h1&gt;
  5039.  
  5040. &lt;pre&gt;
  5041.                         the data is   a program the program is a machine
  5042.         is a program the program is   a machine                   the data
  5043.   machine                       the   data is a program the program is a
  5044.   machine                  the data   is a program the program is a
  5045.       data is a program the program   is a machine                     the
  5046.       is a program the program is a   machine                     the data
  5047.                       the data is a   program the program is a machine
  5048.           the data is a program the   program is a machine
  5049.   is a machine                        the data is a program the program
  5050.               the data is a program   the program is a machine
  5051. &lt;/pre&gt;
  5052.  
  5053. &lt;p&gt;(courtesy ptx(1))&lt;/p&gt;
  5054.  
  5055. &lt;p class=&#34;datelink&#34;&gt;
  5056. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5057. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5058. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  5059. &lt;a href=&#34;https://p1k3.com/2016/10/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  5060. &lt;/p&gt;</content><updated>2016-11-05T04:07:36Z</updated></entry><entry><title>wednesday, october 19</title><link href="https://p1k3.com/2016/10/19"/><id>https://p1k3.com/2016/10/19</id><content type="html">&lt;h1&gt;wednesday, october 19&lt;/h1&gt;
  5061.  
  5062. &lt;p&gt;the data is a program&lt;br /&gt;
  5063. the program is a machine&lt;/p&gt;
  5064.  
  5065. &lt;p class=&#34;datelink&#34;&gt;
  5066. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5067. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5068. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  5069. &lt;a href=&#34;https://p1k3.com/2016/10/19/&#34; title=&#34;19&#34;&gt;19&lt;/a&gt;
  5070. &lt;/p&gt;</content><updated>2016-11-05T04:07:36Z</updated></entry><entry><title>monday, october 17</title><link href="https://p1k3.com/2016/10/17"/><id>https://p1k3.com/2016/10/17</id><content type="html">&lt;h1&gt;monday, october 17&lt;/h1&gt;
  5071.  
  5072. &lt;p&gt;(nobody wants another meditation on mortality&lt;br /&gt;
  5073. some days it&#39;s just hard to write any other thing&lt;/p&gt;
  5074.  
  5075. &lt;p&gt;nobody wants to rake the leaves, most of the&lt;br /&gt;
  5076. time, but they keep falling)&lt;/p&gt;
  5077.  
  5078. &lt;p&gt;i was carefully arranging textfiles&lt;br /&gt;
  5079. and stacks of paper the other day&lt;br /&gt;
  5080. and i got to wondering&lt;br /&gt;
  5081. what am i doing this for?&lt;br /&gt;
  5082. what posterity etc. is waiting this&lt;br /&gt;
  5083. particular, deliberate tedium?&lt;/p&gt;
  5084.  
  5085. &lt;p&gt;i got to thinking just now about&lt;br /&gt;
  5086. my great-grandfather keeping a journal&lt;br /&gt;
  5087. of his travels northwest of kansas,&lt;br /&gt;
  5088. some several lifetimes before i was born&lt;/p&gt;
  5089.  
  5090. &lt;p&gt;in an age when i suppose half the&lt;br /&gt;
  5091. dying shape of the older continent&lt;br /&gt;
  5092. before what his people made of it&lt;br /&gt;
  5093. was yet within living memory&lt;/p&gt;
  5094.  
  5095. &lt;p&gt;his journal&#39;s in my closet, in a box,&lt;br /&gt;
  5096. inside a plastic bag&lt;br /&gt;
  5097. i&#39;ve thought now of transcribing it&lt;br /&gt;
  5098. for something like half my life&lt;/p&gt;
  5099.  
  5100. &lt;p&gt;it wouldn&#39;t come to many words, or&lt;br /&gt;
  5101. i suppose convey much new information, but&lt;br /&gt;
  5102. i may yet put on cotton gloves and carefully&lt;br /&gt;
  5103. photograph those brittle pages&lt;/p&gt;
  5104.  
  5105. &lt;p&gt;(there is probaby no true reckoning with the past, if we&lt;br /&gt;
  5106. are honest; no logic that can operate over the&lt;br /&gt;
  5107. accumulated data and balance the losses half-traced therein)&lt;/p&gt;
  5108.  
  5109. &lt;p class=&#34;datelink&#34;&gt;
  5110. &lt;a href=&#34;https://p1k3.com/topics/kansas&#34;&gt;kansas&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5111. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5112. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  5113. &lt;a href=&#34;https://p1k3.com/2016/10/17/&#34; title=&#34;17&#34;&gt;17&lt;/a&gt;
  5114. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Sunday, October 16 - finding an obscure vim plugin bug</title><link href="https://p1k3.com/2016/10/16"/><id>https://p1k3.com/2016/10/16</id><content type="html">&lt;h1&gt;Sunday, October 16&lt;/h1&gt;
  5115.  
  5116. &lt;h2&gt;finding an obscure vim plugin bug&lt;/h2&gt;
  5117.  
  5118. &lt;p&gt;I filed this against &lt;a href=&#34;https://github.com/tpope/vim-fugitive&#34;&gt;vim-fugitive&lt;/a&gt; a bit over a month ago and just
  5119. remembered it: &lt;a href=&#34;https://github.com/tpope/vim-fugitive/issues/834&#34;&gt;Autocommands do not fire for files named index&lt;/a&gt;:&lt;/p&gt;
  5120.  
  5121. &lt;blockquote&gt;&lt;p&gt;I have an autocommand to do some stuff.  I noticed that it fails on files
  5122. named &lt;code&gt;index&lt;/code&gt;, I think because fugitive.vim has its own autocommand for
  5123. &lt;code&gt;index{,.lock}&lt;/code&gt; that triggers &lt;code&gt;BufReadIndex()&lt;/code&gt;, which in turn does something
  5124. to prevent further processing of the event. I&#38;rsquo;m kind of hazy on how.&lt;/p&gt;&lt;/blockquote&gt;
  5125.  
  5126. &lt;p&gt;Tracking this down to its source was tricky, and I feel like I should document
  5127. a couple of the small things I learned in the process.&lt;/p&gt;
  5128.  
  5129. &lt;p&gt;For background, this is from the Vim help for &lt;code&gt;:autocommand&lt;/code&gt;:&lt;/p&gt;
  5130.  
  5131. &lt;pre&gt;&lt;code&gt;:au[tocmd] [group] {event} {pat} [nested] {cmd}
  5132.        Add {cmd} to the list of commands that Vim will
  5133.        execute automatically on {event} for a file matching
  5134.        {pat} |autocmd-patterns|.
  5135.        Vim always adds the {cmd} after existing autocommands,
  5136.        so that the autocommands execute in the order in which
  5137.        they were given.  See |autocmd-nested| for [nested].
  5138. &lt;/code&gt;&lt;/pre&gt;
  5139.  
  5140. &lt;p&gt;The &lt;code&gt;{event}&lt;/code&gt; is something like &lt;code&gt;BufNewFile&lt;/code&gt;, which triggers when a buffer is
  5141. opened with a new file.  There are a bunch of these.  I was trying to get
  5142. something like the following autocommand to fire:&lt;/p&gt;
  5143.  
  5144. &lt;pre&gt;&lt;code&gt;&#34; this calls a function to treat blog entries as markdown
  5145. au BufReadPost,BufNewFile */p1k3/*[0123456789]* call BPB_PikeHighlight()
  5146. &lt;/code&gt;&lt;/pre&gt;
  5147.  
  5148. &lt;p&gt;&#38;hellip;and I couldn&#38;rsquo;t understand why the pattern &lt;code&gt;*/p1k3/*[0123456789]*&lt;/code&gt; wasn&#38;rsquo;t
  5149. matching on a path like &lt;code&gt;/home/brennen/p1k3/archives/2016/10/16/index&lt;/code&gt;, even
  5150. though it worked for other files in that tree.&lt;/p&gt;
  5151.  
  5152. &lt;p&gt;At first I thought something was wrong with the pattern, so I rewrote the
  5153. function called by the command to this:&lt;/p&gt;
  5154.  
  5155. &lt;pre&gt;&lt;code&gt;au BufReadPost,BufNewFile * call BPB_FiletypeOverrides()
  5156.  
  5157. &#34; set custom filetypes for some things
  5158. function! BPB_FiletypeOverrides()
  5159.  &#34; make sure NERDTree windows don&#39;t get messed up
  5160.  if bufname(&#34;%&#34;) =~ &#34;NERD_tree&#34;
  5161.    return
  5162.  endif
  5163.  
  5164.  echom &#39;testing for p1k3 match&#39;
  5165.  
  5166.  &#34; using expand(&#39;%:p&#39;) instead of bufname(&#34;%&#34;) for full path, per:
  5167.  &#34; http://vim.wikia.com/wiki/Get_the_name_of_the_current_file
  5168.  &#34; the initial slash in the regex seems to be necessary to make \v work
  5169.  if expand(&#39;%:p&#39;) =~ &#34;\\vp1k3\/archives.*([0-9]|[a-z])+$&#34;
  5170.    echom &#39;p1k3 match - setting filetype to markdown&#39;
  5171.    set filetype=markdown
  5172.  endif
  5173. endfunction
  5174. &lt;/code&gt;&lt;/pre&gt;
  5175.  
  5176. &lt;p&gt;That didn&#38;rsquo;t get any results, but since the &lt;code&gt;echom&lt;/code&gt; debug messages didn&#38;rsquo;t trigger
  5177. at all, it finally dawned on me that the autocommand wasn&#38;rsquo;t firing &lt;em&gt;regardless of
  5178. pattern&lt;/em&gt;.  Then I got to thinking about how &lt;code&gt;index&lt;/code&gt; is a special filename for
  5179. things besides my blog.  Git, for example.&lt;/p&gt;
  5180.  
  5181. &lt;p&gt;In order to confirm my new suspicions, I wanted to see if some plugin was
  5182. registering an autocommand that might be overriding mine.  You can use
  5183. &lt;code&gt;:autocmd&lt;/code&gt; to list the existing ones.  It gives many pages of output like this:&lt;/p&gt;
  5184.  
  5185. &lt;pre&gt;&lt;code&gt;--- Auto-Commands ---
  5186. fugitive_status  BufDelete
  5187.    term://*  call fugitive#reload_status()
  5188. fugitive_commit  BufDelete
  5189.    COMMIT_EDITMSG
  5190.              execute s:sub(s:FinishCommit(), &#39;^echoerr (.*)&#39;, &#39;echohl ErrorMsg|echo \1|echohl NONE&#39;)
  5191. filetypedetect  BufEnter
  5192.    *.xpm     if getline(1) =~ &#34;XPM2&#34; |   setf xpm2 | else |   setf xpm | endif
  5193.    *.xpm2    setf xpm2
  5194. ...
  5195. &lt;/code&gt;&lt;/pre&gt;
  5196.  
  5197. &lt;p&gt;Since this was stupidly long and hard to jump around in, I went looking for a
  5198. way to capture the output of a command.  This actually turns out to be pretty
  5199. easy:&lt;/p&gt;
  5200.  
  5201. &lt;pre&gt;&lt;code&gt;:redir @a
  5202. :autocmd
  5203. :redir END
  5204. &lt;/code&gt;&lt;/pre&gt;
  5205.  
  5206. &lt;p&gt;This puts the output of &lt;code&gt;:autocmd&lt;/code&gt; into the register &lt;code&gt;a&lt;/code&gt;, which can then be
  5207. pasted into a buffer by typing &lt;code&gt;&#34;ap&lt;/code&gt;.&lt;/p&gt;
  5208.  
  5209. &lt;p&gt;Sure enough, buried in there is this:&lt;/p&gt;
  5210.  
  5211. &lt;pre&gt;&lt;code&gt;fugitive_files  BufReadCmd
  5212.    index{,.lock}
  5213.              if fugitive#is_git_dir(expand(&#39;&#38;lt;amatch&#38;gt;:p:h&#39;)) |   exe s:BufReadIndex() | elseif filereadable(expand(&#39;&#38;lt;amatch&#38;gt;&#39;)) |   read &#38;lt;amatch&#38;gt; |   1delete | endif
  5214. &lt;/code&gt;&lt;/pre&gt;
  5215.  
  5216. &lt;p&gt;I stopped there and filed a bug report, since it&#38;rsquo;s a trivial bug and it had
  5217. already cost me more time than the thing I was trying to fix is likely to
  5218. save me in a lifetime, but maybe one of these days I&#38;rsquo;ll get around to
  5219. figuring out what is actually happening and write a patch.&lt;/p&gt;
  5220.  
  5221. &lt;p class=&#34;centerpiece&#34;&gt; ☆ &lt;/p&gt;
  5222.  
  5223.  
  5224. &lt;p&gt;As a final meta-level thought on this:  I&#38;rsquo;ve invested an embarrassing amount of
  5225. time in configuring my text editor over the years, but it&#38;rsquo;s only recently that
  5226. I&#38;rsquo;ve hit the point where most of my deliberate changes to this setup land me
  5227. firmly in the &lt;a href=&#34;https://en.wikipedia.org/wiki/Turing_tarpit&#34;&gt;Turing tar-pit&lt;/a&gt;.&lt;/p&gt;
  5228.  
  5229. &lt;p&gt;Perhaps not coincidentally, this is right about where I realize that shifting
  5230. my preferences to another editor would be a matter not just of relearning
  5231. interface elements, but of porting a small but growing body of somewhat tricky
  5232. code.  Every change increases the incentive to make future changes to the
  5233. existing environment instead of paying the cost of switching environments.&lt;/p&gt;
  5234.  
  5235. &lt;p&gt;Path dependence explains a lot of things in life.&lt;/p&gt;
  5236.  
  5237. &lt;p class=&#34;centerpiece&#34;&gt; ❃ &lt;/p&gt;
  5238.  
  5239.  
  5240. &lt;p&gt;It also remains true that Vim is an astonishing achievement, both powerful and
  5241. feature rich in ways that most systems rarely attain.  One might wish for an
  5242. underlying syntactic and conceptual simplicity, for a language composable and
  5243. manipulable without an entire vocabulary of dirty hacks &#38;mdash; but one isn&#38;rsquo;t
  5244. exactly surprised by reality.&lt;/p&gt;
  5245.  
  5246. &lt;p&gt;&lt;em&gt;Addendum&lt;/em&gt;: It turns out this is not the first time I have learned &lt;a href=&#34;https://p1k3.com/2014/12/5/&#34;&gt;the :redir
  5247. trick&lt;/a&gt;.&lt;/p&gt;
  5248.  
  5249.  
  5250. &lt;p class=&#34;datelink&#34;&gt;
  5251. &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5252. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5253. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  5254. &lt;a href=&#34;https://p1k3.com/2016/10/16/&#34; title=&#34;16&#34;&gt;16&lt;/a&gt;
  5255. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Friday, October 14</title><link href="https://p1k3.com/2016/10/14"/><id>https://p1k3.com/2016/10/14</id><content type="html">&lt;h1&gt;Friday, October 14&lt;/h1&gt;
  5256.  
  5257. &lt;p&gt;It&#38;rsquo;s the middle of the night, and I should be sleeping.  Because I had a run in
  5258. with a plate of Oskar Blues chicken enchiladas and one to four pilsners (who&#38;rsquo;s
  5259. counting, really?), I am not.&lt;/p&gt;
  5260.  
  5261. &lt;p class=&#34;centerpiece&#34;&gt; ✿ &lt;/p&gt;
  5262.  
  5263.  
  5264. &lt;p&gt;In between festivals, weddings, and conferences, I&#38;rsquo;ve been thinking about a
  5265. project.&lt;/p&gt;
  5266.  
  5267. &lt;p&gt;Back in 2013, I started writing &lt;em&gt;userland: a book about the command line for
  5268. humans&lt;/em&gt;.  It&#38;rsquo;s not really &lt;em&gt;finished&lt;/em&gt;,&lt;sup class=footnote&gt;1&lt;/sup&gt; but I got it
  5269. to a readable state in the fall of 2014, right about when the main project in
  5270. my life was coming apart at the seams.&lt;sup class=footnote&gt;2&lt;/sup&gt;&lt;/p&gt;
  5271.  
  5272. &lt;p&gt;After I left SparkFun, &lt;em&gt;userland&lt;/em&gt; set a tone for the next couple years in my
  5273. working life.  Or at least after that, I started to get paid for technical
  5274. writing, and wound up with a full-time job writing sysadmin docs.&lt;/p&gt;
  5275.  
  5276. &lt;p&gt;It wasn&#38;rsquo;t the way I&#38;rsquo;d imagined &lt;em&gt;being a writer&lt;/em&gt; when I was young, but I could
  5277. still say with a straight face that I was a professional.  And with it, I
  5278. learned that I could in fact stare down a blank editor window and make
  5279. functional text happen, even on topics that held little personal interest.
  5280. (More people read my disposable, obsolete-at-publication tutorial on hosting an
  5281. ill-advised mobile app framework in a single week than will ever read any of my
  5282. poems.)&lt;/p&gt;
  5283.  
  5284. &lt;p class=&#34;centerpiece&#34;&gt; ✴ &lt;/p&gt;
  5285.  
  5286.  
  5287. &lt;p&gt;And then somewhere in there I burned out pretty hard.  In fact, although I can
  5288. handle the mechanics of writing, I am terrible at life as a content monkey.
  5289. Unable to farm clicks with the necessary ruthlessness and keep any peace of
  5290. mind.&lt;/p&gt;
  5291.  
  5292. &lt;p&gt;It&#38;rsquo;s not that &#38;ldquo;content marketing&#38;rdquo; is automatically a degrading way to sell
  5293. things.  In fact it might be one of the more honest propositions in the
  5294. business, at least when what you mean by it is &#38;ldquo;documentation on how to use
  5295. useful things&#38;rdquo;.  It&#38;rsquo;s just that the idea of &#38;ldquo;content&#38;rdquo; as a kind of generic
  5296. liquid substance remains grotesque and distorting, and despite the baseline
  5297. assumptions of marketing culture, it continues to matter &lt;em&gt;what&lt;/em&gt; you sell.&lt;/p&gt;
  5298.  
  5299. &lt;p class=&#34;centerpiece&#34;&gt; ✾ &lt;/p&gt;
  5300.  
  5301.  
  5302. &lt;p&gt;When I quit writing for DigitalOcean, I started thinking about writing for my
  5303. own reasons, and about how I could take that seriously as a practical task.
  5304. Since then I&#38;rsquo;ve been hovering around a set of ideas that seem to have
  5305. accumulated, pecking at them here and there, working up to that moment when the
  5306. engine might turn over again:&lt;/p&gt;
  5307.  
  5308. &lt;ul&gt;
  5309. &lt;li&gt;Forget the contempt I held for highschool / college platitudes about notes:
  5310. Notes are essential to so much code, systems, prose.&lt;/li&gt;
  5311. &lt;li&gt;I&#38;rsquo;ve been taking notes since some time in the late 90s.  They&#38;rsquo;re just
  5312. scattered, unindexed, unsorted.&lt;/li&gt;
  5313. &lt;li&gt;What if I had random access into my life&#38;rsquo;s entire catalog of meta-memory?&lt;/li&gt;
  5314. &lt;li&gt;&lt;a href=&#34;/2015/2/1/&#34;&gt;Why don&#38;rsquo;t I keep a database?&lt;/a&gt;&lt;/li&gt;
  5315. &lt;li&gt;In an age of ever-more-thoroughgoing surveillance, why can&#38;rsquo;t &lt;em&gt;I&lt;/em&gt; ask basic
  5316. questions about my own life and experiences in a rigorous way?  Why does
  5317. the panopticon&#38;rsquo;s model of my existence seem more developed than my own?&lt;/li&gt;
  5318. &lt;li&gt;Why does so much of my history on the command-line go unrecorded,
  5319. un-annotated, un-repeatable past the narrow time horizons of my working
  5320. memory?&lt;/li&gt;
  5321. &lt;li&gt;Why don&#38;rsquo;t I publish photos any more?&lt;/li&gt;
  5322. &lt;li&gt;Some of the tools I use are pretty good.  Others would be pretty good if
  5323. I was tough-minded and serious about developing the underlying ideas.&lt;/li&gt;
  5324. &lt;li&gt;If I spend so much time customizing my computer environment, why aren&#38;rsquo;t my
  5325. tools better?&lt;/li&gt;
  5326. &lt;/ul&gt;
  5327.  
  5328.  
  5329. &lt;p&gt;I know that I want to write something like a book, but these aren&#38;rsquo;t exactly
  5330. the topics I want to write it about.  It&#38;rsquo;s more that I intend to use them
  5331. as a way to discover the book I do want to write, or the thing that isn&#38;rsquo;t
  5332. quite a book but will satisfy the same basic impulse.&lt;/p&gt;
  5333.  
  5334.  
  5335. &lt;p class=&#34;centerpiece&#34;&gt; ☆ &lt;/p&gt;
  5336.  
  5337. &lt;p class=footnote&gt;&lt;sup&gt;1&lt;/sup&gt; Being a sketchy outline of the book it ought to
  5338. be, and having emerged from a moment when a kind of optimism about computing
  5339. seemed to me, somehow, appropriate and sustainable.&lt;/p&gt;
  5340.  
  5341. &lt;p class=footnote&gt;&lt;sup&gt;2&lt;/sup&gt; It had a little help.&lt;/p&gt;
  5342.  
  5343. &lt;p class=&#34;datelink&#34;&gt;
  5344. &lt;a href=&#34;https://p1k3.com/topics/cli&#34;&gt;cli&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/databases&#34;&gt;databases&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/digitalocean&#34;&gt;digitalocean&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/sparkfun&#34;&gt;sparkfun&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/userland&#34;&gt;userland&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5345. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5346. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  5347. &lt;a href=&#34;https://p1k3.com/2016/10/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  5348. &lt;/p&gt;</content><updated>2017-12-07T06:15:08Z</updated></entry><entry><title>Wednesday, October 12 - recently</title><link href="https://p1k3.com/2016/10/12"/><id>https://p1k3.com/2016/10/12</id><content type="html">&lt;h1&gt;Wednesday, October 12&lt;/h1&gt;
  5349.  
  5350. &lt;h2&gt;recently&lt;/h2&gt;
  5351.  
  5352. &lt;div class=&#34;photos&#34;&gt;
  5353. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7264.JPG&#34;&gt;
  5354.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7264.JPG&#34; width=&#34;200&#34;&gt;
  5355. &lt;/a&gt;
  5356. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7311.JPG&#34;&gt;
  5357.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7311.JPG&#34; width=&#34;200&#34;&gt;
  5358. &lt;/a&gt;
  5359. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7325.JPG&#34;&gt;
  5360.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7325.JPG&#34; width=&#34;200&#34;&gt;
  5361. &lt;/a&gt;
  5362. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7388.JPG&#34;&gt;
  5363.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7388.JPG&#34; width=&#34;200&#34;&gt;
  5364. &lt;/a&gt;
  5365. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7391.JPG&#34;&gt;
  5366.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7391.JPG&#34; width=&#34;200&#34;&gt;
  5367. &lt;/a&gt;
  5368. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7394.JPG&#34;&gt;
  5369.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7394.JPG&#34; width=&#34;200&#34;&gt;
  5370. &lt;/a&gt;
  5371. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7397.JPG&#34;&gt;
  5372.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7397.JPG&#34; width=&#34;200&#34;&gt;
  5373. &lt;/a&gt;
  5374. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7398.JPG&#34;&gt;
  5375.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7398.JPG&#34; width=&#34;200&#34;&gt;
  5376. &lt;/a&gt;
  5377. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7403.JPG&#34;&gt;
  5378.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7403.JPG&#34; width=&#34;200&#34;&gt;
  5379. &lt;/a&gt;
  5380. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7418.JPG&#34;&gt;
  5381.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7418.JPG&#34; width=&#34;200&#34;&gt;
  5382. &lt;/a&gt;
  5383. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7429.JPG&#34;&gt;
  5384.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7429.JPG&#34; width=&#34;200&#34;&gt;
  5385. &lt;/a&gt;
  5386. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7435.JPG&#34;&gt;
  5387.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7435.JPG&#34; width=&#34;200&#34;&gt;
  5388. &lt;/a&gt;
  5389. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7460.JPG&#34;&gt;
  5390.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7460.JPG&#34; width=&#34;200&#34;&gt;
  5391. &lt;/a&gt;
  5392. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7462.JPG&#34;&gt;
  5393.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7462.JPG&#34; width=&#34;200&#34;&gt;
  5394. &lt;/a&gt;
  5395. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7472.JPG&#34;&gt;
  5396.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7472.JPG&#34; width=&#34;200&#34;&gt;
  5397. &lt;/a&gt;
  5398. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7481.JPG&#34;&gt;
  5399.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7481.JPG&#34; width=&#34;200&#34;&gt;
  5400. &lt;/a&gt;
  5401. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7486.JPG&#34;&gt;
  5402.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7486.JPG&#34; width=&#34;200&#34;&gt;
  5403. &lt;/a&gt;
  5404. &lt;/div&gt;
  5405.  
  5406. &lt;p class=&#34;datelink&#34;&gt;
  5407. &lt;a href=&#34;https://p1k3.com/topics/gallery&#34;&gt;gallery&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5408. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5409. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  5410. &lt;a href=&#34;https://p1k3.com/2016/10/12/&#34; title=&#34;12&#34;&gt;12&lt;/a&gt;
  5411. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Thursday, September 29 - php method access</title><link href="https://p1k3.com/2016/9/29"/><id>https://p1k3.com/2016/9/29</id><content type="html">&lt;h1&gt;Thursday, September 29&lt;/h1&gt;
  5412.  
  5413. &lt;h2&gt;php method access&lt;/h2&gt;
  5414.  
  5415. &lt;p&gt;In PHP, it doesn&#38;rsquo;t seem to matter what order the &lt;code&gt;static&lt;/code&gt; and &lt;code&gt;private&lt;/code&gt; /
  5416. &lt;code&gt;protected&lt;/code&gt; / &lt;code&gt;public&lt;/code&gt; come in before a static method declaration.  Here&#38;rsquo;s an
  5417. example:&lt;/p&gt;
  5418.  
  5419. &lt;pre&gt;&lt;code&gt;&#38;lt;?php
  5420. class whatever {
  5421.  public static function foo () { echo &#34;foo called\n&#34;; }
  5422.  static public function bar () { echo &#34;bar called\n&#34;; }
  5423. }
  5424. whatever::foo();
  5425. whatever::bar();
  5426. &lt;/code&gt;&lt;/pre&gt;
  5427.  
  5428. &lt;p&gt;And on running:&lt;/p&gt;
  5429.  
  5430. &lt;pre&gt;&lt;code&gt;[email protected] 12:02:54 /home/brennen ★ php test.php
  5431. foo called
  5432. bar called
  5433. &lt;/code&gt;&lt;/pre&gt;
  5434.  
  5435. &lt;p&gt;Did I know this once and forget it?  In a decade+ of writing the stuff,
  5436. did I somehow just never notice?&lt;/p&gt;
  5437.  
  5438.  
  5439. &lt;p class=&#34;datelink&#34;&gt;
  5440. &lt;a href=&#34;https://p1k3.com/topics/php&#34;&gt;php&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5441. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5442. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5443. &lt;a href=&#34;https://p1k3.com/2016/9/29/&#34; title=&#34;29&#34;&gt;29&lt;/a&gt;
  5444. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Wednesday, September 28</title><link href="https://p1k3.com/2016/9/28"/><id>https://p1k3.com/2016/9/28</id><content type="html">&lt;h1&gt;Wednesday, September 28&lt;/h1&gt;
  5445.  
  5446. &lt;p&gt;Hello, Colorado citizens.&lt;/p&gt;
  5447.  
  5448. &lt;p&gt;Here is a working
  5449. &lt;a href=&#34;https://www.sos.state.co.us/voter-classic/pages/pub/olvr/verifyNewVoter.xhtml&#34;&gt;online voter registration form&lt;/a&gt;.
  5450. If, you know, you needed one of those.&lt;/p&gt;
  5451.  
  5452. &lt;p class=&#34;datelink&#34;&gt;
  5453. &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5454. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5455. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5456. &lt;a href=&#34;https://p1k3.com/2016/9/28/&#34; title=&#34;28&#34;&gt;28&lt;/a&gt;
  5457. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>monday, september 26</title><link href="https://p1k3.com/2016/9/26"/><id>https://p1k3.com/2016/9/26</id><content type="html">&lt;h1&gt;monday, september 26&lt;/h1&gt;
  5458.  
  5459. &lt;p&gt;outside my window&lt;br /&gt;
  5460. small insects wobble in the sunlight&lt;br /&gt;
  5461. there are thin bright curves of spidersilk&lt;br /&gt;
  5462. on the screen&lt;br /&gt;
  5463. a squirrel runs along the fence&lt;br /&gt;
  5464. with a green apple in its mouth&lt;/p&gt;
  5465.  
  5466. &lt;p class=&#34;datelink&#34;&gt;
  5467. &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5468. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5469. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5470. &lt;a href=&#34;https://p1k3.com/2016/9/26/&#34; title=&#34;26&#34;&gt;26&lt;/a&gt;
  5471. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Saturday, September 24</title><link href="https://p1k3.com/2016/9/24"/><id>https://p1k3.com/2016/9/24</id><content type="html">&lt;h1&gt;Saturday, September 24&lt;/h1&gt;
  5472.  
  5473. &lt;markdown&gt;
  5474. Late Saturday afternoon, we&#39;re sitting in the living room reading.  I&#39;m in the
  5475. second round of some low-grade, low-stakes potential flamewar, which I&#39;d
  5476. probably do well to forget about.  There&#39;s sunlight coming in through the
  5477. windows.
  5478.  
  5479. &lt;p class=&#34;centerpiece&#34;&gt; ☼ &lt;/p&gt;
  5480.  
  5481. &lt;p class=&#34;datelink&#34;&gt;
  5482. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5483. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5484. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5485. &lt;a href=&#34;https://p1k3.com/2016/9/24/&#34; title=&#34;24&#34;&gt;24&lt;/a&gt;
  5486. &lt;/p&gt;</content><updated>2016-11-05T04:07:37Z</updated></entry><entry><title>Thursday, September 22 - gentle suggestions and fond hopes for your software project</title><link href="https://p1k3.com/2016/9/22"/><id>https://p1k3.com/2016/9/22</id><content type="html">&lt;h1&gt;Thursday, September 22&lt;/h1&gt;
  5487.  
  5488. &lt;h2&gt;gentle suggestions and fond hopes for your software project&lt;/h2&gt;
  5489.  
  5490. &lt;ol&gt;
  5491. &lt;li&gt;&lt;p&gt;Your software is not a friendly crash-landed extraterrestrial sapient in
  5492. need of rescue.  &lt;em&gt;Stop phoning home.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
  5493. &lt;li&gt;&lt;p&gt;One suspects that modern programmers have mistaken the virtues of code reuse
  5494. for an imperative to use as much code as possible.  &lt;em&gt;Stop building on top of
  5495. fragile, massively complex dependency chains with the approximate lifespan
  5496. of a cockroach.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
  5497. &lt;li&gt;&lt;p&gt;Your new language, library, or startup will suffer if we have to google a
  5498. common preposition, pronoun, or generic verb form which appears in billions
  5499. of non-technical English web pages.  &lt;em&gt;Stop calling your projects things like
  5500. &#38;ldquo;Go&#38;rdquo; and &#38;ldquo;This.&#38;rdquo;&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
  5501. &lt;li&gt;&lt;p&gt;It was once typical to encounter basic mechanisms (light switches, locks,
  5502. clock radios, thermostats) with working lifespans measured in decades.  It
  5503. was once reasonable to assume that basic household appliances would be
  5504. unlikely to surveil their owners on behalf of governments and
  5505. megacorporations.  &lt;em&gt;Stop putting computers in shit.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
  5506. &lt;/ol&gt;
  5507.  
  5508.  
  5509.  
  5510. &lt;p class=&#34;datelink&#34;&gt;
  5511. &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5512. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5513. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5514. &lt;a href=&#34;https://p1k3.com/2016/9/22/&#34; title=&#34;22&#34;&gt;22&lt;/a&gt;
  5515. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Tuesday, September 20</title><link href="https://p1k3.com/2016/9/20"/><id>https://p1k3.com/2016/9/20</id><content type="html">&lt;h1&gt;Tuesday, September 20&lt;/h1&gt;
  5516.  
  5517. &lt;p&gt;It&#38;rsquo;s late September.  We&#38;rsquo;re back from the Burn, back from Winfield, back from a
  5518. family wedding in Kansas City.  Festival time has reverted to default time, at
  5519. least in theory.  There&#38;rsquo;s a pile of laundry:  mud and woodsmoke on top of playa
  5520. dust.&lt;/p&gt;
  5521.  
  5522.  
  5523. &lt;p class=&#34;datelink&#34;&gt;
  5524. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5525. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5526. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5527. &lt;a href=&#34;https://p1k3.com/2016/9/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  5528. &lt;/p&gt;</content><updated>2016-11-05T04:07:37Z</updated></entry><entry><title>wednesday, september 14</title><link href="https://p1k3.com/2016/9/14"/><id>https://p1k3.com/2016/9/14</id><content type="html">&lt;h1&gt;wednesday, september 14&lt;/h1&gt;
  5529.  
  5530. &lt;p&gt;you look better&lt;br /&gt;
  5531. with a little dust on you&lt;/p&gt;
  5532.  
  5533. &lt;p class=&#34;datelink&#34;&gt;
  5534. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5535. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5536. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5537. &lt;a href=&#34;https://p1k3.com/2016/9/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  5538. &lt;/p&gt;</content><updated>2016-11-05T04:07:37Z</updated></entry><entry><title>wednesday, august 17</title><link href="https://p1k3.com/2016/8/17"/><id>https://p1k3.com/2016/8/17</id><content type="html">&lt;h1&gt;wednesday, august 17&lt;/h1&gt;
  5539.  
  5540. &lt;p&gt;writing is a&lt;br /&gt;
  5541. project to see into&lt;br /&gt;
  5542. time&lt;br /&gt;
  5543. and to shape&lt;br /&gt;
  5544. somehow&lt;br /&gt;
  5545. memory&lt;/p&gt;
  5546.  
  5547. &lt;p class=&#34;datelink&#34;&gt;
  5548. &lt;a href=&#34;https://p1k3.com/topics/poem&#34;&gt;poem&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5549. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5550. &lt;a href=&#34;https://p1k3.com/2016/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  5551. &lt;a href=&#34;https://p1k3.com/2016/8/17/&#34; title=&#34;17&#34;&gt;17&lt;/a&gt;
  5552. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Sunday, August 14 - verizon i hate you / r.i.p. flickr</title><link href="https://p1k3.com/2016/8/14"/><id>https://p1k3.com/2016/8/14</id><content type="html">&lt;h1&gt;Sunday, August 14&lt;/h1&gt;
  5553.  
  5554. &lt;h2&gt;verizon i hate you / r.i.p. flickr&lt;/h2&gt;
  5555.  
  5556. &lt;p&gt;I&#38;rsquo;ve been fighting with Verizon Wireless, because I went to cancel the service
  5557. on a hotspot I bought from them a while back, and suddenly discovered a
  5558. contract with a $90 early-termination fee for the device, which I&#38;rsquo;m pretty sure
  5559. the sales rep told me wouldn&#38;rsquo;t be a thing, and blah blah blah.  I am I, angry
  5560. customer.&lt;/p&gt;
  5561.  
  5562. &lt;p&gt;I&#38;rsquo;ve already spent more time, translated to billable hours, on this problem
  5563. than just eating the fee would have cost me.  By the time you&#38;rsquo;re swearing at
  5564. people working sales for the phone company, you&#38;rsquo;ve lost twice:  Once for being
  5565. an asshole to somebody with a shit job, and once because making you into the
  5566. asshole is clearly a designed function of the shit job in question.&lt;/p&gt;
  5567.  
  5568. &lt;p&gt;Verizon is, of course, a perfectly infuriating sort of low-stakes antagonist:
  5569. Implacably stupid as an institution, relentlessly mediocre in its functions,
  5570. and yet structured with a sort of perverse genius for avoiding non-predatory
  5571. modes of interaction.  Are you a customer of Verizon?  Ok:  You&#38;rsquo;ve entered an
  5572. arrangement where you&#38;rsquo;re still the sucker even if you &lt;em&gt;know&lt;/em&gt; you&#38;rsquo;re the sucker.&lt;/p&gt;
  5573.  
  5574. &lt;p&gt;Anyhow.  I&#38;rsquo;ll pay the &#38;ldquo;you were stupid enough to engage our services&#38;rdquo; tax one
  5575. way or another, fees or waiting out the contract or what-have-you.  But my
  5576. newfound determination to actually stop giving Verizon money does coincide with
  5577. their parent company&#38;rsquo;s recent buyout of Yahoo.&lt;/p&gt;
  5578.  
  5579. &lt;p&gt;Yahoo, some years back, engulfed flickr and ruined it.  This was already a
  5580. pretty good object lesson (lesson umpteen thousand of ∞) in how centralized,
  5581. proprietary services inevitably fail their users.  Falling into the undead
  5582. hands of a re-coalescing chunk of Ma Bell just moves it from the set of
  5583. internet things I&#38;rsquo;m sad about into the set of internet things I can assume are
  5584. actively hostile to me and the public at large.&lt;/p&gt;
  5585.  
  5586. &lt;p&gt;So, aside from never giving flickr money again, what to do?&lt;/p&gt;
  5587.  
  5588. &lt;p&gt;I guess I&#38;rsquo;ll start hosting photos on my own website.  I&#38;rsquo;ve been messing with
  5589. &lt;a href=&#34;https://github.com/brennen/galleryhtml&#34;&gt;a Python script for making gallery pages&lt;/a&gt;, which is not too
  5590. hard a thing to write and actually kind of fun.  The results aren&#38;rsquo;t amazing,
  5591. but I think I can get them looking ok, eventually.&lt;/p&gt;
  5592.  
  5593. &lt;p&gt;More interesting:  I keep this site in a git repository, which isn&#38;rsquo;t really a
  5594. very good way to store lots of large-ish files (like photos).  So I finally got
  5595. around to trying out &lt;a href=&#34;https://git-annex.branchable.com/&#34;&gt;git-annex&lt;/a&gt;, a toolset which lets you manage
  5596. large files with git without actually storing the underlying data directly &lt;em&gt;in&lt;/em&gt;
  5597. the repo and its history.  It took me a while to start getting my head around
  5598. the basics, but I think it&#38;rsquo;s going to be a decent way to push image files
  5599. around.&lt;/p&gt;
  5600.  
  5601. &lt;p&gt;Edit: For notes on a similar process, see Tyler&#38;rsquo;s recent &lt;a href=&#34;https://ikiwiki.tylercipriani.com/blog/2016/08/26/abusing-git-notes/&#34;&gt;(ab)Using Git
  5602. Notes&lt;/a&gt;.&lt;/p&gt;
  5603.  
  5604.  
  5605. &lt;p class=&#34;datelink&#34;&gt;
  5606. &lt;a href=&#34;https://p1k3.com/topics/flickr&#34;&gt;flickr&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/git-annex&#34;&gt;git-annex&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/python&#34;&gt;python&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/self-hosting&#34;&gt;self-hosting&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/technical&#34;&gt;technical&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/verizon&#34;&gt;verizon&lt;/a&gt;, &lt;a href=&#34;https://p1k3.com/topics/warelogging&#34;&gt;warelogging&lt;/a&gt; :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5607. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5608. &lt;a href=&#34;https://p1k3.com/2016/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  5609. &lt;a href=&#34;https://p1k3.com/2016/8/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  5610. &lt;/p&gt;</content><updated>2018-03-18T18:44:44Z</updated></entry></feed>

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid Atom 1.0" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=https%3A//p1k3.com/feed

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda