<?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/javascript.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/javascript.xml</id>
  <author>
    <name>Erik L. Arneson</name>
  </author>
      <entry>
        
        <title>OpenPGP for WordPress Now Supports Contact Form 7</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2016/01/openpgp-for-wordpress-now-supports-contact-form-7/" rel="alternate" type="text/html" title="OpenPGP for WordPress Now Supports Contact Form 7" />
        <updated>2016-01-20T16:54:43+00:00</updated>
        <id>https://arnesonium.com/2016/01/openpgp-for-wordpress-now-supports-contact-form-7</id>
          <category term="announcement" />
        
          <category term="cryptography" />
        
          <category term="encryption" />
        
          <category term="javascript" />
        
          <category term="openpgp" />
        
          <category term="php" />
        
          <category term="plugin" />
        
          <category term="programming" />
        
          <category term="web-development" />
        
          <category term="wordpress" />
        <content type="html" xml:base="https://arnesonium.com/2016/01/openpgp-for-wordpress-now-supports-contact-form-7/">&lt;p&gt;&lt;a href=&quot;https://arnesonium.com/wordpress-openpgp/&quot;&gt;OpenPGP Form Encryption for WordPress&lt;/a&gt; now supports &lt;a href=&quot;http://contactform7.com/&quot; target=&quot;_blank&quot;&gt;Contact Form 7&lt;/a&gt;. You can download version 1.4.0 at the &lt;a href=&quot;https://wordpress.org/plugins/openpgp-form-encryption/&quot; target=&quot;_blank&quot;&gt;WordPress plugin site&lt;/a&gt; and start using a safer contact form on your website today!&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>Pono Rez WordPress Plugin</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2016/01/pono-rez-wordpress-plugin/" rel="alternate" type="text/html" title="Pono Rez WordPress Plugin" />
        <updated>2016-01-18T17:52:32+00:00</updated>
        <id>https://arnesonium.com/2016/01/pono-rez-wordpress-plugin</id>
          <category term="javascript" />
        
          <category term="php" />
        
          <category term="programming" />
        
          <category term="web-development" />
        
          <category term="wordpress" />
        <content type="html" xml:base="https://arnesonium.com/2016/01/pono-rez-wordpress-plugin/">&lt;p&gt;Together with &lt;a href=&quot;http://www.commercecollective.com/&quot; target=&quot;_blank&quot;&gt;Commerce Collective&lt;/a&gt;, ((I started working with them last year, &lt;a href=&quot;https://arnesonium.com/2015/05/now-working-with-commercecollective/&quot;&gt;remember&lt;/a&gt;?)) we have built a WordPress plugin to allow &lt;a href=&quot;http://www.a3h.org/&quot; target=&quot;_blank&quot;&gt;Activities &amp;amp; Attractions Association of Hawaii&lt;/a&gt; (A3H) to quickly and easily integrate activity bookings and sales into their WordPress websites.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;We still have more features to add to the plugin, but it’s a solid start that will save A3H members a lot of time. It is written in PHP ((Like all WordPress plugins, of course.)) and JavaScript, and uses the Pono Rez SOAP interface to integrate activity data into a WordPress page.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://wordpress.org/plugins/a3h-pono-rez-activities-and-booking/&quot; target=&quot;_blank&quot;&gt;Check out the plugin page here!&lt;/a&gt;&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>CenturyLink AppFog Tutorial</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2016/01/centurylink-appfog-tutorial/" rel="alternate" type="text/html" title="CenturyLink AppFog Tutorial" />
        <updated>2016-01-15T17:26:41+00:00</updated>
        <id>https://arnesonium.com/2016/01/centurylink-appfog-tutorial</id>
          <category term="appfog" />
        
          <category term="centurylink-cloud" />
        
          <category term="cloud-computing" />
        
          <category term="cloudfoundry" />
        
          <category term="javascript" />
        
          <category term="node-js" />
        
          <category term="programming" />
        
          <category term="web-development" />
        
          <category term="writing" />
        <content type="html" xml:base="https://arnesonium.com/2016/01/centurylink-appfog-tutorial/">&lt;p&gt;Recently I wrote a tutorial with &lt;a href=&quot;http://wordlions.com/&quot; target=&quot;_blank&quot;&gt;Word Lions&lt;/a&gt; for &lt;a href=&quot;http://ctl.io/&quot; target=&quot;_blank&quot;&gt;CenturyLink Cloud&lt;/a&gt; that teaches how to build and deploy a Node.js application to CenturyLink AppFog. The tutorial and application were really fun to build and write. It was my first Node.js project, and my first experience with CloudFoundry. The tutorial uses the following CenturyLink Cloud products:
