<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.0.0">Jekyll</generator><link href="https://www.benjaminrose.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.benjaminrose.com/" rel="alternate" type="text/html" /><updated>2025-11-04T22:32:35-07:00</updated><id>https://www.benjaminrose.com/feed.xml</id><title type="html">BenjaminRose.com</title><subtitle>Benjamin Rose is a writer of fantasy, a gamer who loves tabletop RPGs and Minecraft, a fan of progressive and symphonic metal, and a historical fencing enthusiast.
</subtitle><author><name>Benjamin Rose</name><email>daeruin@benjaminrose.com</email></author><entry><title type="html">Migrating from Wordpress to Jekyll, Part 2 (The Lost Draft)</title><link href="https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-2-the-lost-draft" rel="alternate" type="text/html" title="Migrating from Wordpress to Jekyll, Part 2 (The Lost Draft)" /><published>2020-06-28T20:22:38-06:00</published><updated>2020-06-28T20:22:38-06:00</updated><id>https://www.benjaminrose.com/post/migrating-from-wordpress-to-jekyll-part-2-the-lost-draft</id><content type="html" xml:base="https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-2-the-lost-draft">&lt;p&gt;The lost draft has been found! I was recently revamping how I backup my data and randomly ran across a text file in a weird place. It was the draft of part two of my series on migrating from Wordpress to Jekyll!&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-1&quot;&gt;first post in this series&lt;/a&gt; talked about backing up the old Wordpress site, exporting the site data for Jekyll, installing Jekyll and choosing a theme, putting together the new site, and hosting the content on Netlify. This post talks about cleaning up the exported content, improving my chosen Jekyll theme, porting my blog’s comments to the new site, and getting email service set up.&lt;/p&gt;

&lt;h2 id=&quot;cleaning-up-the-content&quot;&gt;Cleaning up the content&lt;/h2&gt;

&lt;p&gt;The Markdown files that I exported from Wordpress (see previous article for more) were very messy. I set about the time-consuming task of cleaning them up. Here are some of the problems I encountered.&lt;/p&gt;

&lt;h3 id=&quot;issues-with-images&quot;&gt;Issues with images&lt;/h3&gt;

&lt;p&gt;The most problems by far were caused by images.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;In the exported content, many of my image references ended up pointing to URLs at Wordpress’s CDN, for example &lt;code class=&quot;highlighter-rouge&quot;&gt;src=&quot;https://i2.wp.com/www.benjaminrose.com/...&quot;&lt;/code&gt; I didn’t know if my images would persist there after shutting down my Wordpress site, and I didn’t want to rely on anything related to Wordpress anyway. I had to change all these URLs to point to my site’s local image directory instead.&lt;/li&gt;
  &lt;li&gt;Many image references used &lt;code class=&quot;highlighter-rouge&quot;&gt;srcset&lt;/code&gt; attributes to load different images sizes responsively. My image downloads, described in the prior post, also included all these different images sizes. I removed the &lt;code class=&quot;highlighter-rouge&quot;&gt;srcset&lt;/code&gt; attributes and kept just one size for each image (I backed up the other image sizes, just in case). I may look into ways to make my images more responsive at some point.&lt;/li&gt;
  &lt;li&gt;When I was using Wordpress, I used lots of &lt;a href=&quot;https://codeburst.io/hotlinking-fef83c9a7518&quot;&gt;hot links&lt;/a&gt; to images. Hot linking is kind of like stealing other people’s bandwidth, and the links can always break without you knowing. So I wanted to reduce the amount of hot linking I had. I spent a lot of time finding replacement images that were free so I could have them as part of my own site. In other cases I just removed the image completely.&lt;/li&gt;
  &lt;li&gt;Images that I downloaded from my old site were in an annoying folder hierarchy based on dates. I hated it. Images were hard to find, and the source links were long and hard to read. As I already mentioned above, I ended up moving all my images into a single folder. I also renamed many of them with more descriptive names. This affected every single image reference on my site.&lt;/li&gt;
  &lt;li&gt;In some cases, I had used image captions on my Wordpress site. There’s not a great way to handle captions in Markdown. I found some &lt;a href=&quot;https://stackoverflow.com/questions/19331362/using-an-image-caption-in-markdown-jekyll&quot;&gt;good information&lt;/a&gt; online and eventually settled on using Liquid to call an “include” template that contained HTML &lt;code class=&quot;highlighter-rouge&quot;&gt;figure&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;figcaption&lt;/code&gt; elements. These image references took major reworking to get into the new Liquid format.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All these issues meant that I eventually changed every image reference on my entire site, not to mention resizing and renaming many images and sourcing a bunch of completely new ones. This was a huge time sink. It was definitely the hardest part about this conversion process.&lt;/p&gt;

&lt;p&gt;If your site uses lots of images, you’d best give a hard think to how you’re going to handle them. Perhaps there are ways to clean up the image references beforehand to avoid some of the pain I went through. See below for some specific notes on how I transformed all my image references.&lt;/p&gt;

&lt;h3 id=&quot;other-issues&quot;&gt;Other issues&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;My blog posts and pages were absolutely riddled with HTML. In a way, that’s not really a problem since HTML is considered a native part of the Markdown format and is a perfectly acceptable way to represent content when using Jekyll. All of the HTML seemed to function fine. But the source content was super ugly and difficult to parse for the human eye. I wanted to use regular Markdown as much as possible and make my content easy to comprehend in its native format.&lt;/li&gt;
  &lt;li&gt;The Wordpress exporter put a front matter item for related posts in every blog post file. I’m not sure if this was because I left my Wordpress plugin for related posts active when I did the export, or if the plugin had done something to my Wordpress database or site content that the exporter seized on and decided to include. The front matter item the exporter created was super ugly, and I decided to attempt handling related posts another way (eventually). There were also some other random-seeming front matter elements, probably from some Wordpress plugin or another. So I pruned out all those extraneous front matter elements.&lt;/li&gt;
  &lt;li&gt;Netlify offers free security certificates, and I wanted to take advantage of that. But the first time I built my site on Netlify, I got a warning about mixed insecure content. I found out that I had embedded many Youtube videos using the &lt;code class=&quot;highlighter-rouge&quot;&gt;http&lt;/code&gt; protocol. So I had to change all those to &lt;code class=&quot;highlighter-rouge&quot;&gt;https&lt;/code&gt;. There was some other insecure content—I think it was some image hot links. Dealing with that was frustrating and time consuming, but I’m glad I have that security certificate. I always suspected that not having a security certificate was causing me to lose traffic.&lt;/li&gt;
  &lt;li&gt;One thing I liked about Wordpress is that it automatically used curly quotes. But this caused the export to use HTML entities for every quotation mark and apostrophe. I don’t like how this looks in the source, and I didn’t want to have to type ridiculous HTML entities every time I need an apostrophe. So I replaced all the HTML entities with dumb quotes. Thankfully, I discovered that my new site still ends up with curly quotes! At some point I figured out how, but I can’t remember now. Probably some CSS magic.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There were probably other issues that I’m not remembering now. Two months is a long time to remember such details. Since I lost this draft for several months after that, there’s no way I’ll remember any additional problems, if there were any.&lt;/p&gt;

&lt;h3 id=&quot;fixing-the-issues&quot;&gt;Fixing the issues&lt;/h3&gt;

&lt;p&gt;I was able to fix a lot of these issues relatively fast by using multi-file search-and-replace with grep. I use BBEdit as my main text editor. Thankfully I’ve had some exposure to regular expressions in the past, and I’m a fairly quick study. If you don’t have any experience with regular expressions, now might be a good time to learn, otherwise you might have to do a ton of manual work.&lt;/p&gt;

&lt;p&gt;Regular expressions/grep can be tricky, though. I actually had to start over from scratch one time, because I messed up my files so badly with a malformed regular expression. When you’re doing a multi-file search-and-replace, there’s no undo! I learned to make most changes one file at a time, even though it took longer, just to be safe.&lt;/p&gt;

&lt;h2 id=&quot;improvingtweaking-the-jekyll-theme&quot;&gt;Improving/tweaking the Jekyll theme&lt;/h2&gt;

&lt;p&gt;I liked the TeXt theme a lot, but I’m pretty particular and wanted to make some changes.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;First on my list was to change the font. I love a good font. One of my standbys has been Lato, but I’m kind of tired of it by now. I spent a couple days worth of my little free time just playing around with fonts. I eventually settled on Source Sans Pro. It’s very simple, spacious, and easy to read. It’s a Google font, so it’s easy to import in your CSS.&lt;/li&gt;
  &lt;li&gt;I really wanted the header and footer to be static, so they would sit still when scrolling the page content. I want my visitors to always be aware of what site they are on (static header) and have access to the sharing buttons (static footer), no matter where they are in one of my blog posts or pages. I had to do a little research on how to do that. There were some unexpected consequences of my initial change that I kept discovering later on that needed to be addressed. It was a little tricky to figure out. I’m sure someone more experienced with CSS could have done it much faster.&lt;/li&gt;
  &lt;li&gt;I made several other tweaks to the CSS, like increasing the indent for lists, changing the font weight for headings and links, adding styles for wrapping text around images, improving the table styles, etc.&lt;/li&gt;
  &lt;li&gt;The TeXt theme came with a favicon for the theme. I’m not super particular about favicons, but I sure as heck didn’t want to use my theme’s favicon on my personal website. I found a free favicon-maker site out there and made a simple one with my initials in a color that more or less matched the color scheme I had chosen for my site.&lt;/li&gt;
  &lt;li&gt;Initially I assumed I would be able to create some kind of top menu with drop-downs, like my old Wordpress site. However, my theme didn’t support that. But it did come with the ability to make custom sidebars. I ended up using that as navigation for my pages. It took a while to figure out. I’m pretty happy with the result, although it may be a little odd to get used to for visitors.&lt;/li&gt;
  &lt;li&gt;The TeXt theme comes with tons of support for tags, but I mostly used categories in Wordpress. So I had more posts with category front matter than with tags. There were several options to deal with this. The fastest probably would have been to just switch all my category front matter to tags. But something in me rebelled at this idea—my categories are actual categories, not just tags! So I updated a few of the theme’s page templates to refer to categories instead of tags. This required me to figure out some things about Jekyll inheritance and Liquid syntax.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;preserving-blog-comments&quot;&gt;Preserving blog comments&lt;/h2&gt;

&lt;p&gt;I had quite a few comments on my old blog posts. In my mind, the ability to comment on blog posts is part of the entire point of blogging. I want visitors to engage with my material, not just read it and disappear. And I had lots of old comments with great insight. I didn’t want to lose all that conversation. But static sites are, well, static. It’s hard to have dynamic commenting on a static site.&lt;/p&gt;

&lt;p&gt;There are various ways to have comments on a static site. Derek Kay does a great job of &lt;a href=&quot;https://darekkay.com/blog/static-site-comments/&quot;&gt;summarizing&lt;/a&gt; the various methods.&lt;/p&gt;

&lt;p&gt;After researching the options on Kay’s list, I choose to use Hyvor as an integrated third-party commenting system. Hyvor has a generous free tier for their service, prioritizes data privacy (visitors can comment anonymously), and makes it easy to export your comments if you want to move to another system. They also have a way to import comments from Wordpress. These were all big wins for me. The main disadvantage is that if I ever get really popular, I’ll have to upgrade to the paid tier, which is pretty expensive at $40 a month. But I don’t think that will ever happen for my small blog.&lt;/p&gt;

&lt;p&gt;Other options high up on my list were Disqus and CommentBox. I eliminated Disqus because their free tier shows ads by default. You can turn off the ads if you’re a small, private site. But I also read that Disqus has some pretty shifty ethics about data privacy. I eliminated CommentBox primarily because their free tier only allows 100 comments a month. I seldom get that many, but I did back in my heyday of blogging. I didn’t want to run into that limit.&lt;/p&gt;

