<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" >

  <title>Erik L. Arneson — Writer and Software Developer</title>
  <subtitle>Erik L. Arneson is a freelance writer and software developer with WordPress experience. He is located in Portland, Oregon.</subtitle>
  <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator>
  <link href="https://arnesonium.com/feeds/publishing.xml" rel="self" type="application/atom+xml" />
  <link href="https://arnesonium.com/" rel="alternate" type="text/html" />
  <updated>2026-06-18T15:03:10+00:00</updated>
  <id>https://arnesonium.com/feeds/publishing.xml</id>
  <author>
    <name>Erik L. Arneson</name>
  </author>
      <entry>
        
        <title>Create a Document From Twitter with TweetBook</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2015/04/create-a-document-from-twitter-with-tweetbook/" rel="alternate" type="text/html" title="Create a Document From Twitter with TweetBook" />
        <updated>2015-04-01T17:48:56+00:00</updated>
        <id>https://arnesonium.com/2015/04/create-a-document-from-twitter-with-tweetbook</id>
          <category term="golang" />
        
          <category term="google-cloud" />
        
          <category term="programming" />
        
          <category term="publishing" />
        
          <category term="tweetbook" />
        
          <category term="twitter" />
        
          <category term="web-development" />
        <content type="html" xml:base="https://arnesonium.com/2015/04/create-a-document-from-twitter-with-tweetbook/">&lt;p&gt;I just released &lt;a href=&quot;http://tweetbook.arnesonium.com/&quot; title=&quot;TweetBook&quot; target=&quot;_blank&quot;&gt;TweetBook&lt;/a&gt;, a web application to transform a Twitter stream into a simple document that can easily be turned into a photo album.
&lt;!--more--&gt;&lt;/p&gt;

&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;A client came to me complaining that there was no available solution to export a Twitter feed as a document filled with images. There are various other Twitter-to-document converters out there, but they all focus on the text. The client asked me to build a tool to fill this void.&lt;/p&gt;

&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;Since I’ve been working with Google App Engine a lot lately, I used Go to write a tool that retrieves Tweets from a search or timeline. It provides a number of formatting options, and then creates a simple document suitable for exporting into an HTML or PDF file.&lt;/p&gt;

&lt;h2&gt;Try It Out!&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;As of 2022, this application is seven years old and probably doesn’t work anymore.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The client told me to do whatever I wanted with the code, so I’m making it available for use! &lt;strong&gt;&lt;a href=&quot;http://tweetbook.arnesonium.com/&quot; title=&quot;TweetBook&quot; target=&quot;_blank&quot;&gt;Click here to try TweetBook!&lt;/a&gt;&lt;/strong&gt; If you find it useful, please consider funding further development by contributing a small amount with this button:&lt;/p&gt;

&lt;form action=&quot;https://www.paypal.com/cgi-bin/webscr&quot; method=&quot;post&quot; target=&quot;_top&quot;&gt;
 &lt;button type=&quot;submit&quot; class=&quot;btn&quot;&gt;Contribute $1.99 &amp;raquo;&lt;/button&gt;&lt;input type=&quot;hidden&quot; name=&quot;cmd&quot; value=&quot;_s-xclick&quot; /&gt;&lt;input type=&quot;hidden&quot; name=&quot;hosted_button_id&quot; value=&quot;3PNSJJHRF9XWA&quot; /&gt;
 &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://www.paypalobjects.com/en_US/i/scr/pixel.gif&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;
&lt;/form&gt;

