<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Rob Ireton]]></title><description><![CDATA[Made by Elaborate Process]]></description><link>https://robireton.com/</link><image><url>https://robireton.com/favicon.png</url><title>Rob Ireton</title><link>https://robireton.com/</link></image><generator>Ghost 4.4</generator><lastBuildDate>Tue, 28 Apr 2026 13:02:56 GMT</lastBuildDate><atom:link href="https://robireton.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Adding Disqus Comments to Ghost]]></title><description><![CDATA[how I added Disqus comments to Ghost’s Casper theme]]></description><link>https://robireton.com/adding-disqus-comments-to-ghost/</link><guid isPermaLink="false">606de3bb5e53530ef3acf51b</guid><dc:creator><![CDATA[Rob Ireton]]></dc:creator><pubDate>Mon, 22 Apr 2019 20:43:39 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1516321497487-e288fb19713f?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1516321497487-e288fb19713f?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Adding Disqus Comments to Ghost"><p>Here&#x2019;s how I added Disqus to Ghost&#x2019;s Casper theme. In the post template (<code>post.hbs</code>), look for</p><!--kg-card-begin: markdown--><pre><code class="language-handlebars">{{!--
&lt;section class=&quot;post-full-comments&quot;&gt;
    If you want to embed comments, this is a good place to do it!
&lt;/section&gt;
--}}
</code></pre>
<!--kg-card-end: markdown--><p>and change it to</p><!--kg-card-begin: markdown--><pre><code class="language-handlebars">&lt;section class=&quot;post-full-comments&quot;&gt;
&lt;div id=&quot;disqus_thread&quot;&gt;&lt;/div&gt;
&lt;script&gt;
  var disqus_config = function () {
    this.page.url = &apos;{{url absolute=&quot;true&quot;}}&apos;;  // Replace PAGE_URL with your page&apos;s canonical URL variable
    this.page.identifier = &apos;ghost-{{comment_id}}&apos;; // Replace PAGE_IDENTIFIER with your page&apos;s unique identifier variable
  };

  (function() { // DON&apos;T EDIT BELOW THIS LINE
    var d = document, s = d.createElement(&apos;script&apos;);
    s.src = &apos;https://your-short-code.disqus.com/embed.js&apos;;
    s.setAttribute(&apos;data-timestamp&apos;, +new Date());
    (d.head || d.body).appendChild(s);
  })();