&lt;p&gt;So I created a free account on Hyvor. The Jekyll theme I chose (TeXt) has built-in support for some commenting platforms—Disqus, Valine, and Gitalk. It also provides a convenient place to add other third-party commenting platforms. Following the installation instructions on Hyvor’s site, I copied the installation code for Jekyll sites that they provide and pasted it into my theme’s spot for third-party commenting platforms.&lt;/p&gt;

&lt;p&gt;Hyvor also has instructions for importing comments from Wordpress. I followed the instructions, but I ran into problems with the comments not appearing. After some troubleshooting, I discovered that I was following the wrong instructions, through no fault of my own. Whoever wrote Hyvor’s instructions for importing comments from Wordpress neglected to mention that the instructions assumed you are going to use Hyvor &lt;em&gt;on the Wordpress platform&lt;/em&gt; and simply want to replace Wordpress’s built-in commenting system with Hyvor.&lt;/p&gt;

&lt;p&gt;I’m not sure how I should have done it, but the result was that the comments that I imported were all associated with page IDs structured for Wordpress. Example ID:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;1502:http://www.benjaminrose.com/?p=1502&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Their default installation code for Jekyll wasn’t expecting the IDs to be structured that way. I solved this problem by editing the installation code to refer to these weird Wordpress IDs.&lt;/p&gt;

&lt;p&gt;`&amp;lt;div id=&quot;hyvor-talk-view&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/p&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
    var HYVOR_TALK_WEBSITE = 238; // DO NOT CHANGE THIS
    var HYVOR_TALK_CONFIG = {
        url: 'https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-2-the-lost-draft',
      // I had to add the if/else code here.
      // The default id assignment from Hyvor is in the &quot;else&quot; code.
      // But their import gave IDs like the &quot;if&quot; code.
      
        id: '/post/migrating-from-wordpress-to-jekyll-part-2-the-lost-draft' // For new posts made with Jekyll
      
    };
&lt;/script&gt;

&lt;script async=&quot;&quot; type=&quot;text/javascript&quot; src=&quot;//talk.hyvor.com/web-api/embed&quot;&gt;&lt;/script&gt;
&lt;p&gt;`&lt;/p&gt;

&lt;p&gt;In the process of figuring this out and doing all the troubleshooting, I ended up with a bunch of junk entries in Hyvor’s list of my site’s pages. Annoying, but not the end of the world. I did report this issue to Hyvor. I was really impressed with how quickly they responded. The link to the old instructions is currently gone, presumably under construction. &lt;a href=&quot;https://talk.hyvor.com/blog/migrate-from-wordpress-to-jekyll/&quot;&gt;Here is their article&lt;/a&gt; on migrating from Wordpress to Jekyll.&lt;/p&gt;

&lt;p&gt;At the end of the day, all the comments from my old Wordpress site now appear on the appropriate posts on my new Jekyll-based blog. I’m really happy I was able to make it work.&lt;/p&gt;

&lt;p&gt;It’s worth mentioning that the default styling of Hyvor’s commenting form doesn’t match my site. They have options to modify the styling of the forms, but I haven’t played with that yet. I also haven’t gotten any comments since I made the switch, so I have yet to see whether I will really like using Hyvor for comments.&lt;/p&gt;

&lt;p&gt;My main complaint about Hyvor so far is that their commenting form is massive. It takes up almost the entire screen. I would much prefer a minimalist form.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/hyvorcommentform.png&quot; alt=&quot;Hyvor's commenting form&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;getting-email-service&quot;&gt;Getting email service&lt;/h2&gt;

&lt;p&gt;One of the biggest disadvantages of switching to the free Netlify hosting service is that they don’t provide any email service. My old hosting service provided email addresses, and I’d used my primary email address for many years. I had also provided email addresses for my wife and some of the older kids as well. I didn’t want to go through the pain of starting up new email addresses and informing everybody under the sun of the change. We could never remember all the people and places where we had used our email addresses.&lt;/p&gt;

&lt;p&gt;In the end I decided to use &lt;a href=&quot;https://improvmx.com/&quot;&gt;ImprovMX&lt;/a&gt; as a forwarding service, with Gmail as my actual email provider. This way, people could still send email to my old email address, and it would be forwarded to my Gmail address. I already had an old Gmail address handy, but I had to create new Gmail addresses for my wife and two of the kids.&lt;/p&gt;

&lt;p&gt;I took a long time researching and learning about DNS and reading Netlify’s documentation before moving forward. I wanted to get this right, and I enjoyed learning about the arcane workings of email and DNS. In the end, the actual steps were pretty straightforward and easy.&lt;/p&gt;

&lt;p&gt;The first thing I did was import all my email into Gmail. There are lots of explanations of this process on the web. Here’s &lt;a href=&quot;https://www.howtogeek.com/436947/how-to-import-an-old-email-account-into-gmail/&quot;&gt;one from howtogeek.com&lt;/a&gt;. Then I used Gmail’s “check email from other accounts” to make sure all new incoming mail would make it into Gmail (this whole process took me several days, mainly because of how little free time I have).&lt;/p&gt;

&lt;p&gt;To use ImprovMX, I had to set up some DNS entries in Netlify’s DNS panel to forward email requests to ImprovMX’s email servers. Then in ImprovMX’s control panel, I told it which of my old domain’s email addresses should forward to which Gmail address.&lt;/p&gt;

&lt;p&gt;I’ve been very pleased with ImprovMX so far. The only snafu so far has been a false alarm where they sent me a message saying my emails were not forwarding, even though they still were.&lt;/p&gt;

&lt;p&gt;The final piece to this puzzle was setting up Gmail to send as my old email address. Gmail has instructions on how to do this. It was not difficult. I can even send email from my old address using Apple’s Mail program.&lt;/p&gt;

&lt;h2 id=&quot;the-end&quot;&gt;The end&lt;/h2&gt;

&lt;p&gt;That’s all I have to say. I think I had one more post in mind for this series, but as I’ve &lt;a href=&quot;https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-x&quot;&gt;mentioned&lt;/a&gt; before, it’s not going to happen. Too much time has passed.&lt;/p&gt;