&lt;h2&gt;Do You Have a Suggestion? A Bug Report?&lt;/h2&gt;
&lt;p&gt;If you have additional ideas for TweetBook, please visit my &lt;a href=&quot;http://arnesonium.com/contact/&quot; title=&quot;Contact&quot;&gt;Contact page&lt;/a&gt;. I’m eager to hear your feedback and get suggestions and bug reports!&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>How to Enable XPath in Internet Explorer</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2015/02/how-to-enable-xpath-in-internet-explorer/" rel="alternate" type="text/html" title="How to Enable XPath in Internet Explorer" />
        <updated>2015-02-12T17:13:32+00:00</updated>
        <id>https://arnesonium.com/2015/02/how-to-enable-xpath-in-internet-explorer</id>
          <category term="epub" />
        
          <category term="internet-explorer" />
        
          <category term="javascript" />
        
          <category term="programming" />
        
          <category term="publishing" />
        
          <category term="web-development" />
        
          <category term="windows" />
        <content type="html" xml:base="https://arnesonium.com/2015/02/how-to-enable-xpath-in-internet-explorer/">&lt;p&gt;Yesterday, I shared a little bit about using a virtual machine to &lt;a href=&quot;http://arnesonium.com/2015/02/test-internet-explorer-without-booting-windows/&quot; title=&quot;How to Test Your Frontend Against Internet Explorer Without Booting Windows&quot;&gt;test frontend code under Internet Explorer (IE)&lt;/a&gt;. My goal was to use &lt;a href=&quot;https://code.google.com/p/wicked-good-xpath/&quot; title=&quot;Wicked Good XPath&quot; target=&quot;_blank&quot;&gt;Wicked Good XPath&lt;/a&gt; to add the proper XPath features to IE so that EPUB.js would work correctly, thus making the &lt;a href=&quot;http://arnesonium.com/2015/01/philalethes-e-bulletin-online-reader/&quot; title=&quot;Philalethes E-Bulletin Online Reader&quot;&gt;&lt;em&gt;Philalethes E-Bulletin&lt;/em&gt; Online Reader&lt;/a&gt; work on all major browsers.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;Well, I’d been thinking about this problem for a while, but had delayed working on it because I just didn’t want to fiddle with IE. While I’d been thinking about it, the &lt;a href=&quot;https://github.com/futurepress/epub.js/commit/f2fa7497939e5876ff6676cf8de34d7284498495#diff-04c6e90faac2675aa89e2176d2eec7d8&quot; target=&quot;_blank&quot;&gt;EPUB.js instructions were updated&lt;/a&gt; with IE-specific steps. I didn’t have to look far.&lt;/p&gt;

&lt;p&gt;After loading &lt;code&gt;wgxpath.install.js&lt;/code&gt; in the header, I just had to add this bit of JavaScript before anything important happened:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;1&quot;&gt;
// Internet Explorer workaround.
if (!window.XPathResult) {
    EPUBJS.Hooks.register(&quot;beforeChapterDisplay&quot;).wgxpath = function(callback, renderer){
       wgxpath.install(renderer.render.window);

       if (callback) callback();
    };
    wgxpath.install(window);
}
&lt;/pre&gt;

&lt;p&gt;You can see on line 2 that I test for &lt;code&gt;window.XPathResult&lt;/code&gt; instead of looking for a user agent or anything like that. That’s because it’s not really IE I’m interested in detecting. I want to find out if XPath is both available and somewhat standard. User agents are unreliable. &lt;a href=&quot;http://learn.jquery.com/code-organization/feature-browser-detection/&quot; target=&quot;_blank&quot;&gt;Always test for feature availability instead!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://arnesonium.com/wp-content/uploads/2015/02/Screenshot-from-2015-02-11-133823.png&quot; alt=&quot;Recent web browser usage&quot; width=&quot;350&quot; height=&quot;130&quot; class=&quot;alignright size-full wp-image-279&quot; /&gt;The results are good enough for now: the Online Reader works in IE, but it’s not perfect. The cover image doesn’t load full-size and fonts don’t seem to be loading correctly. IE users account for only 10% of the traffic on the website, so obviously I need to work on the EPUB.js cross-browser support. For now, though, it works. And it looks great on Chrome, Safari, and Firefox.&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>When to Develop Apps From Scratch</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2015/02/when-to-develop-apps-from-scratch/" rel="alternate" type="text/html" title="When to Develop Apps From Scratch" />
        <updated>2015-02-03T20:56:10+00:00</updated>
        <id>https://arnesonium.com/2015/02/when-to-develop-apps-from-scratch</id>
          <category term="management" />
        
          <category term="optimization" />
        
          <category term="programming" />
        
          <category term="publishing" />
        
          <category term="web-design" />
        
          <category term="web-development" />
        <content type="html" xml:base="https://arnesonium.com/2015/02/when-to-develop-apps-from-scratch/">&lt;p&gt;I haven’t had time to write anything interesting for the blog this week, so instead check out Sebastian Green’s article, &lt;a href=&quot;http://www.developerdrive.com/2015/02/a-transparent-box-the-case-for-developing-from-scratch/&quot; target=&quot;_blank&quot;&gt;“A transparent box: the case for developing from scratch,”&lt;/a&gt; which has been published over at Developer Drive.&lt;/p&gt;

