<rss version="2.0">
  <channel>
    <title>WikiApiary on Jamie Thingelstad</title>
    <link>https://www.thingelstad.com/categories/wikiapiary/</link>
    <description></description>
    
    <language>en</language>
    
    <lastBuildDate>Sun, 26 Nov 2017 17:37:37 -0500</lastBuildDate>
    
    <item>
      <title>Envisioning a Cloud Native Wiki</title>
      <link>https://www.thingelstad.com/2017/11/26/envisioning-a-cloud.html</link>
      <pubDate>Sun, 26 Nov 2017 17:37:37 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2017/11/26/envisioning-a-cloud.html</guid>
      <description>&lt;p&gt;A few years ago I dove deeply into the wiki ecosystem and learned all about &lt;a href=&#34;#&#34;&gt;MediaWiki&lt;/a&gt;, its plugins and various extensions. I started a wiki to index all of the other wiki&amp;rsquo;s called &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt;. The wiki movement was huge, and it still has a tremendous amount of energy and incredibly devoted users. &lt;a href=&#34;https://www.wikipedia.org&#34;&gt;Wikipedia&lt;/a&gt;, in my opinion, is one of the most amazing creations of the Internet.&lt;/p&gt;
&lt;p&gt;However, the wiki movement has hit the skids lately. There was a significant rush of wiki hosting platforms early on, and those mostly didn&amp;rsquo;t work. &lt;a href=&#34;http://www.wikia.com/&#34;&gt;Wikia&lt;/a&gt; is perhaps an exception however it&amp;rsquo;s driven itself into the hole of fandom in a big way. Sadly many wiki platforms continue to sit on top of ugly PHP code and MySQL databases, with old codebases and arcane syntax.&lt;/p&gt;
&lt;p&gt;In recent years email newsletters have seen a resurgence. I&amp;rsquo;d like to see wikis make a similar revival but for that to happen, we need to have some new energy in the wiki ecosystem. We need a cloud-native wiki solution. What would that look like?&lt;/p&gt;
&lt;h3 id=&#34;cloud-native-wiki&#34;&gt;Cloud Native Wiki&lt;/h3&gt;
&lt;p&gt;First thing first wikis should enable communities of any size, so the cost of running a wiki needs to be as cheap as possible. A serverless approach seems to make the most sense. If nobody is using the wiki the cost of running it should be no more than the storage, and that can be very cost effective.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Store all wiki pages and objects in S3. Store the objects in an
editable format, something like Markdown, but also store it as HTML
as well so it can be served directly out of S3. Think of how static
site generators work.&lt;/li&gt;
&lt;li&gt;The wiki itself should live in Lambda functions exposed through API
Gateway. All editing and modifying of objects in the S3 bucket
should be done via this method.&lt;/li&gt;
&lt;li&gt;The wiki should be self-managed by a central source to update it.
Wiki&amp;rsquo;s have a history of being poorly maintained. You should be able
to create an IAM credential and give the ability for the Lambda
functions and infrastructure of the wiki to be updated
automatically.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;let-millions-of-wikis-flourish&#34;&gt;Let Millions of Wikis Flourish&lt;/h3&gt;
&lt;p&gt;Ideally, someone should be able to start a wiki by creating an AWS account and then creating the IAM account for provisioning and updating. That account should then do all the initial setup as well as updating over time.&lt;/p&gt;
&lt;p&gt;The content would be held in Markdown files in S3, as well as rendered HTML. This content would be easily mirrored off of S3 so it could be taken somewhere else. If the Lambda functions were all removed, the wiki should still run in static mode with no editing.&lt;/p&gt;
&lt;p&gt;If we had this kind of capability, perhaps we could see wikis reenter the landscape for all the good that they can provide.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2015/10/30/very-cool-lambda.html</link>
      <pubDate>Fri, 30 Oct 2015 20:20:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2015/10/31/very-cool-lambda.html</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://twitter.com/jeffbarr/status/660207261583695872&#34;&gt;Very cool Lambda tool&lt;/a&gt;. Needed this for my &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt; project.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2014/10/06/the-main-thing.html</link>
      <pubDate>Mon, 06 Oct 2014 19:48:16 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2014/10/07/the-main-thing.html</guid>
      <description>&lt;p&gt;The main thing I’ve learned from my &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt; project is how horribly bad the spam bot problem is in the &lt;a href=&#34;https://www.mediawiki.org/wiki/MediaWiki&#34;&gt;MediaWiki&lt;/a&gt; world.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>WikiApiary Stickers</title>
      <link>https://www.thingelstad.com/2014/07/21/wikiapiary-stickers.html</link>
      <pubDate>Mon, 21 Jul 2014 00:00:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2014/07/21/wikiapiary-stickers.html</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.stickermule.com&#34;&gt;StickerMule&lt;/a&gt; had a great deal a couple of weeks ago so I had these fun &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt; clear vinyl stickers made. They really came out great!&lt;/p&gt;