&lt;p&gt;I do hope someone finds this post and gets some help from it. If that’s you, thanks so much for reading! Please leave a comment. :)&lt;/p&gt;</content><author><name>Ben</name></author><summary type="html">The lost draft has been found! I was recently revamping how I backup my data and randomly ran across a text file in a weird place. It was the draft of part two of my series on migrating from Wordpress to Jekyll! The first post in this series talked about backing up the old Wordpress site, exporting the site data for Jekyll, installing Jekyll and choosing a theme, putting together the new site, and hosting the content on Netlify. This post talks about cleaning up the exported content, improving my chosen Jekyll theme, porting my blog’s comments to the new site, and getting email service set up. Cleaning up the content The Markdown files that I exported from Wordpress (see previous article for more) were very messy. I set about the time-consuming task of cleaning them up. Here are some of the problems I encountered. Issues with images The most problems by far were caused by images. In the exported content, many of my image references ended up pointing to URLs at Wordpress’s CDN, for example src=&quot;https://i2.wp.com/www.benjaminrose.com/...&quot; I didn’t know if my images would persist there after shutting down my Wordpress site, and I didn’t want to rely on anything related to Wordpress anyway. I had to change all these URLs to point to my site’s local image directory instead. Many image references used srcset attributes to load different images sizes responsively. My image downloads, described in the prior post, also included all these different images sizes. I removed the srcset attributes and kept just one size for each image (I backed up the other image sizes, just in case). I may look into ways to make my images more responsive at some point. When I was using Wordpress, I used lots of hot links to images. Hot linking is kind of like stealing other people’s bandwidth, and the links can always break without you knowing. So I wanted to reduce the amount of hot linking I had. I spent a lot of time finding replacement images that were free so I could have them as part of my own site. In other cases I just removed the image completely. Images that I downloaded from my old site were in an annoying folder hierarchy based on dates. I hated it. Images were hard to find, and the source links were long and hard to read. As I already mentioned above, I ended up moving all my images into a single folder. I also renamed many of them with more descriptive names. This affected every single image reference on my site. In some cases, I had used image captions on my Wordpress site. There’s not a great way to handle captions in Markdown. I found some good information online and eventually settled on using Liquid to call an “include” template that contained HTML figure and figcaption elements. These image references took major reworking to get into the new Liquid format. All these issues meant that I eventually changed every image reference on my entire site, not to mention resizing and renaming many images and sourcing a bunch of completely new ones. This was a huge time sink. It was definitely the hardest part about this conversion process. If your site uses lots of images, you’d best give a hard think to how you’re going to handle them. Perhaps there are ways to clean up the image references beforehand to avoid some of the pain I went through. See below for some specific notes on how I transformed all my image references. Other issues My blog posts and pages were absolutely riddled with HTML. In a way, that’s not really a problem since HTML is considered a native part of the Markdown format and is a perfectly acceptable way to represent content when using Jekyll. All of the HTML seemed to function fine. But the source content was super ugly and difficult to parse for the human eye. I wanted to use regular Markdown as much as possible and make my content easy to comprehend in its native format. The Wordpress exporter put a front matter item for related posts in every blog post file. I’m not sure if this was because I left my Wordpress plugin for related posts active when I did the export, or if the plugin had done something to my Wordpress database or site content that the exporter seized on and decided to include. The front matter item the exporter created was super ugly, and I decided to attempt handling related posts another way (eventually). There were also some other random-seeming front matter elements, probably from some Wordpress plugin or another. So I pruned out all those extraneous front matter elements. Netlify offers free security certificates, and I wanted to take advantage of that. But the first time I built my site on Netlify, I got a warning about mixed insecure content. I found out that I had embedded many Youtube videos using the http protocol. So I had to change all those to https. There was some other insecure content—I think it was some image hot links. Dealing with that was frustrating and time consuming, but I’m glad I have that security certificate. I always suspected that not having a security certificate was causing me to lose traffic. One thing I liked about Wordpress is that it automatically used curly quotes. But this caused the export to use HTML entities for every quotation mark and apostrophe. I don’t like how this looks in the source, and I didn’t want to have to type ridiculous HTML entities every time I need an apostrophe. So I replaced all the HTML entities with dumb quotes. Thankfully, I discovered that my new site still ends up with curly quotes! At some point I figured out how, but I can’t remember now. Probably some CSS magic. There were probably other issues that I’m not remembering now. Two months is a long time to remember such details. Since I lost this draft for several months after that, there’s no way I’ll remember any additional problems, if there were any. Fixing the issues I was able to fix a lot of these issues relatively fast by using multi-file search-and-replace with grep. I use BBEdit as my main text editor. Thankfully I’ve had some exposure to regular expressions in the past, and I’m a fairly quick study. If you don’t have any experience with regular expressions, now might be a good time to learn, otherwise you might have to do a ton of manual work. Regular expressions/grep can be tricky, though. I actually had to start over from scratch one time, because I messed up my files so badly with a malformed regular expression. When you’re doing a multi-file search-and-replace, there’s no undo! I learned to make most changes one file at a time, even though it took longer, just to be safe. Improving/tweaking the Jekyll theme I liked the TeXt theme a lot, but I’m pretty particular and wanted to make some changes. First on my list was to change the font. I love a good font. One of my standbys has been Lato, but I’m kind of tired of it by now. I spent a couple days worth of my little free time just playing around with fonts. I eventually settled on Source Sans Pro. It’s very simple, spacious, and easy to read. It’s a Google font, so it’s easy to import in your CSS. I really wanted the header and footer to be static, so they would sit still when scrolling the page content. I want my visitors to always be aware of what site they are on (static header) and have access to the sharing buttons (static footer), no matter where they are in one of my blog posts or pages. I had to do a little research on how to do that. There were some unexpected consequences of my initial change that I kept discovering later on that needed to be addressed. It was a little tricky to figure out. I’m sure someone more experienced with CSS could have done it much faster. I made several other tweaks to the CSS, like increasing the indent for lists, changing the font weight for headings and links, adding styles for wrapping text around images, improving the table styles, etc. The TeXt theme came with a favicon for the theme. I’m not super particular about favicons, but I sure as heck didn’t want to use my theme’s favicon on my personal website. I found a free favicon-maker site out there and made a simple one with my initials in a color that more or less matched the color scheme I had chosen for my site. Initially I assumed I would be able to create some kind of top menu with drop-downs, like my old Wordpress site. However, my theme didn’t support that. But it did come with the ability to make custom sidebars. I ended up using that as navigation for my pages. It took a while to figure out. I’m pretty happy with the result, although it may be a little odd to get used to for visitors. The TeXt theme comes with tons of support for tags, but I mostly used categories in Wordpress. So I had more posts with category front matter than with tags. There were several options to deal with this. The fastest probably would have been to just switch all my category front matter to tags. But something in me rebelled at this idea—my categories are actual categories, not just tags! So I updated a few of the theme’s page templates to refer to categories instead of tags. This required me to figure out some things about Jekyll inheritance and Liquid syntax. Preserving blog comments I had quite a few comments on my old blog posts. In my mind, the ability to comment on blog posts is part of the entire point of blogging. I want visitors to engage with my material, not just read it and disappear. And I had lots of old comments with great insight. I didn’t want to lose all that conversation. But static sites are, well, static. It’s hard to have dynamic commenting on a static site. There are various ways to have comments on a static site. Derek Kay does a great job of summarizing the various methods. After researching the options on Kay’s list, I choose to use Hyvor as an integrated third-party commenting system. Hyvor has a generous free tier for their service, prioritizes data privacy (visitors can comment anonymously), and makes it easy to export your comments if you want to move to another system. They also have a way to import comments from Wordpress. These were all big wins for me. The main disadvantage is that if I ever get really popular, I’ll have to upgrade to the paid tier, which is pretty expensive at $40 a month. But I don’t think that will ever happen for my small blog. Other options high up on my list were Disqus and CommentBox. I eliminated Disqus because their free tier shows ads by default. You can turn off the ads if you’re a small, private site. But I also read that Disqus has some pretty shifty ethics about data privacy. I eliminated CommentBox primarily because their free tier only allows 100 comments a month. I seldom get that many, but I did back in my heyday of blogging. I didn’t want to run into that limit. So I created a free account on Hyvor. The Jekyll theme I chose (TeXt) has built-in support for some commenting platforms—Disqus, Valine, and Gitalk. It also provides a convenient place to add other third-party commenting platforms. Following the installation instructions on Hyvor’s site, I copied the installation code for Jekyll sites that they provide and pasted it into my theme’s spot for third-party commenting platforms. Hyvor also has instructions for importing comments from Wordpress. I followed the instructions, but I ran into problems with the comments not appearing. After some troubleshooting, I discovered that I was following the wrong instructions, through no fault of my own. Whoever wrote Hyvor’s instructions for importing comments from Wordpress neglected to mention that the instructions assumed you are going to use Hyvor on the Wordpress platform and simply want to replace Wordpress’s built-in commenting system with Hyvor. I’m not sure how I should have done it, but the result was that the comments that I imported were all associated with page IDs structured for Wordpress. Example ID: 1502:http://www.benjaminrose.com/?p=1502 Their default installation code for Jekyll wasn’t expecting the IDs to be structured that way. I solved this problem by editing the installation code to refer to these weird Wordpress IDs. `&amp;lt;div id=&quot;hyvor-talk-view&quot;&amp;gt;&amp;lt;/div&amp;gt; ` In the process of figuring this out and doing all the troubleshooting, I ended up with a bunch of junk entries in Hyvor’s list of my site’s pages. Annoying, but not the end of the world. I did report this issue to Hyvor. I was really impressed with how quickly they responded. The link to the old instructions is currently gone, presumably under construction. Here is their article on migrating from Wordpress to Jekyll. At the end of the day, all the comments from my old Wordpress site now appear on the appropriate posts on my new Jekyll-based blog. I’m really happy I was able to make it work. It’s worth mentioning that the default styling of Hyvor’s commenting form doesn’t match my site. They have options to modify the styling of the forms, but I haven’t played with that yet. I also haven’t gotten any comments since I made the switch, so I have yet to see whether I will really like using Hyvor for comments. My main complaint about Hyvor so far is that their commenting form is massive. It takes up almost the entire screen. I would much prefer a minimalist form. Getting email service One of the biggest disadvantages of switching to the free Netlify hosting service is that they don’t provide any email service. My old hosting service provided email addresses, and I’d used my primary email address for many years. I had also provided email addresses for my wife and some of the older kids as well. I didn’t want to go through the pain of starting up new email addresses and informing everybody under the sun of the change. We could never remember all the people and places where we had used our email addresses. In the end I decided to use ImprovMX as a forwarding service, with Gmail as my actual email provider. This way, people could still send email to my old email address, and it would be forwarded to my Gmail address. I already had an old Gmail address handy, but I had to create new Gmail addresses for my wife and two of the kids. I took a long time researching and learning about DNS and reading Netlify’s documentation before moving forward. I wanted to get this right, and I enjoyed learning about the arcane workings of email and DNS. In the end, the actual steps were pretty straightforward and easy. The first thing I did was import all my email into Gmail. There are lots of explanations of this process on the web. Here’s one from howtogeek.com. Then I used Gmail’s “check email from other accounts” to make sure all new incoming mail would make it into Gmail (this whole process took me several days, mainly because of how little free time I have). To use ImprovMX, I had to set up some DNS entries in Netlify’s DNS panel to forward email requests to ImprovMX’s email servers. Then in ImprovMX’s control panel, I told it which of my old domain’s email addresses should forward to which Gmail address. I’ve been very pleased with ImprovMX so far. The only snafu so far has been a false alarm where they sent me a message saying my emails were not forwarding, even though they still were. The final piece to this puzzle was setting up Gmail to send as my old email address. Gmail has instructions on how to do this. It was not difficult. I can even send email from my old address using Apple’s Mail program. The end That’s all I have to say. I think I had one more post in mind for this series, but as I’ve mentioned before, it’s not going to happen. Too much time has passed. I do hope someone finds this post and gets some help from it. If that’s you, thanks so much for reading! Please leave a comment. :)</summary></entry><entry><title type="html">Migration from Wordpress to Jekyll, Part X</title><link href="https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-x" rel="alternate" type="text/html" title="Migration from Wordpress to Jekyll, Part X" /><published>2020-06-06T00:27:09-06:00</published><updated>2020-06-06T00:27:09-06:00</updated><id>https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-x</id><content type="html" xml:base="https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-x">&lt;p&gt;Unfortunately, I’m not going to finish my planned series on migrating from Wordpress to Jekyll. I apologize and hope the first article is helpful to someone.&lt;/p&gt;

&lt;p&gt;About a month ago, the logic board on my personal computer bit the dust while I was in the middle of drafting the next article in the series. I didn’t realize how serious my computer’s problem was at the time; I just knew it was having trouble starting up.&lt;/p&gt;

&lt;p&gt;I spent a week trying dozens of things to get the computer to start up again. We were in the middle of the coronavirus lockdown, and most stores were closed, including the Apple Store. After another week or two, I finally found a store that was open to repair my computer—Expercom. Because the Apple Stores are still closed, Expercom was flooded with work, and it took them over a week to get my computer up and running.&lt;/p&gt;

&lt;p&gt;The unfinished draft of the next post was lost. It’s been a month since I worked on it, and over three months since I started migrating my website. I just don’t remember enough at this point to make the articles helpful, and my motivation is gone.&lt;/p&gt;

&lt;p&gt;Best of luck to you in your conversion efforts. It’s worthwhile, and I believe in you. :)&lt;/p&gt;</content><author><name>Ben</name></author><summary type="html">Unfortunately, I’m not going to finish my planned series on migrating from Wordpress to Jekyll. I apologize and hope the first article is helpful to someone. About a month ago, the logic board on my personal computer bit the dust while I was in the middle of drafting the next article in the series. I didn’t realize how serious my computer’s problem was at the time; I just knew it was having trouble starting up. I spent a week trying dozens of things to get the computer to start up again. We were in the middle of the coronavirus lockdown, and most stores were closed, including the Apple Store. After another week or two, I finally found a store that was open to repair my computer—Expercom. Because the Apple Stores are still closed, Expercom was flooded with work, and it took them over a week to get my computer up and running. The unfinished draft of the next post was lost. It’s been a month since I worked on it, and over three months since I started migrating my website. I just don’t remember enough at this point to make the articles helpful, and my motivation is gone. Best of luck to you in your conversion efforts. It’s worthwhile, and I believe in you. :)</summary></entry><entry><title type="html">Migration from Wordpress to Jekyll, Part 1</title><link href="https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-1" rel="alternate" type="text/html" title="Migration from Wordpress to Jekyll, Part 1" /><published>2020-04-26T23:48:51-06:00</published><updated>2020-04-26T23:48:51-06:00</updated><id>https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-1</id><content type="html" xml:base="https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-1">&lt;p&gt;It took me two months, but the migration of my website from Wordpress to Jekyll is finally done. Things look different now, but virtually all of my content made it through unscathed.&lt;/p&gt;

&lt;p&gt;I wanted to talk about what the process was like, problems I faced, and lessons I learned. There are &lt;a href=&quot;https://blog.webjeda.com/wordpress-to-jekyll-migration/&quot;&gt;several&lt;/a&gt; &lt;a href=&quot;https://www.davidebarranca.com/2019/03/migrating-from-wordpress-to-jekyll-on-netlify/&quot;&gt;other&lt;/a&gt; places on the Wide, Wide World o’ Web that provide more of a step-by-step or tutorial. I don’t want to recreate that. Instead, this will be a little bit more of a personal narrative, with many details about my decision-making process and challenges I overcame. Many of these details will fill in gaps that are glossed over by other explanations you will find. Hopefully my experience will make someone else’s process a little easier.&lt;/p&gt;

&lt;p&gt;This is part 1 of my migration process. This will cover backing up my Wordpress site, getting all the content out of it, installing Jekyll, and getting everything into Netlify.&lt;/p&gt;

&lt;h2 id=&quot;backing-everything-up&quot;&gt;Backing everything up&lt;/h2&gt;

&lt;p&gt;Before starting, I backed up my Wordpress site. I had some kind of backup plugin that I used to do a backup of my Wordpress database. I can’t remember what it was called, but there are many to choose from.&lt;/p&gt;

&lt;p&gt;Then I used Wordpress’s built-in functions to &lt;a href=&quot;https://wordpress.com/support/export/&quot;&gt;export&lt;/a&gt; all my posts. This turned out to be both a blessing and a curse later on. The blessing: I was able to use the same export file to get my blog comments onto my new Jekyll-based site. The curse: This method of importing comments was really meant for importing into another Wordpress site, which resulted in some weirdness and frustration.&lt;/p&gt;

&lt;h2 id=&quot;downloading-images&quot;&gt;Downloading images&lt;/h2&gt;

&lt;p&gt;I first used &lt;a href=&quot;https://meowapps.com/media-cleaner-tutorial/&quot;&gt;Media Cleaner&lt;/a&gt; from Meow Apps to purge all my unused images. Be careful with this. I ended up accidentally deleting the banner image from my home page. I was fine with this, because my banner image was from an artist on Deviant Art, and I had not asked permission to use it. I had always felt guilty about that, so deleting it was fine. The downside was that my site went without a banner image for two months.&lt;/p&gt;

&lt;p&gt;After deleting unused images, I downloaded the remaining images to my hard drive. If I remember right, I ended up doing this from my cPanel’s file manager. I ended up with a bunch of nested folders for each year, month, and day. In a later step, I eventually decided to move all images to one folder, giving them all names that made sense, and using a grep search in BBEdit to fix all the links.&lt;/p&gt;

&lt;p&gt;Dealing with images was a major pain and one of my least favorite parts of the whole process. I would recommend doing more research to see if you can find a way to get your images finalized without as much pain, or just reconcile yourself to the job ahead.&lt;/p&gt;

&lt;h2 id=&quot;exporting-content-from-wordpress&quot;&gt;Exporting content from Wordpress&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://ps.w.org/jekyll-exporter/assets/banner-772x250.png?rev=1043570&quot; alt=&quot;Jekyll Exporter Wordpress Plugin&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The next order of business was to export my blog posts and pages. Before doing that, I deactivated virtually all my Wordpress plugins, hoping that would make the exported content as clean as possible. I think there was only one or two plugins I left active.&lt;/p&gt;