&lt;!--more--&gt;&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.ctl.io/appfog/&quot;&gt;AppFog&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.ctl.io/orchestrate/&quot;&gt;Orchestrate&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.ctl.io/object-storage/&quot;&gt;Object Storage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AppFog is CenturyLink Cloud’s CloudFoundry system. It is really powerful, and it appears to be more flexible than &lt;a href=&quot;https://arnesonium.com/tag/google-cloud/&quot;&gt;Google App Engine&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Read the Tutorial&lt;/h2&gt;

&lt;p&gt;The tutorial walks you through building a document storage system with a built-in PDF reader and comment storage. It also includes user authentication and some other neat Node.js tricks. You can follow the tutorial from the following links, which will include all of the information needed to get you up and running on AppFog with Node.js. Enjoy!&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.ctl.io/developers/blog/post/deploy-app-user-login&quot;&gt;Deploy an App With User Login&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.ctl.io/developers/blog/post/appfog-object-storage&quot;&gt;Using CenturyLink Cloud for Object Storage&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.ctl.io/developers/blog/post/search-document-metadata&quot;&gt;Add Search Capabilities with Orchestrate&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.ctl.io/developers/blog/post/document-review-comment&quot;&gt;Building a PDF Viewer and Comment System&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content>
      </entry>
    
      <entry>
        
        <title>Link Rodeo: Go Package Management and Boring Technology</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2015/04/link-rodeo-go-package-management-and-boring-technology/" rel="alternate" type="text/html" title="Link Rodeo: Go Package Management and Boring Technology" />
        <updated>2015-04-06T15:47:00+00:00</updated>
        <id>https://arnesonium.com/2015/04/link-rodeo-go-package-management-and-boring-technology</id>
          <category term="best-practices" />
        
          <category term="golang" />
        
          <category term="javascript" />
        
          <category term="management" />
        
          <category term="node-js" />
        
          <category term="ocaml" />
        
          <category term="programming" />
        <content type="html" xml:base="https://arnesonium.com/2015/04/link-rodeo-go-package-management-and-boring-technology/">&lt;p&gt;Here are a number of interesting topics for you to think about this week.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;I’ve been learning the &lt;a href=&quot;http://arnesonium.com/tag/golang/&quot; title=&quot;Go language&quot;&gt;Go programming language&lt;/a&gt; recently, and in the process I’ve been having conversations about it with friends and colleagues. Go has a unique package management system that has already caused me a number of headaches. The recommended method for taking care of package dependencies is lacking, at best. Over at Nerdbucket, my buddy Nerdmaster has written &lt;a href=&quot;http://blog.nerdbucket.com/go-dependency-freezing/article&quot; title=&quot;Go Dependency Freezing at Nerdbucket&quot; target=&quot;_blank&quot;&gt;a thoughtful piece about it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;While I’m talking about new technology, I’d also like to contradict myself by agreeing with Dan McKinley’s great piece, &lt;a href=&quot;http://mcfunley.com/choose-boring-technology&quot; title=&quot;Choose Boring Technology by Dan McKinley&quot; target=&quot;_blank&quot;&gt;“Choose Boring Technology.”&lt;/a&gt; He argues that a project should be careful about adopting lots of new tools and technologies. It reminds me of a time recently when I was looking for a Node.js programmer, and one of the replies I got back was, “For us, Node.js is glue. Its ecosystem is still too young to support anything long-term. Libraries and packages move too fast to build a product that will need actual maintenance.” I’ve had the same feeling about many technologies I’ve wanted to try, such as &lt;a href=&quot;http://ocsigen.org/&quot; title=&quot;Ocsigen&quot; target=&quot;_blank&quot;&gt;Ocsigen for OCaml&lt;/a&gt;, which has a build system and API that is always several steps ahead of its documentation.&lt;/p&gt;