&lt;p&gt;Mr Green makes some great arguments for developing from scratch. Good software takes good planning, no matter what.&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>Philalethes E-Bulletin Online Reader</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2015/01/philalethes-e-bulletin-online-reader/" rel="alternate" type="text/html" title="Philalethes E-Bulletin Online Reader" />
        <updated>2015-01-12T22:33:11+00:00</updated>
        <id>https://arnesonium.com/2015/01/philalethes-e-bulletin-online-reader</id>
          <category term="epub" />
        
          <category term="freemasonry" />
        
          <category term="javascript" />
        
          <category term="php" />
        
          <category term="programming" />
        
          <category term="publishing" />
        
          <category term="web-development" />
        <content type="html" xml:base="https://arnesonium.com/2015/01/philalethes-e-bulletin-online-reader/">&lt;p&gt;I began working on the &lt;a href=&quot;http://freemasonry.org/ebulletin/&quot; title=&quot;Philalethes E-Bulletin&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Philalethes E-Bulletin&lt;/em&gt;&lt;/a&gt; in the Fall of 2013, and published the first issue in January of 2014. The &lt;em&gt;E-Bulletin&lt;/em&gt; is published quarterly in EPUB and MOBI formats.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2014/12/Screenshot-from-2014-12-18-214441.png#left&quot; alt=&quot;Philalethes Society Seal&quot; width=&quot;203&quot; height=&quot;171&quot; class=&quot;alignright size-full wp-image-189&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It’s been a great learning experience. Not only have I learned a lot about editing, but I’ve really had to dive into how electronic publishing works. The intricacies of electronic book formats have become well-known to me.&lt;/p&gt;

&lt;p&gt;The Philalethes Society isn’t entirely comfortable with modern technology, however. Most complaints about the &lt;em&gt;E-Bulletin&lt;/em&gt; came from those who didn’t have e-book readers and weren’t comfortable installing software on their PC to handle a new file format. Because of this, I built an online e-book reader specifically for the &lt;em&gt;E-Bulletin&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The online e-book reader is based around the excellent &lt;a href=&quot;https://github.com/futurepress/epub.js/&quot; target=&quot;_blank&quot;&gt;EPUB.js library&lt;/a&gt;, with additional backend code written in PHP.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://freemasonry.org/ebulletin/reader/&quot; title=&quot;Philalethes E-Bulletin Online Reader&quot; target=&quot;_blank&quot;&gt;Click here to visit the &lt;em&gt;Philalethes E-Bulletin&lt;/em&gt; Online Reader.&lt;/a&gt;&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>Handling Widows and Orphans in EPUB Files</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2014/12/handling-widows-and-orphans-in-epub-files/" rel="alternate" type="text/html" title="Handling Widows and Orphans in EPUB Files" />
        <updated>2014-12-19T14:46:32+00:00</updated>
        <id>https://arnesonium.com/2014/12/handling-widows-and-orphans-in-epub-files</id>
          <category term="design" />
        
          <category term="epub" />
        
          <category term="publishing" />
        <content type="html" xml:base="https://arnesonium.com/2014/12/handling-widows-and-orphans-in-epub-files/">&lt;p&gt;For a little over a year, I’ve been working with the &lt;a href=&quot;http://idpf.org/epub&quot; target=&quot;_blank&quot;&gt;EPUB format&lt;/a&gt; to build electronic books. I’ve been working on a software package to build EPUB files in Emacs, in fact. This has required learning more about design, and a great deal more about book layout. As with many design elements, once you’re made aware of them, you notice them all of the time. EPUBs, for instance, are not very good at handling &lt;a href=&quot;http://www.magazinedesigning.com/typographic-widows-and-orphans/&quot; target=&quot;_blank&quot;&gt;widows and orphans&lt;/a&gt;.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;Since EPUB uses HTML, it doesn’t have all of the tools available to print for handling these design issues. However, I’ve recently learned that there is hope. Over on &lt;a href=&quot;http://www.pigsgourdsandwikis.com/2010/06/goodbye-widows-and-orphans-or-yes-you.html&quot;&gt;Pigs, Gourds, and Wikis&lt;/a&gt;, I learned about the CSS &lt;code&gt;div&lt;/code&gt; property, &lt;code&gt;display:&amp;nbsp;inline-block&lt;/code&gt;. I’m looking forward to using this in future EPUBs to improve format even more.&lt;/p&gt;</content>
      </entry>
    
</feed>