&lt;p&gt;I think one plugin I left active was a plugin for tables. I was hoping the tables would come through intact, but they didn’t. I ended up having to recreate all my tables from scratch, which was not fun. Some tables I just gave up on and ended up presenting the contents in a more linear form.&lt;/p&gt;

&lt;p&gt;I had a few drafts sitting around that I had never finished. I quickly finished and published one of them and deleted several others. I left one that I was unsure about finishing.&lt;/p&gt;

&lt;p&gt;I then installed and used the &lt;a href=&quot;https://wordpress.org/plugins/jekyll-exporter/&quot;&gt;Jekyll Exporter&lt;/a&gt; plugin to export all my content into a Jekyll-based format. This gave me the following:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A &lt;code class=&quot;highlighter-rouge&quot;&gt;_posts&lt;/code&gt; folder with all my blog posts in Markdown format&lt;/li&gt;
  &lt;li&gt;A &lt;code class=&quot;highlighter-rouge&quot;&gt;_drafts&lt;/code&gt; folder with all my drafts in Markdown format&lt;/li&gt;
  &lt;li&gt;All my pages in Markdown, placed in folders using the menu structure I had defined in Wordpress&lt;/li&gt;
  &lt;li&gt;A &lt;code class=&quot;highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt; file with the URL and description of my site—I copied the description into the config file I got from my theme later on&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You should be aware that the Jekyll Exporter plugin hasn’t been updated for a while. Some people have been unable to get it to work at all. Others, like myself, got mixed results, as you’ll see later on.&lt;/p&gt;

&lt;h2 id=&quot;installing-jekyll&quot;&gt;Installing Jekyll&lt;/h2&gt;

&lt;p&gt;If you’ve never used Jekyll before, you’ll have to install it first. I had installed Jekyll before at work, back when I was studying it for potential use for a documentation website as part of my job. So I was familiar with the process. Back when I installed Jekyll on my work laptop, it was a major pain and took me almost an entire day. I can’t remember exactly what went wrong that time. But I came away knowing a few tricks.&lt;/p&gt;

&lt;p&gt;To run Jekyll, you will need &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt; first. I use Mac computers, which come with Ruby already installed, although not always the latest version. I chose to install the latest version this time.&lt;/p&gt;

&lt;p&gt;Ruby packages are called “gems.” Most gems are libraries, but some are full-on applications. Jekyll itself is a gem. However, before doing anything else, I immediately installed &lt;code class=&quot;highlighter-rouge&quot;&gt;rbenv&lt;/code&gt;, a Ruby gem that lets you manage and install different versions of Ruby.&lt;/p&gt;

&lt;p&gt;From there, I moved on to &lt;a href=&quot;https://jekyllrb.com/docs/installation/&quot;&gt;installing&lt;/a&gt; Jekyll. Thankfully, I didn’t run into any problems this time. Installing Jekyll on my personal iMac was a breeze.&lt;/p&gt;

&lt;h2 id=&quot;choosing-a-jekyll-theme&quot;&gt;Choosing a Jekyll theme&lt;/h2&gt;

&lt;p&gt;There are many ways to get a new Jekyll-based blog started. I think with Netlify, you can start one with just the click of a few buttons. I’ll explain how I did it. It may not have been the best way to do it.&lt;/p&gt;

&lt;p&gt;My first step was to choose a Jekyll theme. Jekyll is probably the most popular static site generator, so you can find themes all over the web. I used &lt;a href=&quot;https://jekyll-themes.com/&quot;&gt;https://jekyll-themes.com/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Before choosing any tool, it helps to make a list of requirements up front, so you know what you’re looking for and don’t get sucked into features you don’t really need. Some of the most important features to me were:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;responsive design&lt;/li&gt;
  &lt;li&gt;built-in search&lt;/li&gt;
  &lt;li&gt;built-in sidebars&lt;/li&gt;
  &lt;li&gt;support for social media sharing&lt;/li&gt;
  &lt;li&gt;support for third-party commenting systems&lt;/li&gt;
  &lt;li&gt;support for Google Analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of those would be impossible for me to do on my own, and others would take me forever. So I wanted a very robust theme out of the box.&lt;/p&gt;

&lt;p&gt;I chose the theme &lt;a href=&quot;https://jekyll-themes.com/text/&quot;&gt;TeXt&lt;/a&gt;, because it looked very polished and came with all the features above.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/TeXt-home.jpg&quot; alt=&quot;TeXt theme for Jekyll&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;putting-together-the-jekyll-site&quot;&gt;Putting together the Jekyll site&lt;/h2&gt;

&lt;p&gt;There are different ways to install Jekyll themes. Some are easier than others. There’s an explanation of the most common ways on the TeXt theme’s &lt;a href=&quot;https://tianqi.name/jekyll-TeXt-theme/docs/en/quick-start&quot;&gt;quick start page&lt;/a&gt;. Which method you use depends on your use case.&lt;/p&gt;

&lt;p&gt;I’m using Bitbucket instead of GitHub, so forking the theme was not an option for me. (My primary reason for using Bitbucket is that back when I was starting to learn programming, GitHub did not offer free private repositories, but Bitbucket did. I wanted to keep my blog source in the same place as my other programming projects. I think today you can host private repositories on GitHub for free.) I already knew I wanted to make changes to the theme, so I chose to download it. This gives me the freedom to change the theme however I want, but makes it harder to incorporate future improvements the original author may make to the theme.&lt;/p&gt;

&lt;p&gt;After downloading the theme, I unzipped it to the directory I was planning to use. Then I copied the Markdown files I had exported from Wordpress into the corresponding folders in the theme directory, replacing the placeholder content from the TeXt theme. My posts and pages were now in a Jekyll site directory.&lt;/p&gt;

&lt;p&gt;I had already installed git long ago. If you haven’t &lt;a href=&quot;https://www.atlassian.com/git/tutorials/install-git&quot;&gt;installed&lt;/a&gt; git yet, do that now. Since I already had git, I &lt;a href=&quot;https://www.atlassian.com/git/tutorials/setting-up-a-repository/git-init&quot;&gt;initialized&lt;/a&gt; git in the site directory on my computer, started a &lt;a href=&quot;https://confluence.atlassian.com/bitbucket/create-a-repository-800695642.html&quot;&gt;new repository&lt;/a&gt; in BitBucket, and &lt;a href=&quot;https://confluence.atlassian.com/bitbucket/push-versioned-code-to-an-empty-repository-877177145.html&quot;&gt;pushed the site up to the empty repo&lt;/a&gt;. I now had source control on my site.&lt;/p&gt;

&lt;h2 id=&quot;hosting-my-site-on-netlify&quot;&gt;Hosting my site on Netlify&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://www.netlify.com/img/press/logos/full-logo-light.png&quot; alt=&quot;Netlify logo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I already knew I wanted to use &lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify&lt;/a&gt;. I had researched them as part of a potential project at work. They offer free hosting for small websites. On their free plan, you only get one team member, limited bandwidth, limited build time, etc. But for a personal blog that doesn’t get major traffic, it’s perfectly sufficient. And Netlify is amazing for hosting static sites. There are other great hosting services you could use. Do the research and pick one. Or just go with Netlify.&lt;/p&gt;

&lt;p&gt;Once I created my Netlify account, I told them I was using Jekyll to build the site and pointed Netlify at the Bitbucket repository, and they hooked everything up almost instantly. It was almost disturbing to me how easy it was. Within a few minutes, my site was live on Netlify, pulling from Bitbucket and building automatically.&lt;/p&gt;

&lt;p&gt;Netlify gives your site a random identifier and uses that as a subdomain (randomIdentifier.netlify.com), so you can reach your site using that URL immediately. Most people will want a custom URL, and Netlify has everything you need to set that up.&lt;/p&gt;

&lt;h2 id=&quot;whats-next&quot;&gt;What’s next&lt;/h2&gt;

&lt;p&gt;Theoretically, my site was now live and potentially visible, but I had a lot of work to do to get my site into shape before truly unleashing it upon the world. I left my old Wordpress site active while I continued to work on my new, static site.&lt;/p&gt;