&lt;p&gt;&lt;small&gt;&lt;em&gt;This post’s featured photo is courtesy of Flickr user &lt;a href=&quot;https://www.flickr.com/photos/municipiopinas/8161449094/&quot; target=&quot;_blank&quot;&gt;MunicipioPinas&lt;/a&gt;.&lt;/em&gt;&lt;/small&gt;&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>Don&apos;t Modify the Clipboard with JavaScript</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2015/03/dont-modify-the-clipboard-with-javascript/" rel="alternate" type="text/html" title="Don't Modify the Clipboard with JavaScript" />
        <updated>2015-03-02T16:42:53+00:00</updated>
        <id>https://arnesonium.com/2015/03/dont-modify-the-clipboard-with-javascript</id>
          <category term="best-practices" />
        
          <category term="javascript" />
        
          <category term="programming" />
        
          <category term="web-design" />
        
          <category term="web-development" />
        <content type="html" xml:base="https://arnesonium.com/2015/03/dont-modify-the-clipboard-with-javascript/">&lt;p&gt;Recently, I was reading an article about a newly published book that I’m interested in. However, the article didn’t include a link to the book, so I copied the title by highlighting it with the mouse and hitting ‘Ctrl-C’, and opened a new browser tab to do a search. However, upon pasting, I saw the book title along with an annoying addition: “To read more, visit our website at [redacted].”&lt;/p&gt;

&lt;p&gt;This sort of website behavior is not okay.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://arnesonium.com/wp-content/uploads/2015/02/3429454121_9a93f53855_o-300x200.jpg#right&quot; alt=&quot;3429454121_9a93f53855_o&quot; width=&quot;300&quot; height=&quot;200&quot; class=&quot;alignright size-medium wp-image-309&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’ve seen the behavior on a number of websites, and it is among my least favorite trends in web development. The user is probably using his clipboard for one of two reasons. First, the website has a UX problem, and it has neglected to link to something important. Second, the user needs the text either for a quote, or to look up an unrelated term. For instance, this sentence has the word “bucolic” in it, and that’s an uncommon word that you might want to look up.&lt;/p&gt;

&lt;p&gt;But you can’t easily, because I’ve included JavaScript on this page that modifies your copy buffer. Do you see how annoying that is? Please don’t go mucking about in your users’ copy buffers.&lt;/p&gt;

&lt;p&gt;If you want to see what happens when you try to copy and paste on this page, highlight some text on the page and hit ‘Ctrl-C’ (or ‘Cmd-C’ for OS X users). Then go to the handy text area below and paste with ‘Ctrl-V’.&lt;/p&gt;

&lt;textarea style=&quot;width:100%&quot;&gt;&lt;/textarea&gt;

&lt;p&gt;That’s really obnoxious, isn’t it?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post was updated in 2022 to use Jekyll to load custom JavaScript instead of a custom WordPress plugin.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;small&gt;&lt;em&gt;The image for this post comes from &lt;a href=&quot;https://www.flickr.com/photos/shimelle/&quot; target=&quot;_blank&quot;&gt;Flickr user Shimelle Laine&lt;/a&gt;.&lt;/em&gt;&lt;/small&gt;&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>Pansophie Online Color Test</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2015/02/pansophie-online-color-test/" rel="alternate" type="text/html" title="Pansophie Online Color Test" />
        <updated>2015-02-23T16:46:52+00:00</updated>
        <id>https://arnesonium.com/2015/02/pansophie-online-color-test</id>
          <category term="javascript" />
        
          <category term="jquery" />
        
          <category term="php" />
        
          <category term="programming" />
        
          <category term="web-design" />
        
          <category term="web-development" />
        
          <category term="zend-framework" />
        <content type="html" xml:base="https://arnesonium.com/2015/02/pansophie-online-color-test/">&lt;p&gt;&lt;a href=&quot;http://eyesandedge.com/pansophie/&quot; target=&quot;_blank&quot;&gt;Pansophie Personality and Color&lt;/a&gt; is focused on mapping personalities to colors. Alexandra Hall wanted an online testing platform with flexible questions, testing mechanisms, and report generation. I built a full-featured web application to meet Pansophie PC’s requirements. This was one of my early Zend Framework projects, but it ended up with some neat features.