&lt;p&gt;If you want one for your laptop or whatever send me a note and I&amp;rsquo;ll put one in the mail.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/890/2020/354ee69013.jpg&#34; alt=&#34;Dozens of small cartoon bumblebee stickers scattered across a sunflower-patterned background with yellow petals and brown centers.&#34;&gt;
</description>
    </item>
    
    <item>
      <title>Why WikiApiary uses pages and not articles</title>
      <link>https://www.thingelstad.com/2014/05/27/why-wikiapiary-uses.html</link>
      <pubDate>Tue, 27 May 2014 00:00:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2014/05/27/why-wikiapiary-uses.html</guid>
      <description>&lt;p&gt;A while back @Waldyrious posed this question about &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;&lt;a href=&#34;https://x.com/WikiApiary?ref_src=twsrc%5Etfw&#34;&gt;@WikiApiary&lt;/a&gt; in the lists of wikis by number of articles &lt;a href=&#34;https://t.co/dKeb8eowPE&#34;&gt;https://t.co/dKeb8eowPE&lt;/a&gt;, why not show the article count rather than the page count?&lt;/p&gt;&amp;mdash; Waldir Pimenta (@waldyrious) &lt;a href=&#34;https://x.com/waldyrious/status/441123248999108609?ref_src=twsrc%5Etfw&#34;&gt;March 5, 2014&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.x.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;p&gt;The full answer is actually found &lt;a href=&#34;https://wikiapiary.com/wiki/User_talk:Thingles/Up_to_January_2013#Articles&#34;&gt;in my talk page on WikiApiary&lt;/a&gt;. Articles are a construct that each wiki can manage. MediaWiki tries to create these two classes of content: Pages and Articles. The intent being that pages are in some way less like &amp;ldquo;content&amp;rdquo; than articles. The metrics for determining this are configurable, but I&amp;rsquo;m guessing nearly everyone leaves it at the defaults. I felt that the page concept, just looking at content and not judging if it was better or worse was a simpler way to look at thousands of different wikis.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2014/05/18/tried-to-get.html</link>
      <pubDate>Sun, 18 May 2014 21:58:31 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2014/05/19/tried-to-get.html</guid>
      <description>&lt;p&gt;Tried to get the new &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt; &lt;a href=&#34;https://docs.celeryproject.org/en/stable/&#34;&gt;Celery&lt;/a&gt; bots live tonight but &amp;ldquo;daemonizing&amp;rdquo; &lt;code&gt;celeryd&lt;/code&gt; got the best of me for tonight.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Keybase and MediaWiki</title>
      <link>https://www.thingelstad.com/2014/05/11/keybase-and-mediawiki.html</link>
      <pubDate>Sun, 11 May 2014 00:00:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2014/05/11/keybase-and-mediawiki.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m really intrigued by what Keybase.io is doing with identity. The ability to cryptographically prove your identity on the web without a centralized party like Twitter or Facebook owning the approval process is a needed function. I setup my profile and you can now prove on your own that I am who I say I am on Twitter, Github and five of my domains.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m trying to figure out how this could be extended to MediaWiki. I would love to be able to prove that my user account is me at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lt;&lt;a href=&#34;https://wikiapiary.com/wiki/User:Thingles&#34;&gt;wikiapiary.com/wiki/User&amp;hellip;&lt;/a&gt;&amp;gt;&lt;/li&gt;