&lt;p&gt;The next post will discuss everything I did to clean up my old Wordpress content and modify my chosen Jekyll theme. That was the longest and hardest part of the process by far.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-2-the-lost-draft&quot;&gt;Migrating from Wordpress to Jekyll, Part 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Historical note: Due to a computer problem, described in &lt;a href=&quot;https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-x&quot;&gt;another blog post&lt;/a&gt;, I thought I lost part 2 and gave up on it for a time. I eventually found the draft of part 2 and published it.&lt;/p&gt;</content><author><name>Ben</name></author><summary type="html">It took me two months, but the migration of my website from Wordpress to Jekyll is finally done. Things look different now, but virtually all of my content made it through unscathed. I wanted to talk about what the process was like, problems I faced, and lessons I learned. There are several other places on the Wide, Wide World o’ Web that provide more of a step-by-step or tutorial. I don’t want to recreate that. Instead, this will be a little bit more of a personal narrative, with many details about my decision-making process and challenges I overcame. Many of these details will fill in gaps that are glossed over by other explanations you will find. Hopefully my experience will make someone else’s process a little easier. This is part 1 of my migration process. This will cover backing up my Wordpress site, getting all the content out of it, installing Jekyll, and getting everything into Netlify. Backing everything up Before starting, I backed up my Wordpress site. I had some kind of backup plugin that I used to do a backup of my Wordpress database. I can’t remember what it was called, but there are many to choose from. Then I used Wordpress’s built-in functions to export all my posts. This turned out to be both a blessing and a curse later on. The blessing: I was able to use the same export file to get my blog comments onto my new Jekyll-based site. The curse: This method of importing comments was really meant for importing into another Wordpress site, which resulted in some weirdness and frustration. Downloading images I first used Media Cleaner from Meow Apps to purge all my unused images. Be careful with this. I ended up accidentally deleting the banner image from my home page. I was fine with this, because my banner image was from an artist on Deviant Art, and I had not asked permission to use it. I had always felt guilty about that, so deleting it was fine. The downside was that my site went without a banner image for two months. After deleting unused images, I downloaded the remaining images to my hard drive. If I remember right, I ended up doing this from my cPanel’s file manager. I ended up with a bunch of nested folders for each year, month, and day. In a later step, I eventually decided to move all images to one folder, giving them all names that made sense, and using a grep search in BBEdit to fix all the links. Dealing with images was a major pain and one of my least favorite parts of the whole process. I would recommend doing more research to see if you can find a way to get your images finalized without as much pain, or just reconcile yourself to the job ahead. Exporting content from Wordpress The next order of business was to export my blog posts and pages. Before doing that, I deactivated virtually all my Wordpress plugins, hoping that would make the exported content as clean as possible. I think there was only one or two plugins I left active. I think one plugin I left active was a plugin for tables. I was hoping the tables would come through intact, but they didn’t. I ended up having to recreate all my tables from scratch, which was not fun. Some tables I just gave up on and ended up presenting the contents in a more linear form. I had a few drafts sitting around that I had never finished. I quickly finished and published one of them and deleted several others. I left one that I was unsure about finishing. I then installed and used the Jekyll Exporter plugin to export all my content into a Jekyll-based format. This gave me the following: A _posts folder with all my blog posts in Markdown format A _drafts folder with all my drafts in Markdown format All my pages in Markdown, placed in folders using the menu structure I had defined in Wordpress A _config.yml file with the URL and description of my site—I copied the description into the config file I got from my theme later on You should be aware that the Jekyll Exporter plugin hasn’t been updated for a while. Some people have been unable to get it to work at all. Others, like myself, got mixed results, as you’ll see later on. Installing Jekyll If you’ve never used Jekyll before, you’ll have to install it first. I had installed Jekyll before at work, back when I was studying it for potential use for a documentation website as part of my job. So I was familiar with the process. Back when I installed Jekyll on my work laptop, it was a major pain and took me almost an entire day. I can’t remember exactly what went wrong that time. But I came away knowing a few tricks. To run Jekyll, you will need Ruby first. I use Mac computers, which come with Ruby already installed, although not always the latest version. I chose to install the latest version this time. Ruby packages are called “gems.” Most gems are libraries, but some are full-on applications. Jekyll itself is a gem. However, before doing anything else, I immediately installed rbenv, a Ruby gem that lets you manage and install different versions of Ruby. From there, I moved on to installing Jekyll. Thankfully, I didn’t run into any problems this time. Installing Jekyll on my personal iMac was a breeze. Choosing a Jekyll theme There are many ways to get a new Jekyll-based blog started. I think with Netlify, you can start one with just the click of a few buttons. I’ll explain how I did it. It may not have been the best way to do it. My first step was to choose a Jekyll theme. Jekyll is probably the most popular static site generator, so you can find themes all over the web. I used https://jekyll-themes.com/. Before choosing any tool, it helps to make a list of requirements up front, so you know what you’re looking for and don’t get sucked into features you don’t really need. Some of the most important features to me were: responsive design built-in search built-in sidebars support for social media sharing support for third-party commenting systems support for Google Analytics Some of those would be impossible for me to do on my own, and others would take me forever. So I wanted a very robust theme out of the box. I chose the theme TeXt, because it looked very polished and came with all the features above. Putting together the Jekyll site There are different ways to install Jekyll themes. Some are easier than others. There’s an explanation of the most common ways on the TeXt theme’s quick start page. Which method you use depends on your use case. I’m using Bitbucket instead of GitHub, so forking the theme was not an option for me. (My primary reason for using Bitbucket is that back when I was starting to learn programming, GitHub did not offer free private repositories, but Bitbucket did. I wanted to keep my blog source in the same place as my other programming projects. I think today you can host private repositories on GitHub for free.) I already knew I wanted to make changes to the theme, so I chose to download it. This gives me the freedom to change the theme however I want, but makes it harder to incorporate future improvements the original author may make to the theme. After downloading the theme, I unzipped it to the directory I was planning to use. Then I copied the Markdown files I had exported from Wordpress into the corresponding folders in the theme directory, replacing the placeholder content from the TeXt theme. My posts and pages were now in a Jekyll site directory. I had already installed git long ago. If you haven’t installed git yet, do that now. Since I already had git, I initialized git in the site directory on my computer, started a new repository in BitBucket, and pushed the site up to the empty repo. I now had source control on my site. Hosting my site on Netlify I already knew I wanted to use Netlify. I had researched them as part of a potential project at work. They offer free hosting for small websites. On their free plan, you only get one team member, limited bandwidth, limited build time, etc. But for a personal blog that doesn’t get major traffic, it’s perfectly sufficient. And Netlify is amazing for hosting static sites. There are other great hosting services you could use. Do the research and pick one. Or just go with Netlify. Once I created my Netlify account, I told them I was using Jekyll to build the site and pointed Netlify at the Bitbucket repository, and they hooked everything up almost instantly. It was almost disturbing to me how easy it was. Within a few minutes, my site was live on Netlify, pulling from Bitbucket and building automatically. Netlify gives your site a random identifier and uses that as a subdomain (randomIdentifier.netlify.com), so you can reach your site using that URL immediately. Most people will want a custom URL, and Netlify has everything you need to set that up. What’s next Theoretically, my site was now live and potentially visible, but I had a lot of work to do to get my site into shape before truly unleashing it upon the world. I left my old Wordpress site active while I continued to work on my new, static site. The next post will discuss everything I did to clean up my old Wordpress content and modify my chosen Jekyll theme. That was the longest and hardest part of the process by far. Migrating from Wordpress to Jekyll, Part 2 Historical note: Due to a computer problem, described in another blog post, I thought I lost part 2 and gave up on it for a time. I eventually found the draft of part 2 and published it.</summary></entry><entry><title type="html">Migrating My Website from Wordpress to Jekyll</title><link href="https://www.benjaminrose.com/post/website-migration/" rel="alternate" type="text/html" title="Migrating My Website from Wordpress to Jekyll" /><published>2020-02-23T12:54:52-07:00</published><updated>2020-02-23T12:54:52-07:00</updated><id>https://www.benjaminrose.com/post/website-migration</id><content type="html" xml:base="https://www.benjaminrose.com/post/website-migration/">&lt;p&gt;Goodbye, WordPress. I’ve been using WordPress for many years, but I’m ditching it in favor of a static site generator. This is a huge change. You can expect my entire site to look different. Things may go missing. Links may break. If you’ve subscribed to my site at all, you’ll no longer get updates (please send me a message if you want to keep getting notifications!). Want more details on the why and what? Read on.&lt;/p&gt;

&lt;p&gt;For its entire existence, my website has been hosted on my awesome brother’s server. He’s an internet marketer who has many of his own websites, and it was free and easy for him to host mine. However, my website has grown to take up a lot of space, and it’s time for me to be a big boy and get my own hosting service.&lt;/p&gt;

&lt;p&gt;At the same time, I’ve been learning a lot about static site generators and their advantages. I could pretty easily pay for a hosting provider like Bluehost and just copy my WordPress site directly over to them. So why am I moving away from WordPress, and why am I going to use a static site generator?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Security&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ve heard it said that WordPress powers nearly a third of the entire internet, and that makes it a huge target for hackers. WordPress runs on PHP and databases, which are vulnerable to hacking if you aren’t careful. To stay safe, you have to constantly update to the latest version and be careful about which plugins you install.&lt;/p&gt;

&lt;p&gt;I had a scare of my own just a couple of days ago. My brother contacted me and said his hosting provider noticed I was using an unsafe plugin. This was a plugin that came with my theme. It’s not something I wanted or even used. I looked up the plugin and saw multiple reviews from the day before from people saying they this plugin had caused them to &lt;em&gt;lose their entire site&lt;/em&gt;—years of work wiped clean, destroyed. Needless to say, I immediately uninstalled that plugin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Performance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because WordPress has a database as a back end, it has to dynamically construct your pages every time someone loads your site. This processing takes time. Not necessarily a huge amount of time, maybe depending on how much content you have, what plugins you use, and so forth—but it can definitely be noticeable. Static sites are pure HTML, maybe some Javascript. There’s nothing to process. Static sites load incredibly fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. My Career&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m a technical writer by trade. In the world of technical documentation, static site generators have become very popular, especially for developer documentation like APIs. Learning how to use and deploy a static site will give me some valuable experience that I can use to further my career.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Curiosity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ve been using WordPress for sooooo long. I’m kind of bored of it. I’m looking forward to a change. I like learning new things. I’m going to learn more about CSS, Liquid, and more. This is going to be both challenging and fun.&lt;/p&gt;

&lt;p&gt;Having said all that, there are some disadvantages.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;The conversion process isn’t easy&lt;/strong&gt;. There’s a fair amount of manual work involved. I don’t mind this kind of work, but it will take some time.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Static sites don’t handle comments easily&lt;/strong&gt;. Because static site generators are, well, static, there’s no way to let readers leave comments that are automatically saved as part of a blog post. There are a few workarounds, some of which are technically quite challenging unless you are a programmer. I’m taking the route of using a third-party commenting system. Disqus is the most popular, but it has ads and some privacy concerns. I’m going to try to use Hyvor, which is free up to a certain number of pageviews.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;No email service by default&lt;/strong&gt;. I’m planning to use Netlify as my hosting provider. They are free for small blog sites like mine. However, they don’t provide a lot of the amenities that paid hosting providers have, like email. But I LOVE having my personal email address using my own domain. That means I’m going to have to set up email forwarding and start using Gmail, or pay for a third-party email provider. And what happens to all my old email? I might need to find a way to save it or transfer it over to my new service.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Uncertainty&lt;/strong&gt;. I’m moving hosting providers, nuking my website’s backend, and moving my site to an entirely new platform. Things are likely to break. As I was typing, I realized that I may lose all my subscribers. I think that is all handled through WordPress.com—I need to look into it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I think that’s all I have to say about it for now. Expect this change to happen sometime in the next few days or weeks. I’m not sure how long it’s going to take me. Benjaminrose.com is evolving!&lt;/p&gt;

&lt;p&gt;Read more about the actual process I followed here:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-1&quot;&gt;Migrating from Wordpress to Jekyll, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.benjaminrose.com/post/migration-from-wordpress-to-jekyll-part-2-the-lost-draft&quot;&gt;Migrating from Wordpress to Jekyll, Part 2&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content><author><name>Ben</name></author><summary type="html">Goodbye, WordPress. I’ve been using WordPress for many years, but I’m ditching it in favor of a static site generator. This is a huge change. You can expect my entire site to look different. Things may go missing. Links may break. If you’ve subscribed to my site at all, you’ll no longer get updates (please send me a message if you want to keep getting notifications!). Want more details on the why and what? Read on. For its entire existence, my website has been hosted on my awesome brother’s server. He’s an internet marketer who has many of his own websites, and it was free and easy for him to host mine. However, my website has grown to take up a lot of space, and it’s time for me to be a big boy and get my own hosting service. At the same time, I’ve been learning a lot about static site generators and their advantages. I could pretty easily pay for a hosting provider like Bluehost and just copy my WordPress site directly over to them. So why am I moving away from WordPress, and why am I going to use a static site generator? 1. Security I’ve heard it said that WordPress powers nearly a third of the entire internet, and that makes it a huge target for hackers. WordPress runs on PHP and databases, which are vulnerable to hacking if you aren’t careful. To stay safe, you have to constantly update to the latest version and be careful about which plugins you install. I had a scare of my own just a couple of days ago. My brother contacted me and said his hosting provider noticed I was using an unsafe plugin. This was a plugin that came with my theme. It’s not something I wanted or even used. I looked up the plugin and saw multiple reviews from the day before from people saying they this plugin had caused them to lose their entire site—years of work wiped clean, destroyed. Needless to say, I immediately uninstalled that plugin. 2. Performance Because WordPress has a database as a back end, it has to dynamically construct your pages every time someone loads your site. This processing takes time. Not necessarily a huge amount of time, maybe depending on how much content you have, what plugins you use, and so forth—but it can definitely be noticeable. Static sites are pure HTML, maybe some Javascript. There’s nothing to process. Static sites load incredibly fast. 3. My Career I’m a technical writer by trade. In the world of technical documentation, static site generators have become very popular, especially for developer documentation like APIs. Learning how to use and deploy a static site will give me some valuable experience that I can use to further my career. 4. Curiosity I’ve been using WordPress for sooooo long. I’m kind of bored of it. I’m looking forward to a change. I like learning new things. I’m going to learn more about CSS, Liquid, and more. This is going to be both challenging and fun. Having said all that, there are some disadvantages. The conversion process isn’t easy. There’s a fair amount of manual work involved. I don’t mind this kind of work, but it will take some time. Static sites don’t handle comments easily. Because static site generators are, well, static, there’s no way to let readers leave comments that are automatically saved as part of a blog post. There are a few workarounds, some of which are technically quite challenging unless you are a programmer. I’m taking the route of using a third-party commenting system. Disqus is the most popular, but it has ads and some privacy concerns. I’m going to try to use Hyvor, which is free up to a certain number of pageviews. No email service by default. I’m planning to use Netlify as my hosting provider. They are free for small blog sites like mine. However, they don’t provide a lot of the amenities that paid hosting providers have, like email. But I LOVE having my personal email address using my own domain. That means I’m going to have to set up email forwarding and start using Gmail, or pay for a third-party email provider. And what happens to all my old email? I might need to find a way to save it or transfer it over to my new service. Uncertainty. I’m moving hosting providers, nuking my website’s backend, and moving my site to an entirely new platform. Things are likely to break. As I was typing, I realized that I may lose all my subscribers. I think that is all handled through WordPress.com—I need to look into it. I think that’s all I have to say about it for now. Expect this change to happen sometime in the next few days or weeks. I’m not sure how long it’s going to take me. Benjaminrose.com is evolving! Read more about the actual process I followed here: Migrating from Wordpress to Jekyll, Part 1 Migrating from Wordpress to Jekyll, Part 2</summary></entry><entry><title type="html">Misconceptions about Plate Armor</title><link href="https://www.benjaminrose.com/post/misconceptions-about-plate-armor/" rel="alternate" type="text/html" title="Misconceptions about Plate Armor" /><published>2020-02-21T19:23:01-07:00</published><updated>2020-02-21T19:23:01-07:00</updated><id>https://www.benjaminrose.com/post/misconceptions-about-plate-armor</id><content type="html" xml:base="https://www.benjaminrose.com/post/misconceptions-about-plate-armor/">&lt;p&gt;If you want to know about medieval plate armor, you need to watch this video from a curator of the Department of Arms and Armor at The Met.&lt;/p&gt;