&lt;!--more--&gt;&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;A private administrative interface&lt;/li&gt;
	&lt;li&gt;Seamless jQuery-backed test interface with few pageloads&lt;/li&gt;
	&lt;li&gt;Custom PDF reports, generated on the fly&lt;/li&gt;
	&lt;li&gt;A customer database with contact information&lt;/li&gt;
	&lt;li&gt;API endpoints for test generation&lt;/li&gt;
	&lt;li&gt;Integration with 3rd party e-commerce system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pansopie PC isn’t currently doing business.&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>How to Test Your Frontend Against Internet Explorer Without Booting Windows</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2015/02/test-internet-explorer-without-booting-windows/" rel="alternate" type="text/html" title="How to Test Your Frontend Against Internet Explorer Without Booting Windows" />
        <updated>2015-02-11T19:15:26+00:00</updated>
        <id>https://arnesonium.com/2015/02/test-internet-explorer-without-booting-windows</id>
          <category term="debugging" />
        
          <category term="epub" />
        
          <category term="internet-explorer" />
        
          <category term="javascript" />
        
          <category term="programming" />
        
          <category term="testing" />
        
          <category term="web-development" />
        
          <category term="windows" />
        <content type="html" xml:base="https://arnesonium.com/2015/02/test-internet-explorer-without-booting-windows/">&lt;p&gt;Internet Explorer (IE) has been frustrating me. I want to use stronger words than that, but it would be unprofessional.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;I recently launched 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;, which uses EPUB.js and an implementation of XPath that, for some strange reason, isn’t available in IE. I found a few solutions which would work, but all of them require testing in IE. Of course.&lt;/p&gt;

&lt;p&gt;This seems like it wouldn’t be a problem, except that I run Linux all the time. All of my work happens on the Linux side of things, so booting into Windows just to run IE for one tiny bug fix is an inconvenience and a chore.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;A friend of mine pointed me to &lt;a href=&quot;https://www.modern.ie/&quot; title=&quot;modern.IE: Virtual Machines for running Internet Explorer&quot; target=&quot;_blank&quot;&gt;modern.IE&lt;/a&gt;. Microsoft has graciously released virtual machines usable under MacOS and Linux for running IE and testing. Be warned, however, that the license only lasts 90 days.&lt;/p&gt;

&lt;p&gt;I downloaded the 3.5GB virtual machine image and loaded it up in VirtualBox. This might be unusual, but I don’t do a lot of work with virtual machines on my development box. I was immediately greeted with this:
[caption id=”attachment_269” align=”aligncenter” width=”530”]&lt;img src=&quot;http://arnesonium.com/wp-content/uploads/2015/02/Screenshot-from-2015-02-11-094245.png&quot; alt=&quot;Don&amp;#039;t worry, the loading time was a lie. It only took 5 minutes.&quot; width=&quot;530&quot; height=&quot;423&quot; class=&quot;size-full wp-image-269&quot; /&gt; Don’t worry, the loading time was a lie. It only took 5 minutes.[/caption]&lt;/p&gt;

&lt;p&gt;This solution is not the best for my setup. My computer is getting long in the tooth, so VirtualBox runs neither quickly nor smoothly. However, in this situation, I only needed to test a few lines of code, so it worked.&lt;/p&gt;