&lt;li&gt;&amp;lt;&lt;a href=&#34;https://www.mediawiki.org/wiki/User:Thingles&#34;&gt;www.mediawiki.org/wiki/User&amp;hellip;&lt;/a&gt;&amp;gt;&lt;/li&gt;
&lt;li&gt;&amp;lt;&lt;a href=&#34;http://en.wikipedia.org/wiki/User:Thingles&#34;&gt;en.wikipedia.org/wiki/User&amp;hellip;&lt;/a&gt;&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This seems really hard. The method used on Github is to public a Gist, and you could certainly have a wiki user publish something on their user page, but that can also be edited by anybody.&lt;/p&gt;
&lt;p&gt;But if we could do this, it would be a great way to allow Wikipedia editors to claim ownership with proof of their identities (if they wish) and would benefit thousands of self-hosted MediaWiki websites.&lt;/p&gt;
&lt;p&gt;I think something more like the Twitter proof could work. How?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Have the user in question edit their User page. The contents of the edit don&amp;rsquo;t matter, the &lt;strong&gt;Summary&lt;/strong&gt; field is what will be looked at. (Limited to 255 characters)&lt;/li&gt;
&lt;li&gt;MediaWiki websites have a permanent revision history attached to each page. (This would be like a Tweet, &lt;a href=&#34;https://wikiapiary.com/w/index.php?title=User:Thingles&amp;amp;action=history&#34;&gt;see my change on May 11 2014&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;This information is accessible via the MediaWiki API, and there is a revid attached to each revision.&lt;/li&gt;
&lt;li&gt;This revision ID can be used to pull the proof forward for keybase.io.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here are the last 5 revisions for my User page on WikiApiary (&lt;a href=&#34;https://wikiapiary.com/w/api.php?action=query&amp;amp;prop=revisions&amp;amp;titles=User:Thingles&amp;amp;rvlimit=5&amp;amp;rvprop=ids%7Ctimestamp%7Cuser%7Ccomment&amp;amp;format=json&#34;&gt;API call&lt;/a&gt;).&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;query&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;pages&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;43&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;ns&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;pageid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;43&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revisions&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;comment&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;This is my message for keybase.io to prove I am who I am!&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;parentid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;884728&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;904406&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2014-05-11T13:10:17Z&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Thingles&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;comment&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;remove gittip button&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;parentid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;569866&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;884728&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2014-04-30T02:55:26Z&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Thingles&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;comment&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;parentid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;569864&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;569866&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2014-02-21T01:56:28Z&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Thingles&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;comment&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;added badge&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;parentid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;552628&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;569864&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2014-02-21T01:54:59Z&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Thingles&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;comment&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;add babel box (needs templates and styles)&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;parentid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;528928&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;552628&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2014-02-15T19:36:51Z&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Thingles&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;title&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;User:Thingles&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;query-continue&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revisions&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;rvcontinue&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;528928&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now that we have the revid we can find the information for this revision to continue to claim proof (&lt;a href=&#34;https://wikiapiary.com/w/api.php?action=query&amp;amp;prop=revisions&amp;amp;titles=User:Thingles&amp;amp;rvstartid=904406&amp;amp;rvlimit=1&amp;amp;rvprop=ids%7Ctimestamp%7Cuser%7Ccomment&amp;amp;format=json&#34;&gt;API call&lt;/a&gt;). The key is that the title of the page &amp;ldquo;User:Thingles&amp;rdquo; matches with the user that made the change &amp;ldquo;Thingles&amp;rdquo;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;query&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;pages&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;43&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;ns&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;pageid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;43&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revisions&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;comment&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;This is my message for keybase.io to prove I am who I am!&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;parentid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;884728&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;904406&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2014-05-11T13:10:17Z&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Thingles&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;title&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;User:Thingles&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;query-continue&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revisions&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;rvcontinue&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;884728&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And now I&amp;rsquo;ve proven my identity. The only trick is that the comment must contain all the data, and that should be easy since keybase already does something similar for Twitter.&lt;/p&gt;
&lt;p&gt;And here is another example of me making a proven comment on my user page on Wikipedia (en) (&lt;a href=&#34;https://en.wikipedia.org/w/api.php?action=query&amp;amp;prop=revisions&amp;amp;titles=User:Thingles&amp;amp;rvstartid=608054849&amp;amp;rvlimit=1&amp;amp;rvprop=ids%7Ctimestamp%7Cuser%7Ccomment&amp;amp;format=json&#34;&gt;API call&lt;/a&gt;).&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;query&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;pages&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;14604697&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;ns&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;pageid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;14604697&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revisions&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;comment&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Here is my message for Keybase from Wikipedia.&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;parentid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;551074105&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revid&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;608054849&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2014-05-11T13:56:25Z&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Thingles&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;title&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;User:Thingles&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;query-continue&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;revisions&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;rvcontinue&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;551074105&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2014/05/10/like-a-monkey.html</link>
      <pubDate>Sat, 10 May 2014 00:00:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2014/05/10/like-a-monkey.html</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;At least now the code doesn&amp;rsquo;t look like it was made by a monkey.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/optimuspaul&#34;&gt;Paul&lt;/a&gt; commenting on the structure of
my &lt;a href=&#34;https://github.com/thingles/WikiApiary&#34;&gt;WikiApiary code&lt;/a&gt; after doing
some refactoring.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Huge Impact of Linode Cloud Updates</title>
      <link>https://www.thingelstad.com/2014/04/20/huge-impact-of.html</link>
      <pubDate>Sun, 20 Apr 2014 00:00:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2014/04/20/huge-impact-of.html</guid>
      <description>&lt;p&gt;I host all of my personal projects on two servers at Linode. Last week &lt;a href=&#34;https://blog.linode.com/2014/04/17/linode-cloud-ssds-double-ram-much-more/&#34;&gt;Linode announced new &amp;ldquo;cloud servers&amp;rdquo; with SSD&amp;rsquo;s, double RAM and a new chip architecture&lt;/a&gt;. I migrated both of my hosts over to the new servers that evening and the performance impact was immediately noticeable. WikiApiary is the most taxing project I run, and it was clearly much faster. This graph though of the WikiApiary API response time is the most telling. So much better! &lt;img src=&#34;https://cdn.uploads.micro.blog/890/2020/8c4d169188.png&#34; alt=&#34;response-time&#34;&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2014/03/22/submitted-pull-request.html</link>
      <pubDate>Sat, 22 Mar 2014 12:09:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2014/03/22/submitted-pull-request.html</guid>
      <description>&lt;p&gt;Submitted &lt;a href=&#34;https://github.com/badges/shields/pull/147&#34;&gt;pull request to add WikiApiary extension counts&lt;/a&gt; to &lt;a href=&#34;https://shields.io&#34;&gt;Shields.io&lt;/a&gt;!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2014/01/20/i-was-so.html</link>
      <pubDate>Mon, 20 Jan 2014 21:58:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2014/01/21/i-was-so.html</guid>
      <description>&lt;p&gt;I was so disappointed &lt;a href=&#34;https://wikiapiary.com/wiki/Fish_Hooks_Wiki&#34;&gt;this wiki&lt;/a&gt; wasn’t about &lt;em&gt;actual&lt;/em&gt; fish hooks.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2014/01/08/got-wikiapiary-database.html</link>
      <pubDate>Wed, 08 Jan 2014 23:14:39 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2014/01/09/got-wikiapiary-database.html</guid>
      <description>&lt;p&gt;Got &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt; database moved to &lt;a href=&#34;https://pypi.org/project/yoyo-migrations/&#34;&gt;yoyo-migrations&lt;/a&gt;. Yoyo works well.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2014/01/02/113714.html</link>
      <pubDate>Thu, 02 Jan 2014 12:37:14 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2014/01/02/113714.html</guid>
      <description>&lt;p&gt;Fun day hacking on &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt; and hanging out at &lt;a href=&#34;http://urbanbeancoffee.com&#34;&gt;Urban Bean Coffee&lt;/a&gt;. Working on adding &lt;a href=&#34;https://docs.celeryproject.org/en/stable/&#34;&gt;Celery&lt;/a&gt; to the bots. Thanks &lt;a href=&#34;https://twitter.com/optimuspaul&#34;&gt;Paul&lt;/a&gt; for guidance!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2013/12/24/damn-didnt-have.html</link>
      <pubDate>Tue, 24 Dec 2013 09:52:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/12/24/damn-didnt-have.html</guid>
      <description>&lt;p&gt;Didn’t have my anti-spam settings right for &lt;a href=&#34;https://wikiapiary.com/wiki/Wiki_on_a_Stick&#34;&gt;Wiki on a Stick&lt;/a&gt;. It was blank, likely will just reset it.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>One Year for WikiApiary</title>
      <link>https://www.thingelstad.com/2013/12/22/one-year-for.html</link>
      <pubDate>Sun, 22 Dec 2013 01:00:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/12/22/one-year-for.html</guid>
      <description>&lt;p&gt;Yesterday &lt;a href=&#34;http://wikiapiary.com/&#34;&gt;WikiApiary&lt;/a&gt; had a very &lt;em&gt;meta&lt;/em&gt; tweet when it wished itself Happy Birthday! A while back I realized that if you looked the edit history of the &amp;ldquo;Main Page&amp;rdquo; of a MediaWiki website you could infer the date the wiki was started, it&amp;rsquo;s birthday. WikiApiary then wishes wikis a happy birthday on that date. Yesterday was WikiApiary&amp;rsquo;s big day.&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Happy Birthday WikiApiary &lt;a href=&#34;http://t.co/wRk4Cs5iO0&#34;&gt;http://t.co/wRk4Cs5iO0&lt;/a&gt; &lt;a href=&#34;https://x.com/hashtag/MediaWiki?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;#MediaWiki&lt;/a&gt; &lt;a href=&#34;https://x.com/hashtag/wiki?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;#wiki&lt;/a&gt;&lt;/p&gt;&amp;mdash; WikiApiary (@WikiApiary) &lt;a href=&#34;https://x.com/WikiApiary/status/414548099256684544?ref_src=twsrc%5Etfw&#34;&gt;December 22, 2013&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;https://platform.x.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;


&lt;img src=&#34;https://cdn.uploads.micro.blog/890/2020/4095ae1735.png&#34; width=&#34;600&#34; height=&#34;601&#34; alt=&#34;Eight cartoon bumblebees circling a yellow sunflower illustration on a white background&#34;&gt;
&lt;p&gt;The
first year of WikiApiary has been great! The comments people make about it and the great contributions that many people have made to the wiki reflect the utility and interest in the data. WikiApiary was a holiday break project for me in 2012 and it&amp;rsquo;s continued to get additions and modifications from a number of people throughout the world. It is the first project I&amp;rsquo;ve started that I feel has gotten a true community around it and people that are moving it forward independent of what I&amp;rsquo;m doing. That is really great! This idea of a &amp;ldquo;&lt;em&gt;Wiki to track other wikis&lt;/em&gt;&amp;rdquo; clearly caught on with some people.&lt;/p&gt;
&lt;p&gt;In WikiApiary&amp;rsquo;s first year it has collected &lt;strong&gt;1,855,979,520&lt;/strong&gt; statistics samples in its database, just &lt;strong&gt;2.6GB&lt;/strong&gt; of data. As of today, WikiApiary is collecting data from &lt;strong&gt;9,555 active wikis&lt;/strong&gt;. It shows &lt;strong&gt;2,478,637 active users&lt;/strong&gt; over &lt;strong&gt;384,870,041 pages&lt;/strong&gt; with &lt;strong&gt;2,894,060,197 edits&lt;/strong&gt; in the part of the wikiverse that it monitors.&lt;/p&gt;
&lt;p&gt;Looking at visitor activity during this first year, WikiApiary had &lt;strong&gt;32,416 visits&lt;/strong&gt; with &lt;strong&gt;105,895 page views&lt;/strong&gt;. &lt;strong&gt;9,346&lt;/strong&gt; of those visits were from MediaWiki.org. The top 10 countries visiting the site were:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Country&lt;/th&gt;
          &lt;th&gt;Visits&lt;/th&gt;
          &lt;th&gt;Pct&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;United States&lt;/td&gt;
          &lt;td&gt;10,243&lt;/td&gt;
          &lt;td&gt;31.6%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Germany&lt;/td&gt;
          &lt;td&gt;3,422&lt;/td&gt;
          &lt;td&gt;10.6%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;United Kingdom&lt;/td&gt;
          &lt;td&gt;2,095&lt;/td&gt;
          &lt;td&gt;6.5%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Russian Federation&lt;/td&gt;
          &lt;td&gt;1,853&lt;/td&gt;
          &lt;td&gt;5.7%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;France&lt;/td&gt;
          &lt;td&gt;1,084&lt;/td&gt;
          &lt;td&gt;3.3%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Canada&lt;/td&gt;
          &lt;td&gt;1,000&lt;/td&gt;
          &lt;td&gt;3.1%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Netherlands&lt;/td&gt;
          &lt;td&gt;814&lt;/td&gt;
          &lt;td&gt;2.5%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;India&lt;/td&gt;
          &lt;td&gt;755&lt;/td&gt;
          &lt;td&gt;2.3%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Spain&lt;/td&gt;
          &lt;td&gt;714&lt;/td&gt;
          &lt;td&gt;2.2%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;China&lt;/td&gt;
          &lt;td&gt;687&lt;/td&gt;
          &lt;td&gt;2.1%&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;WikiApiary visitors weigh heavier than average to Linux.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Operating System&lt;/th&gt;
          &lt;th&gt;Visits&lt;/th&gt;
          &lt;th&gt;Pct&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Windows 7&lt;/td&gt;
          &lt;td&gt;14,989&lt;/td&gt;
          &lt;td&gt;46.2%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Linux&lt;/td&gt;
          &lt;td&gt;4,029&lt;/td&gt;
          &lt;td&gt;12.4%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Windows XP&lt;/td&gt;
          &lt;td&gt;3,876&lt;/td&gt;
          &lt;td&gt;12%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Mac OS&lt;/td&gt;
          &lt;td&gt;3,473&lt;/td&gt;
          &lt;td&gt;10.7%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Windows 8&lt;/td&gt;
          &lt;td&gt;1,707&lt;/td&gt;
          &lt;td&gt;5.3%&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Chrome dominates the browser choice for WikiApiary visitors.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Browser&lt;/th&gt;
          &lt;th&gt;Visits&lt;/th&gt;
          &lt;th&gt;Pct&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Chrome 26.0&lt;/td&gt;
          &lt;td&gt;2,377&lt;/td&gt;
          &lt;td&gt;7.3%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Safari 6.0&lt;/td&gt;
          &lt;td&gt;2,319&lt;/td&gt;
          &lt;td&gt;7.2%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Chrome 30.0&lt;/td&gt;
          &lt;td&gt;2,087&lt;/td&gt;
          &lt;td&gt;6.4%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Chrome 28.0&lt;/td&gt;
          &lt;td&gt;1,976&lt;/td&gt;
          &lt;td&gt;6.1%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Chrome 27.0&lt;/td&gt;
          &lt;td&gt;1,756&lt;/td&gt;
          &lt;td&gt;5.4%&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;2,455 of the 32,416 (7.6%)&lt;/strong&gt; visits to WikiApiary were from logged in users. &lt;em&gt;All websites statistics are from the amazing &lt;a href=&#34;http://piwik.org&#34;&gt;Piwik&lt;/a&gt; project. No data is shared with Google or other search engines.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;WikiApiary is largely about graphs, so that seems like a logical way to explore the first year of WikiApiary. The number of active users on WikiApiary has roughly been around 30 for most of the year, peaking over 50. This doesn&amp;rsquo;t seem like a ton, but most wikis that are monitored actually have fewer than 5 active users. The total number of users is over 250 and grows steadily. Those are &lt;strong&gt;all&lt;/strong&gt; real accounts too, no spam accounts. Registration is required to edit so this is a good reflection of engagement.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/890/2020/97bde96e53.png&#34; width=&#34;600&#34; height=&#34;192&#34; alt=&#34;Line chart showing WikiApiary active users peaking near 50 in July-August 2013 then declining, with cumulative users rising steadily to about 262 by December 2013.&#34;&gt;
&lt;p&gt;Edit activity on WikiApiary is mostly robotic. The bots are constantly tending to the data set and they do this with edits. You can see the edit rate jumped in October after I added tracking for MaxMind geo data as well as Whois records for wikis. &lt;strong&gt;Over 5 million edits&lt;/strong&gt; in the first year.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/890/2020/4ad133b953.png&#34; width=&#34;600&#34; height=&#34;187&#34; alt=&#34;Area chart showing WikiApiary edit count rising from near 0 in February 2013 to over 5 million by December 2013.&#34;&gt;
&lt;p&gt;Total pages of content largely reflect the number of wikis being tracked, plus the number of extensions and skins that exist. Notably you can see the initial load of sites in February and March. There were additional farmer bots that added in some reasonably sized farms in June. In October the pages spike again with the addition of more datasets.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/890/2020/15acebd999.png&#34; width=&#34;600&#34; height=&#34;192&#34; alt=&#34;Line chart showing WikiApiary pages and articles growth from Jan 2013 to Dec 2013, both rising steeply to about 53K pages and 25.65K articles.&#34;&gt;
&lt;p&gt;WikiApiary is itself the 11th largest Semantic MediaWiki installation that it tracks. The largest is &lt;a href=&#34;http://wikiapiary.com/wiki/Gyvosios_gamtos_enciklopedija&#34;&gt;Gyvosios gamtos enciklopedija&lt;/a&gt; with over 16 million properties (think of a property as a data value). WikiApiary has &lt;strong&gt;over 3.3 million property values&lt;/strong&gt;.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/890/2020/4c4039761d.png&#34; width=&#34;600&#34; height=&#34;189&#34; alt=&#34;Area chart showing WikiApiary property count growing from near 0 in January 2013 to roughly 3.5M by December 2013.&#34;&gt;
&lt;p&gt;These 3.3 million properties are queried in MediaWiki templates so you can see the data. There are &lt;strong&gt;nearly 140,000 queries&lt;/strong&gt; in WikiApiary.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/890/2020/83f23f488f.png&#34; width=&#34;600&#34; height=&#34;190&#34; alt=&#34;Area chart showing WikiApiary query count rising from about 50K in April 2013 to 140K in December 2013.&#34;&gt;
&lt;h3 id=&#34;special-thanks&#34;&gt;Special Thanks&lt;/h3&gt;
&lt;p&gt;WikiApiary has had a lot of contributions with additions of wikis and help with templates and bots. &lt;a href=&#34;http://wikiapiary.com/wiki/User:Kghbln&#34;&gt;Karsten Hoffmeyer&lt;/a&gt; has been a &lt;a href=&#34;http://wikiapiary.com/wiki/Special:Contributions/Kghbln&#34;&gt;huge part of WikiApiary&lt;/a&gt; and is also an administrator on the site. Karsten helps with adding wikis and fending off the occasional bad edits. WikiApiary also has a very distinctive look from the &lt;a href=&#34;http://foreground.wikiwonders.net/wiki/&#34;&gt;Foreground skin&lt;/a&gt; which was built by my friend &lt;a href=&#34;https://garrickvanburen.com&#34;&gt;Garrick van Buren&lt;/a&gt;. Mark Hershberger has also been an active part of WikiApiary and is exploring ways that MediaWiki installs can automatically add themselves to WikiApiary. Huge thanks to &lt;a href=&#34;https://meta.wikimedia.org/wiki/User:Nemo_bis&#34;&gt;Frederico Leva&lt;/a&gt; (Nemo) for &lt;a href=&#34;https://www.mediawiki.org/w/index.php?title=Template%3AExtension&amp;amp;diff=659727&amp;amp;oldid=657147&#34;&gt;linking extension pages&lt;/a&gt; on MediaWiki.org to their respective page on WikiApiary. This drives a lot of exposure for WikiApiary and provides great value to visitors of MediaWiki.org. A big thank you also to &lt;a href=&#34;https://twitter.com/optimuspaul&#34;&gt;Paul DeCoursey&lt;/a&gt; who &lt;a href=&#34;https://github.com/thingles/WikiApiary/commit/9c82198fe155a915960c607813688ef300c2fa68&#34;&gt;rewrote the Javascript code&lt;/a&gt; to embed the charts into the pages, and support multiple charts with usable controls.&lt;/p&gt;
&lt;p&gt;Also, I think one of the things that makes WikiApiary unique is that it is built with &lt;a href=&#34;https://www.mediawiki.org/wiki/MediaWiki&#34;&gt;MediaWiki&lt;/a&gt; and &lt;a href=&#34;http://semantic-mediawiki.org&#34;&gt;Semantic MediaWiki&lt;/a&gt; and the related suite of extensions. This is such a wonderful set of software and a special thanks to James HK, &lt;a href=&#34;http://www.bn2vs.com/blog/&#34;&gt;Jeroen De Dauw&lt;/a&gt; and &lt;a href=&#34;http://yaronkoren.com&#34;&gt;Yaron Koren&lt;/a&gt;. All of them have helped out and provided input on WikiApiary at times in the first year.&lt;/p&gt;
&lt;h3 id=&#34;future-plans&#34;&gt;Future Plans&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve got a ton of plans for WikiApiary, and I keep picking them off slowly. I&amp;rsquo;ve not had much time for the project the last couple of months but whatever time I have had has been going into &lt;a href=&#34;https://github.com/thingles/WikiApiary&#34;&gt;rewriting the bots&lt;/a&gt;. The first versions were just hacked up and difficult to understand. I&amp;rsquo;m working on a rewrite that includes unit tests, a good object model and code that is easy enough to understand that I hope to get some more contributors involved. The other huge thing being added is parallel requests. Right now WikiApiary is limited in collecting from more sites due to how it collects, in serial. The new bots will do that in parallel and will dramatically change the cost of running a collection sequence. There should be no problem going from 10,000 to 100,000 or more wikis being monitored.&lt;/p&gt;
&lt;p&gt;I would also like to see the &lt;a href=&#34;https://github.com/thingles/HoneyBee&#34;&gt;Honey Bee MediaWiki extension&lt;/a&gt; get going which will be the first step of an extension that leverages WikiApiary inside of the wiki it&amp;rsquo;s running in.&lt;/p&gt;
&lt;p&gt;Additionally I&amp;rsquo;d like to do a whole deeper level of analysis of MediaWiki websites and have been contacted by two groups who have written algorithms that do this and are interested in adding their code to WikiApiary. I hope to make that easier with the bot rewrite mentioned above.&lt;/p&gt;
&lt;p&gt;I also want to provide a base Farmer class that can easily be extended so that bots that farm new wikis into WikiApiary are easier. My big objective is to finally pull in Wikia.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m proud of WikiApiary and plan on continuing to host it (no small feat actually, given its scale) and work on it. I see WikiApiary as one of my &amp;ldquo;decade project&amp;rdquo; so I don&amp;rsquo;t have to move too fast. I just keep things rolling the right way.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2013/11/30/094858.html</link>
      <pubDate>Sat, 30 Nov 2013 10:48:58 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/11/30/094858.html</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Stumped on this dumb Python &lt;a href=&#34;https://travis-ci.org/thingles/WikiApiary/builds/14737862&#34;&gt;import nosetests error&lt;/a&gt;. Help &lt;a href=&#34;https://entropywins.wtf&#34;&gt;Jeroen De Dauw&lt;/a&gt; &lt;a href=&#34;https://twitter.com/optimuspaul&#34;&gt;Paul&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Finally figured out magic for &lt;a href=&#34;https://travis-ci.org/thingles/WikiApiary/builds/14739073&#34;&gt;relative module imports&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Got &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt; bots flowing through &lt;a href=&#34;https://travis-ci.org&#34;&gt;Travis CI&lt;/a&gt; and &lt;a href=&#34;https://coveralls.io&#34;&gt;Coveralls&lt;/a&gt; (&lt;a href=&#34;https://github.com/thingles/WikiApiary/tree/refactor-class&#34;&gt;see badges&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Integrated &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt; bots into &lt;a href=&#34;https://landscape.io/&#34;&gt;Landscape&lt;/a&gt;. Starting with brutal 19% rating.&lt;/li&gt;
&lt;li&gt;Got my &lt;a href=&#34;https://landscape.io/&#34;&gt;Landscape&lt;/a&gt; score from &lt;a href=&#34;https://landscape.io/github/thingles/WikiApiary/refactor-class&#34;&gt;18% to 43%&lt;/a&gt;. Still poor, but improving!&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2013/11/28/made-a-profile.html</link>
      <pubDate>Thu, 28 Nov 2013 08:38:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/11/28/made-a-profile.html</guid>
      <description>&lt;p&gt;Made a &lt;a href=&#34;https://www.ohloh.net/accounts/thingles&#34;&gt;profile for myself on Ohloh&lt;/a&gt; and also setup &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt; as a &lt;a href=&#34;https://www.ohloh.net/p/WikiApiary&#34;&gt;project on Ohloh&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2013/10/30/wikiworks-most-collaborative.html</link>
      <pubDate>Wed, 30 Oct 2013 04:47:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/10/30/wikiworks-most-collaborative.html</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://wikiapiary.com/wiki/MozillaWiki&#34;&gt;1,000+ editors&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/wikiworks&#34;&gt;@wikiworks&lt;/a&gt;: Most collaborative #SMW-based #wiki via &lt;a href=&#34;https://twitter.com/yolandagil&#34;&gt;@yolandagil&lt;/a&gt; research: &lt;a href=&#34;https://twitter.com/Mozilla&#34;&gt;@Mozilla&lt;/a&gt; Wiki #SMWCon&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2013/10/19/running-wikiapiary-a.html</link>
      <pubDate>Sat, 19 Oct 2013 20:54:52 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/10/20/running-wikiapiary-a.html</guid>
      <description>&lt;p&gt;Running &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt;, a wiki that tracks as many &lt;a href=&#34;https://www.mediawiki.org/wiki/MediaWiki&#34;&gt;MediaWiki&lt;/a&gt; sites as possible, sometimes you find some really strange stuff out there.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Stopping MediaWiki Spam with Dynamic Questy Captchas</title>
      <link>https://www.thingelstad.com/2013/07/09/stopping-mediawiki-spam.html</link>
      <pubDate>Tue, 09 Jul 2013 00:00:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/07/09/stopping-mediawiki-spam.html</guid>
      <description>&lt;p&gt;&lt;strong&gt;This method of using Questy Captcha has been defeated by some spammers. Please check out my &lt;a href=&#34;https://www.thingelstad.com/2014/updated-dynamic-questy-captchas/&#34;&gt;updated dynamic Questy Captcha method&lt;/a&gt;.&lt;/strong&gt; &lt;a href=&#34;http://www.mediawiki.org/&#34;&gt;MediaWiki&lt;/a&gt; websites are often plagued by spammers. It&amp;rsquo;s annoying in the extreme. If you setup a blank MediaWiki website and do nothing it is likely that within a couple of weeks your site will be found, and in a matter of days you will have thousands of spam user accounts and tens of thousands of pages of spam. There are a number of ways to stop wikispam. I tried using &lt;a href=&#34;http://recaptcha.com&#34;&gt;Recaptcha&lt;/a&gt; to little benefit. I still got a large number of spam registrations on my publicly available wikis. I&amp;rsquo;ve found the combination below to be incredible efficient.&lt;/p&gt;
&lt;p&gt;I started to use &lt;a href=&#34;http://www.mediawiki.org/wiki/Extension:QuestyCaptcha&#34;&gt;QuestyCaptcha&lt;/a&gt; which is a plugin for the &lt;a href=&#34;http://www.mediawiki.org/wiki/Extension:ConfirmEdit&#34;&gt;ConfirmEdit&lt;/a&gt; extension (&lt;a href=&#34;http://wikiapiary.com/wiki/Extension:ConfirmEdit&#34;&gt;WikiApiary&lt;/a&gt;) which uses a simple question/answer paradigm and that worked well. However, the hard part with Questy is figuring out what questions to use. Particularly if your wiki is global, you need to avoid using questions that are specific to one culture or location, or even language. What color is the sky? Well, in what language? For &lt;a href=&#34;http://wikiapiary.com/&#34;&gt;WikiApiary&lt;/a&gt; I want to make sure that people from anywhere are able to register. I started with simple questions, like &amp;ldquo;What is the name of this website?&amp;rdquo; but that was quickly defeated and spam registrations started showing up. What to do?&lt;/p&gt;
&lt;p&gt;I decided to see if QuestyCaptcha could accommodate dynamic questions and it can! So, the first thing I did was decide to use a question that required someone to know something generic, but could also be easily found with a single click on a URL. My choice was to ask about the GMT time, because if you &lt;a href=&#34;https://www.google.com/search?q=gmt+time&#34;&gt;search for &amp;ldquo;gmt time&amp;rdquo; on Google&lt;/a&gt;, it tells you the answer. The PHP function &lt;code&gt;gmdate&lt;/code&gt; will also give the answer. So I created two questions that asked for the day of the week and the hour (24 hour time) at GMT, and provide hyperlinks to the answer. This worked great!&lt;/p&gt;
&lt;p&gt;Then I decided to go a little further and ask a very dynamic question. This time I generated an 8 character random string, and ask the user to identify one of the characters in the string. No language issue! No culture challenges! Simple. Here is the code for both of these solutions as it would appear in your &lt;code&gt;LocalSettings.php&lt;/code&gt; file.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Let&amp;#39;s stop MediaWiki registration spam
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;require_once&lt;/span&gt;( &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$IP&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;/extensions/ConfirmEdit/ConfirmEdit.php&amp;#34;&lt;/span&gt; );
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;require_once&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$IP&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;/extensions/ConfirmEdit/QuestyCaptcha.php&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$wgCaptchaClass &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;QuestyCaptcha&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Set questions for Questy
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# First a couple that can be answered with a linked to Google search
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$wgCaptchaQuestions[] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;array&lt;/span&gt; (
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;question&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;What day of the week is it at &amp;lt;a href=&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;http&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;://&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;google&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;com&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;search&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;?&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;q&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;gmt&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;time&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;gt;Greenwich Mean Time&amp;lt;/a&amp;gt; (GMT) right now?&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;answer&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;gmdate&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;l&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$wgCaptchaQuestions[] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;array&lt;/span&gt; (
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;question&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;In 24-hour format, what hour is it in &amp;lt;a href=&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;http&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;://&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;google&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;com&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;search&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;?&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;q&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;gmt&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;time&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;gt;Greenwich Mean Time&amp;lt;/a&amp;gt; (GMT) right now?&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;answer&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;gmdate&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;G&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Now a more complicated one
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Generate a random string 8 characters long
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$myChallengeString &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;substr&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;md5&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;uniqid&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;mt_rand&lt;/span&gt;(), &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;)), &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Pick a random location in those 8 strings
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$myChallengeIndex &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rand&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Let&amp;#39;s use words to describe the position, just to make it a bit more complicated
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$myChallengePositions &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;array&lt;/span&gt; (&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;first&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;second&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;third&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;fourth&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;fifth&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;sixth&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;seventh&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;eighth&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$myChallengePositionName &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $myChallengePositions[$myChallengeIndex &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Build the question/anwer
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$wgCaptchaQuestions[] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;array&lt;/span&gt; (
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;question&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Please provide the &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$myChallengePositionName&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; character from the sequence &amp;lt;code&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$myChallengeString&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;/code&amp;gt;:&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;answer&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; $myChallengeString[$myChallengeIndex &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Skip CAPTCHA for people who have confirmed emails
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$wgGroupPermissions[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;emailconfirmed&amp;#39;&lt;/span&gt;][&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;skipcaptcha&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ceAllowConfirmedEmail &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After putting these in place I&amp;rsquo;ve had nearly zero spam registrations (1 or 2 were clearly done by a human testing it). Now, can this be broken? Sure, easily. But not nearly as easy as static questions that could be harvested by a person and then put into a tool to automatically create accounts. In order to attack me, spammers would have to write a special handler that dealt with the randomness of the questions. This is very unlikely.&lt;/p&gt;
&lt;p&gt;Feel free to use these examples, or, use other dynamic question/answer combinations. It&amp;rsquo;s not obvious that this type of configuration works with QuestyCaptcha, but it does and it allows for very powerful spam blocking.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2013/05/18/figured-out-the.html</link>
      <pubDate>Sat, 18 May 2013 22:10:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/05/19/figured-out-the.html</guid>
      <description>&lt;p&gt;Figured out the &lt;a href=&#34;https://wikiapiary.com/wiki/WikiApiary_talk:Operations/2013/May#Banned_IP_check_causing_slowness_and_removed_.28aka_Performance_victory.21.29&#34;&gt;root cause of slowness on my MediaWiki farm&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Display MediaWiki job queue size inside your wiki</title>
      <link>https://www.thingelstad.com/2013/04/20/display-mediawiki-job.html</link>
      <pubDate>Sat, 20 Apr 2013 00:00:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/04/20/display-mediawiki-job.html</guid>
      <description>&lt;p&gt;I wanted to find an easy way to show the current size of the &lt;a href=&#34;https://www.mediawiki.org/wiki/Manual:Job_queue&#34;&gt;MediaWiki job queue&lt;/a&gt; on &lt;a href=&#34;http://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt;. When you make changes to templates that are used on thousands of pages the queue can get backed up and it&amp;rsquo;s nice to have an easy way to keep an eye on this. The job queue is even one of the data points WikiApiary tracks and graphs. But I wanted something that was as close to realtime as possible. It wasn&amp;rsquo;t hard to do. This solution uses the &lt;a href=&#34;http://www.mediawiki.org/wiki/Extension:External_Data&#34;&gt;External Data&lt;/a&gt; (&lt;a href=&#34;http://wikiapiary.com/wiki/Extension:External_Data&#34;&gt;see WikiApiary usage page&lt;/a&gt;) extension.&lt;/p&gt;
&lt;p&gt;First we need to get the data. Let&amp;rsquo;s start by calling the siteinfo API method. The magic words are used to make this generic, and this &lt;strong&gt;should&lt;/strong&gt; result in the right URL. If you are using a protocol-relative server setting you will have to modify this.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{{#get_web_data: url={{SERVER}}{{SCRIPTPATH}}/api.php?action=query&amp;amp;meta;=siteinfo&amp;amp;siprop;=statistics&amp;amp;format;=json
  | format=JSON
  | data=jobs=jobs}}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now External Data has done the work and the value is stored for us. Now we get it by simply calling:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{{#external_value:jobs}}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I like to put that in a style so it&amp;rsquo;s big and obvious.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re thinking ahead you&amp;rsquo;ll now be saying &amp;ldquo;Yeah, that&amp;rsquo;s neat, but it will be cached in MediaWiki for a hours!&amp;rdquo;. Yes, it will be unless you add a &lt;code&gt;__NOCACHE__&lt;/code&gt; directive to the page and use the &lt;a href=&#34;https://www.mediawiki.org/wiki/Extension:MagicNoCache&#34;&gt;MagicNoCache&lt;/a&gt; extension. This extension allows you to disable the MediaWiki cache on a page-by-page basis, very handy.&lt;/p&gt;
&lt;p&gt;If you wanted to use this in multiple places you could even put an &lt;code&gt;&amp;lt;onlyinclude&amp;gt;&lt;/code&gt; around it and transclude the job queue size in other pages, however I would be cautious about that if using the &lt;code&gt;__NOCACHE__&lt;/code&gt; directive as well.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2013/04/14/digging-some-ideas.html</link>
      <pubDate>Sun, 14 Apr 2013 22:58:52 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/04/15/digging-some-ideas.html</guid>
      <description>&lt;p&gt;Digging some ideas of putting &lt;a href=&#34;https://panic.com&#34;&gt;Panic&lt;/a&gt; Status Board panels together with data from &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt;. Hmmm…&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2013/03/11/took-my-linode.html</link>
      <pubDate>Tue, 12 Mar 2013 00:19:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/03/12/took-my-linode.html</guid>
      <description>&lt;p&gt;Took my &lt;a href=&#34;https://www.linode.com&#34;&gt;Linode&lt;/a&gt; VPS to a loadavg of 13+ with a nasty bug in a &lt;a href=&#34;https://wikiapiary.com/wiki/Main_Page&#34;&gt;WikiApiary&lt;/a&gt; bot. Fixed now. Happy LiSH got me on console!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2013/01/31/i-just-created.html</link>
      <pubDate>Thu, 31 Jan 2013 21:10:48 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/02/01/i-just-created.html</guid>
      <description>&lt;p&gt;I just created my first ever &lt;a href=&#34;https://www.mediawiki.org/wiki/MediaWiki&#34;&gt;MediaWiki&lt;/a&gt; barnstar — &lt;a href=&#34;https://wikiapiary.com/wiki/Template:Barnstar/Awesome&#34;&gt;You make WikiApiary awesome&lt;/a&gt;! I think this level += 1 me in wiki speak.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thingelstad.com/2013/01/06/attempting-to-write.html</link>
      <pubDate>Sun, 06 Jan 2013 11:10:00 -0500</pubDate>
      
      <guid>http://jthingelstad.micro.blog/2013/01/06/attempting-to-write.html</guid>
      <description>&lt;p&gt;Attempting to write &lt;a href=&#34;https://github.com/thingles/WikiApiary&#34;&gt;Python for WikiApiary&lt;/a&gt; that is not embarrassing. 🙂&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>