&lt;iframe src=&quot;https://www.youtube.com/embed/NqC_squo6X4?rel=0&quot; width=&quot;480&quot; height=&quot;360&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;I started this post several years ago and never finished it. It languished in my drafts folder until today. I figured I’d quickly post my rough notes from the above video, for those who are disinclined to watch the whole thing (it’s 45+ minutes long).&lt;/p&gt;

&lt;p&gt;Armor was not very shiny until the 1600s when knights were no longer needed. Etched prints onto breastplates in 15th century. In the age of chivalry (1400s) it was mostly mail (not chain mail). The best mail was very flexible but so tight you couldn’t poke a pin through it.&lt;/p&gt;

&lt;p&gt;You can’t rely on most television shows. The History Channel’s so-called experts consisted of a re-enactor and a historian who has written two papers, one of them on Napoleonic warfare, not medieval warfare. The Deadliest Warrior show is completely useless when it comes to historical accuracy. The knight’s armor in Deadliest Warrior is a mix of 250 years of armor and the helmet is put on incorrectly (face piece goes over cheek pieces, not under).&lt;/p&gt;

&lt;p&gt;What about books? &lt;em&gt;The Medieval World at War&lt;/em&gt; was written by historians, but it only has two images of armor. One image has reproduction armor while the other has mixed periods. &lt;em&gt;Knights in History and Legend&lt;/em&gt; has the same bad images, but better descriptions.&lt;/p&gt;

&lt;p&gt;Many modern misconceptions are due to Mark Twain and a few older plays, but especially Lawrence Olivier’s &lt;em&gt;Henry V&lt;/em&gt; in 1944.&lt;/p&gt;

&lt;p&gt;Medieval plate armor is 50–60 pounds, about as much as a 5 or 6 year old child. The Marshal of France in the 14th century could do all kinds of athletic feats while wearing full plate armor: somersaults, cartwheels, jumping into the saddle, jumping over a horse, and climbing the underside of a ladder. Professional soldiers’ lives depending on how well they could fight with armor.&lt;/p&gt;

&lt;p&gt;Knights could easily get up and down from a horse. We have images from the 1200s through the 1500s showing knights with one foot in the stirrup and one hand on the saddle pommel. One piece of folklore claims that they used to construct cranes to lift knights onto horses. Why would they do that when the solution is as simple as a footstool? The video above showed a clip of a historian in historical armor mounting a horse easily.&lt;/p&gt;

&lt;p&gt;Another historian had armor tailor made based on real 15th century armor, they showed a clip of him running full speed quite easily. Another video of historians in armor fighting with poleaxes.&lt;/p&gt;

&lt;p&gt;Another video of armor owned by Henry VIII, showing the articulated inner elbow and feet, amazing breadth of motion. The breastplate of this armor needed a screw in front.&lt;/p&gt;</content><author><name>Ben</name></author><summary type="html">If you want to know about medieval plate armor, you need to watch this video from a curator of the Department of Arms and Armor at The Met. I started this post several years ago and never finished it. It languished in my drafts folder until today. I figured I’d quickly post my rough notes from the above video, for those who are disinclined to watch the whole thing (it’s 45+ minutes long). Armor was not very shiny until the 1600s when knights were no longer needed. Etched prints onto breastplates in 15th century. In the age of chivalry (1400s) it was mostly mail (not chain mail). The best mail was very flexible but so tight you couldn’t poke a pin through it. You can’t rely on most television shows. The History Channel’s so-called experts consisted of a re-enactor and a historian who has written two papers, one of them on Napoleonic warfare, not medieval warfare. The Deadliest Warrior show is completely useless when it comes to historical accuracy. The knight’s armor in Deadliest Warrior is a mix of 250 years of armor and the helmet is put on incorrectly (face piece goes over cheek pieces, not under). What about books? The Medieval World at War was written by historians, but it only has two images of armor. One image has reproduction armor while the other has mixed periods. Knights in History and Legend has the same bad images, but better descriptions. Many modern misconceptions are due to Mark Twain and a few older plays, but especially Lawrence Olivier’s Henry V in 1944. Medieval plate armor is 50–60 pounds, about as much as a 5 or 6 year old child. The Marshal of France in the 14th century could do all kinds of athletic feats while wearing full plate armor: somersaults, cartwheels, jumping into the saddle, jumping over a horse, and climbing the underside of a ladder. Professional soldiers’ lives depending on how well they could fight with armor. Knights could easily get up and down from a horse. We have images from the 1200s through the 1500s showing knights with one foot in the stirrup and one hand on the saddle pommel. One piece of folklore claims that they used to construct cranes to lift knights onto horses. Why would they do that when the solution is as simple as a footstool? The video above showed a clip of a historian in historical armor mounting a horse easily. Another historian had armor tailor made based on real 15th century armor, they showed a clip of him running full speed quite easily. Another video of historians in armor fighting with poleaxes. Another video of armor owned by Henry VIII, showing the articulated inner elbow and feet, amazing breadth of motion. The breastplate of this armor needed a screw in front.</summary></entry><entry><title type="html">Why English has Both C and K</title><link href="https://www.benjaminrose.com/post/why-english-has-both-c-and-k/" rel="alternate" type="text/html" title="Why English has Both C and K" /><published>2020-01-17T21:26:45-07:00</published><updated>2020-01-17T21:26:45-07:00</updated><id>https://www.benjaminrose.com/post/why-english-has-both-c-and-k</id><content type="html" xml:base="https://www.benjaminrose.com/post/why-english-has-both-c-and-k/">&lt;p&gt;Why does English have both C and K that make the same sound? My 11 and 12 year old daughters asked me this question today. I have researched it before, but couldn’t remember. So here’s a little explanation. Maybe it will stick in my head this time.&lt;/p&gt;

&lt;p&gt;Back in the day, the Greeks adapted the Phoenician alphabet for themselves, and it ended up being used by lots of different people who spoke different languages, including the Etruscans. The Greek alphabet has letters for both the G and the K sound—gamma and kappa. But the Etruscans didn’t have a G sound in their language. To them, G sounded like K. For whatever reason, they chose gamma to represent their K sound and ignored kappa. Back then, gamma had a curved shape like a C.&lt;/p&gt;

&lt;p&gt;The Romans inherited this tradition, but unlike the Etruscans, they did have a G sound. Since they were already using gamma for the K sound, they invented a new letter by adding a little line to the letter C. This is why G looks like a slightly modified C. Meanwhile, poor old kappa was basically ignored for centuries.&lt;/p&gt;

&lt;p&gt;Old English inherited the grand old tradition of using gamma, shaped like a C, for the K sound and ignoring kappa. The letter K was reintroduced much later when we started borrowing more Greek words. In those cases, we used the original kappa to represent the K sound.&lt;/p&gt;

&lt;p&gt;So why does C sometimes sound like S? We can blame that on the French. Over time, they started pronouncing the K sound more like a CH and eventually like an S. With the Norman conquest, English absorbed many French words. In those words, C is pronounced like an S.&lt;/p&gt;

&lt;p&gt;In part due to the confusion of C having two sounds, many older words that used to be written with C, like “cyng,” were converted to the K, so we now write “king.” But we still have lots of holdovers that still use C for the K sound.&lt;/p&gt;

&lt;p&gt;This is what we get for using another language’s alphabet, which had already been mutilated for a different language, and then borrowing thousands of words from several other languages.&lt;/p&gt;</content><author><name>Ben</name></author><summary type="html">Why does English have both C and K that make the same sound? My 11 and 12 year old daughters asked me this question today. I have researched it before, but couldn’t remember. So here’s a little explanation. Maybe it will stick in my head this time. Back in the day, the Greeks adapted the Phoenician alphabet for themselves, and it ended up being used by lots of different people who spoke different languages, including the Etruscans. The Greek alphabet has letters for both the G and the K sound—gamma and kappa. But the Etruscans didn’t have a G sound in their language. To them, G sounded like K. For whatever reason, they chose gamma to represent their K sound and ignored kappa. Back then, gamma had a curved shape like a C. The Romans inherited this tradition, but unlike the Etruscans, they did have a G sound. Since they were already using gamma for the K sound, they invented a new letter by adding a little line to the letter C. This is why G looks like a slightly modified C. Meanwhile, poor old kappa was basically ignored for centuries. Old English inherited the grand old tradition of using gamma, shaped like a C, for the K sound and ignoring kappa. The letter K was reintroduced much later when we started borrowing more Greek words. In those cases, we used the original kappa to represent the K sound. So why does C sometimes sound like S? We can blame that on the French. Over time, they started pronouncing the K sound more like a CH and eventually like an S. With the Norman conquest, English absorbed many French words. In those words, C is pronounced like an S. In part due to the confusion of C having two sounds, many older words that used to be written with C, like “cyng,” were converted to the K, so we now write “king.” But we still have lots of holdovers that still use C for the K sound. This is what we get for using another language’s alphabet, which had already been mutilated for a different language, and then borrowing thousands of words from several other languages.</summary></entry><entry><title type="html">Remembering Neil Peart</title><link href="https://www.benjaminrose.com/post/remembering-neil-peart/" rel="alternate" type="text/html" title="Remembering Neil Peart" /><published>2020-01-11T17:43:28-07:00</published><updated>2020-01-11T17:43:28-07:00</updated><id>https://www.benjaminrose.com/post/remembering-neil-peart</id><content type="html" xml:base="https://www.benjaminrose.com/post/remembering-neil-peart/">&lt;p&gt;I just learned that Neil Peart, drummer and lyricist for the band Rush, died from brain cancer this week. The depth to which his death has affected me was surprising at first. But as I thought about it, I realized I’ve probably listened to thousands of hours of his lyrics and music throughout my life.&lt;/p&gt;

&lt;p&gt;Rush was the first band I fell in love with as a teenager, so I have a strong emotional connection to their music. They are the band that got me into rock music, and specifically into progressive rock, which has had a huge impact on my musical life—and my musical life is a big part of me.&lt;/p&gt;

&lt;p&gt;I have never been a drummer, nor been particularly attuned to percussion. I don’t always notice what the drums are doing. I have to take others’ words for it that he was one of the best rock drummers of all time. Still, Peart’s drum solos are legendary and always awe-inspiring.&lt;/p&gt;

&lt;p&gt;For me, it was always Peart’s lyrics that affected me the most. Peart has had the distinction of being named both the best and the worst rock lyricist of all time. Peart’s early lyrics, in the seventies and early eighties, were heavily inspired by fantasy, science fiction, and mythology—songs like Rivendell, The Necromancer, 2112, The Trees, and Cygnus X-1. As a huge fantasy geek, these songs really appealed to me. In the mid-eighties, he stopped writing fantasy lyrics and moved more into social, emotional, and humanitarian themes—songs like Red Sector A (about the Holocaust), Subdivisions (about the mundanity of living in the suburbs), and Losing It (about growing old). In the nineties and onward, he also started including more religious ideas in his lyrics, with songs like Faithless. The diversity of songs spoke to me in many different circumstances throughout my life.&lt;/p&gt;

&lt;p&gt;To honor him for a moment, here’s Rush’s song Afterimage. Peart wrote the lyrics after the death of a friend. It seems fitting.&lt;/p&gt;

&lt;p&gt;“Suddenly, you were gone&lt;/p&gt;

&lt;p&gt;From all the lives you left your mark upon . . .&lt;/p&gt;

