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-06-24T18:47:37Z</updated><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;
  3.  
  4. &lt;h2&gt;code.p1k3.com&lt;/h2&gt;
  5.  
  6. &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
  7. I&#38;rsquo;m planning to host my own projects from here on out.  This was precipitated
  8. 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
  9. something I should have set up a while ago.&lt;/p&gt;
  10.  
  11. &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
  12. interface, which is written in Go and distributed as a single binary.  This
  13. feels like a good piece of software in many ways, although some of the
  14. decisions to straightforwardly copy GitHub features feel kind of arbitrary.
  15. It&#38;rsquo;s talking to a local PostgreSQL instance, although it&#38;rsquo;s also capable of
  16. using SQLite.  At the volume of traffic I&#38;rsquo;m likely to get, SQLite would
  17. probably be fine.&lt;/p&gt;
  18.  
  19. &lt;p&gt;I decided to put Gitea in a subdirectory and write a minimal front page for the
  20. site, so as to avoid locking myself into one piece of third-party tooling.
  21. I&#38;rsquo;ll experiment with other ways to view the repositories stored there, and
  22. probably with other version control systems, like the SQLite-backed
  23. &lt;a href=&#34;https://www.fossil-scm.org/&#34;&gt;Fossil&lt;/a&gt;.&lt;/p&gt;
  24.  
  25. &lt;p&gt;code.p1k3.com is a $5/month DigitalOcean droplet with a gig of memory and 25
  26. gigs of storage, running Debian 9.4.&lt;/p&gt;
  27.  
  28. &lt;p&gt;I&#38;rsquo;m using Nginx to serve the front page, and as a reverse proxy for the Gitea
  29. installation, with the following configuration:&lt;/p&gt;
  30.  
  31. &lt;pre&gt;&lt;code&gt;server {
  32.  root /var/www/html;
  33.  
  34.  # Add index.php to the list if you are using PHP
  35.  index index.html index.htm index.nginx-debian.html;
  36.  server_name code.p1k3.com; # managed by Certbot
  37.  
  38.  listen [::]:443 ssl ipv6only=on; # managed by Certbot
  39.  listen 443 ssl; # managed by Certbot
  40.  ssl_certificate /etc/letsencrypt/live/code.p1k3.com/fullchain.pem; # managed by Certbot
  41.  ssl_certificate_key /etc/letsencrypt/live/code.p1k3.com/privkey.pem; # managed by Certbot
  42.  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  43.  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
  44.  
  45.  location / {
  46.    ssi on;
  47.  }
  48.  
  49.  location /gitea/ {
  50.    proxy_pass http://localhost:3000/;
  51.  }
  52. }
  53.  
  54. server {
  55.  if ($host = code.p1k3.com) {
  56.    return 301 https://$host$request_uri;
  57.  } # managed by Certbot
  58.  
  59.  listen 80 ;
  60.  listen [::]:80 ;
  61.  server_name code.p1k3.com;
  62.  return 404; # managed by Certbot
  63. }
  64. &lt;/code&gt;&lt;/pre&gt;
  65.  
  66. &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;
  67.  
  68. &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
  69. all the &lt;code&gt;# managed by Certbot&lt;/code&gt; comments above).  I still have not set up a cron
  70. job to renew the cert.&lt;/p&gt;
  71.  
  72. &lt;p&gt;For copying repos over from GitHub, I used Jonas Franz&#38;rsquo;s
  73. &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;
  74.  
  75. &lt;pre&gt;&lt;code&gt;gitea-github-migrator migrate-all \
  76.    --gh-user brennen \
  77.    --gh-token $GH_TOKEN \
  78.    --url https://code.p1k3.com/gitea/ \
  79.    --token $GITEA_TOKEN \
  80.    --owner 1
  81. &lt;/code&gt;&lt;/pre&gt;
  82.  
  83. &lt;p&gt;On GitHub, you can get an API token under Settings / Developer Settings /
  84. Personal access tokens, and on a Gitea installation under Your Settings /
  85. Applications.&lt;/p&gt;
  86.  
  87. &lt;p&gt;I&#38;rsquo;m not sure whether I&#38;rsquo;m going to continue mirroring existing repos to GitHub
  88. or not.  In terms of discoverability, archival resilience, and continuity for
  89. anyone who has something cloned from there, it makes sense.  On the other hand,
  90. it continues lending force to GitHub&#38;rsquo;s near-monopoly.  Maybe I&#38;rsquo;ll just add some
  91. disclaimers to READMEs.&lt;/p&gt;
  92.  
  93. &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
  94. academic.&lt;/p&gt;
  95.  
  96. &lt;p class=&#34;centerpiece&#34;&gt; ❀ &lt;/p&gt;
  97.  
  98.  
  99. &lt;p&gt;The above is a pretty haphazard writeup, and it&#38;rsquo;s missing a bunch of detail
  100. about installing golang and configuring Gitea.  As I refine the setup, I&#38;rsquo;ll try
  101. to document the whole thing more effectively in code, so that it can be mostly
  102. reproduced by running a script or something.&lt;/p&gt;
  103.  
  104.  
  105. &lt;p class=&#34;datelink&#34;&gt;
  106. &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; /
  107. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  108. &lt;a href=&#34;https://p1k3.com/2018/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  109. &lt;a href=&#34;https://p1k3.com/2018/6/24/&#34; title=&#34;24&#34;&gt;24&lt;/a&gt;
  110. &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;
  111.  
  112. &lt;p class=centerpiece&gt;
  113. &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;
  114. &lt;/p&gt;
  115.  
  116. &lt;p class=&#34;datelink&#34;&gt;
  117. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  118. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  119. &lt;a href=&#34;https://p1k3.com/2018/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  120. &lt;a href=&#34;https://p1k3.com/2018/6/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  121. &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;
  122.  
  123. &lt;h2&gt;on the vexed subject of github&lt;/h2&gt;
  124.  
  125. &lt;p&gt;So Microsoft bought GitHub.  I started to outline a whole essay here, under a
  126. different title, making various arguments about that.  I got about 500 words in
  127. before deleting it for being terrible writing.&lt;/p&gt;
  128.  
  129. &lt;p&gt;Here&#38;rsquo;s the gist of the opinionating without the supporting rhetoric:&lt;/p&gt;
  130.  
  131. &lt;ol&gt;
  132. &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;
  133. &lt;li&gt;&lt;p&gt;Microsoft are still bad even though it&#38;rsquo;s very much out of fashion to believe
  134. so.&lt;/p&gt;&lt;/li&gt;
  135. &lt;li&gt;&lt;p&gt;The real problem is that GitHub itself is bad and functions as such a
  136. lobster trap for open code, making the whole ecosystem more vulnerable to
  137. capture.&lt;/p&gt;&lt;/li&gt;
  138. &lt;/ol&gt;
  139.  
  140.  
  141. &lt;p&gt;The &lt;em&gt;real&lt;/em&gt; real problem is that capitalism is bad.&lt;/p&gt;
  142.  
  143. &lt;p class=&#34;centerpiece&#34;&gt; ✥ &lt;/p&gt;
  144.  
  145.  
  146. &lt;p&gt;I was just reading about another acquisition:  Bayer is buying Monsanto, to the
  147. tune of $63 billion.  This is bad and should probably be stopped (it won&#38;rsquo;t be).&lt;/p&gt;
  148.  
  149. &lt;p&gt;Microsoft made a convenient figure to cast as a villain for the computing
  150. counterculture of the 90s and early 2000s, but that&#38;rsquo;s not why they&#38;rsquo;re bad.
  151. Monsanto make a convenient villain for agricultural hippies and people who
  152. construe Whole Foods style luxury consumption as a moral good, but that&#38;rsquo;s not
  153. why they&#38;rsquo;re bad.&lt;/p&gt;
  154.  
  155. &lt;p&gt;Both are bad because massive accumulations of unaccountable power are
  156. unhealthy, and we live in a time of escalating inequality and deteriorating
  157. governance.&lt;/p&gt;
  158.  
  159. &lt;p&gt;I don&#38;rsquo;t know what to do about any of that.&lt;/p&gt;
  160.  
  161. &lt;p class=&#34;centerpiece&#34;&gt; ✾ &lt;/p&gt;
  162.  
  163.  
  164. &lt;p&gt;GitHub itself is, in some sense, the product of what we could call design
  165. externalities in Git.  Git&#38;rsquo;s model is distributed, sure, but it leaves the
  166. plumbing up to its users.  Meanwhile, hub-and-spokes development models work
  167. pretty well for most projects, and features like issue tracking, friendly
  168. publishing, and code review are really useful.  So is the discoverability of
  169. having one place to search, a unified namespace of users, and so on and so
  170. forth.&lt;/p&gt;
  171.  
  172. &lt;p&gt;That there aren&#38;rsquo;t well-defined mechanisms for issues, code review, and other
  173. metadata to be stored and transmitted with code history is &lt;em&gt;understandable&lt;/em&gt;
  174. from the perspective of a thing described as &#38;ldquo;the stupid content tracker&#38;rdquo;, but
  175. it&#38;rsquo;s also a giant vulnerability to the kinds of services centralizing SaaS
  176. providers are good at offering.&lt;/p&gt;
  177.  
  178. &lt;p&gt;GitHub has solved a lot of hard problems, and solved them pretty well from the
  179. perspectives of interface, usability, and presentation.  A lot of the stuff
  180. that&#38;rsquo;s missing from core Git is intrinsically difficult, and it&#38;rsquo;s &lt;em&gt;more&lt;/em&gt;
  181. difficult to solve in a distributed way.  That&#38;rsquo;s true even if your incentives
  182. aren&#38;rsquo;t to, as a friend recently put it, turn git back into svn.&lt;/p&gt;
  183.  
  184. &lt;p class=&#34;centerpiece&#34;&gt; ✺ &lt;/p&gt;
  185.  
  186.  
  187. &lt;p&gt;Of course, if GitHub were a foundation or a cooperative with a clearly defined
  188. public mission instead of a highly successful financial engineering scheme
  189. built on the slow enclosure of the commons (i.e., a technology business in
  190. 2018), I&#38;rsquo;d probably applaud it the way I do something like
  191. &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
  192. social benefit to its archival / publishing / communication functions.&lt;/p&gt;
  193.  
  194. &lt;p&gt;(Even if, in practice, much of that social benefit is leveraged towards
  195. bootstrapping other financial engineering schemes so that assholes can get rich
  196. building the panopticon, because software is also bad and should be stopped.)&lt;/p&gt;
  197.  
  198. &lt;p class=&#34;centerpiece&#34;&gt; ✯ &lt;/p&gt;
  199.  
  200.  
  201. &lt;p&gt;Anyway, here we are.  I&#38;rsquo;m not doing anything about it this week, other than
  202. mulling some options, but within a couple of weeks is probably the right time
  203. to move all of the canonical hosting for my personal projects to a system I
  204. control.  It&#38;rsquo;s been on my mind every now and then for years.&lt;/p&gt;
  205.  
  206. &lt;p&gt;That part&#38;rsquo;s straightforward &#38;mdash; there&#38;rsquo;s nothing I maintain on my own time that
  207. has a development team, or for that matter any users to speak of.  Something
  208. like &lt;a href=&#34;https://gitea.io/en-US/&#34;&gt;Gitea&lt;/a&gt; has more features than I need for things
  209. like the source code to this blog or a &lt;code&gt;.vimrc&lt;/code&gt; that I occasionally link to in
  210. IRC.  I&#38;rsquo;ll try to do an extremely boring writeup when I decide what I&#38;rsquo;m doing.&lt;/p&gt;
  211.  
  212. &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;
  213. directories are stashed.  That&#38;rsquo;s the part I&#38;rsquo;ll be watching with interest.&lt;/p&gt;
  214.  
  215.  
  216. &lt;p class=&#34;datelink&#34;&gt;
  217. &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; /
  218. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  219. &lt;a href=&#34;https://p1k3.com/2018/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  220. &lt;a href=&#34;https://p1k3.com/2018/6/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt;
  221. &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;
  222.  
  223. &lt;h2&gt;a refrain&lt;/h2&gt;
  224.  
  225. &lt;p&gt;AM/FM radio is a pretty remarkable thing.&lt;/p&gt;
  226.  
  227. &lt;p&gt;I suppose this has been obscured by the way that talk radio has played a
  228. starring role in decades of America&#38;rsquo;s political drift towards the authoritarian
  229. right, and also by the homogeneity of commercial music programming on FM.  All
  230. the same, here&#38;rsquo;s a massively deployed analog technology that covers most of the
  231. world and remains compatible with decades-old hardware.  There is, at this
  232. writing, hardly a house or car in the United States that can&#38;rsquo;t tune in radio
  233. stations.  I&#38;rsquo;m listening to the news right now on a handheld radio that was
  234. purchased the day I was born.&lt;/p&gt;
  235.  
  236. &lt;p&gt;The news is bad, but the radio still works about as well as it ever has.&lt;/p&gt;
  237.  
  238.  
  239. &lt;p class=&#34;datelink&#34;&gt;
  240. &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; /
  241. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  242. &lt;a href=&#34;https://p1k3.com/2018/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  243. &lt;a href=&#34;https://p1k3.com/2018/6/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt;
  244. &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;
  245.  
  246. &lt;h2&gt;notes from nowhere, somewhat after midnight&lt;/h2&gt;
  247.  
  248. &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
  249. reach a standstill in the middle of some intractable debate about policy or
  250. legislation.  This is basically how I have been feeling lately.&lt;/p&gt;
  251.  
  252. &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
  253. working.  My girlfriend&#38;rsquo;s out of town, facing down a family tragedy; I am
  254. feeling especially powerless to help.  I came home for a couple of days to do
  255. things like pay the rent and beat the lawn back into submission and get a van
  256. running and reassure the cat that we hadn&#38;rsquo;t entirely abandoned him.&lt;/p&gt;
  257.  
  258. &lt;p&gt;At some point tonight the silence started to get to me and the cat both so we
  259. watched some TV:&lt;/p&gt;
  260.  
  261. &lt;p&gt;An early first-season episode of &lt;em&gt;Star Trek: The Next Generation&lt;/em&gt; that was so
  262. bad I became fascinated by it &#38;mdash; you forget how stilted and kind of foundering
  263. that show could be in the beginning, how much it could still feel like the
  264. original show at its worst.  Then the first episode of &lt;em&gt;sense8&lt;/em&gt;, a show I kind
  265. of wanted to hate immediately, and then wanted to like, and then wished didn&#38;rsquo;t
  266. seem like it was going to be so animated by violence because a lot of the other
  267. things that animate it are way more interesting.&lt;/p&gt;
  268.  
  269. &lt;p&gt;Anyway I&#38;rsquo;m eating too many tic tacs and trying to write.&lt;/p&gt;
  270.  
  271. &lt;p&gt;The first crop of radishes came up thick in my garden; I picked half today and
  272. will get the rest soon.  The chard that wintered over is threatening to bolt,
  273. but I think I&#38;rsquo;m going to let it go.  It feels like anything that hardy probably
  274. deserves a chance to go to seed, and maybe I can plant the seeds for a fall
  275. crop.&lt;/p&gt;
  276.  
  277. &lt;p&gt;The tree &#38;amp; grass pollen is unescapable.  You can see it in the air, there&#38;rsquo;s a
  278. thickening film on all the windshields.  My eyes are burning constantly,
  279. sometimes I can hardly keep them open.  I can&#38;rsquo;t breathe for shit.  I&#38;rsquo;ve got to
  280. go to an allergist and plead for some kind of intervention.  Of the things I
  281. never guessed about living past my early 30s, that I&#38;rsquo;d be wrecked for entire
  282. seasons on end by ambient plant sex definitely makes the list of
  283. disappointments.  It&#38;rsquo;s not quite as bad as fully realizing the mortality of
  284. everyone and everything I love, but I might put it roughly on a level with the
  285. awareness that computers are actually a terrifying existential threat in terms
  286. of its overall impact on my mental health.&lt;/p&gt;
  287.  
  288. &lt;p&gt;I found myself searching the commercial internet for facemasks capable of
  289. filtering pollen earlier today.  That can&#38;rsquo;t be an actual product category,
  290. right?  Just a filter mask you wear for like half the year?  No way.  Even if
  291. it were a thing, I can barely stand to put one of those things on for fifteen
  292. minutes when I&#38;rsquo;m dealing with solvents or, as recently, shoveling packrat shit
  293. out of a derelict shed in the woods in New Mexico.  I&#38;rsquo;m probably not going to
  294. become full-time face mask guy.&lt;/p&gt;
  295.  
  296. &lt;p&gt;The town turned on the irrigation ditch again, maybe for the duration this
  297. time.  It was running muddy and full of leaves yesterday; I pulled a bunch of
  298. crap out with a rake.  Today it was moving fast and clear.&lt;/p&gt;
  299.  
  300. &lt;p&gt;I just remembered that they found a body in the creek just around the corner
  301. earlier today.  (Yesterday now.)  I don&#38;rsquo;t know anything about it except the guy
  302. was younger than me.  I hope to God it doesn&#38;rsquo;t turn out to be anybody I know.&lt;/p&gt;
  303.  
  304.  
  305. &lt;p class=&#34;datelink&#34;&gt;
  306. &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; /
  307. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  308. &lt;a href=&#34;https://p1k3.com/2018/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  309. &lt;a href=&#34;https://p1k3.com/2018/6/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt;
  310. &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;
  311.  
  312. &lt;div class=photos&gt;
  313. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8513.JPG&#34;&gt;
  314.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8513.JPG&#34; width=&#34;200&#34;&gt;
  315. &lt;/a&gt;
  316. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8514.JPG&#34;&gt;
  317.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8514.JPG&#34; width=&#34;200&#34;&gt;
  318. &lt;/a&gt;
  319. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8515.JPG&#34;&gt;
  320.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8515.JPG&#34; width=&#34;200&#34;&gt;
  321. &lt;/a&gt;
  322. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8523.JPG&#34;&gt;
  323.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8523.JPG&#34; width=&#34;200&#34;&gt;
  324. &lt;/a&gt;
  325. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8537.JPG&#34;&gt;
  326.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8537.JPG&#34; width=&#34;200&#34;&gt;
  327. &lt;/a&gt;
  328. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8542.JPG&#34;&gt;
  329.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8542.JPG&#34; width=&#34;200&#34;&gt;
  330. &lt;/a&gt;
  331. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8560.JPG&#34;&gt;
  332.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8560.JPG&#34; width=&#34;200&#34;&gt;
  333. &lt;/a&gt;
  334. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8564.JPG&#34;&gt;
  335.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8564.JPG&#34; width=&#34;200&#34;&gt;
  336. &lt;/a&gt;
  337. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8569.JPG&#34;&gt;
  338.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8569.JPG&#34; width=&#34;200&#34;&gt;
  339. &lt;/a&gt;
  340. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8574.JPG&#34;&gt;
  341.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8574.JPG&#34; width=&#34;200&#34;&gt;
  342. &lt;/a&gt;
  343. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8580.JPG&#34;&gt;
  344.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8580.JPG&#34; width=&#34;200&#34;&gt;
  345. &lt;/a&gt;
  346. &lt;a href=&#34;/files/photos/./2018-05-31/IMG_8581.JPG&#34;&gt;
  347.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-05-31/Thumbs/IMG_8581.JPG&#34; width=&#34;200&#34;&gt;
  348. &lt;/a&gt;
  349. &lt;/div&gt;
  350.  
  351. &lt;p class=&#34;datelink&#34;&gt;
  352. &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; /
  353. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  354. &lt;a href=&#34;https://p1k3.com/2018/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  355. &lt;a href=&#34;https://p1k3.com/2018/5/31/&#34; title=&#34;31&#34;&gt;31&lt;/a&gt;
  356. &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;
  357.  
  358. &lt;h2&gt;XML::Atom::SimpleFeed and utf-8 text&lt;/h2&gt;
  359.  
  360. &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
  361. XML::Atom::SimpleFeed module in Perl, make sure you&#38;rsquo;re doing something
  362. like:&lt;/p&gt;
  363.  
  364. &lt;pre&gt;&lt;code&gt;my $feed = XML::Atom::SimpleFeed-&#38;gt;new(
  365.  -encoding =&#38;gt; &#39;UTF-8&#39;,
  366.  # ...
  367. );
  368.  
  369. my $utf8_content = decode(&#39;UTF-8&#39;, $content, Encode::FB_CROAK);
  370.  
  371. $feed-&#38;gt;add_entry(
  372.  content   =&#38;gt; $utf8_content,
  373.  # ...
  374. );
  375. &lt;/code&gt;&lt;/pre&gt;
  376.  
  377. &lt;p&gt;A fuller explanation follows.&lt;/p&gt;
  378.  
  379. &lt;p class=&#34;centerpiece&#34;&gt; ☙ &lt;/p&gt;
  380.  
  381.  
  382. &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;
  383. with &lt;a href=&#34;/topics/wrt&#34;&gt;wrt&lt;/a&gt;, where characters outside of the ASCII set (like ✿ ✢ ☆) were
  384. showing up mangled in the feed.&lt;/p&gt;
  385.  
  386. &lt;p&gt;I noticed this once in a while, but never investigated too deeply.  Since
  387. things usually seemed to display correctly in feedreaders (or at least in
  388. &lt;a href=&#34;https://www.newsblur.com/&#34;&gt;NewsBlur&lt;/a&gt;), I always wrote it off as some sort of vaguely
  389. intractable encoding glitch and forgot about it.&lt;/p&gt;
  390.  
  391. &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
  392. 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
  393. it obvious that something was legitimately broken.  Sure enough, in the Firefox
  394. feed view, decorative glyphs like &lt;code&gt;✺&lt;/code&gt; were rendering instead as multiple
  395. characters (see addendum below) while the first line of the generated Atom XML
  396. looked like so:&lt;/p&gt;
  397.  
  398. &lt;pre&gt;&lt;code&gt;&#38;lt;?xml version=&#34;1.0&#34; encoding=&#34;us-ascii&#34;?&#38;gt;
  399. &lt;/code&gt;&lt;/pre&gt;
  400.  
  401. &lt;p&gt;I&#38;rsquo;m using a CPAN library called XML::Atom::SimpleFeed for this.  Digging around
  402. &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;
  403.  
  404. &lt;pre&gt;&lt;code&gt;-encoding (omissible, default us-ascii)
  405. &lt;/code&gt;&lt;/pre&gt;
  406.  
  407. &lt;p&gt;So I changed the constructor in my code to look like this:&lt;/p&gt;
  408.  
  409. &lt;pre&gt;&lt;code&gt;my $feed = XML::Atom::SimpleFeed-&#38;gt;new(
  410.  -encoding =&#38;gt; &#39;UTF-8&#39;,
  411.  title     =&#38;gt; $self-&#38;gt;{title_prefix} . &#39;::&#39; . $self-&#38;gt;{title},
  412.  link      =&#38;gt; $self-&#38;gt;{url_root},
  413.  link      =&#38;gt; { rel =&#38;gt; &#39;self&#39;, href =&#38;gt; $feed_url, },
  414.  icon      =&#38;gt; $self-&#38;gt;{favicon_url},
  415.  author    =&#38;gt; $self-&#38;gt;{author},
  416.  id        =&#38;gt; $self-&#38;gt;{url_root},
  417.  generator =&#38;gt; &#39;App::WRT.pm / XML::Atom::SimpleFeed&#39;,
  418.  updated   =&#38;gt; App::WRT::Date::iso_date(App::WRT::Date::get_mtime($first_entry_file)),
  419. );
  420. &lt;/code&gt;&lt;/pre&gt;
  421.  
  422. &lt;p&gt;That took care of the declared encoding, but I was still getting mangled
  423. characters.  In order to fix that, I had to add something like:&lt;/p&gt;
  424.  
  425. &lt;pre&gt;&lt;code&gt;use Encode qw(decode encode);
  426.  
  427. my $utf8_content = decode(&#39;UTF-8&#39;, $content, Encode::FB_CROAK);
  428. $feed-&#38;gt;add_entry(
  429.  title     =&#38;gt; $title,
  430.  link      =&#38;gt; $entry_url,
  431.  id        =&#38;gt; $entry_url,
  432.  content   =&#38;gt; $utf8_content,
  433.  updated   =&#38;gt; $iso_date,
  434. );
  435. &lt;/code&gt;&lt;/pre&gt;
  436.  
  437. &lt;p&gt;&#38;hellip;where I add individual entries to the feed.&lt;/p&gt;
  438.  
  439. &lt;p&gt;As I understand it, when you read a UTF-8-encoded text file into a Perl string,
  440. the string&#38;rsquo;s contents will correspond to the &lt;em&gt;bytes&lt;/em&gt; in the file &#38;mdash; all well
  441. and good, for many purposes, but unless you explicitly use
  442. &lt;code&gt;Encode::decode(&#39;UTF-8&#39;, $string)&lt;/code&gt; to map multi-byte characters in UTF-8 to the
  443. correct Unicode code points in Perl&#38;rsquo;s internal string representation, weirdness
  444. will result when somebody calls &lt;code&gt;Encode::encode($character_set, $string)&lt;/code&gt; to
  445. explicitly turn those bytes back into correctly-encoded &lt;em&gt;output&lt;/em&gt;, which
  446. XML::Atom::SimpleFeed does.&lt;/p&gt;
  447.  
  448. &lt;p&gt;I may well be mangling that explanation somewhat.  I&#38;rsquo;ve never really had my
  449. head around this class of problems in general, which at this late date should
  450. probably be kind of embarrassing for a working programmer, but I also suspect
  451. that character encoding remains a confusing topic for almost everyone.&lt;/p&gt;
  452.  
  453. &lt;p&gt;See also:&lt;/p&gt;
  454.  
  455. &lt;ul&gt;
  456. &lt;li&gt;&lt;a href=&#34;http://perldoc.perl.org/perlunicode.html&#34;&gt;perlunicode&lt;/a&gt;,
  457. &lt;a href=&#34;http://perldoc.perl.org/perlunitut.html&#34;&gt;perlunitut&lt;/a&gt; (official docs)&lt;/li&gt;
  458. &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;
  459. &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;
  460. &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;
  461. &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;
  462. &lt;/ul&gt;
  463.  
  464.  
  465. &lt;p&gt;A comment in the review by Darren Kulp (from 2008, no less) pretty much
  466. contains the solution I landed on, but of course I skimmed over it on the first
  467. reading and spent a bunch more time getting there.&lt;/p&gt;
  468.  
  469. &lt;p class=&#34;centerpiece&#34;&gt; ✩ &lt;/p&gt;
  470.  
  471.  
  472. &lt;p&gt;&lt;strong&gt;Addendum:&lt;/strong&gt; I mentioned that &lt;code&gt;✺&lt;/code&gt; was rendering as multiple characters.
  473. Specifically, it was turning into what vim displays as &lt;code&gt;â&#38;lt;9c&#38;gt;º&lt;/code&gt;.  You can use
  474. &lt;code&gt;xxd&lt;/code&gt; to get a hexdump of this:&lt;/p&gt;
  475.  
  476. &lt;pre&gt;&lt;code&gt;$ cat original
  477.  
  478. $ cat re_encoded
  479. âº
  480.  
  481. $ xxd original
  482. 00000000: e29c ba                                  ...
  483.  
  484. $ xxd re_encoded
  485. 00000000: c3a2 c29c c2ba                           ......
  486. &lt;/code&gt;&lt;/pre&gt;
  487.  
  488. &lt;p&gt;So without running &lt;code&gt;Encode::decode()&lt;/code&gt; on this input, each of those initial 3
  489. bytes (&lt;code&gt;e2 9c ba&lt;/code&gt;) becomes a character in Perl&#38;rsquo;s internal string
  490. representation, and then &lt;code&gt;Encode::encode()&lt;/code&gt; says &#38;ldquo;ok, let&#38;rsquo;s represent these
  491. three characters as UTF-8&#38;rdquo;, from which you obviously get nonsense (though it&#38;rsquo;s
  492. nonsense in which some of the original &lt;em&gt;bytes&lt;/em&gt; are preserved).&lt;/p&gt;
  493.  
  494.  
  495. &lt;p class=&#34;datelink&#34;&gt;
  496. &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; /
  497. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  498. &lt;a href=&#34;https://p1k3.com/2018/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  499. &lt;a href=&#34;https://p1k3.com/2018/5/28/&#34; title=&#34;28&#34;&gt;28&lt;/a&gt;
  500. &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;
  501.  
  502. &lt;h2&gt;a mother&#39;s day lawn and garden report&lt;/h2&gt;
  503.  
  504. &lt;p&gt;coming over the hill on 36 where&lt;br /&gt;
  505. you catch that first view of boulder,&lt;br /&gt;
  506. clouds move over and in the gray and green of&lt;br /&gt;
  507. the bowl of the valley, against the mountains&lt;br /&gt;
  508. sweeping away to the north and west&lt;br /&gt;
  509. and in seconds thick drops hit the glass&lt;br /&gt;
  510. turning to heavy rain by the edge of town&lt;/p&gt;
  511.  
  512. &lt;p&gt;windshield wipers all the way up 28th and onto&lt;br /&gt;
  513. the road north, low rumbling as i park and lug my&lt;br /&gt;
  514. bag into the house, half-deranged from the day&#39;s&lt;br /&gt;
  515. driving and a dozen of the sadnesses that&lt;br /&gt;
  516. middle adulthood scores over and over again&lt;br /&gt;
  517. into surfaces like these&lt;/p&gt;
  518.  
  519. &lt;p&gt;the cat and i are watching the water come down&lt;br /&gt;
  520. out the screendoor when the thunder picks up&lt;br /&gt;
  521. i run outside and yank a tarp off the woodpile&lt;br /&gt;
  522. in back to throw across the garden&lt;br /&gt;
  523. just as the hail really gets going&lt;br /&gt;
  524. the flowers from the apple tree falling fast&lt;br /&gt;
  525. in the rain and ice, my shirt soaking&lt;/p&gt;
  526.  
  527. &lt;p&gt;the tarp is probably futile, but i have memories&lt;br /&gt;
  528. of more than one vegetable crop shredded by a&lt;br /&gt;
  529. spring storm like this one&lt;br /&gt;
  530. and i&#39;m not sure what else i can do&lt;/p&gt;
  531.  
  532. &lt;p&gt;which is both a metaphor and not.&lt;/p&gt;
  533.  
  534. &lt;p class=&#34;datelink&#34;&gt;
  535. &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; /
  536. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  537. &lt;a href=&#34;https://p1k3.com/2018/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  538. &lt;a href=&#34;https://p1k3.com/2018/5/13/&#34; title=&#34;13&#34;&gt;13&lt;/a&gt;
  539. &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;
  540.  
  541. &lt;h2&gt;wtfm&lt;/h2&gt;
  542.  
  543. &lt;p&gt;I&#38;rsquo;m thinking, far from the first time, about how few open source projects meet
  544. a certain standard of practical openness:&lt;/p&gt;
  545.  
  546. &lt;p&gt;Can a user unfamiliar with the project start with the published source code and
  547. the included documentation, and wind up with a working installation?&lt;/p&gt;
  548.  
  549. &lt;p&gt;The answer is &#38;ldquo;no way&#38;rdquo; a lot more often than it should be.&lt;/p&gt;
  550.  
  551. &lt;p&gt;I&#38;rsquo;m all too aware that the full context it takes to build a lot of software is
  552. a pretty hard thing to explain in a README.  All the same, if you&#38;rsquo;re working on
  553. a project of any size, maybe you ought to ask yourself some of the following:&lt;/p&gt;
  554.  
  555. &lt;ul&gt;
  556. &lt;li&gt;&lt;p&gt;Have I documented, in full, an up-to-date list of every environmental
  557. condition that a user will have to manually obtain in order to build,
  558. install, or run this code?&lt;/p&gt;&lt;/li&gt;
  559. &lt;li&gt;&lt;p&gt;Is it clear what environments this code is developed in, and where it&#38;rsquo;s
  560. known to run without issue?  Am I being brutally honest about this part?&lt;/p&gt;&lt;/li&gt;
  561. &lt;li&gt;&lt;p&gt;Is it clear what version of everything I used?&lt;/p&gt;&lt;/li&gt;
  562. &lt;li&gt;&lt;p&gt;When was the last time I tested the installation procedures in my
  563. documentation in a clean environment?  Has it been since the last time I
  564. changed dependencies or configuration requirements, no matter how
  565. apparently trivial?&lt;/p&gt;&lt;/li&gt;
  566. &lt;li&gt;&lt;p&gt;To what extent am I relying on implicit details of some OS, distribution,
  567. virtual machine, container, configuration management tool, package, init
  568. system, etc., without communicating those details to the user?&lt;/p&gt;&lt;/li&gt;
  569. &lt;li&gt;&lt;p&gt;If a user is unfamiliar with details of a language, package manager, build
  570. system, or other tooling, are they pretty much just SOL?  If
  571. so, is my software of interest to anyone outside of my specific technical
  572. community, narrowly defined?  Is there any potential that it will need to
  573. be supported, for example, by admins or ops people who don&#38;rsquo;t share my
  574. context, for use by some less technical audience?&lt;/p&gt;&lt;/li&gt;
  575. &lt;li&gt;&lt;p&gt;If I personally returned to developing the software after leaving it
  576. untouched for two years, how many problems would I be required to solve
  577. from a combination of my own patchy memory, search engine queries, and
  578. painstaking software architecture?&lt;/p&gt;&lt;/li&gt;
  579. &lt;li&gt;&lt;p&gt;Are there any required environment variables, config file values, or
  580. command-line parameters that are for some reason undocumented?&lt;/p&gt;&lt;/li&gt;
  581. &lt;li&gt;&lt;p&gt;Am I posturing like a link to some automatically extracted API
  582. documentation is a useful substitute for a real user manual?&lt;/p&gt;&lt;/li&gt;
  583. &lt;li&gt;&lt;p&gt;Did I just publish a command-line utility with a crappy builtin help system
  584. instead of a real man page?&lt;/p&gt;&lt;/li&gt;
  585. &lt;/ul&gt;
  586.  
  587.  
  588. &lt;p&gt;I could go on like this for a while, but I suppose the point is clear enough.
  589. If it sounds like I&#38;rsquo;m advocating a stricter standard than I usually manage to
  590. live up to myself, well, that&#38;rsquo;s probably fair.  Still, I think we could all
  591. probably do better.&lt;/p&gt;
  592.  
  593.  
  594. &lt;p class=&#34;datelink&#34;&gt;
  595. &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; /
  596. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  597. &lt;a href=&#34;https://p1k3.com/2018/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  598. &lt;a href=&#34;https://p1k3.com/2018/5/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt;
  599. &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;
  600.  
  601. &lt;h2&gt;a git log with both tags and dates&lt;/h2&gt;
  602.  
  603. &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
  604. see git history that included:&lt;/p&gt;
  605.  
  606. &lt;ul&gt;
  607. &lt;li&gt;commit hash&lt;/li&gt;
  608. &lt;li&gt;a datestamp&lt;/li&gt;
  609. &lt;li&gt;any tags pointing at a commit&lt;/li&gt;
  610. &lt;li&gt;subject line&lt;/li&gt;
  611. &lt;/ul&gt;
  612.  
  613.  
  614. &lt;p&gt;Since tags are used to designate released versions, this should at least give
  615. me a rough idea of what changed between releases.&lt;/p&gt;
  616.  
  617. &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
  618. 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
  619. searching led to:&lt;/p&gt;
  620.  
  621. &lt;pre&gt;&lt;code&gt;$ git log --oneline --decorate
  622. 99a584f (HEAD -&#38;gt; master, tag: v5.0.0-alpha, origin/master, origin/HEAD) set version string to v5.0.0
  623. e919a56 some comment tweaking; latest readme
  624. 7b543b5 address a bunch of hotspots from Devel::NYTProf, removing MethodSpit
  625. 3fa80ca link_bar(): retain actual &#38;lt;a&#38;gt; tag for current page in linkbar
  626. cf3dd64 remove failing recent_month test
  627. b5fe642 kill an extraneous space char in Markup.pm
  628. c1e17a9 sync README.pod with latest from WRT.pm
  629. 7d80dd5 kill recent_month(), month_before(), and feed_print_latest()
  630. 143613f get_date_entries_by_depth()
  631. 4f9a71b (tag: v4.3.0) switch example config from p1k3.com to example.com urls
  632. &lt;/code&gt;&lt;/pre&gt;
  633.  
  634. &lt;p&gt;Which is pretty close - you can see the tags inline with the rest of the
  635. history, but no date.  (I&#38;rsquo;m not sure if I ever knew about &lt;code&gt;--decorate&lt;/code&gt;; almost
  636. feels like it should be the default.)&lt;/p&gt;
  637.  
  638. &lt;p&gt;I spent some time with &lt;code&gt;git help log&lt;/code&gt; and eventually landed on:&lt;/p&gt;
  639.  
  640. &lt;pre&gt;&lt;code&gt;$ git log --date=short --pretty=&#39;format:%h %ad %d %s&#39;
  641. 99a584f 2018-04-19  (HEAD -&#38;gt; master, tag: v5.0.0-alpha, origin/master, origin/HEAD) set version string to v5.0.0
  642. e919a56 2018-04-19  some comment tweaking; latest readme
  643. 7b543b5 2018-04-11  address a bunch of hotspots from Devel::NYTProf, removing MethodSpit
  644. 3fa80ca 2018-04-08  link_bar(): retain actual &#38;lt;a&#38;gt; tag for current page in linkbar
  645. cf3dd64 2018-04-08  remove failing recent_month test
  646. b5fe642 2018-04-08  kill an extraneous space char in Markup.pm
  647. c1e17a9 2018-04-08  sync README.pod with latest from WRT.pm
  648. 7d80dd5 2018-04-08  kill recent_month(), month_before(), and feed_print_latest()
  649. 143613f 2018-04-08  get_date_entries_by_depth()
  650. 4f9a71b 2018-04-06  (tag: v4.3.0) switch example config from p1k3.com to example.com urls
  651. a5e5f21 2018-04-06  render feed for last n day entries instead of for current month
  652. 77d90d2 2018-02-10  (tag: v4.2.2) fix --config option to wrt-display &#38;amp; wrt-render-all
  653. &lt;/code&gt;&lt;/pre&gt;
  654.  
  655. &lt;p&gt;This is better.  In the format:&lt;/p&gt;
  656.  
  657. &lt;ul&gt;
  658. &lt;li&gt;&lt;code&gt;%h&lt;/code&gt; is hash&lt;/li&gt;
  659. &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;
  660. &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
  661. &lt;code&gt;%d&lt;/code&gt; by analogy to the &lt;code&gt;--decorate&lt;/code&gt; option)&lt;/li&gt;
  662. &lt;li&gt;&lt;code&gt;%s&lt;/code&gt; is subject&lt;/li&gt;
  663. &lt;/ul&gt;
  664.  
  665.  
  666. &lt;p&gt;Not super obvious, but it could be worse.&lt;/p&gt;
  667.  
  668. &lt;p class=&#34;centerpiece&#34;&gt; ✺ &lt;/p&gt;
  669.  
  670.  
  671. &lt;p&gt;The other thing this did for me is re-cement the notion of what references
  672. &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
  673. laid out roughly like the following:&lt;/p&gt;
  674.  
  675. &lt;pre&gt;&lt;code&gt;$ tree .git/refs
  676. .git/refs
  677. ├── heads
  678. │   ├── jsonfeed
  679. │   ├── master
  680. │   └── subcommands
  681. ├── remotes
  682. │   ├── origin
  683. │   │   ├── HEAD
  684. │   │   ├── master
  685. │   │   └── subcommands
  686. │   └── p1k3_server
  687. │       ├── master
  688. │       ├── tag_list
  689. │       └── topiclinks
  690. └── tags
  691.    ├── v4.2.0
  692.    ├── v4.2.2
  693.    ├── v4.3.0
  694.    └── v5.0.0-alpha
  695. &lt;/code&gt;&lt;/pre&gt;
  696.  
  697. &lt;p&gt;If you look at the contents of any of these files, you&#38;rsquo;ll see that they just
  698. contain some hashes which point to objects.&lt;/p&gt;
  699.  
  700. &lt;pre&gt;&lt;code&gt;$ cat .git/refs/heads/master
  701. 99a584fb080e1f295d9522b684ab05f80f60918e
  702.  
  703. $ cat .git/refs/remotes/origin/master
  704. 99a584fb080e1f295d9522b684ab05f80f60918e
  705.  
  706. $ cat .git/refs/tags/v4.3.0
  707. 0ad7dbe5249aff2eab05e8c7f6d8d73c41fc7323
  708. &lt;/code&gt;&lt;/pre&gt;
  709.  
  710. &lt;p&gt;Because git actually has &lt;em&gt;two&lt;/em&gt; kinds of tags, you might have some tags that
  711. don&#38;rsquo;t show up in that directory tree.  Lightweight tags are, apparently, just
  712. commit objects.  I&#38;rsquo;m not totally sure how this works, but you can get a better
  713. idea of it with:&lt;/p&gt;
  714.  
  715. &lt;pre&gt;&lt;code&gt;$ git tag -l --format=&#34;%(objectname:short) %(refname)%09%(objecttype)&#34;
  716. 2c789d3 refs/tags/2007-03-10    commit
  717. a1f5c23 refs/tags/2007-06-20    commit
  718. 88a445e refs/tags/2007-06-21    commit
  719. 17beaef refs/tags/2007-07-07    commit
  720. dac8154 refs/tags/2007-08-08    commit
  721. 221d1a3 refs/tags/2007-09-11    commit
  722. 54016b2 refs/tags/2007-10-04    commit
  723. 5437005 refs/tags/2008-01-11    commit
  724. 3c76277 refs/tags/2008-01-28    commit
  725. 20551c0 refs/tags/2008-03-15    commit
  726. 4bd68fe refs/tags/v4.2.0        tag
  727. 84948fa refs/tags/v4.2.2        tag
  728. 0ad7dbe refs/tags/v4.3.0        tag
  729. 199f704 refs/tags/v5.0.0-alpha  tag
  730. &lt;/code&gt;&lt;/pre&gt;
  731.  
  732. &lt;p&gt;The ones with an object type of &#38;ldquo;commit&#38;rdquo; are lightweight tags, the others are
  733. annotated.&lt;/p&gt;
  734.  
  735. &lt;p&gt;Useful docs:&lt;/p&gt;
  736.  
  737. &lt;ul&gt;
  738. &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;
  739. &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;
  740. &lt;/ul&gt;
  741.  
  742.  
  743. &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;
  744.  
  745.  
  746. &lt;p class=&#34;datelink&#34;&gt;
  747. &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; /
  748. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  749. &lt;a href=&#34;https://p1k3.com/2018/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  750. &lt;a href=&#34;https://p1k3.com/2018/4/19/&#34; title=&#34;19&#34;&gt;19&lt;/a&gt;
  751. &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;
  752.  
  753. &lt;h2&gt;watching: the west wing&lt;/h2&gt;
  754.  
  755. &lt;p&gt;(Spoilers follow.)&lt;/p&gt;
  756.  
  757. &lt;p&gt;I didn&#38;rsquo;t watch a whole lot of TV during the years from 2002 to about 2014.  I
  758. mean, not &lt;em&gt;no TV&lt;/em&gt;, just not most of it.  Here and there I lived with roommates
  759. who had cable, some kind of streaming subscription, or the ambition to pirate
  760. stuff.  I eventually saw most of &lt;em&gt;The Office&lt;/em&gt; (US), &lt;em&gt;Arrested Development&lt;/em&gt;,
  761. 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
  762. the end of the Bush years.  A season or three of &lt;em&gt;Archer&lt;/em&gt;.  I know there was
  763. other stuff, soaked up during family get-togethers and hotel-room stays, but
  764. those shows are everything that comes to mind:  Not exactly a comprehensive
  765. survey of the form.&lt;/p&gt;
  766.  
  767. &lt;p&gt;And then I bought a lightly-used Roku off a friend and got a Netflix streaming
  768. subscription, then subsequently moved in with a girlfriend who owns a bunch of
  769. DVDs.  We&#38;rsquo;ve watched what &lt;em&gt;feels&lt;/em&gt; like a lot of TV shows since then, but aside
  770. from &lt;em&gt;Parks &#38;amp; Rec&lt;/em&gt; (which I love without reservation), I&#38;rsquo;m not much more caught
  771. up than I was before.  Mostly it turns out I&#38;rsquo;m just more in tune with how my
  772. adult self feels about stuff I originally watched in the 1980s and 90s, because
  773. 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;,
  774. &lt;em&gt;Babylon 5&lt;/em&gt;, and &lt;em&gt;Cheers&lt;/em&gt;.&lt;/p&gt;
  775.  
  776. &lt;p&gt;I probably don&#38;rsquo;t have a whole lot of utility as a TV critic.&lt;/p&gt;
  777.  
  778. &lt;p class=&#34;centerpiece&#34;&gt; ✶ &lt;/p&gt;
  779.  
  780.  
  781. &lt;p&gt;&lt;em&gt;The West Wing&lt;/em&gt; is a recent addition to the rotation, probably because Netflix
  782. put it on the screen enough times and I clicked.  It&#38;rsquo;s a show I watched during
  783. at least its first couple of seasons, enough to pick up on the characters and
  784. remember a bunch of plot points, but beyond that memory is hazy.  I remember my
  785. (conservative Republican) parents being into it.&lt;/p&gt;
  786.  
  787. &lt;p&gt;We&#38;rsquo;re a couple of seasons in now, more or less.  This can be a weird and kind
  788. of depressing show to experience in the deepening gloom of 2018, in my late
  789. 30s, after 15 years or so of watching the American state do the things it does.
  790. It was probably a weird thing to watch in its own time too, with Bush in office
  791. for most of its run and its whole premise an ever-more-obvious counterfactual.&lt;/p&gt;
  792.  
  793. &lt;p&gt;Some of the plot material is overtly bad.  There&#38;rsquo;s this whole thing where Sam
  794. Seaborn sleeps with an escort he doesn&#38;rsquo;t know is an escort in like the first
  795. episode and it keeps coming back up, and though in the end it&#38;rsquo;s not as badly
  796. handled as it could be and I&#38;rsquo;d guess at the time &#38;ldquo;sex workers are just people
  797. and your judginess is bullshit&#38;rdquo; was probably intended as a brave moral stance
  798. for late turn-of-the-century network TV, it&#38;rsquo;s also full of moments where I
  799. almost decided to stop watching the show as a whole.&lt;/p&gt;
  800.  
  801. &lt;p&gt;The dialog is hooky and clever, but also almost a parody of itself from the
  802. very beginning (like the endless walk-and-talk sequences that the show pauses
  803. to make fun of itself for before the first season is up) and occasionally veers
  804. into these swelling-music-and-earnest-sentiment moments that don&#38;rsquo;t really earn
  805. their implied significance.  Some of the stuff I remembered as a really great
  806. fuck you to the Bad Guys of the time now reads as a little bit cheap and
  807. pandering.  (This one sequence, for example, where the President humiliates an
  808. 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
  809. actually a lecture lifted from an e-mail forward.  Not that Dr. Laura herself
  810. wasn&#38;rsquo;t a frankly evil force in the culture just then.)&lt;/p&gt;
  811.  
  812. &lt;p&gt;It&#38;rsquo;s also a narrative that can&#38;rsquo;t quite decide whether politics are inherently
  813. fucked and no progress is possible, or whether deep down we&#38;rsquo;re all on the same
  814. team here and we can rise above our etc.  The left-ish but also kind of
  815. pragmatically neoliberal Democrats who make up the Good Guys are constantly
  816. shooting themselves in the foot by compromising some belief to perceived
  817. political necessity, which is frustrating to watch, especially when the show
  818. goes out of its way to demonstrate that they&#38;rsquo;d do better if they just did what
  819. they knew was right, but then reverts to the same pattern an episode later.
  820. Things have a tendency to get kind of patronizing and American-exceptionalist
  821. whenever a foreign policy plot comes up.&lt;/p&gt;
  822.  
  823. &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
  824. sure how I feel about the entire project of American government at this stage
  825. of history, which complicates how I feel about these kinds of stories.  But
  826. whatever.  All that said, it&#38;rsquo;s a good show.  The cast are amazing.  The writing
  827. is frequently cornball and sometimes juvenile but also really entertaining.
  828. It&#38;rsquo;s often hopeful in a way that I have mostly lost track of how to be.  It
  829. makes you want to work with good people on something important, and that
  830. feeling is most of the reason that I&#38;rsquo;m such a sucker for workplace drama stuff
  831. like this.&lt;/p&gt;
  832.  
  833.  
  834. &lt;p class=&#34;datelink&#34;&gt;
  835. &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; /
  836. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  837. &lt;a href=&#34;https://p1k3.com/2018/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  838. &lt;a href=&#34;https://p1k3.com/2018/4/15/&#34; title=&#34;15&#34;&gt;15&lt;/a&gt;
  839. &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;
  840.  
  841. &lt;h2&gt;App::WRT v4.3.0: schwartzian transforms, long-term projects&lt;/h2&gt;
  842.  
  843. &lt;p&gt;I should have been doing other things, but I spent a couple of hours over the
  844. 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
  845. bit more capable.&lt;/p&gt;
  846.  
  847. &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;)
  848. contain the most recent &lt;em&gt;n&lt;/em&gt; entries instead of just the entries for the most
  849. recent month.  For example, instead of just rendering a feed with the entries
  850. for this April, I wanted it to contain the last 30 days for which I&#38;rsquo;d written
  851. something.&lt;/p&gt;
  852.  
  853. &lt;p&gt;If wrt entries lived in, say, an SQL database of some sort, this would be just
  854. a matter of changing a query to get some different ones.  Since they&#38;rsquo;re just
  855. flatfiles in a directory tree without a lot of abstractions around them, it was
  856. a bit trickier but also more interesting.&lt;/p&gt;
  857.  
  858. &lt;p&gt;Simplified a lot, the wrt repository for this site looks something like this:&lt;/p&gt;
  859.  
  860. &lt;pre&gt;&lt;code&gt;/home/brennen/p1k3/
  861. ▾ archives/
  862.  ▾ 2018/
  863.    ▸ 1/
  864.    ▸ 2/
  865.    ▸ 3/
  866.    ▾ 4/
  867.      ▸ 5/
  868.      ▸ 8/
  869.      ▸ 9/
  870. &lt;/code&gt;&lt;/pre&gt;
  871.  
  872. &lt;p&gt;The basic idea is that a file 3 deep in the hierarchy of numerical
  873. 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
  874. year.  If I wanted to put the last 30 entries into the feed, I&#38;rsquo;d need to
  875. flatten this structure out into a sorted list.&lt;/p&gt;
  876.  
  877. &lt;p&gt;I remembered that I was already getting a list of all the entries for the &lt;code&gt;wrt
  878. render-all&lt;/code&gt; script that renders the whole site at once, so it seemed simple
  879. enough to reuse that list, but there was a catch:  Doing a simple reversed
  880. &lt;code&gt;sort&lt;/code&gt; on that list gave me results like these:&lt;/p&gt;
  881.  
  882. &lt;pre&gt;&lt;code&gt;...
  883. 2016/10/16
  884. 2016/10/14
  885. 2016/10/12
  886. 2016/10
  887. 2016/1/5
  888. 2016/1/3
  889. 2016/1/28
  890. ...
  891. &lt;/code&gt;&lt;/pre&gt;
  892.  
  893. &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;
  894.  
  895. &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
  896. would have been less of a problem, but it seemed pretty solvable.  I just
  897. needed to convert the entry paths to a different format and sort by that.&lt;/p&gt;
  898.  
  899. &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;,
  900. and writing something like the following:&lt;/p&gt;
  901.  
  902. &lt;pre&gt;&lt;code&gt;sub get_date_entries_by_depth {
  903.  my $self = shift;
  904.  my ($depth) = @_;
  905.  
  906.  # Match given $depth:
  907.  my @particles;
  908.  for (my $i = 0; $i &#38;lt; $depth; $i++) {
  909.    push @particles, &#39;\d+&#39;;
  910.  }
  911.  my $pattern = join &#39;/&#39;, @particles;
  912.  
  913.  # Sort matching entries by sortable_date_from_entry()
  914.  return map  { $_-&#38;gt;[0] }
  915.         sort { $a-&#38;gt;[1] cmp $b-&#38;gt;[1] }
  916.         map  { [$_, sortable_date_from_entry($_)] }
  917.         grep m{^ $pattern $}x, $self-&#38;gt;get_all_source_files();
  918. }
  919.  
  920. sub sortable_date_from_entry {
  921.  my ($entry) = @_;
  922.  my @parts = map { sprintf(&#34;%4d&#34;, $_) } split &#39;/&#39;, $entry;
  923.  return join &#39;&#39;, @parts;
  924. }
  925. &lt;/code&gt;&lt;/pre&gt;
  926.  
  927. &lt;p&gt;First, this builds a regular expression to match entries that are at a
  928. certain depth in the hierarchy (1 is a year, 2 is a month, 3 is a day).&lt;/p&gt;
  929.  
  930. &lt;p&gt;Then it:&lt;/p&gt;
  931.  
  932. &lt;ol&gt;
  933. &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
  934. the pattern.&lt;/li&gt;
  935. &lt;li&gt;&lt;code&gt;map&lt;/code&gt;s the matching entries to a list of two-element arrays where the 0th
  936. element is the original path to the entry (&lt;code&gt;2018/4/9&lt;/code&gt;), and the 1st element
  937. is a format returned by &lt;code&gt;sortable_date_from_entry()&lt;/code&gt; that will sort
  938. correctly using string comparison (&lt;code&gt;201800040009&lt;/code&gt;).&lt;/li&gt;
  939. &lt;li&gt;Sorts the overall list by comparing the formatted values.&lt;/li&gt;
  940. &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;
  941. &lt;/ol&gt;
  942.  
  943.  
  944. &lt;p&gt;So now, in order to get the list of entries to turn into a feed, I can just
  945. call:&lt;/p&gt;
  946.  
  947. &lt;pre&gt;&lt;code&gt;my @entries = reverse $self-&#38;gt;get_date_entries_by_depth(3);
  948. &lt;/code&gt;&lt;/pre&gt;
  949.  
  950. &lt;p&gt;&#38;hellip;and take the first 30 or so.&lt;/p&gt;
  951.  
  952. &lt;p class=&#34;centerpiece&#34;&gt; ❁ &lt;/p&gt;
  953.  
  954.  
  955. &lt;p&gt;Once I had the feed done, I decided to apply the same idea to the set of
  956. entries on the front page, and once I&#38;rsquo;d done &lt;em&gt;that&lt;/em&gt; I realized that I could
  957. also use the same sorted lists to generate next/previous links for any given
  958. node in the date tree.&lt;/p&gt;
  959.  
  960. &lt;p&gt;This was an interesting way to kill some time, both because I revisited an
  961. algorithm I&#38;rsquo;d forgotten about, and because every time I hack on a project like
  962. this I&#38;rsquo;m in a dialog with basic decisions I made before I knew how to write
  963. software at all.  And maybe, by the same token, looking with fresh eyes at
  964. 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
  965. piece of software by any contemporary standard, and the approach it represents
  966. isn&#38;rsquo;t one I&#38;rsquo;d use for anything bigger than a trivial shell script at my day
  967. job, but there&#38;rsquo;s a curious durability to it all the same.&lt;/p&gt;
  968.  
  969. &lt;p&gt;Every few years I revisit some facet of this tiny, mundane tool and apply a bit
  970. of understanding I lacked when it was first written, and some structure comes a
  971. little clearer that lives in the space between my ignorance at 20 and my
  972. experience, such as it is, at whatever age I&#38;rsquo;ve reached.&lt;/p&gt;
  973.  
  974. &lt;p&gt;Everyone should have a few long-term projects, however small and unremarkable.&lt;/p&gt;
  975.  
  976. &lt;ul&gt;
  977. &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;
  978. &lt;li&gt;&lt;a href=&#34;https://github.com/brennen/wrt&#34;&gt;wrt on GitHub&lt;/a&gt;&lt;/li&gt;
  979. &lt;/ul&gt;
  980.  
  981.  
  982.  
  983. &lt;p class=&#34;datelink&#34;&gt;
  984. &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; /
  985. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  986. &lt;a href=&#34;https://p1k3.com/2018/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  987. &lt;a href=&#34;https://p1k3.com/2018/4/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt;
  988. &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;
  989.  
  990. &lt;h2&gt;another lawn and garden report&lt;/h2&gt;
  991.  
  992. &lt;p&gt;Up in the mountains it&#38;rsquo;s windy, the trees whipping around and the sky changing
  993. fast.  Down below it feels calm, sunny.  You can see the wind in the clouds
  994. though.  Pay attention for a second and you can see the layers parallaxing, the
  995. edges curling through fragmented permutations.  I take the recycling out and
  996. sit on the front step with my laptop, listening to the little brown birds in
  997. the trees.  There was snow on the ground when we woke up yesterday morning, but
  998. I walked through the front gate just now and heard a snake rustle its way
  999. unmistakably through the weedy vines that clog the front fence:  The snake has
  1000. much more bearing on the subjective seasonality of things than snow.&lt;/p&gt;
  1001.  
  1002.  
  1003. &lt;p class=&#34;datelink&#34;&gt;
  1004. &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; /
  1005. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1006. &lt;a href=&#34;https://p1k3.com/2018/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  1007. &lt;a href=&#34;https://p1k3.com/2018/4/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt;
  1008. &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;
  1009.  
  1010. &lt;p&gt;i think the special tragedy of&lt;br /&gt;
  1011. humans, in the long term,&lt;br /&gt;
  1012. might not so much be&lt;br /&gt;
  1013. that we die  &#38;mdash;  &lt;i&gt;that&lt;/i&gt; we&lt;br /&gt;
  1014. share with all things, after all&lt;/p&gt;
  1015.  
  1016. &lt;p&gt;but rather that we destroy so&lt;br /&gt;
  1017. much with all the considerable&lt;br /&gt;
  1018. powers granted by&lt;br /&gt;
  1019. our long biological heritage  &#38;mdash; &lt;br /&gt;
  1020. and among those powers&lt;br /&gt;
  1021. is just sufficient perception&lt;br /&gt;
  1022. to know ourselves as destroyers&lt;/p&gt;
  1023.  
  1024. &lt;p&gt;an algal bloom, an asteroid, an exploding sun&lt;br /&gt;
  1025. &#38;mdash;  all these destroy, i assume,&lt;br /&gt;
  1026. without reflection, without memory&lt;/p&gt;
  1027.  
  1028. &lt;p&gt;but we are something else:&lt;br /&gt;
  1029. we are capable of apprehending that&lt;br /&gt;
  1030. we are machines for murdering the world&lt;br /&gt;
  1031. we bend all our faculties&lt;br /&gt;
  1032. to slaughter, to obliteration,&lt;br /&gt;
  1033. to consumption beyond any&lt;br /&gt;
  1034. reasonable need  &#38;mdash;  and among&lt;br /&gt;
  1035. those faculties is the&lt;br /&gt;
  1036. ability to realize, at intervals&lt;br /&gt;
  1037. that this is true&lt;/p&gt;
  1038.  
  1039. &lt;p&gt;to &lt;i&gt;love&lt;/i&gt; what our aggregate&lt;br /&gt;
  1040. undertaking is always and&lt;br /&gt;
  1041. inescapable to &lt;i&gt;ruin&lt;/i&gt;:&lt;br /&gt;
  1042. the animals, the land,&lt;br /&gt;
  1043. the air and water&lt;br /&gt;
  1044. our very selves&lt;br /&gt;
  1045. all of us&lt;/p&gt;
  1046.  
  1047. &lt;p&gt;we&#39;re a fire burning&lt;br /&gt;
  1048. and damned to know ourselves&lt;br /&gt;
  1049. as flames.&lt;/p&gt;
  1050.  
  1051. &lt;p class=&#34;datelink&#34;&gt;
  1052. &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; /
  1053. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1054. &lt;a href=&#34;https://p1k3.com/2018/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  1055. &lt;a href=&#34;https://p1k3.com/2018/4/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt;
  1056. &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;
  1057.  
  1058. &lt;p&gt;There are plenty of arguments you can make for long distance train transit, but
  1059. I think maybe the most compelling I know of is the sensation of drinking beer
  1060. at your own table in the bar car, with power for your laptop, while you roll
  1061. along through the night at interstate speeds, totally unconcerned with
  1062. &lt;em&gt;directing&lt;/em&gt; anything.&lt;/p&gt;
  1063.  
  1064. &lt;p class=&#34;centerpiece&#34;&gt; ✯ &lt;/p&gt;
  1065.  
  1066.  
  1067. &lt;p&gt;The 10 or 12 year old playing UNO with his dad a table over is quietly singing
  1068. the lyrics to Culture Club&#38;rsquo;s &#38;ldquo;Chameleon&#38;rdquo;.&lt;/p&gt;
  1069.  
  1070. &lt;p class=&#34;centerpiece&#34;&gt; ✶ &lt;/p&gt;
  1071.  
  1072.  
  1073. &lt;p&gt;It&#38;rsquo;s Good Friday, for another half hour at least.  Like every year I&#38;rsquo;m not in
  1074. church on this night, I think of the Tenebrae service all the same.&lt;/p&gt;
  1075.  
  1076.  
  1077. &lt;p class=&#34;datelink&#34;&gt;
  1078. &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; /
  1079. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1080. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1081. &lt;a href=&#34;https://p1k3.com/2018/3/30/&#34; title=&#34;30&#34;&gt;30&lt;/a&gt;
  1082. &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;
  1083.  
  1084. &lt;h2&gt;some guesses&lt;/h2&gt;
  1085.  
  1086. &lt;p&gt;As an exercise in checking some intuitions, hopes, fears, etc., here are
  1087. some statements I&#39;d like to re-evaluate 5 and 10 years from now, if I&#39;m around
  1088. to do the evaluating.&lt;/p&gt;
  1089.  
  1090. &lt;p&gt;This is just me being depressing; it&#39;s definitely not a coherent thesis
  1091. about the future.  You should skip reading it.  If you&#39;re looking for
  1092. depressing material about the future that might actually be worth your time, &lt;a
  1093. href=&#34;http://www.antipope.org/charlie/&#34;&gt;Charlie Stross has a blog&lt;/a&gt;.  (Or if
  1094. you really, &lt;i&gt;really&lt;/i&gt; want to feel bad, there&#39;s always &lt;a
  1095. href=&#34;http://www.rifters.com/crawl/&#34;&gt;Peter Watts&lt;/a&gt;.)&lt;/p&gt;
  1096.  
  1097. &lt;p class=&#34;centerpiece&#34;&gt; ✵ &lt;/p&gt;
  1098.  
  1099. &lt;p&gt;1. Cryptocurrency (at least as formulated in 2018) is a scam, a nascent
  1100. energy use disaster, and a probable driver of inequality in an already
  1101. dangerously inequitable system.  Blockchain-adjacent techniques will
  1102. demonstrate various kinds of utility, but if everybody&#39;s still talking about
  1103. &#34;crypto&#34; in a decade this utility will probably be overshadowed by the damage
  1104. Bitcoin and all its children have wrought.  I will still be irritated that
  1105. &#34;crypto&#34; somehow became shorthand for &#34;cryptocurrency&#34;.&lt;/p&gt;
  1106.  
  1107. &lt;p&gt;2. Early 2018 is seeing stronger and more generalized public Facebook
  1108. backlash than we&#39;ve gotten before.  (The flashpoint at the moment is the whole
  1109. Cambridge Analytica thing.) Here&#39;s my prediction: Facebook isn&#39;t going
  1110. anywhere, but even if it does suffer reversals, the &lt;i&gt;model&lt;/i&gt; it represents
  1111. will only have increased its actual dominance by 2023 or 2028.&lt;/p&gt;
  1112.  
  1113. &lt;p&gt;2a. The movement to rebuild a more decentralized, federated, &#38;amp;
  1114. protocol-driven network outside of surveillance capitalism isn&#39;t going away.
  1115. It will gain adherents and build more robust infrastructure.  It will also
  1116. remain marginal, ideologically driven (as opposed to widely adopted on
  1117. practical grounds), and incapable of mounting any &lt;i&gt;fundamental&lt;/i&gt; challenge
  1118. to a status quo dominated by megacorporations with control over most of the
  1119. devices, most of the data, and most of the intensively-surveilled public and
  1120. private sphere.  Neo-Luddite tendencies will begin to more noticeably produce
  1121. isolationist communities in the &lt;del&gt;real&lt;/del&gt; physical world.&lt;/p&gt;
  1122.  
  1123. &lt;p&gt;2b. US legislation affecting social media, networks, software, and privacy
  1124. will have further entrenched, rather than limited, the power dynamic described
  1125. in 2a.  EU legislation on privacy won&#39;t prove &lt;i&gt;entirely&lt;/i&gt; useless at
  1126. protecting users, but mostly it&#39;ll just add some bureaucratic overhead without
  1127. being drastic enough to really hamper actors at the scale of Facebook, Google,
  1128. and Amazon.&lt;/p&gt;
  1129.  
  1130. &lt;p&gt;3. Desktop computing won&#39;t be dead, but it&#39;ll be widely viewed as obsolete
  1131. and on its way out.  Physical keyboards will be increasingly seen as an
  1132. affectation even for professionals.  It will be getting hard to even buy a
  1133. mouse.&lt;/p&gt;
  1134.  
  1135. &lt;p&gt;4. Always-on cameras and microphones will be totally normalized across every
  1136. family of widely-used consumer computing device, and almost no public space in
  1137. the developed world will be free of permanent video and audio logging to cloud
  1138. services.&lt;/p&gt;
  1139.  
  1140. &lt;p&gt;5. Mass shootings will continue at more or less the same pace in the US, if
  1141. not increase substantially.  Aside from relatively minor concessions like
  1142. banning bump stocks, no very effective restrictions on gun ownership will make
  1143. it into federal law.  Traditional gun culture&#39;s adherence will nevertheless
  1144. have declined substantially, and an escalation in far-right racist
  1145. power-fantasy gun culture among non-rural white people who have never hunted or
  1146. gone sport shooting a day in their lives probably won&#39;t be enough to make up
  1147. for it numerically.&lt;/p&gt;
  1148.  
  1149. &lt;p&gt;6. Driverless cars will be happening for real, and like Uber or Lyft,
  1150. they&#39;ll have serious practical advantages for prosperous (sub)urbanites and the
  1151. professional class.  They&#39;ll also gut public transit systems, increase
  1152. congestion and passenger miles traveled, further marginalize poor people and
  1153. &#34;gig economy&#34; laborers, and double as data sponges for various megacorps.
  1154. Truckers will be looking real worried.&lt;/p&gt;
  1155.  
  1156. &lt;p&gt;6a. There will still be no genuinely serious indications of a shift in the
  1157. United States away from car-centric development patterns and lifestyles.&lt;/p&gt;
  1158.  
  1159. &lt;p&gt;7. It&#39;ll become much easier to tell that skilled tech worker leverage
  1160. against employers is going to decrease while automation ramps up and software
  1161. power further consolidates.  People in the industry won&#39;t be quite as nervous
  1162. as truckers, but they&#39;ll be getting there.&lt;/p&gt;
  1163.  
  1164. &lt;p&gt;7a. The window of available time for people in software to unionize with any
  1165. effective power will obviously be narrowing.  People in software will not have
  1166. unionized at any scale and no credible efforts will be underway.&lt;/p&gt;
  1167.  
  1168. &lt;p&gt;8. It will no longer be possible to trust any video, photo, or audio
  1169. recording without cryptographically verified signatures from a reputable party.
  1170. It&#39;ll be getting pretty easy to fake a lot of stuff in realtime.&lt;/p&gt;
  1171.  
  1172. &lt;p&gt;8a. Fully machine-generated music will really start to take off.&lt;/p&gt;
  1173.  
  1174. &lt;p&gt;9. In five years, weed will be well on its way to legal nationwide.  In ten,
  1175. it&#39;ll pretty much be there, or at least effectively decriminalized.  There&#39;ll
  1176. be some real casualties because lots of people are going to smoke a
  1177. mind-destroying volume of concentrated THC all day long every day.  On balance,
  1178. it&#39;ll still probably be an improvement in public health.  It will not, despite
  1179. every stoned conversation you&#39;ve ever had about legalization, fix the problems
  1180. of mass incarceration.&lt;/p&gt;
  1181.  
  1182. &lt;p&gt;10. No meaningful reforms of policing in America will have gained any
  1183. traction.  When I go to look at this list again, I will be able to recall one
  1184. or more killings of an unarmed black civilian by law enforcement within the
  1185. previous 2-3 months.&lt;/p&gt;
  1186.  
  1187. &lt;p&gt;11. Various socialisms are going to become increasingly mainstream positions
  1188. in the US.  As an unfortunate corollary, the actual no-shit authoritarian left
  1189. will be a recognizable factor in political life.&lt;/p&gt;
  1190.  
  1191. &lt;p&gt;12. We&#39;ll have permanently lost a few more large mammal species, but the
  1192. really telling numbers will be increasingly comprehensive evidence of massive
  1193. decline in absolute numbers of birds, insects, fish, amphibians, etc.&lt;/p&gt;
  1194.  
  1195. &lt;p class=&#34;datelink&#34;&gt;
  1196. &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; /
  1197. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1198. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1199. &lt;a href=&#34;https://p1k3.com/2018/3/27/&#34; title=&#34;27&#34;&gt;27&lt;/a&gt;
  1200. &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;
  1201.  
  1202. &lt;p&gt;it&#39;s gray all day, somewhere in the 40s fahrenheit&lt;br /&gt;
  1203. rain starts some time in the late afternoon&lt;br /&gt;
  1204. and i&#39;m glad i thought to tarp the rototiller&lt;br /&gt;
  1205. sitting by the fence out in the back yard&lt;br /&gt;
  1206. a friend comes over, his last visit before&lt;br /&gt;
  1207. leaving town; we drink box wine and eat&lt;br /&gt;
  1208. plates of fresh pasta as the rain shifts into&lt;br /&gt;
  1209. the wet, transient snow of a colorado spring&lt;/p&gt;
  1210.  
  1211. &lt;p class=&#34;datelink&#34;&gt;
  1212. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1213. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1214. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1215. &lt;a href=&#34;https://p1k3.com/2018/3/26/&#34; title=&#34;26&#34;&gt;26&lt;/a&gt;
  1216. &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;
  1217.  
  1218. &lt;h2&gt;a lawn and garden report&lt;/h2&gt;
  1219.  
  1220. &lt;p&gt;It&#38;rsquo;s suddenly springtime:  Robins on top of the house, fattening rabbits in the
  1221. yard, a dandelion flowering alongside the back walk.  I should have listened to
  1222. my older relatives and planted flats of seeds for the garden a month ago.  It
  1223. may well be past time to get some of the hardier stuff in the dirt.  There was
  1224. a little rain and the lawn is if not exactly green, then also not exactly
  1225. entirely dead.  A couple of last year&#38;rsquo;s brassicas give some evidence of having
  1226. survived the winter, mild and unsatisfying as it was.&lt;/p&gt;
  1227.  
  1228.  
  1229. &lt;p class=&#34;datelink&#34;&gt;
  1230. &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; /
  1231. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1232. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1233. &lt;a href=&#34;https://p1k3.com/2018/3/21/&#34; title=&#34;21&#34;&gt;21&lt;/a&gt;
  1234. &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;
  1235.  
  1236. &lt;div class=photos&gt;
  1237. &lt;a href=&#34;/files/photos/./2018-03-18/IMG_8066.JPG&#34;&gt;
  1238.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-03-18/Thumbs/IMG_8066.JPG&#34; width=&#34;200&#34;&gt;
  1239. &lt;/a&gt;
  1240. &lt;a href=&#34;/files/photos/./2018-03-18/IMG_8067.JPG&#34;&gt;
  1241.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-03-18/Thumbs/IMG_8067.JPG&#34; width=&#34;200&#34;&gt;
  1242. &lt;/a&gt;
  1243. &lt;a href=&#34;/files/photos/./2018-03-18/IMG_8071.JPG&#34;&gt;
  1244.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-03-18/Thumbs/IMG_8071.JPG&#34; width=&#34;200&#34;&gt;
  1245. &lt;/a&gt;
  1246. &lt;a href=&#34;/files/photos/./2018-03-18/IMG_8075.JPG&#34;&gt;
  1247.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-03-18/Thumbs/IMG_8075.JPG&#34; width=&#34;200&#34;&gt;
  1248. &lt;/a&gt;
  1249. &lt;a href=&#34;/files/photos/./2018-03-18/IMG_8077.JPG&#34;&gt;
  1250.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-03-18/Thumbs/IMG_8077.JPG&#34; width=&#34;200&#34;&gt;
  1251. &lt;/a&gt;
  1252. &lt;/div&gt;
  1253.  
  1254. &lt;p&gt;Cleaning out a handful of pens I haven&#38;rsquo;t used yet this year, before the ink can
  1255. fossilize in them, I&#38;rsquo;m struck by how I&#38;rsquo;ve never learned any way to do this that
  1256. isn&#38;rsquo;t just kind of a mess.&lt;/p&gt;
  1257.  
  1258. &lt;p&gt;I still write quite a bit of the time with fountain pens.  It&#38;rsquo;s impractical in
  1259. a lot of ways, but nothing else quite matches the &lt;em&gt;feel&lt;/em&gt; of it, or the results
  1260. on a page.&lt;/p&gt;
  1261.  
  1262. &lt;p&gt;I tend to carry fine-tipped pigment markers instead (Sakura Pigma Micron,
  1263. Faber-Castell PITT Artist Pens, or a few other brands&#38;mdash;drawing markers you
  1264. can find in most art supply sections for a couple bucks a pop) when I&#38;rsquo;m leaving
  1265. the house or traveling, because they&#38;rsquo;re easy to replace and much harder to get
  1266. ink all over the place with.&lt;/p&gt;
  1267.  
  1268. &lt;p&gt;Last year, though, I spent somewhere north of a hundred dollars on a Pilot
  1269. Vanishing Point, this weird fountain pen with a clicky push-button retractable
  1270. nib.  It&#38;rsquo;s gone almost everywhere with me since then.&lt;/p&gt;
  1271.  
  1272. &lt;p&gt;I&#38;rsquo;ve spent real money on pens before this, but I&#38;rsquo;ve usually regretted it.  The
  1273. last one quit writing after a couple of days and then literally fell apart.
  1274. I&#38;rsquo;ve experimented with a bunch of things, but mostly to date I&#38;rsquo;ve had the best
  1275. luck with cheap, simple plastic-bodied pens like the &lt;a href=&#34;https://www.sheaffer.com/&#34;&gt;Sheaffer&lt;/a&gt; ones
  1276. my mom got in school some time in the 60s or 70s&#38;mdash;a design they probably still
  1277. make some variation on for less than $10.  If you wanted to get into fountain
  1278. pens, you could do a lot worse than picking up one of their &#38;ldquo;calligraphy&#38;rdquo; sets.&lt;/p&gt;
  1279.  
  1280. &lt;p&gt;The Vanishing Point is something else, though.  It writes nicer than just about
  1281. 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
  1282. retractable nib is more than a gimmick.  After a year&#38;rsquo;s pretty hard use, it&#38;rsquo;s
  1283. started leaking some inside the body of the pen, which is kind of a drag, but
  1284. so far it hasn&#38;rsquo;t leaked anywhere else and it feels safe to keep in a bag or a
  1285. pocket.  I like it so much that if it breaks, I&#38;rsquo;ll probably buy another one.
  1286. In fact, the idea that it &lt;em&gt;might&lt;/em&gt; break has me thinking about buying one right
  1287. now, the way I stock up on the notebooks I like, because not having one
  1288. available at any given time fills me with this kind of low-key agitation.&lt;/p&gt;
  1289.  
  1290. &lt;p&gt;Totally worth it, if you are the kind of person who can somehow justify a thing
  1291. as ridiculous as a &lt;em&gt;luxury writing implement&lt;/em&gt; while the world burns and
  1292. computers finish eating the physical act of writing completely.&lt;/p&gt;
  1293.  
  1294. &lt;p class=&#34;centerpiece&#34;&gt; ✦ &lt;/p&gt;
  1295.  
  1296.  
  1297. &lt;p&gt;Writing on paper crossed an interesting threshold for me recently:  I&#38;rsquo;d been
  1298. thinking of it as almost purely an affectation, a thing I persisted in for
  1299. reasons of aesthetic stubbornness and simple physical attachment to the
  1300. ritual&#38;mdash;all well and good, but scarcely justifiable on any practical grounds
  1301. beyond &#38;ldquo;I like it, and writing the way I enjoy writing helps me write at all&#38;rdquo;.&lt;/p&gt;
  1302.  
  1303. &lt;p&gt;Lately, though, I feel a deepening appreciation for any technology that&#38;rsquo;s
  1304. outside the reach of the network and software.  Much like printed paper books
  1305. live outside of Amazon&#38;rsquo;s surveillance machinery, stubbornly resist deletion,
  1306. and can be freely lent out, paper notes are cognitive tools that don&#38;rsquo;t have
  1307. Google Analytics and a sea of inscrutable machine-learning slapped on them.  I
  1308. guess that&#38;rsquo;ll only last until sufficiently high-resolution always-on cameras
  1309. inescapably cover every angle in every building (or come with whatever
  1310. augmented-reality system we all have to use in order to keep participating in
  1311. society) but it&#38;rsquo;s no small thing for the moment.&lt;/p&gt;
  1312.  
  1313.  
  1314. &lt;p class=&#34;datelink&#34;&gt;
  1315. &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; /
  1316. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1317. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1318. &lt;a href=&#34;https://p1k3.com/2018/3/18/&#34; title=&#34;18&#34;&gt;18&lt;/a&gt;
  1319. &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;
  1320.  
  1321. &lt;p&gt;I&#38;rsquo;m in the mountains, dog-sitting for family.  They live in the kind of place
  1322. that&#38;rsquo;s flooded with natural light during the day, where you can see the
  1323. Continental Divide out the windows.  Put wood on the fire, take the dog
  1324. outside, startle as big corvids of some kind glide past overhead.&lt;/p&gt;
  1325.  
  1326. &lt;p&gt;This is a long ways from the countryside where I grew up, but out in the
  1327. mountains is still unmistakably &lt;em&gt;in the country&lt;/em&gt; in some crucial way.&lt;/p&gt;
  1328.  
  1329. &lt;p&gt;There&#38;rsquo;s a tension between how good I feel in this kind of place and how much
  1330. and how often I&#38;rsquo;m told that the only survivable future for civilization is
  1331. urban density, tall blocks of towers, and more or less the planned eradication
  1332. of the communities where I&#38;rsquo;ve spent the better part of my life.&lt;/p&gt;
  1333.  
  1334. &lt;p&gt;Part of the tension is that these ideas probably aren&#38;rsquo;t so far wrong, so far as
  1335. they go.  It&#38;rsquo;s at least pretty clear that commuting in cars across vast
  1336. distances is destroying the world&lt;sup class=footnote&gt;1&lt;/sup&gt; as much as
  1337. anything, and the way I live my life &lt;em&gt;now&lt;/em&gt; scarcely generalizes to 7 billion
  1338. people, nevermind how I&#38;rsquo;d live it given a few more degrees of freedom.  I may
  1339. want &lt;em&gt;me&lt;/em&gt; to have a rambling compound on a couple of hundred acres in the
  1340. 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;
  1341.  
  1342. &lt;p&gt;I can understand the idea that the most good for the most humans is to be found
  1343. in thickly populated cityscapes, efficiencies of scale, and a rural
  1344. infrastructure reduced to some bare minimum for sparsely-crewed giant farmbots.
  1345. At any rate I&#38;rsquo;m sure the most good doesn&#38;rsquo;t look much like the vast
  1346. automotive sprawl coagulating all along the I-25 corridor just a few miles east
  1347. of here.&lt;/p&gt;
  1348.  
  1349. &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
  1350. the consensus of the various learned-and-wise and how I actually think and feel
  1351. about the shape of these questions.&lt;/p&gt;
  1352.  
  1353.  
  1354. &lt;p class=&#34;centerpiece&#34;&gt; ❉ &lt;/p&gt;
  1355.  
  1356. &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
  1357. ago&lt;/a&gt;: &#34;America is never ever going to stop running entirely on cars.  Not
  1358. until it kills us.  Not even when it becomes completely obvious even to
  1359. Republicans and retirees and farmers that it&#39;s killing us.  We just don&#39;t care.
  1360. We aren&#39;t even capable of imagining caring.  We are going to drive until there
  1361. is nothing left for driving to destroy, and then we are going to drive some
  1362. more.  The last American will die alone, huffing gasoline in the front seat of
  1363. a late-model Toyota the size of a city block in the center of a vast,
  1364. oil-stained pavement stretching from horizon to horizon.&#34;&lt;/p&gt;
  1365.  
  1366. &lt;p class=&#34;datelink&#34;&gt;
  1367. &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; /
  1368. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1369. &lt;a href=&#34;https://p1k3.com/2018/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  1370. &lt;a href=&#34;https://p1k3.com/2018/3/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt;
  1371. &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;
  1372.  
  1373. &lt;p&gt;It&#38;rsquo;s snowing, finally.  Single digits outside, according to the search engines,
  1374. which I have no reason to doubt too much.  The little indicator in my taskbar
  1375. says 3°F for Denver International Airport.  It was in the 50s yesterday, if not
  1376. warmer.  Tonight we came out of a show and brushed 3 or 4 inches of fresh dry
  1377. powder off the Jeep before we drove home on mostly-empty roads.&lt;/p&gt;
  1378.  
  1379.  
  1380. &lt;p class=&#34;datelink&#34;&gt;
  1381. &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; /
  1382. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1383. &lt;a href=&#34;https://p1k3.com/2018/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  1384. &lt;a href=&#34;https://p1k3.com/2018/2/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  1385. &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;
  1386.  
  1387. &lt;h2&gt;self hosting: as off of gmail as i&#39;m going to get&lt;/h2&gt;
  1388.  
  1389. &lt;p&gt;Previously:&lt;/p&gt;
  1390.  
  1391. &lt;ul&gt;
  1392. &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;
  1393. &lt;li&gt;&lt;a href=&#34;2018/1/17/&#34;&gt;self hosting, a status check&lt;/a&gt;&lt;/li&gt;
  1394. &lt;/ul&gt;
  1395.  
  1396.  
  1397. &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
  1398. strange because the whole idea that I might have a personal mail provider other
  1399. than Google, let alone that I&#38;rsquo;d be changing &lt;em&gt;from&lt;/em&gt; Gmail to something else, so
  1400. clearly belongs to the past.  The last time I can remember doing this was
  1401. during George W. Bush&#38;rsquo;s second term in office.&lt;/p&gt;
  1402.  
  1403. &lt;p&gt;Moving off of Gmail is an ongoing project, and probably will be for months or
  1404. years, but I&#38;rsquo;m mentally filing it as kinda done.  From here it&#38;rsquo;s just a matter
  1405. of unsubscribing from mailing lists and commercial spam, and changing login
  1406. credentials for several hundred accounts as it comes up.&lt;/p&gt;
  1407.  
  1408. &lt;p class=&#34;centerpiece&#34;&gt; ✮ &lt;/p&gt;
  1409.  
  1410.  
  1411. &lt;p&gt;An outline of my approach:&lt;/p&gt;
  1412.  
  1413. &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
  1414. &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
  1415. drive, and around 250000 messages.  This took hours and failed a few times
  1416. along the way to completion.  The vast majority of this mail should probably be
  1417. discarded, but this way I can do it at my leisure.&lt;/p&gt;
  1418.  
  1419. &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
  1420. allows for a fulltext search of messages from the commandline.  I&#38;rsquo;m not totally
  1421. sold on it, but it&#38;rsquo;s better than nothing.&lt;/p&gt;
  1422.  
  1423. &lt;p&gt;&lt;strong&gt;Delete all mail stored in Gmail.&lt;/strong&gt;  This took a couple of hours, because the
  1424. process is to select everything in All Mail, delete, get locked out of the
  1425. account for 5-10 minutes, and repeat until everything is gone.  It&#38;rsquo;s glitchy,
  1426. but it seems like on average you can delete about 10000 conversations at a
  1427. time.  &#38;ldquo;Delete&#38;rdquo; actually moves stuff to the trash, and you can then empty the
  1428. trash with a little dialog counting down how many messages are left to be
  1429. &lt;em&gt;actually&lt;/em&gt; deleted.  I&#38;rsquo;m pretty sure this all could have been scripted by way
  1430. of some API, but life is short and in this case some repetitive clicking was
  1431. easier than reading API docs for something I wish didn&#38;rsquo;t exist anyway.&lt;/p&gt;
  1432.  
  1433. &lt;p&gt;&lt;strong&gt;Delete all labels and all filters in Gmail.&lt;/strong&gt;  Filters can be exported as an
  1434. XML file in some kind of Atom-derived format, which I went ahead and did
  1435. because I figured having a master list of the labels would be useful later on
  1436. for search purposes.  There&#38;rsquo;s a way to select all filters and hit a button to
  1437. delete.  Deleting the labels could probably be scripted somehow or another, but
  1438. through the web interface it&#38;rsquo;s a matter of a bunch of horrible clicking.&lt;/p&gt;
  1439.  
  1440. &lt;p&gt;&lt;strong&gt;Configure Evolution as a primary client, pointed both at the old Gmail
  1441. account and the new Fastmail one.&lt;/strong&gt;  Evolution can be clunky, but it&#38;rsquo;s easy
  1442. enough to use and has features for stuff like calendaring and contact lists, so
  1443. I can use it to slowly pry that stuff out of Google&#38;rsquo;s clutches.  (Thanks,
  1444. people who make Evolution.  I may not be in your target &#38;ldquo;person who needs to
  1445. replace Outlook&#38;rdquo; demographic, but I truly appreciate your hard work all the
  1446. same.)&lt;/p&gt;
  1447.  
  1448. &lt;p&gt;I thought about just forwarding the Gmail address to the new one, but it seems
  1449. better to keep a clean separation between the two.  This way, incoming Gmail
  1450. can double as a to-do list for places I still need to update the address.&lt;/p&gt;
  1451.  
  1452. &lt;p class=&#34;centerpiece&#34;&gt; ✾ &lt;/p&gt;
  1453.  
  1454.  
  1455. &lt;p&gt;&lt;strong&gt;Addendum&lt;/strong&gt;: The build of Evolution I have installed (probably ancient,
  1456. because I&#38;rsquo;m on Debian stable) was displaying some weird behavior &#38;mdash; marking
  1457. stuff as Junk / moving to Spam folders and then making it impossible to mark
  1458. non-Junk or permanently move back to the Inbox.  It took me a while to realize
  1459. that there&#38;rsquo;s a built-in spam filter (Preferences &#38;rarr; Mail Preferences &#38;rarr;
  1460. Junk &#38;rarr; Check incoming messages for junk) that&#38;rsquo;s turned on by default and
  1461. gets a ton of false positives, at least without training.  Even when turned off,
  1462. I couldn&#38;rsquo;t seem to get those messages permanently out of the Spam folder, so
  1463. I decided to give Thunderbird a shot.&lt;/p&gt;
  1464.  
  1465. &lt;p&gt;Thunderbird &lt;em&gt;also&lt;/em&gt; has a builtin spam filter that has to be disabled on a
  1466. per-account basis (right click on an account &#38;rarr; Settings &#38;rarr; Junk
  1467. Settings &#38;rarr; Enable adaptive junk mail controls for this account).  It
  1468. otherwise feels less flaky than Evolution, and glitches less over IMAP for me,
  1469. though it will occasionally hang for a while on large folders.&lt;/p&gt;
  1470.  
  1471. &lt;p&gt;In general, I feel like the state of desktop GUI e-mail clients is less than
  1472. 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;
  1473.  
  1474. &lt;p class=&#34;centerpiece&#34;&gt; ☆ &lt;/p&gt;
  1475.  
  1476.  
  1477. &lt;p&gt;I should fill out the above with specific configuration details for some stuff,
  1478. but I wanted to get some notes down while I was thinking about it.&lt;/p&gt;
  1479.  
  1480.  
  1481. &lt;p class=&#34;datelink&#34;&gt;
  1482. &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; /
  1483. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1484. &lt;a href=&#34;https://p1k3.com/2018/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  1485. &lt;a href=&#34;https://p1k3.com/2018/2/18/&#34; title=&#34;18&#34;&gt;18&lt;/a&gt;
  1486. &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;
  1487.  
  1488. &lt;div class=photos&gt;
  1489. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7737_bw.JPG&#34;&gt;
  1490.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7737_bw.JPG&#34; width=&#34;200&#34;&gt;
  1491. &lt;/a&gt;
  1492. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7772.JPG&#34;&gt;
  1493.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7772.JPG&#34; width=&#34;200&#34;&gt;
  1494. &lt;/a&gt;
  1495. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7792.JPG&#34;&gt;
  1496.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7792.JPG&#34; width=&#34;200&#34;&gt;
  1497. &lt;/a&gt;
  1498. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7835.JPG&#34;&gt;
  1499.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7835.JPG&#34; width=&#34;200&#34;&gt;
  1500. &lt;/a&gt;
  1501. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7851.JPG&#34;&gt;
  1502.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7851.JPG&#34; width=&#34;200&#34;&gt;
  1503. &lt;/a&gt;
  1504. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7862.JPG&#34;&gt;
  1505.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7862.JPG&#34; width=&#34;200&#34;&gt;
  1506. &lt;/a&gt;
  1507. &lt;a href=&#34;/files/photos/./2018-02-10/IMG_7894.JPG&#34;&gt;
  1508.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2018-02-10/Thumbs/IMG_7894.JPG&#34; width=&#34;200&#34;&gt;
  1509. &lt;/a&gt;
  1510. &lt;/div&gt;
  1511.  
  1512. &lt;p class=&#34;datelink&#34;&gt;
  1513. &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; /
  1514. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1515. &lt;a href=&#34;https://p1k3.com/2018/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  1516. &lt;a href=&#34;https://p1k3.com/2018/2/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt;
  1517. &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;
  1518.  
  1519. &lt;h2&gt;App::WRT v4.2.2&lt;/h2&gt;
  1520.  
  1521. &lt;p&gt;This is a minor release of wrt, the site generator I use for p1k3 and finally
  1522. got around to publishing on CPAN &lt;a href=&#34;/2017/11/18/&#34;&gt;back in November&lt;/a&gt;.&lt;/p&gt;
  1523.  
  1524. &lt;ul&gt;
  1525. &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;
  1526. &lt;li&gt;&lt;a href=&#34;https://github.com/brennen/wrt&#34;&gt;wrt on GitHub&lt;/a&gt;&lt;/li&gt;
  1527. &lt;/ul&gt;
  1528.  
  1529.  
  1530. &lt;p&gt;This version tweaks configuration defaults for root URL, removes links to years
  1531. from the top navigation bar, and fixes a bug with the &lt;code&gt;--config&lt;/code&gt; option to &lt;code&gt;wrt
  1532. render-all&lt;/code&gt; and &lt;code&gt;wrt display&lt;/code&gt;.  It should now work to specify a separate
  1533. configuration file.&lt;/p&gt;
  1534.  
  1535. &lt;p&gt;(I worked on this today because I wanted to be able to generate a preview
  1536. 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
  1537. that it was easiest to write a separate configuration file.)&lt;/p&gt;
  1538.  
  1539.  
  1540. &lt;p class=&#34;datelink&#34;&gt;
  1541. &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; /
  1542. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1543. &lt;a href=&#34;https://p1k3.com/2018/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  1544. &lt;a href=&#34;https://p1k3.com/2018/2/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt;
  1545. &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;
  1546.  
  1547. &lt;h2&gt;reading: a wizard of earthsea&lt;/h2&gt;
  1548.  
  1549. &lt;p&gt;I started this once some years back, but I didn&#38;rsquo;t get very far.  Then my sister
  1550. gave me the first three Earthsea books for Christmas, and on the 22nd of this
  1551. month Ursula K. Le Guin died.  When I heard, I sat at my kitchen table and
  1552. cried, and then got out my copy of &lt;em&gt;The Dispossessed&lt;/em&gt; and thumbed through it
  1553. for an hour.  Eventually I decided to pick up &lt;em&gt;Wizard&lt;/em&gt;, and finished it in a
  1554. handful of sittings.&lt;/p&gt;
  1555.  
  1556. &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
  1557. I still had ahead of me at 36.  Its closest parallel in anything I&#38;rsquo;ve read is
  1558. probably Lloyd Alexander&#38;rsquo;s &lt;em&gt;Chronicles of Prydain&lt;/em&gt;, which I mean as high
  1559. praise.&lt;/p&gt;
  1560.  
  1561. &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
  1562. most a quarter of her published material.  I don&#38;rsquo;t think it all works for me,
  1563. but there&#38;rsquo;s a lot more of it I intend to pick up.&lt;/p&gt;
  1564.  
  1565.  
  1566. &lt;p class=&#34;datelink&#34;&gt;
  1567. &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; /
  1568. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1569. &lt;a href=&#34;https://p1k3.com/2018/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  1570. &lt;a href=&#34;https://p1k3.com/2018/1/29/&#34; title=&#34;29&#34;&gt;29&lt;/a&gt;
  1571. &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;
  1572.  
  1573. &lt;h2&gt;reading: master and commander&lt;/h2&gt;
  1574.  
  1575. &lt;p&gt;By Patrick O&#39;Brian.  No longer remember how this landed on my shelf, but it&#38;rsquo;s
  1576. 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;
  1577.  
  1578. &lt;blockquote&gt;&lt;p&gt;The novel is set at the turn of the 19th century. It follows the young Jack
  1579. Aubrey who has just been promoted to the rank of Master and Commander, and
  1580. Stephen Maturin, a destitute physician and naturalist whom Aubrey appoints as
  1581. his naval surgeon. They sail in HM Sloop of War &lt;em&gt;Sophie&lt;/em&gt; with first lieutenant
  1582. James Dillon, a wealthy and aristocratic Irishman. …&lt;/p&gt;
  1583.  
  1584. &lt;p&gt;&lt;em&gt;Master and Commander&lt;/em&gt; met with mixed early reviews on its first publication.
  1585. Although UK sales were respectable enough for O&#39;Brian to continue with his
  1586. series, it was not initially a success in the US. In Britain and Ireland,
  1587. however, voices of praise gradually became dominant. In 1990, the US publisher
  1588. W. W. Norton re-issued the book and its sequels; this was an almost immediate
  1589. success and drew O&#39;Brian a new, large readership. O&#39;Brian&#38;rsquo;s biographer has
  1590. placed the novel at the start of what he called the author&#38;rsquo;s magnum opus, a
  1591. series that has become perhaps the best-loved &lt;em&gt;roman fleuves&lt;/em&gt; of the twentieth
  1592. century.&lt;/p&gt;&lt;/blockquote&gt;
  1593.  
  1594. &lt;p&gt;This is the first in a giant series of books about dudes doing stuff on wooden
  1595. ships with lots of sails and rigging, the complexities of which I am never
  1596. going to grasp even slightly.  There is just an &lt;em&gt;unreal&lt;/em&gt; amount of technical
  1597. exposition about sails and sailing stuff.  It&#38;rsquo;d probably be equally correct to
  1598. say that it&#38;rsquo;s about the sailing stuff or to say that it&#38;rsquo;s about Jack and
  1599. Stephen being friends while everything is all complicatedly mannered, colonial,
  1600. and riddled with fucked-up relations of power.&lt;/p&gt;
  1601.  
  1602. &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
  1603. of the series, but I enjoyed this one and I think I can see why people love
  1604. them so much.&lt;/p&gt;
  1605.  
  1606.  
  1607. &lt;p class=&#34;datelink&#34;&gt;
  1608. &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; /
  1609. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1610. &lt;a href=&#34;https://p1k3.com/2018/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  1611. &lt;a href=&#34;https://p1k3.com/2018/1/18/&#34; title=&#34;18&#34;&gt;18&lt;/a&gt;
  1612. &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;
  1613.  
  1614. &lt;h2&gt;self-hosting, a status check&lt;/h2&gt;
  1615.  
  1616. &lt;p&gt;Following up on &lt;a href=&#34;/2017/11/29&#34;&gt;self-hosting, cloud disentanglement, windmill tilting,
  1617. etc.&lt;/a&gt;, a brief summary of progress:&lt;/p&gt;
  1618.  
  1619. &lt;h3&gt;mail&lt;/h3&gt;
  1620.  
  1621. &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
  1622. anyway.  (Actually it&#38;rsquo;s an old address - one I used more than a decade ago and
  1623. should have retained instead of being lured in by GMail&#38;rsquo;s gleaming surface.)  I
  1624. could wish for more open code and more encryption in the mix, but they seem
  1625. well-managed and offer some useful features without obviously breaking the
  1626. ecosystem in any way I&#38;rsquo;ve noticed yet.&lt;/p&gt;
  1627.  
  1628. &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
  1629. still in GMail.  I think at some point this will become purely archival and
  1630. I&#38;rsquo;ll delete everything stored in GMail and just treat that address as one
  1631. regular account in whatever client I&#38;rsquo;m using at the time.  Realistically, I can
  1632. probably never actually kill the account, because even if I make an effort to
  1633. change the address on every account I have elsewhere, I&#38;rsquo;ll miss something that
  1634. will turn out to be vital.&lt;/p&gt;
  1635.  
  1636. &lt;p&gt;The desktop e-mail client situation is dire, but not impossible.  There&#38;rsquo;s a
  1637. 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
  1638. probably use it again.  I could also probably just use Thunderbird, Evolution,
  1639. or some other mediocre but stable holdover from the era when native GUI desktop
  1640. client applications were still a thing.&lt;/p&gt;
  1641.  
  1642. &lt;p&gt;In summary, this is a giant pain in the ass and I hate it, but I&#38;rsquo;m probably 20%
  1643. of the way there.  I hope to document my setup when it settles down into
  1644. something coherent.&lt;/p&gt;
  1645.  
  1646. &lt;h3&gt;phone service / mobile os, apps, etc.&lt;/h3&gt;
  1647.  
  1648. &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
  1649. will theoretically boot into a real Debian.  This is a gamble, and will
  1650. &lt;em&gt;likely&lt;/em&gt; amount to having thrown away the price of a new phone, but it does
  1651. potentially represent a step in the right direction.  If nothing else, spending
  1652. the money is another signal to the market that I am still interested in
  1653. keyboards and would like a device that does what this one is &lt;em&gt;supposed&lt;/em&gt; to.&lt;/p&gt;
  1654.  
  1655. &lt;p&gt;Eventually, perhaps someone will decide that there are enough idiosyncratic
  1656. fanatics like me to sell us useful goods.&lt;/p&gt;
  1657.  
  1658. &lt;h3&gt;e-books&lt;/h3&gt;
  1659.  
  1660. &lt;p&gt;I canceled my Amazon Prime account today; a futile but mildly satisfying
  1661. gesture.&lt;/p&gt;
  1662.  
  1663. &lt;p&gt;So far every book I&#38;rsquo;ve read in 2018 has been on paper.  Which is probably my
  1664. best solution for as long as they&#38;rsquo;re still printing paper books.&lt;/p&gt;
  1665.  
  1666. &lt;h3&gt;laptop and desktop hardware&lt;/h3&gt;
  1667.  
  1668. &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
  1669. even more unfathomably fucked than I thought it was a couple of months ago.
  1670. Solutions are in very short supply.&lt;/p&gt;
  1671.  
  1672.  
  1673. &lt;p class=&#34;datelink&#34;&gt;
  1674. &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; /
  1675. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1676. &lt;a href=&#34;https://p1k3.com/2018/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  1677. &lt;a href=&#34;https://p1k3.com/2018/1/17/&#34; title=&#34;17&#34;&gt;17&lt;/a&gt;
  1678. &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;
  1679.  
  1680. &lt;h2&gt;reading: smilla&#39;s sense of snow&lt;/h2&gt;
  1681.  
  1682. &lt;p&gt;Peter Høeg, translated by Tiina Nunnally.  Murder mystery / thriller of sorts,
  1683. set in Copenhagen and the arctic.  I forgot to bring reading material for a
  1684. flight, and when I saw this in the airport bookstore I remembered that I liked
  1685. the movie.  (IMDB says: 1997, Julie Ormond, Gabriel Byrne, Richard Harris.  I
  1686. seem to have &lt;a href=&#34;/1999/4/18&#34;&gt;watched it in 1999&lt;/a&gt;.)&lt;/p&gt;
  1687.  
  1688. &lt;p&gt;This is a translation from Danish.  The author&#38;rsquo;s Danish; his protagonist is
  1689. half Danish and half Inuit from Greenland.  I wonder what a native Greenlander
  1690. 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
  1691. Native American&lt;/a&gt; thing going on with Smilla.&lt;/p&gt;
  1692.  
  1693. &lt;p&gt;It&#38;rsquo;s also got one of those plots that strains suspension of disbelief just past
  1694. the breaking point half a dozen times, and it has probably a hundred more pages
  1695. than it needs.  All that said, it was an engrossing read.&lt;/p&gt;
  1696.  
  1697.  
  1698. &lt;p class=&#34;datelink&#34;&gt;
  1699. &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; /
  1700. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1701. &lt;a href=&#34;https://p1k3.com/2018/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  1702. &lt;a href=&#34;https://p1k3.com/2018/1/16/&#34; title=&#34;16&#34;&gt;16&lt;/a&gt;
  1703. &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;
  1704.  
  1705. &lt;h2&gt;speculative execution&lt;/h2&gt;
  1706.  
  1707. &lt;p&gt;walking across the highway, the wire&lt;br /&gt;
  1708. silhouettes of the deactived holiday lights&lt;br /&gt;
  1709. sketched beneath the streetlamps&lt;br /&gt;
  1710. the cars don&#39;t stop at the crosswalks this time&lt;br /&gt;
  1711. you get lucky once in a while but you wouldn&#39;t&lt;br /&gt;
  1712. want to push it too hard&lt;/p&gt;
  1713.  
  1714. &lt;p&gt;it was a long weird day in computerland, all&lt;br /&gt;
  1715. echoing with the sense that the machinery we&#39;ve&lt;br /&gt;
  1716. built a civilization on is rotten somewhere near&lt;br /&gt;
  1717. the core, close to the foundations&lt;/p&gt;
  1718.  
  1719. &lt;p&gt;the machinery electrical and economic all at once&lt;br /&gt;
  1720. the logic of silicon and software;&lt;br /&gt;
  1721. the logic of expansion, enclosure, and control;&lt;br /&gt;
  1722. the systems and the systems they&#39;re made of&lt;/p&gt;
  1723.  
  1724. &lt;p&gt;it&#39;ll pass - it&#39;ll recede into the daily cycle&lt;br /&gt;
  1725. in a year it will be hard to remember the specifics&lt;br /&gt;
  1726. of today&#39;s failure; the next one may be worse,&lt;br /&gt;
  1727. and anyway the last dozen mistakes and betrayals in this&lt;br /&gt;
  1728. endless series have collapsed into one another so quickly&lt;br /&gt;
  1729. that they defy narrative&lt;/p&gt;
  1730.  
  1731. &lt;p&gt;but there&#39;s something cumulative here.&lt;br /&gt;
  1732. something is clearer now, to some of us.&lt;/p&gt;
  1733.  
  1734. &lt;p class=&#34;datelink&#34;&gt;
  1735. &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; /
  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/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  1738. &lt;a href=&#34;https://p1k3.com/2018/1/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt;
  1739. &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;
  1740.  
  1741. &lt;h2&gt;reading in 2017&lt;/h2&gt;
  1742.  
  1743. &lt;p&gt;Trying to remember: What did I actually read in the last year?&lt;/p&gt;
  1744.  
  1745. &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;,
  1746. by Sam Munson, and &lt;em&gt;Pansy&lt;/em&gt;, by Andrea Gibson, because I wrote about it here.&lt;/p&gt;
  1747.  
  1748. &lt;p&gt;In April I started and failed to get anywhere with &lt;em&gt;The Icon Thief&lt;/em&gt;, by Alec
  1749. Nevala-Lee, whose &lt;a href=&#34;https://nevalalee.wordpress.com/&#34;&gt;blog writing&lt;/a&gt; on topics like golden age SF,
  1750. filmmaking, and the craft of writing is consistently excellent (and sort of
  1751. bogglingly prolific).  &lt;em&gt;The Icon Thief&lt;/em&gt; didn&#38;rsquo;t really grab me, but I should buy
  1752. more of Nevala-Lee&#38;rsquo;s books anyway because he&#38;rsquo;s one of the best things in my
  1753. feedreader most weeks.  (And I&#38;rsquo;m really looking forward to his upcoming
  1754. &lt;em&gt;Astounding: John W.  Campbell, Isaac Asimov, Robert A. Heinlein, L.  Ron
  1755. Hubbard, and the Golden Age of Science Fiction&lt;/em&gt;.)&lt;/p&gt;
  1756.  
  1757. &lt;p&gt;In May I bought a Kindle copy of &lt;em&gt;Twitter and Tear Gas: The Power and Fragility
  1758. of Networked Protest&lt;/em&gt;, by Zeynep Tufekci.  I think I managed about 20%, not so
  1759. much because it&#38;rsquo;s bad (it&#38;rsquo;s not, and Tufekci is a writer and thinker worth
  1760. listening to) as because I spent so much time this year thinking about networks
  1761. and network dysfunction that the whole topic had already become paralyzing and
  1762. spiral-of-despair-inducing by the time I started the book.&lt;/p&gt;
  1763.  
  1764. &lt;p&gt;Also in May I started gradually re-reading chunks of the Bible (mostly the New
  1765. Testament and mostly in the NRSV).&lt;/p&gt;
  1766.  
  1767. &lt;p&gt;I remember buying &lt;em&gt;Dark Canyon&lt;/em&gt;, a middling Louis L&#39;Amour novel about
  1768. bankrobbers making good, at a truckstop on the way to a festival in June.&lt;/p&gt;
  1769.  
  1770. &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
  1771. the laundromat and read it in a sitting or two.  It&#38;rsquo;s a Jesse Stone novel, so
  1772. it&#38;rsquo;s outside of the Spenser narrative (though I seem to remember it&#38;rsquo;s clearly
  1773. set in the Spenser-verse).  Thinking about it now, I feel like I might as well
  1774. go back and read the rest of Parker&#38;rsquo;s other series.  None of it&#38;rsquo;s up to the
  1775. standard of the early Spenser material, and some of it is frankly pretty
  1776. terrible, but whatever.  There&#38;rsquo;s no shame in the comforts of familiar pulpy
  1777. genre series intake.&lt;/p&gt;
  1778.  
  1779. &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
  1780. the summer, but it&#38;rsquo;s a clean enough trade paperback (the Penguin one with Gary
  1781. Oldman&#38;rsquo;s face from the 2011ish movie on the cover) that I might have bought it
  1782. new at a bookstore.  I liked it more than I expected, and want to read more Le
  1783. Carré.  Something about the sort of weirdly restrained, jargon-laden procedural
  1784. dryness of it was really appealing.&lt;/p&gt;
  1785.  
  1786. &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
  1787. &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
  1788. Kindle.  I liked many of the same things about it that I liked about the
  1789. earlier novels, though the scale felt smaller and less consequential.&lt;/p&gt;
  1790.  
  1791. &lt;p&gt;Somewhere in the fall I got &lt;em&gt;Days Without End&lt;/em&gt;, by Sebastian Barry, and made it
  1792. something like a hundred pages in before losing the will to continue.  The
  1793. language was well-handled, and there were striking images, but the poetically
  1794. vivid genocide and so forth weren&#38;rsquo;t something I really needed.  Maybe it&#38;rsquo;s just
  1795. that I&#38;rsquo;ve already read too much Cormac McCarthy and don&#38;rsquo;t really need any more
  1796. of a certain mode of western.&lt;/p&gt;
  1797.  
  1798. &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
  1799. years now, and finally started skimming through it.  It&#38;rsquo;s a collection of
  1800. historical sketches on topics like the Great Blizzard of 1888, the founding of
  1801. Omaha, William Jennings Bryan, and so forth.  Kind of dry, but it&#38;rsquo;s got a good
  1802. level of detail for the kind of thing that it is, and the writing is clear.
  1803. It&#38;rsquo;s good for the 10 or 15 minutes before sleep when I want something that
  1804. feels educational without being so interesting that it keeps me awake.&lt;/p&gt;
  1805.  
  1806. &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;
  1807.  
  1808. &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
  1809. thrift store.  So far I haven&#38;rsquo;t made it much further than the introduction, and
  1810. I begin to suspect I probably won&#38;rsquo;t.  It feels like the kind of thing that
  1811. works best as intellectual background radiation for a book like &lt;em&gt;The Shockwave
  1812. Rider&lt;/em&gt;.&lt;/p&gt;
  1813.  
  1814. &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
  1815. I even read them.  (It&#38;rsquo;s a good publication, doing good journalism.  I just
  1816. re-upped my subscription.)&lt;/p&gt;
  1817.  
  1818. &lt;p class=&#34;centerpiece&#34;&gt; ☼ &lt;/p&gt;
  1819.  
  1820.  
  1821. &lt;p&gt;What else?  There must have been some programming books and random excursions
  1822. into poetry or reference material.  I know I&#38;rsquo;m forgetting a few things.  But
  1823. the above list is basically it, except for the internet.&lt;/p&gt;
  1824.  
  1825. &lt;p&gt;Because really what I read in 2017, in most of the last several years, was the
  1826. internet.  Not even, in any real sense that registers, individual documents
  1827. hosted on the network, or the work of authors I can clearly identify.  Just
  1828. the endless scroll.&lt;/p&gt;
  1829.  
  1830. &lt;p&gt;The internet:  A tide of incoherent technical documentation, error logs,
  1831. seething sociopolitical rage, ideological agitation and condemnation (somewhere
  1832. between authentic and engineered/rehearsed, on some spectrum it is no longer
  1833. possible for me to easily parse), clickbait, reaction, comment vitriol,
  1834. disinformation, machine-generated pseudojournalism, notification spam,
  1835. marketing, infographical non-info, hot-take product, autoplaying video, and
  1836. generalized memetic spew.&lt;/p&gt;
  1837.  
  1838. &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
  1839. whole.  It&#38;rsquo;s also the year I tried hardest to look away, found it most
  1840. necessary for my own mental health to avoid what the internet has become,
  1841. watched my friends and family experience the same.  And with all that, it&#38;rsquo;s
  1842. also the year the internet most thoroughly consumed my relationship to words.&lt;/p&gt;
  1843.  
  1844. &lt;p&gt;It feels like that&#38;rsquo;s an index to something.&lt;/p&gt;
  1845.  
  1846.  
  1847. &lt;p class=&#34;datelink&#34;&gt;
  1848. &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; /
  1849. &lt;a href=&#34;https://p1k3.com/2018/&#34; title=&#34;2018&#34;&gt;2018&lt;/a&gt; /
  1850. &lt;a href=&#34;https://p1k3.com/2018/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  1851. &lt;a href=&#34;https://p1k3.com/2018/1/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt;
  1852. &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;
  1853.  
  1854. &lt;p&gt;I woke up this morning from a vivid dream of blinding flashes and looming
  1855. mushroom clouds on the horizon, in which I&#38;rsquo;d been screaming at my family to
  1856. get in the basement before a blast wave hit.&lt;/p&gt;
  1857.  
  1858.  
  1859. &lt;p class=&#34;datelink&#34;&gt;
  1860. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  1861. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  1862. &lt;a href=&#34;https://p1k3.com/2017/12/&#34; title=&#34;12&#34;&gt;12&lt;/a&gt; /
  1863. &lt;a href=&#34;https://p1k3.com/2017/12/7/&#34; title=&#34;7&#34;&gt;7&lt;/a&gt;
  1864. &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;
  1865.  
  1866. &lt;h2&gt;self-hosting, cloud disentanglement, windmill tilting, etc.&lt;/h2&gt;
  1867.  
  1868. &lt;p&gt;So my computational life is kind of a mess, and also is more locked-in to
  1869. services provided by third-party corporations (subtype: gigantic, evil) than
  1870. I&#38;rsquo;d like.  I&#38;rsquo;ve spent years promising myself I&#38;rsquo;d become less dependent on the
  1871. megacorps, but I&#38;rsquo;m still beholden to Google and a pack of others.&lt;/p&gt;
  1872.  
  1873. &lt;p&gt;I&#38;rsquo;ve decided that late 2017 is as good a time as any to start working on this
  1874. problem in earnest.&lt;/p&gt;
  1875.  
  1876. &lt;p&gt;This is the kind of list that I&#38;rsquo;d normally write on a piece of paper with
  1877. checkboxes, but I may as well document it here in case it&#38;rsquo;s useful to anyone
  1878. else.&lt;/p&gt;
  1879.  
  1880. &lt;p class=&#34;centerpiece&#34;&gt; ✯ &lt;/p&gt;
  1881.  
  1882.  
  1883. &lt;p&gt;These are the systems I&#38;rsquo;m concerned with:&lt;/p&gt;
  1884.  
  1885. &lt;h3&gt;mail&lt;/h3&gt;
  1886.  
  1887. &lt;p&gt;I&#38;rsquo;ve been on GMail since August of 2004 (I had to check this), when it was
  1888. still an invite-your-friends service working to build clout by starting with
  1889. nerds.  I have about 9 gigs worth of archives; by volume most of that is
  1890. probably mailing lists, notifications, and other machine-driven noise, but
  1891. there&#38;rsquo;s plenty I&#38;rsquo;d like to retain.  Right now I plan to keep this locally in
  1892. &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;
  1893.  
  1894. &lt;p&gt;There&#38;rsquo;s also the basic problem of all the other identities that get attached to
  1895. an e-mail address in the course of &lt;em&gt;thirteen years&lt;/em&gt; of heavy use.  I can&#38;rsquo;t
  1896. afford to delete the account in the short term, but I guess I can forward
  1897. everything and spend months chipping away at all the stuff tied to it.&lt;/p&gt;
  1898.  
  1899. &lt;p&gt;Difficulty: Unpleasant, repetitive, but well understood and achievable.&lt;/p&gt;
  1900.  
  1901. &lt;h3&gt;phone service&lt;/h3&gt;
  1902.  
  1903. &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
  1904. it&#38;rsquo;s possible to pry it out of the clutches of Verizon, but I&#38;rsquo;d like to.  Even
  1905. if that&#38;rsquo;s not possible, things I want Verizon to lose include:&lt;/p&gt;
  1906.  
  1907. &lt;ul&gt;
  1908. &lt;li&gt;constant knowledge of my location&lt;/li&gt;
  1909. &lt;li&gt;control over the OS and installed applications on my phone&lt;/li&gt;
  1910. &lt;li&gt;interception of most of my data traffic&lt;/li&gt;
  1911. &lt;/ul&gt;
  1912.  
  1913.  
  1914. &lt;p&gt;I&#38;rsquo;m aware that any connection to the phone network will involve an unsavory
  1915. corporate provider &#38;mdash; I just have a special and particular contempt for
  1916. Verizon, built on years of acquaintance.&lt;/p&gt;
  1917.  
  1918. &lt;p&gt;Difficulty: Heroic levels of cat vacuuming, probably.&lt;/p&gt;
  1919.  
  1920. &lt;h3&gt;mobile os, apps, etc.&lt;/h3&gt;
  1921.  
  1922. &lt;p&gt;I use an Android device.  At its best, Android is a pretty reasonable user
  1923. experience, but it&#38;rsquo;s full of tracky shit and increasingly pushy about
  1924. integrating itself with the broader panopticon.  Every time my phone asks me to
  1925. review and post photos of some random gas station off of I-25, or encourages to
  1926. me to read a news story &#38;ldquo;based on your interest in Donald Trump&#38;rdquo;, I feel
  1927. incrementally more alienation and loathing for everything our technical culture
  1928. has become.&lt;/p&gt;
  1929.  
  1930. &lt;p&gt;Since alienation and loathing are no fun, I would like to stop using Android
  1931. (preferably without switching to iOS).&lt;/p&gt;
  1932.  
  1933. &lt;p&gt;Difficulty: See above, re: cat vacuuming.  If this is achievable, it&#38;rsquo;s probably
  1934. in part by splitting the functions of a phone out into a couple of devices and
  1935. just abandoning others.&lt;/p&gt;
  1936.  
  1937. &lt;h3&gt;e-books&lt;/h3&gt;
  1938.  
  1939. &lt;p&gt;I&#38;rsquo;m on my third or fourth Kindle, the e-ink kind.  It&#38;rsquo;s convenient enough, but
  1940. Amazon is doing its best to eat everything (including the publishing industry),
  1941. and I would like to contribute less energy to their efforts.  Plus I&#38;rsquo;m pretty
  1942. sure future iterations of any Amazon device will eventually include an
  1943. always-on microphone, and I am not interested.&lt;/p&gt;
  1944.  
  1945. &lt;p&gt;Difficulty: I &lt;em&gt;think&lt;/em&gt; there&#38;rsquo;s other hardware out there, and other marketplaces
  1946. for e-books.  Also, paper mostly still has better ergonomics, aside from weight
  1947. and bulk.  But then most of my book reading happens in an easy chair or a
  1948. bathtub, not on an airplane.&lt;/p&gt;
  1949.  
  1950. &lt;h3&gt;laptop and desktop hardware&lt;/h3&gt;
  1951.  
  1952. &lt;p&gt;Some set of world-historically stupid assholes at Intel decided that it would
  1953. 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
  1954. end-user control&lt;/a&gt; on most of the chipsets they&#38;rsquo;ve sold for the last
  1955. decade, so it&#38;rsquo;s even less possible than naive paranoia would suggest to trust
  1956. the hardware I own.&lt;/p&gt;
  1957.  
  1958. &lt;p&gt;Difficulty: Fucked.  I can do quite a bit using relatively open single-board
  1959. ARM machines like the Beaglebone or the Novena, but I can&#38;rsquo;t easily escape
  1960. from the need for a system robust enough to run a bunch of modern web apps.&lt;/p&gt;
  1961.  
  1962. &lt;p class=&#34;centerpiece&#34;&gt; ✣ &lt;/p&gt;
  1963.  
  1964.  
  1965. &lt;p&gt;Further notes to come as I tackle these.&lt;/p&gt;
  1966.  
  1967.  
  1968. &lt;p class=&#34;datelink&#34;&gt;
  1969. &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; /
  1970. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  1971. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  1972. &lt;a href=&#34;https://p1k3.com/2017/11/29/&#34; title=&#34;29&#34;&gt;29&lt;/a&gt;
  1973. &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;
  1974.  
  1975. &lt;p&gt;it helps (maybe it&#39;s a need)&lt;br /&gt;
  1976. to find a place to look outward&lt;br /&gt;
  1977. from, to center&lt;br /&gt;
  1978. a self and order all the&lt;br /&gt;
  1979. pieces of things&lt;/p&gt;
  1980.  
  1981. &lt;p&gt;if a mind is a kind of loop&lt;br /&gt;
  1982. operating on itself, feeding&lt;br /&gt;
  1983. back and amplifying&lt;br /&gt;
  1984. it helps to find some kind&lt;br /&gt;
  1985. of standing wave, some&lt;br /&gt;
  1986. place within the loop to lift above&lt;br /&gt;
  1987. the constant motion&lt;br /&gt;
  1988. some arising approximation of a steady state&lt;br /&gt;
  1989. in all the relentless becoming&lt;/p&gt;
  1990.  
  1991. &lt;p&gt;i had these thoughts sitting&lt;br /&gt;
  1992. on the floor in front of a&lt;br /&gt;
  1993. bookshelf in my bedroom,&lt;br /&gt;
  1994. looking down the spines&lt;br /&gt;
  1995. of the books&lt;/p&gt;
  1996.  
  1997. &lt;p&gt;and touching the&lt;br /&gt;
  1998. covers and pages&lt;br /&gt;
  1999. feeling a certain calm&lt;br /&gt;
  2000. that&#39;s hard for me to reach&lt;br /&gt;
  2001. most of these days&lt;/p&gt;
  2002.  
  2003. &lt;p&gt;and now i think about the sacraments&lt;br /&gt;
  2004. and the scriptures,&lt;br /&gt;
  2005. star trek reruns on netflix,&lt;br /&gt;
  2006. the biting wind across the fields at home,&lt;br /&gt;
  2007. and all of you.&lt;/p&gt;
  2008.  
  2009. &lt;p class=&#34;datelink&#34;&gt;
  2010. &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; /
  2011. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2012. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2013. &lt;a href=&#34;https://p1k3.com/2017/11/28/&#34; title=&#34;28&#34;&gt;28&lt;/a&gt;
  2014. &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;
  2015.  
  2016. &lt;p&gt;It&#38;rsquo;s the first Monday after a long weekend, which at this stage of history is a
  2017. reminder that there aren&#38;rsquo;t many good reasons for weekends to be short.&lt;/p&gt;
  2018.  
  2019.  
  2020. &lt;p class=&#34;datelink&#34;&gt;
  2021. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  2022. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2023. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2024. &lt;a href=&#34;https://p1k3.com/2017/11/27/&#34; title=&#34;27&#34;&gt;27&lt;/a&gt;
  2025. &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;
  2026.  
  2027. &lt;h2&gt;reading: stories of your life and others&lt;/h2&gt;
  2028.  
  2029. &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
  2030. &lt;em&gt;Stories of Your Life and Others&lt;/em&gt;, which contains the short piece it&#38;rsquo;s based
  2031. on.&lt;/p&gt;
  2032.  
  2033. &lt;p&gt;I&#38;rsquo;m a bit over halfway through the volume.  It&#38;rsquo;s good stuff.  A reminder of
  2034. how much I used to enjoy short SF.&lt;/p&gt;
  2035.  
  2036.  
  2037. &lt;p class=&#34;datelink&#34;&gt;
  2038. &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; /
  2039. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2040. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2041. &lt;a href=&#34;https://p1k3.com/2017/11/24/&#34; title=&#34;24&#34;&gt;24&lt;/a&gt;
  2042. &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;
  2043.  
  2044. &lt;h2&gt;App::WRT - WRiting Tool, a static site generator and related utilities&lt;/h2&gt;
  2045.  
  2046. &lt;p&gt;Probably a decade after the first time I put it on a TODO list, I finally got
  2047. 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
  2048. 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;,
  2049. and then &lt;code&gt;Display.pm&lt;/code&gt; when I turned it into (sort of) a library.&lt;/p&gt;
  2050.  
  2051. &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
  2052. on every page request to a site generator that would render the entire site to
  2053. static HTML files.  That July, after &lt;a href=&#34;/2016/7/11&#34;&gt;agonizing about&lt;/a&gt;
  2054. good command names not already taken by real software, I switched the
  2055. 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
  2056. &lt;b&gt;t&lt;/b&gt;ool.  CPAN naming guidelines suggest putting this sort of thing in the
  2057. App namespace, so that&#38;rsquo;s what I did.&lt;/p&gt;
  2058.  
  2059. &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
  2060. libraries, utilities, and documentation in Perl.  Which is to say that it&#38;rsquo;s
  2061. Perl&#38;rsquo;s answer to npm, Packagist, RubyGems, PyPI, etc.  (It would probably be
  2062. more accurate to say those things are other languages&#39; answer to CPAN, since
  2063. CPAN dates to the mid-1990s.)&lt;/p&gt;
  2064.  
  2065. &lt;p&gt;I&#38;rsquo;ve generally had a bad experience with language-specific package management
  2066. systems, but after all these years CPAN remains an exception, for all of its
  2067. foibles.  &lt;em&gt;Publishing&lt;/em&gt; a release to CPAN turns out to be a very 1990s / early
  2068. 2000s kind of experience, with a wait to see results and a generally piecemeal
  2069. feeling.  It suffers by comparison to the &#38;ldquo;push a git tag to the remote&#38;rdquo;
  2070. approach to creating a &#38;ldquo;release&#38;rdquo; on GitHub.  On the other hand, it pushed me to
  2071. make a bunch of improvements to the documentation and fill out a handful of the
  2072. features that &lt;code&gt;wrt&lt;/code&gt; needs to be usable as a standalone tool.&lt;/p&gt;
  2073.  
  2074. &lt;p class=&#34;centerpiece&#34;&gt; 🌲 &lt;/p&gt;
  2075.  
  2076.  
  2077. &lt;p&gt;I know no one else will ever use this thing.  In case you did want to,
  2078. installing on most GNU/Linux systems &lt;em&gt;should&lt;/em&gt; be as simple as running:&lt;/p&gt;
  2079.  
  2080. &lt;pre&gt;&lt;code&gt;$ sudo cpan -i App::WRT
  2081. &lt;/code&gt;&lt;/pre&gt;
  2082.  
  2083. &lt;p&gt;Or, if you happen to have &lt;code&gt;cpanm&lt;/code&gt; installed:&lt;/p&gt;
  2084.  
  2085. &lt;pre&gt;&lt;code&gt;$ sudo cpanm App::WRT
  2086. &lt;/code&gt;&lt;/pre&gt;
  2087.  
  2088. &lt;p&gt;Once installed, you should be able to run &lt;code&gt;wrt&lt;/code&gt;:&lt;/p&gt;
  2089.  
  2090. &lt;pre&gt;&lt;code&gt;$ wrt
  2091. wrt - a writing tool
  2092.  
  2093. Usage: /usr/local/bin/wrt [command] [args]
  2094.    wrt init        Initialize a wrt repository
  2095.    wrt display     Print HTML for entries
  2096.    wrt render-all  Render all defined entries to filesystem
  2097.    wrt addprop     Add a property to an entry
  2098.    wrt findprop    Find entries containing certain properties
  2099.    wrt -h          Print this help message
  2100.  
  2101. You must specify a command.
  2102. &lt;/code&gt;&lt;/pre&gt;
  2103.  
  2104. &lt;p&gt;In order to make an entry for the current day, create a file like
  2105. &lt;code&gt;archives/2017/9/18&lt;/code&gt;, and write some HTML in it.  Or use Markdown, like so:&lt;/p&gt;
  2106.  
  2107.  
  2108. &lt;pre&gt;&lt;code&gt;&#38;lt;h1&#38;gt;Saturday, November 18&#38;lt;/&#38;gt;
  2109.  
  2110. &#38;lt;markdown&#38;gt;
  2111. Your text here.
  2112. &#38;lt;/markdown&#38;gt;&lt;/code&gt;&lt;/pre&gt;
  2113.  
  2114. &lt;p&gt;If I live long enough, I &lt;em&gt;might&lt;/em&gt; get around to rewriting wrt in something else,
  2115. but aside from C, I&#38;rsquo;m not sure I could have started out by picking a language
  2116. more boringly likely than Perl to keep working for a couple of decades.&lt;/p&gt;
  2117.  
  2118. &lt;p&gt;The underlying archive format could be better in some ways, but so far it&#38;rsquo;s
  2119. also been fairly future-proof.  My only real worry is that one of these days,
  2120. as the open web vanishes further into the maw of facegooglemazon, HTML itself
  2121. may start to seem like a bad idea.  In that case, however, it should be pretty
  2122. easy to convert the simple subset of HTML I&#38;rsquo;m using here to some other
  2123. language.&lt;/p&gt;
  2124.  
  2125.  
  2126. &lt;p class=&#34;datelink&#34;&gt;
  2127. &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; /
  2128. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2129. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2130. &lt;a href=&#34;https://p1k3.com/2017/11/18/&#34; title=&#34;18&#34;&gt;18&lt;/a&gt;
  2131. &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;
  2132.  
  2133. &lt;div class=photos&gt;
  2134. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7623.JPG&#34;&gt;
  2135.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7623.JPG&#34; width=&#34;200&#34;&gt;
  2136. &lt;/a&gt;
  2137. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7667.JPG&#34;&gt;
  2138.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7667.JPG&#34; width=&#34;200&#34;&gt;
  2139. &lt;/a&gt;
  2140. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7690.JPG&#34;&gt;
  2141.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7690.JPG&#34; width=&#34;200&#34;&gt;
  2142. &lt;/a&gt;
  2143. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7696.JPG&#34;&gt;
  2144.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7696.JPG&#34; width=&#34;200&#34;&gt;
  2145. &lt;/a&gt;
  2146. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7702.JPG&#34;&gt;
  2147.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7702.JPG&#34; width=&#34;200&#34;&gt;
  2148. &lt;/a&gt;
  2149. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7707.JPG&#34;&gt;
  2150.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7707.JPG&#34; width=&#34;200&#34;&gt;
  2151. &lt;/a&gt;
  2152. &lt;a href=&#34;/files/photos/./2017-11-13/IMG_7711.JPG&#34;&gt;
  2153.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-11-13/Thumbs/IMG_7711.JPG&#34; width=&#34;200&#34;&gt;
  2154. &lt;/a&gt;
  2155. &lt;/div&gt;
  2156.  
  2157. &lt;p class=&#34;datelink&#34;&gt;
  2158. &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; /
  2159. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2160. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2161. &lt;a href=&#34;https://p1k3.com/2017/11/13/&#34; title=&#34;13&#34;&gt;13&lt;/a&gt;
  2162. &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;
  2163.  
  2164. &lt;p&gt;the snow melting over the green grass&lt;br /&gt;
  2165. the leaves half fallen&lt;br /&gt;
  2166. three blackbirds chasing a hawk&lt;br /&gt;
  2167. haze over the flatirons and&lt;br /&gt;
  2168. a single lenticular disc of&lt;br /&gt;
  2169. cloud above the canyon&lt;/p&gt;
  2170.  
  2171. &lt;p class=&#34;datelink&#34;&gt;
  2172. &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; /
  2173. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2174. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2175. &lt;a href=&#34;https://p1k3.com/2017/11/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt;
  2176. &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">
  2177. &lt;h1&gt;Tuesday, November  7&lt;/h1&gt;
  2178.  
  2179. &lt;h2&gt;mushrooms&lt;/h2&gt;
  2180.  
  2181. &lt;p&gt;A couple of summers ago, we took a roadtrip with some good friends of ours,
  2182. meeting them in Slovenia and taking a van down to Croatia and along the coast
  2183. into Albania.&lt;/p&gt;
  2184.  
  2185. &lt;p&gt;We saw a lot of remarkable things, and spent time with a lot of remarkable
  2186. people.  This isn&#38;rsquo;t really a post about most of that, though.  This is a post
  2187. about the Albanian built environment.&lt;/p&gt;
  2188.  
  2189. &lt;p&gt;Albanian architecture is &lt;em&gt;nuts&lt;/em&gt;.  Our friend, a local by birth, described the
  2190. predominant mode of building as &#38;ldquo;mushrooms&#38;rdquo;.  From googling, &#38;ldquo;concrete
  2191. mushrooms&#38;rdquo; is a term often applied to the pillboxes scattered paranoically all
  2192. 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
  2193. usage, though, it was more along the lines of: These ridiculous things that
  2194. grew up all over the landscape like fungus after a rain once communism
  2195. collapsed.&lt;/p&gt;
  2196.  
  2197. &lt;p&gt;One of the first things you notice is concrete and rebar (&#38;ldquo;the national plant&#38;rdquo;,
  2198. as a friend remarked).  Reinforced concrete is everywhere, and little tufts of
  2199. rebar seem to protrude from every other roof and column.  This is because few
  2200. of the buildings started within living memory ever seem to be quite &lt;em&gt;finished&lt;/em&gt;.
  2201. It&#38;rsquo;s routine to see three or four level structures which are mostly open
  2202. concrete boxes with businesses or housing built out only the first floor, the
  2203. top story looking ready to serve as platform for the next layer once someone
  2204. gets around to it.&lt;/p&gt;
  2205.  
  2206. &lt;p&gt;I don&#38;rsquo;t have the vocabulary or the eye to describe the style, really, but
  2207. there&#38;rsquo;s a kind of characteristic hodgepodge of clashing designs and types.
  2208. Brutalism and weird outbursts of eclecticism coexist with a
  2209. neo-classical-by-way-of-Las-Vegas vibe, sometimes in the same building.
  2210. Materials will shift radically halfway through a structure.  Sometimes you look
  2211. over and there&#38;rsquo;s just a tiny house build on the roof of the casino-hotel next
  2212. door.  Multi-story coffeeshop-hotel-gas-stations with cavernous interiors are a
  2213. routine feature of the landscape, as are empty shells scattered at odd angles
  2214. in the middle of fields.&lt;/p&gt;
  2215.  
  2216. &lt;p&gt;Anyway, I took some pictures, thinking that at some point I&#38;rsquo;d try to do a kind
  2217. of photo essay about this.  They aren&#38;rsquo;t very good, but they catch some of the
  2218. flavor and a handful seemed worth posting, even though I don&#38;rsquo;t really have the
  2219. time and energy to research and write about the subject like it deserves.&lt;/p&gt;
  2220.  
  2221. &lt;p&gt;(I should also say that Albania is a fascinating place for many reasons, and
  2222. the buildings are probably the least of it, though they point to a lot in the
  2223. history.)&lt;/p&gt;
  2224.  
  2225.  
  2226. &lt;div class=photos&gt;
  2227. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5937.JPG&#34;&gt;
  2228.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5937.JPG&#34; width=&#34;200&#34;&gt;
  2229. &lt;/a&gt;
  2230. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5955.JPG&#34;&gt;
  2231.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5955.JPG&#34; width=&#34;150&#34;&gt;
  2232. &lt;/a&gt;
  2233. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5966.JPG&#34;&gt;
  2234.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5966.JPG&#34; width=&#34;200&#34;&gt;
  2235. &lt;/a&gt;
  2236. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5972.JPG&#34;&gt;
  2237.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5972.JPG&#34; width=&#34;200&#34;&gt;
  2238. &lt;/a&gt;
  2239. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5974.JPG&#34;&gt;
  2240.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5974.JPG&#34; width=&#34;200&#34;&gt;
  2241. &lt;/a&gt;
  2242. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5991.JPG&#34;&gt;
  2243.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5991.JPG&#34; width=&#34;200&#34;&gt;
  2244. &lt;/a&gt;
  2245. &lt;a href=&#34;/files/photos/./mushrooms/IMG_5999.JPG&#34;&gt;
  2246.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_5999.JPG&#34; width=&#34;200&#34;&gt;
  2247. &lt;/a&gt;
  2248. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6011.JPG&#34;&gt;
  2249.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6011.JPG&#34; width=&#34;150&#34;&gt;
  2250. &lt;/a&gt;
  2251. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6026.JPG&#34;&gt;
  2252.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6026.JPG&#34; width=&#34;150&#34;&gt;
  2253. &lt;/a&gt;
  2254. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6027.JPG&#34;&gt;
  2255.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6027.JPG&#34; width=&#34;200&#34;&gt;
  2256. &lt;/a&gt;
  2257. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6030.JPG&#34;&gt;
  2258.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6030.JPG&#34; width=&#34;200&#34;&gt;
  2259. &lt;/a&gt;
  2260. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6076.JPG&#34;&gt;
  2261.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6076.JPG&#34; width=&#34;200&#34;&gt;
  2262. &lt;/a&gt;
  2263. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6080.JPG&#34;&gt;
  2264.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6080.JPG&#34; width=&#34;200&#34;&gt;
  2265. &lt;/a&gt;
  2266. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6090.JPG&#34;&gt;
  2267.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6090.JPG&#34; width=&#34;200&#34;&gt;
  2268. &lt;/a&gt;
  2269. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6096.JPG&#34;&gt;
  2270.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6096.JPG&#34; width=&#34;200&#34;&gt;
  2271. &lt;/a&gt;
  2272. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6097.JPG&#34;&gt;
  2273.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6097.JPG&#34; width=&#34;200&#34;&gt;
  2274. &lt;/a&gt;
  2275. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6116.JPG&#34;&gt;
  2276.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6116.JPG&#34; width=&#34;200&#34;&gt;
  2277. &lt;/a&gt;
  2278. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6117.JPG&#34;&gt;
  2279.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6117.JPG&#34; width=&#34;200&#34;&gt;
  2280. &lt;/a&gt;
  2281. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6118.JPG&#34;&gt;
  2282.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6118.JPG&#34; width=&#34;150&#34;&gt;
  2283. &lt;/a&gt;
  2284. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6122.JPG&#34;&gt;
  2285.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6122.JPG&#34; width=&#34;200&#34;&gt;
  2286. &lt;/a&gt;
  2287. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6147.JPG&#34;&gt;
  2288.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6147.JPG&#34; width=&#34;200&#34;&gt;
  2289. &lt;/a&gt;
  2290. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6231.JPG&#34;&gt;
  2291.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6231.JPG&#34; width=&#34;200&#34;&gt;
  2292. &lt;/a&gt;
  2293. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6232.JPG&#34;&gt;
  2294.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6232.JPG&#34; width=&#34;200&#34;&gt;
  2295. &lt;/a&gt;
  2296. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6248.JPG&#34;&gt;
  2297.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6248.JPG&#34; width=&#34;200&#34;&gt;
  2298. &lt;/a&gt;
  2299. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6250.JPG&#34;&gt;
  2300.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6250.JPG&#34; width=&#34;200&#34;&gt;
  2301. &lt;/a&gt;
  2302. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6251.JPG&#34;&gt;
  2303.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6251.JPG&#34; width=&#34;200&#34;&gt;
  2304. &lt;/a&gt;
  2305. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6259.JPG&#34;&gt;
  2306.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6259.JPG&#34; width=&#34;150&#34;&gt;
  2307. &lt;/a&gt;
  2308. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6260.JPG&#34;&gt;
  2309.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6260.JPG&#34; width=&#34;200&#34;&gt;
  2310. &lt;/a&gt;
  2311. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6263.JPG&#34;&gt;
  2312.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6263.JPG&#34; width=&#34;200&#34;&gt;
  2313. &lt;/a&gt;
  2314. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6264.JPG&#34;&gt;
  2315.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6264.JPG&#34; width=&#34;200&#34;&gt;
  2316. &lt;/a&gt;
  2317. &lt;a href=&#34;/files/photos/./mushrooms/IMG_6303.JPG&#34;&gt;
  2318.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/IMG_6303.JPG&#34; width=&#34;150&#34;&gt;
  2319. &lt;/a&gt;
  2320. &lt;a href=&#34;/files/photos/./mushrooms/albania.jpg&#34;&gt;
  2321.  &lt;img height=&#34;150&#34; src=&#34;/files/photos/./mushrooms/Thumbs/albania.jpg&#34; width=&#34;200&#34;&gt;
  2322. &lt;/a&gt;
  2323. &lt;a href=&#34;/files/photos/./mushrooms/bldg.jpg&#34;&gt;
  2324.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./mushrooms/Thumbs/bldg.jpg&#34; width=&#34;150&#34;&gt;
  2325. &lt;/a&gt;
  2326. &lt;/div&gt;
  2327.  
  2328. &lt;p class=&#34;datelink&#34;&gt;
  2329. &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; /
  2330. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2331. &lt;a href=&#34;https://p1k3.com/2017/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  2332. &lt;a href=&#34;https://p1k3.com/2017/11/7/&#34; title=&#34;7&#34;&gt;7&lt;/a&gt;
  2333. &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;
  2334.  
  2335. &lt;p&gt;&lt;br /&gt;
  2336. outside the windows the newly&lt;br /&gt;
  2337. installed LED streetlights&lt;br /&gt;
  2338. are bright against the&lt;br /&gt;
  2339. falling snow, the&lt;br /&gt;
  2340. halfnaked trees and&lt;br /&gt;
  2341. wet dark pavement&lt;br /&gt;
  2342. the hills half-faded into&lt;br /&gt;
  2343. clouds and falling light&lt;/p&gt;
  2344.  
  2345. &lt;p&gt;inside the dodgers and the&lt;br /&gt;
  2346. astros are tied on the&lt;br /&gt;
  2347. tv over the bar&lt;br /&gt;
  2348. bottom of the 5th&lt;/p&gt;
  2349.  
  2350. &lt;p&gt;in the ads all the&lt;br /&gt;
  2351. grinning baseball guys&lt;br /&gt;
  2352. are wearing big&lt;br /&gt;
  2353. chunky watches&lt;/p&gt;
  2354.  
  2355. &lt;p&gt;it&#39;s a quiet night&lt;br /&gt;
  2356. the tourist traffic&lt;br /&gt;
  2357. falls off this time of year,&lt;br /&gt;
  2358. if it never completely&lt;br /&gt;
  2359. disappears&lt;/p&gt;
  2360.  
  2361. &lt;p&gt;the ones i can spot&lt;br /&gt;
  2362. for sure have that&lt;br /&gt;
  2363. midwestern look, a&lt;br /&gt;
  2364. kind of squared-off&lt;br /&gt;
  2365. masculinity&lt;/p&gt;
  2366.  
  2367. &lt;p&gt;they&#39;ve been friends since&lt;br /&gt;
  2368. college, i&#39;m guessing, or maybe&lt;br /&gt;
  2369. highschool&lt;/p&gt;
  2370.  
  2371. &lt;p&gt;the one with the beard has&lt;br /&gt;
  2372. a wife back home, young children&lt;br /&gt;
  2373. the taller one was in&lt;br /&gt;
  2374. the army for a while&lt;br /&gt;
  2375. or maybe he played football&lt;/p&gt;
  2376.  
  2377. &lt;p&gt;at any rate there is&lt;br /&gt;
  2378. in how he holds himself&lt;br /&gt;
  2379. that thing you see sometimes in&lt;br /&gt;
  2380. soldiers and athletes&lt;/p&gt;
  2381.  
  2382. &lt;p&gt;i imagine them&lt;br /&gt;
  2383. later on, leaving&lt;br /&gt;
  2384. the pot shop for&lt;br /&gt;
  2385. the airbnb,&lt;br /&gt;
  2386. small paper bag&lt;br /&gt;
  2387. in hand&lt;/p&gt;
  2388.  
  2389. &lt;p&gt;they stand outside to smoke&lt;br /&gt;
  2390. in the october cold&lt;br /&gt;
  2391. the bearded guy coughs&lt;br /&gt;
  2392. for minutes on end&lt;/p&gt;
  2393.  
  2394. &lt;p&gt;they haven&#39;t done this&lt;br /&gt;
  2395. since they were kids.&lt;br /&gt;
  2396. &lt;/p&gt;
  2397.  
  2398. &lt;p class=&#34;datelink&#34;&gt;
  2399. &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; /
  2400. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2401. &lt;a href=&#34;https://p1k3.com/2017/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  2402. &lt;a href=&#34;https://p1k3.com/2017/10/26/&#34; title=&#34;26&#34;&gt;26&lt;/a&gt;
  2403. &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;
  2404.  
  2405. &lt;p&gt;the late afternoon&lt;br /&gt;
  2406. of the year gathers&lt;br /&gt;
  2407. around the town&lt;br /&gt;
  2408. where we live&lt;/p&gt;
  2409.  
  2410. &lt;p&gt;bright leaves, the&lt;br /&gt;
  2411. varicolored grass&lt;br /&gt;
  2412. tangles of vegetative&lt;br /&gt;
  2413. debris in the ditches&lt;/p&gt;
  2414.  
  2415. &lt;p&gt;the shaggy final&lt;br /&gt;
  2416. exuberance of&lt;br /&gt;
  2417. growth and flowering&lt;br /&gt;
  2418. into seed on warm&lt;br /&gt;
  2419. october days;&lt;br /&gt;
  2420. the ragged inroads&lt;br /&gt;
  2421. made by frost&lt;br /&gt;
  2422. and wind&lt;/p&gt;
  2423.  
  2424. &lt;p class=&#34;datelink&#34;&gt;
  2425. &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; /
  2426. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2427. &lt;a href=&#34;https://p1k3.com/2017/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  2428. &lt;a href=&#34;https://p1k3.com/2017/10/19/&#34; title=&#34;19&#34;&gt;19&lt;/a&gt;
  2429. &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;
  2430.  
  2431. &lt;h2&gt;decades&lt;/h2&gt;
  2432.  
  2433. &lt;p&gt;Paul Ford &lt;a href=&#34;http://www.ftrain.com/20.html&#34;&gt;wrote about starting
  2434. ftrain 20 years ago&lt;/a&gt;:
  2435.  
  2436. &lt;blockquote&gt;
  2437.  
  2438.  &lt;p&gt;I started this website 20 years ago, give or take a week. The original
  2439.  address was &lt;tt&gt;www.interactive.net/~ford&lt;/tt&gt;. Eventually it migrated here
  2440.  into the form you see. I took it very seriously for many years and it earned
  2441.  me thousands of readers, thousands of emails, and tons of opportunity. It was
  2442.  better at generating opportunity than money. I drifted away for all the
  2443.  regular reasons.&lt;/p&gt;
  2444.  
  2445. &lt;/blockquote&gt;
  2446.  
  2447. &lt;p&gt;Which got me thinking:  The oldest surviving bits of this website go back to
  2448. &lt;a href=&#34;/1997/4/&#34;&gt;April of 1997&lt;/a&gt;, so it&#39;s 20 years, give or take six
  2449. months.  It lived other places for a while (GeoCities and a shell box with a
  2450. tilde in the URL) until I actually got a domain for it.  p1k3.com was the first
  2451. domain I ever bought, and I chose it because my middle name is Pike and I like
  2452. the number 13 and it was four characters long, which even in the early years of
  2453. this century was getting to be kind of hard to come up with.  There was also
  2454. this running joke with friends from IRC, about whether a pike was a weapon or a
  2455. fish, and I guess that must have played into my thinking somehow.&lt;/p&gt;
  2456.  
  2457. &lt;p&gt;p1k3 has clearly not made me into a low-key internet celebrity.  I don&#39;t
  2458. know about opportunity, but it has helped me get a couple of good jobs, and
  2459. probably prevented me from getting several more bad ones.  To guess at its
  2460. current readership, I think that about a dozen humans might see this post sooner
  2461. or later.&lt;/p&gt;
  2462.  
  2463. &lt;p&gt;I wrote one possible variation on the post you&#39;re reading now &lt;a
  2464. href=&#34;https://p1k3.com/2017/1/2/&#34;&gt;back in February&lt;/a&gt; &#38;mdash; the one where
  2465. I regret writing so much stupid bullshit.  That one doesn&#39;t really explain
  2466. why I&#39;ve written so much less this year than most, though.  This other one where
  2467. I &lt;a href=&#34;/2017/2/4/&#34;&gt;worry about self-surveillance&lt;/a&gt; in an age of weaponized
  2468. data and network fascists comes a lot closer to the mark.&lt;/p&gt;
  2469.  
  2470. &lt;p&gt;In 2017, I&#39;ve fully given up on some things.  A big one is the World Wide
  2471. Web.  The &#34;open web&#34;, as such, is dead.  Or at best on life support.  The
  2472. actually existing web is, mostly, bad.  It&#39;s an abject failure in the terms I
  2473. thought I was involved with it on, and its architecture has helped bootstrap an
  2474. internet that&#39;s hostile to my values, if not ultimately to human life
  2475. itself.&lt;/p&gt;
  2476.  
  2477. &lt;p&gt;It&#39;s no longer possible to use the web in a way that respects your privacy,
  2478. autonomy, basic personhood, etc.  And for the same reasons, it&#39;s incredibly
  2479. difficult to work on the web for a living in any kind of ethical fashion.&lt;/p&gt;
  2480.  
  2481. &lt;p&gt;But then:  So what?&lt;/p&gt;
  2482.  
  2483. &lt;p&gt;I think it&#39;s broadly true that most of us should treat the network as a
  2484. hostile environment, and that any information we publish about ourselves will
  2485. be used against us and our communities by systems we have no control over
  2486. &#38;mdash; systems operating under few legal constraints, answering only to the
  2487. profit motive, under the authority of &lt;i&gt;complete assholes&lt;/i&gt; with no sense of
  2488. responsibility, proportion, or historical perspective.&lt;/p&gt;
  2489.  
  2490. &lt;p&gt;It&#39;s really tempting, in the face of this conviction, to shut up and just
  2491. focus on sequestering myself from the network to whatever limited extent that&#39;s
  2492. still possible.&lt;/p&gt;
  2493.  
  2494. &lt;p&gt;On the other hand.  Writing is one of the only real powers I&#39;ve ever had,
  2495. and the surface of this terrible website is still mine to write on.  The web is
  2496. dead to me, as a hope or a cause, and the world it&#39;s made &#38;mdash; the world
  2497. that so many thousands of us helped to make &#38;mdash; is in bad shape and getting
  2498. worse.  But why should I give up my only real canvas, the only place where I
  2499. have any voice at all?&lt;/p&gt;
  2500.  
  2501. &lt;p&gt;Possibly (almost certainly) having a voice is itself an illusion, irrelevant
  2502. to the course of things now.  But I guess it&#39;s something.&lt;/p&gt;
  2503.  
  2504. &lt;p class=&#34;datelink&#34;&gt;
  2505. &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; /
  2506. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2507. &lt;a href=&#34;https://p1k3.com/2017/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  2508. &lt;a href=&#34;https://p1k3.com/2017/10/16/&#34; title=&#34;16&#34;&gt;16&lt;/a&gt;
  2509. &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;
  2510.  
  2511. &lt;div class=photos&gt;
  2512. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_7527.JPG&#34;&gt;
  2513.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_7527.JPG&#34; width=&#34;200&#34;&gt;
  2514. &lt;/a&gt;
  2515. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_7953.JPG&#34;&gt;
  2516.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_7953.JPG&#34; width=&#34;200&#34;&gt;
  2517. &lt;/a&gt;
  2518. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_7978.JPG&#34;&gt;
  2519.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_7978.JPG&#34; width=&#34;200&#34;&gt;
  2520. &lt;/a&gt;
  2521. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8002.JPG&#34;&gt;
  2522.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8002.JPG&#34; width=&#34;200&#34;&gt;
  2523. &lt;/a&gt;
  2524. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8026.JPG&#34;&gt;
  2525.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8026.JPG&#34; width=&#34;200&#34;&gt;
  2526. &lt;/a&gt;
  2527. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8049.JPG&#34;&gt;
  2528.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8049.JPG&#34; width=&#34;200&#34;&gt;
  2529. &lt;/a&gt;
  2530. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8056.JPG&#34;&gt;
  2531.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8056.JPG&#34; width=&#34;200&#34;&gt;
  2532. &lt;/a&gt;
  2533. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8070.JPG&#34;&gt;
  2534.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8070.JPG&#34; width=&#34;200&#34;&gt;
  2535. &lt;/a&gt;
  2536. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8086.JPG&#34;&gt;
  2537.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8086.JPG&#34; width=&#34;200&#34;&gt;
  2538. &lt;/a&gt;
  2539. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8095.JPG&#34;&gt;
  2540.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8095.JPG&#34; width=&#34;200&#34;&gt;
  2541. &lt;/a&gt;
  2542. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8100.JPG&#34;&gt;
  2543.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8100.JPG&#34; width=&#34;200&#34;&gt;
  2544. &lt;/a&gt;
  2545. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8107.JPG&#34;&gt;
  2546.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8107.JPG&#34; width=&#34;200&#34;&gt;
  2547. &lt;/a&gt;
  2548. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8143.JPG&#34;&gt;
  2549.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8143.JPG&#34; width=&#34;200&#34;&gt;
  2550. &lt;/a&gt;
  2551. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8155.JPG&#34;&gt;
  2552.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8155.JPG&#34; width=&#34;200&#34;&gt;
  2553. &lt;/a&gt;
  2554. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8210.JPG&#34;&gt;
  2555.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8210.JPG&#34; width=&#34;200&#34;&gt;
  2556. &lt;/a&gt;
  2557. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8233.JPG&#34;&gt;
  2558.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8233.JPG&#34; width=&#34;200&#34;&gt;
  2559. &lt;/a&gt;
  2560. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8240.JPG&#34;&gt;
  2561.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8240.JPG&#34; width=&#34;200&#34;&gt;
  2562. &lt;/a&gt;
  2563. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8245.JPG&#34;&gt;
  2564.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8245.JPG&#34; width=&#34;200&#34;&gt;
  2565. &lt;/a&gt;
  2566. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8248.JPG&#34;&gt;
  2567.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8248.JPG&#34; width=&#34;200&#34;&gt;
  2568. &lt;/a&gt;
  2569. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8251.JPG&#34;&gt;
  2570.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8251.JPG&#34; width=&#34;200&#34;&gt;
  2571. &lt;/a&gt;
  2572. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8260.JPG&#34;&gt;
  2573.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8260.JPG&#34; width=&#34;200&#34;&gt;
  2574. &lt;/a&gt;
  2575. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8267.JPG&#34;&gt;
  2576.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8267.JPG&#34; width=&#34;200&#34;&gt;
  2577. &lt;/a&gt;
  2578. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8292.JPG&#34;&gt;
  2579.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8292.JPG&#34; width=&#34;200&#34;&gt;
  2580. &lt;/a&gt;
  2581. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8348.JPG&#34;&gt;
  2582.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8348.JPG&#34; width=&#34;200&#34;&gt;
  2583. &lt;/a&gt;
  2584. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8351.JPG&#34;&gt;
  2585.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8351.JPG&#34; width=&#34;200&#34;&gt;
  2586. &lt;/a&gt;
  2587. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8384.JPG&#34;&gt;
  2588.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8384.JPG&#34; width=&#34;200&#34;&gt;
  2589. &lt;/a&gt;
  2590. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8410.JPG&#34;&gt;
  2591.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8410.JPG&#34; width=&#34;200&#34;&gt;
  2592. &lt;/a&gt;
  2593. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8416.JPG&#34;&gt;
  2594.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8416.JPG&#34; width=&#34;200&#34;&gt;
  2595. &lt;/a&gt;
  2596. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8424.JPG&#34;&gt;
  2597.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8424.JPG&#34; width=&#34;200&#34;&gt;
  2598. &lt;/a&gt;
  2599. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8443.JPG&#34;&gt;
  2600.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8443.JPG&#34; width=&#34;200&#34;&gt;
  2601. &lt;/a&gt;
  2602. &lt;a href=&#34;/files/photos/./2017-09-23/IMG_8471.JPG&#34;&gt;
  2603.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-09-23/Thumbs/IMG_8471.JPG&#34; width=&#34;200&#34;&gt;
  2604. &lt;/a&gt;
  2605. &lt;/div&gt;
  2606.  
  2607. &lt;p class=&#34;datelink&#34;&gt;
  2608. &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; /
  2609. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2610. &lt;a href=&#34;https://p1k3.com/2017/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  2611. &lt;a href=&#34;https://p1k3.com/2017/9/23/&#34; title=&#34;23&#34;&gt;23&lt;/a&gt;
  2612. &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;
  2613.  
  2614. &lt;h2&gt;catenating files in order of modification time, a bad solution&lt;/h2&gt;
  2615.  
  2616. &lt;p&gt;Setting: Linux - a recent Ubuntu.  GNU coreutils.&lt;/p&gt;
  2617.  
  2618. &lt;p&gt;I wanted to join a large set of small logfiles together into a single file, in
  2619. the order they were originally written.  The list of files &lt;a href=&#34;https://wiki.debian.org/CommonErrorMessages/ArgumentListTooLong&#34;&gt;exceeded
  2620. ARG_MAX&lt;/a&gt;, so &lt;code&gt;cat * &#38;gt; foo&lt;/code&gt; would fail with:&lt;/p&gt;
  2621.  
  2622. &lt;pre&gt;&lt;code&gt;bash: /bin/cat: Argument list too long
  2623. &lt;/code&gt;&lt;/pre&gt;
  2624.  
  2625. &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
  2626. newlines because I couldn&#38;rsquo;t be entirely sure that logfiles would never have
  2627. spaces or other weirdness in the names.&lt;/p&gt;
  2628.  
  2629. &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
  2630. wound up writing this ridiculous variant:&lt;/p&gt;
  2631.  
  2632. &lt;pre&gt;&lt;code&gt;find . -name &#39;*.log&#39; -printf &#39;%[email protected] %p\0&#39; |
  2633.  sort -nz |
  2634.  sed -Ez &#39;s/^[^ ]+ (.*)$/\1/&#39; |
  2635.  xargs -0 cat &#38;gt; all
  2636. &lt;/code&gt;&lt;/pre&gt;
  2637.  
  2638. &lt;p&gt;A script with a test and some explanatory comments:&lt;/p&gt;
  2639.  
  2640. &lt;pre&gt;&lt;code&gt;#!/bin/sh
  2641.  
  2642. # create some test files:
  2643. echo &#34;a&#34; &#38;gt; &#34;a a.log&#34;
  2644. echo &#34;b&#34; &#38;gt; &#34;b b.log&#34;
  2645. echo &#34;c&#34; &#38;gt; &#34;c c.log&#34;
  2646.  
  2647. # print mtime, space, full path to file, separated by NULs:
  2648. find . -name &#39;*.log&#39; -printf &#39;%[email protected] %p\0&#39; |
  2649.  
  2650.  # the -z option to GNU sort(1) and sed(1) treats NUL as line delimiter
  2651.  
  2652.  # sort lines numerically:
  2653.  sort -nz |
  2654.  
  2655.  # strip leading timestamp - I&#39;d use cut(1) here but it lacks a -z option:
  2656.  sed -Ez &#39;s/^[^ ]+ (.*)$/\1/&#39; |
  2657.  
  2658.  # feed filenames, separated by NULs, to cat(1), and
  2659.  # redirect output to a file called &#34;all&#34;:
  2660.  xargs -0 cat &#38;gt; all
  2661.  
  2662. cat all
  2663. &lt;/code&gt;&lt;/pre&gt;
  2664.  
  2665. &lt;p&gt;When run, this outputs:&lt;/p&gt;
  2666.  
  2667. &lt;pre&gt;&lt;code&gt;a
  2668. b
  2669. c
  2670. &lt;/code&gt;&lt;/pre&gt;
  2671.  
  2672. &lt;p&gt;I think this works.  It is, no doubt, several kinds of wrong.  It does function
  2673. as a useful illustration of how silly things can get when everything is a
  2674. string and quoting problems take over an otherwise simple solution.  find(1)
  2675. and xargs(1) really seem to live in the space where classical Unix shell and
  2676. filesystem approaches expose their sharp edges quickly.&lt;/p&gt;
  2677.  
  2678.  
  2679. &lt;p class=&#34;datelink&#34;&gt;
  2680. &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; /
  2681. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2682. &lt;a href=&#34;https://p1k3.com/2017/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  2683. &lt;a href=&#34;https://p1k3.com/2017/8/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt;
  2684. &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;
  2685.  
  2686. &lt;p&gt;we&#39;re a fire&lt;br /&gt;
  2687. burning in the fibers&lt;br /&gt;
  2688. and tissues of the world&lt;/p&gt;
  2689.  
  2690. &lt;p class=&#34;datelink&#34;&gt;
  2691. &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; /
  2692. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2693. &lt;a href=&#34;https://p1k3.com/2017/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  2694. &lt;a href=&#34;https://p1k3.com/2017/8/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt;
  2695. &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;
  2696.  
  2697. &lt;p&gt;My Uncle retired from decades as the pastor of two Lutheran congregations in
  2698. Kansas this past weekend, so I rented a car in Boulder and drove across a swath
  2699. of the High Plains to hear him preach a final service and attend a retirement
  2700. party, followed by loading boxes onto a U-Haul.&lt;/p&gt;
  2701.  
  2702. &lt;p&gt;Along the way I stopped at a garage sale and bought two boxes of cassette tapes
  2703. for $2 each.  It&#38;rsquo;s classic country for the most part:  Willie Nelson, Hank
  2704. Snow, Jim Reeves, Patsy Cline, Ray Price, Marty Robbins.  Outliers include the
  2705. Andrews Sisters and some big band material.  I got boxes 19 and 13.  The tapes
  2706. inside each have a little green tag made with one of those label makers that
  2707. punches the letters into a strip of adhesive plastic.  Box 19 contains tapes
  2708. B115 through B144.  The individul slots in the tape boxes are also labeled.&lt;/p&gt;
  2709.  
  2710. &lt;p&gt;This was clearly part of a lifetime collection; the guy I bought them from said
  2711. they&#38;rsquo;d picked them up from a sale and the owner had everything catalogued,
  2712. tapes and records.  If I&#38;rsquo;d been in a little different frame of mind I&#38;rsquo;d probably
  2713. have loaded up the whole thing.&lt;/p&gt;
  2714.  
  2715.  
  2716. &lt;p class=&#34;datelink&#34;&gt;
  2717. &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; /
  2718. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2719. &lt;a href=&#34;https://p1k3.com/2017/7/&#34; title=&#34;7&#34;&gt;7&lt;/a&gt; /
  2720. &lt;a href=&#34;https://p1k3.com/2017/7/19/&#34; title=&#34;19&#34;&gt;19&lt;/a&gt;
  2721. &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;
  2722.  
  2723. &lt;p&gt;sometimes&lt;/p&gt;
  2724.  
  2725. &lt;p&gt;from the perspective of the sick&lt;br /&gt;
  2726. it&#39;s wellness that feels impossible&lt;/p&gt;
  2727.  
  2728. &lt;p&gt;so here we are, and democracy&lt;br /&gt;
  2729. feels like some kind of a fever dream&lt;/p&gt;
  2730.  
  2731. &lt;p class=&#34;datelink&#34;&gt;
  2732. &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; /
  2733. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2734. &lt;a href=&#34;https://p1k3.com/2017/7/&#34; title=&#34;7&#34;&gt;7&lt;/a&gt; /
  2735. &lt;a href=&#34;https://p1k3.com/2017/7/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt;
  2736. &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;
  2737.  
  2738. &lt;h2&gt;photography&lt;/h2&gt;
  2739.  
  2740. &lt;div class=photos&gt;
  2741. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7294.JPG&#34;&gt;
  2742.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7294.JPG&#34; width=&#34;200&#34;&gt;
  2743. &lt;/a&gt;
  2744. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7302.JPG&#34;&gt;
  2745.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7302.JPG&#34; width=&#34;200&#34;&gt;
  2746. &lt;/a&gt;
  2747. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7416.JPG&#34;&gt;
  2748.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7416.JPG&#34; width=&#34;200&#34;&gt;
  2749. &lt;/a&gt;
  2750. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7437.JPG&#34;&gt;
  2751.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7437.JPG&#34; width=&#34;200&#34;&gt;
  2752. &lt;/a&gt;
  2753. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7451.JPG&#34;&gt;
  2754.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7451.JPG&#34; width=&#34;200&#34;&gt;
  2755. &lt;/a&gt;
  2756. &lt;a href=&#34;/files/photos/./2017-06-26/IMG_7456.JPG&#34;&gt;
  2757.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-06-26/Thumbs/IMG_7456.JPG&#34; width=&#34;200&#34;&gt;
  2758. &lt;/a&gt;
  2759. &lt;/div&gt;
  2760.  
  2761. &lt;p&gt;as the datamining gets better,&lt;br /&gt;
  2762. every captured image carries its own index&lt;br /&gt;
  2763. to other captured images and other datasets&lt;br /&gt;
  2764. and thus into the lives and environments of other people&lt;/p&gt;
  2765.  
  2766. &lt;p&gt;photography, like other acts of recall and expression,&lt;br /&gt;
  2767. has been weaponized by and for the panopticon&lt;/p&gt;
  2768.  
  2769. &lt;p&gt;and so the receding into triviality&lt;br /&gt;
  2770. of images that seem unlikely to serve the miners:&lt;br /&gt;
  2771. fuzzed out closeups, abstractions,&lt;br /&gt;
  2772. landscapes and technologies without humans in them&lt;/p&gt;
  2773.  
  2774. &lt;p&gt;i was sorting pictures for publication just now,&lt;br /&gt;
  2775. and paused before deciding against:&lt;br /&gt;
  2776. an identifiable portion of my front yard in the snow&lt;br /&gt;
  2777. my girlfriend&#39;s hands&lt;br /&gt;
  2778. the blurry faces of my family around a campfire&lt;/p&gt;
  2779.  
  2780. &lt;p&gt;the same reluctance logically applies to text, to names and&lt;br /&gt;
  2781. concrete descriptions, to signifiers of place and relation&lt;br /&gt;
  2782. all the facts that might be mechanically sieved by algorithm&lt;br /&gt;
  2783. or carefully dissected and turned to violent ends by antagonists&lt;br /&gt;
  2784. in the grip of some networked ideological disease&lt;/p&gt;
  2785.  
  2786.  
  2787. &lt;p class=&#34;datelink&#34;&gt;
  2788. &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; /
  2789. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2790. &lt;a href=&#34;https://p1k3.com/2017/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  2791. &lt;a href=&#34;https://p1k3.com/2017/6/26/&#34; title=&#34;26&#34;&gt;26&lt;/a&gt;
  2792. &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;
  2793.  
  2794. &lt;h2&gt;extracting your photos from flickr&lt;/h2&gt;
  2795.  
  2796. &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
  2797. while&lt;/a&gt;.  A recent e-mail stating that all Yahoo accounts
  2798. would be subject to Verizon&#38;rsquo;s terms-of-service by the 15th of this month
  2799. prompted me to actually go ahead and do it.  On the off chance this is useful
  2800. to anyone else, here are a few notes about exporting photo data and working
  2801. with the results.&lt;/p&gt;
  2802.  
  2803. &lt;p&gt;Some priors:  I run Debian GNU/Linux, and have a DigitalOcean droplet that was
  2804. convenient for intermediate storage.  I wasn&#38;rsquo;t too concerned about metadata
  2805. beyond the photos themselves, the titles I&#38;rsquo;d given them, and what sets they
  2806. were in.  Depending on how you use flickr, you might care about more than that.&lt;/p&gt;
  2807.  
  2808. &lt;p class=&#34;centerpiece&#34;&gt; ☙ &lt;/p&gt;
  2809.  
  2810.  
  2811. &lt;p&gt;I started off by Googling around for a flickr export utility, and after trying
  2812. a couple of other things I landed on a script called &lt;code&gt;flickrbackup&lt;/code&gt;.  It&#38;rsquo;s
  2813. about 400 lines of Python, and packaged for Debian (and thus also Ubuntu).&lt;/p&gt;
  2814.  
  2815. &lt;p&gt;Here&#38;rsquo;s the package description from Debian Stretch as of this writing:&lt;/p&gt;
  2816.  
  2817. &lt;!-- exec --&gt;
  2818.  
  2819.  
  2820. &lt;pre&gt;&lt;code&gt;$ apt-cache show flickrbackup
  2821. Package: flickrbackup
  2822. Version: 0.2-3.1
  2823. Installed-Size: 51
  2824. Maintainer: Tiago Bortoletto Vaz &#38;lt;[email protected]&#38;gt;
  2825. Architecture: all
  2826. Depends: python, python-pyexiv2
  2827. Description-en: Simple tool to perform a backup of your photos in flickr
  2828. flickrbackup is a simple python script which make a local copy of all your
  2829. pictures hosted in flickr.com.
  2830. .
  2831. It downloads the pictures and organize them using your set names. flickrbackup
  2832. is also able to store title, description, tags and other metadata from flickr
  2833. sets as EXIF data.
  2834. Description-md5: ce24e11f393b22430037469a74e4a131
  2835. Section: utils
  2836. Priority: optional
  2837. Filename: pool/main/f/flickrbackup/flickrbackup_0.2-3.1_all.deb
  2838. Size: 6420
  2839. MD5sum: 0569e3d2513c6dbd519b7b45cef9eed8
  2840. SHA256: 1e1cafa542904fa97734939adef77dd7631fb595361c67120440fc2068b889a8
  2841. &lt;/code&gt;&lt;/pre&gt;
  2842.  
  2843. &lt;!-- end --&gt;
  2844.  
  2845.  
  2846. &lt;p&gt;On a Debian system, you can install the script with:&lt;/p&gt;
  2847.  
  2848. &lt;pre&gt;&lt;code&gt;$ apt-get install flickrbackup
  2849. &lt;/code&gt;&lt;/pre&gt;
  2850.  
  2851. &lt;p&gt;Then make a directory for photos:&lt;/p&gt;
  2852.  
  2853. &lt;pre&gt;&lt;code&gt;$ mkdir flickr_dump
  2854. &lt;/code&gt;&lt;/pre&gt;
  2855.  
  2856. &lt;p&gt;And run the script like so:&lt;/p&gt;
  2857.  
  2858. &lt;pre&gt;&lt;code&gt;$ flickrbackup -e -o flickr_dump
  2859. &lt;/code&gt;&lt;/pre&gt;
  2860.  
  2861. &lt;p&gt;The &lt;code&gt;-e&lt;/code&gt; tells it to store flickr metadata in Exif tags on the image files,
  2862. and &lt;code&gt;-o flickr_dump&lt;/code&gt; tells it where to stash the photos.&lt;/p&gt;
  2863.  
  2864. &lt;p&gt;I&#38;rsquo;m a bit fuzzy on this part and can&#38;rsquo;t easily replicate it since I already
  2865. deleted my account, but the script should open a browser where you&#38;rsquo;ll be
  2866. prompted to login if necessary and authorize the script to access your account.
  2867. It stashes credentials in a file called &lt;code&gt;.flickrbackup.frob.cache&lt;/code&gt; - I had to
  2868. get this on my laptop and then copy it over to a system on DigitalOcean to use
  2869. &lt;code&gt;flickrbackup&lt;/code&gt; from there, since attempting to run a browser on the DO box
  2870. didn&#38;rsquo;t work.&lt;/p&gt;
  2871.  
  2872. &lt;p&gt;After that, image files will be downloaded into subdirectories of &lt;code&gt;flickr_dump&lt;/code&gt;
  2873. by set name.  Anything not in a set should land in &lt;code&gt;flickr_dump/No Set&lt;/code&gt;.  This
  2874. part takes a while.&lt;/p&gt;
  2875.  
  2876. &lt;p class=&#34;centerpiece&#34;&gt; ✦ &lt;/p&gt;
  2877.  
  2878.  
  2879. &lt;p&gt;Next, I used a handful of tools to reorganize things.  I&#38;rsquo;m still deciding how
  2880. to self-host a photo collection, so this is fairly rough, but after some
  2881. experimentation I decided to stash the set names for later use and then move
  2882. everything into directories by date taken.&lt;/p&gt;
  2883.  
  2884. &lt;p&gt;Before doing anything else, I used the &lt;code&gt;rename&lt;/code&gt; utility to lowercase set names,
  2885. replace spaces with underscores, and remove some extra characters:&lt;/p&gt;
  2886.  
  2887. &lt;pre&gt;&lt;code&gt;$ cd flickr_dump
  2888.  
  2889. # spaces to underscores:
  2890. $ rename &#39;s/ +/_/g&#39; ./*
  2891.  
  2892. # lowercase:
  2893. $ rename &#39;tr/A-Z/a-z/&#39; ./*
  2894.  
  2895. # zap parentheses:
  2896. $ rename &#39;s/[()]//g&#39; ./*
  2897. &lt;/code&gt;&lt;/pre&gt;
  2898.  
  2899. &lt;p&gt;Next I made a tab-separated file containing set names in the first column and
  2900. image filenames in the second:&lt;/p&gt;
  2901.  
  2902. &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
  2903. &lt;/code&gt;&lt;/pre&gt;
  2904.  
  2905. &lt;p&gt;This finds everything that ends in a &lt;code&gt;.jpg&lt;/code&gt; extension, replaces slashes in the
  2906. path with spaces, and feeds those lines to &lt;code&gt;awk&lt;/code&gt;, which by default treats
  2907. space-separated values as fields that can be referenced by number.  (So the
  2908. line &lt;code&gt;./sprkfn/12843074003.jpg&lt;/code&gt; becomes &lt;code&gt;. sprkfn 12843074003.jpg&lt;/code&gt;, and then
  2909. &lt;code&gt;sprkfn 12843074003.jpg&lt;/code&gt;.)  I&#38;rsquo;ll probably convert these to topic tags in my
  2910. blog system at some point in the future.  (It seems safe to just do this by
  2911. filename because as far as I can tell the filenames are unique.  I think.)&lt;/p&gt;
  2912.  
  2913. &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;.
  2914. ExifTool is an old-school swiss-army style utility (written in Perl, natch) for
  2915. 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
  2916. data in individual images, as well as organizing sets of files based on values
  2917. 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
  2918. photos into directories like so:&lt;/p&gt;
  2919.  
  2920. &lt;pre&gt;&lt;code&gt;$ exiftool -o . &#39;-Directory&#38;lt;CreateDate&#39; -d ~/p1k3/files/photos/%Y-%m -r .
  2921. &lt;/code&gt;&lt;/pre&gt;
  2922.  
  2923. &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
  2924. 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
  2925. clunky, but I&#38;rsquo;ll improve on it eventually.  (At least, that is, if I don&#38;rsquo;t just
  2926. delete everything out of hopeless disgust with my small part in creating the
  2927. emergent panopticon.)&lt;/p&gt;
  2928.  
  2929.  
  2930. &lt;p class=&#34;datelink&#34;&gt;
  2931. &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; /
  2932. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2933. &lt;a href=&#34;https://p1k3.com/2017/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt; /
  2934. &lt;a href=&#34;https://p1k3.com/2017/6/21/&#34; title=&#34;21&#34;&gt;21&lt;/a&gt;
  2935. &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;
  2936.  
  2937. &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
  2938. sparser edges of an exurb of colorado springs.&lt;/p&gt;
  2939.  
  2940. &lt;p&gt;on the tv:  &#38;ldquo;pat boone, a word about the secret war&#38;rdquo;.  pat wants us to know
  2941. that banks are required to spy on us for the government.  the war on cash, he
  2942. explains, is really a war on all freedom-loving americans.&lt;/p&gt;
  2943.  
  2944. &lt;p&gt;and well, shit.  pat boone isn&#38;rsquo;t observably &lt;em&gt;wrong&lt;/em&gt;, honestly.  i mean, at
  2945. least not about those parts.&lt;/p&gt;
  2946.  
  2947. &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.
  2948. this could be a &lt;em&gt;completely fossilized&lt;/em&gt; late-night
  2949. gold-as-an-investment-vehicle scam, quietly circulating the televised
  2950. backwaters for years or decades now, damaging a life here and there as the last
  2951. traces of the pat boone meme encounter minds left vulnerable by age and
  2952. isolation.&lt;/p&gt;
  2953.  
  2954.  
  2955. &lt;p class=&#34;datelink&#34;&gt;
  2956. &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; /
  2957. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2958. &lt;a href=&#34;https://p1k3.com/2017/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  2959. &lt;a href=&#34;https://p1k3.com/2017/5/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  2960. &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;
  2961.  
  2962. &lt;p&gt;&lt;a href=&#34;https://electricity.wtf/thereminusrex/&#34;&gt;Thereminus Rex&lt;/a&gt;
  2963. begins to emerge:&lt;/p&gt;
  2964.  
  2965. &lt;div class=photos&gt;
  2966. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7780.JPG&#34;&gt;
  2967.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7780.JPG&#34; width=&#34;200&#34;&gt;
  2968. &lt;/a&gt;
  2969. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7820.JPG&#34;&gt;
  2970.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7820.JPG&#34; width=&#34;200&#34;&gt;
  2971. &lt;/a&gt;
  2972. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7825.JPG&#34;&gt;
  2973.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7825.JPG&#34; width=&#34;200&#34;&gt;
  2974. &lt;/a&gt;
  2975. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7854.JPG&#34;&gt;
  2976.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7854.JPG&#34; width=&#34;200&#34;&gt;
  2977. &lt;/a&gt;
  2978. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7855.JPG&#34;&gt;
  2979.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7855.JPG&#34; width=&#34;200&#34;&gt;
  2980. &lt;/a&gt;
  2981. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7871.JPG&#34;&gt;
  2982.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7871.JPG&#34; width=&#34;200&#34;&gt;
  2983. &lt;/a&gt;
  2984. &lt;a href=&#34;/files/photos/./2017-05-12/IMG_7874.JPG&#34;&gt;
  2985.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-05-12/Thumbs/IMG_7874.JPG&#34; width=&#34;200&#34;&gt;
  2986. &lt;/a&gt;
  2987. &lt;/div&gt;
  2988.  
  2989. &lt;p class=&#34;datelink&#34;&gt;
  2990. &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; /
  2991. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  2992. &lt;a href=&#34;https://p1k3.com/2017/5/&#34; title=&#34;5&#34;&gt;5&lt;/a&gt; /
  2993. &lt;a href=&#34;https://p1k3.com/2017/5/12/&#34; title=&#34;12&#34;&gt;12&lt;/a&gt;
  2994. &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;
  2995.  
  2996. &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;
  2997.  
  2998. &lt;blockquote&gt;&lt;p&gt;To readers who enjoyed the 3-column layout, the Edgar Allen Poe quote, and the
  2999. engraving of the fragile rowboat disappearing into the mighty maelstrom: I&#38;rsquo;m
  3000. sorry. It&#38;rsquo;s all gone. To me, minimalism is less an aesthetic than it is the
  3001. search for time invariants, and well&#38;hellip;here we are.&lt;/p&gt;&lt;/blockquote&gt;
  3002.  
  3003. &lt;p&gt;I did have a certain fondness for the fragile rowboat, but broadly speaking I
  3004. think these are the right impulses.&lt;/p&gt;
  3005.  
  3006.  
  3007. &lt;p class=&#34;datelink&#34;&gt;
  3008. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  3009. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3010. &lt;a href=&#34;https://p1k3.com/2017/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  3011. &lt;a href=&#34;https://p1k3.com/2017/4/30/&#34; title=&#34;30&#34;&gt;30&lt;/a&gt;
  3012. &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;
  3013.  
  3014. &lt;h2&gt;mastodon.social&lt;/h2&gt;
  3015.  
  3016. &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
  3017. and lurked a little.  The vibe was a little heavy on the whole gay communist
  3018. furry post-tumblr thing for me to feel like I had a whole lot to add
  3019. personally, but it seemed like an interesting enough little corner of the
  3020. network all the same.&lt;/p&gt;
  3021.  
  3022. &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
  3023. bring it to the attention of the disgruntled-with-Twitter internet, and it got
  3024. a bunch of extra signups and traffic.  So far, despite an influx of longtime
  3025. twitterites, the dominant style is a lot less rampagingly negative than a lot
  3026. of places.  It&#38;rsquo;s also heavy on programming, mental health issues, formulaic
  3027. denouncements of capitalism, and reflexive Twitter-bashing.  Most specific
  3028. political content outside questions of software architecture seems to be
  3029. culturally discouraged, though it&#38;rsquo;s starting to filter in.&lt;/p&gt;
  3030.  
  3031. &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
  3032. Social&lt;/a&gt; et al. and takes seriously the idea of a guaranteed-open
  3033. 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
  3034. old-school services like e-mail.  Clients talk to a server, but servers are
  3035. many and interconnected, while the identity of the user is bound to a server
  3036. instance rather than global to the network.  There are problems, but from first
  3037. principles it&#38;rsquo;s a more hopeful of an effort than I expect from things that can
  3038. gain traction on the internet in 2017.&lt;/p&gt;
  3039.  
  3040. &lt;p&gt;Of course things could easily enough go to shit at any moment, and it does
  3041. nothing to solve &lt;a href=&#34;/2017/2/4/&#34;&gt;the problem of whether doing things on the public network is
  3042. a good idea at all&lt;/a&gt;.  All the same, it feels like a better effort
  3043. than yet another centralized service.&lt;/p&gt;
  3044.  
  3045. &lt;h2&gt;ignoring the internet&lt;/h2&gt;
  3046.  
  3047. &lt;p&gt;Outside of that one specific thing, I have been basically ignoring what happens
  3048. on the internet, especially the corners of it that are routine for professional
  3049. nerds and people with an interest in politics.  Which is probably detrimental
  3050. to both my career and my capacity for civic involvement in the long term, but
  3051. greatly increases the odds that I can work my way through any given waking day
  3052. without falling into a crippling despair.&lt;/p&gt;
  3053.  
  3054. &lt;p&gt;I recommend it unreservedly, and hope that I have the strength to continue it
  3055. as a practice.&lt;/p&gt;
  3056.  
  3057. &lt;p&gt;I&#38;rsquo;d like to work out a way to keep having political knowledge to the extent
  3058. that it informs my actions in a useful way, but I&#38;rsquo;m pretty sure spending all of
  3059. my time paralyzed with anger and disgust doesn&#38;rsquo;t do much for my political
  3060. efficacy or my relationships to other human beings.&lt;/p&gt;
  3061.  
  3062. &lt;h2&gt;don&#38;rsquo;t write the comments&lt;/h2&gt;
  3063.  
  3064. &lt;p&gt;A related thought:  I kind of stopped writing so many comments on websites, and
  3065. I sure do feel like less of a full-time asshole.&lt;/p&gt;
  3066.  
  3067. &lt;p&gt;&#38;ldquo;Don&#38;rsquo;t read the comments&#38;rdquo; has gotten pretty well ingrained in the general
  3068. understanding (if not the general behavior), but I think it probably doesn&#38;rsquo;t go
  3069. far enough.  It&#38;rsquo;s not just that they&#38;rsquo;re usually a bad idea to consume.  It&#38;rsquo;s
  3070. that undertaking their &lt;em&gt;production&lt;/em&gt; is on average actively harmful.&lt;/p&gt;
  3071.  
  3072. &lt;p&gt;The exceptions are real, but rare.&lt;/p&gt;
  3073.  
  3074.  
  3075. &lt;p class=&#34;datelink&#34;&gt;
  3076. &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; /
  3077. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3078. &lt;a href=&#34;https://p1k3.com/2017/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  3079. &lt;a href=&#34;https://p1k3.com/2017/4/12/&#34; title=&#34;12&#34;&gt;12&lt;/a&gt;
  3080. &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;
  3081.  
  3082. &lt;h2&gt;#IstandwithCEU&lt;/h2&gt;
  3083.  
  3084. &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
  3085. weeks&lt;/a&gt; staying with a friend in Budapest.  I was young and hadn&#38;rsquo;t seen
  3086. very much.  It felt like an extraordinary and sometimes electric place to me,
  3087. the first city I&#38;rsquo;d been in that felt like &lt;em&gt;Europe&lt;/em&gt;.&lt;/p&gt;
  3088.  
  3089. &lt;p&gt;I&#38;rsquo;ve seen a little bit more of the world since then, and I understand the kind
  3090. of place that Budapest is better now:  A local center with a deep, complicated,
  3091. and periodically brutal history, but also a periphery and a minor node in the
  3092. current graph of power and capital.  (And in that last way not unlike a lot of
  3093. the places I&#38;rsquo;ve lived.)  It remains one of my favorite cities; I&#38;rsquo;ve been back a
  3094. few times and will likely go again, depending on just how far the political
  3095. situation deteriorates.&lt;/p&gt;
  3096.  
  3097. &lt;p&gt;Because the political situation is pretty well fucked these days.  That friend
  3098. I first stayed with in Budapest works now at &lt;a href=&#34;https://www.ceu.edu/&#34;&gt;Central European
  3099. University&lt;/a&gt;, and CEU has lately been under direct legislative attack by a
  3100. government that news outlets very circumspectly describe as composed of
  3101. &#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
  3102. time I went&lt;/a&gt;.)&lt;/p&gt;
  3103.  
  3104. &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;
  3105.  
  3106. &lt;blockquote&gt;&lt;p&gt;On April 10, 2017, President of the Republic of Hungary Janos Ader signed
  3107. into law amendments to Hungary’s national higher education legislation which
  3108. restrict academic freedom for CEU and other international universities
  3109. operating in Hungary.&lt;/p&gt;
  3110.  
  3111. &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,
  3112. continues to pursue all available legal remedies. Further, CEU calls on the
  3113. Hungarian government to display the “mutual good will” called for by
  3114. President Ader to find a solution to enable CEU to stay in Budapest.&lt;/p&gt;&lt;/blockquote&gt;
  3115.  
  3116. &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;
  3117.  
  3118. &lt;p&gt;I&#38;rsquo;ll be writing some letters.  I&#38;rsquo;ve decided that&#38;rsquo;s my new thing, writing
  3119. letters.&lt;/p&gt;
  3120.  
  3121.  
  3122. &lt;p class=&#34;datelink&#34;&gt;
  3123. &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; /
  3124. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3125. &lt;a href=&#34;https://p1k3.com/2017/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  3126. &lt;a href=&#34;https://p1k3.com/2017/4/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt;
  3127. &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">
  3128. &lt;h1&gt;Thursday, April  6&lt;/h1&gt;
  3129.  
  3130. &lt;div class=comics&gt;
  3131.  &lt;p&gt;
  3132.    &lt;img src=&#34;/files/comics/2.jpg&#34;&gt;
  3133.  &lt;/p&gt;
  3134. &lt;/div&gt;
  3135.  
  3136. &lt;p class=&#34;datelink&#34;&gt;
  3137. &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; /
  3138. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3139. &lt;a href=&#34;https://p1k3.com/2017/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  3140. &lt;a href=&#34;https://p1k3.com/2017/4/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt;
  3141. &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;
  3142.  
  3143. &lt;h2&gt;weather&lt;/h2&gt;
  3144.  
  3145. &lt;div class=photos&gt;
  3146. &lt;a href=&#34;/files/photos/./2017-04-04/IMG_7738.JPG&#34;&gt;
  3147.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-04-04/Thumbs/IMG_7738.JPG&#34; width=&#34;200&#34;&gt;
  3148. &lt;/a&gt;
  3149. &lt;a href=&#34;/files/photos/./2017-04-04/IMG_7742.JPG&#34;&gt;
  3150.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-04-04/Thumbs/IMG_7742.JPG&#34; width=&#34;200&#34;&gt;
  3151. &lt;/a&gt;
  3152. &lt;a href=&#34;/files/photos/./2017-04-04/IMG_7750.JPG&#34;&gt;
  3153.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-04-04/Thumbs/IMG_7750.JPG&#34; width=&#34;200&#34;&gt;
  3154. &lt;/a&gt;
  3155. &lt;a href=&#34;/files/photos/./2017-04-04/IMG_7751.JPG&#34;&gt;
  3156.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-04-04/Thumbs/IMG_7751.JPG&#34; width=&#34;200&#34;&gt;
  3157. &lt;/a&gt;
  3158. &lt;a href=&#34;/files/photos/./2017-04-04/IMG_7752.JPG&#34;&gt;
  3159.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-04-04/Thumbs/IMG_7752.JPG&#34; width=&#34;200&#34;&gt;
  3160. &lt;/a&gt;
  3161. &lt;/div&gt;
  3162.  
  3163. &lt;p class=&#34;datelink&#34;&gt;
  3164. &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; /
  3165. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3166. &lt;a href=&#34;https://p1k3.com/2017/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt; /
  3167. &lt;a href=&#34;https://p1k3.com/2017/4/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt;
  3168. &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;
  3169.  
  3170. &lt;div class=photos&gt;
  3171. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7122.JPG&#34;&gt;
  3172.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7122.JPG&#34; width=&#34;200&#34;&gt;
  3173. &lt;/a&gt;
  3174. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7682.JPG&#34;&gt;
  3175.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7682.JPG&#34; width=&#34;200&#34;&gt;
  3176. &lt;/a&gt;
  3177. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7686.JPG&#34;&gt;
  3178.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7686.JPG&#34; width=&#34;200&#34;&gt;
  3179. &lt;/a&gt;
  3180. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7692.JPG&#34;&gt;
  3181.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7692.JPG&#34; width=&#34;200&#34;&gt;
  3182. &lt;/a&gt;
  3183. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7699.JPG&#34;&gt;
  3184.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7699.JPG&#34; width=&#34;200&#34;&gt;
  3185. &lt;/a&gt;
  3186. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7702.JPG&#34;&gt;
  3187.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7702.JPG&#34; width=&#34;200&#34;&gt;
  3188. &lt;/a&gt;
  3189. &lt;a href=&#34;/files/photos/./2017-03-28/IMG_7705.JPG&#34;&gt;
  3190.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-03-28/Thumbs/IMG_7705.JPG&#34; width=&#34;200&#34;&gt;
  3191. &lt;/a&gt;
  3192. &lt;/div&gt;
  3193.  
  3194. &lt;p class=&#34;datelink&#34;&gt;
  3195. &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; /
  3196. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3197. &lt;a href=&#34;https://p1k3.com/2017/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  3198. &lt;a href=&#34;https://p1k3.com/2017/3/28/&#34; title=&#34;28&#34;&gt;28&lt;/a&gt;
  3199. &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;
  3200.  
  3201. &lt;p&gt;you&#39;ve got to remember&lt;br /&gt;
  3202. that a lot of your mind,&lt;br /&gt;
  3203. a lot of the systems that your mind&lt;br /&gt;
  3204. integrates with&lt;br /&gt;
  3205. live outside of your body as you conventionally&lt;br /&gt;
  3206. think of it&lt;br /&gt;
  3207. outside of the skin and bones, beyond&lt;br /&gt;
  3208. the fur and feathers, external to the&lt;br /&gt;
  3209. narrow motions and faculties of an isolated animal&lt;/p&gt;
  3210.  
  3211. &lt;p&gt;you&#39;re on the bus, riding up the highway through&lt;br /&gt;
  3212. the grass and utility polls, past the houses&lt;br /&gt;
  3213. and herds and irrigation ditches&lt;br /&gt;
  3214. you&#39;re looking out the windows of a conveyance&lt;br /&gt;
  3215. borne on taxes and legislation and road projects&lt;br /&gt;
  3216. and the history of a whole place&lt;/p&gt;
  3217.  
  3218. &lt;p&gt;you&#39;ve got the wind in your hair and a watch on&lt;br /&gt;
  3219. your wrist telling time according to a system&lt;br /&gt;
  3220. with its roots centuries deep, date math grounded&lt;br /&gt;
  3221. somewhere in systems ancient now for millenia&lt;/p&gt;
  3222.  
  3223. &lt;p&gt;you&#39;re writing on a device impossible&lt;br /&gt;
  3224. to build a decade back&lt;br /&gt;
  3225. in strings of glyphs with their roots in&lt;br /&gt;
  3226. phonecia, in rome&lt;/p&gt;
  3227.  
  3228. &lt;p&gt;the birds are coming back and making nests&lt;br /&gt;
  3229. the grass and leaves are breaking out into the sun&lt;br /&gt;
  3230. you feel good when you step outside and breathe the air&lt;br /&gt;
  3231. the air is a product of a system well beyond your&lt;br /&gt;
  3232. understanding and control&lt;/p&gt;
  3233.  
  3234. &lt;p&gt;and yet also a system that includes you and enfolds&lt;br /&gt;
  3235. your actions, encompasses whatever meaning your life&lt;br /&gt;
  3236. might have, travels through the circuits flickering&lt;br /&gt;
  3237. inside your head, your heart, your lungs and legs&lt;br /&gt;
  3238. and fingers walking on the keys&lt;/p&gt;
  3239.  
  3240. &lt;p class=&#34;datelink&#34;&gt;
  3241. &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; /
  3242. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3243. &lt;a href=&#34;https://p1k3.com/2017/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  3244. &lt;a href=&#34;https://p1k3.com/2017/3/15/&#34; title=&#34;15&#34;&gt;15&lt;/a&gt;
  3245. &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;
  3246.  
  3247. &lt;h2&gt;git-do: execute commands in the top level of a git repo&lt;/h2&gt;
  3248.  
  3249. &lt;p&gt;tl;dr: Use &lt;code&gt;git config --global alias.exec &#39;!exec &#39;&lt;/code&gt;.   Or for some
  3250. 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
  3251. commands in the root of a git repository.&lt;/p&gt;
  3252.  
  3253. &lt;p class=&#34;centerpiece&#34;&gt; ❃ &lt;/p&gt;
  3254.  
  3255.  
  3256. &lt;p&gt;This blog lives in a git repository with entries broken up by date.  So, for
  3257. example, when editing this entry, I might be in a path like so:&lt;/p&gt;
  3258.  
  3259. &lt;pre&gt;&lt;code&gt;~/p1k3/archives/2017/3/11/
  3260. &lt;/code&gt;&lt;/pre&gt;
  3261.  
  3262. &lt;p&gt;I also have a &lt;code&gt;Makefile&lt;/code&gt; in the top level of the repo, which contains targets
  3263. 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
  3264. current working directory, I often found myself in a loop where I edit a blog
  3265. entry, change to the top level of a repo, run a &lt;code&gt;make&lt;/code&gt; command, and then need
  3266. to change the blog entry again.&lt;/p&gt;
  3267.  
  3268. &lt;p&gt;This seems silly, and generalizes to a bunch of different repositories.&lt;/p&gt;
  3269.  
  3270. &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
  3271. &lt;code&gt;git rev-parse --show-toplevel&lt;/code&gt; to get the root directory of the repository,
  3272. which led me to something like:&lt;/p&gt;
  3273.  
  3274. &lt;pre&gt;&lt;code&gt;$ git config --global alias.root &#34;rev-parse --show-toplevel&#34;
  3275. $ cd `git root` &#38;amp;&#38;amp; make render &#38;amp;&#38;amp; cd -
  3276. &lt;/code&gt;&lt;/pre&gt;
  3277.  
  3278. &lt;p&gt;That works, but it&#38;rsquo;s a stupid amount of typing.  There are a couple of
  3279. solutions for this.  One, from that SO post, is:&lt;/p&gt;
  3280.  
  3281. &lt;pre&gt;&lt;code&gt;$ git config --global alias.exec &#39;!exec &#39;
  3282. $ git exec make render
  3283. &lt;/code&gt;&lt;/pre&gt;
  3284.  
  3285. &lt;p&gt;This works because the leading &lt;code&gt;!&lt;/code&gt; on the command tells git to treat it as a
  3286. shell command, and by default git executes aliases to shell commands from the
  3287. top-level directory of the repo.  This is probably good enough, but I didn&#38;rsquo;t
  3288. notice it at first so I added a git subcommand called &lt;code&gt;git-do&lt;/code&gt; to do pretty
  3289. much the same.  A very simple version looks like this:&lt;/p&gt;
  3290.  
  3291. &lt;pre&gt;&lt;code&gt;#!/bin/sh
  3292.  
  3293. git_root=`git rev-parse --show-toplevel`
  3294. cd &#34;$git_root&#34;
  3295. [email protected]
  3296. &lt;/code&gt;&lt;/pre&gt;
  3297.  
  3298. &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
  3299. provides some boilerplate for shell scripts written as git subcommands:&lt;/p&gt;
  3300.  
  3301. &lt;pre&gt;&lt;code&gt;#!/usr/bin/env bash
  3302.  
  3303. # Help messages:
  3304. USAGE=&#34;&#38;lt;command&#38;gt;&#34;
  3305. LONG_USAGE=&#34;Executes &#38;lt;command&#38;gt; from the root of the repository.&#34;
  3306.  
  3307. # Tell git-sh-setup we&#39;re ok with being in a subdir:
  3308. SUBDIRECTORY_OK=1
  3309.  
  3310. source &#34;$(git --exec-path)/git-sh-setup&#34;
  3311.  
  3312. # Make sure we&#39;re in a working tree, jump to top level, do command:
  3313. require_work_tree_exists
  3314. cd_to_toplevel
  3315. [email protected]
  3316. &lt;/code&gt;&lt;/pre&gt;
  3317.  
  3318. &lt;p&gt;In both cases, &lt;code&gt;[email protected]&lt;/code&gt; is a variable containing all of the arguments to the
  3319. script, which run as shell commands.&lt;/p&gt;
  3320.  
  3321.  
  3322. &lt;p class=&#34;datelink&#34;&gt;
  3323. &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; /
  3324. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3325. &lt;a href=&#34;https://p1k3.com/2017/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt; /
  3326. &lt;a href=&#34;https://p1k3.com/2017/3/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt;
  3327. &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;
  3328.  
  3329. &lt;h2&gt;reading&lt;/h2&gt;
  3330.  
  3331. &lt;p&gt;&lt;em&gt;The War Against the Assholes&lt;/em&gt;, by Sam Munson:  New York City highschooler
  3332. private school magician fantasy with substance abuse and savage beatings.
  3333. Better, I think, than this sub-subgenre at its worst.  Better than that
  3334. description makes it sound.  I was unconvinced by plenty of it.  I&#38;rsquo;m a little
  3335. angry that I found it so compelling.  All the same, I read it in a couple of
  3336. sittings, the first in the bookstore and the second of them thoroughly
  3337. whiskey-drunk late on a Sunday afternoon, and the writing grabbed me in a way
  3338. that most fiction I&#38;rsquo;ve tried lately hasn&#38;rsquo;t.&lt;/p&gt;
  3339.  
  3340. &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;
  3341.  
  3342. &lt;p class=&#34;centerpiece&#34;&gt; ✶ &lt;/p&gt;
  3343.  
  3344.  
  3345. &lt;p&gt;&lt;em&gt;Pansy&lt;/em&gt;, poems by Andrea Gibson: A local poet - a friend of friends, or a
  3346. friend of a friend of a friend, or something approximately like that.  I was
  3347. walking through the Boulder Book Store and made my usual hopeless circle past
  3348. the poetry section (hopeless, to be clear, because I still don&#38;rsquo;t know a goddamn
  3349. thing about poetry and I&#38;rsquo;m hopelessly unequipped to read most of it with any
  3350. real perception or discernment), and I thought well, why not.  I&#38;rsquo;ve read their
  3351. work before.  I&#38;rsquo;ve probably been to a reading.  Unlike many poems that I buy,
  3352. I actually read these.  They were good, as far as I&#38;rsquo;m equipped to tell.&lt;/p&gt;
  3353.  
  3354.  
  3355. &lt;p class=&#34;datelink&#34;&gt;
  3356. &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; /
  3357. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3358. &lt;a href=&#34;https://p1k3.com/2017/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  3359. &lt;a href=&#34;https://p1k3.com/2017/2/28/&#34; title=&#34;28&#34;&gt;28&lt;/a&gt;
  3360. &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;
  3361.  
  3362. &lt;h2&gt;the incipient model&lt;/h2&gt;
  3363.  
  3364. &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
  3365. written&lt;/a&gt;:&lt;/p&gt;
  3366.  
  3367. &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
  3368. say why.  I don&#38;rsquo;t blame anyone else for that impulse, but it&#38;rsquo;s not for me right
  3369. now.  Maybe I&#38;rsquo;m just too obsessed with memory to deliberately efface one of the
  3370. few artifacts I&#38;rsquo;ve made out of it.  Or too conscious of how little else I&#38;rsquo;ve
  3371. built than a pile of words, as I near an age when it&#38;rsquo;s just as likely the bulk
  3372. of my accomplishments are in the past.&lt;/p&gt;&lt;/blockquote&gt;
  3373.  
  3374. &lt;p&gt;But having written that, I keep thinking about the value of putting anything on
  3375. the public internet at all.&lt;/p&gt;
  3376.  
  3377. &lt;p&gt;This is rooted in a bunch of half-formed thoughts:  I used to think the
  3378. internet was in some deep sense a benign phenomenon, with some kind of root
  3379. ethos or principle that tended to erode power and build a more humane
  3380. 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;
  3381.  
  3382. &lt;p class=&#34;centerpiece&#34;&gt; ✧ &lt;/p&gt;
  3383.  
  3384.  
  3385. &lt;p&gt;The first thing is that networked computation is an epidemic.&lt;/p&gt;
  3386.  
  3387. &lt;p&gt;Cellphones have already rewritten civilization; beyond that, the epidemic is
  3388. expanding into every remaining domain where it can be supported by market
  3389. speculation, narrow technological advantage, fast prototyping, spying on users,
  3390. and/or generalized b-school hype-machine idiocy.  Processing power is cheap,
  3391. wireless networks begin to approach ubiquity, software is easier than hardware,
  3392. business is full of gullible power-mongering assholes, and data collection is
  3393. like catnip to every system of control on the planet.  That people and
  3394. industries will keep putting computers in shit is &lt;em&gt;hilariously overdetermined&lt;/em&gt;,
  3395. and there is nothing short of an apocalyptic calamity that can be done to stop
  3396. it.&lt;/p&gt;
  3397.  
  3398. &lt;p&gt;Network-scale capital has built us a baby panopticon, and it&#38;rsquo;s maturing fast.
  3399. So is the technology to extract meaningful structure from all of the data it
  3400. eats.&lt;/p&gt;
  3401.  
  3402. &lt;p&gt;We already know, for example, that photos exposed to the internet are scanned
  3403. for recognizable objects (like faces) and correlated.  Google does this for
  3404. image search.  Social networks do this to associate media with individual
  3405. users.  Law enforcement agencies are applying similar tech to an ever-growing
  3406. firehose of surveillance data.  Facial recognition and license-plate tracking
  3407. have only just begun having consequences, and they&#38;rsquo;re the tip of an iceberg.
  3408. Given enough storage and compute, the facts and associations latent in things
  3409. we think of as opaque blobs of content are about to become visible to everybody
  3410. 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;
  3411.  
  3412. &lt;p&gt;Of course there&#38;rsquo;s a vast amount of opportunistic bullshit being spun about
  3413. machine learning and AI right now, but all of this is really just an emergent
  3414. effect of a less shiny-marketable thing: Databases and networks have
  3415. consequences.  Kinds of data that our culture still think of as requiring human
  3416. interpretation are rapidly becoming easily-queried tags and indexes.&lt;/p&gt;
  3417.  
  3418. &lt;p&gt;So the network at large contains this cumulative model of me.  It&#38;rsquo;s not all
  3419. contiguous and cross-referenced yet.  Much of it is hidden from direct view,
  3420. it&#38;rsquo;s lossy in a bunch of particulars, and it&#38;rsquo;s still fractured in part by legal
  3421. apparatus and social norms.  But it&#38;rsquo;s a big thing and it&#38;rsquo;s not going away.
  3422. 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
  3423. no matter what.  There are very few remaining technical impediments, and no
  3424. political institutions seem willing (or able) to create effective legal ones.&lt;/p&gt;
  3425.  
  3426. &lt;p&gt;So I wonder:  Should I be feeding this model my writing and pictures?  Should I
  3427. volunteer, for that matter, any kind of self-surveillance?&lt;/p&gt;
  3428.  
  3429. &lt;p class=&#34;centerpiece&#34;&gt; ✧ &lt;/p&gt;
  3430.  
  3431.  
  3432. &lt;p&gt;The second thing is that we&#38;rsquo;re starting to have good empirical evidence about
  3433. the kinds of social systems the internet generates.  Plenty of them are good,
  3434. or at least fairly benign.  Others of them are, for example, &lt;em&gt;a resurgent
  3435. fascism&lt;/em&gt;.  Hateful shitheads turn out to do just fine in the network
  3436. environment.  Reactionary backlash and the inelastic properties of damaged
  3437. cultures propagate as well in new media as anything does.  Sometimes better.&lt;/p&gt;
  3438.  
  3439. &lt;p&gt;There&#38;rsquo;s something here about systems.  I was wrong about how this system
  3440. operates and what&#38;rsquo;s possible within it.  I think I&#38;rsquo;ve been naive about systems
  3441. &lt;em&gt;in general&lt;/em&gt;.&lt;/p&gt;
  3442.  
  3443. &lt;p&gt;So I wonder:  What part of the self-surveillance I volunteer isn&#38;rsquo;t an attack
  3444. surface?&lt;/p&gt;
  3445.  
  3446. &lt;p class=&#34;centerpiece&#34;&gt; ✧ &lt;/p&gt;
  3447.  
  3448.  
  3449. &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
  3450. competing impulse to hide all the stuff as far as possible and take down all of
  3451. the public accounts.  Go dark and operate only in the quiet corners of things,
  3452. keep longform writing and pictures for letters to family and a handful of
  3453. friends.&lt;/p&gt;
  3454.  
  3455.  
  3456. &lt;p class=&#34;datelink&#34;&gt;
  3457. &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; /
  3458. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3459. &lt;a href=&#34;https://p1k3.com/2017/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt; /
  3460. &lt;a href=&#34;https://p1k3.com/2017/2/4/&#34; title=&#34;4&#34;&gt;4&lt;/a&gt;
  3461. &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;
  3462.  
  3463. &lt;p&gt;insomnia&#39;s a poor subject, i guess&lt;br /&gt;
  3464. but an inevitable one&lt;br /&gt;
  3465. it&#39;s too late to be awake,&lt;br /&gt;
  3466. but you&#39;re awake&lt;br /&gt;
  3467. all the failures and mistakes&lt;br /&gt;
  3468. are playing on tight loops in your head&lt;br /&gt;
  3469. all the pain you cause&lt;br /&gt;
  3470. the unkindnesses you&#39;ve dealt&lt;br /&gt;
  3471. out and the promises you&#39;ve broken&lt;/p&gt;
  3472.  
  3473. &lt;p&gt;daytimes the sunlight keeps them&lt;br /&gt;
  3474. out of circulation for a while&lt;br /&gt;
  3475. and the machinery of distraction you cultivate&lt;br /&gt;
  3476. but the sun goes down the engines&lt;br /&gt;
  3477. cough and sputter out&lt;br /&gt;
  3478. and there you are again&lt;br /&gt;
  3479. the future like an empty field&lt;br /&gt;
  3480. the past so many absences and resignations&lt;br /&gt;
  3481. the cost of everything tallying itself&lt;br /&gt;
  3482. in the tattered ledgerbook of&lt;br /&gt;
  3483. a memory handled carelessly&lt;br /&gt;
  3484. for too long&lt;/p&gt;
  3485.  
  3486. &lt;p&gt;so you write something&lt;br /&gt;
  3487. it doesn&#39;t really matter what&lt;br /&gt;
  3488. a letter, a poem&lt;br /&gt;
  3489. you&#39;re only trying to obscure for now the traces&lt;br /&gt;
  3490. of all that traffic in mistakes and dull&lt;br /&gt;
  3491. the chattering exchange of all your trade in the&lt;br /&gt;
  3492. economy of squandered gifts&lt;/p&gt;
  3493.  
  3494. &lt;p class=&#34;datelink&#34;&gt;
  3495. &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; /
  3496. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3497. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3498. &lt;a href=&#34;https://p1k3.com/2017/1/27/&#34; title=&#34;27&#34;&gt;27&lt;/a&gt;
  3499. &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;
  3500.  
  3501. &lt;p&gt;I went down to the Women&#38;rsquo;s March in Denver on Saturday with my girlfriend and
  3502. my sister and a couple of our friends and (from the looks of things at the bus
  3503. station) a pretty good percentage of Boulder County.  I didn&#38;rsquo;t take a camera
  3504. any better than my phone; none of us were really sure what to expect from the
  3505. whole thing, and traveling light seemed like a good idea.&lt;/p&gt;
  3506.  
  3507. &lt;div class=&#34;photos&#34;&gt;
  3508. &lt;a href=&#34;/files/photos/./2017-01-25/IMG_7661.JPG&#34;&gt;
  3509.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-25/Thumbs/IMG_7661.JPG&#34; width=&#34;200&#34;&gt;
  3510. &lt;/a&gt;
  3511. &lt;a href=&#34;/files/photos/./2017-01-25/IMG_7664.JPG&#34;&gt;
  3512.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-25/Thumbs/IMG_7664.JPG&#34; width=&#34;200&#34;&gt;
  3513. &lt;/a&gt;
  3514. &lt;a href=&#34;/files/photos/./2017-01-25/IMG_7665.JPG&#34;&gt;
  3515.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-25/Thumbs/IMG_7665.JPG&#34; width=&#34;200&#34;&gt;
  3516. &lt;/a&gt;
  3517. &lt;a href=&#34;/files/photos/./2017-01-25/signal-2017-01-21-100339.jpg&#34;&gt;
  3518.  &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;
  3519. &lt;/a&gt;
  3520. &lt;/div&gt;
  3521.  
  3522.  
  3523. &lt;p&gt;&lt;em&gt;above: rough-draft sign mockups, patches, blurry phonecam of crowd&lt;/em&gt;&lt;/p&gt;
  3524.  
  3525. &lt;p&gt;I only went to a few antiwar events in the run-up to the Iraq invasion (a thing
  3526. I didn&#38;rsquo;t really know what to think about, in a time before I knew what to think
  3527. about a lot of things).  I sat out Occupy, although I had friends involved in
  3528. one way or another.  I&#38;rsquo;ve never done a genuinely big march or demonstration of
  3529. any kind, really.  We talked to people on the way down who said they never had
  3530. either, but they felt that things had gone too far and it was time.&lt;/p&gt;
  3531.  
  3532. &lt;p&gt;As it turned out, this march at least was overwhelmingly peaceful.  The parts
  3533. of it I was there for were, I don&#38;rsquo;t know how else to put this, mellow.  Calm.
  3534. Kind of happy.  Lots of pleasant middle-aged ladies.  Families with kids.
  3535. Maybe the biggest crowd I&#38;rsquo;ve ever been part of, and everyone who bumped into me
  3536. politely apologized.  I think I exchanged smiles with a lot of people who have
  3537. been feeling for a while like the entire probable tide of history is chipping away at
  3538. their sanity.&lt;/p&gt;
  3539.  
  3540. &lt;p&gt;I knew some of the chants:  &#38;ldquo;No justice / no peace&#38;rdquo;, &#38;ldquo;no Trump / no KKK / no
  3541. fascist USA&#38;rdquo;.  &#38;ldquo;What does democracy look like / this is what democracy looks
  3542. like&#38;rdquo;.  Is some of this shit cringey in its sincerity?  Yes.  On the other
  3543. hand, do I disagree?  Not really.  The Klan and fascism and Donald Trump are
  3544. all bad things.  Down with this sort of thing.&lt;/p&gt;
  3545.  
  3546. &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;
  3547. was both affirming and not a thing you want to look at too hard, because why
  3548. are we in a situation where asserting that there&#38;rsquo;s something like an
  3549. observable, correlatable external reality qualifies as a form of dissent?&lt;/p&gt;
  3550.  
  3551. &lt;p&gt;I don&#38;rsquo;t have any neat conclusions about this.  I&#38;rsquo;ve spent a long time thinking
  3552. that protest in general has been pretty well assimilated and neutralized by an
  3553. emergent collusion between governments, law enforcement, and news media.  I
  3554. still think that, but I have other thoughts too:  Maybe marching and chanting
  3555. in the streets is for its effect on the marchers and the marched-for, not the
  3556. marched-against.  Maybe it&#38;rsquo;s not all quite so toothless as I have been
  3557. conditioned to think.&lt;/p&gt;
  3558.  
  3559. &lt;p&gt;I&#38;rsquo;m not going to frame taking to the streets as a moral imperative.  But I also
  3560. think well, it&#38;rsquo;s not &lt;em&gt;nothing&lt;/em&gt;.&lt;/p&gt;
  3561.  
  3562.  
  3563. &lt;p class=&#34;datelink&#34;&gt;
  3564. &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; /
  3565. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3566. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3567. &lt;a href=&#34;https://p1k3.com/2017/1/25/&#34; title=&#34;25&#34;&gt;25&lt;/a&gt;
  3568. &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;
  3569.  
  3570. &lt;h2&gt;shell history using RASH&lt;/h2&gt;
  3571.  
  3572. &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
  3573. a &lt;a href=&#34;https://github.com/brennen/commandlog/&#34;&gt;utility called commandlog&lt;/a&gt; for keeping Bash and Zsh shell
  3574. history in a database.  My proof-of-concept was tiny and didn&#38;rsquo;t do much, but it
  3575. seemed like an obviously fruitful idea.  Especially after I talked to friends about
  3576. the idea of using shell history to build up a kind of logbook and per-directory
  3577. menu system&lt;/p&gt;
  3578.  
  3579. &lt;p&gt;I&#38;rsquo;m fighting a cold tonight and too fuzzy in the head to work on anything very
  3580. complicated, so I thought I&#38;rsquo;d hack on commandlog a bit.  It occurred to me
  3581. that I hadn&#38;rsquo;t really looked very hard at other alternatives, so I did some
  3582. googling first.&lt;/p&gt;
  3583.  
  3584. &lt;p&gt;Sure enough, people have done some work.  I&#38;rsquo;m tagging a few things under
  3585. &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
  3586. 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
  3587. commandlog, it keeps history in an SQLite db, albeit with a weird intermediate
  3588. step where JSON files are written to a directory and then added to the database
  3589. by a daemon process.&lt;/p&gt;
  3590.  
  3591. &lt;p&gt;RASH seems to have a bunch of the features I want out of a tool like this.
  3592. For example, you can search history by the current directory:&lt;/p&gt;
  3593.  
  3594. &lt;pre&gt;&lt;code&gt;$ rash search -d .
  3595. ll
  3596. v index
  3597. fg
  3598. h
  3599. ls
  3600. touch tag-technical tag-commandlog
  3601. &lt;/code&gt;&lt;/pre&gt;
  3602.  
  3603. &lt;p&gt;Or use a regexp to look for commands beginning with &lt;code&gt;comment&lt;/code&gt;, and display 5
  3604. lines of context on either side of them:&lt;/p&gt;
  3605.  
  3606. &lt;pre&gt;&lt;code&gt;$ rash search -M &#39;^comment&#39; -C 5
  3607. rash search -M comment -C 3 --with-command-id
  3608. rash search -M comment -C 3
  3609. rash search -M comment
  3610. rash search -h
  3611. rash search
  3612. comment &#34;checking out rash for shell history logging&#34;
  3613. sqlite3 ./db.sqlite
  3614. rash search -h
  3615. lah
  3616. lah
  3617. &lt;/code&gt;&lt;/pre&gt;
  3618.  
  3619. &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
  3620. of tasks.  It also logs a customizable set of environment variables, which
  3621. would probably be the right thing if I wanted to add tagging or grouping of
  3622. commands.&lt;/p&gt;
  3623.  
  3624. &lt;p&gt;My hesitation is that it&#38;rsquo;s a Python project with a low version number and only
  3625. partial Python 3 support, and development appears to have stopped some time in
  3626. 2015.  Still, it&#38;rsquo;s promising.  I &lt;em&gt;probably&lt;/em&gt; shouldn&#38;rsquo;t write my own version of
  3627. all this if an existing project proves to work.&lt;/p&gt;
  3628.  
  3629.  
  3630. &lt;p class=&#34;datelink&#34;&gt;
  3631. &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; /
  3632. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3633. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3634. &lt;a href=&#34;https://p1k3.com/2017/1/24/&#34; title=&#34;24&#34;&gt;24&lt;/a&gt;
  3635. &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;
  3636.  
  3637. &lt;h2&gt;org mode&lt;/h2&gt;
  3638.  
  3639. &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
  3640. a &lt;a href=&#34;http://spacemacs.org/&#34;&gt;spacemacs&lt;/a&gt; install.  I wanted to find something more structured
  3641. for notes and TODOs than the directory full of text files I&#38;rsquo;ve been using, and
  3642. Org nearly always comes up in these discussions.&lt;/p&gt;
  3643.  
  3644. &lt;p&gt;It turns out to be nearly as all-singing-all-dancing as it&#38;rsquo;s made out to be:
  3645. Crazy huge featureset, and situated in a very capable environment.  (Emacs
  3646. really is something very like an operating system, and has many of the
  3647. qualities of being an &lt;em&gt;environment of tool usage&lt;/em&gt; that I look for in software.)&lt;/p&gt;
  3648.  
  3649. &lt;p&gt;The basic idea is that it&#38;rsquo;s an outliner, with collapsible nested sections that
  3650. can be cycled open and closed by hitting &lt;kbd&gt;Tab&lt;/kbd&gt;.  There are checklist
  3651. items that can be cycled through various states, date metadata, and ways to
  3652. execute inlined code.  There&#38;rsquo;s also tooling for viewing uncompleted tasks, a
  3653. calendar interface, and an agenda based on upcoming events and task start dates
  3654. / deadlines.&lt;/p&gt;
  3655.  
  3656. &lt;p&gt;The syntax is moderately ugly and not as regular as I would have expected from
  3657. its Lisp-adjacency, but it&#38;rsquo;s handled fluidly, with fewer glitches and more
  3658. polish than I tend to expect from complex editor plugins.&lt;/p&gt;
  3659.  
  3660. &lt;p&gt;It&#38;rsquo;s magical, but I didn&#38;rsquo;t actually wind up sticking with it.&lt;/p&gt;
  3661.  
  3662. &lt;h2&gt;vimwiki&lt;/h2&gt;
  3663.  
  3664. &lt;p&gt;I got a few days into the Org mode thing, and then Ben pointed me at
  3665. &lt;a href=&#34;https://vimwiki.github.io/&#34;&gt;Vimwiki&lt;/a&gt;.  I had already by that point tried
  3666. &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.
  3667. Vimwiki turned out to be it, or at least something much closer.&lt;/p&gt;
  3668.  
  3669. &lt;p&gt;Vim-instead-of-Emacs reasons:&lt;/p&gt;
  3670.  
  3671. &lt;ul&gt;
  3672. &lt;li&gt;&lt;p&gt;Even with good Vim-style keybindings (and evil-mode, which is on by default
  3673. in spacemacs, is very good), I always wind up in the part of Emacs that&#38;rsquo;s
  3674. physically painful to use.  (Lots of key chording really seems to bring on
  3675. my always-latent RSI.)&lt;/p&gt;&lt;/li&gt;
  3676. &lt;li&gt;&lt;p&gt;I lean a lot on Vim behavior that&#38;rsquo;s different or missing
  3677. in evil-mode.  I&#38;rsquo;m not sure I could even tell you &lt;em&gt;what&lt;/em&gt; behavior, just
  3678. that it differs enough to break my brain.  Stuff around visual selections
  3679. and line endings is a lot of it, I think.&lt;/p&gt;&lt;/li&gt;
  3680. &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;
  3681. &lt;/ul&gt;
  3682.  
  3683.  
  3684. &lt;p&gt;Vimwiki-is-legit-good reasons:&lt;/p&gt;
  3685.  
  3686. &lt;ul&gt;
  3687. &lt;li&gt;&lt;p&gt;This is a simple, old-school wiki.  Storage is plaintext with
  3688. very basic syntax, links and new pages are cheap to create.&lt;/p&gt;&lt;/li&gt;
  3689. &lt;li&gt;&lt;p&gt;You can be up and running with no config and 4 or 5 key sequences with
  3690. pretty simple mnemonics.  I didn&#38;rsquo;t have to memorize much of anything I
  3691. don&#38;rsquo;t already know.&lt;/p&gt;&lt;/li&gt;
  3692. &lt;li&gt;&lt;p&gt;There&#38;rsquo;s a checklist syntax, headers are easy, and you can inline code (with
  3693. syntax highlighting).  This is pretty much all I need.&lt;/p&gt;&lt;/li&gt;
  3694. &lt;/ul&gt;
  3695.  
  3696.  
  3697. &lt;p&gt;Lastly, there&#38;rsquo;s the diary.  This turns out to be the thing I use more than any
  3698. other feature.  It works like this:  You press &lt;kbd&gt;,w,w&lt;/kbd&gt; (where
  3699. &lt;kbd&gt;,&lt;/kbd&gt; is your leader key) and you get a page for the current date.&lt;/p&gt;
  3700.  
  3701. &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;
  3702. to manage plugins - you may prefer other options):&lt;/p&gt;
  3703.  
  3704. &lt;pre&gt;&lt;code&gt;&#34; a calendar - used in conjunction with vimwiki diaries
  3705. 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;}
  3706. Plugin &#39;mattn/calendar-vim&#39;
  3707.  
  3708. &#34; CUSTOMIZE: vimwikis - for notes, daily logs, etc. {{{
  3709.  
  3710.  let wiki = {}
  3711.  let wiki.path = &#39;~/notes/vimwiki/&#39;
  3712.  let wiki.path_html = &#39;~/notes/html/&#39;
  3713.  let wiki.auto_tags = 1
  3714.  
  3715.  &#34; do syntax highlight in preformatted blocks:
  3716.  let wiki.nested_syntaxes = {
  3717.    \ &#39;python&#39;: &#39;python&#39;,
  3718.    \ &#39;ruby&#39;: &#39;ruby&#39;,
  3719.    \ &#39;perl&#39;: &#39;perl&#39;,
  3720.    \ &#39;sh&#39;: &#39;sh&#39;
  3721.  \ }
  3722.  
  3723.  &#34; there can be many of these:
  3724.  let g:vimwiki_list = [wiki]
  3725.  
  3726.  let g:vimwiki_folding = &#39;expr&#39;
  3727.  
  3728.  Plugin &#39;vimwiki/vimwiki&#39;
  3729.  
  3730. &#34; }}}
  3731. &lt;/code&gt;&lt;/pre&gt;
  3732.  
  3733. &lt;p&gt;Nothing is perfect, but if you&#38;rsquo;re already a user of Vim and looking for a
  3734. semi-formal note-taking paradigm, I endorse Vimwiki as a starting point.&lt;/p&gt;
  3735.  
  3736. &lt;p&gt;For future work, I&#38;rsquo;d like to think about:&lt;/p&gt;
  3737.  
  3738. &lt;ul&gt;
  3739. &lt;li&gt;&lt;p&gt;Executing inlined code (I already have this for Markdown documents;
  3740. it should be simple enough).&lt;/p&gt;&lt;/li&gt;
  3741. &lt;li&gt;&lt;p&gt;Inlining structured data (like timestamps for invoicing).&lt;/p&gt;&lt;/li&gt;
  3742. &lt;li&gt;&lt;p&gt;Some kind of glue script to correlate diary entries with VCS commit logs,
  3743. Atom/RSS feeds, and command-line history.&lt;/p&gt;&lt;/li&gt;
  3744. &lt;li&gt;&lt;p&gt;Using Vimwiki to manage the wiki entries on this site that used to be
  3745. handled by WalaWiki (I&#38;rsquo;d intended to turn WalaWiki back on, but the modern
  3746. web is such a hostile environment that I think it&#38;rsquo;d require a from-scratch
  3747. rewrite or use of some other wiki platform to feel safe exposing it.  It&#38;rsquo;s
  3748. easier to just generate static HTML pages and accept changes by way of
  3749. git).&lt;/p&gt;&lt;/li&gt;
  3750. &lt;/ul&gt;
  3751.  
  3752.  
  3753.  
  3754. &lt;p class=&#34;datelink&#34;&gt;
  3755. &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; /
  3756. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3757. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3758. &lt;a href=&#34;https://p1k3.com/2017/1/22/&#34; title=&#34;22&#34;&gt;22&lt;/a&gt;
  3759. &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;
  3760.  
  3761. &lt;p&gt;the text is a program&lt;br /&gt;
  3762. running on the reader&#39;s mind&lt;br /&gt;
  3763. this is no small responsibility&lt;/p&gt;
  3764.  
  3765. &lt;p&gt;it consumes resources and&lt;br /&gt;
  3766. has side effects in&lt;br /&gt;
  3767. a highly &lt;a href=&#34;/2012/10/9&#34;&gt;stateful system&lt;/a&gt;&lt;br /&gt;
  3768. indexes into existing storage&lt;br /&gt;
  3769. and may replicate itself in exposed&lt;br /&gt;
  3770. environments&lt;/p&gt;
  3771.  
  3772. &lt;p&gt;may run in parallel&lt;br /&gt;
  3773. on many minds,&lt;br /&gt;
  3774. or become a dependency&lt;br /&gt;
  3775. of other texts, other programs&lt;br /&gt;
  3776. entire operating systems&lt;br /&gt;
  3777. of the human soul&lt;/p&gt;
  3778.  
  3779. &lt;p&gt;i mean this as more&lt;br /&gt;
  3780. than an image&lt;br /&gt;
  3781. it&#39;s broadly true, if imprecise  &#38;mdash; &lt;/p&gt;
  3782.  
  3783. &lt;p&gt;just as in code we programmers&lt;br /&gt;
  3784. too routinely neglect our responsibilities&lt;br /&gt;
  3785. even as our art becomes the stuff of&lt;br /&gt;
  3786. power and territory,&lt;br /&gt;
  3787. in all this text we seem to neglect&lt;br /&gt;
  3788. the fragility and transience of mind&lt;br /&gt;
  3789. the possibility of harm&lt;br /&gt;
  3790. the cost of all these wasted cycles&lt;br /&gt;
  3791. and chained complexities&lt;/p&gt;
  3792.  
  3793. &lt;p class=&#34;datelink&#34;&gt;
  3794. &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; /
  3795. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3796. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3797. &lt;a href=&#34;https://p1k3.com/2017/1/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  3798. &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;
  3799.  
  3800. &lt;div class=&#34;photos&#34;&gt;
  3801. &lt;a href=&#34;/files/photos/./2017-01-19/IMG_6905.JPG&#34;&gt;
  3802.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-19/Thumbs/IMG_6905.JPG&#34; width=&#34;200&#34;&gt;
  3803. &lt;/a&gt;
  3804. &lt;/div&gt;
  3805.  
  3806. &lt;p class=&#34;datelink&#34;&gt;
  3807. &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; /
  3808. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3809. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3810. &lt;a href=&#34;https://p1k3.com/2017/1/19/&#34; title=&#34;19&#34;&gt;19&lt;/a&gt;
  3811. &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;
  3812.  
  3813. &lt;p&gt;enough exposure to the look and feel of&lt;br /&gt;
  3814. old science fiction will give you&lt;br /&gt;
  3815. this kind of double vision when it comes&lt;br /&gt;
  3816. to the style of the present&lt;/p&gt;
  3817.  
  3818. &lt;p&gt;the valence of the future has changed&lt;br /&gt;
  3819. it has begun to merge with that of the present moment&lt;br /&gt;
  3820. which maybe signifies a shear in the structure&lt;br /&gt;
  3821. of, at least, our tastes and expectations&lt;/p&gt;
  3822.  
  3823. &lt;p&gt;i started consuming ideas of the future&lt;br /&gt;
  3824. by reading ones that had aged into alternate histories&lt;br /&gt;
  3825. decades before i was born;&lt;br /&gt;
  3826. in the decades since then i have outlived the&lt;br /&gt;
  3827. time horizon of countless others&lt;/p&gt;
  3828.  
  3829. &lt;p&gt;this may help explain why, in the chronological&lt;br /&gt;
  3830. territory of my mind, 1970 is always&lt;br /&gt;
  3831. somewhere in the near-future-past&lt;br /&gt;
  3832. and 2017 has that strange dual quality of &lt;i&gt;now&lt;/i&gt;&lt;br /&gt;
  3833. and &lt;i&gt;still yet to come&lt;/i&gt;&lt;/p&gt;
  3834.  
  3835. &lt;p class=&#34;datelink&#34;&gt;
  3836. &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; /
  3837. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3838. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3839. &lt;a href=&#34;https://p1k3.com/2017/1/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  3840. &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;
  3841.  
  3842. &lt;div class=&#34;photos&#34;&gt;
  3843. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_6960.JPG&#34;&gt;
  3844.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_6960.JPG&#34; width=&#34;200&#34;&gt;
  3845. &lt;/a&gt;
  3846. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_6966.JPG&#34;&gt;
  3847.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_6966.JPG&#34; width=&#34;200&#34;&gt;
  3848. &lt;/a&gt;
  3849. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_6967.JPG&#34;&gt;
  3850.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_6967.JPG&#34; width=&#34;200&#34;&gt;
  3851. &lt;/a&gt;
  3852. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_6969.JPG&#34;&gt;
  3853.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_6969.JPG&#34; width=&#34;200&#34;&gt;
  3854. &lt;/a&gt;
  3855. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_6974.JPG&#34;&gt;
  3856.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_6974.JPG&#34; width=&#34;200&#34;&gt;
  3857. &lt;/a&gt;
  3858. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7008.JPG&#34;&gt;
  3859.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7008.JPG&#34; width=&#34;200&#34;&gt;
  3860. &lt;/a&gt;
  3861. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7011.JPG&#34;&gt;
  3862.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7011.JPG&#34; width=&#34;200&#34;&gt;
  3863. &lt;/a&gt;
  3864. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7013.JPG&#34;&gt;
  3865.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7013.JPG&#34; width=&#34;200&#34;&gt;
  3866. &lt;/a&gt;
  3867. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7016.JPG&#34;&gt;
  3868.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7016.JPG&#34; width=&#34;200&#34;&gt;
  3869. &lt;/a&gt;
  3870. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7018.JPG&#34;&gt;
  3871.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7018.JPG&#34; width=&#34;200&#34;&gt;
  3872. &lt;/a&gt;
  3873. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7027.JPG&#34;&gt;
  3874.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7027.JPG&#34; width=&#34;200&#34;&gt;
  3875. &lt;/a&gt;
  3876. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7031.JPG&#34;&gt;
  3877.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7031.JPG&#34; width=&#34;200&#34;&gt;
  3878. &lt;/a&gt;
  3879. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7032.JPG&#34;&gt;
  3880.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7032.JPG&#34; width=&#34;200&#34;&gt;
  3881. &lt;/a&gt;
  3882. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7038.JPG&#34;&gt;
  3883.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7038.JPG&#34; width=&#34;200&#34;&gt;
  3884. &lt;/a&gt;
  3885. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7045.JPG&#34;&gt;
  3886.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7045.JPG&#34; width=&#34;200&#34;&gt;
  3887. &lt;/a&gt;
  3888. &lt;a href=&#34;/files/photos/./2017-01-11/IMG_7088.JPG&#34;&gt;
  3889.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2017-01-11/Thumbs/IMG_7088.JPG&#34; width=&#34;200&#34;&gt;
  3890. &lt;/a&gt;
  3891. &lt;/div&gt;
  3892.  
  3893. &lt;p class=&#34;datelink&#34;&gt;
  3894. &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; /
  3895. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  3896. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  3897. &lt;a href=&#34;https://p1k3.com/2017/1/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt;
  3898. &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;
  3899.  
  3900. &lt;h2&gt;initial notes on the dell xps 13 developer edition (9360)&lt;/h2&gt;
  3901.  
  3902. &lt;p&gt;This will probably only be of interest to people who own (or are thinking about
  3903. owning) a Dell XPS 13, and running Debian GNU/Linux on it.&lt;/p&gt;
  3904.  
  3905. &lt;p class=&#34;centerpiece&#34;&gt; ✾ &lt;/p&gt;
  3906.  
  3907.  
  3908. &lt;p&gt;I recently got a new work laptop courtesy of Adafruit, and have been getting it
  3909. into working shape over the last few days.  It&#38;rsquo;s a Dell XPS 13 Developer
  3910. Edition, manufactured in late December of 2016.  It shipped with Ubuntu 16.04
  3911. installed, so I assumed it would probably run Debian acceptably.  That&#38;rsquo;s been
  3912. true, for the most part.  I&#38;rsquo;ve had to install Stretch / Testing, as Jessie
  3913. doesn&#38;rsquo;t appear to support the hardware.&lt;/p&gt;
  3914.  
  3915. &lt;p&gt;Some general observations, first:&lt;/p&gt;
  3916.  
  3917. &lt;ul&gt;
  3918. &lt;li&gt;&lt;p&gt;I got this system on the advice of friends who&#38;rsquo;ve been using similar models
  3919. for a few months, and also specifically because it comes with a Linux
  3920. distro out of the box.  That&#38;rsquo;s still depressingly rare from mainstream
  3921. manufacturers, and it seems like a good idea to send the signal that there
  3922. &lt;em&gt;is&lt;/em&gt; a market.&lt;/p&gt;&lt;/li&gt;
  3923. &lt;li&gt;&lt;p&gt;There are more pixels on this thing than anybody needs, and that&#38;rsquo;s probably
  3924. the biggest obstacle to using a non-mainstream windowing environment.  More
  3925. about that in a moment.&lt;/p&gt;&lt;/li&gt;
  3926. &lt;li&gt;&lt;p&gt;The keyboard here is more or less what I expect from expensive modern
  3927. laptops, which is to say that it&#38;rsquo;s kind of shitty but not completely
  3928. intolerable.  Keys with real travel and a ThinkPad-esque layout would be
  3929. nice, even at the expense of a few mm more case thickness, but Apple casts
  3930. a long shadow over this conceptual landscape, so I know better than to
  3931. expect them.  (So it goes.  If there&#38;rsquo;s one thing I know about markets, it&#38;rsquo;s
  3932. that they happily prefer worse functional alternatives where aesthetic
  3933. religion dictates.)&lt;/p&gt;&lt;/li&gt;
  3934. &lt;li&gt;&lt;p&gt;Two USB ports and a USB Type C / Thunderbolt port (I think; I have yet to
  3935. fully get what is going on with this thing, but I guess it can do
  3936. everything?).  This is obviously not as many ports as you&#38;rsquo;d want, but on a
  3937. machine this tiny it&#38;rsquo;s probably acceptable.  Keep in mind you will need to
  3938. buy accessories to connect to most legacy monitors or to an ethernet
  3939. network.  Which is on one level ridiculous, but again, it&#38;rsquo;s what it is.&lt;/p&gt;&lt;/li&gt;
  3940. &lt;li&gt;&lt;p&gt;Ok, so it doesn&#38;rsquo;t have nearly as much physical stuff as I often want.  On
  3941. the other hand, it&#38;rsquo;s really small and takes up like half as much space in
  3942. my bag as my last couple of portable machines.  Also the case build feels
  3943. pretty nice - it&#38;rsquo;s aluminum and carbon fiber, which beats hell out of the
  3944. flimsy, brittle plastic that&#38;rsquo;s standard on most non-Apple laptops.&lt;/p&gt;&lt;/li&gt;
  3945. &lt;li&gt;&lt;p&gt;There&#38;rsquo;s a touchscreen.  This isn&#38;rsquo;t lifechanging, but with the right
  3946. configuration it might be pretty neat.  With scrolling and gestural
  3947. input for window management tasks, it could be a major advantage.&lt;/p&gt;&lt;/li&gt;
  3948. &lt;/ul&gt;
  3949.  
  3950.  
  3951. &lt;p&gt;Anyhow, on to setup specifics.&lt;/p&gt;
  3952.  
  3953. &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
  3954. Stretch because Jessie won&#38;rsquo;t work.  (I tried Jessie anyway first, since I had a
  3955. recent netinst image laying around &#38;mdash; no go.)&lt;/p&gt;
  3956.  
  3957. &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
  3958. it on a USB stick with a FAT filesystem (actually a camera microSD card in a
  3959. little keychain reader thing I got at SparkFun; everything else I have laying
  3960. around seems to be EXT3 or 4), hitting &lt;kbd&gt;F12&lt;/kbd&gt; at boot, and selecting
  3961. &#38;ldquo;BIOS Flash Update&#38;rdquo; from inside the BIOS menu.  I&#38;rsquo;m not sure if this was
  3962. strictly necessary, but it probably didn&#38;rsquo;t hurt anything.&lt;/p&gt;
  3963.  
  3964. &lt;p&gt;I also followed this part of the instructions from the wiki:&lt;/p&gt;
  3965.  
  3966. &lt;blockquote&gt;&lt;p&gt;Choose the first option, BIOS Setup. You have to change two settings:&lt;/p&gt;
  3967.  
  3968. &lt;p&gt;System Configuration: SATA Operation: change &#38;ldquo;RAID On&#38;rdquo; to &#38;ldquo;AHCI&#38;rdquo;. Without
  3969. this change, Linux won&#38;rsquo;t find the SSD.&lt;/p&gt;
  3970.  
  3971. &lt;p&gt;Secure Boot: Secure Boot Enable: change to &#38;ldquo;disabled&#38;rdquo; since Debian currently
  3972. doesn&#38;rsquo;t support secure boot.&lt;/p&gt;&lt;/blockquote&gt;
  3973.  
  3974. &lt;p&gt;&#38;hellip;although since the system was already running Ubuntu, I think at least one
  3975. of these didn&#38;rsquo;t need changed.&lt;/p&gt;
  3976.  
  3977. &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
  3978. nonfree firmware from cdimage.debian.org&lt;/a&gt;, in order to support the
  3979. Atheros network hardware in the installer.&lt;/p&gt;
  3980.  
  3981. &lt;p&gt;On another Debian system, I did:&lt;/p&gt;
  3982.  
  3983. &lt;pre&gt;&lt;code&gt;sudo dd if=firmware-stretch-DI-alpha8-amd64-netinst.iso of=/dev/sdc
  3984. &lt;/code&gt;&lt;/pre&gt;
  3985.  
  3986. &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
  3987. booted the Dell from it.  If I remember right, I may have needed to hit
  3988. &lt;kbd&gt;F12&lt;/kbd&gt; again to get a boot menu that would let me select the stick.&lt;/p&gt;
  3989.  
  3990. &lt;p&gt;I used the classic text-mode installer.  I&#38;rsquo;ve been through this thing hundreds
  3991. of times by now, and it&#38;rsquo;s usually painless, but this time was tricky because
  3992. the console text was so tiny that I had to put on a pair of reading glasses and
  3993. hold the monitor inches from my face to read the menus (I tried a magnifying
  3994. glass first - it worked, but was a pain to hold while typing).  I also had to
  3995. restart the installer at least once before it picked up the existence of the
  3996. extra nonfree firmware on the installation media - no idea why.&lt;/p&gt;
  3997.  
  3998. &lt;p&gt;It&#38;rsquo;s worth pointing out that this version of the distribution is &lt;em&gt;not stable
  3999. software&lt;/em&gt;, and may cause pain.  I&#38;rsquo;m pretty comfortable fixing Debian systems
  4000. when something goes wrong, but if you&#38;rsquo;re new to the whole thing I&#38;rsquo;d recommend
  4001. sticking with the out-of-box Ubuntu install for a while.  (And maybe installing
  4002. Gnome instead of Unity.)&lt;/p&gt;
  4003.  
  4004. &lt;p class=&#34;centerpiece&#34;&gt; ✩ &lt;/p&gt;
  4005.  
  4006.  
  4007. &lt;p&gt;Once I had a running operating system, I needed to be able to read things
  4008. and use the keyboard.&lt;/p&gt;
  4009.  
  4010. &lt;p&gt;By default, you have to chord &lt;kbd&gt;Fn&lt;/kbd&gt; and a function key to get
  4011. traditional &lt;kbd&gt;F1&lt;/kbd&gt; - &lt;kbd&gt;F12&lt;/kbd&gt; input. Since I bind a bunch of stuff
  4012. to function keys in my editor, and only change the volume or toggle the
  4013. keyboard backlight occasionally, this feels backwards.  I eventually found a
  4014. forum post that mentioned the BIOS settings for this are now hidden in POST
  4015. Behavior -&gt; FN Lock Options.&lt;/p&gt;
  4016.  
  4017. &lt;p&gt;As to reading things on the display, I currently have
  4018. &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
  4019. set of config changes.  Some notes:&lt;/p&gt;
  4020.  
  4021. &lt;ul&gt;
  4022. &lt;li&gt;&lt;p&gt;My level of certainty about most of this stuff is pretty low.  A bunch of
  4023. things interact, and I&#38;rsquo;ve never learned how most of them are actually put
  4024. together.&lt;/p&gt;&lt;/li&gt;
  4025. &lt;li&gt;&lt;p&gt;Gnome pretty well worked ok out of the box.  I set Fonts -&gt; Scaling Factor to
  4026. 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;
  4027. font scaling when &lt;code&gt;gnome-settings-daemon&lt;/code&gt; is running, even outside of
  4028. Gnome-proper?&lt;/p&gt;&lt;/li&gt;
  4029. &lt;li&gt;&lt;p&gt;XMonad needed more help.&lt;/p&gt;
  4030.  
  4031. &lt;ul&gt;
  4032. &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
  4033. in my &lt;code&gt;xmonad.start&lt;/code&gt; script.&lt;/li&gt;
  4034. &lt;li&gt;Increased trayer height to 40 in &lt;code&gt;xmonad.start&lt;/code&gt;.&lt;/li&gt;
  4035. &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;
  4036. in &lt;code&gt;.xmobarrc&lt;/code&gt;.&lt;/li&gt;
  4037. &lt;li&gt;Rewrote a good chunk of my &lt;code&gt;~/.xmonad/xmonad.hs&lt;/code&gt;, but mostly for
  4038. other reasons than resolution - added &lt;code&gt;rofi&lt;/code&gt; as a launcher and &lt;code&gt;i3lock&lt;/code&gt;
  4039. for screen locking, rewrote keybindings to use &lt;code&gt;EZConfig&lt;/code&gt;, added some
  4040. comments.&lt;/li&gt;
  4041. &lt;li&gt;Added XMonad keybindings for volume &#38;amp; brightness keys.&lt;/li&gt;
  4042. &lt;/ul&gt;
  4043. &lt;/li&gt;
  4044. &lt;li&gt;&lt;p&gt;In Firefox, I entered &lt;code&gt;about:config&lt;/code&gt; in the URL bar and set
  4045. &lt;code&gt;layout.css.devPixelsPerPx&lt;/code&gt; to 2.0.&lt;/p&gt;&lt;/li&gt;
  4046. &lt;/ul&gt;
  4047.  
  4048.  
  4049. &lt;p&gt;Stuff I still haven&#38;rsquo;t figured out:&lt;/p&gt;
  4050.  
  4051. &lt;ul&gt;
  4052. &lt;li&gt;Scaling in some GTK applications like Gimp and Inkscape.&lt;/li&gt;
  4053. &lt;li&gt;Scaling in Qt applications like Konsole, which I&#38;rsquo;ve been using for a while
  4054. now as a primary terminal (I just set the font real big).&lt;/li&gt;
  4055. &lt;li&gt;Font sizes in XMonad tabs are still tiny.&lt;/li&gt;
  4056. &lt;li&gt;There&#38;rsquo;s a weird, perceptible lag in starting applications, even tiny
  4057. ones like xterm.  Some bit of configuration state is almost certainly
  4058. causing this.&lt;/li&gt;
  4059. &lt;li&gt;&lt;code&gt;ssh-agent&lt;/code&gt; doesn&#38;rsquo;t seem to be active by default.  Related to above?
  4060. Maybe.&lt;/li&gt;
  4061. &lt;/ul&gt;
  4062.  
  4063.  
  4064. &lt;p&gt;I may improve these notes at some later date, but I wanted to publish what I
  4065. had so far.&lt;/p&gt;
  4066.  
  4067. &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
  4068. &lt;a href=&#34;https://github.com/derat/xsettingsd&#34;&gt;xsettingsd&lt;/a&gt;.&lt;/p&gt;
  4069.  
  4070. &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
  4071. rid of GDM and see what happens.  I should probably also think about building
  4072. a custom kernel and look into power tweaks.&lt;/p&gt;
  4073.  
  4074.  
  4075. &lt;p class=&#34;datelink&#34;&gt;
  4076. &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; /
  4077. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  4078. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  4079. &lt;a href=&#34;https://p1k3.com/2017/1/7/&#34; title=&#34;7&#34;&gt;7&lt;/a&gt;
  4080. &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;
  4081.  
  4082. &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
  4083. skimming old entries to tag them, it&#38;rsquo;s hard not to be overcome by this kind of
  4084. creeping self-hatred and regret for just about everything I&#38;rsquo;ve ever written.&lt;/p&gt;
  4085.  
  4086. &lt;p&gt;I was pretty young when I started writing Brennen&#38;rsquo;s Homepage, or whatever I
  4087. called it at the time.&lt;sup class=footnote&gt;1&lt;/sup&gt;   I started, if this tells
  4088. 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
  4089. guy named Robert Hardesty who had a Unix box somewhere in Boston.&lt;/p&gt;
  4090.  
  4091. &lt;p&gt;The earliest entry I have here is from April of 1997, which means I was 16 and
  4092. the Internet was still a place (or a thing) that it&#38;rsquo;s hard to realistically
  4093. remember at all now.&lt;/p&gt;
  4094.  
  4095. &lt;p class=&#34;centerpiece&#34;&gt; ✤ &lt;/p&gt;
  4096.  
  4097.  
  4098. &lt;p&gt;I want to think of my failings recorded here as the product of something like
  4099. childhood ignorance, even if they lasted well into my 30s.&lt;/p&gt;
  4100.  
  4101. &lt;p&gt;I suppose that a lot of the last ~375000 words aren&#38;rsquo;t something I&#38;rsquo;d write now
  4102. partly because the web was smaller and it made sense to write confessional
  4103. bullshit out where anyone could see it (probably because in fact only internet
  4104. weirdos like you would see it).&lt;/p&gt;
  4105.  
  4106. &lt;p&gt;Most of the early blogs and LiveJournals and GeoCities sites have evaporated
  4107. now.  They survive, if at all on the public web, only in the recesses of
  4108. archive.org.  Mostly they died of bitrot, but there&#38;rsquo;s been plenty of deliberate
  4109. clean-slating too.  People look at something they started writing when they
  4110. were still kids, and then they take it out back to shoot it.  A final mercy for
  4111. those cringier traces of their younger selves.&lt;/p&gt;
  4112.  
  4113. &lt;p&gt;I know people who burn all their journals.  The impulse makes a lot of sense.&lt;/p&gt;
  4114.  
  4115. &lt;p class=&#34;centerpiece&#34;&gt; ✣ &lt;/p&gt;
  4116.  
  4117.  
  4118. &lt;p&gt;That&#38;rsquo;s all something of a cop-out, though.  Even if everything I felt bad about
  4119. writing was gone, I&#38;rsquo;d still have written it.  I&#38;rsquo;m trying to take this
  4120. collection of terrible writing as a useful index to some things, like what I
  4121. have (despite myself) actually learned since I was a teenager.&lt;/p&gt;
  4122.  
  4123. &lt;p&gt;Here are some things I&#38;rsquo;ll own:&lt;/p&gt;
  4124.  
  4125. &lt;ul&gt;
  4126. &lt;li&gt;&lt;p&gt;I&#38;rsquo;ve written a lot of stupid, embarrassing shit about women.  I&#38;rsquo;ve also
  4127. written some stupid, unthinking, racist nonsense.&lt;/p&gt;&lt;/li&gt;
  4128. &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;
  4129. &lt;li&gt;&lt;p&gt;I grew up so embedded in midwestern American cultural and religious
  4130. conservatism that its dimensions were basically invisible to me.&lt;/p&gt;&lt;/li&gt;
  4131. &lt;li&gt;&lt;p&gt;I soaked up a whole lot of SFnal libertarianism (and much stranger stuff) and
  4132. then Free Software hit my nascent political brain like a ton of lead bricks.
  4133. I danced around anarchism for a long time without understanding it.  At 35, I
  4134. do not have a coherent political philosophy.  My writing, no doubt, reflects
  4135. this.&lt;/p&gt;&lt;/li&gt;
  4136. &lt;li&gt;&lt;p&gt;I both repeat and contradict myself constantly.  I adopt a posture of
  4137. expertise or certainty far more often than is warranted.&lt;/p&gt;&lt;/li&gt;
  4138. &lt;li&gt;&lt;p&gt;My enthusiasm for art has usually been poorly contextualized, embarrassingly
  4139. naive, or just a bad idea.&lt;sup class=footnote&gt;2&lt;/sup&gt;&lt;/p&gt;&lt;/li&gt;
  4140. &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
  4141. for the most part very bad poems.&lt;/p&gt;&lt;/li&gt;
  4142. &lt;li&gt;&lt;p&gt;I almost never know what the fuck is going on.&lt;/p&gt;&lt;/li&gt;
  4143. &lt;/ul&gt;
  4144.  
  4145.  
  4146. &lt;p&gt;I could go on in this vein for a while, but I suppose the point is this:  If
  4147. you needed for some reason to discover that I&#38;rsquo;m a ridiculous asshole, or
  4148. convict me of a wide range of ideological offenses (or crimes against basic
  4149. good taste), you&#38;rsquo;d have an easy enough time of it.  However ill you want to
  4150. think of me, the text here is likely sufficient to your needs.&lt;/p&gt;
  4151.  
  4152. &lt;p class=&#34;centerpiece&#34;&gt; ✴ &lt;/p&gt;
  4153.  
  4154.  
  4155. &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
  4156. say why.  I don&#38;rsquo;t blame anyone else for that impulse, but it&#38;rsquo;s not for me right
  4157. now.  Maybe I&#38;rsquo;m just too obsessed with memory to deliberately efface one of the
  4158. few artifacts I&#38;rsquo;ve made out of it.  Or too conscious of how little else I&#38;rsquo;ve
  4159. built than a pile of words, as I near an age when it&#38;rsquo;s just as likely the bulk
  4160. of my accomplishments are in the past.&lt;/p&gt;
  4161.  
  4162. &lt;p&gt;What I would say is:  If you find something here you&#38;rsquo;re repulsed by, well, you
  4163. might be right.  You might well be under no obligation to cut me much slack,
  4164. 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
  4165. aware I haven&#38;rsquo;t been doing so hot as it stands.&lt;/p&gt;
  4166.  
  4167. &lt;p class=&#34;centerpiece&#34;&gt; ❂ &lt;/p&gt;
  4168.  
  4169.  
  4170.  
  4171.  
  4172. &lt;p class=footnote&gt;&lt;sup&gt;1&lt;/sup&gt; There was, for a little while, this kind of
  4173. computer gaming zine that I made in Microsoft Publisher and called &#34;Feed The
  4174. Machine&#34;.  It was full of cheatcodes I copied from other places and screenshots
  4175. of demos installed off of the &lt;i&gt;PC Gamer&lt;/i&gt; disc.  I think it had a web
  4176. incarnation for about 5 minutes somewhere in there.&lt;/p&gt;
  4177.  
  4178.  
  4179.  
  4180.  
  4181. &lt;p class=footnote&gt;&lt;sup&gt;2&lt;/sup&gt; The opinions I had in public on Usenet...  Look,
  4182. I&#39;m sorry, ok?&lt;/p&gt;
  4183.  
  4184.  
  4185.  
  4186.  
  4187.  
  4188. &lt;p class=&#34;datelink&#34;&gt;
  4189. &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; /
  4190. &lt;a href=&#34;https://p1k3.com/2017/&#34; title=&#34;2017&#34;&gt;2017&lt;/a&gt; /
  4191. &lt;a href=&#34;https://p1k3.com/2017/1/&#34; title=&#34;1&#34;&gt;1&lt;/a&gt; /
  4192. &lt;a href=&#34;https://p1k3.com/2017/1/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt;
  4193. &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;
  4194.  
  4195. &lt;p&gt;Maciej Cegłowski, &lt;a href=&#34;http://idlewords.com/talks/robot_armies.htm&#34;&gt;Who
  4196. Will Command The Robot Armies?&lt;/a&gt;:
  4197.  
  4198. &lt;blockquote&gt;
  4199.  
  4200.  &lt;p&gt;Over the last two decades, the government&#39;s ability to spy on its citizens
  4201.  has grown immeasurably.&lt;/p&gt;
  4202.  
  4203.  &lt;p&gt;Mostly this is due to technology transfer from the commercial Internet,
  4204.  whose economic model is mass surveillance. Techniques and software that work in
  4205.  the marketplace are quickly adopted by intelligence agencies worldwide.&lt;/p&gt;
  4206.  
  4207.  &lt;p&gt;President Obama has been fairly sparing in his use of this power. I say this
  4208.  not to praise him, but actually to condemn him. His relative restraint, and his
  4209.  administration&#39;s obsession with secrecy, have masked the full extent of power
  4210.  that is available to the executive branch.&lt;/p&gt;
  4211.  
  4212.  &lt;p&gt;Now that power is being passed on to a new President, and we are going to learn
  4213.  all about what it can do. &lt;/p&gt;
  4214.  
  4215. &lt;/blockquote&gt;
  4216.  
  4217. &lt;p&gt;More or less all of this is worth thinking about.&lt;/p&gt;
  4218.  
  4219. &lt;p class=&#34;datelink&#34;&gt;
  4220. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4221. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4222. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4223. &lt;a href=&#34;https://p1k3.com/2016/11/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  4224. &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;
  4225.  
  4226. &lt;p&gt;Flashes of clarity:&lt;/p&gt;
  4227.  
  4228. &lt;p&gt;It&#38;rsquo;s probably time to treat the network we have as a failure mode.&lt;/p&gt;
  4229.  
  4230. &lt;p&gt;A pathological network may be an existential threat to the project of
  4231. democratic governance.&lt;/p&gt;
  4232.  
  4233. &lt;p&gt;Whatever anarchic inclinations I&#38;rsquo;ve had over the years: I have a hard time
  4234. imagining that any preferable alternative emerges from the large-scale failure
  4235. of a democratic state.  At least not this one, however imperfectly democratic
  4236. it has been in fact.&lt;/p&gt;
  4237.  
  4238. &lt;p class=&#34;centerpiece&#34;&gt; ❃ &lt;/p&gt;
  4239.  
  4240.  
  4241. &lt;p&gt;Ok, let me think for a minute.&lt;/p&gt;
  4242.  
  4243. &lt;p&gt;Much of the American political system has been captured by a combination of
  4244. populist authoritarian racists&lt;sup class=footnote&gt;1&lt;/sup&gt; and a dangerously
  4245. deteriorated Republican Party.  That&#38;rsquo;s one thing that&#38;rsquo;s happening.  It would be
  4246. a bad idea to downplay it.&lt;/p&gt;
  4247.  
  4248. &lt;p&gt;Beyond that, but also all wrapped up in it:  It feels like there&#38;rsquo;s this
  4249. intensifying of in-group / out-group dynamics like I don&#38;rsquo;t think I&#38;rsquo;ve seen in
  4250. my lifetime.&lt;/p&gt;
  4251.  
  4252. &lt;p&gt;Of course that&#38;rsquo;s an old process.  American ideological polarization has roots
  4253. centuries older than this election cycle.  In a nation-state founded in the
  4254. context of slavery, genocidal colonization, cycles of mass migration and social
  4255. upheaval, and grand-scale ideological/religious ferment &#38;mdash; how could it
  4256. not?&lt;/p&gt;
  4257.  
  4258. &lt;p&gt;But above and beyond the American historical background radiation:&lt;/p&gt;
  4259.  
  4260. &lt;p&gt;From outside it but not outside its reach, the dominant right-wing discourse
  4261. appears as a cesspit of disinformation and resentment.  It abhors moderation or
  4262. nuance.  The guffawing idiocy of talk radio and shit-tier web forums has
  4263. consumed institutions for which those things were once just useful instruments
  4264. of propaganda.  It&#38;rsquo;s become a determining norm.  Even conservative cultural
  4265. outlets and individual voices that buck this trend seem complicit with its aims
  4266. or incapable of exerting any moderating influence.&lt;/p&gt;
  4267.  
  4268. &lt;p&gt;Left-wing discourse (even though smart people in it will explicitly and
  4269. thoughtfully reject this assessment) seems locked in a cycle of conflict
  4270. between factions and individuals whose goals and values are often
  4271. indistinguishable to outsiders.  The parsing of text for adherence to a
  4272. constantly shifting and sometimes arbitrary standard of correctness consumes
  4273. vast resources, alienates potential allies from one another, and poisons
  4274. efforts at basic empathy.  It&#38;rsquo;s almost impossible to address this pattern
  4275. &lt;em&gt;within&lt;/em&gt; the norms of left-wing discourse, because it will be parsed as a
  4276. regressive defense of incorrect postures or identity relationships which in
  4277. turn reduces to a right-wing argument about &#38;ldquo;political correctness&#38;rdquo;.  (Without
  4278. those norms, it tends to reduce &lt;em&gt;itself&lt;/em&gt; to that sort of thing.)&lt;/p&gt;
  4279.  
  4280. &lt;p&gt;Some of the left-wing / social-justice internet has simply crawled up its own
  4281. asshole into absurdist theatrics.  Considerably worse, some of it feels like
  4282. it&#38;rsquo;s curdled into a culture of weirdly exaggerated mob discipline, dogpiling,
  4283. and absolutist territorial infighting.  This pattern seeps into the language
  4284. and behavior even of lots of intellectually rigorous people who try hard to
  4285. communicate in good faith.  (And also probably the behavior of me.)&lt;/p&gt;
  4286.  
  4287. &lt;p&gt;It&#38;rsquo;s early in a bad time, but most of these things feel unlikely to improve
  4288. under the constraints we now face.  Or to stop feeding one another.&lt;/p&gt;
  4289.  
  4290. &lt;p class=&#34;centerpiece&#34;&gt; ❃ &lt;/p&gt;
  4291.  
  4292.  
  4293. &lt;p&gt;The network now defines, if it doesn&#38;rsquo;t yet thoroughly own, the space we occupy
  4294. in reality.  Too much of the network space encourages adversarial communication
  4295. as the only means of participation.  Just existing without engaging some
  4296. conflict narrative is possible within a lot of physical rooms.  It&#38;rsquo;s a lot
  4297. harder on a lot of the internet.  This alone is almost a deterministic
  4298. guarantee of fighty bullshit.&lt;/p&gt;
  4299.  
  4300. &lt;p class=&#34;centerpiece&#34;&gt; ❁ &lt;/p&gt;
  4301.  
  4302.  
  4303. &lt;p&gt;Two bumper stickers on a car in the Post Office parking lot the other morning:&lt;/p&gt;
  4304.  
  4305. &lt;blockquote&gt;&lt;p&gt;TRUMP: MAKE AMERICA GREAT AGAIN&lt;/p&gt;&lt;/blockquote&gt;
  4306.  
  4307. &lt;p&gt;And:&lt;/p&gt;
  4308.  
  4309. &lt;blockquote&gt;&lt;p&gt;If Guns Are Outlawed
  4310. What Will We Shoot Liberals With?&lt;/p&gt;&lt;/blockquote&gt;
  4311.  
  4312. &lt;p class=&#34;centerpiece&#34;&gt; 🌲 &lt;/p&gt;
  4313.  
  4314.  
  4315. &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;
  4316.  
  4317. &lt;blockquote&gt;&lt;p&gt;It’s not enough to remember Nazis as symbols of evil. What happened to six
  4318. million people was not done by metaphors for wickedness, it was done by other
  4319. people with hands and brains like ours. They were infected with the idea that
  4320. there are intrinsically good people and intrinsically evil people. They were
  4321. extremely evil, but not intrinsically. They were wrong in ways that you and I
  4322. can be wrong. This is the most terrifying thing I know, and I know it from
  4323. Grandma. What do “it can happen here” and “never again” mean? I can’t know the
  4324. way that Grandpa did or Grandma did.&lt;/p&gt;
  4325.  
  4326. &lt;p&gt;&#38;hellip;&lt;/p&gt;
  4327.  
  4328. &lt;p&gt;From there, it’s obvious that she did not let go, was not subsumed into the
  4329. history textbook subheds of the century; she was always moving under her own
  4330. power, in catastrophies and in merely imperfect systems. And so was everyone.
  4331. Grandma was special in many ways, but point to anyone and so are they. Some of
  4332. us are lucky enough to get to a place where our work can accrete, where we can
  4333. build a piece of the world we want. Many of us are not. War is only one of the
  4334. forces that can destroy a person’s chances, or a generation’s work, or a
  4335. generation. The weight of history is intolerable, an ocean-trench pressure, if
  4336. we try to take it as a weight. Talking with Grandma helped me take it as a
  4337. liquid, something that we can equalize against without being crushed, something
  4338. whose unintelligible mass we can, with luck, push through and move within.&lt;/p&gt;&lt;/blockquote&gt;
  4339.  
  4340. &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;
  4341.  
  4342. &lt;p class=&#34;centerpiece&#34;&gt; ✧ &lt;/p&gt;
  4343.  
  4344.  
  4345.  
  4346.  
  4347. &lt;p class=&#34;footnote&#34;&gt;&lt;sup&gt;1&lt;/sup&gt; Only _some_ members of this movement are
  4348. self-declared Nazis, in the Klan, or activist antisemites, so I guess we&#39;re
  4349. still collectively on the fence about whether &#34;pack of fascists&#34; would be
  4350. appropriate terminology.&lt;/p&gt;
  4351.  
  4352.  
  4353.  
  4354. &lt;p class=&#34;datelink&#34;&gt;
  4355. &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; /
  4356. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4357. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4358. &lt;a href=&#34;https://p1k3.com/2016/11/16/&#34; title=&#34;16&#34;&gt;16&lt;/a&gt;
  4359. &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;
  4360.  
  4361. &lt;div class=&#34;photos&#34;&gt;
  4362. &lt;a href=&#34;/files/photos/./2016-11-15/IMG_6831.JPG&#34;&gt;
  4363.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-11-15/Thumbs/IMG_6831.JPG&#34; width=&#34;200&#34;&gt;
  4364. &lt;/a&gt;
  4365. &lt;a href=&#34;/files/photos/./2016-11-15/IMG_6841.JPG&#34;&gt;
  4366.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-11-15/Thumbs/IMG_6841.JPG&#34; width=&#34;200&#34;&gt;
  4367. &lt;/a&gt;
  4368. &lt;a href=&#34;/files/photos/./2016-11-15/IMG_6857.JPG&#34;&gt;
  4369.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-11-15/Thumbs/IMG_6857.JPG&#34; width=&#34;200&#34;&gt;
  4370. &lt;/a&gt;
  4371. &lt;a href=&#34;/files/photos/./2016-11-15/IMG_6915.JPG&#34;&gt;
  4372.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-11-15/Thumbs/IMG_6915.JPG&#34; width=&#34;200&#34;&gt;
  4373. &lt;/a&gt;
  4374. &lt;/div&gt;
  4375.  
  4376. &lt;p class=&#34;datelink&#34;&gt;
  4377. &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; /
  4378. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4379. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4380. &lt;a href=&#34;https://p1k3.com/2016/11/15/&#34; title=&#34;15&#34;&gt;15&lt;/a&gt;
  4381. &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;
  4382.  
  4383. &lt;p&gt;Like usual I&#38;rsquo;m at the bar; I brought a laptop this time.  Some football is
  4384. happening on TV.  Old guys bullshitting, etc.  I waited too long to eat and
  4385. I&#38;rsquo;ve been reading the internet all day, so my head hurts and I can&#38;rsquo;t think
  4386. straight enough to program.  I guess that leaves writing.&lt;/p&gt;
  4387.  
  4388. &lt;p&gt;The part of the internet I know how to see is a wall of text right now.  It
  4389. feels like you could scroll for a hundred years.  It&#38;rsquo;s nearly all got a kind of
  4390. hallucinatory, half-drugged quality to it.  I scan through take after take and
  4391. my eyes glaze across most of the sentences.  There is a kind of systemic shock
  4392. on display.  People are trying to order the world by reading and writing, and
  4393. the new arrangement of the world resists ordering.&lt;/p&gt;
  4394.  
  4395. &lt;p&gt;In other views on the network, I imagine you can see a kind of deranged
  4396. elation.  If there&#38;rsquo;s coherence anywhere, I don&#38;rsquo;t know how to find it.&lt;/p&gt;
  4397.  
  4398. &lt;p&gt;At the bar the old guy on my left shouts GOD BLESS AMERICA TODAY across me to
  4399. the guy on my right and tries to draw me into an argument about whether God
  4400. exists.  The guy on my right and the bartender engage in some friendly dialog
  4401. about how upset the people in his office were the other morning when he brought
  4402. in donuts to celebrate.  They&#38;rsquo;re &lt;em&gt;status quo&lt;/em&gt; people, he explains.  Afraid of
  4403. change.  The bartender expresses contempt for people who say they don&#38;rsquo;t know
  4404. what&#38;rsquo;s happened to this country on the internet.&lt;/p&gt;
  4405.  
  4406. &lt;p&gt;Several feet down another old guy is hassling a woman who voted for Trump about
  4407. how Trump will be convicted under RICO any day now.  He must say &#38;ldquo;RICO&#38;rdquo; twenty
  4408. or thirty times.  People are talking about demonstrations and how once upon a
  4409. time they got arrested for protesting after Kent State.  I can&#38;rsquo;t really read
  4410. what they think about the current state of affairs.  After a while I stop
  4411. trying so I can focus on finishing my beer and leave without looking too much
  4412. like I&#38;rsquo;m in a hurry.&lt;/p&gt;
  4413.  
  4414. &lt;p&gt;There are no conversations that don&#38;rsquo;t seem to be at least implicitly about the
  4415. election.&lt;/p&gt;
  4416.  
  4417.  
  4418. &lt;p class=&#34;datelink&#34;&gt;
  4419. &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; /
  4420. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4421. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4422. &lt;a href=&#34;https://p1k3.com/2016/11/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  4423. &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;
  4424.  
  4425. &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
  4426. finished and I thought I should reword it so it was kinder.  I guess it
  4427. might as well go up as-is.&lt;/em&gt;&lt;/p&gt;
  4428.  
  4429. &lt;p&gt;It&#38;rsquo;s early in an unseasonably hot November in the Western United States of
  4430. America.  An election day looms.  I find myself, in those moments when I can
  4431. face the news, somewhere between paralyzed with fear and numb with disgust.&lt;/p&gt;
  4432.  
  4433. &lt;p&gt;I filled out my ballot a few days back.  I voted for a single-payer healthcare
  4434. system I doubt will pass, and an increase in the minimum wage, and some other
  4435. things that are fairly important in Colorado.  I voted essentially party-line
  4436. for Democratic candidates for state office, though I am registered as an
  4437. independent and do not much love the Democratic party itself.  In some cases I
  4438. voted that way because I approve of the candidate, but mostly I just view a
  4439. Democratic majority as the lesser evil in a system too vast and calcified to
  4440. admit any choices that reflect my theoretical politics more closely.&lt;/p&gt;
  4441.  
  4442. &lt;p&gt;I didn&#38;rsquo;t feel any ambiguity about voting for Hillary Clinton.  Not really.  One
  4443. of the first things my culture tried to teach me was that I should hate Hillary
  4444. Clinton.  Later on I came to dislike her politics for reasons pretty well
  4445. removed from the ones that saturate the discourse of the rural Plains.  It
  4446. doesn&#38;rsquo;t really matter given the options.  She&#38;rsquo;s an establishment politician
  4447. with a mixed record, but she&#38;rsquo;s not observably a fascist.&lt;/p&gt;
  4448.  
  4449. &lt;p class=&#34;centerpiece&#34;&gt; ✩ &lt;/p&gt;
  4450.  
  4451.  
  4452. &lt;p&gt;I have told this story a dozen times by now:  The other night we sat at the
  4453. basement bar of the beer joint a few blocks over and watched the last 6 innings
  4454. of a game where the Cubs won the World Series.  During the commercial breaks
  4455. there were a lot of campaign ads.  No one seemed to pay the official Trump ones
  4456. much mind, but it was laughs and smiles every time a Clinton ad tried to play
  4457. up Trump&#38;rsquo;s vicious idiocy.&lt;/p&gt;
  4458.  
  4459. &lt;p&gt;&#38;ldquo;That guy&#38;rsquo;s funny.&#38;rdquo;&lt;/p&gt;
  4460.  
  4461. &lt;p&gt;I got scared then.  I thought:  Jesus Christ, he might win.  I haven&#38;rsquo;t been
  4462. able to shake it off.  I think it could happen, even if the polling says it
  4463. probably won&#38;rsquo;t.  This idea might have been funny once.  I can&#38;rsquo;t even remember
  4464. what I thought when it was still a punchline of a candidacy.  It&#38;rsquo;s not funny
  4465. any more.  A lot of bad things are going to happen.  Even if he loses, I
  4466. suspect that white nationalism has a platform now that isn&#38;rsquo;t going away any
  4467. time soon.  A certain kind of overt, brainsick hate is blooming out again
  4468. through the culture.  It&#38;rsquo;s hard to turn a failed campaign into a lasting
  4469. movement, but it&#38;rsquo;s not impossible.&lt;/p&gt;
  4470.  
  4471. &lt;p&gt;The people who like Donald Trump, in large part they like him for things that
  4472. would make me look for the nearest exit if I encountered them from any random
  4473. dude in a bar.  They like him because he&#38;rsquo;s a crude racist and violent to women.
  4474. They like him for acting like a highschool bully and not knowing things.  They
  4475. like him for the reasons I wouldn&#38;rsquo;t leave anyone vulnerable alone in a room
  4476. with him.&lt;/p&gt;
  4477.  
  4478. &lt;p class=&#34;centerpiece&#34;&gt; ✣ &lt;/p&gt;
  4479.  
  4480.  
  4481. &lt;p&gt;When I was younger, I came home from college and ruined family get-togethers by
  4482. being angry about the Iraq War and all the other things that kids like me,
  4483. fresh out of the sticks and turning into hippies, were angry about then.  The
  4484. Bush years taught people my age so much about how corrupt and destructive a
  4485. thing American power could be in the world.  The decisions of power in those
  4486. years are still teaching us, come to that.  So much of the poison of then is
  4487. the poison of now, one way or another.&lt;/p&gt;
  4488.  
  4489. &lt;p&gt;I&#38;rsquo;m sure I know people who are voting for Donald Trump.  Some of them are
  4490. people I love.  Maybe you, reading this, are one of them.  It&#38;rsquo;s hard to know
  4491. exactly what to do with that.  You might be wiser and better than me, in much
  4492. of life:  I&#38;rsquo;m neither wise nor especially good.  But I can tell you this is an
  4493. ugly thing.&lt;/p&gt;
  4494.  
  4495.  
  4496. &lt;p class=&#34;datelink&#34;&gt;
  4497. &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; /
  4498. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4499. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4500. &lt;a href=&#34;https://p1k3.com/2016/11/6/&#34; title=&#34;6&#34;&gt;6&lt;/a&gt;
  4501. &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;
  4502.  
  4503. &lt;div class=&#34;comics&#34;&gt;
  4504.  &lt;p&gt;
  4505.    &lt;img src=&#34;/files/comics/1.jpg&#34;
  4506.         alt=&#34;some animals #1&#34;
  4507.         title=&#34;some animals #1&#34; /&gt;
  4508.  &lt;/p&gt;
  4509. &lt;/div&gt;
  4510.  
  4511. &lt;p class=&#34;datelink&#34;&gt;
  4512. &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; /
  4513. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4514. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4515. &lt;a href=&#34;https://p1k3.com/2016/11/3/&#34; title=&#34;3&#34;&gt;3&lt;/a&gt;
  4516. &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;
  4517.  
  4518. &lt;h2&gt;some things i have been using lately&lt;/h2&gt;
  4519.  
  4520. &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
  4521. 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;
  4522. do.  That said, the short version is that it lets you track files (usually
  4523. large files like photos, but really anything) in a git repository without
  4524. storing their actual &lt;em&gt;contents&lt;/em&gt; in the repo&#38;rsquo;s history.  It does this by
  4525. leveraging symbolic links to blobs of data in the &lt;code&gt;.git&lt;/code&gt; directory, and pushing
  4526. data around between your local copy of the repo and various kinds of remote
  4527. storage:  Other repositories accessed over SSH, filesystem locations, Amazon
  4528. S3, and so on.&lt;/p&gt;
  4529.  
  4530. &lt;p&gt;I&#38;rsquo;ve been using these features on p1k3 to store images and thumbnails for
  4531. simple galleries.  (&lt;a href=&#34;/2016/8/14&#34;&gt;Here are some notes about my use case&lt;/a&gt; from
  4532. back in August &#38;mdash; the short version is I want to publish pictures without
  4533. having to trust third parties like flickr, imgur, or Instagram.) The workflow
  4534. is still a little bit confusing, and git-annex itself is enough of a hack that
  4535. there are bugs to work out.  Still, this feels like one of those fundamental
  4536. changes to a paradigm that becomes, over time, an obvious necessity.&lt;/p&gt;
  4537.  
  4538. &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
  4539. project a while ago.  It&#38;rsquo;s good to see work like this get real traction, and I
  4540. plan to keep chipping in for its development.&lt;/p&gt;
  4541.  
  4542. &lt;p&gt;Debian/Ubuntu installation: &lt;code&gt;apt-get install git-annex&lt;/code&gt;&lt;/p&gt;
  4543.  
  4544. &lt;p class=&#34;centerpiece&#34;&gt; ☆ &lt;/p&gt;
  4545.  
  4546.  
  4547. &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
  4548. while.  It bundles a set of tools that fill gaps in the classic set of Unix
  4549. utilities.&lt;/p&gt;
  4550.  
  4551. &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
  4552. input and writes it to a desired file.  That doesn&#38;rsquo;t seem like much, but it
  4553. lets you do something like this:&lt;/p&gt;
  4554.  
  4555. &lt;pre&gt;&lt;code&gt;somecommand somefile | sponge somefile
  4556. &lt;/code&gt;&lt;/pre&gt;
  4557.  
  4558. &lt;p&gt;A reasonable replacement for this idiom:&lt;/p&gt;
  4559.  
  4560. &lt;pre&gt;&lt;code&gt;somecommand somefile &#38;gt; somefile
  4561. &lt;/code&gt;&lt;/pre&gt;
  4562.  
  4563. &lt;p&gt;&#38;hellip;which sooner or later everyone discovers doesn&#38;rsquo;t do what they&#38;rsquo;d expect,
  4564. because redirecting to a file opens the file for writing before it executes
  4565. &lt;code&gt;somecommand somefile&lt;/code&gt;.&lt;/p&gt;
  4566.  
  4567. &lt;p&gt;Debian/Ubuntu installation: &lt;code&gt;apt-get install moreutils&lt;/code&gt;&lt;/p&gt;
  4568.  
  4569. &lt;p class=&#34;centerpiece&#34;&gt; ✪ &lt;/p&gt;
  4570.  
  4571.  
  4572. &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,
  4573. &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
  4574. &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
  4575. of standard input and lets the user select one (narrowing the selection with
  4576. type-to-search), then prints it to standard out.  It&#38;rsquo;s a simple idea, but elegant
  4577. and fast for a good many tasks.&lt;/p&gt;
  4578.  
  4579. &lt;p&gt;&lt;code&gt;fzf&lt;/code&gt; is essentially the same idea, but runs in a terminal and offers more
  4580. tunable search modes along with optional prefab keybindings in the shell.  It
  4581. can replace, for example, Bash or zsh&#38;rsquo;s standard Ctrl-R for searching in
  4582. history.  There are also shims for integration with tmux and Vim, and the
  4583. author has taken an admirably modular and unixy approach to all of this.&lt;/p&gt;
  4584.  
  4585. &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
  4586. general purpose utility I&#38;rsquo;ve wanted for a while, and can easily imagine
  4587. building other tools around.  I&#38;rsquo;ll probably integrate it with
  4588. &lt;a href=&#34;/2016/10/25&#34;&gt;commandlog&lt;/a&gt; for searching and annotating history.&lt;/p&gt;
  4589.  
  4590. &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
  4591. it winds up widely packaged before long.&lt;/p&gt;
  4592.  
  4593. &lt;p class=&#34;centerpiece&#34;&gt; ❂ &lt;/p&gt;
  4594.  
  4595.  
  4596. &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.
  4597. Python, but so far hasn&#38;rsquo;t been terrible and crashy, so it&#38;rsquo;s doing something
  4598. 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
  4599. constantly.&lt;/p&gt;
  4600.  
  4601. &lt;p&gt;Debian installation: &lt;code&gt;apt-get install ranger&lt;/code&gt;&lt;/p&gt;
  4602.  
  4603.  
  4604. &lt;p class=&#34;datelink&#34;&gt;
  4605. &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; /
  4606. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4607. &lt;a href=&#34;https://p1k3.com/2016/11/&#34; title=&#34;11&#34;&gt;11&lt;/a&gt; /
  4608. &lt;a href=&#34;https://p1k3.com/2016/11/2/&#34; title=&#34;2&#34;&gt;2&lt;/a&gt;
  4609. &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;
  4610.  
  4611. &lt;p class=centerpiece&gt;&lt;img src=&#34;/files/memetic/watches.jpg&#34;&gt;&lt;/p&gt;
  4612.  
  4613. &lt;p&gt;This one has always meant a lot to me.&lt;/p&gt;
  4614.  
  4615. &lt;p class=&#34;datelink&#34;&gt;
  4616. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4617. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4618. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  4619. &lt;a href=&#34;https://p1k3.com/2016/10/27/&#34; title=&#34;27&#34;&gt;27&lt;/a&gt;
  4620. &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;
  4621.  
  4622. &lt;p&gt;I&#38;rsquo;ve been getting back into the exciting world of desktop Linux &lt;del&gt;cat
  4623. vacuuming&lt;/del&gt; yak shaving lately.  (I never completely leave, but I guess the
  4624. intensity of my presence varies.)&lt;/p&gt;
  4625.  
  4626. &lt;p&gt;I&#38;rsquo;m not exactly sure when I crossed this threshold, but a while back I became
  4627. 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
  4628. what it amounts to is that I&#38;rsquo;ve been using a lot of the same software for years
  4629. (and maybe decades by now).  The customizations pile up.&lt;/p&gt;
  4630.  
  4631. &lt;p&gt;I used to flit around all over the place, soaking up the novelty and variation,
  4632. fascinated by all sorts of weird little evolutionary niches in interface and
  4633. capability.  I used to jump between DOS and Windows and Debian and Actual
  4634. Antiquated Unix and Apple&#38;rsquo;s System (7|8|9) and whatever whacky demo you could
  4635. boot off a floppy.  The thing I miss most about old-school Debian is how there
  4636. was just a menu for switching to a different window manager mid-session, which
  4637. for some reason I spent &lt;em&gt;hours&lt;/em&gt; doing.&lt;/p&gt;
  4638.  
  4639. &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
  4640. &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
  4641. 1996.  If my software habits were human, some of them could be voting against
  4642. Donald Trump in a presidential election.&lt;/p&gt;
  4643.  
  4644. &lt;p class=centerpiece&gt; ✩ &lt;/p&gt;
  4645.  
  4646.  
  4647. &lt;p&gt;Anyway, in keeping with all those yak clippings and my recent fixation on
  4648. note-taking, I started a tiny project this evening:  &lt;a href=&#34;https://github.com/brennen/commandlog&#34;&gt;commandlog&lt;/a&gt;
  4649. will be a handful of tools for accumulating command-line history with context,
  4650. grouping them, and making notes about them.  My hope is that eventually I can
  4651. turn all my haphazard, undocumented shell time into a cumulative, re-usable log
  4652. of different tasks and techniques.  It seems to me like there should be a
  4653. natural flow from doing some set of operations in the shell to building a
  4654. reusable script.&lt;/p&gt;
  4655.  
  4656. &lt;p&gt;My first couple of gestures at this were a lot simpler:  I set the length of
  4657. shell history to something ridiculously long, and added a &lt;code&gt;comment&lt;/code&gt; command
  4658. that was just a no-op for sticking things in history, so I could say:&lt;/p&gt;
  4659.  
  4660. &lt;pre&gt;&lt;code&gt;$ frobnicate /dev/intangentializer
  4661. $ man frobnicate
  4662. $ apropos frobnicate
  4663. $ man frob
  4664. $ frob -i /dev/intangentializer
  4665. $ comment &#34;trying to figure out frobnication of external devices&#34;
  4666. &lt;/code&gt;&lt;/pre&gt;
  4667.  
  4668. &lt;p&gt;&#38;hellip;and then later grep for that sort of thing.  (It is probably worth noting
  4669. that these are made up commands.)  It works ok as far as it goes, but it&#38;rsquo;s often
  4670. lacking the context you&#38;rsquo;d want.  (I can&#38;rsquo;t for the life of me remember why I
  4671. 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;
  4672.  
  4673. &lt;p&gt;&lt;code&gt;commandlog&lt;/code&gt; is a touch heavier:  It drops the command, along with context data
  4674. like working directory, host, user, time, and current shell, into an SQLite
  4675. database.&lt;/p&gt;
  4676.  
  4677. &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
  4678. there.  I think the interesting pieces will probably come from search, grouping
  4679. or tagging commands, and a notes system.&lt;/p&gt;
  4680.  
  4681.  
  4682. &lt;p class=&#34;datelink&#34;&gt;
  4683. &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; /
  4684. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4685. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  4686. &lt;a href=&#34;https://p1k3.com/2016/10/25/&#34; title=&#34;25&#34;&gt;25&lt;/a&gt;
  4687. &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;
  4688.  
  4689. &lt;h2&gt;tree rat&lt;/h2&gt;
  4690.  
  4691. &lt;div class=photos&gt;
  4692. &lt;a href=&#34;/files/photos/./2016-10-24/IMG_7591.JPG&#34;&gt;
  4693.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-24/Thumbs/IMG_7591.JPG&#34; width=&#34;200&#34;&gt;
  4694. &lt;/a&gt;
  4695. &lt;a href=&#34;/files/photos/./2016-10-24/IMG_7593.JPG&#34;&gt;
  4696.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-24/Thumbs/IMG_7593.JPG&#34; width=&#34;200&#34;&gt;
  4697. &lt;/a&gt;
  4698. &lt;a href=&#34;/files/photos/./2016-10-24/IMG_7594.JPG&#34;&gt;
  4699.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-24/Thumbs/IMG_7594.JPG&#34; width=&#34;200&#34;&gt;
  4700. &lt;/a&gt;
  4701. &lt;a href=&#34;/files/photos/./2016-10-24/IMG_7595.JPG&#34;&gt;
  4702.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-24/Thumbs/IMG_7595.JPG&#34; width=&#34;200&#34;&gt;
  4703. &lt;/a&gt;
  4704. &lt;/div&gt;
  4705.  
  4706. &lt;p class=&#34;datelink&#34;&gt;
  4707. &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; /
  4708. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4709. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  4710. &lt;a href=&#34;https://p1k3.com/2016/10/24/&#34; title=&#34;24&#34;&gt;24&lt;/a&gt;
  4711. &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;
  4712.  
  4713. &lt;h2&gt;recently&lt;/h2&gt;
  4714.  
  4715. &lt;div class=&#34;photos&#34;&gt;
  4716. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7526.JPG&#34;&gt;
  4717.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7526.JPG&#34; width=&#34;200&#34;&gt;
  4718. &lt;/a&gt;
  4719. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7537.JPG&#34;&gt;
  4720.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7537.JPG&#34; width=&#34;200&#34;&gt;
  4721. &lt;/a&gt;
  4722. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7549.JPG&#34;&gt;
  4723.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7549.JPG&#34; width=&#34;200&#34;&gt;
  4724. &lt;/a&gt;
  4725. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7556.JPG&#34;&gt;
  4726.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7556.JPG&#34; width=&#34;200&#34;&gt;
  4727. &lt;/a&gt;
  4728. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7560.JPG&#34;&gt;
  4729.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7560.JPG&#34; width=&#34;200&#34;&gt;
  4730. &lt;/a&gt;
  4731. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7561.JPG&#34;&gt;
  4732.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7561.JPG&#34; width=&#34;200&#34;&gt;
  4733. &lt;/a&gt;
  4734. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7564.JPG&#34;&gt;
  4735.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7564.JPG&#34; width=&#34;200&#34;&gt;
  4736. &lt;/a&gt;
  4737. &lt;a href=&#34;/files/photos/./2016-10-23/IMG_7576.JPG&#34;&gt;
  4738.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-23/Thumbs/IMG_7576.JPG&#34; width=&#34;200&#34;&gt;
  4739. &lt;/a&gt;
  4740. &lt;/div&gt;
  4741.  
  4742. &lt;p&gt;It&#38;rsquo;s hot and windy.  80-something in the sun, at least.  It is not a perfect
  4743. day for a bike ride, but it will work, and I haven&#38;rsquo;t ridden anywhere in months,
  4744. so I become determined.  Lacking any special destination, I head for Hygiene.&lt;/p&gt;
  4745.  
  4746. &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
  4747. thinking about the idea that eating locally-produced honey will somehow
  4748. innoculate you against allergens.  It&#38;rsquo;s probably nonsense, but it&#38;rsquo;s the kind of
  4749. folk-medicine thing you hear from people for long enough and it starts to sound
  4750. plausible.  It&#38;rsquo;s probably worth a try.&lt;/p&gt;
  4751.  
  4752. &lt;p&gt;I sit around with the locals at the farm (it&#38;rsquo;s an ever-rotating cast) and talk
  4753. nonsense over a joint and a pickle jar full of water, buy a deli sandwich at
  4754. the market by the intersection, and head west on Hygiene Road with a stop along
  4755. the way for more bullshitting.&lt;/p&gt;
  4756.  
  4757. &lt;p class=&#34;centerpiece&#34;&gt; 🚲 &lt;/p&gt;
  4758.  
  4759.  
  4760. &lt;p&gt;If you ever want a good sense of how people driving cars feel about sharing
  4761. road space with bikes, Hygiene Rd is a useful exercise.  With the exception of
  4762. a few bridges and pullouts, there&#38;rsquo;s no paved shoulder &#38;mdash; just a white line
  4763. where pavement turns into dirt and goathead thorns.&lt;/p&gt;
  4764.  
  4765. &lt;p&gt;I learn over and over that the safest thing to do on roads like this one is
  4766. usually to take and hold the unambiguous center of the lane, which seems to
  4767. force some mental switch for drivers that gets them to cross the line and take
  4768. the other lane.  Or maybe even wait to pass if there&#38;rsquo;s oncoming traffic.&lt;/p&gt;
  4769.  
  4770. &lt;p&gt;I waver, though &#38;mdash; the other thing that taking the lane does is make
  4771. people angry.  Honking, yelling out windows.  Every time I do it, I remember
  4772. the drivers I ride with (usually good people, my friends, etc.) who will
  4773. gesture extravagantly and yell &#38;ldquo;GET OFF THE ROAD&#38;rdquo; in situations where the rules
  4774. of the road clearly allow (or require!) bikers to be where they are.  There&#38;rsquo;s a
  4775. psychological tide pulling you ever closer to hugging the edge.  You get to
  4776. feeling that maybe meek conformity to expected norms will keep you alive longer
  4777. than asserting your presence.  Or you feel that way until a couple tons of
  4778. metal tear past at 50 or 60 mph a few inches off your left elbow.&lt;/p&gt;
  4779.  
  4780. &lt;p&gt;A home truth about cycling in America is that, whatever the statistics are on
  4781. fatalities per passenger mile traveled, it&#38;rsquo;s pretty dangerous to bike on a
  4782. large subset of roads.  I suppose conformity to expected norms by way of &lt;em&gt;not
  4783. being on a bike&lt;/em&gt; is the major outcome of realizing that, for most people.&lt;/p&gt;
  4784.  
  4785. &lt;p class=&#34;centerpiece&#34;&gt; 🚲 &lt;/p&gt;
  4786.  
  4787.  
  4788. &lt;p&gt;I don&#38;rsquo;t mean to get all adversarial about this, as hostile as things sometimes
  4789. get in practice.  I drive a lot on roads that are popular with the local road
  4790. bike community, and I live in fear of the day I see somebody die because he
  4791. (it&#38;rsquo;s just about always he) decides it&#38;rsquo;s well within his rights to ride three
  4792. abreast out into the lane on a curvy, 60mph two lane highway full of tourist
  4793. drivers already overwhelmed by the presence of mountains.  Some of the
  4794. standard-issue bike pieties wear kind of thin after a while, right along with
  4795. some of the standard-issue bike behaviors.&lt;/p&gt;
  4796.  
  4797. &lt;p&gt;Maybe there&#38;rsquo;s just a big experiential impedance mismatch between big metal
  4798. boxes that feel slow at 40 miles an hour and skinny little metal frames that
  4799. feel fast at 25.  It&#38;rsquo;s probably best to remember that, however things &lt;em&gt;should&lt;/em&gt;
  4800. be, there&#38;rsquo;s an actual, material conflict of interests and modalities between
  4801. different classes of vehicle.  I piss off the drivers because I&#38;rsquo;m in their way.
  4802. The drivers piss me off because there&#38;rsquo;s a decent chance they&#38;rsquo;ll kill me.  So it
  4803. goes.&lt;/p&gt;
  4804.  
  4805. &lt;p class=&#34;centerpiece&#34;&gt; 🚲 &lt;/p&gt;
  4806.  
  4807.  
  4808. &lt;p&gt;All the same:  Riding bikes is one of the better things.&lt;/p&gt;
  4809.  
  4810.  
  4811. &lt;p class=&#34;datelink&#34;&gt;
  4812. &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; /
  4813. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4814. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  4815. &lt;a href=&#34;https://p1k3.com/2016/10/22/&#34; title=&#34;22&#34;&gt;22&lt;/a&gt;
  4816. &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;
  4817.  
  4818. &lt;pre&gt;
  4819.                         the data is   a program the program is a machine
  4820.         is a program the program is   a machine                   the data
  4821.   machine                       the   data is a program the program is a
  4822.   machine                  the data   is a program the program is a
  4823.       data is a program the program   is a machine                     the
  4824.       is a program the program is a   machine                     the data
  4825.                       the data is a   program the program is a machine
  4826.           the data is a program the   program is a machine
  4827.   is a machine                        the data is a program the program
  4828.               the data is a program   the program is a machine
  4829. &lt;/pre&gt;
  4830.  
  4831. &lt;p&gt;(courtesy ptx(1))&lt;/p&gt;
  4832.  
  4833. &lt;p class=&#34;datelink&#34;&gt;
  4834. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4835. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4836. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  4837. &lt;a href=&#34;https://p1k3.com/2016/10/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  4838. &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;
  4839.  
  4840. &lt;p&gt;the data is a program&lt;br /&gt;
  4841. the program is a machine&lt;/p&gt;
  4842.  
  4843. &lt;p class=&#34;datelink&#34;&gt;
  4844. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  4845. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4846. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  4847. &lt;a href=&#34;https://p1k3.com/2016/10/19/&#34; title=&#34;19&#34;&gt;19&lt;/a&gt;
  4848. &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;
  4849.  
  4850. &lt;p&gt;(nobody wants another meditation on mortality&lt;br /&gt;
  4851. some days it&#39;s just hard to write any other thing&lt;/p&gt;
  4852.  
  4853. &lt;p&gt;nobody wants to rake the leaves, most of the&lt;br /&gt;
  4854. time, but they keep falling)&lt;/p&gt;
  4855.  
  4856. &lt;p&gt;i was carefully arranging textfiles&lt;br /&gt;
  4857. and stacks of paper the other day&lt;br /&gt;
  4858. and i got to wondering&lt;br /&gt;
  4859. what am i doing this for?&lt;br /&gt;
  4860. what posterity etc. is waiting this&lt;br /&gt;
  4861. particular, deliberate tedium?&lt;/p&gt;
  4862.  
  4863. &lt;p&gt;i got to thinking just now about&lt;br /&gt;
  4864. my great-grandfather keeping a journal&lt;br /&gt;
  4865. of his travels northwest of kansas,&lt;br /&gt;
  4866. some several lifetimes before i was born&lt;/p&gt;
  4867.  
  4868. &lt;p&gt;in an age when i suppose half the&lt;br /&gt;
  4869. dying shape of the older continent&lt;br /&gt;
  4870. before what his people made of it&lt;br /&gt;
  4871. was yet within living memory&lt;/p&gt;
  4872.  
  4873. &lt;p&gt;his journal&#39;s in my closet, in a box,&lt;br /&gt;
  4874. inside a plastic bag&lt;br /&gt;
  4875. i&#39;ve thought now of transcribing it&lt;br /&gt;
  4876. for something like half my life&lt;/p&gt;
  4877.  
  4878. &lt;p&gt;it wouldn&#39;t come to many words, or&lt;br /&gt;
  4879. i suppose convey much new information, but&lt;br /&gt;
  4880. i may yet put on cotton gloves and carefully&lt;br /&gt;
  4881. photograph those brittle pages&lt;/p&gt;
  4882.  
  4883. &lt;p&gt;(there is probaby no true reckoning with the past, if we&lt;br /&gt;
  4884. are honest; no logic that can operate over the&lt;br /&gt;
  4885. accumulated data and balance the losses half-traced therein)&lt;/p&gt;
  4886.  
  4887. &lt;p class=&#34;datelink&#34;&gt;
  4888. &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; /
  4889. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  4890. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  4891. &lt;a href=&#34;https://p1k3.com/2016/10/17/&#34; title=&#34;17&#34;&gt;17&lt;/a&gt;
  4892. &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;
  4893.  
  4894. &lt;h2&gt;finding an obscure vim plugin bug&lt;/h2&gt;
  4895.  
  4896. &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
  4897. 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;
  4898.  
  4899. &lt;blockquote&gt;&lt;p&gt;I have an autocommand to do some stuff.  I noticed that it fails on files
  4900. named &lt;code&gt;index&lt;/code&gt;, I think because fugitive.vim has its own autocommand for
  4901. &lt;code&gt;index{,.lock}&lt;/code&gt; that triggers &lt;code&gt;BufReadIndex()&lt;/code&gt;, which in turn does something
  4902. to prevent further processing of the event. I&#38;rsquo;m kind of hazy on how.&lt;/p&gt;&lt;/blockquote&gt;
  4903.  
  4904. &lt;p&gt;Tracking this down to its source was tricky, and I feel like I should document
  4905. a couple of the small things I learned in the process.&lt;/p&gt;
  4906.  
  4907. &lt;p&gt;For background, this is from the Vim help for &lt;code&gt;:autocommand&lt;/code&gt;:&lt;/p&gt;
  4908.  
  4909. &lt;pre&gt;&lt;code&gt;:au[tocmd] [group] {event} {pat} [nested] {cmd}
  4910.        Add {cmd} to the list of commands that Vim will
  4911.        execute automatically on {event} for a file matching
  4912.        {pat} |autocmd-patterns|.
  4913.        Vim always adds the {cmd} after existing autocommands,
  4914.        so that the autocommands execute in the order in which
  4915.        they were given.  See |autocmd-nested| for [nested].
  4916. &lt;/code&gt;&lt;/pre&gt;
  4917.  
  4918. &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
  4919. opened with a new file.  There are a bunch of these.  I was trying to get
  4920. something like the following autocommand to fire:&lt;/p&gt;
  4921.  
  4922. &lt;pre&gt;&lt;code&gt;&#34; this calls a function to treat blog entries as markdown
  4923. au BufReadPost,BufNewFile */p1k3/*[0123456789]* call BPB_PikeHighlight()
  4924. &lt;/code&gt;&lt;/pre&gt;
  4925.  
  4926. &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
  4927. matching on a path like &lt;code&gt;/home/brennen/p1k3/archives/2016/10/16/index&lt;/code&gt;, even
  4928. though it worked for other files in that tree.&lt;/p&gt;
  4929.  
  4930. &lt;p&gt;At first I thought something was wrong with the pattern, so I rewrote the
  4931. function called by the command to this:&lt;/p&gt;
  4932.  
  4933. &lt;pre&gt;&lt;code&gt;au BufReadPost,BufNewFile * call BPB_FiletypeOverrides()
  4934.  
  4935. &#34; set custom filetypes for some things
  4936. function! BPB_FiletypeOverrides()
  4937.  &#34; make sure NERDTree windows don&#39;t get messed up
  4938.  if bufname(&#34;%&#34;) =~ &#34;NERD_tree&#34;
  4939.    return
  4940.  endif
  4941.  
  4942.  echom &#39;testing for p1k3 match&#39;
  4943.  
  4944.  &#34; using expand(&#39;%:p&#39;) instead of bufname(&#34;%&#34;) for full path, per:
  4945.  &#34; http://vim.wikia.com/wiki/Get_the_name_of_the_current_file
  4946.  &#34; the initial slash in the regex seems to be necessary to make \v work
  4947.  if expand(&#39;%:p&#39;) =~ &#34;\\vp1k3\/archives.*([0-9]|[a-z])+$&#34;
  4948.    echom &#39;p1k3 match - setting filetype to markdown&#39;
  4949.    set filetype=markdown
  4950.  endif
  4951. endfunction
  4952. &lt;/code&gt;&lt;/pre&gt;
  4953.  
  4954. &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
  4955. at all, it finally dawned on me that the autocommand wasn&#38;rsquo;t firing &lt;em&gt;regardless of
  4956. pattern&lt;/em&gt;.  Then I got to thinking about how &lt;code&gt;index&lt;/code&gt; is a special filename for
  4957. things besides my blog.  Git, for example.&lt;/p&gt;
  4958.  
  4959. &lt;p&gt;In order to confirm my new suspicions, I wanted to see if some plugin was
  4960. registering an autocommand that might be overriding mine.  You can use
  4961. &lt;code&gt;:autocmd&lt;/code&gt; to list the existing ones.  It gives many pages of output like this:&lt;/p&gt;
  4962.  
  4963. &lt;pre&gt;&lt;code&gt;--- Auto-Commands ---
  4964. fugitive_status  BufDelete
  4965.    term://*  call fugitive#reload_status()
  4966. fugitive_commit  BufDelete
  4967.    COMMIT_EDITMSG
  4968.              execute s:sub(s:FinishCommit(), &#39;^echoerr (.*)&#39;, &#39;echohl ErrorMsg|echo \1|echohl NONE&#39;)
  4969. filetypedetect  BufEnter
  4970.    *.xpm     if getline(1) =~ &#34;XPM2&#34; |   setf xpm2 | else |   setf xpm | endif
  4971.    *.xpm2    setf xpm2
  4972. ...
  4973. &lt;/code&gt;&lt;/pre&gt;
  4974.  
  4975. &lt;p&gt;Since this was stupidly long and hard to jump around in, I went looking for a
  4976. way to capture the output of a command.  This actually turns out to be pretty
  4977. easy:&lt;/p&gt;
  4978.  
  4979. &lt;pre&gt;&lt;code&gt;:redir @a
  4980. :autocmd
  4981. :redir END
  4982. &lt;/code&gt;&lt;/pre&gt;
  4983.  
  4984. &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
  4985. pasted into a buffer by typing &lt;code&gt;&#34;ap&lt;/code&gt;.&lt;/p&gt;
  4986.  
  4987. &lt;p&gt;Sure enough, buried in there is this:&lt;/p&gt;
  4988.  
  4989. &lt;pre&gt;&lt;code&gt;fugitive_files  BufReadCmd
  4990.    index{,.lock}
  4991.              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
  4992. &lt;/code&gt;&lt;/pre&gt;
  4993.  
  4994. &lt;p&gt;I stopped there and filed a bug report, since it&#38;rsquo;s a trivial bug and it had
  4995. already cost me more time than the thing I was trying to fix is likely to
  4996. save me in a lifetime, but maybe one of these days I&#38;rsquo;ll get around to
  4997. figuring out what is actually happening and write a patch.&lt;/p&gt;
  4998.  
  4999. &lt;p class=&#34;centerpiece&#34;&gt; ☆ &lt;/p&gt;
  5000.  
  5001.  
  5002. &lt;p&gt;As a final meta-level thought on this:  I&#38;rsquo;ve invested an embarrassing amount of
  5003. time in configuring my text editor over the years, but it&#38;rsquo;s only recently that
  5004. I&#38;rsquo;ve hit the point where most of my deliberate changes to this setup land me
  5005. 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;
  5006.  
  5007. &lt;p&gt;Perhaps not coincidentally, this is right about where I realize that shifting
  5008. my preferences to another editor would be a matter not just of relearning
  5009. interface elements, but of porting a small but growing body of somewhat tricky
  5010. code.  Every change increases the incentive to make future changes to the
  5011. existing environment instead of paying the cost of switching environments.&lt;/p&gt;
  5012.  
  5013. &lt;p&gt;Path dependence explains a lot of things in life.&lt;/p&gt;
  5014.  
  5015. &lt;p class=&#34;centerpiece&#34;&gt; ❃ &lt;/p&gt;
  5016.  
  5017.  
  5018. &lt;p&gt;It also remains true that Vim is an astonishing achievement, both powerful and
  5019. feature rich in ways that most systems rarely attain.  One might wish for an
  5020. underlying syntactic and conceptual simplicity, for a language composable and
  5021. manipulable without an entire vocabulary of dirty hacks &#38;mdash; but one isn&#38;rsquo;t
  5022. exactly surprised by reality.&lt;/p&gt;
  5023.  
  5024. &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
  5025. trick&lt;/a&gt;.&lt;/p&gt;
  5026.  
  5027.  
  5028. &lt;p class=&#34;datelink&#34;&gt;
  5029. &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; /
  5030. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5031. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  5032. &lt;a href=&#34;https://p1k3.com/2016/10/16/&#34; title=&#34;16&#34;&gt;16&lt;/a&gt;
  5033. &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;
  5034.  
  5035. &lt;p&gt;It&#38;rsquo;s the middle of the night, and I should be sleeping.  Because I had a run in
  5036. with a plate of Oskar Blues chicken enchiladas and one to four pilsners (who&#38;rsquo;s
  5037. counting, really?), I am not.&lt;/p&gt;
  5038.  
  5039. &lt;p class=&#34;centerpiece&#34;&gt; ✿ &lt;/p&gt;
  5040.  
  5041.  
  5042. &lt;p&gt;In between festivals, weddings, and conferences, I&#38;rsquo;ve been thinking about a
  5043. project.&lt;/p&gt;
  5044.  
  5045. &lt;p&gt;Back in 2013, I started writing &lt;em&gt;userland: a book about the command line for
  5046. 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
  5047. to a readable state in the fall of 2014, right about when the main project in
  5048. my life was coming apart at the seams.&lt;sup class=footnote&gt;2&lt;/sup&gt;&lt;/p&gt;
  5049.  
  5050. &lt;p&gt;After I left SparkFun, &lt;em&gt;userland&lt;/em&gt; set a tone for the next couple years in my
  5051. working life.  Or at least after that, I started to get paid for technical
  5052. writing, and wound up with a full-time job writing sysadmin docs.&lt;/p&gt;
  5053.  
  5054. &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
  5055. still say with a straight face that I was a professional.  And with it, I
  5056. learned that I could in fact stare down a blank editor window and make
  5057. functional text happen, even on topics that held little personal interest.
  5058. (More people read my disposable, obsolete-at-publication tutorial on hosting an
  5059. ill-advised mobile app framework in a single week than will ever read any of my
  5060. poems.)&lt;/p&gt;
  5061.  
  5062. &lt;p class=&#34;centerpiece&#34;&gt; ✴ &lt;/p&gt;
  5063.  
  5064.  
  5065. &lt;p&gt;And then somewhere in there I burned out pretty hard.  In fact, although I can
  5066. handle the mechanics of writing, I am terrible at life as a content monkey.
  5067. Unable to farm clicks with the necessary ruthlessness and keep any peace of
  5068. mind.&lt;/p&gt;
  5069.  
  5070. &lt;p&gt;It&#38;rsquo;s not that &#38;ldquo;content marketing&#38;rdquo; is automatically a degrading way to sell
  5071. things.  In fact it might be one of the more honest propositions in the
  5072. business, at least when what you mean by it is &#38;ldquo;documentation on how to use
  5073. useful things&#38;rdquo;.  It&#38;rsquo;s just that the idea of &#38;ldquo;content&#38;rdquo; as a kind of generic
  5074. liquid substance remains grotesque and distorting, and despite the baseline
  5075. assumptions of marketing culture, it continues to matter &lt;em&gt;what&lt;/em&gt; you sell.&lt;/p&gt;
  5076.  
  5077. &lt;p class=&#34;centerpiece&#34;&gt; ✾ &lt;/p&gt;
  5078.  
  5079.  
  5080. &lt;p&gt;When I quit writing for DigitalOcean, I started thinking about writing for my
  5081. own reasons, and about how I could take that seriously as a practical task.
  5082. Since then I&#38;rsquo;ve been hovering around a set of ideas that seem to have
  5083. accumulated, pecking at them here and there, working up to that moment when the
  5084. engine might turn over again:&lt;/p&gt;
  5085.  
  5086. &lt;ul&gt;
  5087. &lt;li&gt;Forget the contempt I held for highschool / college platitudes about notes:
  5088. Notes are essential to so much code, systems, prose.&lt;/li&gt;
  5089. &lt;li&gt;I&#38;rsquo;ve been taking notes since some time in the late 90s.  They&#38;rsquo;re just
  5090. scattered, unindexed, unsorted.&lt;/li&gt;
  5091. &lt;li&gt;What if I had random access into my life&#38;rsquo;s entire catalog of meta-memory?&lt;/li&gt;
  5092. &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;
  5093. &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
  5094. questions about my own life and experiences in a rigorous way?  Why does
  5095. the panopticon&#38;rsquo;s model of my existence seem more developed than my own?&lt;/li&gt;
  5096. &lt;li&gt;Why does so much of my history on the command-line go unrecorded,
  5097. un-annotated, un-repeatable past the narrow time horizons of my working
  5098. memory?&lt;/li&gt;
  5099. &lt;li&gt;Why don&#38;rsquo;t I publish photos any more?&lt;/li&gt;
  5100. &lt;li&gt;Some of the tools I use are pretty good.  Others would be pretty good if
  5101. I was tough-minded and serious about developing the underlying ideas.&lt;/li&gt;
  5102. &lt;li&gt;If I spend so much time customizing my computer environment, why aren&#38;rsquo;t my
  5103. tools better?&lt;/li&gt;
  5104. &lt;/ul&gt;
  5105.  
  5106.  
  5107. &lt;p&gt;I know that I want to write something like a book, but these aren&#38;rsquo;t exactly
  5108. the topics I want to write it about.  It&#38;rsquo;s more that I intend to use them
  5109. as a way to discover the book I do want to write, or the thing that isn&#38;rsquo;t
  5110. quite a book but will satisfy the same basic impulse.&lt;/p&gt;
  5111.  
  5112.  
  5113. &lt;p class=&#34;centerpiece&#34;&gt; ☆ &lt;/p&gt;
  5114.  
  5115. &lt;p class=footnote&gt;&lt;sup&gt;1&lt;/sup&gt; Being a sketchy outline of the book it ought to
  5116. be, and having emerged from a moment when a kind of optimism about computing
  5117. seemed to me, somehow, appropriate and sustainable.&lt;/p&gt;
  5118.  
  5119. &lt;p class=footnote&gt;&lt;sup&gt;2&lt;/sup&gt; It had a little help.&lt;/p&gt;
  5120.  
  5121. &lt;p class=&#34;datelink&#34;&gt;
  5122. &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; /
  5123. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5124. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  5125. &lt;a href=&#34;https://p1k3.com/2016/10/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  5126. &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;
  5127.  
  5128. &lt;h2&gt;recently&lt;/h2&gt;
  5129.  
  5130. &lt;div class=&#34;photos&#34;&gt;
  5131. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7264.JPG&#34;&gt;
  5132.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7264.JPG&#34; width=&#34;200&#34;&gt;
  5133. &lt;/a&gt;
  5134. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7311.JPG&#34;&gt;
  5135.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7311.JPG&#34; width=&#34;200&#34;&gt;
  5136. &lt;/a&gt;
  5137. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7325.JPG&#34;&gt;
  5138.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7325.JPG&#34; width=&#34;200&#34;&gt;
  5139. &lt;/a&gt;
  5140. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7388.JPG&#34;&gt;
  5141.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7388.JPG&#34; width=&#34;200&#34;&gt;
  5142. &lt;/a&gt;
  5143. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7391.JPG&#34;&gt;
  5144.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7391.JPG&#34; width=&#34;200&#34;&gt;
  5145. &lt;/a&gt;
  5146. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7394.JPG&#34;&gt;
  5147.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7394.JPG&#34; width=&#34;200&#34;&gt;
  5148. &lt;/a&gt;
  5149. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7397.JPG&#34;&gt;
  5150.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7397.JPG&#34; width=&#34;200&#34;&gt;
  5151. &lt;/a&gt;
  5152. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7398.JPG&#34;&gt;
  5153.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7398.JPG&#34; width=&#34;200&#34;&gt;
  5154. &lt;/a&gt;
  5155. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7403.JPG&#34;&gt;
  5156.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7403.JPG&#34; width=&#34;200&#34;&gt;
  5157. &lt;/a&gt;
  5158. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7418.JPG&#34;&gt;
  5159.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7418.JPG&#34; width=&#34;200&#34;&gt;
  5160. &lt;/a&gt;
  5161. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7429.JPG&#34;&gt;
  5162.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7429.JPG&#34; width=&#34;200&#34;&gt;
  5163. &lt;/a&gt;
  5164. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7435.JPG&#34;&gt;
  5165.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7435.JPG&#34; width=&#34;200&#34;&gt;
  5166. &lt;/a&gt;
  5167. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7460.JPG&#34;&gt;
  5168.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7460.JPG&#34; width=&#34;200&#34;&gt;
  5169. &lt;/a&gt;
  5170. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7462.JPG&#34;&gt;
  5171.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7462.JPG&#34; width=&#34;200&#34;&gt;
  5172. &lt;/a&gt;
  5173. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7472.JPG&#34;&gt;
  5174.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7472.JPG&#34; width=&#34;200&#34;&gt;
  5175. &lt;/a&gt;
  5176. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7481.JPG&#34;&gt;
  5177.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7481.JPG&#34; width=&#34;200&#34;&gt;
  5178. &lt;/a&gt;
  5179. &lt;a href=&#34;/files/photos/./2016-10-12/IMG_7486.JPG&#34;&gt;
  5180.  &lt;img height=&#34;200&#34; src=&#34;/files/photos/./2016-10-12/Thumbs/IMG_7486.JPG&#34; width=&#34;200&#34;&gt;
  5181. &lt;/a&gt;
  5182. &lt;/div&gt;
  5183.  
  5184. &lt;p class=&#34;datelink&#34;&gt;
  5185. &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; /
  5186. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5187. &lt;a href=&#34;https://p1k3.com/2016/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt; /
  5188. &lt;a href=&#34;https://p1k3.com/2016/10/12/&#34; title=&#34;12&#34;&gt;12&lt;/a&gt;
  5189. &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;
  5190.  
  5191. &lt;h2&gt;php method access&lt;/h2&gt;
  5192.  
  5193. &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; /
  5194. &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
  5195. example:&lt;/p&gt;
  5196.  
  5197. &lt;pre&gt;&lt;code&gt;&#38;lt;?php
  5198. class whatever {
  5199.  public static function foo () { echo &#34;foo called\n&#34;; }
  5200.  static public function bar () { echo &#34;bar called\n&#34;; }
  5201. }
  5202. whatever::foo();
  5203. whatever::bar();
  5204. &lt;/code&gt;&lt;/pre&gt;
  5205.  
  5206. &lt;p&gt;And on running:&lt;/p&gt;
  5207.  
  5208. &lt;pre&gt;&lt;code&gt;[email protected] 12:02:54 /home/brennen ★ php test.php
  5209. foo called
  5210. bar called
  5211. &lt;/code&gt;&lt;/pre&gt;
  5212.  
  5213. &lt;p&gt;Did I know this once and forget it?  In a decade+ of writing the stuff,
  5214. did I somehow just never notice?&lt;/p&gt;
  5215.  
  5216.  
  5217. &lt;p class=&#34;datelink&#34;&gt;
  5218. &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; /
  5219. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5220. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5221. &lt;a href=&#34;https://p1k3.com/2016/9/29/&#34; title=&#34;29&#34;&gt;29&lt;/a&gt;
  5222. &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;
  5223.  
  5224. &lt;p&gt;Hello, Colorado citizens.&lt;/p&gt;
  5225.  
  5226. &lt;p&gt;Here is a working
  5227. &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;.
  5228. If, you know, you needed one of those.&lt;/p&gt;
  5229.  
  5230. &lt;p class=&#34;datelink&#34;&gt;
  5231. &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; /
  5232. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5233. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5234. &lt;a href=&#34;https://p1k3.com/2016/9/28/&#34; title=&#34;28&#34;&gt;28&lt;/a&gt;
  5235. &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;
  5236.  
  5237. &lt;p&gt;outside my window&lt;br /&gt;
  5238. small insects wobble in the sunlight&lt;br /&gt;
  5239. there are thin bright curves of spidersilk&lt;br /&gt;
  5240. on the screen&lt;br /&gt;
  5241. a squirrel runs along the fence&lt;br /&gt;
  5242. with a green apple in its mouth&lt;/p&gt;
  5243.  
  5244. &lt;p class=&#34;datelink&#34;&gt;
  5245. &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; /
  5246. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5247. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5248. &lt;a href=&#34;https://p1k3.com/2016/9/26/&#34; title=&#34;26&#34;&gt;26&lt;/a&gt;
  5249. &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;
  5250.  
  5251. &lt;markdown&gt;
  5252. Late Saturday afternoon, we&#39;re sitting in the living room reading.  I&#39;m in the
  5253. second round of some low-grade, low-stakes potential flamewar, which I&#39;d
  5254. probably do well to forget about.  There&#39;s sunlight coming in through the
  5255. windows.
  5256.  
  5257. &lt;p class=&#34;centerpiece&#34;&gt; ☼ &lt;/p&gt;
  5258.  
  5259. &lt;p class=&#34;datelink&#34;&gt;
  5260. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5261. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5262. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5263. &lt;a href=&#34;https://p1k3.com/2016/9/24/&#34; title=&#34;24&#34;&gt;24&lt;/a&gt;
  5264. &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;
  5265.  
  5266. &lt;h2&gt;gentle suggestions and fond hopes for your software project&lt;/h2&gt;
  5267.  
  5268. &lt;ol&gt;
  5269. &lt;li&gt;&lt;p&gt;Your software is not a friendly crash-landed extraterrestrial sapient in
  5270. need of rescue.  &lt;em&gt;Stop phoning home.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
  5271. &lt;li&gt;&lt;p&gt;One suspects that modern programmers have mistaken the virtues of code reuse
  5272. for an imperative to use as much code as possible.  &lt;em&gt;Stop building on top of
  5273. fragile, massively complex dependency chains with the approximate lifespan
  5274. of a cockroach.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
  5275. &lt;li&gt;&lt;p&gt;Your new language, library, or startup will suffer if we have to google a
  5276. common preposition, pronoun, or generic verb form which appears in billions
  5277. of non-technical English web pages.  &lt;em&gt;Stop calling your projects things like
  5278. &#38;ldquo;Go&#38;rdquo; and &#38;ldquo;This.&#38;rdquo;&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
  5279. &lt;li&gt;&lt;p&gt;It was once typical to encounter basic mechanisms (light switches, locks,
  5280. clock radios, thermostats) with working lifespans measured in decades.  It
  5281. was once reasonable to assume that basic household appliances would be
  5282. unlikely to surveil their owners on behalf of governments and
  5283. megacorporations.  &lt;em&gt;Stop putting computers in shit.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
  5284. &lt;/ol&gt;
  5285.  
  5286.  
  5287.  
  5288. &lt;p class=&#34;datelink&#34;&gt;
  5289. &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; /
  5290. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5291. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5292. &lt;a href=&#34;https://p1k3.com/2016/9/22/&#34; title=&#34;22&#34;&gt;22&lt;/a&gt;
  5293. &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;
  5294.  
  5295. &lt;p&gt;It&#38;rsquo;s late September.  We&#38;rsquo;re back from the Burn, back from Winfield, back from a
  5296. family wedding in Kansas City.  Festival time has reverted to default time, at
  5297. least in theory.  There&#38;rsquo;s a pile of laundry:  mud and woodsmoke on top of playa
  5298. dust.&lt;/p&gt;
  5299.  
  5300.  
  5301. &lt;p class=&#34;datelink&#34;&gt;
  5302. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5303. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5304. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5305. &lt;a href=&#34;https://p1k3.com/2016/9/20/&#34; title=&#34;20&#34;&gt;20&lt;/a&gt;
  5306. &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;
  5307.  
  5308. &lt;p&gt;you look better&lt;br /&gt;
  5309. with a little dust on you&lt;/p&gt;
  5310.  
  5311. &lt;p class=&#34;datelink&#34;&gt;
  5312. :: &lt;a href=&#34;https://p1k3.com/&#34;&gt;p1k3&lt;/a&gt; /
  5313. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5314. &lt;a href=&#34;https://p1k3.com/2016/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt; /
  5315. &lt;a href=&#34;https://p1k3.com/2016/9/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  5316. &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;
  5317.  
  5318. &lt;p&gt;writing is a&lt;br /&gt;
  5319. project to see into&lt;br /&gt;
  5320. time&lt;br /&gt;
  5321. and to shape&lt;br /&gt;
  5322. somehow&lt;br /&gt;
  5323. memory&lt;/p&gt;
  5324.  
  5325. &lt;p class=&#34;datelink&#34;&gt;
  5326. &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; /
  5327. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5328. &lt;a href=&#34;https://p1k3.com/2016/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  5329. &lt;a href=&#34;https://p1k3.com/2016/8/17/&#34; title=&#34;17&#34;&gt;17&lt;/a&gt;
  5330. &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;
  5331.  
  5332. &lt;h2&gt;verizon i hate you / r.i.p. flickr&lt;/h2&gt;
  5333.  
  5334. &lt;p&gt;I&#38;rsquo;ve been fighting with Verizon Wireless, because I went to cancel the service
  5335. on a hotspot I bought from them a while back, and suddenly discovered a
  5336. contract with a $90 early-termination fee for the device, which I&#38;rsquo;m pretty sure
  5337. the sales rep told me wouldn&#38;rsquo;t be a thing, and blah blah blah.  I am I, angry
  5338. customer.&lt;/p&gt;
  5339.  
  5340. &lt;p&gt;I&#38;rsquo;ve already spent more time, translated to billable hours, on this problem
  5341. than just eating the fee would have cost me.  By the time you&#38;rsquo;re swearing at
  5342. people working sales for the phone company, you&#38;rsquo;ve lost twice:  Once for being
  5343. an asshole to somebody with a shit job, and once because making you into the
  5344. asshole is clearly a designed function of the shit job in question.&lt;/p&gt;
  5345.  
  5346. &lt;p&gt;Verizon is, of course, a perfectly infuriating sort of low-stakes antagonist:
  5347. Implacably stupid as an institution, relentlessly mediocre in its functions,
  5348. and yet structured with a sort of perverse genius for avoiding non-predatory
  5349. modes of interaction.  Are you a customer of Verizon?  Ok:  You&#38;rsquo;ve entered an
  5350. 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;
  5351.  
  5352. &lt;p&gt;Anyhow.  I&#38;rsquo;ll pay the &#38;ldquo;you were stupid enough to engage our services&#38;rdquo; tax one
  5353. way or another, fees or waiting out the contract or what-have-you.  But my
  5354. newfound determination to actually stop giving Verizon money does coincide with
  5355. their parent company&#38;rsquo;s recent buyout of Yahoo.&lt;/p&gt;
  5356.  
  5357. &lt;p&gt;Yahoo, some years back, engulfed flickr and ruined it.  This was already a
  5358. pretty good object lesson (lesson umpteen thousand of ∞) in how centralized,
  5359. proprietary services inevitably fail their users.  Falling into the undead
  5360. hands of a re-coalescing chunk of Ma Bell just moves it from the set of
  5361. internet things I&#38;rsquo;m sad about into the set of internet things I can assume are
  5362. actively hostile to me and the public at large.&lt;/p&gt;
  5363.  
  5364. &lt;p&gt;So, aside from never giving flickr money again, what to do?&lt;/p&gt;
  5365.  
  5366. &lt;p&gt;I guess I&#38;rsquo;ll start hosting photos on my own website.  I&#38;rsquo;ve been messing with
  5367. &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
  5368. hard a thing to write and actually kind of fun.  The results aren&#38;rsquo;t amazing,
  5369. but I think I can get them looking ok, eventually.&lt;/p&gt;
  5370.  
  5371. &lt;p&gt;More interesting:  I keep this site in a git repository, which isn&#38;rsquo;t really a
  5372. very good way to store lots of large-ish files (like photos).  So I finally got
  5373. 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
  5374. large files with git without actually storing the underlying data directly &lt;em&gt;in&lt;/em&gt;
  5375. the repo and its history.  It took me a while to start getting my head around
  5376. the basics, but I think it&#38;rsquo;s going to be a decent way to push image files
  5377. around.&lt;/p&gt;
  5378.  
  5379. &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
  5380. Notes&lt;/a&gt;.&lt;/p&gt;
  5381.  
  5382.  
  5383. &lt;p class=&#34;datelink&#34;&gt;
  5384. &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; /
  5385. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5386. &lt;a href=&#34;https://p1k3.com/2016/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  5387. &lt;a href=&#34;https://p1k3.com/2016/8/14/&#34; title=&#34;14&#34;&gt;14&lt;/a&gt;
  5388. &lt;/p&gt;</content><updated>2018-03-18T18:44:44Z</updated></entry><entry><title>saturday, august 13</title><link href="https://p1k3.com/2016/8/13"/><id>https://p1k3.com/2016/8/13</id><content type="html">&lt;h1&gt;saturday, august 13&lt;/h1&gt;
  5389.  
  5390. &lt;p&gt;the frogs&lt;br /&gt;
  5391. are loud again&lt;/p&gt;
  5392.  
  5393. &lt;p class=&#34;datelink&#34;&gt;
  5394. &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; /
  5395. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5396. &lt;a href=&#34;https://p1k3.com/2016/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  5397. &lt;a href=&#34;https://p1k3.com/2016/8/13/&#34; title=&#34;13&#34;&gt;13&lt;/a&gt;
  5398. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>wednesday, august 10</title><link href="https://p1k3.com/2016/8/10"/><id>https://p1k3.com/2016/8/10</id><content type="html">&lt;h1&gt;wednesday, august 10&lt;/h1&gt;
  5399.  
  5400. &lt;p&gt;i sometimes feel like i&#39;m living a&lt;br /&gt;
  5401. parallel life in my dreams&lt;/p&gt;
  5402.  
  5403. &lt;p&gt;again and again&lt;br /&gt;
  5404. i walk cities not quite the same as&lt;br /&gt;
  5405. anywhere and the same as a hundred&lt;br /&gt;
  5406. places, through strange-familiar&lt;br /&gt;
  5407. streets past blocks of half-known buildings&lt;/p&gt;
  5408.  
  5409. &lt;p&gt;and talk in houses gone now for years&lt;br /&gt;
  5410. with distant friends, with the dead,&lt;br /&gt;
  5411. with people i haven&#39;t seen&lt;br /&gt;
  5412. since i myself was some other person&lt;/p&gt;
  5413.  
  5414. &lt;p&gt;and riding the trains and backroads of&lt;br /&gt;
  5415. continents all but entirely unreal&lt;br /&gt;
  5416. a geography echoing geography&lt;/p&gt;
  5417.  
  5418. &lt;p&gt;i find the patterns of my homes,&lt;br /&gt;
  5419. the ones i have&lt;br /&gt;
  5420. and have lost&lt;br /&gt;
  5421. and may yet find&lt;/p&gt;
  5422.  
  5423. &lt;p class=&#34;datelink&#34;&gt;
  5424. &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; /
  5425. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5426. &lt;a href=&#34;https://p1k3.com/2016/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  5427. &lt;a href=&#34;https://p1k3.com/2016/8/10/&#34; title=&#34;10&#34;&gt;10&lt;/a&gt;
  5428. &lt;/p&gt;</content><updated>2017-04-01T07:07:29Z</updated></entry><entry><title>Tuesday, August  9</title><link href="https://p1k3.com/2016/8/9"/><id>https://p1k3.com/2016/8/9</id><content type="html">&lt;h1&gt;Tuesday, August  9&lt;/h1&gt;
  5429.  
  5430. &lt;p&gt;We keep on putting ice cubes in the box wine.  It seems like a bad habit to get
  5431. into, but I guess I can&#38;rsquo;t credibly argue that it&#38;rsquo;s a worse habit than the box
  5432. wine is on its own.&lt;/p&gt;
  5433.  
  5434. &lt;p&gt;She&#38;rsquo;s alphabetizing the records.  I&#38;rsquo;m writing code, but it&#38;rsquo;s not useful code.
  5435. (It&#38;rsquo;s more like arranging a bunch of rusty hand tools with dulled edges than
  5436. it&#38;rsquo;s like tightening the fittings on a robot.)&lt;/p&gt;
  5437.  
  5438. &lt;p&gt;The fans are all on.  Earlier it seemed like it might storm, but outside it&#38;rsquo;s
  5439. dry and still, and the internet radar is correspondingly empty.  Rabbits are
  5440. probably scratching at the lawn.  There&#38;rsquo;s fresh raccoon shit near the apple
  5441. tree, which is so heavy with fruit it threatens to snap major branches.  The
  5442. windfalls have already started drawing critters.&lt;/p&gt;
  5443.  
  5444. &lt;p&gt;There&#38;rsquo;s a circularity to things.  It&#38;rsquo;s not that all arrangements of fact repeat
  5445. themselves, just that the patterns come around.  Here I am at a kitchen table
  5446. in the Colorado summer, typing and drinking.  Switching to sun tea, I pry ice
  5447. cubes out of the tray and think about this season in the states just east of
  5448. here and in years just past.&lt;/p&gt;
  5449.  
  5450. &lt;p&gt;etc.&lt;/p&gt;
  5451.  
  5452. &lt;p&gt;A lot doesn&#38;rsquo;t look quite the same when you see it again.  Not that you&#38;rsquo;re of
  5453. necessity any wiser or better at grasping it.  If anything, at this point on
  5454. the curve of experience, I feel more fuzzed out and shallow than I probably
  5455. did a decade ago.&lt;/p&gt;
  5456.  
  5457.  
  5458. &lt;p class=&#34;datelink&#34;&gt;
  5459. &lt;a href=&#34;https://p1k3.com/topics/colorado&#34;&gt;colorado&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; /
  5460. &lt;a href=&#34;https://p1k3.com/2016/&#34; title=&#34;2016&#34;&gt;2016&lt;/a&gt; /
  5461. &lt;a href=&#34;https://p1k3.com/2016/8/&#34; title=&#34;8&#34;&gt;8&lt;/a&gt; /
  5462. &lt;a href=&#34;https://p1k3.com/2016/8/9/&#34; title=&#34;9&#34;&gt;9&lt;/a&gt;
  5463. &lt;/p&gt;</content><updated>2018-05-14T03:55:09Z</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