&lt;/script&gt;
&lt;/section&gt;
</code></pre>
<!--kg-card-end: markdown--><p>making sure to replace <code>your-short-code</code> with your actual short code.</p><p>Then find the line</p><!--kg-card-begin: markdown--><pre><code class="language-handlebars">{{/contentFor}}
</code></pre>
<!--kg-card-end: markdown--><p>and add the disqus count script line above it, like:</p><!--kg-card-begin: markdown--><pre><code class="language-handlebars">&lt;script id=&quot;dsq-count-scr&quot; src=&quot;//your-short-code.disqus.com/count.js&quot; async&gt;&lt;/script&gt;
{{/contentFor}}
</code></pre>
<!--kg-card-end: markdown--><p>again, replacing <code>your-short-code</code> with your actual short code.</p>]]></content:encoded></item><item><title><![CDATA[Text Cleaning & Character Encoding]]></title><description><![CDATA[<h2 id="text-cleaning">Text Cleaning</h2><p>We used to get book reviews and summaries from a &#x201C;service&#x201D; called syndetics. The text was a horrible mess of mixed and broken encodings. This was my attempt to make some sense of it.</p><!--kg-card-begin: markdown--><pre><code class="language-perl">sub clean_summary {
  my $text = HTML::Entities::decode( shift );

  #attempt to make</code></pre>]]></description><link>https://robireton.com/text-cleaning-character-encoding/</link><guid isPermaLink="false">606de3bb5e53530ef3acf525</guid><dc:creator><![CDATA[Rob Ireton]]></dc:creator><pubDate>Sun, 15 May 2016 15:30:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1548048026-5a1a941d93d3?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<h2 id="text-cleaning">Text Cleaning</h2><img src="https://images.unsplash.com/photo-1548048026-5a1a941d93d3?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Text Cleaning &amp; Character Encoding"><p>We used to get book reviews and summaries from a &#x201C;service&#x201D; called syndetics. The text was a horrible mess of mixed and broken encodings. This was my attempt to make some sense of it.</p><!--kg-card-begin: markdown--><pre><code class="language-perl">sub clean_summary {
  my $text = HTML::Entities::decode( shift );

  #attempt to make some sense of the mess that is text content from syndetics
  $text =~ s/&amp;amp;/&amp;/ig;        #ampersands

  $text =~ s{#xC3;#xA2;#xC2;#x80;#xC2;#x94;}{&amp;mdash;}g;
  $text =~ s{#xC3;#xA2;#xC2;#x80;#xC2;#x99;}{&amp;rsquo;}g;
  $text =~ s{#xC3;#xA2;#xC2;#x80;#xC2;#x9C;}{&amp;ldquo;}g;
  $text =~ s{#xC3;#xA2;#xC2;#x80;#xC2;#x9D;}{&amp;rdquo;}g;
  $text =~ s{\xF4([^\xF6]+)\xF6}{&amp;ldquo;$1&amp;rdquo;}g; #bizarrely-encoded quotes

  $text =~ s{\xC3\xB6}{&amp;ouml;}g; #unconverted UTF-8 ?

  $text =~ s{#xE2;#xAC;#x1D;}{&amp;mdash;}g;
  $text =~ s{#xE2;#xAC;S}{&amp;ldquo;}g;
  $text =~ s{#xE2;#xAC;}{&amp;rdquo;}g;

  $text =~ s/#xC2;#x1[34];/&amp;mdash;/ig;
  $text =~ s/#xC2;#x18;/&amp;lsquo;/ig;
  $text =~ s/#xC2;#x19;/&amp;rsquo;/ig;
  $text =~ s/#xC2;#x1C;/&amp;ldquo;/ig;
  $text =~ s/#xC2;#x1D;/&amp;rdquo;/ig;
  $text =~ s/#xC2;&amp;/&amp;hellip;/ig;

  $text =~ s/(?&lt;!&amp;)#x13;/-/ig;       #hyphen
  $text =~ s/(?&lt;!&amp;)#x14;/&amp;mdash;/ig; #mdash
  $text =~ s/(?&lt;!&amp;)#x1[89];/&apos;/ig;    #single quote
  $text =~ s/(?&lt;!&amp;)#x1C;/&amp;ldquo;/ig; #left double quote
  $text =~ s/(?&lt;!&amp;)#x1D;/&amp;rdquo;/ig; #right double quote
  $text =~ s/(?&lt;!&amp;)#xD1;/&amp;mdash;/ig;
  $text =~ s/(?&lt;!&amp;)#xD5;/&amp;rsquo;/ig;

  $text =~ s/&amp;?#x([0-9a-f]{2});/chr(hex($1))/ige; #syndetic-encoded hex character entities
  $text =~ s/&amp;?#([0-9]{2,4});/chr($1)/ige;        #syndetic-encoded decimal character entities

  $text =~ s/(?&lt;!&amp;)(lsquo|rsquo|ldquo|rdquo|mdash|ndash|bull|middot|hellip);/&amp;$1;/ig; #entities missing ampersands

  HTML::Entities::decode( $text ); #again, to catch the syndetic to standard conversions

  $text =~ s/&lt;[^&gt;]+&gt;/ /g;  #strip HTML-like tags (so many of which don&apos;t have proper spacing around them...)
  $text =~ s/\s+([,;:])/$1/gi; #remove space before commas
  $text =~ s/([,;:])(?=\w)/$1 /gi; #add a space after commas
  $text =~ s/(?&lt;=[a-z])([.?!])(?=[A-Z])/$1 /i; #add a space between sentences
  $text =~ s/[\s\xA0]+/ /g;     #replace all whitespace (including newlines) with a single space
  $text =~ s/^\s//;       #remove leading whitespace
  $text =~ s/\s$//;       #remove trailing whitespace
  $text =~ s{ [\x00-\x1F] }{}gxms; #strip unprintable characters

  HTML::Entities::encode_numeric($text);
  $text =~ s/&amp;#145;/&amp;#8216;/g;
  $text =~ s/&amp;#146;/&amp;#8217;/g;
  $text =~ s/&amp;#147;/&amp;#8220;/g;
  $text =~ s/&amp;#148;/&amp;#8221;/g;
  $text =~ s/&amp;#149;/&amp;#8226;/g;
  $text =~ s/&amp;#150;/&amp;#8211;/g;
  $text =~ s/&amp;#151;/&amp;#8212;/g;
  $text =~ s/[|]/&amp;#x7C;/g;      # don&apos;t break pipe files!

  return $text;
}
</code></pre>
<!--kg-card-end: markdown--><h2 id="encoding-translation">Encoding Translation</h2><p>A Perl module I used to use to get text out of the library catalogue for use on the web.</p><!--kg-card-begin: markdown--><pre><code class="language-perl">package PLCH::MARCtoLatin;

use 5.008007;
use warnings;
use strict;

require Exporter;
our @ISA    = qw(Exporter);
our @EXPORT = qw( CharConv );

#  Within your program, you would pass the function a
#  string that you would like to be converted.
#  Something like this...
#   my $ConvertedAuthor = CharConv($author);

sub CharConv {

    my $line = shift;

    # Check for high-order characters ( &gt; hex 7F).  If none found,
    # no conversion needed.  (Added by MK, 2005)
    # Added check for \x1B - RRI 2007
    return ($line) unless ( $line &amp;&amp; $line =~ /[\x1B\x80-\xff]/ );

    # Convert input string to hexadecimal
    $line =~ s/(.)/sprintf (&quot;%%%X&quot;, ord($1))/eg;

    # This subroutine takes data encoded with the MARC-8
    # character set and (as best as can be done) maps it
    # to the ISO 8859-1 (Latin-1) character set.

    # First, combined MARC-8 characters that don&apos;t
    # correspond to any Latin-1 characters are removed.
    # Then combined MARC characters that correspond to
    # extended Latin-1 characters are replaced with the
    # appropriate values. This process is then repeated
    # for single values.

    my @orphan_chars_combined = (
        &apos;%1B%67%61%1B%73&apos;, &apos;%1B%67%62%1B%73&apos;, &apos;%1B%67%63%1B%73&apos;, &apos;%1B%62%30%1B%73&apos;, &apos;%1B%62%31%1B%73&apos;, &apos;%1B%62%32%1B%73&apos;,
        &apos;%1B%62%33%1B%73&apos;, &apos;%1B%62%34%1B%73&apos;, &apos;%1B%62%35%1B%73&apos;, &apos;%1B%62%36%1B%73&apos;, &apos;%1B%62%37%1B%73&apos;, &apos;%1B%62%38%1B%73&apos;,
        &apos;%1B%62%39%1B%73&apos;, &apos;%1B%62%28%1B%73&apos;, &apos;%1B%62%2B%1B%73&apos;, &apos;%1B%62%29%1B%73&apos;, &apos;%1B%70%30%1B%73&apos;, &apos;%1B%70%34%1B%73&apos;,
        &apos;%1B%70%35%1B%73&apos;, &apos;%1B%70%36%1B%73&apos;, &apos;%1B%70%37%1B%73&apos;, &apos;%1B%70%38%1B%73&apos;, &apos;%1B%70%39%1B%73&apos;, &apos;%1B%70%28%1B%73&apos;,
        &apos;%1B%70%2D%1B%73&apos;, &apos;%1B%70%2B%1B%73&apos;, &apos;%1B%70%29%1B%73&apos;,
        &apos;%E0%E6&apos;,          &apos;%E1%E3&apos;,          &apos;%E1%E5&apos;,          &apos;%E1%E6&apos;,          &apos;%E1%E8&apos;,          &apos;%E2%A5&apos;,
        &apos;%E2%B5&apos;,          &apos;%E2%E4&apos;,          &apos;%E2%E5&apos;,          &apos;%E2%E6&apos;,          &apos;%E2%E8&apos;,          &apos;%E2%EA&apos;,
        &apos;%E2%F0&apos;,          &apos;%E3%E0&apos;,          &apos;%E3%E1&apos;,          &apos;%E3%E2&apos;,          &apos;%E3%F2&apos;,          &apos;%E4%E3&apos;,
        &apos;%E4%E6&apos;,          &apos;%E5%E4&apos;,          &apos;%E5%E7&apos;,          &apos;%E5%E8&apos;,          &apos;%E5%A5&apos;,          &apos;%E5%B5&apos;,
        &apos;%E5%F1&apos;,          &apos;%E5%F2&apos;,          &apos;%E6%F0&apos;,          &apos;%E6%F2&apos;,          &apos;%E7%E2&apos;,          &apos;%E7%F2&apos;,
        &apos;%E8%E4&apos;,          &apos;%E8%E5&apos;,          &apos;%E9%E8&apos;,
    );

    my @orphan_chars_single = (
        &apos;%A1&apos;, &apos;%A7&apos;, &apos;%A9&apos;, &apos;%AE&apos;, &apos;%AF&apos;, &apos;%B0&apos;, &apos;%B1&apos;, &apos;%B3&apos;, &apos;%B7&apos;, &apos;%B8&apos;, &apos;%BB&apos;,
        &apos;%BE&apos;, &apos;%BF&apos;, &apos;%C1&apos;, &apos;%C2&apos;, &apos;%C4&apos;, &apos;%E0&apos;, &apos;%E5&apos;, &apos;%E6&apos;, &apos;%E7&apos;, &apos;%E9&apos;, &apos;%EB&apos;, &apos;%EC&apos;, &apos;%ED&apos;, &apos;%EE&apos;,
        &apos;%EF&apos;, &apos;%F1&apos;, &apos;%F2&apos;, &apos;%F3&apos;, &apos;%F4&apos;, &apos;%F5&apos;, &apos;%F6&apos;, &apos;%F7&apos;, &apos;%F8&apos;, &apos;%F9&apos;, &apos;%FA&apos;, &apos;%FB&apos;, &apos;%FC&apos;, &apos;%FD&apos;, &apos;%FE&apos;,
    );

    my %marc8_to_latin1_combined = (
        &apos;%1B%70%31%1B%73&apos; =&gt; &apos;B9&apos;, # Superscript 1
        &apos;%1B%70%32%1B%73&apos; =&gt; &apos;B2&apos;, # Superscript 2
        &apos;%1B%70%33%1B%73&apos; =&gt; &apos;B3&apos;, # Superscript 3
        &apos;%E1%41&apos;          =&gt; &apos;C0&apos;, # A grave
        &apos;%E2%41&apos;          =&gt; &apos;C1&apos;, # A acute
        &apos;%E3%41&apos;          =&gt; &apos;C2&apos;, # A circumflex
        &apos;%E4%41&apos;          =&gt; &apos;C3&apos;, # A tilde
        &apos;%E8%41&apos;          =&gt; &apos;C4&apos;, # A umlaut
        &apos;%EA%41&apos;          =&gt; &apos;C5&apos;, # A ring
        &apos;%E2%43&apos;          =&gt; &apos;43&apos;, # C
        &apos;%E3%43&apos;          =&gt; &apos;43&apos;, # C
        &apos;%F0%43&apos;          =&gt; &apos;C7&apos;, # C cedilla
        &apos;%E1%45&apos;          =&gt; &apos;C8&apos;, # E grave
        &apos;%E2%45&apos;          =&gt; &apos;C9&apos;, # E acute
        &apos;%E3%45&apos;          =&gt; &apos;CA&apos;, # E circumflex
        &apos;%E4%45&apos;          =&gt; &apos;45&apos;, # E
        &apos;%E8%45&apos;          =&gt; &apos;CB&apos;, # E umlaut
        &apos;%F0%45&apos;          =&gt; &apos;45&apos;, # E
        &apos;%E2%47&apos;          =&gt; &apos;47&apos;, # G
        &apos;%E3%47&apos;          =&gt; &apos;47&apos;, # G
        &apos;%F0%47&apos;          =&gt; &apos;47&apos;, # G
        &apos;%E3%48&apos;          =&gt; &apos;48&apos;, # H
        &apos;%E8%48&apos;          =&gt; &apos;48&apos;, # H
        &apos;%F0%48&apos;          =&gt; &apos;48&apos;, # H
        &apos;%E1%49&apos;          =&gt; &apos;CC&apos;, # I grave
        &apos;%E2%49&apos;          =&gt; &apos;CD&apos;, # I acute
        &apos;%E3%49&apos;          =&gt; &apos;CE&apos;, # I circumflex
        &apos;%E4%49&apos;          =&gt; &apos;49&apos;, # I
        &apos;%E8%49&apos;          =&gt; &apos;CF&apos;, # I umlaut
        &apos;%E3%4A&apos;          =&gt; &apos;4A&apos;, # J
        &apos;%E2%4B&apos;          =&gt; &apos;4B&apos;, # K
        &apos;%E3%4B&apos;          =&gt; &apos;4B&apos;, # K
        &apos;%F0%4B&apos;          =&gt; &apos;4B&apos;, # K
        &apos;%F2%4B&apos;          =&gt; &apos;4B&apos;, # K
        &apos;%E2%4C&apos;          =&gt; &apos;4C&apos;, # L
        &apos;%E3%4C&apos;          =&gt; &apos;4C&apos;, # L
        &apos;%F0%4C&apos;          =&gt; &apos;4C&apos;, # L
        &apos;%E2%4D&apos;          =&gt; &apos;4D&apos;, # M
        &apos;%E1%4E&apos;          =&gt; &apos;4E&apos;, # N
        &apos;%E2%4E&apos;          =&gt; &apos;4E&apos;, # N
        &apos;%E4%4E&apos;          =&gt; &apos;D1&apos;, # N tilde
        &apos;%F0%4E&apos;          =&gt; &apos;4E&apos;, # N
        &apos;%E1%4F&apos;          =&gt; &apos;D2&apos;, # O grave
        &apos;%E2%4F&apos;          =&gt; &apos;D3&apos;, # O acute
        &apos;%E3%4F&apos;          =&gt; &apos;D4&apos;, # O circumflex
        &apos;%E4%4F&apos;          =&gt; &apos;D5&apos;, # O tilde
        &apos;%E8%4F&apos;          =&gt; &apos;D6&apos;, # O umlaut
        &apos;%E2%50&apos;          =&gt; &apos;50&apos;, # P
        &apos;%E2%52&apos;          =&gt; &apos;52&apos;, # R
        &apos;%E2%53&apos;          =&gt; &apos;53&apos;, # S
        &apos;%E3%53&apos;          =&gt; &apos;53&apos;, # S
        &apos;%F0%53&apos;          =&gt; &apos;53&apos;, # S
        &apos;%F0%54&apos;          =&gt; &apos;54&apos;, # T
        &apos;%E1%55&apos;          =&gt; &apos;D9&apos;, # U grave
        &apos;%E2%55&apos;          =&gt; &apos;DA&apos;, # U acute
        &apos;%E3%55&apos;          =&gt; &apos;DB&apos;, # U circumflex
        &apos;%E4%55&apos;          =&gt; &apos;55&apos;, # U
        &apos;%E8%55&apos;          =&gt; &apos;DC&apos;, # U umlaut
        &apos;%EA%55&apos;          =&gt; &apos;55&apos;, # U
        &apos;%E4%56&apos;          =&gt; &apos;56&apos;, # V
        &apos;%E1%57&apos;          =&gt; &apos;57&apos;, # W
        &apos;%E2%57&apos;          =&gt; &apos;57&apos;, # W
        &apos;%E3%57&apos;          =&gt; &apos;57&apos;, # W
        &apos;%E8%57&apos;          =&gt; &apos;57&apos;, # W
        &apos;%E8%58&apos;          =&gt; &apos;58&apos;, # X
        &apos;%E1%59&apos;          =&gt; &apos;59&apos;, # Y
        &apos;%E2%59&apos;          =&gt; &apos;DD&apos;, # Y acute
        &apos;%E3%59&apos;          =&gt; &apos;59&apos;, # Y
        &apos;%E4%59&apos;          =&gt; &apos;59&apos;, # Y
        &apos;%E8%59&apos;          =&gt; &apos;59&apos;, # Y
        &apos;%E2%5A&apos;          =&gt; &apos;5A&apos;, # Z
        &apos;%E3%5A&apos;          =&gt; &apos;5A&apos;, # Z
        &apos;%E1%61&apos;          =&gt; &apos;E0&apos;, # a grave
        &apos;%E2%61&apos;          =&gt; &apos;E1&apos;, # a acute
        &apos;%E3%61&apos;          =&gt; &apos;E2&apos;, # a circumflex
        &apos;%E4%61&apos;          =&gt; &apos;E3&apos;, # a tilde
        &apos;%E8%61&apos;          =&gt; &apos;E4&apos;, # a umlaut
        &apos;%EA%61&apos;          =&gt; &apos;E5&apos;, # a ring
        &apos;%E2%63&apos;          =&gt; &apos;63&apos;, # c
        &apos;%E3%63&apos;          =&gt; &apos;63&apos;, # c
        &apos;%F0%63&apos;          =&gt; &apos;E7&apos;, # c cedilla
        &apos;%E1%65&apos;          =&gt; &apos;E8&apos;, # e grave
        &apos;%E2%65&apos;          =&gt; &apos;E9&apos;, # e acute
        &apos;%E3%65&apos;          =&gt; &apos;EA&apos;, # e circumflex
        &apos;%E4%65&apos;          =&gt; &apos;65&apos;, # e
        &apos;%E8%65&apos;          =&gt; &apos;EB&apos;, # e umlaut
        &apos;%F0%65&apos;          =&gt; &apos;65&apos;, # e
        &apos;%E2%67&apos;          =&gt; &apos;67&apos;, # g
        &apos;%E3%67&apos;          =&gt; &apos;67&apos;, # g
        &apos;%F0%67&apos;          =&gt; &apos;67&apos;, # g
        &apos;%E3%68&apos;          =&gt; &apos;68&apos;, # h
        &apos;%E8%68&apos;          =&gt; &apos;68&apos;, # h
        &apos;%F0%68&apos;          =&gt; &apos;68&apos;, # h
        &apos;%E1%69&apos;          =&gt; &apos;EC&apos;, # i grave
        &apos;%E2%69&apos;          =&gt; &apos;ED&apos;, # i acute
        &apos;%E3%69&apos;          =&gt; &apos;EE&apos;, # i circumflex
        &apos;%E4%69&apos;          =&gt; &apos;69&apos;, # i
        &apos;%E8%69&apos;          =&gt; &apos;EF&apos;, # i umlaut
        &apos;%E3%6A&apos;          =&gt; &apos;6A&apos;, # j
        &apos;%E2%6B&apos;          =&gt; &apos;6B&apos;, # k
        &apos;%E3%6B&apos;          =&gt; &apos;6B&apos;, # k
        &apos;%F0%6B&apos;          =&gt; &apos;6B&apos;, # k
        &apos;%F2%6B&apos;          =&gt; &apos;6B&apos;, # k
        &apos;%E2%6C&apos;          =&gt; &apos;6C&apos;, # l
        &apos;%E3%6C&apos;          =&gt; &apos;6C&apos;, # l
        &apos;%F0%6C&apos;          =&gt; &apos;6C&apos;, # l
        &apos;%E2%6D&apos;          =&gt; &apos;6D&apos;, # m
        &apos;%E1%6E&apos;          =&gt; &apos;6E&apos;, # n
        &apos;%E2%6E&apos;          =&gt; &apos;6E&apos;, # n
        &apos;%E4%6E&apos;          =&gt; &apos;F1&apos;, # n tilde
        &apos;%F0%6E&apos;          =&gt; &apos;6E&apos;, # n
        &apos;%E1%6F&apos;          =&gt; &apos;F2&apos;, # o grave
        &apos;%E2%6F&apos;          =&gt; &apos;F3&apos;, # o acute
        &apos;%E3%6F&apos;          =&gt; &apos;F4&apos;, # o circumflex
        &apos;%E4%6F&apos;          =&gt; &apos;F5&apos;, # o tilde
        &apos;%E8%6F&apos;          =&gt; &apos;F6&apos;, # o umlaut
        &apos;%E2%70&apos;          =&gt; &apos;70&apos;, # p
        &apos;%E2%72&apos;          =&gt; &apos;72&apos;, # r
        &apos;%E2%73&apos;          =&gt; &apos;73&apos;, # s
        &apos;%E3%73&apos;          =&gt; &apos;73&apos;, # s
        &apos;%F0%73&apos;          =&gt; &apos;73&apos;, # s
        &apos;%E8%74&apos;          =&gt; &apos;74&apos;, # t
        &apos;%F0%74&apos;          =&gt; &apos;74&apos;, # t
        &apos;%E1%75&apos;          =&gt; &apos;F9&apos;, # u grave
        &apos;%E2%75&apos;          =&gt; &apos;FA&apos;, # u acute
        &apos;%E3%75&apos;          =&gt; &apos;FB&apos;, # u circumflex
        &apos;%E4%75&apos;          =&gt; &apos;75&apos;, # u
        &apos;%E8%75&apos;          =&gt; &apos;FC&apos;, # u umlaut
        &apos;%EA%75&apos;          =&gt; &apos;75&apos;, # u
        &apos;%E4%76&apos;          =&gt; &apos;76&apos;, # v
        &apos;%E1%77&apos;          =&gt; &apos;77&apos;, # w
        &apos;%E2%77&apos;          =&gt; &apos;77&apos;, # w
        &apos;%E3%77&apos;          =&gt; &apos;77&apos;, # w
        &apos;%E8%77&apos;          =&gt; &apos;77&apos;, # w
        &apos;%EA%77&apos;          =&gt; &apos;77&apos;, # w
        &apos;%E8%78&apos;          =&gt; &apos;78&apos;, # x
        &apos;%E1%79&apos;          =&gt; &apos;79&apos;, # y
        &apos;%E2%79&apos;          =&gt; &apos;FD&apos;, # y acute
        &apos;%E3%79&apos;          =&gt; &apos;79&apos;, # y
        &apos;%E4%79&apos;          =&gt; &apos;79&apos;, # y
        &apos;%E8%79&apos;          =&gt; &apos;79&apos;, # y
        &apos;%EA%79&apos;          =&gt; &apos;79&apos;, # y
        &apos;%E8%79&apos;          =&gt; &apos;FF&apos;, # y umlaut
        &apos;%E2%7A&apos;          =&gt; &apos;7A&apos;, # z
        &apos;%E3%7A&apos;          =&gt; &apos;7A&apos;, # z
        &apos;%E2%A2&apos;          =&gt; &apos;4F&apos;, # O
        &apos;%E1%AC&apos;          =&gt; &apos;4F&apos;, # O
        &apos;%E2%AC&apos;          =&gt; &apos;4F&apos;, # O
        &apos;%E4%AC&apos;          =&gt; &apos;4F&apos;, # O
        &apos;%E1%AD&apos;          =&gt; &apos;55&apos;, # U
        &apos;%E2%AD&apos;          =&gt; &apos;55&apos;, # U
        &apos;%E4%AD&apos;          =&gt; &apos;55&apos;, # U
        &apos;%E2%B2&apos;          =&gt; &apos;6F&apos;, # o
        &apos;%E1%BC&apos;          =&gt; &apos;6F&apos;, # o
        &apos;%E2%BC&apos;          =&gt; &apos;6F&apos;, # o
        &apos;%E4%BC&apos;          =&gt; &apos;6F&apos;, # o
        &apos;%E1%BD&apos;          =&gt; &apos;75&apos;, # u
        &apos;%E2%BD&apos;          =&gt; &apos;75&apos;, # u
        &apos;%E4%BD&apos;          =&gt; &apos;75&apos;, # u
    );

    my %marc8_to_latin1_single = (
        &apos;%A2&apos; =&gt; &apos;D8&apos;, # O slash
        &apos;%A3&apos; =&gt; &apos;D0&apos;, # ETH
        &apos;%A4&apos; =&gt; &apos;DE&apos;, # THORN
        &apos;%A5&apos; =&gt; &apos;C6&apos;, # AE ligature
        &apos;%A6&apos; =&gt; &apos;4F&apos;, # OE ligature -&gt; O
        &apos;%A8&apos; =&gt; &apos;B7&apos;, # Middle dot
        &apos;%AA&apos; =&gt; &apos;AE&apos;, # Registered trademark
        &apos;%AB&apos; =&gt; &apos;B1&apos;, # Plus-minus sign
        &apos;%AC&apos; =&gt; &apos;4F&apos;, # O
        &apos;%AD&apos; =&gt; &apos;55&apos;, # U
        &apos;%B2&apos; =&gt; &apos;F8&apos;, # o slash
        &apos;%B4&apos; =&gt; &apos;FE&apos;, # thorn
        &apos;%B5&apos; =&gt; &apos;E6&apos;, # ae ligature
        &apos;%B6&apos; =&gt; &apos;6F&apos;, # oe ligature -&gt; o
        &apos;%B9&apos; =&gt; &apos;A3&apos;, # Pound sign
        &apos;%BA&apos; =&gt; &apos;F0&apos;, # eth
        &apos;%BC&apos; =&gt; &apos;6F&apos;, # o
        &apos;%BD&apos; =&gt; &apos;75&apos;, # u
        &apos;%C0&apos; =&gt; &apos;B0&apos;, # Degree sign
        &apos;%C3&apos; =&gt; &apos;A9&apos;, # Copyright sign
        &apos;%C5&apos; =&gt; &apos;BF&apos;, # Inverted question mark
        &apos;%C6&apos; =&gt; &apos;A1&apos;, # Inverted exclamation
        &apos;%C7&apos; =&gt; &apos;DF&apos;, # sharp s
        &apos;%EA&apos; =&gt; &apos;B0&apos;, # Degree sign
    );

    foreach my $char1 (@orphan_chars_combined) {
        $line =~ s/$char1//g;
    }
    foreach my $marc_char1 ( keys(%marc8_to_latin1_combined) ) {
        $line =~ s/$marc_char1/pack(&quot;C&quot;, hex($marc8_to_latin1_combined{$marc_char1}))/eg;
    }
    foreach my $char2 (@orphan_chars_single) {
        $line =~ s/$char2//g;
    }
    foreach my $marc_char2 ( keys(%marc8_to_latin1_single) ) {
        $line =~ s/$marc_char2/pack(&quot;C&quot;, hex($marc8_to_latin1_single{$marc_char2}))/eg;
    }

    $line =~ s/%([A-F0-9][A-F0-9])/pack(&quot;C&quot;, hex($1))/eg;

    return ($line);
}

1;
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[きのうのできごと]]></title><description><![CDATA[<!--kg-card-begin: html--><div style="margin: 1em; padding: 2em; background-color: white; border: 1px solid silver; box-shadow: 2px 2px 5px rgba(0,0,0,0.38);">
<div style="font-size: 20px; text-align: right; margin-bottom: 2em;">&#x516D;&#x6708;&#x3000;&#x4E8C;&#x5341;&#x4E8C;&#x65E5;&#x3000;&#x6708;<ruby><rb>&#x66DC;</rb><rt>&#x3088;&#x3046;</rt></ruby>&#x65E5;</div>
<p style="font-size: 20px; line-height: 2.5; word-break: keep-all;">&#x304D;&#x306E;&#x3046;&#x306F;&#x200B;&#x304A;&#x3068;&#x3046;&#x3055;&#x3093;&#x306E;&#x65E5;&#x200B;&#x3067;&#x3057;&#x305F;&#x3002;
&#x307C;&#x304F;&#x306F;&#x200B;&#x516B;&#x6642;&#x3054;&#x308D;&#x306B;&#x200B;&#x304A;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;
&#x3061;&#x3061;&#x306F;&#x200B;</p></div>]]></description><link>https://robireton.com/kinounodekigoto/</link><guid isPermaLink="false">606de3bb5e53530ef3acf524</guid><category><![CDATA[日本語]]></category><dc:creator><![CDATA[Rob Ireton]]></dc:creator><pubDate>Mon, 22 Jun 2015 15:23:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1491295314828-fb03946d9b52?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: html--><div style="margin: 1em; padding: 2em; background-color: white; border: 1px solid silver; box-shadow: 2px 2px 5px rgba(0,0,0,0.38);">
<div style="font-size: 20px; text-align: right; margin-bottom: 2em;">&#x516D;&#x6708;&#x3000;&#x4E8C;&#x5341;&#x4E8C;&#x65E5;&#x3000;&#x6708;<ruby><rb>&#x66DC;</rb><rt>&#x3088;&#x3046;</rt></ruby>&#x65E5;</div>
<img src="https://images.unsplash.com/photo-1491295314828-fb03946d9b52?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="&#x304D;&#x306E;&#x3046;&#x306E;&#x3067;&#x304D;&#x3054;&#x3068;"><p style="font-size: 20px; line-height: 2.5; word-break: keep-all;">&#x304D;&#x306E;&#x3046;&#x306F;&#x200B;&#x304A;&#x3068;&#x3046;&#x3055;&#x3093;&#x306E;&#x65E5;&#x200B;&#x3067;&#x3057;&#x305F;&#x3002;
&#x307C;&#x304F;&#x306F;&#x200B;&#x516B;&#x6642;&#x3054;&#x308D;&#x306B;&#x200B;&#x304A;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;
&#x3061;&#x3061;&#x306F;&#x200B;&#x5341;&#x4E8C;&#x6642;&#x306B;&#x200B;&#x307C;&#x304F;&#x306E;&#x3046;&#x3061;&#x3078;&#x200B;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;
&#x3072;&#x308B;&#x3054;&#x306F;&#x3093;&#x306F;&#x200B;&#x306B;&#x304F;&#x3068;&#x200B;&#x3084;&#x3055;&#x3044;&#x3068;&#x200B;&#x3054;&#x306F;&#x3093;&#x3092;&#x200B;&#x305F;&#x3079;&#x307E;&#x3057;&#x305F;&#x3002;
&#x30D3;&#x30FC;&#x30EB;&#x3092;&#x200B;&#x306E;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002;
&#x30A6;&#x30FC;&#x30ED;&#x30F3;<ruby><rb>&#x8336;</rb><rt>&#x3061;&#x3083;</rt></ruby>&#x3082;&#x200B;&#x306E;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002;
&#x307C;&#x304F;&#x306E;&#x200B;&#x308A;&#x3087;&#x3053;&#x3046;&#x306E;&#x200B;&#x3057;&#x3083;&#x3057;&#x3093;&#x3092;&#x200B;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002;
&#x3061;&#x3061;&#x306F;&#x200B;&#x5341;&#x4E94;&#x6642;&#x306B;&#x200B;&#x3044;&#x3048;&#x3078;&#x200B;&#x304B;&#x3048;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;
&#x304D;&#x3087;&#x3046;&#x3001;&#x200B;&#x305F;&#x3093;&#x3054;&#x306E;&#x200B;&#x30AF;&#x30A4;&#x30BA;&#x304C;&#x200B;&#x3042;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;
&#x3060;&#x304B;&#x3089;&#x3001;&#x200B;&#x4E09;&#x6642;<ruby><rb>&#x9593;</rb><rt>&#x304B;&#x3093;</rt></ruby>&#x3050;&#x3089;&#x3044;&#x200B;&#x3079;&#x3093;&#x304D;&#x3087;&#x3046;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;
&#x4E8C;&#x5341;&#x4E8C;&#x6642;<ruby><rb>&#x534A;</rb><rt>&#x306F;&#x3093;</rt></ruby>&#x3054;&#x308D;&#x306B;&#x200B;&#x306D;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<div style="font-size: 20px; margin-top: 2em;">&#x2014; &#x30ED;&#x30D6;&#x30FB;&#x30A2;&#x30A4;&#x30EB;&#x30C8;&#x30F3;</div>
</div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[わたしのスケジュール]]></title><description><![CDATA[<p>&#x305F;&#x3044;&#x3066;&#x3044;&#x200B;&#xFF16;&#x3058;&#x3054;&#x308D;&#x200B;&#x304A;&#x304D;&#x307E;&#x3059;&#x3002; &#x307E;&#x3044;&#x306B;&#x3061;&#x200B;&#x3042;&#x3055;&#x3054;&#x306F;&#x3093;&#x3092;&#x200B;&#x305F;&#x3079;&#x307E;&#x3059;&#x3002; &#x305C;&#x3093;&#x305C;&#x3093;&#x200B;&#x30B3;&#x30FC;&#x30D2;&#x30FC;&#x3092;&#x200B;&#x306E;&#x307F;&#x307E;&#x305B;&#x3093;&#x3002; &#x30AA;</p>]]></description><link>https://robireton.com/watasinosukeziyuru/</link><guid isPermaLink="false">606de3bb5e53530ef3acf523</guid><category><![CDATA[日本語]]></category><dc:creator><![CDATA[Rob Ireton]]></dc:creator><pubDate>Wed, 17 Jun 2015 15:16:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1506784983877-45594efa4cbe?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1506784983877-45594efa4cbe?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="&#x308F;&#x305F;&#x3057;&#x306E;&#x30B9;&#x30B1;&#x30B8;&#x30E5;&#x30FC;&#x30EB;"><p>&#x305F;&#x3044;&#x3066;&#x3044;&#x200B;&#xFF16;&#x3058;&#x3054;&#x308D;&#x200B;&#x304A;&#x304D;&#x307E;&#x3059;&#x3002; &#x307E;&#x3044;&#x306B;&#x3061;&#x200B;&#x3042;&#x3055;&#x3054;&#x306F;&#x3093;&#x3092;&#x200B;&#x305F;&#x3079;&#x307E;&#x3059;&#x3002; &#x305C;&#x3093;&#x305C;&#x3093;&#x200B;&#x30B3;&#x30FC;&#x30D2;&#x30FC;&#x3092;&#x200B;&#x306E;&#x307F;&#x307E;&#x305B;&#x3093;&#x3002; &#x30AA;&#x30D5;&#x30A3;&#x30B9;&#x306B;&#x200B;&#x3044;&#x304D;&#x307E;&#x3059;&#x3002; &#x305F;&#x3044;&#x3066;&#x3044;&#x200B;&#x30AA;&#x30D5;&#x30A3;&#x30B9;&#x3067;&#x200B;&#x3053;&#x3046;&#x3061;&#x3083;&#x3092;&#x200B;&#x306E;&#x307F;&#x307E;&#x3059;&#x3002; &#x3067;&#x3082;&#x3001;&#x3068;&#x304D;&#x3069;&#x304D;&#x200B;&#x30A6;&#x30FC;&#x30ED;&#x30F3;&#x3061;&#x3083;&#x200B;&#x306E;&#x307F;&#x307E;&#x3059;&#x3002; &#x3058;&#x3085;&#x3046;&#x3058;&#x306F;&#x3093;&#x306B;&#x200B;&#x306B;&#x307B;&#x3093;&#x3054;&#x306E;&#x200B;&#x30AF;&#x30E9;&#x30B9;&#x3078;&#x200B;&#x3044;&#x304D;&#x307E;&#x3059;&#x3002; &#xFF11;&#x3058;&#x306B;&#x200B;MSB&#x3078;&#x200B;&#x304B;&#x3048;&#x308A;&#x307E;&#x3059;&#x3002; &#x3072;&#x308B;&#x3054;&#x306F;&#x3093;&#x3092;&#x200B;&#x305F;&#x3079;&#x307E;&#x3059;&#x3002; &#x3068;&#x304D;&#x3069;&#x304D;&#x200B;&#x304A;&#x3061;&#x3083;&#x3092;&#x200B;&#x306E;&#x307F;&#x307E;&#x3059;&#x3002; &#xFF16;&#x3058;&#x3054;&#x308D;&#x200B;&#x3046;&#x3061;&#x306B;&#x200B;&#x304B;&#x3048;&#x308A;&#x307E;&#x3059;&#x3002; &#x305F;&#x3044;&#x3066;&#x3044;&#x200B;&#x3046;&#x3061;&#x3067;&#x200B;&#x3070;&#x3093;&#x3054;&#x306F;&#x3093;&#x3092;&#x200B;&#x305F;&#x3079;&#x307E;&#x3059;&#x3002; &#x3067;&#x3082;&#x3001;&#x3068;&#x304D;&#x3069;&#x304D;&#x200B;&#x30EC;&#x30B9;&#x30C8;&#x30E9;&#x30F3;&#x3067;&#x200B;&#x3070;&#x3093;&#x3054;&#x306F;&#x3093;&#x3092;&#x200B;&#x305F;&#x3079;&#x307E;&#x3059;&#x3002; &#x307E;&#x3044;&#x3070;&#x3093;&#x200B;&#x306B;&#x307B;&#x3093;&#x3054;&#x3092;&#x200B;&#x3079;&#x3093;&#x304D;&#x3087;&#x3046;&#x3057;&#x307E;&#x3059;&#x3002; &#x3068;&#x304D;&#x3069;&#x304D;&#x200B;&#x307B;&#x3093;&#x3092;&#x200B;&#x3088;&#x307F;&#x307E;&#x3059;&#x3002; &#x3042;&#x307E;&#x308A;&#x200B;&#x30C6;&#x30EC;&#x30D3;&#x3092;&#x200B;&#x307F;&#x307E;&#x305B;&#x3093;&#x3002; &#xFF11;&#xFF10;&#x3058;&#x306B;&#x200B;&#x306D;&#x307E;&#x3059;&#x3002; &#x3057;&#x3085;&#x3046;&#x307E;&#x3064;&#x306F;&#x200B;&#x3088;&#x304F;&#x200B;&#x306D;&#x307E;&#x3059;&#x3002; &#x3061;&#x3083;&#x3092;&#x200B;&#x306E;&#x307F;&#x307E;&#x3059;&#x3002; &#x307B;&#x3093;&#x3092;&#x200B;&#x3088;&#x307F;&#x307E;&#x3059;&#x3002; &#x304A;&#x3055;&#x3051;&#x3092;&#x200B;&#x306E;&#x307F;&#x307E;&#x3059;&#x3002; &#x306D;&#x3053;&#x3092;&#x200B;&#x306F;&#x306A;&#x3057;&#x307E;&#x3059;&#x3002; &#x304A;&#x3093;&#x304C;&#x304F;&#x3092;&#x200B;&#x304D;&#x304D;&#x307E;&#x3059;&#x3002; &#x3068;&#x304D;&#x3069;&#x304D;&#x200B;&#x3068;&#x3082;&#x3060;&#x3061;&#x306E;&#x200B;&#x3044;&#x3048;&#x306B;&#x200B;&#x3044;&#x304D;&#x307E;&#x3059;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[わたしのもの]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="/content/images/2019/04/270697632_f7d95d8c29_o.jpg" class="kg-image" alt loading="lazy"></figure><p>&#x3053;&#x308C;&#x306F;<a href="http://www.imperialtea.com/Fancy-Tieguanyin-p/oolong%20tea004.htm">&#x30A6;&#x30FC;&#x30ED;&#x30F3;&#x3061;&#x3083;</a>&#x3067;&#x3059;&#x3002; <a href="http://www.imperialtea.com/Imperial-Gyokuro-p/greentea00039.htm">&#x304A;&#x3061;&#x3083;</a>&#x3058;&#x3083;&#x306A;&#x3044;&#x3067;&#x3059;&#x3002; <a href="http://www.imperialtea.com/Superior-Yunnan-Black-p/black-tea009.htm">&#x30B3;&#x30FC;&#x3061;&#x3083;</a>&#x3058;&#x3083;&#x306A;&#x3044;&#x3067;&#x3059;&#x3002; &#x304A;&#x3044;&#x3057;&#x3044;&#x3067;&#x3059;&#x3088;&#x3002;</p><hr><figure class="kg-card kg-image-card"><img src="/content/images/2019/04/kobo.jpg" class="kg-image" alt loading="lazy"></figure><p>&#x3053;&#x308C;&#x306F;<a href="http://books.rakuten.co.jp/event/e-book/ereaders/">kobo</a>&#x3067;&#x3059;&#x3002; <a href="http://www.amazon.co.jp/dp/B00LWHUV3Q/">Kindle</a>&#x3058;</p>]]></description><link>https://robireton.com/watashinomono/</link><guid isPermaLink="false">606de3bb5e53530ef3acf522</guid><category><![CDATA[日本語]]></category><dc:creator><![CDATA[Rob Ireton]]></dc:creator><pubDate>Thu, 11 Jun 2015 14:58:00 GMT</pubDate><media:content url="https://robireton.com/content/images/2019/04/294113864_dc8bf5bb45_o.jpg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="/content/images/2019/04/270697632_f7d95d8c29_o.jpg" class="kg-image" alt="&#x308F;&#x305F;&#x3057;&#x306E;&#x3082;&#x306E;" loading="lazy"></figure><img src="https://robireton.com/content/images/2019/04/294113864_dc8bf5bb45_o.jpg" alt="&#x308F;&#x305F;&#x3057;&#x306E;&#x3082;&#x306E;"><p>&#x3053;&#x308C;&#x306F;<a href="http://www.imperialtea.com/Fancy-Tieguanyin-p/oolong%20tea004.htm">&#x30A6;&#x30FC;&#x30ED;&#x30F3;&#x3061;&#x3083;</a>&#x3067;&#x3059;&#x3002; <a href="http://www.imperialtea.com/Imperial-Gyokuro-p/greentea00039.htm">&#x304A;&#x3061;&#x3083;</a>&#x3058;&#x3083;&#x306A;&#x3044;&#x3067;&#x3059;&#x3002; <a href="http://www.imperialtea.com/Superior-Yunnan-Black-p/black-tea009.htm">&#x30B3;&#x30FC;&#x3061;&#x3083;</a>&#x3058;&#x3083;&#x306A;&#x3044;&#x3067;&#x3059;&#x3002; &#x304A;&#x3044;&#x3057;&#x3044;&#x3067;&#x3059;&#x3088;&#x3002;</p><hr><figure class="kg-card kg-image-card"><img src="/content/images/2019/04/kobo.jpg" class="kg-image" alt="&#x308F;&#x305F;&#x3057;&#x306E;&#x3082;&#x306E;" loading="lazy"></figure><p>&#x3053;&#x308C;&#x306F;<a href="http://books.rakuten.co.jp/event/e-book/ereaders/">kobo</a>&#x3067;&#x3059;&#x3002; <a href="http://www.amazon.co.jp/dp/B00LWHUV3Q/">Kindle</a>&#x3058;&#x3083;&#x306A;&#x3044;&#x3067;&#x3059;&#x3002; &#x3053;&#x308C;&#x306F;&#x307B;&#x3093;&#x3067;&#x3059;&#x304B;&#x3002;</p><hr><figure class="kg-card kg-image-card"><img src="/content/images/2019/04/communist.jpg" class="kg-image" alt="&#x308F;&#x305F;&#x3057;&#x306E;&#x3082;&#x306E;" loading="lazy"></figure><p>&#x308F;&#x305F;&#x3057;&#x306E;<a href="http://fez-o-rama.com/">&#x307C;&#x3046;&#x3057;</a>&#x3067;&#x3059;&#x3002; &#x3053;&#x306E;&#x307C;&#x3046;&#x3057;&#x306F;&#x3044;&#x304F;&#x3089;&#x3067;&#x3059;&#x304B;&#x3002; &#xA5;7,000&#x3067;&#x3059;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[はじめまして]]></title><description><![CDATA[<p>&#x306F;&#x3058;&#x3081;&#x307E;&#x3057;&#x3066;&#x3001;Robert Ireton&#x3000;&#x3067;&#x3059;&#x3002;<br>&#x30A2;&#x30E1;&#x30EA;&#x30AB;&#x3058;&#x3093;&#x3067;&#x3059;&#x3002;<br>&#x305B;&#x3093;&#x3053;&#x3046;&#x306F;&#x3059;&#x3046;&#x304C;&#x304F;&#x3067;&#x3059;&#x3002;<br>&#x3088;&#x3093;&#x3058;&#x3085;&#x3046;&#x3055;&#x3093;&#x3055;&#x3044;&#x3067;&#x3059;&#x3002;<br>&#x3088;&#x308D;&#x3057;&#x304F;</p>]]></description><link>https://robireton.com/hajimemashite/</link><guid isPermaLink="false">606de3bb5e53530ef3acf521</guid><category><![CDATA[日本語]]></category><dc:creator><![CDATA[Rob Ireton]]></dc:creator><pubDate>Mon, 08 Jun 2015 14:49:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1512626120412-faf41adb4874?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1512626120412-faf41adb4874?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="&#x306F;&#x3058;&#x3081;&#x307E;&#x3057;&#x3066;"><p>&#x306F;&#x3058;&#x3081;&#x307E;&#x3057;&#x3066;&#x3001;Robert Ireton&#x3000;&#x3067;&#x3059;&#x3002;<br>&#x30A2;&#x30E1;&#x30EA;&#x30AB;&#x3058;&#x3093;&#x3067;&#x3059;&#x3002;<br>&#x305B;&#x3093;&#x3053;&#x3046;&#x306F;&#x3059;&#x3046;&#x304C;&#x304F;&#x3067;&#x3059;&#x3002;<br>&#x3088;&#x3093;&#x3058;&#x3085;&#x3046;&#x3055;&#x3093;&#x3055;&#x3044;&#x3067;&#x3059;&#x3002;<br>&#x3088;&#x308D;&#x3057;&#x304F;&#x304A;&#x306D;&#x304C;&#x3044;&#x3057;&#x307E;&#x3059;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="/content/images/2019/04/hex_helping_with_homework.jpg" class="kg-image" alt="&#x306F;&#x3058;&#x3081;&#x307E;&#x3057;&#x3066;" loading="lazy"><figcaption><strong>&#x308F;&#x305F;&#x3057;&#x306E;&#x306D;&#x3053;</strong></figcaption></figure>]]></content:encoded></item><item><title><![CDATA[Metric-compatible Replacements for Calibri & Cambria]]></title><description><![CDATA[Calibri ↔ Carlito
Cambria ↔ Caladea]]></description><link>https://robireton.com/metric-compatible-replacements-for-calibri-cambria/</link><guid isPermaLink="false">606de3bb5e53530ef3acf520</guid><category><![CDATA[linux]]></category><category><![CDATA[type]]></category><dc:creator><![CDATA[Rob Ireton]]></dc:creator><pubDate>Thu, 29 Jan 2015 15:42:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1446688568582-55ddb4b37cad?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1446688568582-55ddb4b37cad?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Metric-compatible Replacements for Calibri &amp; Cambria"><p>Calibri &#x2194; Carlito<br>Cambria &#x2194; Caladea</p><!--kg-card-begin: markdown--><pre><code class="language-bash">sudo apt-get install fonts-crosextra-carlito fonts-crosextra-caladea
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[In the Market for a Good Text Editor]]></title><description><![CDATA[<p>I&#x2019;ve been using <a href="http://www.geany.org/">Geany</a> for most of my development work for several years now and, while I&#x2019;ve been generally happy with it, as I&#x2019;ve started to do more web-based work and less system administration, I&#x2019;m starting to feel that it isn&#x2019;</p>]]></description><link>https://robireton.com/in-the-market-for-a-good-text-editor/</link><guid isPermaLink="false">606de3bb5e53530ef3acf51f</guid><category><![CDATA[linux]]></category><dc:creator><![CDATA[Rob Ireton]]></dc:creator><pubDate>Thu, 11 Dec 2014 15:33:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1543285198-3af15c4592ce?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1543285198-3af15c4592ce?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="In the Market for a Good Text Editor"><p>I&#x2019;ve been using <a href="http://www.geany.org/">Geany</a> for most of my development work for several years now and, while I&#x2019;ve been generally happy with it, as I&#x2019;ve started to do more web-based work and less system administration, I&#x2019;m starting to feel that it isn&#x2019;t giving me as much support as I&#x2019;d like. So: time to start surveying the field to see if there&#x2019;s something that might suit me better.</p><h2 id="initial-candidates-">Initial Candidates:</h2><ul><li><a href="https://atom.io/">Atom</a></li><li><a href="http://brackets.io/">Brackets</a></li><li><a href="http://www.eclipse.org/">Eclipse</a></li><li><a href="http://komodoide.com/komodo-edit/">Komodo Edit</a></li><li><a href="http://lighttable.com/">Light Table</a></li><li><a href="http://www.sublimetext.com/">Sublime Text</a></li><li><a href="http://www.ultraedit.com/products/uex.html">UltraEdit</a></li><li><a href="https://www.jetbrains.com/webstorm/">WebStorm</a>&#x2009;/&#x2009;<a href="https://www.jetbrains.com/phpstorm/">PhpStorm</a></li></ul><h2 id="some-requirements">Some Requirements</h2><ul><li>syntax highlighting for: HTML, CSS, Javascript, PHP, SQL, Perl, arbitrary XML, Bourne&#x2009;/&#x2009;Bash script, Python, Julia</li><li>auto-complete&#x2009;/&#x2009;intelligent code completion for same</li><li>markup helping (e.g. ctrl-b wraps selected text in <b>&#x2026;</b>)</li><li>robust regular expression search &amp; replace</li><li>flexible line endings&#x2009;/&#x2009;character encodings for working with files from other environments</li><li>case-folding, entity replacement, sorting, etc. native or via plugin</li><li>bracket matching</li><li>read image files to update width &amp; height attributes of &lt;img&gt; tags</li></ul>]]></content:encoded></item><item><title><![CDATA[Fix MS TrueType rendering]]></title><description><![CDATA[<p>I was experiencing very poor font rendering at small point sizes for the Microsoft fonts (Calibri, Arial, etc.). The solution was to tell the system to ignore the embedded bitmaps in the font files. I created <code>~/.config/fontconfig/fonts.conf</code> with this content:</p><!--kg-card-begin: markdown--><pre><code class="language-xml">&lt;match target=&quot;font&quot;&gt;</code></pre>]]></description><link>https://robireton.com/fix-ms-truetype-rendering/</link><guid isPermaLink="false">606de3bb5e53530ef3acf51e</guid><category><![CDATA[linux]]></category><category><![CDATA[type]]></category><dc:creator><![CDATA[Rob Ireton]]></dc:creator><pubDate>Thu, 13 Nov 2014 15:24:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1493105933430-61359d451c85?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1493105933430-61359d451c85?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Fix MS TrueType rendering"><p>I was experiencing very poor font rendering at small point sizes for the Microsoft fonts (Calibri, Arial, etc.). The solution was to tell the system to ignore the embedded bitmaps in the font files. I created <code>~/.config/fontconfig/fonts.conf</code> with this content:</p><!--kg-card-begin: markdown--><pre><code class="language-xml">&lt;match target=&quot;font&quot;&gt;
&lt;edit name=&quot;embeddedbitmap&quot; mode=&quot;assign&quot;&gt;
&lt;bool&gt;false&lt;/bool&gt;
&lt;/edit&gt;
&lt;/match&gt;
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Boot Linux in text mode]]></title><description><![CDATA[<p>I needed to boot to a Linux live USB on an old machine with a video card that was causing problems. I learned from <a href="http://askubuntu.com/questions/16371/how-do-i-disable-x-at-boot-time-so-that-the-system-boots-in-text-mode">Ask Ubuntu</a> to replace &#x201C;quiet splash&#x201D; with &#x201C;text&#x201D; in the boot line.</p>]]></description><link>https://robireton.com/boot-linux-in-text-mode/</link><guid isPermaLink="false">606de3bb5e53530ef3acf51d</guid><category><![CDATA[linux]]></category><dc:creator><![CDATA[Rob Ireton]]></dc:creator><pubDate>Mon, 27 Oct 2014 14:19:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1549605659-32d82da3a059?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1549605659-32d82da3a059?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Boot Linux in text mode"><p>I needed to boot to a Linux live USB on an old machine with a video card that was causing problems. I learned from <a href="http://askubuntu.com/questions/16371/how-do-i-disable-x-at-boot-time-so-that-the-system-boots-in-text-mode">Ask Ubuntu</a> to replace &#x201C;quiet splash&#x201D; with &#x201C;text&#x201D; in the boot line.</p>]]></content:encoded></item><item><title><![CDATA[VirtualBox failed on upgrade from Ubuntu 14.04 to 14.10]]></title><description><![CDATA[<p>I upgraded my work desktop from Ubuntu 14.04 to 14.10 today, and none of my virtual machines would load all the way&#x2014;they would start to boot then fail before the guest OS had loaded all the way. What ended up fixing the problem was removing the</p>]]></description><link>https://robireton.com/virtualbox-failed-on-upgrade-from-ubuntu-14-04-to-14-10/</link><guid isPermaLink="false">606de3bb5e53530ef3acf51c</guid><category><![CDATA[linux]]></category><dc:creator><![CDATA[Rob Ireton]]></dc:creator><pubDate>Fri, 24 Oct 2014 14:14:00 GMT</pubDate><media:content url="https://robireton.com/content/images/2019/04/Ubuntu_14.10_Utopic_Desktop.png" medium="image"/><content:encoded><![CDATA[<img src="https://robireton.com/content/images/2019/04/Ubuntu_14.10_Utopic_Desktop.png" alt="VirtualBox failed on upgrade from Ubuntu 14.04 to 14.10"><p>I upgraded my work desktop from Ubuntu 14.04 to 14.10 today, and none of my virtual machines would load all the way&#x2014;they would start to boot then fail before the guest OS had loaded all the way. What ended up fixing the problem was removing the old Oracle VM VirtualBox Extension Pack and installing the new one from the <a href="https://www.virtualbox.org/wiki/Downloads">website</a>.</p>]]></content:encoded></item></channel></rss>