&lt;p&gt;Tried to believe but you know it’s no good&lt;/p&gt;

&lt;p&gt;This is something that just can’t be understood . . .&lt;/p&gt;

&lt;p&gt;I feel your presence&lt;/p&gt;

&lt;p&gt;I remember&lt;/p&gt;

&lt;p&gt;I feel the way you would&lt;/p&gt;

&lt;p&gt;This just can’t be understood”&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/OJuFlaHKLoc&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;</content><author><name>Ben</name></author><summary type="html">I just learned that Neil Peart, drummer and lyricist for the band Rush, died from brain cancer this week. The depth to which his death has affected me was surprising at first. But as I thought about it, I realized I’ve probably listened to thousands of hours of his lyrics and music throughout my life. Rush was the first band I fell in love with as a teenager, so I have a strong emotional connection to their music. They are the band that got me into rock music, and specifically into progressive rock, which has had a huge impact on my musical life—and my musical life is a big part of me. I have never been a drummer, nor been particularly attuned to percussion. I don’t always notice what the drums are doing. I have to take others’ words for it that he was one of the best rock drummers of all time. Still, Peart’s drum solos are legendary and always awe-inspiring. For me, it was always Peart’s lyrics that affected me the most. Peart has had the distinction of being named both the best and the worst rock lyricist of all time. Peart’s early lyrics, in the seventies and early eighties, were heavily inspired by fantasy, science fiction, and mythology—songs like Rivendell, The Necromancer, 2112, The Trees, and Cygnus X-1. As a huge fantasy geek, these songs really appealed to me. In the mid-eighties, he stopped writing fantasy lyrics and moved more into social, emotional, and humanitarian themes—songs like Red Sector A (about the Holocaust), Subdivisions (about the mundanity of living in the suburbs), and Losing It (about growing old). In the nineties and onward, he also started including more religious ideas in his lyrics, with songs like Faithless. The diversity of songs spoke to me in many different circumstances throughout my life. To honor him for a moment, here’s Rush’s song Afterimage. Peart wrote the lyrics after the death of a friend. It seems fitting. “Suddenly, you were gone From all the lives you left your mark upon . . . Tried to believe but you know it’s no good This is something that just can’t be understood . . . I feel your presence I remember I feel the way you would This just can’t be understood”</summary></entry><entry><title type="html">Primalcraft: A Breakup</title><link href="https://www.benjaminrose.com/post/primalcraft-a-breakup/" rel="alternate" type="text/html" title="Primalcraft: A Breakup" /><published>2018-09-17T23:02:16-06:00</published><updated>2018-09-17T23:02:16-06:00</updated><id>https://www.benjaminrose.com/post/primalcraft-a-breakup</id><content type="html" xml:base="https://www.benjaminrose.com/post/primalcraft-a-breakup/">&lt;p&gt;I haven’t posted for over two months, and my Minecraft modding plans have changed quite a bit. I had gotten very stuck on the world gen features I was planning for Primalcraft, and couldn’t find a way around or through the problems. I realized I’d been working on this monstrous mod for over two years, and it was likely I would never be able to finish it to my satisfaction.&lt;/p&gt;

&lt;p&gt;So something had to change. I’ve decided that rather than make one gigantic, all-encompassing mod, I should try to release some of the features separately, in smaller mods. I probably have well over a dozen different features that are fairly substantial and could be released on their own with relative ease.&lt;/p&gt;

&lt;p&gt;My first mini-mod is now basically done and ready for some testing before release. It’s called BasketCase, and all it does is add wicker baskets into the game. Wicker baskets have less storage than a chest, but they’re handy because they are portable. You can put stuff in them and carry them around in your inventory. I’ll be posting a little wiki here on my site soon.&lt;/p&gt;</content><author><name>Ben</name></author><summary type="html">I haven’t posted for over two months, and my Minecraft modding plans have changed quite a bit. I had gotten very stuck on the world gen features I was planning for Primalcraft, and couldn’t find a way around or through the problems. I realized I’d been working on this monstrous mod for over two years, and it was likely I would never be able to finish it to my satisfaction. So something had to change. I’ve decided that rather than make one gigantic, all-encompassing mod, I should try to release some of the features separately, in smaller mods. I probably have well over a dozen different features that are fairly substantial and could be released on their own with relative ease. My first mini-mod is now basically done and ready for some testing before release. It’s called BasketCase, and all it does is add wicker baskets into the game. Wicker baskets have less storage than a chest, but they’re handy because they are portable. You can put stuff in them and carry them around in your inventory. I’ll be posting a little wiki here on my site soon.</summary></entry><entry><title type="html">Pure Copper d20 from Norse Foundry</title><link href="https://www.benjaminrose.com/post/pure-copper-d20-from-norse-foundry/" rel="alternate" type="text/html" title="Pure Copper d20 from Norse Foundry" /><published>2018-07-07T20:03:39-06:00</published><updated>2018-07-07T20:03:39-06:00</updated><id>https://www.benjaminrose.com/post/pure-copper-d20-from-norse-foundry</id><content type="html" xml:base="https://www.benjaminrose.com/post/pure-copper-d20-from-norse-foundry/">&lt;p&gt;Today’s post is about dice. I have friends who’ve gotten aluminum &lt;a href=&quot;https://store.gravitydice.com&quot;&gt;Gravity Dice&lt;/a&gt;, and they are very cool. I’ve also been following &lt;a href=&quot;https://www.artisandice.com&quot;&gt;Artisan Dice&lt;/a&gt; for several years, slavering over all the interesting and unique dice they make—&lt;a href=&quot;https://www.artisandice.com/order/ancient-bog-oak-burl/&quot;&gt;ancient bog oak burl&lt;/a&gt;, &lt;a href=&quot;https://www.artisandice.com/order/mammoth-ivory/&quot;&gt;mammoth tusk&lt;/a&gt;, &lt;a href=&quot;https://www.artisandice.com/order/red-jasper-with-copper/&quot;&gt;red jasper&lt;/a&gt;, and the like. And I’ve finally taken the plunge.&lt;/p&gt;

&lt;p&gt;For my birthday, I got a pure copper d20 from &lt;a href=&quot;https://www.norsefoundry.com/products/single-d20-in-copper-by-norse-foundry&quot;&gt;Norse Foundry&lt;/a&gt;.&lt;/p&gt;

&lt;figure style=&quot;width: 750px;&quot;&gt;
  
    &lt;img src=&quot;/assets/images/pureCopperD20_shiny.jpg&quot; width=&quot;750&quot; height=&quot;563&quot; alt=&quot;Super shiny pure copper d20&quot; /&gt;
  
  
    &lt;figcaption&gt;Shiny&lt;/figcaption&gt;
  
&lt;/figure&gt;

&lt;p&gt;I’m really excited about this die. So excited that I even made a video.&lt;/p&gt;

&lt;p&gt;I wanted to do a video mainly to show off the size and let you hear the sound of it rolling on my wooden desk. It’s incredibly satisfying to hold this die in my hand. Rolling it is a bit mixed for me. I love the massive thunk as it settles, but part of me also misses the bounciness of my regular dice.&lt;/p&gt;

&lt;iframe src=&quot;https://www.youtube.com/embed/rNlAS8eJSLU&quot; width=&quot;560&quot; height=&quot;315&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;If you’re not into videos or want more details, read more below.&lt;/p&gt;

&lt;h2 id=&quot;tarnish&quot;&gt;Tarnish&lt;/h2&gt;

&lt;p&gt;The die arrived pretty clean, but had some grayish black tarnish in some areas. It was worst on the 19.&lt;/p&gt;

&lt;figure style=&quot;width: 500px;&quot;&gt;
  
    &lt;img src=&quot;/assets/images/pureCopperD20_tarnish.jpeg&quot; width=&quot;500&quot; height=&quot;590&quot; alt=&quot;Pure copper d20 tarnish&quot; /&gt;
  
  
    &lt;figcaption&gt;Tarnish&lt;/figcaption&gt;
  
&lt;/figure&gt;

&lt;p&gt;I cleaned it with a solution of vinegar, salt, and flour. I put in about 2/3 flour for a thickener, 1/3 salt for a little abrasiveness, and just enough vinegar in the make a thick paste. I used a soft cloth to rub the paste all over, then a toothbrush to clean out the numbers. The die was super clean and shiny afterwards. Unfortunately, I had already taken most of the pictures before cleaning it, and I’m too lazy to take more pictures.&lt;/p&gt;

&lt;figure style=&quot;width: 750px;&quot;&gt;
  
    &lt;img src=&quot;/assets/images/pureCopperD20_cleaned.jpg&quot; width=&quot;750&quot; height=&quot;563&quot; alt=&quot;Pure copper d20 cleaned&quot; /&gt;
  
  
    &lt;figcaption&gt;Cleaned with vinegar&lt;/figcaption&gt;
  
&lt;/figure&gt;

&lt;p&gt;It’s kind of hard to see in this picture, but notice that the points aren’t very exact. The shiny point shown here is one of the worst. The point is bit flattened on the 7 and 19 sides, so the point of the 1 doesn’t quite meet the others exactly. It’s only noticeable up close.&lt;/p&gt;

&lt;h2 id=&quot;number-engraving&quot;&gt;Number engraving&lt;/h2&gt;

&lt;p&gt;The depth of the engraved numbers is pretty variable. For example, the 1, 16, and 20 are quite deep, but the 3 is barely even past surface depth. Check out the depth of the 16 versus the 3 in this image. The numbers themselves are quite serviceable. The font is clean and easy to read. I like that there’s no paint or lacquer to obscure the pure copper of the die.&lt;/p&gt;

&lt;figure style=&quot;width: 500px;&quot;&gt;
  
    &lt;img src=&quot;/assets/images/pureCopperD20_numberDepth.jpeg&quot; width=&quot;500&quot; height=&quot;489&quot; alt=&quot;Pure copper d20 number depth&quot; /&gt;
  
  
    &lt;figcaption&gt;Engraving depth&lt;/figcaption&gt;
  
&lt;/figure&gt;

&lt;p&gt;In this picture you can also see some lines on the surface. I’m not sure if they are tiny grooves leftover from when the die was cut, or if they’re a result of Norse Foundry’s polishing process. I kinda like them—they give the die a bit of a raw feel. And for me, that’s a big part of what this die is about. Other metal dice are probably prettier, but for me, knowing I’m holding pure, solid copper is amazing.&lt;/p&gt;

&lt;h2 id=&quot;size&quot;&gt;Size&lt;/h2&gt;

&lt;p&gt;The die is almost exactly the same size as my other d20s. If anything, it’s slightly bigger. I’m happy about this, because reviews for other metal dice that I looked at online mentioned that they were smaller than their regular dice. Not so with Norse Foundry’s metal dice.&lt;/p&gt;

&lt;figure style=&quot;width: 750px;&quot;&gt;
  
    &lt;img src=&quot;/assets/images/pureCopperD20_sizeComparison.jpg&quot; width=&quot;750&quot; height=&quot;563&quot; alt=&quot;Pure copper d20 size is the same as my other d20 dice&quot; /&gt;
  
  
    &lt;figcaption&gt;Size comparison&lt;/figcaption&gt;
  
&lt;/figure&gt;

&lt;p&gt;This picture also shows off the variation in the crispness of the cuts. The edge at the base of the 17 is very crisp and sharp, while the edge to the left of the 17 is pretty rounded.&lt;/p&gt;

&lt;h2 id=&quot;hardness&quot;&gt;Hardness&lt;/h2&gt;

&lt;p&gt;Make no mistake, copper is metal and therefore this die is very heavy. I love that. But don’t roll this guy on your wooden table without expecting the wood to get dented and gouged. And for the love of all that’s holy, don’t roll it on a glass table top.&lt;/p&gt;