&lt;p&gt;In my next blog post, which should be coming out shortly, I’ll talk about how I got the &lt;em&gt;Philalethes E-Bulletin&lt;/em&gt; Online Reader working for IE.&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>Hypothes.is Web Annotation Tool</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2015/01/hypothes-is-web-annotation-tool/" rel="alternate" type="text/html" title="Hypothes.is Web Annotation Tool" />
        <updated>2015-01-14T23:38:13+00:00</updated>
        <id>https://arnesonium.com/2015/01/hypothes-is-web-annotation-tool</id>
          <category term="javascript" />
        
          <category term="programming" />
        
          <category term="tools" />
        
          <category term="web-development" />
        <content type="html" xml:base="https://arnesonium.com/2015/01/hypothes-is-web-annotation-tool/">&lt;p&gt;While working on the &lt;a title=&quot;Philalethes E-Bulletin Online Reader&quot; href=&quot;/2015/01/philalethes-e-bulletin-online-reader/&quot;&gt;&lt;em&gt;Philalethes E-Bulletin&lt;/em&gt; Online Reader&lt;/a&gt;, I came across a useful web-based annotation tool called &lt;a title=&quot;Hypothes.is: The Web, Annotated&quot; href=&quot;http://hypothes.is/&quot; target=&quot;_blank&quot;&gt;Hypothes.is&lt;/a&gt;. It’s worth checking out. The tool uses a browser plugin to provide a number of cool features.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://hypothes.is/&quot;&gt;&lt;img src=&quot;/wp-content/uploads/2015/01/hypothelogo_light2.png#right&quot; alt=&quot;Hypothes.is Logo&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Annotation&lt;/li&gt;
	&lt;li&gt;Discussion&lt;/li&gt;
	&lt;li&gt;Tagging&lt;/li&gt;
	&lt;li&gt;Sharing&lt;/li&gt;
	&lt;li&gt;Privacy Control&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It also provides an &lt;a title=&quot;Hypothes.is annotation stream&quot; href=&quot;https://hypothes.is/stream&quot; target=&quot;_blank&quot;&gt;annotation stream&lt;/a&gt; that allows you to view public annotations as they’re being made all over the web.&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>PunchlinePDX Event Manager</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2014/12/punchlinepdx-event-manager/" rel="alternate" type="text/html" title="PunchlinePDX Event Manager" />
        <updated>2014-12-08T17:23:17+00:00</updated>
        <id>https://arnesonium.com/2014/12/punchlinepdx-event-manager</id>
          <category term="database" />
        
          <category term="javascript" />
        
          <category term="php" />
        
          <category term="programming" />
        
          <category term="web-development" />
        <content type="html" xml:base="https://arnesonium.com/2014/12/punchlinepdx-event-manager/">&lt;p&gt;&lt;a href=&quot;http://www.punchlinepdx.com/&quot;&gt;PunchlinePDX&lt;/a&gt; is a slow-motion video booth for events and parties based out of Portland, Oregon. Earlier this year, I helped them develop event management software that would allow them to upload and curate video.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;This was their first experience hiring a software developer, so I had the opportunity to walk them through the entire process. We started by outlining requirements and coming up with a solid plan with application screens, functions, and things to meet their business needs. We then brainstormed additional features and came up with something pretty amazing.&lt;/p&gt;

&lt;p&gt;These are a few of the interesting things we came up with:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Cloud-backed storage for all videos&lt;/li&gt;
    &lt;li&gt;Text messaging interface&lt;/li&gt;
    &lt;li&gt;Smart social media sharing&lt;/li&gt;
    &lt;li&gt;Contact management&lt;/li&gt;
    &lt;li&gt;Event and sharing privacy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The best part was the testing process. While I ran them through their new software, they made slow-motion video of me and used the software to upload and manage it. Check it out!&lt;/p&gt;

&lt;video controls=&quot;&quot; autoplay=&quot;&quot; loop=&quot;&quot; style=&quot;width:98%&quot; poster=&quot;https://punchline-staging.s3.amazonaws.com/event-5-video-14.jpg&quot;&gt;
   &lt;source src=&quot;https://punchline-staging.s3.amazonaws.com/event-5-video-14.mp4&quot; type=&quot;video/mp4&quot; /&gt;
   Your browser does not support the video tag.
&lt;/video&gt;

