<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" 
  xmlns:content="http://purl.org/rss/1.0/modules/content/" 
  xmlns:dc="http://purl.org/dc/elements/1.1/" 
  xmlns:atom="http://www.w3.org/2005/Atom" 
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" 
  xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>River Writes - A MediaWiki Blog</title>
    <link>https://river.me/</link>
    <description>RheingoldRiver&#39;s blog - MediaWiki development, Leaguepedia stories, and productivity hacks</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>©2020-2024, All Rights Reserved</copyright>
    <lastBuildDate>Fri, 23 Feb 2024 05:11:56 +0000</lastBuildDate>
    
        <atom:link href="https://river.me/index.xml" rel="self" type="application/rss+xml" />
    
      
      
      

      
      <item>
        <title>Send me your wiki-updating scripts!</title>
        <link>https://river.me/blog/send-me-scripts/</link>
        <pubDate>Fri, 23 Feb 2024 05:11:56 +0000</pubDate>
        
        <atom:modified>Fri, 23 Feb 2024 05:11:56 +0000</atom:modified>
        <guid>https://river.me/blog/send-me-scripts/</guid>
        <description>Contribute to my &lt;a href=&#34;https://github.com/RheingoldRiver/example_wiki_scripts&#34;&gt;list of resources&lt;/a&gt; for editing MediaWiki with code</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>mediawiki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Dealing with defaults</title>
        <link>https://river.me/blog/default-params/</link>
        <pubDate>Sun, 18 Feb 2024 11:20:30 +0000</pubDate>
        
        <atom:modified>Sun, 18 Feb 2024 11:20:30 +0000</atom:modified>
        <guid>https://river.me/blog/default-params/</guid>
        <description>There are a &lt;em&gt;lot&lt;/em&gt; of different things you can mean when you say &amp;ldquo;default parameter&amp;rdquo; in MediaWiki. This article explains them all.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>tutorial</category>
            
          
            
              <category>mediawiki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>How to install Sublime Text &amp; Mediawiker</title>
        <link>https://river.me/blog/sublime-tutorial/</link>
        <pubDate>Sun, 11 Feb 2024 14:05:13 +0000</pubDate>
        
        <atom:modified>Sun, 11 Feb 2024 14:05:13 +0000</atom:modified>
        <guid>https://river.me/blog/sublime-tutorial/</guid>
        <description>A step-by-step guide with screenshots on installing and configuring Sublime Text with the Mediawiker extension</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>sublimetext</category>
            
          
            
              <category>tutorial</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>If {{NAMESPACE}} do nothing, otherwise...</title>
        <link>https://river.me/blog/if-namespace/</link>
        <pubDate>Tue, 23 Jan 2024 16:34:28 +0000</pubDate>
        
        <atom:modified>Tue, 23 Jan 2024 16:34:28 +0000</atom:modified>
        <guid>https://river.me/blog/if-namespace/</guid>
        <description>A common design pattern in MediaWiki templating is to write &lt;code&gt;{{#if:{{NAMESPACE}}|&amp;lt;!-- do nothing --&amp;gt;|&amp;lt;!-- otherwise...--&amp;gt;}}&lt;/code&gt;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>best_practices</category>
            
          
            
              <category>mediawiki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book Review - The Field Guide to Global Payments</title>
        <link>https://river.me/blog/book-review-global-payments/</link>
        <pubDate>Sun, 17 Dec 2023 07:15:58 +0000</pubDate>
        
        <atom:modified>Sun, 17 Dec 2023 07:15:58 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-global-payments/</guid>
        <description>A review of &amp;ldquo;A Field Guide to Global Payments,&amp;rdquo; including a table of initialisms used in the book.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Ordering a Cargo field</title>
        <link>https://river.me/blog/cargo-order/</link>
        <pubDate>Sun, 03 Dec 2023 18:02:20 +0000</pubDate>
        
        <atom:modified>Sun, 03 Dec 2023 18:02:20 +0000</atom:modified>
        <guid>https://river.me/blog/cargo-order/</guid>
        <description>How can you enforce a sorting order on a Cargo field when displaying tabular data?</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>cargo</category>
            
          
            
              <category>best_practices</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>ShareX image effects</title>
        <link>https://river.me/blog/sharex-image-effects/</link>
        <pubDate>Sun, 26 Nov 2023 16:40:47 +0000</pubDate>
        
        <atom:modified>Sun, 26 Nov 2023 16:40:47 +0000</atom:modified>
        <guid>https://river.me/blog/sharex-image-effects/</guid>
        <description>How to use ShareX image effects &amp;amp; spam your friends with rainbows</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>sharex</category>
            
          
            
              <category>tutorial</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>How to use Weblate</title>
        <link>https://river.me/blog/weblate/</link>
        <pubDate>Wed, 15 Nov 2023 02:34:59 +0000</pubDate>
        
        <atom:modified>Wed, 15 Nov 2023 02:34:59 +0000</atom:modified>
        <guid>https://river.me/blog/weblate/</guid>
        <description>A guide to using Weblate as a translator</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>weblate</category>
            
          
            
              <category>tutorial</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>How to use Dev Tools</title>
        <link>https://river.me/blog/dev-tools/</link>
        <pubDate>Sat, 04 Nov 2023 20:52:47 +0000</pubDate>
        
        <atom:modified>Sat, 04 Nov 2023 20:52:47 +0000</atom:modified>
        <guid>https://river.me/blog/dev-tools/</guid>
        <description>Learn how to edit CSS interactively</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>css</category>
            
          
            
              <category>firefox</category>
            
          
            
              <category>tutorial</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Surfaces with pentominoes</title>
        <link>https://river.me/blog/surfaces-with-pentominoes/</link>
        <pubDate>Sat, 21 Oct 2023 01:18:07 +0000</pubDate>
        
        <atom:modified>Sat, 21 Oct 2023 01:18:07 +0000</atom:modified>
        <guid>https://river.me/blog/surfaces-with-pentominoes/</guid>
        <description>Embedding a grid on a surface doesn&amp;rsquo;t really work, but we can approximate.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>pentominoes</category>
            
          
            
              <category>graph_theory</category>
            
          
            
              <category>topology</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Serialization woes</title>
        <link>https://river.me/blog/serialization-woes/</link>
        <pubDate>Thu, 05 Oct 2023 06:29:07 +0000</pubDate>
        
        <atom:modified>Thu, 05 Oct 2023 06:29:07 +0000</atom:modified>
        <guid>https://river.me/blog/serialization-woes/</guid>
        <description>My journey of encoding pentominoes on surfaces into permalinks</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>react</category>
            
          
            
              <category>typescript</category>
            
          
            
              <category>pentominoes</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>I don&#39;t like infoboxes - EMWCon 2023</title>
        <link>https://river.me/blog/emwcon-2023-talk/</link>
        <pubDate>Tue, 06 Jun 2023 08:02:30 +0000</pubDate>
        
        <atom:modified>Tue, 06 Jun 2023 08:02:30 +0000</atom:modified>
        <guid>https://river.me/blog/emwcon-2023-talk/</guid>
        <description>I attended EMWCon 2023 remotely again in 2023 and finally gave the presentation everyone has been waiting for: I don&amp;rsquo;t like infoboxes.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>talk</category>
            
          
            
              <category>best_practices</category>
            
          
            
              <category>mediawiki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>List-type fields, for realsies</title>
        <link>https://river.me/blog/cargo-list-type-fields/</link>
        <pubDate>Sat, 20 May 2023 23:06:27 +0000</pubDate>
        
        <atom:modified>Sat, 20 May 2023 23:06:27 +0000</atom:modified>
        <guid>https://river.me/blog/cargo-list-type-fields/</guid>
        <description>What are list-type fields? What &lt;em&gt;aren&amp;rsquo;t&lt;/em&gt; they? How do I query them?</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>cargo</category>
            
          
            
              <category>best_practices</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Mediawiker 3.6.14</title>
        <link>https://river.me/blog/mediawiker-3-6-14/</link>
        <pubDate>Sat, 20 May 2023 06:25:55 +0000</pubDate>
        
        <atom:modified>Sat, 20 May 2023 06:25:55 +0000</atom:modified>
        <guid>https://river.me/blog/mediawiker-3-6-14/</guid>
        <description>SublimeText extension  Mediawiker 3.6.14 release update, plus some bonuses</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>sublimetext</category>
            
          
            
              <category>news</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review - Everybody Writes</title>
        <link>https://river.me/blog/book-review-everybody-writes/</link>
        <pubDate>Fri, 28 Apr 2023 08:31:15 +0000</pubDate>
        
        <atom:modified>Fri, 28 Apr 2023 08:31:15 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-everybody-writes/</guid>
        <description>&amp;ldquo;Everybody Writes&amp;rdquo; was deeply disappointing to me because it wasn&amp;rsquo;t the book I wanted to read. That said, I think it can be a valuable resource for people who want an introductory and accessible writing book.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>How I found four marketing books</title>
        <link>https://river.me/blog/found-marketing-books/</link>
        <pubDate>Tue, 04 Apr 2023 02:08:55 +0000</pubDate>
        
        <atom:modified>Tue, 04 Apr 2023 02:08:55 +0000</atom:modified>
        <guid>https://river.me/blog/found-marketing-books/</guid>
        <description>Subtitle: I dropped my keys - no, I mean bouncy balls - no, I mean information - in the light and learned to stop looking for it in the dark: An information-seeking parable</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
            
              <category>information-science</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Paste a transparent-background image with PIL</title>
        <link>https://river.me/blog/pil-mask/</link>
        <pubDate>Wed, 22 Feb 2023 19:20:21 +0000</pubDate>
        
        <atom:modified>Wed, 22 Feb 2023 19:20:21 +0000</atom:modified>
        <guid>https://river.me/blog/pil-mask/</guid>
        <description>How to paste a transparent-background image file over another file using PIL, or WTF is a mask and how does it work?</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>python</category>
            
          
            
              <category>pil</category>
            
          
            
              <category>tsubaki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Fandom update</title>
        <link>https://river.me/blog/fandom-update/</link>
        <pubDate>Thu, 04 Aug 2022 14:08:07 +0000</pubDate>
        
        <atom:modified>Thu, 04 Aug 2022 14:08:07 +0000</atom:modified>
        <guid>https://river.me/blog/fandom-update/</guid>
        <description>An update on my time with Leaguepedia.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review - Recoding Gender</title>
        <link>https://river.me/blog/book-review-recoding-gender/</link>
        <pubDate>Wed, 20 Jul 2022 00:54:30 +0000</pubDate>
        
        <atom:modified>Wed, 20 Jul 2022 00:54:30 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-recoding-gender/</guid>
        <description>A review of the book &amp;ldquo;Recoding Gender: Women&amp;rsquo;s Changing Participation in Computing&amp;rdquo;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Lua Branches</title>
        <link>https://river.me/blog/lua-branches/</link>
        <pubDate>Tue, 31 May 2022 10:05:34 +0000</pubDate>
        
        <atom:modified>Tue, 31 May 2022 10:05:34 +0000</atom:modified>
        <guid>https://river.me/blog/lua-branches/</guid>
        <description>Lua Branches is a prototype/proof-of-concept MediaWiki extension for making branches of Lua modules &amp;amp; their dependency chains.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>mediawiki_extensions</category>
            
          
            
              <category>lua</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Live I18n</title>
        <link>https://river.me/blog/live-i18n/</link>
        <pubDate>Tue, 17 May 2022 01:52:39 +0000</pubDate>
        
        <atom:modified>Tue, 17 May 2022 01:52:39 +0000</atom:modified>
        <guid>https://river.me/blog/live-i18n/</guid>
        <description>I wrote my second-ever MediaWiki extension!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>news</category>
            
          
            
              <category>mediawiki_extensions</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Handling internal data in MediaWiki</title>
        <link>https://river.me/blog/handling-internal-data/</link>
        <pubDate>Tue, 12 Apr 2022 05:27:42 +0000</pubDate>
        
        <atom:modified>Tue, 12 Apr 2022 05:27:42 +0000</atom:modified>
        <guid>https://river.me/blog/handling-internal-data/</guid>
        <description>My EMWCon 2022 talk</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>talk</category>
            
          
            
              <category>emwcon</category>
            
          
            
              <category>best_practices</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>How to crosslink two Hugo blogs</title>
        <link>https://river.me/blog/hugo-menus/</link>
        <pubDate>Tue, 15 Mar 2022 04:50:12 +0000</pubDate>
        
        <atom:modified>Tue, 15 Mar 2022 04:50:12 +0000</atom:modified>
        <guid>https://river.me/blog/hugo-menus/</guid>
        <description>My misadventures accomplishing what should have been a really easy task in Hugo</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>hugo</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>CustomLogs 1.0</title>
        <link>https://river.me/blog/custom-logs-1-0/</link>
        <pubDate>Tue, 22 Feb 2022 04:50:09 +0000</pubDate>
        
        <atom:modified>Tue, 22 Feb 2022 04:50:09 +0000</atom:modified>
        <guid>https://river.me/blog/custom-logs-1-0/</guid>
        <description>Custom Logs 1.0 has been released!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>news</category>
            
          
            
              <category>mediawiki_extensions</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Lua table errors</title>
        <link>https://river.me/blog/table-errors/</link>
        <pubDate>Tue, 08 Feb 2022 06:28:24 +0000</pubDate>
        
        <atom:modified>Tue, 08 Feb 2022 06:28:24 +0000</atom:modified>
        <guid>https://river.me/blog/table-errors/</guid>
        <description>A framework for inserting Lua errors into HTML tables using a singleton class</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>lua</category>
            
          
            
              <category>css</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Toggleable columns</title>
        <link>https://river.me/blog/toggleable-columns/</link>
        <pubDate>Tue, 18 Jan 2022 22:07:12 +0000</pubDate>
        
        <atom:modified>Tue, 18 Jan 2022 22:07:12 +0000</atom:modified>
        <guid>https://river.me/blog/toggleable-columns/</guid>
        <description>A simple interface to automatically let users toggle columns in any data table on the entire wiki.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>lua</category>
            
          
            
              <category>widgets</category>
            
          
            
              <category>javascript</category>
            
          
            
              <category>css</category>
            
          
            
              <category>leaguepedia</category>
            
          
            
              <category>mediawiki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Serving Hugo from a non-root location with Nginx</title>
        <link>https://river.me/blog/hugo-non-root-location/</link>
        <pubDate>Tue, 11 Jan 2022 02:29:20 +0000</pubDate>
        
        <atom:modified>Tue, 11 Jan 2022 02:29:20 +0000</atom:modified>
        <guid>https://river.me/blog/hugo-non-root-location/</guid>
        <description>How to host a Hugo blog from a non-root location</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>hugo</category>
            
          
            
              <category>nginx</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Organize your Hugo content folder by year, without affecting any URLs</title>
        <link>https://river.me/blog/hugo-content-by-year/</link>
        <pubDate>Tue, 04 Jan 2022 04:18:45 +0000</pubDate>
        
        <atom:modified>Tue, 04 Jan 2022 04:18:45 +0000</atom:modified>
        <guid>https://river.me/blog/hugo-content-by-year/</guid>
        <description>How to organize your Hugo content folder into subfolders by year without affecting any URLs</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>hugo</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review - Foundations of Library and Information Science</title>
        <link>https://river.me/blog/book-review-foundations-lis/</link>
        <pubDate>Wed, 29 Dec 2021 08:20:41 +0000</pubDate>
        
        <atom:modified>Wed, 29 Dec 2021 08:20:41 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-foundations-lis/</guid>
        <description>A review of &amp;ldquo;Foundations of Library and Information Science&amp;rdquo;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>How to find a namespace number</title>
        <link>https://river.me/blog/find-namespace-number/</link>
        <pubDate>Tue, 14 Dec 2021 15:28:29 +0000</pubDate>
        
        <atom:modified>Tue, 14 Dec 2021 15:28:29 +0000</atom:modified>
        <guid>https://river.me/blog/find-namespace-number/</guid>
        <description>Here&amp;rsquo;s how you can find the number of a particular namespace</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>mediawiki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Make lots of sandbox pages</title>
        <link>https://river.me/blog/lot-of-sandbox-pages/</link>
        <pubDate>Tue, 07 Dec 2021 23:41:34 +0000</pubDate>
        
        <atom:modified>Tue, 07 Dec 2021 23:41:34 +0000</atom:modified>
        <guid>https://river.me/blog/lot-of-sandbox-pages/</guid>
        <description>Instead of putting all of your code experiments on a single page, make lots of little sandbox pages!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>best_practices</category>
            
          
            
              <category>mediawiki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>How to set up Sphinx for Read the Docs</title>
        <link>https://river.me/blog/how-to-readthedocs/</link>
        <pubDate>Thu, 02 Dec 2021 09:54:37 +0000</pubDate>
        
        <atom:modified>Thu, 02 Dec 2021 09:54:37 +0000</atom:modified>
        <guid>https://river.me/blog/how-to-readthedocs/</guid>
        <description>A tutorial for configuring Sphinx for Read the Docs for your Python projects</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>python</category>
            
          
            
              <category>sphinx</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>mwcleric, my Python MediaWiki client library</title>
        <link>https://river.me/blog/mwcleric/</link>
        <pubDate>Wed, 24 Nov 2021 06:21:26 +0000</pubDate>
        
        <atom:modified>Wed, 24 Nov 2021 06:21:26 +0000</atom:modified>
        <guid>https://river.me/blog/mwcleric/</guid>
        <description>An overview of mwcleric</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>news</category>
            
          
            
              <category>python</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review - The Elements of User Experience</title>
        <link>https://river.me/blog/book-review-elements-user-experience/</link>
        <pubDate>Tue, 26 Oct 2021 07:17:38 +0000</pubDate>
        
        <atom:modified>Tue, 26 Oct 2021 07:17:38 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-elements-user-experience/</guid>
        <description>A review of &amp;ldquo;The Elements of User Experience&amp;rdquo;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Mouse Gestures (the useful ones)</title>
        <link>https://river.me/blog/mouse-gestures/</link>
        <pubDate>Tue, 12 Oct 2021 05:06:54 +0000</pubDate>
        
        <atom:modified>Tue, 12 Oct 2021 05:06:54 +0000</atom:modified>
        <guid>https://river.me/blog/mouse-gestures/</guid>
        <description>My Gesturefy bindings in Firefox and how I use them when working with MediaWiki</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>firefox</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review - Free to All</title>
        <link>https://river.me/blog/book-review-free-to-all/</link>
        <pubDate>Tue, 12 Oct 2021 04:26:12 +0000</pubDate>
        
        <atom:modified>Tue, 12 Oct 2021 04:26:12 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-free-to-all/</guid>
        <description>A review and chapter summaries of &amp;ldquo;Free to All: Carnegie Libraries &amp;amp; American Culture, 1890-1920&amp;rdquo;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>I stored a boolean instead of a timestamp</title>
        <link>https://river.me/blog/boolean-instead-of-timestamp/</link>
        <pubDate>Tue, 05 Oct 2021 01:16:32 +0000</pubDate>
        
        <atom:modified>Tue, 05 Oct 2021 01:16:32 +0000</atom:modified>
        <guid>https://river.me/blog/boolean-instead-of-timestamp/</guid>
        <description>A Cargo field I was going to store as a timestamp but decided to store as a boolean instead</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>cargo</category>
            
          
            
              <category>best_practices</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review - Celebration, U.S.A.</title>
        <link>https://river.me/blog/book-review-celebration-usa/</link>
        <pubDate>Tue, 05 Oct 2021 00:49:11 +0000</pubDate>
        
        <atom:modified>Tue, 05 Oct 2021 00:49:11 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-celebration-usa/</guid>
        <description>A review of &amp;ldquo;Celebration, U.S.A.: Living in Disney&amp;rsquo;s Brave New Town&amp;rdquo;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review - Library as Place</title>
        <link>https://river.me/blog/book-review-library-as-place/</link>
        <pubDate>Wed, 22 Sep 2021 10:07:18 +0000</pubDate>
        
        <atom:modified>Wed, 22 Sep 2021 10:07:18 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-library-as-place/</guid>
        <description>A review of &amp;ldquo;The Library as Place: History, Community, and Culture&amp;rdquo;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>MediaWiki hotkeys (the useful ones)</title>
        <link>https://river.me/blog/mediawiki-hotkeys-useful/</link>
        <pubDate>Tue, 14 Sep 2021 07:15:21 +0000</pubDate>
        
        <atom:modified>Tue, 14 Sep 2021 07:15:21 +0000</atom:modified>
        <guid>https://river.me/blog/mediawiki-hotkeys-useful/</guid>
        <description>A list of just the useful hotkeys/access keys in MediaWiki</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>mediawiki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review &amp; notes -  Looking for Information</title>
        <link>https://river.me/blog/book-review-looking-for-information/</link>
        <pubDate>Tue, 07 Sep 2021 20:33:43 +0000</pubDate>
        
        <atom:modified>Tue, 07 Sep 2021 20:33:43 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-looking-for-information/</guid>
        <description>A review of, including chapter-by-chapter notes on, &amp;ldquo;Looking for Information: A Survey of Research on Information Seeking, Needs, and Behavior&amp;rdquo;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review - Strategic Writing for UX</title>
        <link>https://river.me/blog/book-review-strategic-writing-ux/</link>
        <pubDate>Tue, 31 Aug 2021 03:50:07 +0000</pubDate>
        
        <atom:modified>Tue, 31 Aug 2021 03:50:07 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-strategic-writing-ux/</guid>
        <description>A review of &amp;ldquo;Strategic Writing for UX&amp;rdquo;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Gadget - Copy search results</title>
        <link>https://river.me/blog/copy-search/</link>
        <pubDate>Thu, 26 Aug 2021 13:33:46 +0000</pubDate>
        
        <atom:modified>Thu, 26 Aug 2021 13:33:46 +0000</atom:modified>
        <guid>https://river.me/blog/copy-search/</guid>
        <description>Similar to the copy category members gadget, but for search results - and more!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>gadget_tools</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review - Writing and Designing Manuals and Warnings</title>
        <link>https://river.me/blog/book-review-writing-designing-manuals-warnings/</link>
        <pubDate>Tue, 17 Aug 2021 05:44:26 +0000</pubDate>
        
        <atom:modified>Tue, 17 Aug 2021 05:44:26 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-writing-designing-manuals-warnings/</guid>
        <description>A review of &amp;ldquo;Writing and Designing Manuals and Warnings, Fifth Edition&amp;rdquo;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Bracket zoom bug</title>
        <link>https://river.me/blog/bracket-zoom-bug/</link>
        <pubDate>Sun, 15 Aug 2021 21:16:24 +0000</pubDate>
        
        <atom:modified>Sun, 15 Aug 2021 21:16:24 +0000</atom:modified>
        <guid>https://river.me/blog/bracket-zoom-bug/</guid>
        <description>A quick CSS bugfix that was particularly satisfying - and interesting!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>css</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Windows update made my mouse stop working</title>
        <link>https://river.me/blog/windows-update-mouse-die/</link>
        <pubDate>Sat, 14 Aug 2021 09:14:00 +0000</pubDate>
        
        <atom:modified>Sat, 14 Aug 2021 09:14:00 +0000</atom:modified>
        <guid>https://river.me/blog/windows-update-mouse-die/</guid>
        <description>Windows update made my mouse stop working. It turned out to be a problem with my USB ports.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>windows</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Gadget - Copy category members</title>
        <link>https://river.me/blog/copy-category-members/</link>
        <pubDate>Tue, 10 Aug 2021 00:13:09 +0000</pubDate>
        
        <atom:modified>Tue, 10 Aug 2021 00:13:09 +0000</atom:modified>
        <guid>https://river.me/blog/copy-category-members/</guid>
        <description>A gadget to copy all members of a category</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>gadget_tools</category>
            
          
            
              <category>javascript</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Frame, wtf?</title>
        <link>https://river.me/blog/frame-wtf/</link>
        <pubDate>Tue, 03 Aug 2021 08:46:02 +0000</pubDate>
        
        <atom:modified>Tue, 03 Aug 2021 08:46:02 +0000</atom:modified>
        <guid>https://river.me/blog/frame-wtf/</guid>
        <description>Frame objects in Scribunto can be confusing, and they do a lot of work. Normally I say &amp;ldquo;don&amp;rsquo;t worry, just copy the copyable code,&amp;rdquo; but here&amp;rsquo;s an indepth guide to everything they do.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>lua</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book notes - OSTEP (part 3)</title>
        <link>https://river.me/blog/book-notes-ostep-3/</link>
        <pubDate>Tue, 27 Jul 2021 05:16:48 +0000</pubDate>
        
        <atom:modified>Tue, 27 Jul 2021 05:16:48 +0000</atom:modified>
        <guid>https://river.me/blog/book-notes-ostep-3/</guid>
        <description>My notes on &amp;ldquo;Operating Systems: Three Easy Pieces&amp;rdquo; - part 3, Persistence</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book notes - OSTEP (part 2)</title>
        <link>https://river.me/blog/book-notes-ostep-2/</link>
        <pubDate>Tue, 20 Jul 2021 11:07:21 +0000</pubDate>
        
        <atom:modified>Tue, 20 Jul 2021 11:07:21 +0000</atom:modified>
        <guid>https://river.me/blog/book-notes-ostep-2/</guid>
        <description>My notes on &amp;ldquo;Operating Systems: Three Easy Pieces&amp;rdquo; - part 2, Concurrency</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book notes - OSTEP (part 1)</title>
        <link>https://river.me/blog/book-notes-ostep-1/</link>
        <pubDate>Tue, 13 Jul 2021 22:50:55 +0000</pubDate>
        
        <atom:modified>Tue, 13 Jul 2021 22:50:55 +0000</atom:modified>
        <guid>https://river.me/blog/book-notes-ostep-1/</guid>
        <description>My notes on &amp;ldquo;Operating Systems: Three Easy Pieces&amp;rdquo; - part 1, Virtualization</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review - Microcopy</title>
        <link>https://river.me/blog/book-review-microcopy/</link>
        <pubDate>Wed, 30 Jun 2021 00:08:32 +0000</pubDate>
        
        <atom:modified>Wed, 30 Jun 2021 00:08:32 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-microcopy/</guid>
        <description>A review of &amp;ldquo;Microcopy: The Complete Guide&amp;rdquo;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Gadget - Top-of-page categories</title>
        <link>https://river.me/blog/top-of-page-categories/</link>
        <pubDate>Tue, 22 Jun 2021 00:27:26 +0000</pubDate>
        
        <atom:modified>Tue, 22 Jun 2021 00:27:26 +0000</atom:modified>
        <guid>https://river.me/blog/top-of-page-categories/</guid>
        <description>A gadget to show categories at the top of pages</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>css</category>
            
          
            
              <category>gadget_tools</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Bookmarklet - stay here</title>
        <link>https://river.me/blog/bookmarklet-stay-here/</link>
        <pubDate>Tue, 08 Jun 2021 11:38:23 +0000</pubDate>
        
        <atom:modified>Tue, 08 Jun 2021 11:38:23 +0000</atom:modified>
        <guid>https://river.me/blog/bookmarklet-stay-here/</guid>
        <description>A bookmarklet that enables a prompt before navigating away from your current location</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>firefox</category>
            
          
            
              <category>javascript</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Comment your closing braces</title>
        <link>https://river.me/blog/comment-closing-braces/</link>
        <pubDate>Tue, 01 Jun 2021 05:22:52 +0000</pubDate>
        
        <atom:modified>Tue, 01 Jun 2021 05:22:52 +0000</atom:modified>
        <guid>https://river.me/blog/comment-closing-braces/</guid>
        <description>This one trick will save you 80% of your wikitext debugging time!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>best_practices</category>
            
          
            
              <category>mediawiki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Optimizing Cargo - query 3</title>
        <link>https://river.me/blog/optimizing-cargo-3/</link>
        <pubDate>Tue, 25 May 2021 22:07:05 +0000</pubDate>
        
        <atom:modified>Tue, 25 May 2021 22:07:05 +0000</atom:modified>
        <guid>https://river.me/blog/optimizing-cargo-3/</guid>
        <description>The final of three Cargo queries I recently optimized on Leaguepedia</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>Cargo</category>
            
          
            
              <category>Leaguepedia</category>
            
          
            
              <category>Lua</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Book review - Developing Quality Technical Information</title>
        <link>https://river.me/blog/book-review-quality-technical-information/</link>
        <pubDate>Sat, 22 May 2021 09:37:18 +0000</pubDate>
        
        <atom:modified>Sat, 22 May 2021 09:37:18 +0000</atom:modified>
        <guid>https://river.me/blog/book-review-quality-technical-information/</guid>
        <description>A review of the book &amp;ldquo;Developing Quality Technical Information: A Handbook for Writers and Editors&amp;rdquo;</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Sublime Text 4 is released!</title>
        <link>https://river.me/blog/sublimetext-4/</link>
        <pubDate>Thu, 20 May 2021 03:46:13 +0000</pubDate>
        
        <atom:modified>Thu, 20 May 2021 03:46:13 +0000</atom:modified>
        <guid>https://river.me/blog/sublimetext-4/</guid>
        <description>Sublime Text 4 has been released!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>news</category>
            
          
            
              <category>sublimetext</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>My EMWCon 2021 talk</title>
        <link>https://river.me/blog/emwcon-2021-talk/</link>
        <pubDate>Thu, 13 May 2021 03:52:11 +0000</pubDate>
        
        <atom:modified>Thu, 13 May 2021 03:52:11 +0000</atom:modified>
        <guid>https://river.me/blog/emwcon-2021-talk/</guid>
        <description>At EMWCon 2021, I gave a talk about easily performing tasks with Python on MediaWiki wikis.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>emwcon</category>
            
          
            
              <category>python</category>
            
          
            
              <category>talk</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Optimizing Cargo - query 2</title>
        <link>https://river.me/blog/optimizing-cargo-2/</link>
        <pubDate>Tue, 04 May 2021 22:06:58 +0000</pubDate>
        
        <atom:modified>Tue, 04 May 2021 22:06:58 +0000</atom:modified>
        <guid>https://river.me/blog/optimizing-cargo-2/</guid>
        <description>The second of three Cargo queries I recently optimized.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>cargo</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Optimizing Cargo - query 1</title>
        <link>https://river.me/blog/optimizing-cargo-1/</link>
        <pubDate>Wed, 28 Apr 2021 02:05:43 +0000</pubDate>
        
        <atom:modified>Wed, 28 Apr 2021 02:05:43 +0000</atom:modified>
        <guid>https://river.me/blog/optimizing-cargo-1/</guid>
        <description>A Cargo query I optimized recently on Leaguepedia</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>cargo</category>
            
          
            
              <category>leaguepedia</category>
            
          
            
              <category>lua</category>
            
          
            
              <category>lua_class_system</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>mwparserfromhell 0.6</title>
        <link>https://river.me/blog/mwparserfromhell-0-6/</link>
        <pubDate>Wed, 14 Apr 2021 01:15:08 +0000</pubDate>
        
        <atom:modified>Wed, 14 Apr 2021 01:15:08 +0000</atom:modified>
        <guid>https://river.me/blog/mwparserfromhell-0-6/</guid>
        <description>mwparserfromhell released version 0.6 a couple months ago with a couple really exciting changes!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>python</category>
            
          
            
              <category>mwparserfromhell</category>
            
          
            
              <category>news</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>A Lua module to print all args</title>
        <link>https://river.me/blog/cargo-debug-print-all-args/</link>
        <pubDate>Tue, 13 Apr 2021 11:24:05 +0000</pubDate>
        
        <atom:modified>Tue, 13 Apr 2021 11:24:05 +0000</atom:modified>
        <guid>https://river.me/blog/cargo-debug-print-all-args/</guid>
        <description>How to write a module to print all args to help with debugging Cargo</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>cargo</category>
            
          
            
              <category>lua</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Tournament brackets (part 1)</title>
        <link>https://river.me/blog/tournament-brackets/</link>
        <pubDate>Tue, 30 Mar 2021 06:36:44 +0000</pubDate>
        
        <atom:modified>Tue, 30 Mar 2021 06:36:44 +0000</atom:modified>
        <guid>https://river.me/blog/tournament-brackets/</guid>
        <description>Our CSS-grid-powered tournament brackets on Leaguepedia</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>css</category>
            
          
            
              <category>html</category>
            
          
            
              <category>leaguepedia</category>
            
          
            
              <category>lua</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Setting common match &amp; game keys</title>
        <link>https://river.me/blog/common-game-id/</link>
        <pubDate>Tue, 23 Mar 2021 02:33:50 +0000</pubDate>
        
        <atom:modified>Tue, 23 Mar 2021 02:33:50 +0000</atom:modified>
        <guid>https://river.me/blog/common-game-id/</guid>
        <description>How I corrected a mistake in my Cargo database design</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>cargo</category>
            
          
            
              <category>leaguepedia</category>
            
          
            
              <category>lua</category>
            
          
            
              <category>lua_class_system</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Reinstalling Windows</title>
        <link>https://river.me/blog/reinstalling-windows/</link>
        <pubDate>Tue, 16 Mar 2021 08:46:12 +0000</pubDate>
        
        <atom:modified>Tue, 16 Mar 2021 08:46:12 +0000</atom:modified>
        <guid>https://river.me/blog/reinstalling-windows/</guid>
        <description>I reinstalled Windows this month. As usual, it was a pretty arduous process, so let&amp;rsquo;s document what I did to make it suck less next time!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>windows</category>
            
          
            
              <category>vscode</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Use cases for Extension:CustomLogs</title>
        <link>https://river.me/blog/customlogs-use-cases/</link>
        <pubDate>Tue, 09 Mar 2021 02:33:50 +0000</pubDate>
        
        <atom:modified>Tue, 09 Mar 2021 02:33:50 +0000</atom:modified>
        <guid>https://river.me/blog/customlogs-use-cases/</guid>
        <description>Use cases for my extension CustomLogs</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>caching</category>
            
          
            
              <category>javascript</category>
            
          
            
              <category>leaguepedia</category>
            
          
            
              <category>python</category>
            
          
            
              <category>mediawiki_extensions</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Escape item[&#34;id&#34;]</title>
        <link>https://river.me/blog/escape-item-id/</link>
        <pubDate>Tue, 23 Feb 2021 19:59:37 +0000</pubDate>
        
        <atom:modified>Tue, 23 Feb 2021 19:59:37 +0000</atom:modified>
        <guid>https://river.me/blog/escape-item-id/</guid>
        <description>A funny commit I made today</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>cargo</category>
            
          
            
              <category>leaguepedia</category>
            
          
            
              <category>python</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Gadget - Improving Special:ListGroupRights CSS</title>
        <link>https://river.me/blog/listgrouprights-css/</link>
        <pubDate>Tue, 09 Feb 2021 00:43:00 +0000</pubDate>
        
        <atom:modified>Tue, 09 Feb 2021 00:43:00 +0000</atom:modified>
        <guid>https://river.me/blog/listgrouprights-css/</guid>
        <description>A couple lines of CSS to improve the user experience of Special:ListGroupRights</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>gadget_tools</category>
            
          
            
              <category>css</category>
            
          
            
              <category>firefox</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Books I read in 2019</title>
        <link>https://river.me/blog/books-in-2019/</link>
        <pubDate>Wed, 27 Jan 2021 05:59:57 +0000</pubDate>
        
        <atom:modified>Wed, 27 Jan 2021 05:59:57 +0000</atom:modified>
        <guid>https://river.me/blog/books-in-2019/</guid>
        <description>A list of books I read in 2019</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Books I read in 2020</title>
        <link>https://river.me/blog/books-in-2020/</link>
        <pubDate>Tue, 12 Jan 2021 22:18:30 +0000</pubDate>
        
        <atom:modified>Tue, 12 Jan 2021 22:18:30 +0000</atom:modified>
        <guid>https://river.me/blog/books-in-2020/</guid>
        <description>A list of books I read in 2020</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>books</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Firefox, keep bookmark keywords</title>
        <link>https://river.me/blog/firefox-keep-bookmark-keywords/</link>
        <pubDate>Tue, 05 Jan 2021 07:08:07 +0000</pubDate>
        
        <atom:modified>Tue, 05 Jan 2021 07:08:07 +0000</atom:modified>
        <guid>https://river.me/blog/firefox-keep-bookmark-keywords/</guid>
        <description>Firefox is considering removing bookmark keywords. They should keep them.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>firefox</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Non-unique item names</title>
        <link>https://river.me/blog/non-unique-item-names/</link>
        <pubDate>Tue, 29 Dec 2020 21:23:05 +0000</pubDate>
        
        <atom:modified>Tue, 29 Dec 2020 21:23:05 +0000</atom:modified>
        <guid>https://river.me/blog/non-unique-item-names/</guid>
        <description>In a recent patch, Riot introduced non-unique item names, and we had to create a system for dealing with this.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>leaguepedia</category>
            
          
            
              <category>lua</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Gadget - Line numbers in modules</title>
        <link>https://river.me/blog/line-numbers-modules/</link>
        <pubDate>Tue, 15 Dec 2020 23:58:32 +0000</pubDate>
        
        <atom:modified>Tue, 15 Dec 2020 23:58:32 +0000</atom:modified>
        <guid>https://river.me/blog/line-numbers-modules/</guid>
        <description>I add line numbers to Lua modules with JS &amp;amp; CSS.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>gadget_tools</category>
            
          
            
              <category>javascript</category>
            
          
            
              <category>css</category>
            
          
            
              <category>leaguepedia</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Example wiki scripts</title>
        <link>https://river.me/blog/example-wiki-scripts/</link>
        <pubDate>Tue, 08 Dec 2020 07:21:36 +0000</pubDate>
        
        <atom:modified>Tue, 08 Dec 2020 07:21:36 +0000</atom:modified>
        <guid>https://river.me/blog/example-wiki-scripts/</guid>
        <description>Introducing a new repo containing example Python wiki scripts I write</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>python</category>
            
          
            
              <category>mediawiki_api</category>
            
          
            
              <category>news</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Gadget - Cargo pagevalues improvement</title>
        <link>https://river.me/blog/cargo-pagevalues-improvement/</link>
        <pubDate>Tue, 01 Dec 2020 20:51:23 +0000</pubDate>
        
        <atom:modified>Tue, 01 Dec 2020 20:51:23 +0000</atom:modified>
        <guid>https://river.me/blog/cargo-pagevalues-improvement/</guid>
        <description>An improvement to the Cargo pagevalues view using just JS &amp;amp; CSS.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>gadget_tools</category>
            
          
            
              <category>javascript</category>
            
          
            
              <category>css</category>
            
          
            
              <category>cargo</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Gadget - Search results new page hotkey</title>
        <link>https://river.me/blog/search-new-page-hotkey/</link>
        <pubDate>Tue, 17 Nov 2020 05:03:04 +0000</pubDate>
        
        <atom:modified>Tue, 17 Nov 2020 05:03:04 +0000</atom:modified>
        <guid>https://river.me/blog/search-new-page-hotkey/</guid>
        <description>Let&amp;rsquo;s make a gadget so that Alt+Shift+E creates a new page from the Special:Search screen when a page doesn&amp;rsquo;t exist!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>gadget_tools</category>
            
          
            
              <category>javascript</category>
            
          
            
              <category>leaguepedia</category>
            
          
            
              <category>autohotkey</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Gadget - Disable Display Title</title>
        <link>https://river.me/blog/disable-display-title/</link>
        <pubDate>Tue, 03 Nov 2020 06:07:53 +0000</pubDate>
        
        <atom:modified>Tue, 03 Nov 2020 06:07:53 +0000</atom:modified>
        <guid>https://river.me/blog/disable-display-title/</guid>
        <description>A small JS gadget to disable display title for wiki editors</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>gadget_tools</category>
            
          
            
              <category>javascript</category>
            
          
            
              <category>leaguepedia</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Multi-Instance Subtemplates in Lua</title>
        <link>https://river.me/blog/lua-multi-instance-subtemplates/</link>
        <pubDate>Tue, 20 Oct 2020 04:44:14 +0000</pubDate>
        
        <atom:modified>Tue, 20 Oct 2020 04:44:14 +0000</atom:modified>
        <guid>https://river.me/blog/lua-multi-instance-subtemplates/</guid>
        <description>We can serialize arguments from multi-instance subtemplates when working with Lua and retrieve our data in easy-to-work-with arrays using simple wrapper functions.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>lua</category>
            
          
            
              <category>mediawiki</category>
            
          
            
              <category>leaguepedia</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Top Schedule</title>
        <link>https://river.me/blog/top-schedule/</link>
        <pubDate>Tue, 06 Oct 2020 13:25:44 +0000</pubDate>
        
        <atom:modified>Tue, 06 Oct 2020 13:25:44 +0000</atom:modified>
        <guid>https://river.me/blog/top-schedule/</guid>
        <description>How I created a global site banner on Leaguepedia using the extension Header Footer and some JavaScript, but no api calls</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>caching</category>
            
          
            
              <category>leaguepedia</category>
            
          
            
              <category>mediawiki</category>
            
          
            
              <category>python</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Run Pywikibot in Windows Subsystem for Linux</title>
        <link>https://river.me/blog/pywikibot-windows-subsystem-linux/</link>
        <pubDate>Tue, 22 Sep 2020 07:48:29 +0000</pubDate>
        
        <atom:modified>Tue, 22 Sep 2020 07:48:29 +0000</atom:modified>
        <guid>https://river.me/blog/pywikibot-windows-subsystem-linux/</guid>
        <description>How to configure PWB for third-party wikis, specifically in Windows Subsystem for Linux</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>pywikibot</category>
            
          
            
              <category>windows</category>
            
          
            
              <category>linux</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Your URL bar is a CLI</title>
        <link>https://river.me/blog/url-bar-is-a-cli/</link>
        <pubDate>Tue, 08 Sep 2020 02:32:49 +0000</pubDate>
        
        <atom:modified>Tue, 08 Sep 2020 02:32:49 +0000</atom:modified>
        <guid>https://river.me/blog/url-bar-is-a-cli/</guid>
        <description>When working with wikis, you can use your URL bar as a CLI-like interface for navigation, making your life a lot easier and more efficient!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>firefox</category>
            
          
            
              <category>leaguepedia</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>CompoundRole</title>
        <link>https://river.me/blog/compound-role/</link>
        <pubDate>Wed, 26 Aug 2020 16:50:18 +0000</pubDate>
        
        <atom:modified>Wed, 26 Aug 2020 16:50:18 +0000</atom:modified>
        <guid>https://river.me/blog/compound-role/</guid>
        <description>A bunch of things I did wrong because learning is fun!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>leaguepedia</category>
            
          
            
              <category>lua</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>How to rename Cargo tables safely</title>
        <link>https://river.me/blog/rename-cargo-tables-safely/</link>
        <pubDate>Tue, 11 Aug 2020 01:08:14 +0000</pubDate>
        
        <atom:modified>Tue, 11 Aug 2020 01:08:14 +0000</atom:modified>
        <guid>https://river.me/blog/rename-cargo-tables-safely/</guid>
        <description>Cargo actually provides a way to cleanly rename tables without any &amp;ldquo;downtime,&amp;rdquo; but it&amp;rsquo;s not obvious or documented how to do this.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>caching</category>
            
          
            
              <category>cargo</category>
            
          
            
              <category>leaguepedia</category>
            
          
            
              <category>best_practices</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Bot passwords &amp; you (&amp; your bot (&amp; you))</title>
        <link>https://river.me/blog/bot-passwords/</link>
        <pubDate>Tue, 28 Jul 2020 09:43:18 +0000</pubDate>
        
        <atom:modified>Tue, 28 Jul 2020 09:43:18 +0000</atom:modified>
        <guid>https://river.me/blog/bot-passwords/</guid>
        <description>What&amp;rsquo;s a bot password? What&amp;rsquo;s the difference between bot accounts and bot passwords? Why do I need all this anyway?</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>mediawiki</category>
            
          
            
              <category>best_practices</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Don&#39;t use _pageName</title>
        <link>https://river.me/blog/dont-use-pagename/</link>
        <pubDate>Tue, 14 Jul 2020 14:05:06 +0000</pubDate>
        
        <atom:modified>Tue, 14 Jul 2020 14:05:06 +0000</atom:modified>
        <guid>https://river.me/blog/dont-use-pagename/</guid>
        <description>Sometimes it can seem convenient to use the built-in _pageName field that Cargo provides; however, _pageName is a metadata field, and you should take care to use it only as such.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>cargo</category>
            
          
            
              <category>best_practices</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Die, DisplayPort!</title>
        <link>https://river.me/blog/die-displayport/</link>
        <pubDate>Thu, 09 Jul 2020 16:28:17 +0000</pubDate>
        
        <atom:modified>Thu, 09 Jul 2020 16:28:17 +0000</atom:modified>
        <guid>https://river.me/blog/die-displayport/</guid>
        <description>DisplayPort sucks in a multi-monitor setup and I&amp;rsquo;m celebrating not using it anymore.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>windows</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Serving Flask from a non-root location with Nginx</title>
        <link>https://river.me/blog/flask-nginx-non-root-location/</link>
        <pubDate>Tue, 07 Jul 2020 13:38:13 +0000</pubDate>
        
        <atom:modified>Tue, 07 Jul 2020 13:38:13 +0000</atom:modified>
        <guid>https://river.me/blog/flask-nginx-non-root-location/</guid>
        <description>I couldn&amp;rsquo;t find much documentation on how to serve Flask with uWSGI and Nginx from a non-root location, so, here&amp;rsquo;s some.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>flask</category>
            
          
            
              <category>nginx</category>
            
          
            
              <category>linux</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Vscode 2</title>
        <link>https://river.me/blog/vscode-2/</link>
        <pubDate>Wed, 01 Jul 2020 20:15:29 +0000</pubDate>
        
        <atom:modified>Wed, 01 Jul 2020 20:15:29 +0000</atom:modified>
        <guid>https://river.me/blog/vscode-2/</guid>
        <description>In which I report a bug and discover I have to write an extension, sigh</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>vscode</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>A new-tab-in-container Firefox hotkey</title>
        <link>https://river.me/blog/new-tab-account-container/</link>
        <pubDate>Wed, 01 Jul 2020 15:09:08 +0000</pubDate>
        
        <atom:modified>Wed, 01 Jul 2020 15:09:08 +0000</atom:modified>
        <guid>https://river.me/blog/new-tab-account-container/</guid>
        <description>A new AutoHotKey mini-adventure, in which I want a hotkey to create a new tab in a specific container, but here there be dragons!</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>autohotkey</category>
            
          
            
              <category>firefox</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Use cases for Highlight Links in Category</title>
        <link>https://river.me/blog/highlight-links-in-category/</link>
        <pubDate>Tue, 30 Jun 2020 23:21:53 +0000</pubDate>
        
        <atom:modified>Tue, 30 Jun 2020 23:21:53 +0000</atom:modified>
        <guid>https://river.me/blog/highlight-links-in-category/</guid>
        <description>Highlight Links In Category is a very small MediaWiki extension that applies classes to links based on the links&amp;rsquo; targets&amp;rsquo; categories. It has a number of incredibly nice use cases; here I give some examples.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>mediawiki</category>
            
          
            
              <category>mediawiki_extensions</category>
            
          
            
              <category>leaguepedia</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Adventures in caching primary keys</title>
        <link>https://river.me/blog/primary-key-caching-adventures/</link>
        <pubDate>Tue, 16 Jun 2020 20:39:18 +0000</pubDate>
        
        <atom:modified>Tue, 16 Jun 2020 20:39:18 +0000</atom:modified>
        <guid>https://river.me/blog/primary-key-caching-adventures/</guid>
        <description>The pattern of store -&amp;gt; query -&amp;gt; store -&amp;gt; query can lead to caching nightmares when working with Cargo or SMW in MediaWiki. This is the story of how I dealt with one.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>cargo</category>
            
          
            
              <category>caching</category>
            
          
            
              <category>leaguepedia</category>
            
          
            
              <category>lua</category>
            
          
            
              <category>mediawiki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Popups</title>
        <link>https://river.me/blog/popups/</link>
        <pubDate>Tue, 02 Jun 2020 20:21:07 +0000</pubDate>
        
        <atom:modified>Tue, 02 Jun 2020 20:21:07 +0000</atom:modified>
        <guid>https://river.me/blog/popups/</guid>
        <description>Popup content can offer users a wide range of dynamic content options on a page - and lazily-loading popup content can do this without increasing loading times. Here&amp;rsquo;s how I&amp;rsquo;ve built a framework for both static and lazily-loaded popups.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>mediawiki</category>
            
          
            
              <category>javascript</category>
            
          
            
              <category>css</category>
            
          
            
              <category>mediawiki_api</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>VSCode 1</title>
        <link>https://river.me/blog/vscode-1/</link>
        <pubDate>Tue, 26 May 2020 06:23:13 +0000</pubDate>
        
        <atom:modified>Tue, 26 May 2020 06:23:13 +0000</atom:modified>
        <guid>https://river.me/blog/vscode-1/</guid>
        <description>Last week I installed VSCode for the first time, after using exclusively SublimeText for about two years (and Notepad++ prior to that). I&amp;rsquo;m going to document my learning curve.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>vscode</category>
            
          
            
              <category>sublimetext</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Highlighting disambiguations</title>
        <link>https://river.me/blog/disambig-highlight/</link>
        <pubDate>Tue, 19 May 2020 13:21:48 +0000</pubDate>
        
        <atom:modified>Tue, 19 May 2020 13:21:48 +0000</atom:modified>
        <guid>https://river.me/blog/disambig-highlight/</guid>
        <description>Disambiguations are typically somewhat user-unfriendly, especially when a wiki has a relatively low percentage of pages that are disambiguated and so the presence of one is unexpected. Here I describe my method for improving quality of life when disambiguation links do appear.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>mediawiki</category>
            
          
            
              <category>javascript</category>
            
          
            
              <category>lua</category>
            
          
            
              <category>cargo</category>
            
          
            
              <category>css</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>CharInsert: Why you should &#34;char&#34;</title>
        <link>https://river.me/blog/charinsert/</link>
        <pubDate>Tue, 05 May 2020 04:46:37 +0000</pubDate>
        
        <atom:modified>Tue, 05 May 2020 04:46:37 +0000</atom:modified>
        <guid>https://river.me/blog/charinsert/</guid>
        <description>CharInsert is one of my favorite extensions. Here&amp;rsquo;s how I made a Lua wrapper for it to create a user-friendly interface for anyone to add snippets they want.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>mediawiki</category>
            
          
            
              <category>mediawiki_extensions</category>
            
          
            
              <category>javascript</category>
            
          
            
              <category>lua</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Sublimetext for Mediawiki</title>
        <link>https://river.me/blog/sublime-for-mediawiki/</link>
        <pubDate>Tue, 21 Apr 2020 07:03:23 +0000</pubDate>
        
        <atom:modified>Tue, 21 Apr 2020 07:03:23 +0000</atom:modified>
        <guid>https://river.me/blog/sublime-for-mediawiki/</guid>
        <description>The &amp;ldquo;Mediawiker&amp;rdquo; plugin makes Sublime the best IDE-like experience for editing wikis, particularly when one is primarily writing Scribunto/Lua modules. Here&amp;rsquo;s how I&amp;rsquo;ve set up my environment.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>sublimetext</category>
            
          
            
              <category>mediawiki</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>My EMWCon 2020 Talks</title>
        <link>https://river.me/blog/emwcon-2020-talks/</link>
        <pubDate>Tue, 07 Apr 2020 21:43:52 +0000</pubDate>
        
        <atom:modified>Tue, 07 Apr 2020 21:43:52 +0000</atom:modified>
        <guid>https://river.me/blog/emwcon-2020-talks/</guid>
        <description>At EMWCon 2020, I gave one talk and hosted two Create Camp sessions, discussing different aspects of usage of Cargo and Lua in MediaWiki.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>emwcon</category>
            
          
            
              <category>mediawiki</category>
            
          
            
              <category>talk</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>The Anti-Thanos Snap That Wasn&#39;t</title>
        <link>https://river.me/blog/anti-thanos-april-fools/</link>
        <pubDate>Tue, 31 Mar 2020 01:08:42 +0000</pubDate>
        
        <atom:modified>Tue, 31 Mar 2020 01:08:42 +0000</atom:modified>
        <guid>https://river.me/blog/anti-thanos-april-fools/</guid>
        <description>The story of the April Fools Day joke for 2020 that I didn&amp;rsquo;t do, and the &amp;ldquo;Snap&amp;rdquo; that we may or may not still do.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>leaguepedia</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Gadgets for code organization</title>
        <link>https://river.me/blog/gadgets-for-code-organization/</link>
        <pubDate>Mon, 23 Mar 2020 01:20:40 +0000</pubDate>
        
        <atom:modified>Mon, 23 Mar 2020 01:20:40 +0000</atom:modified>
        <guid>https://river.me/blog/gadgets-for-code-organization/</guid>
        <description>Though it&amp;rsquo;s mostly used as a way to let wikis have opt-in or opt-out CSS and JS features for users, the Gadgets extension is a great way to organize code instead of using Common.css and Common.js for everything.</description>
        
        <dc:creator>river</dc:creator>
        
        
        
        
          
            
              <category>mediawiki</category>
            
          
            
              <category>javascript</category>
            
          
            
              <category>css</category>
            
          
        
        
        
      </item>
      

    
  </channel>
</rss>