&lt;p&gt;However, copper isn’t the hardest of metals. My five-year-old son dropped my brand new copper die on our tile floor. After a minor heart attack, thinking of his poor crushed toes (he was fine—it missed him), then worrying about cracked tile (which was also fine), I eventually noticed that one of the points was dented flat. #$*%&amp;amp;$!#&amp;amp;!!! So yeah. While the copper totally could have cracked the tile, the tile won, and my precious is now damaged. And after rolling it for a while longer I’m already noticing other scratches and dings. If you don’t like that idea, don’t buy it or keep it somewhere very safe.&lt;/p&gt;

&lt;figure style=&quot;width: 500px;&quot;&gt;
  
    &lt;img src=&quot;/assets/images/pureCopperD20_dingsAndDents.jpg&quot; width=&quot;500&quot; height=&quot;405&quot; alt=&quot;Dings and dents on pure copper d20&quot; /&gt;
  
  
    &lt;figcaption&gt;Dings and dents&lt;/figcaption&gt;
  
&lt;/figure&gt;

&lt;p&gt;In this picture you can see the smooshed point on the left, as well as other dings and scratches.&lt;/p&gt;

&lt;h2 id=&quot;wrap-up&quot;&gt;Wrap-up&lt;/h2&gt;

&lt;p&gt;This die isn’t going to win any awards for exactness. The edges aren’t all crisp, the points don’t always meet exactly, and the depth of the numbers is quite variable. If that’s important to you, get yourself some &lt;a href=&quot;https://store.gravitydice.com&quot;&gt;Gravity Dice&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It’s also fairly fragile for a metal die. Expect it to get a bit dinged up if you actually use it for anything. If that concerns you, then keep it safely stored in a soft place and only get it out to hold and admire, or get something more durable like a zinc-based die or something crazy like &lt;a href=&quot;https://www.norsefoundry.com/products/16mm-norse-foundry-tungsten-polyhedral-dice-set&quot;&gt;tungsten&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But if, like me, you love the idea of holding the weight of pure, solid copper in your fist, this is the die for you. Thanks, Norse Foundry!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/pureCopperD20_shinyZoomed.jpg&quot; alt=&quot;Pure copper d20 up close&quot; width=&quot;750px&quot; height=&quot;585px&quot; /&gt;&lt;/p&gt;</content><author><name>Ben</name></author><summary type="html">Today’s post is about dice. I have friends who’ve gotten aluminum Gravity Dice, and they are very cool. I’ve also been following Artisan Dice for several years, slavering over all the interesting and unique dice they make—ancient bog oak burl, mammoth tusk, red jasper, and the like. And I’ve finally taken the plunge. For my birthday, I got a pure copper d20 from Norse Foundry. Shiny I’m really excited about this die. So excited that I even made a video. I wanted to do a video mainly to show off the size and let you hear the sound of it rolling on my wooden desk. It’s incredibly satisfying to hold this die in my hand. Rolling it is a bit mixed for me. I love the massive thunk as it settles, but part of me also misses the bounciness of my regular dice. If you’re not into videos or want more details, read more below. Tarnish The die arrived pretty clean, but had some grayish black tarnish in some areas. It was worst on the 19. Tarnish I cleaned it with a solution of vinegar, salt, and flour. I put in about 2/3 flour for a thickener, 1/3 salt for a little abrasiveness, and just enough vinegar in the make a thick paste. I used a soft cloth to rub the paste all over, then a toothbrush to clean out the numbers. The die was super clean and shiny afterwards. Unfortunately, I had already taken most of the pictures before cleaning it, and I’m too lazy to take more pictures. Cleaned with vinegar It’s kind of hard to see in this picture, but notice that the points aren’t very exact. The shiny point shown here is one of the worst. The point is bit flattened on the 7 and 19 sides, so the point of the 1 doesn’t quite meet the others exactly. It’s only noticeable up close. Number engraving The depth of the engraved numbers is pretty variable. For example, the 1, 16, and 20 are quite deep, but the 3 is barely even past surface depth. Check out the depth of the 16 versus the 3 in this image. The numbers themselves are quite serviceable. The font is clean and easy to read. I like that there’s no paint or lacquer to obscure the pure copper of the die. Engraving depth In this picture you can also see some lines on the surface. I’m not sure if they are tiny grooves leftover from when the die was cut, or if they’re a result of Norse Foundry’s polishing process. I kinda like them—they give the die a bit of a raw feel. And for me, that’s a big part of what this die is about. Other metal dice are probably prettier, but for me, knowing I’m holding pure, solid copper is amazing. Size The die is almost exactly the same size as my other d20s. If anything, it’s slightly bigger. I’m happy about this, because reviews for other metal dice that I looked at online mentioned that they were smaller than their regular dice. Not so with Norse Foundry’s metal dice. Size comparison This picture also shows off the variation in the crispness of the cuts. The edge at the base of the 17 is very crisp and sharp, while the edge to the left of the 17 is pretty rounded. Hardness Make no mistake, copper is metal and therefore this die is very heavy. I love that. But don’t roll this guy on your wooden table without expecting the wood to get dented and gouged. And for the love of all that’s holy, don’t roll it on a glass table top. However, copper isn’t the hardest of metals. My five-year-old son dropped my brand new copper die on our tile floor. After a minor heart attack, thinking of his poor crushed toes (he was fine—it missed him), then worrying about cracked tile (which was also fine), I eventually noticed that one of the points was dented flat. #$*%&amp;amp;$!#&amp;amp;!!! So yeah. While the copper totally could have cracked the tile, the tile won, and my precious is now damaged. And after rolling it for a while longer I’m already noticing other scratches and dings. If you don’t like that idea, don’t buy it or keep it somewhere very safe. Dings and dents In this picture you can see the smooshed point on the left, as well as other dings and scratches. Wrap-up This die isn’t going to win any awards for exactness. The edges aren’t all crisp, the points don’t always meet exactly, and the depth of the numbers is quite variable. If that’s important to you, get yourself some Gravity Dice. It’s also fairly fragile for a metal die. Expect it to get a bit dinged up if you actually use it for anything. If that concerns you, then keep it safely stored in a soft place and only get it out to hold and admire, or get something more durable like a zinc-based die or something crazy like tungsten. But if, like me, you love the idea of holding the weight of pure, solid copper in your fist, this is the die for you. Thanks, Norse Foundry!</summary></entry><entry><title type="html">Primalcraft: New Survival Foods</title><link href="https://www.benjaminrose.com/post/primalcraft-new-survival-foods/" rel="alternate" type="text/html" title="Primalcraft: New Survival Foods" /><published>2018-07-02T23:51:32-06:00</published><updated>2018-07-02T23:51:32-06:00</updated><id>https://www.benjaminrose.com/post/primalcraft-new-survival-foods</id><content type="html" xml:base="https://www.benjaminrose.com/post/primalcraft-new-survival-foods/">&lt;p&gt;One of my goals with Primalcraft is to add true survival foods to the game—food you can find out in the wild that aboriginal cultures or our ancestors might have eaten to avoid starvation, and that you can still eat today if you’re in a survival situation. The big barrier to this has been that almost all survival foods are seasonal in nature. Now that I’m done adding seasons to Primalcraft, I can finally get started on adding all this delicious survival food to the mod.&lt;/p&gt;

&lt;h2 id=&quot;spruce-tips&quot;&gt;Spruce Tips&lt;/h2&gt;

&lt;p&gt;In the spring, spruce trees produce new growth on the tips of their branches. Usually called &lt;a href=&quot;http://www.laurieconstantino.com/how-to-harvest-spruce-tips-with-recipes-for-using-spruce-tips-or-pine-tips-or-fir-tips/&quot;&gt;spruce tips&lt;/a&gt;, these nascent pine needles are very soft and can be plucked and eaten directly off the tree. Survivalists often combine them with other greens or veggies into a yummy salad.&lt;/p&gt;

&lt;figure style=&quot;width: 640px;&quot;&gt;
  
    &lt;img src=&quot;/assets/images/primalcraft_spruceTipsReal.jpg&quot; width=&quot;640&quot; height=&quot;414&quot; alt=&quot;Spruce tips&quot; /&gt;
  
  
    &lt;figcaption&gt;Spruce tips&lt;/figcaption&gt;
  
&lt;/figure&gt;

&lt;p&gt;In Primalcraft, spruce tips appear randomly on spruce leaves in the springtime. Breaking the leaf block will drop a few spruce tips, which restore half a hunger bar. When summer comes, the spruce tips will slowly start to disappear, so gorge yourself while they last.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/primalcraft_spruceTips.png&quot; alt=&quot;Spruce tip in Primalcraft&quot; width=&quot;300px&quot; height=&quot;219px&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;acorns&quot;&gt;Acorns&lt;/h2&gt;

&lt;p&gt;In real life, acorns contain a bitter substance called tannin that will make you sick if you eat too much. It’s the oak tree’s way of trying to prevent us from eating its babies. But resourceful hunter-gatherers discovered that shelling and then soaking acorns in running water would &lt;a href=&quot;https://www.backyardforager.com/cold-leaching-acorns-three-ways/&quot;&gt;leach out the tannins&lt;/a&gt; and make them very much edible. Once the tannin is gone, you can munch directly on the raw acorn nut or grind them up into a versatile &lt;a href=&quot;https://www.thespruceeats.com/cold-leaching-and-preserving-acorn-flour-4007438&quot;&gt;flour&lt;/a&gt;.&lt;/p&gt;

&lt;figure style=&quot;width: 750px;&quot;&gt;
  
    &lt;img src=&quot;https://www.backyardforager.com/wp-content/uploads/2016/11/MG_1155-1024x683.jpg&quot; width=&quot;750&quot; height=&quot;500&quot; alt=&quot;Leached acorns&quot; /&gt;
  
  
    &lt;figcaption&gt;Leached acorns&lt;/figcaption&gt;
  
&lt;/figure&gt;

&lt;p&gt;In Primalcraft, you’ll notice acorns appearing on the ground underneath oaks and dark oaks in the fall. Right click on an acorn with a hammer stone to produce shelled acorns. Shelled acorns can be eaten, but they’ll give you nausea. Place shelled acorns in a wicker basket next to some flowing water for about a day first to turn them into leached acorns. Your leached acorns will restore half a hunger shank. Acorns will start disappearing in the winter.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/primalcraft_acorn.png&quot; alt=&quot;Acorn in Primalcraft&quot; width=&quot;300px&quot; height=&quot;274px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That’s it for now. Soon I’ll be creating a way to get birch sap, acacia seeds, and cattails.&lt;/p&gt;</content><author><name>Ben</name></author><summary type="html">One of my goals with Primalcraft is to add true survival foods to the game—food you can find out in the wild that aboriginal cultures or our ancestors might have eaten to avoid starvation, and that you can still eat today if you’re in a survival situation. The big barrier to this has been that almost all survival foods are seasonal in nature. Now that I’m done adding seasons to Primalcraft, I can finally get started on adding all this delicious survival food to the mod. Spruce Tips In the spring, spruce trees produce new growth on the tips of their branches. Usually called spruce tips, these nascent pine needles are very soft and can be plucked and eaten directly off the tree. Survivalists often combine them with other greens or veggies into a yummy salad. Spruce tips In Primalcraft, spruce tips appear randomly on spruce leaves in the springtime. Breaking the leaf block will drop a few spruce tips, which restore half a hunger bar. When summer comes, the spruce tips will slowly start to disappear, so gorge yourself while they last. Acorns In real life, acorns contain a bitter substance called tannin that will make you sick if you eat too much. It’s the oak tree’s way of trying to prevent us from eating its babies. But resourceful hunter-gatherers discovered that shelling and then soaking acorns in running water would leach out the tannins and make them very much edible. Once the tannin is gone, you can munch directly on the raw acorn nut or grind them up into a versatile flour. Leached acorns In Primalcraft, you’ll notice acorns appearing on the ground underneath oaks and dark oaks in the fall. Right click on an acorn with a hammer stone to produce shelled acorns. Shelled acorns can be eaten, but they’ll give you nausea. Place shelled acorns in a wicker basket next to some flowing water for about a day first to turn them into leached acorns. Your leached acorns will restore half a hunger shank. Acorns will start disappearing in the winter. That’s it for now. Soon I’ll be creating a way to get birch sap, acacia seeds, and cattails.</summary></entry></feed>