&lt;p&gt;&lt;strong&gt;You should seriously consider booking these guys for your holiday party.&lt;/strong&gt;&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>OpenPGP.js and WordPress</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2014/12/openpgp-js-and-wordpress/" rel="alternate" type="text/html" title="OpenPGP.js and WordPress" />
        <updated>2014-12-03T16:14:51+00:00</updated>
        <id>https://arnesonium.com/2014/12/openpgp-js-and-wordpress</id>
          <category term="javascript" />
        
          <category term="php" />
        
          <category term="plugin" />
        
          <category term="wordpress" />
        <content type="html" xml:base="https://arnesonium.com/2014/12/openpgp-js-and-wordpress/">&lt;p&gt;Near the end of November, I began fiddling with &lt;a href=&quot;http://openpgpjs.org/&quot; target=&quot;_blank&quot;&gt;OpenPGP.js&lt;/a&gt; and building a WordPress plugin. My goal is to create a method by which visitors can encrypt messages to me on my &lt;a href=&quot;http://arnesonium.com/contact/&quot; title=&quot;Contact&quot;&gt;Contact page&lt;/a&gt; using my public key.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;I finished up a pretty simple little plugin. You can &lt;a href=&quot;http://arnesonium.com/wordpress-openpgp/&quot; title=&quot;OpenPGP Form Encryption for WordPress&quot;&gt;view the details here&lt;/a&gt; or head straight to the &lt;a href=&quot;https://github.com/pymander/wordpress-openpgp&quot;&gt;GitHub project page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;However, when I finished earlier this week and decided to submit it to the WordPress Plugin Directory, I found that somebody had beat me to it by almost a month. I’ve taken a look at the code and it looks pretty good. You can check out my plugin, which was published as &lt;a href=&quot;https://wordpress.org/plugins/openpgp-form-encryption/&quot; target=&quot;_blank&quot;&gt;OpenPGP Form Encryption for Wordpress&lt;/a&gt;, and you can check out the other guy’s plugin, &lt;a href=&quot;https://wordpress.org/plugins/pgp-contact/&quot; target=&quot;_blank&quot;&gt;PGP Contact plugin&lt;/a&gt;.&lt;/p&gt;</content>
      </entry>
    
      <entry>
        
        <title>Website: Bruno San Rafael&apos;s Home for Former Trapeze</title>
        <author>
          <name>Erik L. Arneson</name>
        </author>        
        <link href="https://arnesonium.com/2014/11/website-bruno-san-rafaels-home-for-former-trapeze/" rel="alternate" type="text/html" title="Website: Bruno San Rafael's Home for Former Trapeze" />
        <updated>2014-11-24T17:29:56+00:00</updated>
        <id>https://arnesonium.com/2014/11/website-bruno-san-rafaels-home-for-former-trapeze</id>
          <category term="html" />
        
          <category term="javascript" />
        
          <category term="programming" />
        
          <category term="web-development" />
        
          <category term="portfolio" />
        <content type="html" xml:base="https://arnesonium.com/2014/11/website-bruno-san-rafaels-home-for-former-trapeze/">&lt;p&gt;Back in 2012, I had the pleasure of working with my good friend Joel Barker on his amazing project, &lt;a href=&quot;http://brunosanrafael.com/&quot;&gt;Bruno San Rafael’s Home for Former Trapeze&lt;/a&gt;. This project is a collaboration between Joel, a bunch of musicians, a photographer, and a web developer (me!). My contribution was probably the smallest of the bunch, but it was a lot of fun.
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;Please check out the website by clicking on the screenshot below. If you use “View Source” in your browser, you can see every line of code I used to finish the site. It’s one simple, medium-length monolithic HTML file with JavaScript and CSS thrown in.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://brunosanrafael.com/&quot; target=&quot;_blank&quot;&gt;&lt;img class=&quot;aligncenter size-large wp-image-60&quot; src=&quot;/wp-content/uploads/2014/11/Screenshot-from-2014-11-13-092922-1024x499.png&quot; alt=&quot;Bruno San Rafael&quot; width=&quot;580&quot; height=&quot;282&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I now work with Joel regularly at &lt;a href=&quot;http://www.wordlions.com/&quot;&gt;Word Lions&lt;/a&gt;, where I write and do a little more website development.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;</content>
      </entry>
    
</feed>
