{"@attributes":{"version":"2.0"},"channel":{"title":"Posts with \"Open-Source\" tag on Take on Rules","link":"https:\/\/takeonrules.com\/","description":"Posts with \"Open-Source\" tag on Take on Rules","generator":"Hugo -- gohugo.io","copyright":"Copyright 2026, Jeremy Friesen","language":"en-us","managingEditor":"jeremy@takeonrules.com (Jeremy Friesen)","webMaster":"jeremy@takeonrules.com (Jeremy Friesen)","docs":"https:\/\/cyber.harvard.edu\/rss\/rss.html","lastBuildDate":"Tue, 06 May 2025 16:59:14 -0400","item":[{"title":"Migrating to Linux: Getting Emacs Installed","link":"https:\/\/takeonrules.com\/2025\/05\/06\/migrating-to-linux-getting-emacs-installed\/","pubDate":"Tue, 06 May 2025 16:59:14 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2025\/05\/06\/migrating-to-linux-getting-emacs-installed\/","category":["emacs","open-source","technologies"],"description":"\n        <p>With my \n<cite><a href=\"https:\/\/takeonrules.com\/2025\/05\/05\/migrating-to-linux-on-guiding-principles-and-keyboard-bindings\/\">Migrating to Linux: On Guiding Principles and Keyboard Bindings<\/a><\/cite> complete, I moved on to getting tool of my computering: Emacs.<\/p>\n<p>I think my <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Emacs\">Emacs<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cEmacs\u201d\" title=\"Other site-wide references of \u201cEmacs\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-EMACS\">&#128214;<\/a><\/small>\n configuration requires at least version 29.1; however I\u2019m\nuncertain.  The package manager had <span>Emacs<\/span>\n 27 available, so I opted to build from\nsource.<\/p>\n<p>I could either download a released version\u2019s source code or clone the\nrepository.  I chose the clone route; as this would be useful as upgrades come\nout.<\/p>\n<p>Preliminaries:<\/p>\n<pre><code class=\"language-shell\">sudo apt update &amp;&amp; sudo apt install git --assume-yes\n<\/code><\/pre>\n<p>With <code>git<\/code> installed I need a copy of the <span>Emacs<\/span>\n repository, and should build from\na stable ref; as of <span class=\"timestamp-wrapper\"><span class=\"timestamp\">&lt;2025-04-23 Wed&gt; <\/span><\/span> that is <code>emacs-30.1<\/code>.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I had a copy of the <span>Emacs<\/span>\ngit repository on another machine.  So I used the\nsneaker net (e.g. a thumbdrive) to copy that over to the <span><a href=\"https:\/\/linux.org\/\">Linux<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cLinux\u201d\" title=\"Other site-wide references of \u201cLinux\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-LINUX\">\ud83d\udcd6<\/a><\/small>\nmachine and then\nrun <code>git pull<\/code> so I could get up to date source code.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>I used <a href=\"https:\/\/gist.github.com\/zoliky\/0445b20676bfa85450d7df006066ceb7\">Installing Emacs 29.1 from source on Debian 12 \u00b7 GitHub<\/a> as my framing.<\/p>\n<p>First, building the dependencies:<\/p>\n<pre><code class=\"language-shell\">sudo apt build-dep emacs\nsudo apt install libtree-sitter-dev libgcc-12-dev libgccjit-12-dev\n<\/code><\/pre>\n<p>Then making a home for my new install:<\/p>\n<pre><code class=\"language-shell\">mkdir -p ~\/.local\/emacs\n<\/code><\/pre>\n<p>In my source directory for Emacs (e.g., <code>~\/git\/emacs\/<\/code>), I ran the following:<\/p>\n<pre><code class=\"language-text\">.\/configure \\\n--prefix=&quot;$HOME\/.local\/emacs\/&quot; \\\n--without-compress-install \\\n--with-native-compilation=aot \\\n--with-x \\\n--with-x-toolkit=lucid \\\n--with-gif \\\n--with-png \\\n--with-jpeg \\\n--with-tiff \\\n--with-imagemagick \\\n--with-mailutils \\\n--with-tree-sitter \\\nCC=gcc-12\n<\/code><\/pre>\n<p>It took a few tries, which is why I have the <code>CC=gcc-12<\/code> declaration as well as\ninstructions for installing <code>libgcc-12-dev<\/code> and <code>libgccjit-12-dev<\/code>.<\/p>\n<p>Now came time to spin up the fans.  I ran <code>make -j 16<\/code>; where 16 is the number of\ncores on my machine.  And finally <code>make install<\/code>.<\/p>\n<p>Along the way, I realized that there were terminal commands that I was missing.\nBut I could hobble along.<\/p>\n<p>Up until I had <span>Emacs<\/span>\n built, I was using <code>nano<\/code> to write my notes.  It is quite\nserviceable.<\/p>\n<p><em>Note<\/em>, I could have installed Emacs 30.1 via the Pop Shop, however I chose to\nbuild from source.<\/p>\n<h2 id=\"toggling-gnome-settings\">Toggling Gnome Settings<\/h2>\n<p>There are a few settings that I have found useful to toggle:<\/p>\n<ul>\n<li><a href=\"#trackpad-and-night-light\">Trackpad and Night Light<\/a><\/li>\n<li><a href=\"#light-dark-theme\">Light\/Dark Theme<\/a><\/li>\n<li><a href=\"#radios\">Radios<\/a><\/li>\n<\/ul>\n<h3 id=\"trackpad-and-night-light\">Trackpad and Night Light<\/h3>\n<p>With my new laptop and how I hold my hands, I\u2019ve noticed that sometimes I\nactivate my trackpad.  Which is annoying, especially when I\u2019m in a \u201cwriting\nmindset.\u201d<\/p>\n<p>I don\u2019t like the bright blues of a normal screen.  Instead I prefer to use a\ndisplay setting that softens the colors.  In <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/MacOS\">Macintosh Operating System<\/a><\/span> (<abbr title=\"Macintosh Operating System\">MacOS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cMacintosh Operating System\u201d\" title=\"Other site-wide references of \u201cMacintosh Operating System\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OSX\">&#128214;<\/a><\/small>)\n this is \u201cNight Shift.\u201d<\/p>\n<p>I choose a much warmer color, knowing that reds are softer on the retina.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> My mom has a retinal disease and her research and recommendations from\nexperts leads her to incorporate more red filters in her day to day.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>Both of these settings are similar in how they are toggled.  So I wrote some\n<a href=\"#emacs-commands-for-setting-toggling\">Emacs Commands for Setting Toggling<\/a>.<\/p>\n<h4 id=\"emacs-commands-for-setting-toggling\">Emacs Commands for Setting Toggling<\/h4>\n<p>With the toggles identified, I set about writing the functions and macros to\nhelp with future needs.<\/p>\n<p>To create <a href=\"https:\/\/github.com\/jeremyf\/dotemacs\/blob\/f69f6c5f8058abc133cbd9d6970d96329e5128af\/emacs.d\/init.el#L358-L362\">my Trackpad toggling command<\/a> I call my <a href=\"https:\/\/github.com\/jeremyf\/dotemacs\/blob\/f69f6c5f8058abc133cbd9d6970d96329e5128af\/emacs.d\/init.el#L336-L356\">jf\/linux:gsettings-toggler\nEmacs macro<\/a>.  Below is the code:<\/p>\n<pre><code class=\"language-emacs-lisp\">(jf\/linux:gsettings-toggler &quot;Trackpad&quot;\n  :property &quot;org.gnome.desktop.peripherals.touchpad send-events&quot;\n  :match &quot;'enabled'&quot;\n  :on_match &quot;disabled&quot;\n  :on_miss &quot;enabled&quot;)\n\n<\/code><\/pre>\n<p>The first parameter is the named concept (e.g., \u201cTrackpad\u201d).  The <code>:property<\/code> is\nthe <code>gsettings<\/code> key that I\u2019m looking to change\n(e.g. \u201corg.gnome.desktop.peripherals.touchpad send-events\u201d).  The <code>:match<\/code> value\nis what I check as the property\u2019s current state.  When the current value is a\nmatch, I set the property to the <code>:on_match<\/code> value.<\/p>\n<p>And below is <a href=\"https:\/\/github.com\/jeremyf\/dotemacs\/blob\/f69f6c5f8058abc133cbd9d6970d96329e5128af\/emacs.d\/init.el#L364-L368\">how I generate my Night Light toggling command<\/a>:<\/p>\n<pre><code class=\"language-emacs-lisp\">(jf\/linux:gsettings-toggler &quot;Night Light&quot;\n    :property &quot;org.gnome.settings-daemon.plugins.color night-light-enabled&quot;\n    :match &quot;true&quot;\n    :on_match &quot;false&quot;\n    :on_miss &quot;true&quot;)\n<\/code><\/pre>\n<p>As of <span class=\"timestamp-wrapper\"><span class=\"timestamp\">&lt;2025-05-03 Sat&gt; <\/span><\/span> the generating macro is as follows:<\/p>\n<pre><code class=\"language-emacs-lisp\">(cl-defmacro jf\/linux:gsettings-toggler (name &amp;key property match on_match on_miss)\n    &quot;Toggle the NAME setting via the PROPERTY.\n\nWhen the PROPERTY is a MATCH set the property to ON_MATCH; otherwise set\nit to the ON_MISS value.&quot;\n    (let ((docstring\n            (concat &quot;Toggle &quot; name &quot; for Gnome desktop.&quot;))\n           (func-name\n             (intern (concat &quot;jf\/linux:toggle-&quot; name))))\n      `(defun ,func-name ()\n         ,docstring\n         (interactive)\n         (let ((value\n                 (if (string= ,match\n                       (s-trim\n                         (shell-command-to-string\n                           (concat &quot;gsettings get &quot; ,property))))\n                   ,on_match ,on_miss)))\n           (shell-command\n             (concat &quot;gsettings set &quot; ,property &quot; &quot; value))\n           (message &quot;%s: %s&quot; ,name value)))))\n<\/code><\/pre>\n<h3 id=\"light-dark-theme\">Light\/Dark Theme<\/h3>\n<p>Related but different from the Night Light concept is the Light and Dark\ntheming.  In Emacs I had a script to toggle the theme of both the OS and <span>Emacs<\/span>\n\n(e.g. my <code>jf\/dark<\/code> function).  I wanted something similar in <span>Linux<\/span>\n.<\/p>\n<p>Yet, as I explored the changes, I realized that there would be a divergence in\nimplementation based on <abbr title=\"Macintosh Operating System\">MacOS<\/abbr>\n or <span>Linux<\/span>\n.<\/p>\n<p>Toggling the light and dark theme is a bit different; as this requires\ncoordination.  <a href=\"https:\/\/github.com\/jeremyf\/dotemacs\/blob\/f69f6c5f8058abc133cbd9d6970d96329e5128af\/emacs.d\/init.el#L2943-L2958\">My jf\/color-scheme-system-toggle command<\/a> handles both the <abbr title=\"Macintosh Operating System\">MacOS<\/abbr>\n\nand my <span>Linux<\/span>\n install.<\/p>\n<pre><code class=\"language-emacs-lisp\">(defun jf\/color-scheme-system-toggle ()\n    &quot;Toggle system-wide Dark or Light setting.&quot;\n    (interactive)\n    (pcase system-type\n      ('darwin\n        (progn\n          (shell-command\n            (concat &quot;osascript -e 'tell application \\&quot;System Events\\&quot; &quot;\n              &quot;to tell appearance preferences &quot;\n              &quot;to set dark mode to not dark mode'&quot;))\n          (jf\/color-scheme-set-for-emacs)))\n      (_\n        (let ((lightp\n                (eq :dark (jf\/current-color-scheme-gnome))))\n          (dolist (fn jf\/color-scheme-system-toggle-functions)\n            (funcall fn lightp))))))\n<\/code><\/pre>\n<p>The <span>Linux<\/span>\n toggling portion determines if the scheme is <code>:dark<\/code>, and uses that\nboolean value to pass to each of the toggling functions.<\/p>\n<p><a href=\"https:\/\/github.com\/jeremyf\/dotemacs\/blob\/f69f6c5f8058abc133cbd9d6970d96329e5128af\/emacs.d\/init.el#L2901-L2910\">My jf\/color-scheme-system-toggle-functions variable<\/a> (which I realized is\nmisnamed) defines a list of functions that I\u2019ll call, passing <code>true<\/code> when I want\nto set them to the \u201clight\u201d theme.  Below is that variable\u2019s definition:<\/p>\n<pre><code class=\"language-emacs-lisp\">(defvar jf\/color-scheme-system-toggle-functions\n    '(jf\/color-scheme:gnome-color-scheme\n       jf\/color-scheme:gnome-gtk-theme\n       jf\/color-scheme:copyq-theme\n       jf\/color-scheme:emacs-theme)\n    &quot;A list of arity one functions that set component schemes based on the\ninput parameter.\n\nWhen the parameter is non-nil, favor the dark option.  Otherwise favor\nthe light option.&quot;)\n<\/code><\/pre>\n<p>The four functions that toggle my system scheme are similar but just different\nenough:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/jeremyf\/dotemacs\/blob\/f69f6c5f8058abc133cbd9d6970d96329e5128af\/emacs.d\/init.el#L2912-L2917\">jf\/color-scheme:gnome-color-scheme<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/jeremyf\/dotemacs\/blob\/f69f6c5f8058abc133cbd9d6970d96329e5128af\/emacs.d\/init.el#L2919-L2926\">jf\/color-scheme:gnome-gtk-theme<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/jeremyf\/dotemacs\/blob\/f69f6c5f8058abc133cbd9d6970d96329e5128af\/emacs.d\/init.el#L2928-L2935\">jf\/color-scheme:copyq-theme<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/jeremyf\/dotemacs\/blob\/f69f6c5f8058abc133cbd9d6970d96329e5128af\/emacs.d\/init.el#L2937-L2941\">jf\/color-scheme:emacs-theme<\/a><\/li>\n<\/ul>\n<p>Below is the definition of those four functions:<\/p>\n<pre><code class=\"language-emacs-lisp\">(defun jf\/color-scheme:gnome-color-scheme (lightp)\n  &quot;Set the gnome color scheme based on LIGHTP (e.g. light\/dark).&quot;\n  (shell-command\n   (format\n    &quot;gsettings set org.gnome.desktop.interface color-scheme prefer-%s&quot;\n    (if lightp &quot;light&quot; &quot;dark&quot;))))\n\n(defun  jf\/color-scheme:gnome-gtk-theme (lightp)\n  &quot;Set the gnome gtk theme based on LIGHTP (e.g. light\/dark).&quot;\n  (let ((theme\n         (if lightp &quot;Adwaita&quot; &quot;Adwaita-dark&quot;)))\n    (shell-command\n     (format\n      &quot;gsettings set org.gnome.desktop.interface gtk-theme %s&quot;\n      theme))))\n\n(defun jf\/color-scheme:copyq-theme (lightp)\n  &quot;Set the copyq theme based on LIGHTP (e.g. light\/dark).&quot;\n  (shell-command\n   (format\n    &quot;copyq loadTheme %s\/solarized-%s.ini&quot;\n    (s-trim\n     (shell-command-to-string &quot;copyq info themes&quot;))\n    (if lightp &quot;light&quot; &quot;dark&quot;))))\n\n(defun jf\/color-scheme:emacs-theme (lightp)\n  &quot;Set the emacs theme based on LIGHTP (e.g. light\/dark).&quot;\n  (ef-themes-select\n   (plist-get jf\/themes-plist\n              (if lightp :light :dark))))\n<\/code><\/pre>\n<p>An astute reader might notice some duplication of my\n<code>jf\/color-scheme:gnome-color-scheme<\/code> and <code>jf\/color-scheme:gnome-gtk-theme<\/code> and the\ntoggling macro.  There\u2019s a potential refactoring there, but I\u2019m going to leave\nit on the idea shelf.<\/p>\n<h3 id=\"radios\">Radios<\/h3>\n<p>By default, I like to keep my Bluetooth off.  I wanted a way to turn this off\nand on via <span>Emacs<\/span>\n.  And also turn off and on my WiFi.<\/p>\n<p>Below are <a href=\"https:\/\/github.com\/jeremyf\/dotemacs\/blob\/f69f6c5f8058abc133cbd9d6970d96329e5128af\/emacs.d\/init.el#L370-L391\">my functions to go radio silent and start broadcasting<\/a>:<\/p>\n<pre><code class=\"language-emacs-lisp\">(defun jf\/linux:radio-silence ()\n    &quot;Soft block laptop radios (e.g. bluetooth and wlan).\n\nRelated to `jf\/linux:radio-broadcast'.&quot;\n    (interactive)\n    (shell-command &quot;rfkill block all&quot;))\n\n  (defun jf\/linux:radio-broadcast (&amp;optional all identifiers)\n    &quot;Soft unblock laptop radios (e.g. bluetooth and wlan)\n\nWhen ALL is non-nil unblock all radios.  Other unblock only the wlan.\n\nRelated to `jf\/linux:radio-silence'.&quot;\n    (interactive &quot;P&quot;)\n    (let ((identifiers\n            (mapconcat\n              (lambda (el) el)\n              (or identifiers '(&quot;wlan&quot;))\n              &quot; &quot;)))\n      (shell-command\n        (concat &quot;rfkill unblock &quot;\n          (if all &quot;all&quot; identifiers)))))\n\n<\/code><\/pre>\n<p>I don\u2019t have a physical switch, so I settle for the soft programmatic block.<\/p>\n<h2 id=\"grabbing-links\">Grabbing Links<\/h2>\n<p>Part of my writing workflow is grabbing links from my browser (and <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/RSS\">Rich Site Summary<\/a><\/span> (<abbr title=\"Rich Site Summary\">RSS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRich Site Summary\u201d\" title=\"Other site-wide references of \u201cRich Site Summary\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RSS\">&#128214;<\/a><\/small>)\n feed).\nOn <abbr title=\"Macintosh Operating System\">MacOS<\/abbr>\n I use <a href=\"https:\/\/github.com\/xuchunyang\/grab-mac-link.el\">GitHub - xuchunyang\/grab-mac-link.el: Grab link from Mac Apps and\ninsert it into Emacs<\/a>.  And I explored <a href=\"https:\/\/github.com\/xuchunyang\/grab-x-link\">GitHub - xuchunyang\/grab-x-link: Grab\nlinks from some X11 apps and insert into Emacs<\/a>.<\/p>\n<p>However, that wasn\u2019t quite enough.  So I wrote up <a href=\"https:\/\/github.com\/jeremyf\/dotemacs\/blob\/943ba0640db5526d5946ec094ab7a4f2d32cfb9b\/emacs.d\/grab-x-link.el\">some changes for my own needs<\/a>;\nnamely to address having multiple applications based on Firefox.  Along the way\nI learned about <code>xdotool<\/code> and <code>comm<\/code>.<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>With <span>Emacs<\/span>\n installed, I could really set about my documentation process.  My next article in this series will be about other applications I use: <span>Virtual Private Networks<\/span> (<abbr title=\"Virtual Private Networks\">VPNs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cVirtual Private Networks\u201d\" title=\"Other site-wide references of \u201cVirtual Private Networks\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-VIRTUAL-PRIVATE-NETWORK\">&#128214;<\/a><\/small>)\n, browsers, terminal, and connecting to Github.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Migrating to Linux: On Guiding Principles and Keyboard Bindings","link":"https:\/\/takeonrules.com\/2025\/05\/05\/migrating-to-linux-on-guiding-principles-and-keyboard-bindings\/","pubDate":"Mon, 05 May 2025 08:55:39 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2025\/05\/05\/migrating-to-linux-on-guiding-principles-and-keyboard-bindings\/","category":["open-source","technologies"],"description":"\n        <p>This is my first \u201csubstantive\u201d post in \n.<\/p>\n<h2 id=\"guiding-principles\">Guiding Principles<\/h2>\n<p>I have chosen to adopt <span><a href=\"https:\/\/linux.org\/\">Linux<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cLinux\u201d\" title=\"Other site-wide references of \u201cLinux\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-LINUX\">&#128214;<\/a><\/small>\n in an effort to step out of a walled garden; namely\n<span><a href=\"https:\/\/en.wikipedia.org\/wiki\/MacOS\">Macintosh Operating System<\/a><\/span> (<abbr title=\"Macintosh Operating System\">MacOS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cMacintosh Operating System\u201d\" title=\"Other site-wide references of \u201cMacintosh Operating System\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OSX\">&#128214;<\/a><\/small>)\n.  I have been using <abbr title=\"Macintosh Operating System\">MacOS<\/abbr>\n as my personal and work operating system\nsince 2005.  In that time, I\u2019ve watched as Apple has become more hostile to\nfolks using their computer outside the bounds of \u201cApplications made by folks\nthat have paid Apple for the privilege of making Applications in <abbr title=\"Macintosh Operating System\">MacOS<\/abbr>\n.\u201d<\/p>\n<p>Some of this includes:<\/p>\n<ul>\n<li>Requiring XCode to build software<\/li>\n<li>Marking installed packages as \u201cdamaged\u201d when they weren\u2019t signed by Apple.<\/li>\n<\/ul>\n<p>Further, Apple is rolling out \u201cArtificial Intelligence\u201d which means my\ncomputering may well be used for training a <span>Large Language Model<\/span> (<abbr title=\"Large Language Model\">LLM<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cLarge Language Model\u201d\" title=\"Other site-wide references of \u201cLarge Language Model\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-LLM\">&#128214;<\/a><\/small>)\n.  As such, I\u2019m looking to step\nout of the walled garden.<\/p>\n<p>I\u2019m also looking at how I might use this experience to guide others.  This\n\u201cguide others\u201d is in tension with my exploration of a a tiling window manager;\nin that the managers I\u2019m considering are a bit more obtuse compared to current\ndesktop interactions.<\/p>\n<p>Running contrary to this, is that for the foreseeable future I\u2019ll be using <abbr title=\"Macintosh Operating System\">MacOS<\/abbr>\n\nfor my work environment.  Which means I\u2019m looking to maintain degrees of\nsimilarity.<\/p>\n<h2 id=\"keyboard-bindings\">Keyboard Bindings<\/h2>\n<p>Given that my work computer is a Mac and I&rsquo;m shifting to <span>Linux<\/span>\n, I know that I\nwill bump up against keybinding differences.<\/p>\n<p>I consider the most important key change to be mapping my <code>caps lock<\/code> key to <code>ctrl<\/code>.\nAll other things are negotiable.  I\u2019m also considering whether I will remap even\nmore keys.<\/p>\n<p>I do know that for my window manager, I want to explore mapping an under-used\nkey.<\/p>\n<p>The computer I&rsquo;m using has a firmware package for modifying keybindings; however\nI&rsquo;m opting for a more general approach.  That is one that doesn&rsquo;t need a\nfirmware package.  Which should be generally more applicable.<\/p>\n<p>One significant difference, shifting from a Macbook keyboard and my new machine\nis that I now have a number pad along with several \u201cgood ol\u2019 stand-by keys\u201d such\nas <code>Print Screen<\/code>, <code>Insert<\/code>, <code>Page Up<\/code>, <code>Page Down<\/code>, <code>Home<\/code>, and <code>End<\/code>.<\/p>\n<h3 id=\"editing-etc-default-keyboard\">Editing <code>\/etc\/default\/keyboard<\/code><\/h3>\n<p>As part of my initial effort to map <code>caps lock<\/code> to <code>ctrl<\/code>, I used the following:<\/p>\n<ul>\n<li>Open a Shell<\/li>\n<li>Switch to root (e.g. <code>su<\/code>)<\/li>\n<li>Edit <code>\/etc\/default\/keyboard<\/code><\/li>\n<li>Set <code>XKBOPTIONS=&quot;ctrl:swapcaps&quot;<\/code><\/li>\n<li>Run <code>sudo dpkg-reconfigure keyboard-configuration<\/code><\/li>\n<li>Restart the computer<\/li>\n<\/ul>\n<p>This worked, but was more invasive than I wanted.  So I explored XModmap as an\nalternative.<\/p>\n<h3 id=\"xmodmap\">XModmap<\/h3>\n<p>I am unclear about the interaction of XModmap and <code>\/etc\/default\/keyboard<\/code>; as such\nI removed the changes I made to the keyboard file and proceeded with these\nsteps.  An advantage of the XModmap modifications, as implemented, are that they\napply on a per-user basis.<\/p>\n<p>I found <a href=\"https:\/\/gist.github.com\/yemM\/9f232e2483b67965e9a0d55158e02ab2\">Xmodmap to get keyboard act as on Mac OS \u00b7 GitHub<\/a>, which altered the\nkeyboard layout to similar expectations as <abbr title=\"Macintosh Operating System\">MacOS<\/abbr>\n.  However I&rsquo;m going with a\nslightly different configuration<\/p>\n<pre><code class=\"language-text\">!!! NOTE: This file was generated by org-tangle from\n!!!       ~\/git\/dotzshrc\/runbooks\/linux.org\n\n! As a matter of hygiene and cleanliness, clear the modifiers.  We will remap\n! later.\nclear lock\nclear control\nclear mod1\nclear mod2\nclear mod3\nclear mod4\nclear mod5\n\n! Bind left control as Hyper\nkeycode 37 = Hyper_L\n\n!Bind caps lock as Control\nkeycode 66 = Control_L\n\n!Bind insert as Hyper_R\n!keycode 118 = Hyper_R\n\nadd control = Control_L Control_R\nadd mod1 = Alt_L Alt_R Meta_L\nadd mod2 = Num_Lock\nadd mod3 = Hyper_L\nadd mod4 = Super_L Super_R\n! Treat re-bound insert as mod5 in Terminal\n! add mod5 = Hyper_R\n<\/code><\/pre>\n<p>On my present machine the bottom key labels are (from left to right) and with\nthe above configuration these bind accordingly:<\/p>\n<dl>\n<dt><code>ctrl<\/code><\/dt>\n<dd><code>C-<\/code><\/dd>\n<dt><code>fn<\/code><\/dt>\n<dd>OS Function key toggle (e.g. <code>F1<\/code>)<\/dd>\n<dt><code>super<\/code><\/dt>\n<dd><code>s-<\/code><\/dd>\n<dt><code>alt<\/code><\/dt>\n<dd><code>M-<\/code><\/dd>\n<dt><code>space<\/code><\/dt>\n<dd><code>SPC<\/code><\/dd>\n<dt><code>alt<\/code><\/dt>\n<dd><code>M-<\/code><\/dd>\n<dt><code>menu<\/code><\/dt>\n<dd><code>M-x<\/code> (kind of nice having a dedicated <code>M-x<\/code> key)<\/dd>\n<dt><code>ctrl<\/code><\/dt>\n<dd><code>C-<\/code><\/dd>\n<\/dl>\n<p>In my initial foray, I bound <code>Insert\/Screen Lock<\/code> key to <code>H-<\/code> (hyper).  A major\nchange that I&rsquo;m evaluating is whether the keys to the immediate right and left\nof <code>SPC<\/code> should be <code>M-<\/code> or <code>s-<\/code>.  There is also the left-most <code>ctrl<\/code> that I might remap.<\/p>\n<p>However, this binding conflicted with later developments, so I preserved <code>Insert<\/code>\nas its original behavior.<\/p>\n<p>Regardless of my considerations, I use the following command to apply the above\nchanges:<\/p>\n<pre><code class=\"language-bash\">xmodmap ~\/.Xmodmap\n<\/code><\/pre>\n<p>I\u2019ve attempted to add this keyboard configuration to my windowed session login;\nhowever it is not yet working.  As such, whenever I boot my computer and login,\nit behooves me to launch a terminal.<\/p>\n<h3 id=\"investigating-the-boot\">Investigating the Boot<\/h3>\n<p>I found <a href=\"https:\/\/unix.stackexchange.com\/questions\/42611\/how-can-i-run-a-script-that-starts-before-my-login-screen\">How can I run a script that starts before my login screen?<\/a> on Stack\nExchange.  This looked promising.<\/p>\n<p>I looked into my <code>\/etc\/gdm3\/Init\/<\/code> and there was one file: <code>Default<\/code>.  This was a\nbash script.  Reading the code it was looking for an Xmodmap file in some system\ndirectories.  One was <code>\/usr\/etc\/X11\/Xmodmap<\/code>.<\/p>\n<p>I tried using both a symlink and a copy of my personal <code>~\/.Xmodmap<\/code> to the <code>\/usr\/etc\/X11\/Xmodmap<\/code> file, but it did not run this before the window manager, so I\u2019ve set it aside.<\/p>\n<p>Until I learn more, I\u2019ll launch Terminal when I first login.<\/p>\n<h2 id=\"coping-with-pop-os-keybindings\">Coping with Pop OS Keybindings<\/h2>\n<p>This was a bit of a side-quest, but one that relates to <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Emacs\">Emacs<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cEmacs\u201d\" title=\"Other site-wide references of \u201cEmacs\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-EMACS\">&#128214;<\/a><\/small>\n.  Namely <span><a href=\"https:\/\/system76.com\/pop\/\">Pop!_OS<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cPop!_OS\u201d\" title=\"Other site-wide references of \u201cPop!_OS\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-POP-OS\">&#128214;<\/a><\/small>\n\nuses a lot of <code>s-<\/code> keys for window operations.  My <span>Emacs<\/span>\n also uses <code>s-<\/code> keys, and I\nwanted to avoid collision.<\/p>\n<p>Out of the box, I\u2019m using <span>Pop!_OS<\/span>\n.  I had considered <span><a href=\"http:\/\/debian.org\/\">Debian<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDebian\u201d\" title=\"Other site-wide references of \u201cDebian\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DEBIAN\">&#128214;<\/a><\/small>\n, but when I use a\nlive boot image, the trackpad does not work.  I\u2019m not prepared to mess with\nthis.  So I\u2019m sticking with the quite nice <span>Pop!_OS<\/span>\n (a derivative of <span><a href=\"https:\/\/ubuntu.com\">Ubuntu<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cUbuntu\u201d\" title=\"Other site-wide references of \u201cUbuntu\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-UBUNTU\">&#128214;<\/a><\/small>\n, which\nis a derivative of <span>Debian<\/span>\n).<\/p>\n<p>There are a lot of OS-level keys bound to <code>s-<\/code> prefix.  I went through the menu to\ndisable most of those.<\/p>\n<p>One non-<span>Pop!_OS<\/span>\n key was monitor switching.  It was bound to <code>s-p<\/code>, something I use\nextensively in <span>Emacs<\/span>\n.  I ran <code>gsettings set org.gnome.mutter.keybindings switch-monitor &quot;[]&quot;<\/code> to unbind <code>s-p<\/code> from the <code>switch-monitor<\/code> gnome command.<\/p>\n<p>I&rsquo;m also using <code>dconf dump \/ &gt; ~\/git\/dotzshrc\/pop_os_settings.conf<\/code> which I can\nthen use to load, via the following:<\/p>\n<pre><code class=\"language-shell\">dconf load \/ &lt; ~\/git\/dotzshrc\/pop_os_settings.conf\n<\/code><\/pre>\n<p>What I noticed is that the <code>dconf dump<\/code> does not include the default keybindings,\nbut instead the changes.  To find those, I needed to dig just a bit further.<\/p>\n<p>I forget where I originally learned of <code>dconf<\/code> but I found the following helpful: <a href=\"https:\/\/linuxconfig.org\/introduction-to-the-dconf-configuration-system\">Introduction to the dconf configuration system<\/a>.<\/p>\n<p>One at present unsolvable \u201cissue\u201d is that typing <code>s-<\/code> (e.g., <code>super<\/code>) and releasing\ninvokes <span>Pop!_OS<\/span>\n\u2019s launcher.  Given that I\u2019d often used <code>s-Space<\/code> for <abbr title=\"Macintosh Operating System\">MacOS<\/abbr>\n to\nlaunch apps, I\u2019m okay enough with this behavior.<\/p>\n<p>And as I\u2019ve been working on <span>Linux<\/span>\n, to build this document, I opted to switch the\nbindings on my Macbook.  Now I have mapped the key to the left of the space bar\non my Macbook maps to Option\/Alt.  I figure, if I\u2019m going to leave the wall\ngarden perhaps I can also leave the muscle memory and rebuild anew.<\/p>\n<p>A couple of days into this, I can say I\u2019m remapping the memories.  But the\nhigher the \u201cstress\u201d moment (e.g., pairing) the deeper ingrained memory takes\nhold.  But I look to this remapping as an exercise of mental nimbleness.<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>My next article in this series will be about building <span>Emacs<\/span>\n from source so I can\nreally start working on my machine.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Hello from Linux","link":"https:\/\/takeonrules.com\/2025\/05\/02\/hello-from-linux\/","pubDate":"Fri, 02 May 2025 13:25:50 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2025\/05\/02\/hello-from-linux\/","category":["open-source","technologies"],"description":"\n        <p>In between my day job, gardening, gathering with friends, unpacking, and playing\nwith my dogs, I\u2019ve been migrating my non-work computering to <span><a href=\"https:\/\/linux.org\/\">Linux<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cLinux\u201d\" title=\"Other site-wide references of \u201cLinux\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-LINUX\">&#128214;<\/a><\/small>\n.  This post\nis my first post written and published on that <span>Linux<\/span>\n machine.<\/p>\n<p>I\u2019ll be following up on this preliminary post with more posts, extracted from\nthe notes I took on my migration.<\/p>\n<p>For now, the purpose of this post is to test that I can publish from the <span>Linux<\/span>\n\nmachine.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Researching My Planned Personal Move from Macos to Linux","link":"https:\/\/takeonrules.com\/2025\/04\/15\/researching-my-planned-personal-move-from-macos-to-linux\/","pubDate":"Tue, 15 Apr 2025 22:58:39 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2025\/04\/15\/researching-my-planned-personal-move-from-macos-to-linux\/","category":["open-source","technologies"],"description":"\n        <h2 id=\"introduction\">Introduction<\/h2>\n<p>I became the steward of a trove of old Windows laptops and a Chromebook.  And\nI\u2019m looking to breath some life into those laptops by installing <span><a href=\"https:\/\/linux.org\/\">Linux<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cLinux\u201d\" title=\"Other site-wide references of \u201cLinux\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-LINUX\">&#128214;<\/a><\/small>\n.  With\nthis trove of laptops, if I\u2019m going to make them useful, I need to \u201cuse\u201d\nthem.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> What do I consider useful?  Finding folks needing a computering environment,\nand making it available.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>There is a part of me that simply wants to send out a message asking folks if\nthey want one of these computers.  But I\u2019m also curious about how I can provide\na level of support for folks less computer inclined, who still need computers.<\/p>\n<p><time datetime=\"2025-04-15\" title=\"2025-04-15\">This evening<\/time>, I created a live boot image of <span><a href=\"http:\/\/debian.org\/\">Debian<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDebian\u201d\" title=\"Other site-wide references of \u201cDebian\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DEBIAN\">&#128214;<\/a><\/small>\n and <span><a href=\"https:\/\/xfce.org\/\">Xfce<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cXfce\u201d\" title=\"Other site-wide references of \u201cXfce\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-XFCE\">&#128214;<\/a><\/small>\n on a thumb drive\nand took inventory of each of the computers; at least the cooperative ones.  We\ndon\u2019t need all of these computers, but I need to get them in a good \u201chere you\ngo\u201d state.<\/p>\n<p>There\u2019s likely unmet computering needs in my neighborhood that I might help\naddress.<\/p>\n<h2 id=\"to-leave-a-walled-garden\">To Leave a Walled Garden<\/h2>\n<p>I have also been considering a shift to Linux; away from the walled garden of\nproprietary operating systems.<\/p>\n<p>I\u2019ve experimented with using <a href=\"https:\/\/mac.getutm.app\/\">UTM on my Mac<\/a>, but kept hitting on display\nproblems; and a little critter in my head saying \u201cI don\u2019t want to run an OS in a\nvirtualized yet walled environment.\u201d<\/p>\n<p>Which leads me to exploring replacing my current daily driver, a <time datetime=\"2021\" title=\"2021\">2021<\/time> 13\u201d M1\nMacbook Air.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> <dfn>Daily driver<\/dfn> being the thing that I use on a daily basis for a\nspecific task; in this case computering.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n This Macbook Air is an absolute joy to use and is in great\nshape.  And I have a significant number of stickers on it.<\/p>\n<p>Yet, before I commit to a path, albeit one that is reversible, I want to know my\nmigration strategy.  Namely what are the functional needs and desires that I\nhave.<\/p>\n<h2 id=\"research\">Research<\/h2>\n<p>I\u2019m looking at a similar approach as what I took when I stopped using the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Atom_(text_editor)\">Atom<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cAtom\u201d\" title=\"Other site-wide references of \u201cAtom\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-ATOM\">&#128214;<\/a><\/small>\n\ntext editor and eventually settled on <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Emacs\">Emacs<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cEmacs\u201d\" title=\"Other site-wide references of \u201cEmacs\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-EMACS\">&#128214;<\/a><\/small>\n.  Namely to determine the\nfundamentals of my computering environment; and have a plan to implement those\nin short-order.<\/p>\n<h3 id=\"first-order-applications\">First Order Applications<\/h3>\n<p>First, I took an inventory of the first-order applications I regularly use.\nWhat do I consider a first-order application?  One that directly accomplishes a\ncomputering task I set out to do (e.g. search the web; compose an email; write\nin my journal; etc.)<\/p>\n<p>As I looked through my Application directory, I found 3:<\/p>\n<ul>\n<li><span>Emacs<\/span>\n, I can almost get by with this as my only first-order application.<\/li>\n<li>A \u201crich\u201d web browser (e.g. <span><a href=\"https:\/\/librewolf.net\/\">LibreWolf<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cLibreWolf\u201d\" title=\"Other site-wide references of \u201cLibreWolf\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-LIBREWOLF\">&#128214;<\/a><\/small>\n and <span><a href=\"https:\/\/mullvad.net\/en\/browser\">Mullvad Browser<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cMullvad Browser\u201d\" title=\"Other site-wide references of \u201cMullvad Browser\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-MULLVAD-BROWSER\">&#128214;<\/a><\/small>\n); because I might\nneed <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/JavaScript\">Javascript<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cJavascript\u201d\" title=\"Other site-wide references of \u201cJavascript\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-JS\">&#128214;<\/a><\/small>\n based functionality.<\/li>\n<li><span><a href=\"https:\/\/www.libreoffice.org\/\">LibreOffice<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cLibreOffice\u201d\" title=\"Other site-wide references of \u201cLibreOffice\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-LIBREOFFICE\">&#128214;<\/a><\/small>\n, because sometimes I want a robust spreadsheet for advanced\nnerdery.<\/li>\n<\/ul>\n<p>For the most part, I rarely open <span>LibreOffice<\/span>\n, however for other folks this is\nlikely something necessary.<\/p>\n<h3 id=\"second-order-applications\">Second Order Applications<\/h3>\n<p>Then I thought about other functionality.  I have a keyboard shortcut for\nresizing and rearranging windows; this functionality is provided via\n<a href=\"https:\/\/www.hammerspoon.org\/\">Hammerspoon<\/a>.  I use <cite><a href=\"https:\/\/karabiner-elements.pqrs.org\">Karabiner-Elements<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cKarabiner-Elements\u201d\" title=\"Other site-wide references of \u201cKarabiner-Elements\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-KARABINER-ELEMENTS\">&#128214;<\/a><\/small>\n to remap a few keys, namely to implement\nmore <span>Emacs<\/span>\n type navigation functions.  And I use <span><a href=\"https:\/\/objective-see.org\/products\/lulu.html\">Lulu<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cLulu\u201d\" title=\"Other site-wide references of \u201cLulu\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-LULU\">&#128214;<\/a><\/small>\n for guarding outbound\nnetwork traffic.  For my clipboard manager, I use <span><a href=\"https:\/\/maccy.app\/\">Maccy<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cMaccy\u201d\" title=\"Other site-wide references of \u201cMaccy\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-MACCY\">&#128214;<\/a><\/small>\n.<\/p>\n<p><time datetime=\"2025-04-14\" title=\"2025-04-14\">Last night<\/time>, I spent time researching <span>Linux<\/span>\n packages that are analogues to the\n<a href=\"https:\/\/www.hammerspoon.org\/\">Hammerspoon<\/a>, <cite>Karabiner-Elements<\/cite>\n, <span>Lulu<\/span>\n, <span>Maccy<\/span>\n:<\/p>\n<dl>\n<dt>Hammerspoon<\/dt>\n<dd>Read <a href=\"https:\/\/www.tecmint.com\/best-tiling-window-managers-for-linux\/\">alternate tile managers<\/a> and found the following of interest:\n<ul>\n<li><a href=\"https:\/\/i3wm.org\/\">i3<\/a><\/li>\n<li><a href=\"https:\/\/www.nongnu.org\/ratpoison\/\">Ratpoison<\/a><\/li>\n<\/ul>\n<\/dd>\n<dt>Karabiner Elements<\/dt>\n<dd><a href=\"https:\/\/linuxconfig.org\/personalizing-keyboard-layouts-in-linux\">Personalizing Keyboard Layouts in Linux<\/a> offers some\ninsight.<\/dd>\n<dt>Maccy<\/dt>\n<dd>Reading <a href=\"https:\/\/www.tecmint.com\/best-clipboard-managers-for-linux\/\">multi-paste buffer alternatives<\/a> the following look promising:\n<ul>\n<li><a href=\"https:\/\/hluk.github.io\/CopyQ\/\">CopyQ<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/Keruspe\/GPaste?via=tecmint\">GPaste<\/a><\/li>\n<li><a href=\"https:\/\/userbase.kde.org\/Klipper?via=tecmint\">Klipper<\/a><\/li>\n<li><a href=\"https:\/\/sourceforge.net\/projects\/clipman\/?via=tecmint\">Clipman<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/CristianHenzel\/ClipIt?via=tecmint\">Clipit<\/a><\/li>\n<\/ul>\n<\/dd>\n<dt>Lulu<\/dt>\n<dd>Reviewing <a href=\"https:\/\/alternativeto.net\/software\/little-snitch\/\">alternatives to Little Snitch<\/a>, I\u2019ll investigate further:\n<ul>\n<li>Portmaster<\/li>\n<li>OpenSnitch<\/li>\n<\/ul>\n<\/dd>\n<\/dl>\n<p>Of these, I consider <span>Lulu<\/span>\n and <span>Maccy<\/span>\n the most \u201curgent.\u201d  I have an external\nkeyboard that stores its keyboard mappings.  I can use that to keep working.\nAnd I don\u2019t \u201cneed\u201d immediate tile management; in part because I <em>can<\/em> use a mouse.<\/p>\n<p>Of these second order applications, I don\u2019t consider any of them \u201crequired\u201d for\nother folks; though firewall protection is a good idea.<\/p>\n<h3 id=\"other-applications-packages-commands\">Other Applications\/Packages\/Commands<\/h3>\n<p>In addition, I have a <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/blob\/main\/RUNBOOK.org\">MacOS Runbook document<\/a> that contains packages that I often\ninstall when setting up a computer.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> The notes are Macos focused, but the packages are generally available.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n Some of those, such as <span><a href=\"https:\/\/github.com\/BurntSushi\/ripgrep\">Ripgrep<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRipgrep\u201d\" title=\"Other site-wide references of \u201cRipgrep\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RIPGREP\">&#128214;<\/a><\/small>\n, are\ndependencies for my <span>Emacs<\/span>\n computering.  Most of those will build on <span>Linux<\/span>\n.<\/p>\n<p>And I consider my runbook adequate for migration purposes.<\/p>\n<h2 id=\"next-steps\">Next Steps<\/h2>\n<p>I already have a repurposed 2012 iMac that has <span>Debian<\/span>\n for distribution and <span>Xfce<\/span>\n\nfor desktop.  I chose <span>Debian<\/span>\n for best general support and <span>Xfce<\/span>\n for its\nlightweight nature.  Other considerations for desktop is <span><a href=\"https:\/\/www.gnome.org\/\">Gnome<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cGnome\u201d\" title=\"Other site-wide references of \u201cGnome\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-GNOME\">&#128214;<\/a><\/small>\n.<\/p>\n<p>My challenge is balancing the configuration time with my other obligations.  I\ndo, however, consider this abundance of laptops as an obligation; namely to help\nmake these machines generally usable.  Especially in light of the erratic trade\ntariff tantrums.<\/p>\n<p>Once configured, I rely on my daily driving to guide further tweaking and\ndiscovery.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Enshittification Anti-Pattern and the Ongoing D&D Licensing Debacle","link":"https:\/\/takeonrules.com\/2023\/01\/22\/enshittification-anti-pattern-and-the-ongoing-d-d-licensing-debacle\/","pubDate":"Sun, 22 Jan 2023 12:25:10 -0500","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2023\/01\/22\/enshittification-anti-pattern-and-the-ongoing-d-d-licensing-debacle\/","category":["open-source","rpgs","text-editors"],"description":"<h2>How a Corporation is Looking to Create a Platform<\/h2>\n        <blockquote class=\"quote epigraph\" data-id=\"20230122T121417\">\n<p>\nWho overcomes by force, hath overcome but half his foe.\n<\/p>\n<footer>&#8213;John Milton, <cite>Paradise Lost<\/cite><\/footer><\/blockquote>\n<p><time datetime=\"2023-01-22\">Today<\/time>, Todd Grotenhuis wrote:<\/p>\n<blockquote>\n<p>\ud83c\udfb2 Thinking that the <a href=\"https:\/\/pluralistic.net\/2023\/01\/21\/potemkin-ai\/\">enshittification<\/a> anti-pattern describes very well to what is going on in D&amp;D,\ntoo.<\/p>\n<\/blockquote>\n<p>When Cory Doctrow\u2019s <a href=\"https:\/\/pluralistic.net\/2023\/01\/21\/potemkin-ai\/\">Pluralistic: Tiktok\u2019s enshittification (21 Jan 2023)<\/a> rolled through my <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/RSS\">Rich Site Summary<\/a><\/span> (<abbr title=\"Rich Site Summary\">RSS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRich Site Summary\u201d\" title=\"Other site-wide references of \u201cRich Site Summary\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RSS\">&#128214;<\/a><\/small>)\n feed, I had that very thought.  But Todd took the time to say this out loud.<\/p>\n<p>The summary of Doctrow\u2019s post is in the first two paragraphs:<\/p>\n<blockquote>\n<p>Here is how platforms die: first, they are good to their users; then they abuse their users to make things better for their business customers; finally, they abuse those business customers to claw back all the value for themselves. Then, they die.<\/p>\n<p>I call this enshittification, and it is a seemingly inevitable consequence arising from the combination of the ease of changing how a platform allocates value, combined with the nature of a &ldquo;two sided market,&rdquo; where a platform sits between buyers and sellers, hold each hostage to the other, raking off an ever-larger share of the value that passes between them.<\/p>\n<\/blockquote>\n<p>There is one interesting consideration: What is the platform of <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Dungeons_%26_Dragons\">Dungeons and Dragons<\/a><\/span> (<abbr title=\"Dungeons and Dragons\">D&D<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-D&D\">&#128214;<\/a><\/small>)\n?  The rules are the mechanism of engaging with the intellectual \u201cproperty.\u201d  But that isn\u2019t the platform.  I\u2019d say the platform is dispersed; it is where folks go to play <abbr title=\"Dungeons and Dragons\">D&D<\/abbr>\n.  That is many and happens in similar areas where folks play other <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Role-playing_game\">Role Playing Games<\/a><\/span> (<abbr title=\"Role Playing Games\">RPGs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRole Playing Games\u201d\" title=\"Other site-wide references of \u201cRole Playing Games\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RPG\">&#128214;<\/a><\/small>)\n.<\/p>\n<p>Yet <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Wizards_of_the_Coast\">Wizards of the Coast<\/a><\/span> (<abbr title=\"Wizards of the Coast\">WotC<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWizards of the Coast\u201d\" title=\"Other site-wide references of \u201cWizards of the Coast\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WOTC\">&#128214;<\/a><\/small>)\n has perhaps conflated <abbr title=\"Dungeons and Dragons\">D&D<\/abbr>\n\u2019s rules as the platform (along with their posturing to shift that into a \u201cright and proper platform\u201d).  To put another way, <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n has attempted to enshittify their platform before they had locked in a platform that could be enshittified.<\/p>\n<p>Lazy corporate antics trying to take two steps at the same time; a point in which you are very much vulnerable to disruption.  A favorite word of \u201cinnovators.\u201d<\/p>\n<p>I encourage everyone to go and read <a href=\"https:\/\/pluralistic.net\/2023\/01\/21\/potemkin-ai\/\">Cory Doctrow\u2019s post<\/a>; it\u2019s useful for considerations beyond our game.  And while you\u2019re at it make sure to add Doctrow\u2019s blog to your <abbr title=\"Rich Site Summary\">RSS<\/abbr>\n reader.<\/p>\n<p>Wait until corporate execs bring further \u201censhittification\u201d to <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Visual_Studio_Code\">Visual Studio Code<\/a><\/span> (<abbr title=\"Visual Studio Code\">VS Code<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cVisual Studio Code\u201d\" title=\"Other site-wide references of \u201cVisual Studio Code\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-VSC\">&#128214;<\/a><\/small>)\n.  Unlike <abbr title=\"Dungeons and Dragons\">D&D<\/abbr>\n, that\u2019s a right and proper platform.  And <a href=\"https:\/\/ghuntley.com\/fracture\/\">Visual Studio Code is designed to fracture<\/a>.<\/p>\n\n      ","source":"Take on Rules"},{"title":"\u201cCities without Number\u201d stretch goal to include licensing","link":"https:\/\/takeonrules.com\/2023\/01\/22\/cities-without-number-stretch-goal-to-include-licensing\/","pubDate":"Sun, 22 Jan 2023 11:24:02 -0500","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2023\/01\/22\/cities-without-number-stretch-goal-to-include-licensing\/","category":["open-source","rpgs"],"description":"<h2>Yet More and Varied Reactions to OGL Antics<\/h2>\n        <p><time datetime=\"2023-01-22\">Today<\/time> Kevin Crawford posted the following on the <a href=\"https:\/\/www.reddit.com\/r\/SWN\/comments\/10icooz\/cities_without_number_draft_stretch_goals\/\">\u201cCities Without Number\u201d Draft Stretch Goals<\/a> Reddit thread:<\/p>\n<blockquote>\n<p><em>Upon reaching $200,000<\/em> I will place the mechanics of Cities Without Number under some form of\nopen license, whether Creative Commons, the upcoming <span>Open RPG Creative License<\/span> (<abbr title=\"Open RPG Creative License\">ORC<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOpen RPG Creative License\u201d\" title=\"Other site-wide references of \u201cOpen RPG Creative License\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-ORC\">&#128214;<\/a><\/small>)\n, or some other agreement that\nallows its free commercial use by others.<\/p>\n<p>It has always been my position that such licensing is not needed for others to copy my mechanics or\nadvertise their commercial works as being compatible with my games. So long as someone&rsquo;s work\ndoes not use my specific game settings, characters, and organizations, and does not represent itself as\nan &ldquo;official&rdquo; Sine Nomine game supplement, I have neither the right nor the desire to stop them from\nreplicating the mechanics. Having come up as I have, it would be shameful of me to try to haul the\nladder up on other indie publishers. I wish them all as much profit from their work as I&rsquo;ve had from\nmine.<\/p>\n<p>Yet it is understandable that some publishers would prefer something in writing about such things, in\ncase I grow strange and wizardly here on the Lake Michigan coast and forget the plain meaning of my\nwords. If this campaign makes it to $200,000, it will be a sign that people care enough for me to take\nthe extra time and labor to work through the legalities of the matter and present the public with a\nformal license codifying my stance.<\/p>\n<\/blockquote>\n<p>For years, Kevin has been very clear in reiterating that you can use the \u201cSystems without Numbers\u201d mechanics.  However he\u2019s in tune with the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Wizards_of_the_Coast\">Wizards of the Coast<\/a><\/span> (<abbr title=\"Wizards of the Coast\">WotC<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWizards of the Coast\u201d\" title=\"Other site-wide references of \u201cWizards of the Coast\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WOTC\">&#128214;<\/a><\/small>)\n antics.<\/p>\n<p>This stretch goal is quite achievable; his <a href=\"https:\/\/www.kickstarter.com\/projects\/1637945166\/worlds-without-number\/description\">\u201cWorlds Without Number\u201d Kickstarter<\/a> drew in over $200,000 <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/United_States_dollar\">United States dollar<\/a><\/span> (<abbr title=\"United States dollar\">USD<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cUnited States dollar\u201d\" title=\"Other site-wide references of \u201cUnited States dollar\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-USD\">&#128214;<\/a><\/small>)\n\u2019s.<\/p>\n<p>\u201cSystems without Number\u201d comes with:<\/p>\n<ul class=\"org-ul\">\n<li>A \u201cclean\u201d provenance<\/li>\n<li>Compatibility with <span><a href=\"https:\/\/rpggeek.com\/rpg\/389\/basic-dungeons-dragons\">Dungeons and Dragons: Basic\/Expert<\/a><\/span> (<abbr title=\"Dungeons and Dragons: Basic\/Expert\">B\/X<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons: Basic\/Expert\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons: Basic\/Expert\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-B\/X\">&#128214;<\/a><\/small>)\n<\/li>\n<li>A <a href=\"https:\/\/en.wikipedia.org\/wiki\/Traveller_(role-playing_game))-lite\">Traveller<\/a> character creation<\/li>\n<li>A degree of character configuration that echoes <cite><a href=\"https:\/\/www.dmsguild.com\/browse.php?affiliate_id=318171\">Dungeons and Dragons: Fifth Edition<\/a><\/cite> (<abbr title=\"Dungeons and Dragons: Fifth Edition\">5E<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons: Fifth Edition\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons: Fifth Edition\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-5E\">&#128214;<\/a><\/small>)\n and <span>Dungeons and Dragons: Third Edition<\/span> (<abbr title=\"Dungeons and Dragons: Third Edition\">3E<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons: Third Edition\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons: Third Edition\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-3E\">&#128214;<\/a><\/small>)\n<\/li>\n<li>Top-notch Referee\/Game Facilitator tools<\/li>\n<\/ul>\n<p>All of these create a perfect storm of a game system in the days of \u201cstrange and wizardly\u201d licensing antics.<\/p>\n<p>I loved running <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/226996\/Stars-Without-Number-Revised-Edition?affiliate_id=318171\">Stars without Number: Revised Edition<\/a><\/cite> (<abbr title=\"Stars without Number: Revised Edition\">SWN<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cStars without Number: Revised Edition\u201d\" title=\"Other site-wide references of \u201cStars without Number: Revised Edition\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-SWN\">&#128214;<\/a><\/small>)\n and preparing a campaign for <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/348791\/Worlds-Without-Number?affiliate_id=318171\">Worlds without Number<\/a><\/cite> (<abbr title=\"Worlds without Number\">WWN<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWorlds without Number\u201d\" title=\"Other site-wide references of \u201cWorlds without Number\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WWN\">&#128214;<\/a><\/small>)\n; which is something I cannot say regarding <abbr title=\"Dungeons and Dragons: Fifth Edition\">5E<\/abbr>\n.  I find <abbr title=\"Dungeons and Dragons: Fifth Edition\">5E<\/abbr>\n to be utter trash at supporting the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Dungeon_Master\">Dungeon Master<\/a><\/span> (<abbr title=\"Dungeon Master\">DM<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeon Master\u201d\" title=\"Other site-wide references of \u201cDungeon Master\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DM\">&#128214;<\/a><\/small>)\n, demonstrating a <del>disdain<\/del> negligence for the role.<\/p>\n<p>If you want to play a sci-fantasy game that mixes Psionics and Magic, I\u2019d use <abbr title=\"Worlds without Number\">WWN<\/abbr>\n and mix-in the <abbr title=\"Stars without Number: Revised Edition\">SWN<\/abbr>\n Psychic character class; see \n<cite><a href=\"https:\/\/takeonrules.com\/2018\/07\/10\/lets-read-stars-without-number-psionics\/\">Let&#39;s Read \u201cStars without Number\u201d - Psionics<\/a><\/cite> for more my read through.<\/p>\n<p>That mix of Pisonics and Magic are prevalent in <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Eberron\">Eberron<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cEberron\u201d\" title=\"Other site-wide references of \u201cEberron\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-EBERRON\">&#128214;<\/a><\/small>\n and <cite><a href=\"https:\/\/www.dmsguild.com\/browse.php?filters=0_0_0_0_45353_0_0_0&affiliate_id=318171\">Dark Sun<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDark Sun\u201d\" title=\"Other site-wide references of \u201cDark Sun\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DARK-SUN\">&#128214;<\/a><\/small>\n.  And if you\u2019re looking to retain a beloved campaign but not use the now poisoned well of <abbr title=\"Dungeons and Dragons: Fifth Edition\">5E<\/abbr>\n the aforementioned systems are fantastic.\n<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> And so is <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/348152\/Whitehack-Third-Edition?affiliate_id=318171\">Whitehack<\/a><\/cite> (<abbr title=\"Whitehack\">WH<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWhitehack\u201d\" title=\"Other site-wide references of \u201cWhitehack\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WHITEHACK\">\ud83d\udcd6<\/a><\/small>)\n.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n I\u2019m not overly interested in Cyberpunk, but I\u2019m certain I\u2019ll find very useful bits in <cite>Cities without Number<\/cite>.  And hopeful a system that is part of a safe harbour license strategy.  My main wish is that this license includes an analogue to the \n<cite><a href=\"https:\/\/takeonrules.com\/2023\/01\/19\/revisiting-section-15-copyright-notice-of-the-open-game-license\/\">Revisiting Section 15 Copyright Notice of the Open Game License<\/a><\/cite>.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Ongoing Bad Faith Actions of Wizards of the Coast","link":"https:\/\/takeonrules.com\/2023\/01\/21\/ongoing-bad-faith-actions-of-wizards-of-the-coast\/","pubDate":"Sat, 21 Jan 2023 09:43:48 -0500","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2023\/01\/21\/ongoing-bad-faith-actions-of-wizards-of-the-coast\/","category":["open-source","rpgs"],"description":"<h2>An Ongoing Attempt to Shift the Legal Field Beneath Creators<\/h2>\n        <blockquote class=\"quote epigraph\" data-id=\"20221009T120400\">\n<p>\nThis is the enigma of ideology.  It operates behind our backs and without our\nconsent yet still requires our free action, our complicity with it.  We know\nthat ideology is not true, yet we still believe.\n<\/p>\n<footer>&#8213;Simon Critchley, <cite>Tragedy, The Greeks, and Us<\/cite><\/footer><\/blockquote>\n<p>Because of <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Wizards_of_the_Coast\">Wizards of the Coast<\/a><\/span> (<abbr title=\"Wizards of the Coast\">WotC<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWizards of the Coast\u201d\" title=\"Other site-wide references of \u201cWizards of the Coast\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WOTC\">&#128214;<\/a><\/small>)\n&rsquo;s chicanery regarding the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Open_Game_License\">Open Game License<\/a><\/span> (<abbr title=\"Open Game License\">OGL<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOpen Game License\u201d\" title=\"Other site-wide references of \u201cOpen Game License\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OGL\">&#128214;<\/a><\/small>)\n I considered removing <span>Open Game Content<\/span> (<abbr title=\"Open Game Content\">OGC<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOpen Game Content\u201d\" title=\"Other site-wide references of \u201cOpen Game Content\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OGC\">&#128214;<\/a><\/small>)\n from <cite>Take on Rules<\/cite>.  However, I have as of <time datetime=\"2023-01-21\">today<\/time> decided not to do that.<\/p>\n<p>Why?  I encourage you to read <a href=\"https:\/\/batintheattic.blogspot.com\/2023\/01\/the-new-ogl-12-what-is-victory.html\">Bat in the Attic&rsquo;s The new OGL 1.2, What is Victory?<\/a> and <a href=\"https:\/\/foundryvtt.com\/article\/ogl12-response-feedback\/\">Foundry Virtual Tabletop&rsquo;s OGL 1.2 Response and Feedback<\/a>.<\/p>\n<p>The pernicious part called out by <a href=\"https:\/\/foundryvtt.com\/\">Foundry Virtual Tabletop<\/a> is as follows:<\/p>\n<blockquote>\n<p>There is a particularly dangerous combination of statements in <abbr title=\"Open Game License\">OGL<\/abbr>\n 1.2 which, unless corrected by Wizards of the Coast, may result in creators unknowingly and non-consensually accepting the terms of this new license.<\/p>\n<p>\u201cBy using Our Licensed Content, you agree to the terms of this license.<\/p>\n<p>DRAFT: OGL 1.2, pg. 1\u201d<\/p>\n<p>\u201cOur Licensed Content. This license covers any content in the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/System_Reference_Document\">System Reference Document<\/a><\/span> (<abbr title=\"System Reference Document\">SRD<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cSystem Reference Document\u201d\" title=\"Other site-wide references of \u201cSystem Reference Document\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-SRD\">&#128214;<\/a><\/small>)\n 5.1 (or any subsequent version of the <abbr title=\"System Reference Document\">SRD<\/abbr>\n we release under this license) that is not licensed to you under Creative Commons. You may use that content in your own works on the terms of this license.<\/p>\n<p>DRAFT: OGL 1.2, 1.a.i\u201d<\/p>\n<p>If a creator uses content from the <abbr title=\"System Reference Document\">SRD<\/abbr>\n version 5.1 - the current version of the <abbr title=\"System Reference Document\">SRD<\/abbr>\n which has been available since May 2016 - they implicitly agree to the terms of the OGL 1.2 license. This means that simply by publishing content that was developed under 1.0a and <abbr title=\"System Reference Document\">SRD<\/abbr>\n version 5.1, many creators will unknowingly accept the 1.2 terms. This could be avoided with an explicit grace period for ongoing projects and an obvious version number increase to the <abbr title=\"System Reference Document\">SRD<\/abbr>\n which makes it clear that by using that game content you are accepting OGL 1.2.<\/p>\n<\/blockquote>\n<p>That&rsquo;s one of many egregious issues with the latest round.<\/p>\n<p>But all of this is expected in a corporate-backed public relations war of attrition.  <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n will continue to set forth configurations; each with their own poison pill different in some way.  Eventually, they\u2019ll pull the trigger.<\/p>\n<p>The crux of all of this is they are not looking to make a clean break from the <abbr title=\"Open Game License\">OGL<\/abbr>\n 1.0a content; and instead looking to shove everyone through a door and then close it behind them.  Their efforts continue that single desired action.<\/p>\n<h2 id=\"why-write-this\">Why Write This?<\/h2>\n<p>I&rsquo;m not planning on purchasing anything *Dungeons and Dragons*\u2122 related again; these antics are too much.  Yet I\u2019ll play d-n-d again; <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/279183\/OldSchool-Essentials-Classic-Fantasy-Rules-Tome?affiliate_id=318171\">Old School Essentials<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOld School Essentials\u201d\" title=\"Other site-wide references of \u201cOld School Essentials\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OLD-SCHOOL-ESSENTIALS\">&#128214;<\/a><\/small>\n or <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/348791\/Worlds-Without-Number?affiliate_id=318171\">Worlds without Number<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWorlds without Number\u201d\" title=\"Other site-wide references of \u201cWorlds without Number\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WWN\">&#128214;<\/a><\/small>\n or <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/194344\/Apocalypse-World-2nd-Ed?affiliate_id=318171\">Apocalypse World<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cApocalypse World\u201d\" title=\"Other site-wide references of \u201cApocalypse World\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-AW\">&#128214;<\/a><\/small>\n or <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/402819\/Trophy-Gold?affiliate_id=318171\">Trophy Gold<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cTrophy Gold\u201d\" title=\"Other site-wide references of \u201cTrophy Gold\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-TROPHY-GOLD\">&#128214;<\/a><\/small>\n or <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/101050\/Dungeon-Crawl-Classics-RPG-DCC-RPG?affiliate_id=318171\">Dungeon Crawl Classics<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeon Crawl Classics\u201d\" title=\"Other site-wide references of \u201cDungeon Crawl Classics\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DUNGEON-CRAWL-CLASSICS\">&#128214;<\/a><\/small>\n or <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/348152\/Whitehack-Third-Edition?affiliate_id=318171\">Whitehack<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWhitehack\u201d\" title=\"Other site-wide references of \u201cWhitehack\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WHITEHACK\">&#128214;<\/a><\/small>\n or Pathfinder or any other system in this bountiful ecosystem.<\/p>\n<p>However, I want to continue to highlight the chicanery of <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n.  I will not go through their door.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Revisiting Section 15 Copyright Notice of the Open Game License","link":"https:\/\/takeonrules.com\/2023\/01\/19\/revisiting-section-15-copyright-notice-of-the-open-game-license\/","pubDate":"Thu, 19 Jan 2023 22:04:28 -0500","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2023\/01\/19\/revisiting-section-15-copyright-notice-of-the-open-game-license\/","category":["open-source","rpgs"],"description":"<h2>An Odd Little Section Containing Such Odd Signatures<\/h2>\n        <blockquote class=\"quote epigraph\" data-id=\"20230119T215441\">\n<p>\nThe most effective way to destroy people is to deny and obliterate their own\nunderstanding of their history.\n<\/p>\n<footer>&#8213; George Orwell<\/footer><\/blockquote>\n<p>In \n<cite><a href=\"https:\/\/takeonrules.com\/2011\/02\/04\/open-game-license\/\">Open Game License<\/a><\/cite>, the seventh post on my blog, I wrote:<\/p>\n<blockquote>\n<p>Oddly enough, when I buy books, I really enjoy looking to see if there is a copy of <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Open_Game_License\">Open Game License<\/a><\/span> (<abbr title=\"Open Game License\">OGL<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOpen Game License\u201d\" title=\"Other site-wide references of \u201cOpen Game License\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OGL\">&#128214;<\/a><\/small>)\n; If one is present, I look at the updated copyright notice to see the rules systems that contributed and influenced the making of the book in hand.<\/p>\n<\/blockquote>\n<p>As <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Wizards_of_the_Coast\">Wizards of the Coast<\/a><\/span> (<abbr title=\"Wizards of the Coast\">WotC<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWizards of the Coast\u201d\" title=\"Other site-wide references of \u201cWizards of the Coast\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WOTC\">&#128214;<\/a><\/small>)\n hastens to bring about the end of the <abbr title=\"Open Game License\">OGL<\/abbr>\n, the dawning of the <span>Open RPG Creative License<\/span> (<abbr title=\"Open RPG Creative License\">ORC<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOpen RPG Creative License\u201d\" title=\"Other site-wide references of \u201cOpen RPG Creative License\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-ORC\">&#128214;<\/a><\/small>)\n age draws near.  It is my deepest hope that the \u201c15. Copyright Notice\u201d section concept will continue forward.<\/p>\n<p>That section represents a best-faith effort of a graph of knowledge sharing and derivation.  Put another way, it is a bit like a family tree tree.  One that <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n seeks to chop down and burn.<\/p>\n<p>This section, the one that the license compels us to update, is a guest book of visitors to our mind.  I do so hope a new guest book emerges.<\/p>\n<p>As someone who has published under the <abbr title=\"Open Game License\">OGL<\/abbr>\n, I\u2019ll be looking to the <a href=\"https:\/\/paizo.com\/community\/blog\/v5748dyo6si7y?The-ORC-Alliance-Grows\">ORC Alliance<\/a>.  Hoping to have a place to look at fellow gamers\u2019s guest books.<\/p>\n\n      ","source":"Take on Rules"},{"title":"On Safe Harbours, Shareholder Obligations, and Fey Contracts","link":"https:\/\/takeonrules.com\/2023\/01\/15\/on-safe-harbours-shareholder-obligations-and-fey-contracts\/","pubDate":"Sun, 15 Jan 2023 14:21:35 -0500","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2023\/01\/15\/on-safe-harbours-shareholder-obligations-and-fey-contracts\/","category":["open-source","rpgs"],"description":"<h2>Precedence, Common Rules, and Licenses<\/h2>\n        <blockquote class=\"verse epigraph\" data-id=\"20230115T122524\">\nAdmit the shame of who you are,<br \/>\nyour crooked traits are now laid bare<br \/>\nand so are those deceits you cloak<br \/>\nwhen spending time with decent folk.<br \/>\nAnd if you deal in dirty business<br \/>\ncheck it\u2019s done without a witness;<br \/>\ntreachery becomes disgrace<br \/>\nwhen played out in a public place.<br \/>\n<footer>&#8213; <cite>The Owl and the Nightengale<\/cite><\/footer><\/blockquote>\n<p>The <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Open_Game_License\">Open Game License<\/a><\/span> (<abbr title=\"Open Game License\">OGL<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOpen Game License\u201d\" title=\"Other site-wide references of \u201cOpen Game License\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OGL\">&#128214;<\/a><\/small>)\n is a fey contract; fated and doomed.  A careful read hints at irrevocable, yet that word is absent, instead allowing authorized to stand in it\u2019s stead.<\/p>\n<p>Hasbro, once eager to catch all the Pokemon, sealed the contractual fate of the <abbr title=\"Open Game License\">OGL<\/abbr>\n when it acquired <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Wizards_of_the_Coast\">Wizards of the Coast<\/a><\/span> (<abbr title=\"Wizards of the Coast\">WotC<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWizards of the Coast\u201d\" title=\"Other site-wide references of \u201cWizards of the Coast\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WOTC\">&#128214;<\/a><\/small>)\n.  As a publicly traded company Hasbro has a legal obligation to deliver shareholder value (in the form of dividends and profits).<\/p>\n<p>Wed to that obligation, Hasbro brought folks trained up in the Embrace, Extend, Extinguish strategy of Microsoft.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> <a href=\"https:\/\/investor.hasbro.com\/news-releases\/news-release-details\/hasbro-appoints-new-leadership-wizards-coast\">Hasbro Appoints New Leadership for Wizards of the Coast | Hasbro, Inc.<\/a><span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>In gaming there is one significant precedence: <em>TSR, Inc. v. Mayfair Games, Inc., 1993 WL 79272 (N.D. Ill.).<\/em><\/p>\n<p>The gist of that case is that the specific words used to describe the mechanics may be protected by copyright, however the underlying mechanics are not.  The mechanics could be Trademarked or Patented, like Magic the Gathering&rsquo;s \u201cTap\u201d concept\/symbol.<\/p>\n<p>And legal precedence is a dangerous thing\u2026as once it is established folks have a better sense of the field of play.  So long as it is ambiguous, <del>might<\/del> money makes <del>right<\/del> legality.<\/p>\n<p>If the copyright holder of the <abbr title=\"Open Game License\">OGL<\/abbr>\n (e.g. <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n) can de-authorize and by extension revoke the license, they can choose to instead threaten folks with the possibility of doing so.<\/p>\n<p>The leak of <abbr title=\"Open Game License\">OGL<\/abbr>\n likely came around a similar time that agents of <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n may have been attempting to meet under cloak of <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Non-disclosure_agreement\">Non-Disclosure Agreements<\/a><\/span> (<abbr title=\"Non-Disclosure Agreements\">NDAs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cNon-Disclosure Agreements\u201d\" title=\"Other site-wide references of \u201cNon-Disclosure Agreements\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-NDA\">&#128214;<\/a><\/small>)\n to ensnare smaller publishers of <cite><a href=\"https:\/\/www.dmsguild.com\/browse.php?affiliate_id=318171\">Dungeons and Dragons: Fifth Edition<\/a><\/cite> (<abbr title=\"Dungeons and Dragons: Fifth Edition\">5E<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons: Fifth Edition\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons: Fifth Edition\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-5E\">&#128214;<\/a><\/small>)\n material.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> <a href=\"https:\/\/www.reddit.com\/r\/dndnext\/comments\/10by6yb\/hasbro_asked_morrus_enworld_to_meet_just_before\/\">Hasbro asked Morrus (ENWorld) to meet just before Christmas. He declined. He thinks he would have been pressured to sign OGL 1.1 during that meeting. : dndnext<\/a><span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>Why might they do this?  To create a group of folks with a financial interest in jumping to this new raft.  In other words, to fracture and splinter potential resistance to <del>revocation<\/del> de-authorization attempts.  They may also want to have some visible flag bearers as well.  And the symbolism of ENWorld jumping would be a feather in the cap.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> ENWorld\u2019s early days involved news of the release of <span>Dungeons and Dragons: Third Edition<\/span> (<abbr title=\"Dungeons and Dragons: Third Edition\">3E<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons: Third Edition\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons: Third Edition\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-3E\">\ud83d\udcd6<\/a><\/small>)\n.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>Did \u201cWizards of the Bro\u201d do this?  I\u2019m sure some folks know that answer, but for me, it\u2019s speculation.<\/p>\n<p>But now various publishers, whom have long played in the safe harbour with each other, have had time to establish their plans and contingencies; and I\u2019m wishing them luck and will be bringing my support.<\/p>\n<h2 id=\"three-things-in-play\">Three Things in Play<\/h2>\n<p>I think there are three critical things in play:<\/p>\n<ul class=\"org-ul\">\n<li>Precedence<\/li>\n<li>Common Rules<\/li>\n<li>License<\/li>\n<\/ul>\n<h3 id=\"precedence\">Precedence<\/h3>\n<p>As I mentioned precedence is dangerous.  I want nothing more than for <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n to have a legal judgment issued that swats down it\u2019s revocation attempt.<\/p>\n<p>But I don\u2019t expect it to get there, because in this case, <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n is perhaps better suited at posturing and threatening other publishers while also taking their ball and going home; that is to move <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Dungeons_%26_Dragons\">Dungeons and Dragons<\/a><\/span> (<abbr title=\"Dungeons and Dragons\">D&D<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-D&D\">&#128214;<\/a><\/small>)\n to another license.<\/p>\n<p>The idea being that <abbr title=\"Dungeons and Dragons\">D&D<\/abbr>\n is the prize in all of this.  The thing we can\u2019t <del>live<\/del> hobby without.<\/p>\n<p>But think about Kleenex versus facial tissue.  Or Chapstick versus lip balm.  Or Xerox versus photocopy.  Or to Google something instead of searching.  Names can become a stand-in for the general term.<\/p>\n<p>In years past, when I talk about role-playing games, I\u2019d say \u201cYeah, I play Dungeons and Dragons.\u201d  But that was short-hand, in which if the person remained curious I could further expound.<\/p>\n<p>If we don\u2019t establish precedence, we\u2019ll need to have common rules.  So very many systems implement mechanics similar to Dungeons and Dragons.<\/p>\n<h3 id=\"common-rules\">Common Rules<\/h3>\n<p>The common rules exist, but are licensed under the <abbr title=\"Open Game License\">OGL<\/abbr>\n.  This will require rework.<\/p>\n<p>I would argue that most important in all of this opening of rules has been connecting, via the <abbr title=\"Open Game License\">OGL<\/abbr>\n, back to the roots of <abbr title=\"Dungeons and Dragons\">D&D<\/abbr>\n.  This gave the ability to walk a timeline, to find your place amongst the ubiquitous rules set and enjoy the hobby.<\/p>\n<p>It created space to innovate along many different vectors, all of which radiated from a somewhat common chassis.<\/p>\n<p>But don\u2019t conflate common rules as that I want only one rules system.  No, I want many systems.  But common rules serve a purpose of translation.  Folks who are curious about the hobby can join in and find the center of gravity and get to playing.<\/p>\n<p>I suspect that we\u2019ll see <a href=\"https:\/\/www.basicfantasy.org\">Basic Fantasy<\/a> emerge, as my understanding is that they specifically chose to include <span>Open Game Content<\/span> (<abbr title=\"Open Game Content\">OGC<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOpen Game Content\u201d\" title=\"Other site-wide references of \u201cOpen Game Content\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OGC\">&#128214;<\/a><\/small>)\n material during it\u2019s original writing.<\/p>\n<p>We collectively have the blueprints of mechanics and can project them onto a \u201cbasic\u201d chassis.<\/p>\n<h3 id=\"open-license\">Open License<\/h3>\n<p>We see <a href=\"https:\/\/paizo.com\/community\/blog\/v5748dyo6si7v?Paizo-Announces-SystemNeutral-Open-RPG-License\">Paizo announcing a system-neutral open RPG license<\/a>.  That is a critical step to foster conditions similar to the <abbr title=\"Open Game License\">OGL<\/abbr>\n safe-harbour years of <time datetime=\"2000\">2000<\/time> to <time datetime=\"2022\">2022<\/time>.  Because of legal precedence this isn\u2019t strictly necessary.<\/p>\n<p>The simplicity of the <abbr title=\"Open Game License\">OGL<\/abbr>\n, something that fit on one page, was concise, easy to read, and appeared easy to abide by.<\/p>\n<p>The license made space for communities of craft to publish.  And again, while not strictly necessary, it\u2019s helpful to understand the legal neighborhood you\u2019re playing in.<\/p>\n<p>I suspect that for things to be viable across the spectrum of players, we can expect to see the concept of <span>Product Identity<\/span> (<abbr title=\"Product Identity\">PI<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cProduct Identity\u201d\" title=\"Other site-wide references of \u201cProduct Identity\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-PI\">&#128214;<\/a><\/small>)\n and <abbr title=\"Open Game Content\">OGC<\/abbr>\n sustained.  That is what I claim as mine and what I irrevocably share.<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>To not lose all of what is in the safe-harbour, the key victory is one of precedence.  Favorable precedence allows for continuity of past works with those in the future which will almost certainly not be released under the <abbr title=\"Open Game License\">OGL<\/abbr>\n 1.0a.<\/p>\n<p>And \u201cWizards of the Bro\u201d wants to ensure that Dungeons and Dragons is where folks enter (and stay) in the role-playing hobby.  So shattering continuity seems like a viable strategy.<\/p>\n<p>Failing favorable precedence, common rules and license provide a pathway forward.  It is what worked in the past, and provides a viable pattern to move forward; given the constraints of copyright law.<\/p>\n\n      ","source":"Take on Rules"},{"title":"The Open Gaming License and Potential Attempt at Revocation","link":"https:\/\/takeonrules.com\/2023\/01\/10\/the-open-gaming-license-and-potential-attempt-at-revocation\/","pubDate":"Tue, 10 Jan 2023 23:42:34 -0500","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2023\/01\/10\/the-open-gaming-license-and-potential-attempt-at-revocation\/","category":["games","open-source","rpgs"],"description":"<h2>Bearing Witness to Alienation and Seeing a Familiar Pattern<\/h2>\n        <blockquote class=\"verse epigraph\" data-id=\"20230110T220825\">\nAnd if the whole world's singing your songs<br \/>\nAnd all of your paintings have been hung<br \/>\nJust remember what was yours<br \/>\nIs everyone's from now on<br \/>\n<br \/>\nAnd that's not wrong or right<br \/>\nBut you can struggle with it all you like<br \/>\nYou'll only get uptight<br \/>\n<footer>&#8213;Jeff Tweedy and Jim O\u2019rourke, <cite>What Light<\/cite><\/footer><\/blockquote>\n<p>In years past, I\u2019ve written \n<cite><a href=\"https:\/\/takeonrules.com\/2020\/12\/30\/discussing-the-open-gaming-license\/\">Discussing the Open Gaming License<\/a><\/cite> and \n<cite><a href=\"https:\/\/takeonrules.com\/2017\/09\/13\/celebrating-17-years-of-the-open-gaming-license\/\">Celebrating 17 Years of the Open Gaming License<\/a><\/cite>.  I, like many, had assumed (and heard assurances) that the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Open_Game_License\">Open Game License<\/a><\/span> (<abbr title=\"Open Game License\">OGL<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOpen Game License\u201d\" title=\"Other site-wide references of \u201cOpen Game License\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OGL\">&#128214;<\/a><\/small>)\n was a irrevocable safe harbor.<\/p>\n<p>However, <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Wizards_of_the_Coast\">Wizards of the Coast<\/a><\/span> (<abbr title=\"Wizards of the Coast\">WotC<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWizards of the Coast\u201d\" title=\"Other site-wide references of \u201cWizards of the Coast\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WOTC\">&#128214;<\/a><\/small>)\n and it\u2019s parent company Hasbro, via a <em>coup de main<\/em>, are posturing in a manner that telegraphs an intention of attempting to revoke the <abbr title=\"Open Game License\">OGL<\/abbr>\n.  Yes, the language that previous sentence is cumbersome because the legality and actuality will likely only be determined the court of law.<\/p>\n<p>But, let\u2019s be clear, <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n in this \u201ctest balloon\u201d has telegraphed its hostility towards the spirit of our collective understanding of the <abbr title=\"Open Game License\">OGL<\/abbr>\n.  An understanding extolled in the <a href=\"https:\/\/opengamingfoundation.org\/foundation.html\">Open Gaming Foundation\u2019s Philosophy<\/a>.<\/p>\n<p>I have listened and followed this threat of revocation and <a href=\"https:\/\/grognardia.blogspot.com\/2023\/01\/let-chaos-reign.html\">ensuing chaos<\/a> in these early days of <time datetime=\"2023\">2023<\/time>, and I feel a sense of familiar loss.  A loss akin to the shuttering of Google Reader and Google Plus.  Tools that helped facilitate both the creation of communities and a sense of community.<\/p>\n<p>There are echoes of the deprecation of the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Atom_(text_editor)\">Atom<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cAtom\u201d\" title=\"Other site-wide references of \u201cAtom\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-ATOM\">&#128214;<\/a><\/small>\n with it\u2019s assumptive shift to <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Visual_Studio_Code\">Visual Studio Code<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cVisual Studio Code\u201d\" title=\"Other site-wide references of \u201cVisual Studio Code\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-VSC\">&#128214;<\/a><\/small>\n.  And one should consider that consider that <a href=\"https:\/\/ghuntley.com\/fracture\/\">Visual Studio Code is designed to fracture<\/a>.<\/p>\n<p>I also see echoes of the <abbr title=\"Open Game License\">OGL<\/abbr>\n in <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/GitHub\">Github<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cGithub\u201d\" title=\"Other site-wide references of \u201cGithub\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-GITHUB\">&#128214;<\/a><\/small>\n\u2019s release of <a href=\"https:\/\/github.com\/features\/copilot\">Copilot<\/a>; a tool trained against a massive corpus of open-source software code; now monetized.  The stakes of Copilot are perhaps financially more lucrative, bur perhaps not as qualitatively lucrative as <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n\u2019s <abbr title=\"Open Game License\">OGL<\/abbr>\n antics.<\/p>\n<p>Read the <a href=\"https:\/\/githubcopilotinvestigation.com\/\">GitHub Copilot investigation<\/a> for details.  It may not be the same situation, but the neighborhoods look familiar to the one <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n looks to haunt.<\/p>\n<p>Rattling in the back of all of this is the legal precedent that you cannot copyright mechanics and rules (though you may copyright the language used to explain those mechanics and rules); then again does the current state of the United States Supreme court consider much of any past rulings?<\/p>\n<p>Given all of this, the logical conclusion for me is to consider <abbr title=\"Open Game License\">OGL<\/abbr>\n \u201csafe harbor\u201d as now poisoned and mined.  Perhaps we should have recognized this, given that <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n wrote the license; they crafted the binding spell and granted the gifts.  Much like Sauron.<\/p>\n<p>I think to the following:<\/p>\n<blockquote class=\"quote epigraph\" data-id=\"20221009T120354\">\n<p>\nMyth is a tear in the fabric of reality, and immense energies pour\nthrough these holy fissures.  Our stories, our poems, are rips in this\nfabric as well, however slight.\n<\/p>\n<footer>&#8213;Jay Parini, <cite>Borges and Me<\/cite><\/footer><\/blockquote>\n<p>The games intertwined with the <abbr title=\"Open Game License\">OGL<\/abbr>\n created the personal and shared myths that are part of my being and touch and \u201cbind\u201d me to so many others.  These holy fissures illumine the tenuous connection to others who find fascination, release, and joy in shared story telling and myth-making.<\/p>\n<p>In this time of disruption and chaos we will see a burst of creativity and invention.  We\u2019ll see an interesting inversion of \u201crulings not rules.\u201d  And other unpredictable things; though one thing we can predict: Hasbro in executing its shareholder obligations will seek to <del>extract<\/del> syphon all that it can from the waters of the once declared safe harbour.<\/p>\n<p>There are plenty of other folks who continue to demonstrate a commitment to facilitating the creation of shared myth.  Folks like <a href=\"https:\/\/todfoley.com\">Tod Foley<\/a>, creator of <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/323467\/CORE-Micro?affiliate_id=318171\">Creactive Options Role-Playing Engine<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cCreactive Options Role-Playing Engine\u201d\" title=\"Other site-wide references of \u201cCreactive Options Role-Playing Engine\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-CORE\">&#128214;<\/a><\/small>\n.  And Kevin Crawford, creator of <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/226996\/Stars-Without-Number-Revised-Edition?affiliate_id=318171\">Stars without Number: Revised Edition<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cStars without Number: Revised Edition\u201d\" title=\"Other site-wide references of \u201cStars without Number: Revised Edition\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-SWN\">&#128214;<\/a><\/small>\n and <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/348791\/Worlds-Without-Number?affiliate_id=318171\">Worlds without Number<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWorlds without Number\u201d\" title=\"Other site-wide references of \u201cWorlds without Number\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WWN\">&#128214;<\/a><\/small>\n.  And the folks at <a href=\"https:\/\/www.gauntlet-rpg.com\/\">The Gauntlet<\/a> and <a href=\"https:\/\/magpiegames.com\/\">Magpie Games<\/a>.<\/p>\n<p>So very many folks who\u2019ve weathered the collapse of Google Plus.  Who\u2019ve seen how the Game System License of <span>Dungeons and Dragons: Fourth Edition<\/span> (<abbr title=\"Dungeons and Dragons: Fourth Edition\">4E<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons: Fourth Edition\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons: Fourth Edition\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-4E\">&#128214;<\/a><\/small>)\n created a counter movement which grew so attractive that <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n pivoted to re-join.<\/p>\n<p>And unlike those days, there are now so very many more folks who\u2019ve played <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Dungeons_%26_Dragons\">Dungeons and Dragons<\/a><\/span> (<abbr title=\"Dungeons and Dragons\">D&D<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-D&D\">&#128214;<\/a><\/small>)\n.  Many more folks who have I suspect have come from a place of owning and\/or playing a large number of board games.  They now have a chance to join in this chaotic and nerve wracking collective attempt to escape the gravity well of a safe harbor turned piratical.<\/p>\n<p>For those still with me, I encourage you to bookmark <a href=\"https:\/\/campaignwiki.org\/rpg\/\">RPG Planet<\/a> and add it to your <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/RSS\">Rich Site Summary<\/a><\/span> (<abbr title=\"Rich Site Summary\">RSS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRich Site Summary\u201d\" title=\"Other site-wide references of \u201cRich Site Summary\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RSS\">&#128214;<\/a><\/small>)\n feed reader.  You\u2019ll find all kinds of great <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Role-playing_game\">Role Playing Game<\/a><\/span> (<abbr title=\"Role Playing Game\">RPG<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRole Playing Game\u201d\" title=\"Other site-wide references of \u201cRole Playing Game\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RPG\">&#128214;<\/a><\/small>)\n content from passionate hobbyists and professionals, who continue to blog and share their love of <abbr title=\"Role Playing Games\">RPGs<\/abbr>\n.<\/p>\n<p>One tiny change I\u2019ll make is avoiding sending dollars to <abbr title=\"Wizards of the Coast\">WotC<\/abbr>\n and Hasbro.  I also need to get back to playing games with other people and writing about them.  I just got my copy of <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/402819\/Trophy-Gold?affiliate_id=318171\">Trophy Gold<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cTrophy Gold\u201d\" title=\"Other site-wide references of \u201cTrophy Gold\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-TROPHY-GOLD\">&#128214;<\/a><\/small>\n, <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/268198\/?affiliate_id=318171\">Trophy Dark<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cTrophy Dark\u201d\" title=\"Other site-wide references of \u201cTrophy Dark\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-TROPHY-DARK\">&#128214;<\/a><\/small>\n, and <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/402821\/Trophy-Loom?affiliate_id=318171\">Trophy Loom<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cTrophy Loom\u201d\" title=\"Other site-wide references of \u201cTrophy Loom\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-TROPHY-LOOM\">&#128214;<\/a><\/small>\n.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Gearing up to Run Creative Options Role-Playing Engine (CORE)","link":"https:\/\/takeonrules.com\/2022\/05\/23\/gearing-up-to-run-creative-options-role-playing-engine-core\/","pubDate":"Mon, 23 May 2022 22:28:48 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2022\/05\/23\/gearing-up-to-run-creative-options-role-playing-engine-core\/","category":["campaigns","open-source","rpgs"],"description":"<h2>Seeking Free and Open Source Systems<\/h2>\n        <p>In one of my game groups we\u2019ve been talking about game systems and our personal values; in particular free and open source games.<\/p>\n<p>One person recommended that we take a look at <a href=\"https:\/\/twitter.com\/AsIfProds\">Tod Foley<\/a>\u2019s <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/323467\/CORE-Micro?affiliate_id=318171\">Creactive Options Role-Playing Engine<\/a><\/cite> (<abbr title=\"Creactive Options Role-Playing Engine\">CORE<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cCreactive Options Role-Playing Engine\u201d\" title=\"Other site-wide references of \u201cCreactive Options Role-Playing Engine\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-CORE\">&#128214;<\/a><\/small>)\n system.  I am early in my exploration, but believe that the <abbr title=\"Creactive Options Role-Playing Engine\">CORE<\/abbr>\n system is extracted from Tod\u2019s <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/142287\/DayTrippers-Core-Rules?affiliate_id=318171\">DayTrippers<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDayTrippers\u201d\" title=\"Other site-wide references of \u201cDayTrippers\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DAY-TRIPPERS\">&#128214;<\/a><\/small>\n.<\/p>\n<p>And hot damn did the <abbr title=\"Creactive Options Role-Playing Engine\">CORE<\/abbr>\n rules impress me.<\/p>\n<p>You throw a number of six-sided dice equal to your stat; pick the highest roll and add modifiers.  Compare that against the stated difficulty, and consult the <cite><a href=\"#table-237\">Table 237: CORE Action Resolution Table<\/a><\/cite>.<\/p>\n<div class=\"table-wrapper\">\n<table id=\"table-237\" class=\"\" aria-labelledby=\"caption-237\"><caption id=\"caption-237\">Table 237: \nCORE Action Resolution Table\n<\/caption>\n\n<thead>\n<tr><th scope=\"col\">Roll Result<\/th><th scope=\"col\">Fictional Result<\/th><\/tr>\n<\/thead>\n<tbody>\n<tr><th scope=\"row\">Miss by 2 or more<\/th><td><strong>No and<\/strong> something negative<\/td><\/tr>\n<tr><th scope=\"row\">Miss by 1<\/th><td><strong>No but<\/strong> something positive<\/td><\/tr>\n<tr><th scope=\"row\">Hit exactly<\/th><td><strong>Yes but<\/strong> something negative<\/td><\/tr>\n<tr><th scope=\"row\">Exceed by 1<\/th><td><strong>Yes<\/strong><\/td><\/tr>\n<tr><th scope=\"row\">Exceed by 2 or more<\/th><td><strong>Yes and<\/strong> something positive<\/td><\/tr>\n<\/tbody>\n\n<\/table><\/div>\n\n<p>Pair that with the <i class=\"dfn\">Character Development Scenes<\/i>; which each player gets at most one per session, and you have fantastic opportunities to grow and develop your characters.<\/p>\n<p>These are often \u201cflashback\u201d scenes, and there are four types.<\/p>\n<dl class=\"grid\">\n<dt>Bad Realization<\/dt>\n<dd>Introduce a new and problematic aspect to your character or group, and get XP.<\/dd>\n<dt>Flash of Insight<\/dt>\n<dd>Unlock a memory, training, bit of previously \u201coff screen\u201d planning, to get +1 to a roll.<\/dd>\n<dt>Inner Voices<\/dt>\n<dd>Tie life shaping events to the scene, and get an extra die on the roll.<\/dd>\n<dt>Revealed Experience<\/dt>\n<dd>Explain how your learning to place in the past to spend XP to advance a skill.<\/dd>\n<\/dl>\n<p>Those two bits of \u201ctech\u201d pair with some other narrative tech to create what appears to be a great foundation for emergent stories.<\/p>\n<p>I\u2019m looking forward to running this game and providing some feedback to support a game designer who\u2019s releasing systems free and open.  <ins class=\"update\" datetime=\"2022-05-24\"><em><strong><time datetime=\"2022-05-24\">May 24, 2022<\/time> update:<\/strong><\/em> \nTod has released the CORE Micro rules under the <a href=\"https:\/\/creativecommons.org\/licenses\/by\/4.0\/\">Creative Commons Attribution License CC-BY 4.0<\/a>.\n<\/ins>\n<\/p>\n<p>Having this shared modular space excites the hacking sensibilities of my game group.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Amplifying the Blogosphere (v2021-06-07)","link":"https:\/\/takeonrules.com\/2021\/06\/07\/amplifying-the-blogosphere-v2021-06-07\/","pubDate":"Mon, 07 Jun 2021 17:22:37 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2021\/06\/07\/amplifying-the-blogosphere-v2021-06-07\/","category":["campaigns","open-source","programming","responses","rpgs","settings","standards"],"description":"<h2>A Mix of Old and New Gaming and Software<\/h2>\n        <p>These are a few of the posts that rattled around and drew my interest.<\/p>\n<h2 id=\"gygax-75---week-1\">Gygax 75 - Week 1<\/h2>\n<p>Over on <a href=\"https:\/\/blog.peer-less.net\/\" class=\"u-url p-name\" rel=\"cite\">3-Rune Blog<\/a>, the author&rsquo;s getting started on the <a href=\"https:\/\/blog.peer-less.net\/2021\/06\/gygax-75-week-1.html\" class=\"u-url p-name\" rel=\"cite\">Gygax 75 challenge<\/a>.  This was <a href=\"https:\/\/rayotus.itch.io\/gygax75\" class=\"u-url p-name\" rel=\"cite\">originally framed by Ray Otus<\/a>, who exhumed and reanimated an article by <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Gary_Gygax\">Gary Gygax<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cGary Gygax\u201d\" title=\"Other site-wide references of \u201cGary Gygax\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-GARY-GYGAX\">&#128214;<\/a><\/small>\n.<\/p>\n<p>What struck me is the first week&rsquo;s exercises:<\/p>\n<ol>\n<li>Get a notebook.<\/li>\n<li>Compile a collection of pitches that sell the world and tell players what to expect.<\/li>\n<li>Create an annotated bibliography of sources and why you like each source.<\/li>\n<\/ol>\n<p>I&rsquo;ve been having a private conversation with someone.  We&rsquo;ve discussed pitching campaigns.  And lamented the preponderance of amazing campaigns and adventures.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> You might see echoes of that lament in my <cite><a href=\"https:\/\/takeonrules.com\/2021\/06\/06\/revisiting-the-red-hand-of-doom\/\">Revisiting the \u201cRed Hand of Doom\u201d<\/a><\/cite>\n.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>At this point, I&rsquo;m not going to commit to the <cite>Gygax 75 Challenge<\/cite>, but I&rsquo;m going to take what I read as a reminder to hold the possibility of doing the challenge.<\/p>\n<h2 id=\"ravenloft-numbers\">Ravenloft Numbers<\/h2>\n<p>Good old <span><a href=\"https:\/\/www.dmsguild.com\/product\/17527\/I6-Ravenloft-1e?affiliate_id=318171\">I6 Ravenloft<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cI6 Ravenloft\u201d\" title=\"Other site-wide references of \u201cI6 Ravenloft\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-I6-RAVENLOFT\">&#128214;<\/a><\/small>\n.  The adventure that launched numerous campaign settings and reboots for later versions of <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Dungeons_%26_Dragons\">Dungeons and Dragons<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-D&D\">&#128214;<\/a><\/small>\n.<\/p>\n<p>In <cite><a href=\"https:\/\/bxblackrazor.blogspot.com\/2021\/06\/ravenloft-numbers.html\" class=\"u-url p-name\" rel=\"cite\">Ravenloft Numbers<\/a><\/cite>, <a href=\"https:\/\/bxblackrazor.blogspot.com\/\">B\/X Blackrazor<\/a> dives into the numers.<\/p>\n<p>First, the author outlines the total monetary incentive of challenging Strahd.  Then the time it would take to launch an assault on Strahd&rsquo;s castle.<\/p>\n<p>The author details a possible and reasonably safe raid procedure.  They calculate that the party will likely have 59 turns (e.g., 59 ten-minute intervals) to get in and stake Strahd.<\/p>\n<p>Reading this, you can get a sense of the challenges of dungeon crawls that involve time tracking and random encounters.  You can see how setting up <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Experience_point\">Experience Points<\/a><\/span> (<abbr title=\"Experience Points\">XP<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cExperience Points\u201d\" title=\"Other site-wide references of \u201cExperience Points\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-XP\">&#128214;<\/a><\/small>)\n for <span>Gold Piece<\/span> (<abbr title=\"Gold Piece\">gp<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cGold Piece\u201d\" title=\"Other site-wide references of \u201cGold Piece\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-GP\">&#128214;<\/a><\/small>)\n creates a risk reward incentive; especially when monster&rsquo;s yield paltry <abbr title=\"Experience Points\">XP<\/abbr>\n compared to the treasures of their lairs.<\/p>\n\n<aside  role=\"note\" class=\"margin\">\n\n<p><small>And I think to the later editions, where killing mosnters was the way you got <abbr title=\"Experience Points\">XP<\/abbr>\n; that tipped the incentive structure and the play style of <abbr title=\"Dungeons and Dragons\">D&amp;D<\/abbr>\n.  It became much more the memorable combats instead of the memorable heists.<\/small><\/p>\n<\/aside>\n\n<p>How&rsquo;s that for <cite><a href=\"https:\/\/takeonrules.com\/2017\/04\/30\/heeding-gygaxs-admonition\/\">Heeding Gygax&#39;s Admonition<\/a><\/cite>\n?  I love this analytical breakdown of a beloved and legendary adventure.<\/p>\n<h2 id=\"10-years-of-open-source\">10 Years of Open Source<\/h2>\n<p>For years, I&rsquo;ve been following <a href=\"https:\/\/solnic.codes\" class=\"u-url p-name\" rel=\"cite\">solnic<\/a>&rsquo;s open source developments.  I&rsquo;ve contributed to some of their projects (or projects that they&rsquo;ve contributed to).  I&rsquo;ve also used and love the tools they&rsquo;ve developed.<\/p>\n<p><span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Free_and_open-source_software\">Free Open Source Software<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cFree Open Source Software\u201d\" title=\"Other site-wide references of \u201cFree Open Source Software\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-FOSS\">&#128214;<\/a><\/small>\n development is intense, and capitalism extracts labor offered up from these endeavors.  And it&rsquo;s lonely work, positioned for exploitation.<\/p>\n\n<blockquote  class=\"h-cite\" cite=\"https:\/\/solnic.codes\/2021\/06\/04\/10-years-of-open-source\/\">\n\n<p>Let\u2019s be real - we\u2019re not one big, global, family. Most of the work is done by a tiny little fraction of the global developer population. We like to think that we\u2019re all in this together but we\u2019re not.<\/p>\n<p>You can come up with great looking stats, showing that thousands of people are contributing to OSS projects \u2013 but in reality the actual bulk of work, the countless hours spent on building core functionality, testing, fixing bugs, making performance improvements, supporting users, writing docs, responding to issues, dealing with pull requests and so on are done by maintainers.<\/p>\n\n\n<footer>&mdash;<cite><a href=\"https:\/\/solnic.codes\/2021\/06\/04\/10-years-of-open-source\/\" class=\"u-url p-name\" rel=\"cite\">10 Years of Open Source<\/a><\/cite>\n<\/footer>\n<\/blockquote>\n\n<p>Show appreciation for what you&rsquo;re using.  Understand that our &ldquo;modern&rdquo; world is built on so many offers of free or exploited labor.<\/p>\n<h2 id=\"death-on-the-reik\">Death on the Reik<\/h2>\n<p>In <cite><a class=\"u-url p-name\" href=\"https:\/\/takeonrules.com\/series\/burning-warhammer\/\">Campaign: Burning Warhammer<\/a><\/cite>\n, the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Gamemaster\">Game Master<\/a><\/span> (<abbr title=\"Game Master\">GM<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cGame Master\u201d\" title=\"Other site-wide references of \u201cGame Master\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-GM\">&#128214;<\/a><\/small>)\n is cribbing some of the situations from <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/229191\/Warhammer-Fantasy-Roleplay-First-Edition--Death-on-the-Reik-The-Enemy-Within-Part-2?affiliate_id=318171\">Death on the Reik<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDeath on the Reik\u201d\" title=\"Other site-wide references of \u201cDeath on the Reik\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DEATH-ON-THE-REIK\">&#128214;<\/a><\/small>\n.<\/p>\n<p>Over at Geek Native, Andrew Girdwood wrote up <cite><a href=\"https:\/\/www.geeknative.com\/132013\/classic-for-a-reason-a-review-of-warhammers-death-on-the-reik\/\" class=\"u-url p-name\" rel=\"cite\">Classic for a reason: A review of Warhammer\u2019s Death on the Reik<\/a><\/cite><\/p>\n<p>Their review of <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/303919\/WFRP-Death-on-the-Reik--Enemy-Within-Campaign-Directors-Cut-Volume-2?affiliate_id=318171\">Death on the Reik (Director's Cut)<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDeath on the Reik (Director's Cut)\u201d\" title=\"Other site-wide references of \u201cDeath on the Reik (Director's Cut)\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DEATH-ON-THE-REIK-DIRECTOR\">&#128214;<\/a><\/small>\n highlights that this new version is an update to the much beloved and venerable 30 year old.  The authors have incorporated 30 years of feedback to help smooth over some of the bumpy transitions.<\/p>\n<p>There are people who have played through this campaign multiple times, and keep coming back to it.  That must be a magic storyline!<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I know I&rsquo;m eager to run these adventures, but alas, gaming is all a matter of prioritization.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<h2 id=\"time-tested-processes\">Time Tested Processes<\/h2>\n\n<blockquote  class=\"h-cite\" cite=\"https:\/\/www.vam.ac.uk\/blog\/digital\/how-we-brought-the-online-collections-into-the-modern-age-using-web-technology-of-the-past\">\n\nUpdates to object records do happen but the changed objects are such a small subset of the collection that implementing simultaneous updates for ETC would yield little benefit. Scheduled, nightly updates remove the burden on the servers to generate pages on demand. Furthermore using a minimal amount of Javascript increases browser compatibility thus making the collections usable on as many devices as possible.\n\n<footer>&mdash;<cite><a href=\"https:\/\/www.vam.ac.uk\/blog\/digital\/how-we-brought-the-online-collections-into-the-modern-age-using-web-technology-of-the-past\" class=\"u-url p-name\" rel=\"cite\">How We Brought the Online Collections into the Modern Age using Web Technology of the Past<\/a><\/cite>\n<\/footer>\n<\/blockquote>\n\n<p>I hope more of us are seeing this critical observation: if content doesn&rsquo;t change all that much, pre-build those pages.<\/p>\n\n<blockquote  class=\"h-cite\" cite=\"https:\/\/www.vam.ac.uk\/blog\/digital\/how-we-brought-the-online-collections-into-the-modern-age-using-web-technology-of-the-past\">\n\nConsidering the amount of pages that need to be generated, speed was an important factor when determining what static site generator to use. Hugo did not disappoint in this area and lived up to its claim of being the \u201cworld\u2019s fastest framework for building websites\u201d. It manages to generate 10,000 pages in around 30 seconds. So in total it generally takes an hour to generate the entirety of ETC, which is remarkable for over one million pages! This is a task that will only need to be done in exceptional circumstances, as more commonly a small subset of pages will need to be regenerated.\n\n<footer>&mdash;<cite><a href=\"https:\/\/www.vam.ac.uk\/blog\/digital\/how-we-brought-the-online-collections-into-the-modern-age-using-web-technology-of-the-past\" class=\"u-url p-name\" rel=\"cite\">How We Brought the Online Collections into the Modern Age using Web Technology of the Past<\/a><\/cite>\n<\/footer>\n<\/blockquote>\n\n<p>Seriously, understand the problem you&rsquo;re trying to solve.  I&rsquo;m loath to think how much energy\u2014and the variety of energy\u2014goes into <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Single-page_application\">Single-Page Applications<\/a><\/span> (<abbr title=\"Single-Page Applications\">SPAs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cSingle-Page Applications\u201d\" title=\"Other site-wide references of \u201cSingle-Page Applications\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-SPA\">&#128214;<\/a><\/small>)\n.  Contrast with the above outlined proposal: pre-compile those objects that infrequently change.<\/p>\n<h2 id=\"meta\">Meta<\/h2>\n<p>I spent a bit of time refining the functions I wrote about in <cite><a href=\"https:\/\/takeonrules.com\/2021\/06\/07\/molding-emacs-to-reinforce-habits-i-want-to-develop\/\">Molding Emacs to Reinforce Habits I Want to Develop<\/a><\/cite>\n.  The revised function does a few things:<\/p>\n<ol>\n<li>Optionally sets the <code>toc<\/code> frontmatter attribute.  When <code>toc<\/code> is true, then the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Hugo_(software)\">Hugo<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cHugo\u201d\" title=\"Other site-wide references of \u201cHugo\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-HUGO\">&#128214;<\/a><\/small>\n template will render a table of contents.<\/li>\n<li>Write the preliminary front matter if and only if the file does not already exist.<\/li>\n<li>Append the active region content to the named file.<\/li>\n<\/ol>\n<p>What this means is that now I can more easily gather content for my <cite>Amplifying the Blogosphere<\/cite> series.<\/p>\n<p>I&rsquo;m sure there are other ways to do this, but for my context this works well enough.  You can <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/blob\/e8c26eaaaabd0aca78d596be545af8472da3509e\/emacs\/jnf-blogging.el#L22-L85\">read the functional changes on Github<\/a><\/p>\n<p>And with this new function, I&rsquo;m thinking I may further recondition my <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/RSS\">Rich Site Summary<\/a><\/span> (<abbr title=\"Rich Site Summary\">RSS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRich Site Summary\u201d\" title=\"Other site-wide references of \u201cRich Site Summary\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RSS\">&#128214;<\/a><\/small>)\n and feed habits.  It&rsquo;s now easier for me to read those various sources and write up a quick response.  This further connects some of my reading to some of my writing, which I suspect will create a virtuous cycle.<\/p>\n\n      ","source":"Take on Rules"},{"title":"A Year or So of Emacs","link":"https:\/\/takeonrules.com\/2021\/05\/15\/a-year-or-so-of-emacs\/","pubDate":"Sat, 15 May 2021 08:06:35 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2021\/05\/15\/a-year-or-so-of-emacs\/","category":["emacs","knowledge-management","open-source","text-editors"],"description":"<h2>Swapping out Ivy for Selectrum<\/h2>\n        <p><time datetime=\"2021-05-12\" title=\"2021-05-12\">Earlier this month<\/time> Jakub Kadl\u010d\u00edk<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> <a href=\"https:\/\/frostyx.cz\">FrostyX.cz<\/a><span class=\"hidden\">)<\/span><\/span>\n<\/small>\n wrote <cite><a href=\"https:\/\/frostyx.cz\/posts\/a-year-with-emacs\" class=\"u-url p-name\" rel=\"cite\">A Year with Emacs<\/a><\/cite>.  <time datetime=\"2021-05-15\" title=\"2021-05-15\">This morning<\/time> on <a href=\"https:\/\/reddit.com\/r\/emacs\">\/r\/emacs<\/a>, someone asked <cite><a href=\"https:\/\/www.reddit.com\/r\/emacs\/comments\/ncugqg\/how_much_time_you_need_to_spent_with_emacs_to\/\" class=\"u-url p-name\" rel=\"cite\">How much time you need to spent with Emacs to become more productive?<\/a><\/cite><\/p>\n<p>All of this reminds me that I&rsquo;m coming upon my first anniversary of adopting <abbr title=\"Emacs\">Emacs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cEmacs\u201d\" title=\"Other site-wide references of \u201cEmacs\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-EMACS\">&#128214;<\/a><\/small>\n.  According to <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/commit\/0ede41a\">my configuration log entry<\/a> It looks like <time datetime=\"2020-05-24\">May 24<sup>th, 2020<\/time> is my Emacs anniversary.  I have no idea how that was my first &ldquo;commit&rdquo; for Emacs.  But in the days prior, I was committing changes to configure my <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Visual_Studio_Code\">Visual Studio Code<\/a><\/span> (<abbr title=\"Visual Studio Code\">VS Code<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cVisual Studio Code\u201d\" title=\"Other site-wide references of \u201cVisual Studio Code\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-VSC\">&#128214;<\/a><\/small>)\n installation, so we&rsquo;ll go with <time datetime=\"2020-05-24\">May 24<sup>th, 2020<\/time>.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I have long since uninstalled <abbr title=\"Visual Studio Code\">VS Code<\/abbr>\nand <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Atom_(text_editor)\">Atom<\/a><\/span> (<abbr title=\"Atom\">Atom<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cAtom\u201d\" title=\"Other site-wide references of \u201cAtom\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-ATOM\">\ud83d\udcd6<\/a><\/small>)\n.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>Earlier I wrote about <cite><a href=\"https:\/\/takeonrules.com\/2020\/10\/18\/why-i-chose-emacs-as-my-new-text-editor\/\">Why I Chose Emacs as My New Text Editor<\/a><\/cite>\n, and I&rsquo;ve changed a few things.  Instead of using Ivy\/Counsel\/Swiper, I&rsquo;m now using Selectrum\/Consult.<\/p>\n<h2 id=\"switching-from-ivy-to-selectrum\">Switching from Ivy to Selectrum<\/h2>\n<p>During my first year of Emacs, I&rsquo;ve started following <a href=\"https:\/\/sachachua.com\/blog\/\" class=\"u-url p-name\" rel=\"cite\">Sacha Chau&rsquo;s blog<\/a>.  This includes Emacs News.  And I&rsquo;ve joined <a href=\"https:\/\/reddit.com\/r\/emacs\" class=\"u-url p-name\" rel=\"cite\">\/r\/emacs<\/a> and <a href=\"https:\/\/reddit.com\/r\/planetemacs\" class=\"u-url p-name\" rel=\"cite\">\/r\/planetemacs<\/a>.  A common thread is tips and tricks that people have used to further configure <abbr title=\"Emacs\">Emacs<\/abbr>\n to their needs or as a challenge\/exercise for themselves.<\/p>\n<p>I had initially settled on <a href=\"https:\/\/github.com\/abo-abo\/swiper\" class=\"u-url p-name\" rel=\"cite\">Ivy and Swiper and Counsel<\/a> for search enhancements.  And I experimented with <a href=\"https:\/\/emacs-helm.github.io\/helm\/\" class=\"u-url p-name\" rel=\"cite\">Helm<\/a> <em>et al<\/em> including <a href=\"https:\/\/github.com\/emacsorphanage\/helm-swoop\" class=\"u-url p-name\" rel=\"cite\">Helm Swoop<\/a>)<\/p>\n<p>In <time datetime=\"2021\">2021<\/time>, I learned about <a href=\"https:\/\/github.com\/raxod502\/selectrum\" class=\"u-url p-name\" rel=\"cite\">Selectrum<\/a> and then <a href=\"https:\/\/github.com\/oantolin\/embark\/\" class=\"u-url p-name\" rel=\"cite\">Embark<\/a>.<\/p>\n<p>As I read about Selectrum, I honed in on two sections:<\/p>\n\n<blockquote  class=\"h-cite\" cite=\"https:\/\/github.com\/raxod502\/selectrum\">\n\n<p>The focus of Selectrum is on providing an enhanced completion UI and compose with other packages which stay within the constraints of the standard Emacs API.<\/p>\n<p>\u2026<\/p>\n<p>Ivy is a promising alternative to Selectrum. It is described as a minimal alternative to Helm which provides a simpler interface. The problem with Ivy is that its architecture and API have grown organically, and as a result the implementation is complex. Ivy was originally designed to be used as a backend to Swiper, a buffer search package that originally used Helm. When Ivy became a more general-purpose interactive selection package, more and more special cases were added to try to make various commands work properly. As a result, the ivy-read API is complex with around 20 arguments and multiple special cases for particular values. Numerous functions in Ivy, Counsel, and Swiper have special cases hardcoded into them to detect when they&rsquo;re being called from specific other functions in the other two packages.<\/p>\n\n\n<footer>&mdash;<cite><a href=\"https:\/\/github.com\/raxod502\/selectrum\" class=\"u-url p-name\" rel=\"cite\">Selectrum README.md<\/a><\/cite>\n<\/footer>\n<\/blockquote>\n\n<p>What caught my eye is Selectrum&rsquo;s cleaving close to the <abbr title=\"Emacs\">Emacs<\/abbr>\n <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/API\">Application Programming Interface<\/a><\/span> (<abbr title=\"Application Programming Interface\">API<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cApplication Programming Interface\u201d\" title=\"Other site-wide references of \u201cApplication Programming Interface\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-API\">&#128214;<\/a><\/small>)\n and that Ivy has expanded in scope.  In my experience this means that Ivy will be harder to maintain\/extend\/support compared to Selectrum.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> Note: I&rsquo;m looking at scopes of 5+ years, as I intend for Emacs to be my editor of choice until I&rsquo;m no longer using a computer.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>That difference prompted me to explore what would it take to switch?<\/p>\n<p>First, I clarified what I wanted.  The primary feature was Swiper-like behavior.  I use Swiper all the time to orient to the contents of a buffer.  I found <code>consult-line<\/code> to be a great replacement.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> <code>consult-line<\/code> comes from the <a href=\"https:\/\/github.com\/minad\/consult\" class=\"u-url p-name\" rel=\"cite\">Consult package<\/a><span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>Other behaviors that I&rsquo;ve found useful is <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/blob\/e063baf78b8049dede98dea2c84ec3329310806a\/emacs\/jnf-ivy.el#L70-L86\" class=\"u-url p-name\" rel=\"cite\">Counsel edit mode<\/a> and <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/blob\/e063baf78b8049dede98dea2c84ec3329310806a\/emacs\/jnf-ivy.el#L110-L126\" class=\"u-url p-name\" rel=\"cite\">wgrep-ag<\/a>.<\/p>\n<p>With those features in mind, I began my refactor.<\/p>\n<p>I went through <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/blob\/e063baf78b8049dede98dea2c84ec3329310806a\/emacs.d\/init.el\" class=\"u-url p-name\" rel=\"cite\">my Emacs configuration<\/a>, and gathered up all of the declarations I had for using Ivy, Swiper, and Counsel.  I moved those into a file.  Then restarted Emacs.  And &ldquo;everything&rdquo; worked.  I removed the require for that file, and nothing broke on initialization.  This gave me enough confidence to say was successful in isolating those packages and packages that depended on them.\n<aside  role=\"note\" class=\"margin\">\n\n<p><small>You can see that file in in my <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/blob\/e063baf78b8049dede98dea2c84ec3329310806a\/emacs\/jnf-ivy.el\" class=\"u-url p-name\" rel=\"cite\">emacs\/jnf-ivy.el<\/a> file.  Also, I did all of this rework with <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Git\">Git<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cGit\u201d\" title=\"Other site-wide references of \u201cGit\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-GIT\">\ud83d\udcd6<\/a><\/small>\ncommits.  Thus, if I broke something, I could rollback.<\/small><\/p>\n<\/aside>\n<\/p>\n<p>With Ivy <em>et al<\/em> isolated, I created <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/blob\/e063baf78b8049dede98dea2c84ec3329310806a\/emacs\/jnf-selectrum.el\" class=\"u-url p-name\" rel=\"cite\">emacs\/jnf-selectrum.el<\/a> and started configuring\/building the replacement.<\/p>\n\n<aside  role=\"note\" class=\"margin\">\n\n<p><small>At one point, during the replacement, I decided to halt work and go back to Ivy.  I wasn&rsquo;t yet convinced that this puttering on my Emacs config was worthwhile.  Later, I picked up the work and completed the cutover.<\/small><\/p>\n<\/aside>\n\n<p>I tested the replacement by removing the require for <code>jnf-ivy.el<\/code> and adding a require for <code>jnf-selectrum.el<\/code>.  With some poking and prodding, I was mostly up and running.  And to verify the isolation, I removed the require for <code>jnf-selectrum.el<\/code> and nothing broke during Emacs initialization.  So I had successfully compartmentalized both the Ivy and Selectrum ecosystem.<\/p>\n<p>A few things in the Selectrum \/ Consult ecosystem that I love:<\/p>\n<h3 id=\"preview-of-buffers\">Preview of Buffers<\/h3>\n<p>For most of the buffer oriented features (e.g., <code>consult-bookmark<\/code>, <code>consult-buffer<\/code>, etc.), when the mini-buffer opens and you select a different entry, the original window shows the file.  A nice helper when you&rsquo;re looking to change context.<\/p>\n<h3 id=\"embark-export\">Embark Export<\/h3>\n<p>The <code>embark-export<\/code> function, similar to Ivy&rsquo;s occur, opens a new buffer with the current mini-buffer results.  From there I can use <code>wgrep<\/code> to edit lines from other files.  All within the original mini-buffer context.<\/p>\n<h3 id=\"consult-yank\">Consult Yank<\/h3>\n<p>The <code>consult-yank<\/code> function is one that&rsquo;s on probation.  I <em>might<\/em> like it, but am continuing to try it out.  The <code>consult-yank<\/code> function wraps <code>yank<\/code> but provides a minibuffer preview of what you would be yanking back into the buffer.  The hiccup, is you need to confirm the <code>consult-yank<\/code>.<\/p>\n<p>As a long-time user of <a href=\"https:\/\/github.com\/snark\/jumpcut\" class=\"u-url p-name\" rel=\"cite\">Jumpcut<\/a>, I like the ability to preview what I&rsquo;m about to paste, and be able to select from the history of copy\/cut calls.<\/p>\n<h2 id=\"further-delves-into-elisp\">Further Delves into Elisp<\/h2>\n<p>I&rsquo;ve been programming for years, and have preivouly dabbled with <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Lisp_(programming_language)\">Lisp<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cLisp\u201d\" title=\"Other site-wide references of \u201cLisp\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-LISP\">&#128214;<\/a><\/small>\n.  It&rsquo;s different, but in the last month, <abbr title=\"Emacs Lisp\">elisp<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cEmacs Lisp\u201d\" title=\"Other site-wide references of \u201cEmacs Lisp\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-ELISP\">&#128214;<\/a><\/small>\n started feeling quite natural.<\/p>\n<p>I&rsquo;ve written about <cite><a href=\"https:\/\/takeonrules.com\/2020\/12\/06\/adding-hydra-menu-for-org-roam-lookup-in-emacs\/\">Adding Hydra Menu for Org Roam Lookup in Emacs<\/a><\/cite>\n, and extended <abbr title=\"Emacs\">Emacs<\/abbr>\n to conform to my note taking, blogging, software development, <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/RSS\">Rich Site Summary<\/a><\/span> (<abbr title=\"Rich Site Summary\">RSS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRich Site Summary\u201d\" title=\"Other site-wide references of \u201cRich Site Summary\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RSS\">&#128214;<\/a><\/small>)\n reader, and <abbr title=\"Portable Document Format\">PDF<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cPortable Document Format\u201d\" title=\"Other site-wide references of \u201cPortable Document Format\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-PDF\">&#128214;<\/a><\/small>\n annotator.  These days, I look at &ldquo;What am I doing outside of Emacs that I might be able to better incorporate into Emacs?&rdquo;<\/p>\n<p>I wrote an <code>advice-add<\/code> function that mirrored a feature I found in Helm Swoop.  Namely, when you initiate <code>consult-line<\/code>, if you&rsquo;ve highlighted text, it will use that for the initial filter.  Otherwise, it will use the word at point.<\/p>\n<pre><code>(advice-add #'consult-line\n            :around\n            #'jnf\/consult-line\n            '((name . &quot;wrapper&quot;)))\n\n(defun jnf\/consult-line (consult-line-function &amp;rest rest)\n  &quot;Advising function around `CONSULT-LINE-FUNCTION'.\n\nWhen there's an active region, use that as the first parameter\nfor `CONSULT-LINE-FUNCTION'.  Otherwise, use the current word as\nthe first parameter.  This function handles the `REST' of the\nparameters.&quot;\n  (interactive)\n  (if (use-region-p)\n      (apply consult-line-function\n        (buffer-substring (region-beginning) (region-end)) rest)\n      (apply consult-line-function\n        (thing-at-point 'word) rest)))\n\n<\/code><\/pre>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>With my Emacs config are little changes I&rsquo;ve made to make Emacs better fit my approaches.  I&rsquo;m also<\/p>\n<p>Emacs feels like an ecosystem that is defiant of corporate Embrace, Extend, and Extingush approaches.  I look to <cite><a href=\"https:\/\/www.baldurbjarnason.com\/2021\/the-oss-bubble-and-the-blogging-bubble\/\" class=\"u-url p-name\" rel=\"cite\">The Open-Source Software bubble that is and the blogging bubble that was<\/a><\/cite>, and am thankful I continue blogging and use a <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Free_and_open-source_software\">Free Open Source Software<\/a><\/span> (<abbr title=\"Free Open Source Software\">FOSS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cFree Open Source Software\u201d\" title=\"Other site-wide references of \u201cFree Open Source Software\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-FOSS\">&#128214;<\/a><\/small>)\n text editor that&rsquo;s not actively a part of Google, Microsoft, Facebook, Amazon, nor Apple&rsquo;s full-blown extraction efforts.<\/p>\n<p>My plan with Emacs is to engage with the community of practioners and provide what help I can.  I&rsquo;m not an expert, but I&rsquo;m more experienced than some of us using Emacs.<\/p>\n<ins aria-labelledby=\"section-update-2021-05-17\" class=\"update\" datetime=\"2021-05-17\"><h2 id=\"section-update-2021-05-17\"><time datetime=\"2021-05-17\">May 17, 2021<\/time> update<\/h2> <p>I had nor have no current problems with Ivy\/Swiper\/Counsel (<abbr title=\"Ivy\/Swiper\/Counsel\">ISC<\/abbr>).  I think they&rsquo;re great tools.  What I found is that Selectrum\/Consult\/Embark (<abbr title=\"Selectrum\/Consult\/Embark\">SCE<\/abbr>) covered how I used <abbr title=\"Ivy\/Swiper\/Counsel\">ISC<\/abbr>.<small class=\"side-container\">\n<span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n<span class=\"side\" role=\"note\"> There may be additional functionality of <abbr title=\"Ivy\/Swiper\/Counsel\">ISC<\/abbr> that I\u2019m missing out on, or don\u2019t know exist.<span class=\"hidden\">)<\/span><\/span>\n<\/small><\/p>\n<p>So, given that my desired feature set exists in <abbr title=\"Ivy\/Swiper\/Counsel\">ISC<\/abbr> and <abbr title=\"Selectrum\/Consult\/Embark\">SCE<\/abbr>, then I started looking at package size and surface area of functionality.  In my experience, the larger that surface area the more effort will be required to maintain it.  Which isn&rsquo;t to say that that effort won&rsquo;t be applied, it&rsquo;s instead framing that as a risk.<\/p>\n<p>And in taking the time to test and use both, I&rsquo;m in a better position to be more specific in why I&rsquo;m using the package.<\/p>\n\n<\/ins>\n\n\n      ","source":"Take on Rules"},{"title":"Recontextualizing my Relationship with Burning Wheel","link":"https:\/\/takeonrules.com\/2021\/02\/28\/recontextualizing-my-relationship-with-burning-wheel\/","pubDate":"Sun, 28 Feb 2021 10:12:18 -0500","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2021\/02\/28\/recontextualizing-my-relationship-with-burning-wheel\/","category":["burning-wheel","games","open-source","publishers","rpgs","sci-fi"],"description":"<h2>Community Requires Governance and Accountability<\/h2>\n        <blockquote class=\"quote epigraph\" data-id=\"20221009T120347\">\n<p>\nWhen someone shows you who they are believe them; the first time.\n<\/p>\n<footer>&#8213; Maya Angelou<\/footer><\/blockquote>\n<ins class=\"update margin\" role=\"note\" datetime=\"2021-04-11\"><small><em><strong><time datetime=\"2021-04-11\">Apr 11, 2021<\/time> update:<\/strong><\/em><\/small> \n<p><small>Luke Crane has <time datetime='2021-03-26'>since<\/time> issued <a itemprop='mentions' href='https:\/\/www.kickstarter.com\/projects\/burningwheel\/the-perfect-rpg\/posts\/3125191'>an update<\/a>.  I am not going to dissect the statement; that is for you to decide.<\/small><\/p>\n<p><small>I have updated <a href=\"https:\/\/takeonrules.com\/site-map\/content-disclaimers\/#luke-crane\">my dislcaimer<\/a> to advise consideration before buying any <span>Burning Wheel Headquarters<\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cBurning Wheel Headquarters\u201d\" title=\"Other site-wide references of \u201cBurning Wheel Headquarters\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-BWHQ\">\ud83d\udcd6<\/a><\/small>\nproducts.<\/small><\/p>\n\n<\/ins>\n\n<p><time title=\"2021-02-27\" datetime=\"2021-02-27\">Yesterday<\/time> Luke Crane, the creator of <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/448187\/Burning-Wheel-Gold-Revised?affiliate_id=318171\">Burning Wheel Gold<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cBurning Wheel Gold\u201d\" title=\"Other site-wide references of \u201cBurning Wheel Gold\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-BURNING-WHEEL-GOLD\">&#128214;<\/a><\/small>\n, <a href=\"https:\/\/takeonrules.com\/2021\/02\/27\/giving-platform\/\" >showed me who he was<\/a>\n.  And I&rsquo;m spending considerable time sifting through this.<\/p>\n<p>I&rsquo;ve contacted Kickstarter to review Luke&rsquo;s position of privilege, the <a href=\"https:\/\/www.kickstarter.com\/trust\">rules of creators<\/a>, and review any conflict of interest.<span class=\"sidenote-number\"><ins class=\"update side\" role=\"note\" datetime=\"2021-03-01\"><small><em><strong><time datetime=\"2021-03-01\">Mar 1, 2021<\/time> update:<\/strong><\/em> \nLuke Crane is the Vice President of Community at Kickstarter.\n<\/small><\/ins><\/span>\n<\/p>\n<p>I requested that he cancel and refund <a href=\"https:\/\/www.kickstarter.com\/projects\/burningwheel\/torchbearer-2nd-edition\/\">my Torchbearer 2<sup>nd<\/sup> Edition<\/a> Kickstarter pledge.  He did.<\/p>\n<p>I will not be contributing any additional money to Luke Crane nor any other <abbr title=\"Burning Wheel Headquarters\">BWHQ<\/abbr>\n effort.<\/p>\n<p>I reached out to a few people who have been champions of Burning Wheel, just to check up on them.  Let them know I see this and that it sucks.<\/p>\n<ins class=\"update margin\" role=\"note\" datetime=\"2021-02-28\">\n<p><small><em><strong><time datetime=\"2021-02-28\">Feb 28, 2021<\/time> update: <\/strong><\/em>I read about <a href=\"https:\/\/jecreane.medium.com\/words-that-have-been-on-the-tip-of-my-tongue-for-two-years-f1f5780a7c92\" class=\"u-url p-name\" rel=\"cite\">one person&rsquo;s account of bringing an unrelated but serious concern to Luke<\/a>.  Their account provides further context.<\/small><\/p>\n<\/ins>\n\n<p>All of that is the easy stuff.<\/p>\n<ins class=\"update margin\" role=\"note\" datetime=\"2021-03-02\"><small><em><strong><time datetime=\"2021-03-02\">Mar 2, 2021<\/time> update:<\/strong><\/em><\/small> \n<p><small>And before I go any further, understand that I&rsquo;m writing about Luke Crane&rsquo;s behavior.  Eric Lang, a friend of Luke&rsquo;s, has written an <a href=\"https:\/\/m.facebook.com\/story.php?story_fbid=10158870435955856&amp;id=742100855\">open letter<\/a>.<\/small><\/p>\n<p><small>Contributors have come forth saying they were surprised by Adam being part of the <cite><a href=\"https:\/\/www.kickstarter.com\/projects\/burningwheel\/the-perfect-rpg\/\" class=\"u-url p-name\" rel=\"cite\">The Perfect RPG<\/a><\/cite>.  Those contributors included, but are not limited to: Sage LaTorra, Meguey Baker, Vincent Baker, and Jason Morningstar.  There may be others, but those four have more secure positions relative to game publishing.  They have also clarified that they have not received anything they consider harassment.<\/small><\/p>\n<p><small>I am not writing about Adam&rsquo;s behavior, which you can find <a href=\"https:\/\/www.reddit.com\/r\/HobbyDrama\/comments\/lugcr3\/tabletop_rpg_the_tragic_ballad_of_adam_koebel_the\/\">described at this Reddit thread<\/a> (Content Warning: Sexual assault, survivor stories, manipulative business practices).  In the context of Luke Crane&rsquo;s decision, in a way, I consider Adam&rsquo;s participation as a radioactive token.<\/small><\/p>\n<p><small>Luke setup a dinner party, invited some friends to each bring a dish.  Meanwhile, Luke brought a chunk of uranium and tossed it on all of the dishes and people.<\/small><\/p>\n\n<\/ins>\n\n<h2 id=\"reflecting-on-the-rules-as-written\">Reflecting on the Rules as Written<\/h2>\n<p>The next part is challenging; I love <cite>Burning Wheel Gold<\/cite>\n.<\/p>\n<p>I&rsquo;m a systems-oriented person.  That game hits all the right notes for me: it&rsquo;s reinforcing interactions; the transparency of the task, intent, and consequences system; the forward facing and meaningful nature of the <span>Beliefs, Instincts, and Traits<\/span> (<abbr title=\"Beliefs, Instincts, and Traits\">BITs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cBeliefs, Instincts, and Traits\u201d\" title=\"Other site-wide references of \u201cBeliefs, Instincts, and Traits\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-BITS\">&#128214;<\/a><\/small>)\n.<\/p>\n<p>But I&rsquo;m recontextualizing that.  Luke&rsquo;s ongoing behavior regarding his launch, cancelling, and silence around <cite><a href=\"https:\/\/www.kickstarter.com\/projects\/burningwheel\/the-perfect-rpg\/\" class=\"u-url p-name\" rel=\"cite\">The Perfect RPG<\/a><\/cite> casts new light on <cite>Burning Wheel Gold<\/cite>\n.<span class=\"sidenote-number\"><ins class=\"update side\" role=\"note\" datetime=\"2021-03-02\"><small><em><strong><time datetime=\"2021-03-02\">Mar 2, 2021<\/time> update:<\/strong><\/em> \nThe snarky voice in me says that Luke thought the silent subtitle of <cite>The Perfect RPG<\/cite> was <em>is the games we played with our friends<\/em>.  I can read that phrase, that I conjured up, through a charitable or manipulative lens.\n<\/small><\/ins><\/span>\n<\/p>\n<p>In slipping Adam Koebel onboard, Luke abused the trust of the other contributors.  By the language of the Kickstarter, Luke invited Adam to participate.  The optics are reprehensible.  His silence is damning.<\/p>\n<ins class=\"update margin\" role=\"note\" datetime=\"2021-03-02\"><small><em><strong><time datetime=\"2021-03-02\">Mar 2, 2021<\/time> update:<\/strong><\/em><\/small> \n<p><small>As of <time title=\"2021-03-02\" datetime=\"2021-03-02\">today<\/time>, the only quasi-public communication from Luke is his &ldquo;for Backers-only&rdquo; update to <cite>The Perfect RPG<\/cite> and a few interactions with people requesting Luke cancel and refund their <a href=\"https:\/\/www.kickstarter.com\/projects\/burningwheel\/torchbearer-2nd-edition\/comments\">Torchbearer pledges<\/a>.<\/small><\/p>\n<p><small>I add this because my hope is Luke is doing the hard-work of reaching out to the many people who&rsquo;s trust he broke.  However, Luke <em>could<\/em> issue a public apology in the following form:  &ldquo;To whom it may concern, I made a mistake.  I am sorry.  In the days ahead I&rsquo;m working to understand the impact of my mistake.  In the days ahead, I will be communicating further specifics about my apology.  My plan is to communicate more details within 7 days from now.&rdquo;<\/small><\/p>\n<p><small>That kind of apology acknowledges there&rsquo;s an immediate problem, explains that you are taking the time to understand the impact, and establishes a time-frame for next steps.<\/small><\/p>\n\n<\/ins>\n\n<p>So I think of <cite>Burning Wheel Gold<\/cite>\n; how can I not read hints of sadism in Burning Wheel&rsquo;s design?<\/p>\n<p>In <cite>Burning Wheel Gold<\/cite>\n, you the player come to the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Gamemaster\">Game Master<\/a><\/span> (<abbr title=\"Game Master\">GM<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cGame Master\u201d\" title=\"Other site-wide references of \u201cGame Master\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-GM\">&#128214;<\/a><\/small>)\n with your task and intent (e.g. What are you doing and why?) You become vulnerable in that moment.  You must disclose and extend trust to the table.<\/p>\n<p>Pair that trust extension with the system&rsquo;s probabilities strongly favoring failure, and you&rsquo;re opening yourself up to the <abbr title=\"Game Master\">GM<\/abbr>\n.  You give them permission to strike at the character&rsquo;s intent and beliefs.<\/p>\n<p>In the rules as written, Luke encourages the <abbr title=\"Game Master\">GM<\/abbr>\n to be clear about the consequences.  However, Luke concedes in the game text that he often fails to layout the consequences ahead of time.<span class=\"sidenote-number\"><ins class=\"update side\" role=\"note\" datetime=\"2021-02-28\"><small><em><strong><time datetime=\"2021-02-28\">Feb 28, 2021<\/time> update:<\/strong><\/em> \n<cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/448189\/Burning-Wheel-Codex?affiliate_id=318171\">Burning Wheel Codex<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cBurning Wheel Codex\u201d\" title=\"Other site-wide references of \u201cBurning Wheel Codex\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-BURNING-WHEEL-CODEX\">\ud83d\udcd6<\/a><\/small>\n<\/small><\/ins><\/span>\n In other words, he witholds information in how he will respond as a <abbr title=\"Game Master\">GM<\/abbr>\n.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> And I realize that always stating consequences can be difficult, but practice this reflex.  If you need a framework consider Rob Donoghue&rsquo;s essay on <cite><a href=\"https:\/\/walkingmind.evilhat.com\/2018\/01\/17\/risks\/\" class=\"u-url p-name\" rel=\"cite\">Potential Risks<\/a><\/cite><span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>That behavior echoes my earlier assessment: Luke positions himself just above the rules, but off-handedly humble-braggingly acknowledges its a bad habit.<\/p>\n<p>When you have trust, this creates beautiful narrative tension.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> My case in point being Judd Karlman and Sean Nittner&rsquo;s <a href=\"https:\/\/anchor.fm\/actualplay\">&ldquo;The Shoeless Peasant&rdquo; actual play podcast<\/a>.  It&rsquo;s evident that Sean and Judd have a strong degree of trust.  There was a particular moment that I might have requested a script change, but that moment worked well and didn&rsquo;t diminish Vena&rsquo;s agency.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>When you don&rsquo;t have trust, it creates potential emotional danger.  Reflect on the power dynamic and its obvious; I offer up my intentions, I enter an arrangement favoring failure, and the <abbr title=\"Game Master\">GM<\/abbr>\n may strike with near impunity.<\/p>\n<p>When I run, I try to state the general consequences of failure before anyone throws dice or even commits to action.  Going forward, I&rsquo;m going strive to clarify that consequences are negotiable; If a consequence sits poorly, I want there to be space for anyone to say &ldquo;Try another way.&rdquo; Instead of speaking just to Lines and Veils, I&rsquo;m going to be bringing Brie Beau&rsquo;s <cite><a href=\"https:\/\/briebeau.com\/thoughty\/script-change\/\" class=\"u-url p-name\" rel=\"cite\">Script Change RPG Toolbox<\/a><\/cite> into play.<\/p>\n<h2 id=\"closed-games-and-lack-of-governance\">Closed Games and Lack of Governance<\/h2>\n<p>The next part I&rsquo;m re-evaluating is closed games.  Luke Crane &ldquo;owns&rdquo; the rules presentation of <cite>Burning Wheel Gold<\/cite>\n.  With some caveats, I &ldquo;own&rdquo; the creative work I build on top of those rules presentations.<\/p>\n<p>There&rsquo;s an analogue to my using Apple hardware to assist in writing my blog post.  Yet there&rsquo;s a difference, I have far more influence over <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Role-playing_game\">Role Playing Games<\/a><\/span> (<abbr title=\"Role Playing Games\">RPGs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRole Playing Games\u201d\" title=\"Other site-wide references of \u201cRole Playing Games\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RPG\">&#128214;<\/a><\/small>)\n than I do towards computers and operating systems.<\/p>\n<p>So I ask myself, how willing am I to co-mingle with someone else&rsquo;s walled garden?<\/p>\n<p>I have a long running, personal, and nagging concern that it is a liability to not use a game with an open license.<\/p>\n<p>No one&rsquo;s yet coming to take the physical copies of games sitting on my shelf.  I can run my <span><a href=\"https:\/\/rpggeek.com\/rpg\/389\/basic-dungeons-dragons\">Dungeons and Dragons: Basic\/Expert<\/a><\/span> (<abbr title=\"Dungeons and Dragons: Basic\/Expert\">B\/X<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons: Basic\/Expert\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons: Basic\/Expert\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-B\/X\">&#128214;<\/a><\/small>)\n <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Dungeons_%26_Dragons\">Dungeons and Dragons<\/a><\/span> (<abbr title=\"Dungeons and Dragons\">D&D<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-D&D\">&#128214;<\/a><\/small>)\n just fine.<\/p>\n<p>However, without an open license, any community around the game depends on the benevolence of the owner of that rules system.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> Any community that extends beyond a single game table of friends playing their version of the game.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n In other words, the community lacks governance around a critical and central component of their existence.<\/p>\n<p>This is an ingredient for collapse.<\/p>\n<h2 id=\"next-steps\">Next Steps<\/h2>\n<p>At this point, <cite>Burning Wheel Gold<\/cite>\n may be a non-starter for many people.  Which I understand.  Me, I&rsquo;m prepared to continue playing <cite>Burning Wheel Gold<\/cite>\n, but not without adjustments.<\/p>\n<p><time title=\"2021-02-28\" datetime=\"2021-02-28\">This evening<\/time>, I&rsquo;m looking at the two games in which I&rsquo;m currently participating: <cite><a class=\"u-url p-name\" href=\"https:\/\/takeonrules.com\/series\/new-vistas-in-the-thel-sector\/\">New Vistas in the Thel Sector<\/a><\/cite>\n and <cite><a class=\"u-url p-name\" href=\"https:\/\/takeonrules.com\/series\/burning-warhammer\/\">Campaign: Burning Warhammer<\/a><\/cite>\n.  Both games are released &ldquo;All Rights Reserved&rdquo;.  One bit of baggage for each of those games is the strong and hard connection to each game&rsquo;s creator.<\/p>\n<p>I&rsquo;m looking at <cite>Burning Wheel Gold<\/cite>\n and working through the baggage that is Luke Crane.  Invoking the <cite>Let it Ride<\/cite> rule, he&rsquo;s not getting anymore of my money.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> And for those who know the rules, there&rsquo;s an implication that this could change.  That&rsquo;s intentional.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<ins class=\"update\" datetime=\"2021-02-28\"><p><em><strong><time datetime=\"2021-02-28\">Feb 28, 2021<\/time> update:<\/strong><\/em> \nOne immediate task is to bring to the <cite>Burning Wheel Gold<\/cite>\ngroup the current understanding of it&rsquo;s creator.  To give everyone an opportunity to consent or decline playing the game with that system.  And if someone says &ldquo;I&rsquo;m not comfortable.&rdquo;  We&rsquo;ll drop the game without question.<br \/>\nLikewise, I intend to run <cite>Burning Wheel Gold<\/cite>\n&rsquo;s in the future, but I&rsquo;m going to introduce the understood context to the group.  It&rsquo;s about modeling consent, accountability, and transparency.<br \/>\n\n<\/p><\/ins>\n\n<p>I&rsquo;ll be working on modifications to my blog to provide context; I haven&rsquo;t quite determined the implementation but I&rsquo;m going to be relying on <a href=\"https:\/\/github.com\/jeremyf\/takeonrules-hugo-theme\/blob\/main\/data\/glossary.yml\">my glossary<\/a> to bring that context forward.<\/p>\n<p>I&rsquo;m also looking at other systems to test out; Ones that hits all of the notes I&rsquo;m hoping to hear.  A prime contender is <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/269946\/Sand-Dogs?affiliate_id=318171\">Sand Dogs<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cSand Dogs\u201d\" title=\"Other site-wide references of \u201cSand Dogs\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-SAND-DOGS\">&#128214;<\/a><\/small>\n, which is an iteration of <span><a href=\"https:\/\/vsca.blog\/2019\/02\/12\/soft-horizon-srd\/\">Soft Horizon<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cSoft Horizon\u201d\" title=\"Other site-wide references of \u201cSoft Horizon\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-SOFT-HORIZON\">&#128214;<\/a><\/small>\n.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> <a href=\"https:\/\/vsca.blog\/\">Brad Murray<\/a>, creator of <cite>Sand Dogs<\/cite>\nand <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/79933\/Diaspora?affiliate_id=318171\">Diaspora<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDiaspora\u201d\" title=\"Other site-wide references of \u201cDiaspora\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DIASPORA\">\ud83d\udcd6<\/a><\/small>\n, has shown me who he is: A loving, transparent, and accountable person.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>But for now, I plan to keep playing in these closed source games; After all those games involve a group of people.  I don&rsquo;t see any problems with <cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/226996\/Stars-Without-Number-Revised-Edition?affiliate_id=318171\">Stars without Number: Revised Edition<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cStars without Number: Revised Edition\u201d\" title=\"Other site-wide references of \u201cStars without Number: Revised Edition\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-SWN\">&#128214;<\/a><\/small>\n but for our <cite>Burning Wheel Gold<\/cite>\n I&rsquo;m going to ask that we have a discussion.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Deplatforming","link":"https:\/\/takeonrules.com\/2021\/01\/09\/deplatforming\/","pubDate":"Sat, 09 Jan 2021 10:23:47 -0500","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2021\/01\/09\/deplatforming\/","category":["knowledge-management","open-source","reflections","standards"],"description":"<h2>Don't Cede Your Voice<\/h2>\n        <p><time datetime=\"2021-01-08\" title=\"2020-01-08\">Yesterday<\/time>, <a href=\"https:\/\/blog.twitter.com\/en_us\/topics\/company\/2020\/suspension.html\">Twitter banned Donald Trump<\/a>.  As President, he still has ample venues for communication.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> As a narcissist, he&rsquo;ll keep checking and pressing on all the other venues for any possible re-entry.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>In <time datetime=\"2019-04\">April of 2019<\/time>, Google shut down <a href=\"https:\/\/plus.google.com\/\">Google+<\/a>, dispersing a large number of tabletop gamers.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> As a whole, I wouldn&rsquo;t call it a community, but Google+ was a place with lots of conversation and engagement around tabletop <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Role-playing_game\">Role Playing Games<\/a><\/span> (<abbr title=\"Role Playing Games\">RPGs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRole Playing Games\u201d\" title=\"Other site-wide references of \u201cRole Playing Games\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RPG\">\ud83d\udcd6<\/a><\/small>)\n.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n.  Google+ provided a melting pot of numerous game style approaches, which helped fuel what I see now as an explosion of creativity and mixture of gaming styles.<\/p>\n<p>On <time datetime=\"2013-07-15\">July 15, 2013<\/time>, Google shut down <a href=\"https:\/\/www.google.com\/reader\/about\/\">Google Reader<\/a>, removing a ubiquitous tool that helped connect people through syndicated content.<\/p>\n\n<aside  role=\"note\" class=\"margin\">\n\n<p><small>A fascinating site to go wander around is <cite><a href=\"https:\/\/killedbygoogle.com\/\" class=\"u-url p-name\" rel=\"cite\">Killed by Google<\/a><\/cite>.  You can see a veritable field of over 200 services or products Google has ended.<\/small><\/p>\n<\/aside>\n\n<p>I look at the list of blogs I follow, and see a lot of entries for <dfn>blogspot.com<\/dfn>, a Google provided blogging service.  I anticipate in the not too distant future, that platform will go away.<\/p>\n<p>I encourage you all to read <cite><a href=\"https:\/\/matthiasott.com\/articles\/into-the-personal-website-verse\" class=\"u-url p-name\" rel=\"cite\">Into the Personal-Website-Verse<\/a><\/cite> by Matthias Ott.  In that lengthy post, Ott describes the problems of relying on these services and lays out steps to own your experience while also using those services.<\/p>\n<p>Twitter and Facebook decide what content you see;  When you rely on closed protocols for communication, those messages are at the whim of the provider of those protocols.<\/p>\n<p>Imagine, if some algorithm decided when (or if) you saw email addressed to you sent by people in your address book.  Google flirted with this in their <a href=\"https:\/\/en.wikipedia.org\/wiki\/Inbox_by_Gmail\">Inbox by Gmail<\/a> offering.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I&rsquo;m not even going to go into search engines.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>I encourage you to think about what you&rsquo;re writing and creating.<\/p>\n<h2 id=\"whats-your-plan-when-you-lose-a-platform\">What&rsquo;s Your Plan When You Lose a Platform?<\/h2>\n<ins class=\"update margin\" role=\"note\" datetime=\"2021-01-27\"><small><em><strong><time datetime=\"2021-01-27\">Jan 27, 2021<\/time> update:<\/strong><\/em><\/small> \n<p><small>A post around deplatforming came through my feed, read the societal dangers of these platforms having what the author dubs &ldquo;demi-state powers&rdquo;:<\/small><\/p>\n<blockquote  class=\"h-cite\" cite=\"https:\/\/protesilaos.com\/politics\/2021-01-26-platformarchs-demistate-deplatforming\/\">\n<p><small>Today some online network is gagging your political opponents and you approve of it because\nyou deplore those people. Tomorrow the banking system of a cashless economy will be able to\nrender anyone monetarily homeless just by denying them services. Extend that to health\ninsurance and pharmaceuticals and all other industries where platformarchs exist. And then try\nto answer with sincerity, <em>who governs and wheres is the locus of power.<\/em><\/small><\/p>\n<footer><small>&mdash;\n<span class=\"p-author h-card\">Protesilaos Stavrou<\/span>, <cite><a href=\"https:\/\/protesilaos.com\/politics\/2021-01-26-platformarchs-demistate-deplatforming\/\" class=\"u-url p-name\" rel=\"cite\">On platformarchs, the demi-state, and deplatforming<\/a><\/cite>\n<\/small><\/footer>\n<\/blockquote>\n\n<\/ins>\n\n<p>I chose to move from a <a href=\"https:\/\/wordpress.com\/\">Wordpress.com<\/a> hosted site; Partially because readers began reporting that Wordpress was injecting advertisements into my blog posts.  Also, because I wanted to have better control over my content.<\/p>\n\n<aside  role=\"note\" class=\"margin\">\n\n<p><small><dfn>Wordpress<\/dfn> is a great blogging platform, built on open source software, and committed to content portability (e.g. giving you access to all of your content if you want to migrate it elsewhere).<\/small><\/p>\n<p><small><strong>If you are looking for a hosted blogging service, go with Wordpress.<\/strong><\/small><\/p>\n<p><small>They&rsquo;ll be around longer than Blogspot.  Wordpress&rsquo;s mission and values in action tell me that even if they go away, there will be a strong commitment to help ease the migration of everyone&rsquo;s content.<\/small><\/p>\n\n<\/aside>\n\n<p>As of <time datetime=\"2021-01-09\" title=\"2021-01-09\">today<\/time>, the entire content of my website sits on my local machines and a few remote servers.<\/p>\n<p>That content is all of the HTML and image files for this website, as well as the components used to build those HTML files.<\/p>\n<p>One perk in this setup is even if I am disconnected from the Internet, I can reference what I&rsquo;ve written, make updates, and write future posts.<\/p>\n<ins class=\"update\" datetime=\"2021-01-13\"><p><em><strong><time datetime=\"2021-01-13\">Jan 13, 2021<\/time> update:<\/strong><\/em> \nI <time datetime=\"2021-01-13\" title=\"2021-01-13\">now<\/time> use <a href=\"https:\/\/nearlyfreespeech.net\">Nearly Free Speech<\/a> to host my site.  Why the move?  Because <a href=\"https:\/\/takeonrules.com\/2021\/01\/13\/farewell-github-pages-hello-nearly-free-speech\/\" >I'm angry at Github's recent firing of a Jewish engineer<\/a>\n.  Also because <a href=\"https:\/\/www.nearlyfreespeech.net\/about\/faq#BecauseFuckNazisThatsWhy\" class=\"u-url p-name\" rel=\"cite\">Nearly Free Speech&rsquo;s hosting policy regarding free speech<\/a> is as admirrable as I could hope.\n<\/p><\/ins>\n\n<p><del datetime=\"2021-01-13\">As of <time datetime=\"2021-01-09\" title=\"2021-01-09\">today<\/time>, I use <a href=\"https:\/\/pages.github.com\/\">Github Pages<\/a> to host my site.<\/del><\/p>\n<p>When I publish my site, I copy up to <del datetime=\"2021-01-13\">Github<\/del> <ins datetime=\"2021-01-13\">my hosting provider<\/ins> the HTML and image files.  <del datetime=\"2021-01-13\">You can even <a href=\"https:\/\/github.com\/takeonrules\/takeonrules.github.io\">navigate these files as code<\/a><\/del>.<\/p>\n<p>If Github were to end that hosting service, I would find another hosting service.  I would need to do some <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Domain_Name_System\">Domain Name System<\/a><\/span> (<abbr title=\"Domain Name System\">DNS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDomain Name System\u201d\" title=\"Other site-wide references of \u201cDomain Name System\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DNS\">&#128214;<\/a><\/small>)\n work to point to the new hosting service.  Then I would copy my HTML and image files up to that host, and be done with it.<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>If you value the content you are creating, spend a bit of time reflecting on what it would mean to lose your platform.<\/p>\n<p>What content have you created and released that you&rsquo;d want to continue to be available?  What does your presence or voice on that platform mean to you?<\/p>\n<p>What about the relationships you&rsquo;ve established on those platforms?  If that platform went away, how would you communicate with those friends?<\/p>\n<p>The almighty algorithm will curate your experience, don&rsquo;t cede anymore to it than you must.<\/p>\n<h2 id=\"postscript\">Postscript<\/h2>\n<p>One strategy I&rsquo;ve developed is to syndicate content from my blog onto Twitter, Facebook, Reddit, and Mastodon.  I also publish three types of feeds for my site:<\/p>\n<ul>\n<li><a href=\"https:\/\/takeonrules.com\/index.atom\">ATOM feed<\/a><\/li>\n<li><a href=\"https:\/\/takeonrules.com\/index.xml\">RSS feed<\/a><\/li>\n<li><a href=\"https:\/\/takeonrules.com\/index.json\">JSON feed<\/a><\/li>\n<\/ul>\n<p>I also use an <dfn><span><a href=\"https:\/\/en.wikipedia.org\/wiki\/RSS\">Rich Site Summary<\/a><\/span> (<abbr title=\"Rich Site Summary\">RSS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRich Site Summary\u201d\" title=\"Other site-wide references of \u201cRich Site Summary\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RSS\">&#128214;<\/a><\/small>)\n feed reader<\/dfn> which pulls content from a wide variety of blogs and news feeds.<\/p>\n<p>The feed reader I use, doesn&rsquo;t curate what and when I see something.  In other words, at the top of the list are the newest articles from all of the sites that I subscribe to.<\/p>\n<p>I encourage you to adopt an <abbr title=\"Rich Site Summary\">RSS<\/abbr>\n feed reader, but make sure that it doesn&rsquo;t algorithmically curate what and when something comes through your feed.<\/p>\n<p>For example, I wouldn&rsquo;t trust Google News or Apple News to provide you with an unadulterated timeline of posts.<\/p>\n<p>I use <a href=\"https:\/\/github.com\/skeeto\/elfeed\">Elfeed<\/a> for my <abbr title=\"Rich Site Summary\">RSS<\/abbr>\n client.  I&rsquo;m certain that it does not modify the order in which I see content.<\/p>\n<p>In the past, I used <a href=\"https:\/\/inoreader.com\/\">Inoreader<\/a>, and found it to be a wonderful experience.<\/p>\n<h3 id=\"post-postscript\">Post Postscript<\/h3>\n<p>If you have any questions about finding a suitable <abbr title=\"Rich Site Summary\">RSS<\/abbr>\n reader, <a href=\"https:\/\/takeonrules.com\/contact-me\/\" >please ask<\/a>\n.<\/p>\n<p>Likewise, if you have questions about a personal website, <a href=\"https:\/\/takeonrules.com\/contact-me\/\" >please ask<\/a>\n.<\/p>\n<p>Getting started in this technical landscape might be intimidating, but I promise a personal website can be a fun place to fiddle around and learn some stuff.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Why I Chose Emacs as My New Text Editor","link":"https:\/\/takeonrules.com\/2020\/10\/18\/why-i-chose-emacs-as-my-new-text-editor\/","pubDate":"Sun, 18 Oct 2020 11:07:35 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2020\/10\/18\/why-i-chose-emacs-as-my-new-text-editor\/","category":["emacs","open-source","programming","text-editors"],"description":"<h2>Hint: I Took the Time to Build What I Needed<\/h2>\n        <p>About <time datetime=\"2005-08\">15 or so years ago<\/time>, I was changing jobs.  I was leaving the walled garden of an <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Integrated_development_environment\">Integrated Development Environment<\/a><\/span> (<abbr title=\"Integrated Development Environment\">IDE<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cIntegrated Development Environment\u201d\" title=\"Other site-wide references of \u201cIntegrated Development Environment\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-IDE\">&#128214;<\/a><\/small>)\n for a proprietary language that deployed to an <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/IBM_System_i\">IBM System iSeries<\/a><\/span> (<abbr title=\"IBM System iSeries\">AS\/400<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cIBM System iSeries\u201d\" title=\"Other site-wide references of \u201cIBM System iSeries\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-AS400\">&#128214;<\/a><\/small>)\n.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> We wrote in <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/IBM_RPG\">Report Program Generator programming language from IBM<\/a><\/span> (<abbr title=\"Report Program Generator programming language from IBM\">IBM RPG<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cReport Program Generator programming language from IBM\u201d\" title=\"Other site-wide references of \u201cReport Program Generator programming language from IBM\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RPGP\">\ud83d\udcd6<\/a><\/small>)\nand Cool Plex, which looked a lot of meta-code and what I now know to be <a href=\"https:\/\/www.wikidata.org\/wiki\/Q7839826\">RDF Triples<\/a><span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>At my new job, I was writing web-facing applications using open source technology and deploying to Linux.  I needed to find an editor to help me with the task.<\/p>\n<p>I spent a bit of time exploring my options.  During that exploration, I learned of <a href=\"https:\/\/www.gnu.org\/software\/emacs\/\">Emacs<\/a> from <a href=\"https:\/\/www.oddbird.net\/authors\/carl\/\">Carl Meyer<\/a>.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> Carl is a friend of mine from high school, and has contributed a lot to the world.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>At the time I had three young children, I had just changed jobs, changed programming languages, and couldn&rsquo;t wrap my head around Emacs.  I wanted my editor to behave like other <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Graphical_user_interface\">Graphical User Interface<\/a><\/span> (<abbr title=\"Graphical User Interface\">GUI<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cGraphical User Interface\u201d\" title=\"Other site-wide references of \u201cGraphical User Interface\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-GUI\">&#128214;<\/a><\/small>)\n applications.<\/p>\n<p>I didn&rsquo;t take the time to walk through the Emacs tutorial, and left Emacs behind.<\/p>\n<p>A few months into my new job, I switched languages and paradigms again.  In <time datetime=\"2005-12-03\">December 2005<\/time>, my company hopped in a van and drove to Chicago to learn about <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Django_(web_framework)\">Django<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDjango\u201d\" title=\"Other site-wide references of \u201cDjango\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DJANGO\">&#128214;<\/a><\/small>\n and <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Ruby_on_Rails\">Ruby on Rails<\/a><\/span> (<abbr title=\"Ruby on Rails\">Rails<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRuby on Rails\u201d\" title=\"Other site-wide references of \u201cRuby on Rails\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-ROR\">&#128214;<\/a><\/small>)\n.  Within a week, our organization adopted Ruby on Rails.<\/p>\n<p>At that time, I adopted <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/TextMate\">Textmate<\/a><\/span> (<abbr title=\"Textmate\">TM<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cTextmate\u201d\" title=\"Other site-wide references of \u201cTextmate\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-TEXTMATE\">&#128214;<\/a><\/small>)\n as my editor.  It had a beautiful user-interface and required little effort to learn.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I wasn&rsquo;t aware of how useful a shell environment could be; In the years I&rsquo;d learn more.  I had, during my professional life, often relied on GUI views into files, systems, and processes.  So I didn&rsquo;t have a mental model that would have further nudged me towards an integrated text editor.  And in my hubris, I didn&rsquo;t step through the Emacs tutorial.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>At the time Textmate was closed source. I used it and loved it, but it began to lag.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> The search a project function started misbehaving and gridning projects to a halt.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n I found <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Sublime_Text\">Sublime Text<\/a><\/span> (<abbr title=\"Sublime Text\">Sublime<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cSublime Text\u201d\" title=\"Other site-wide references of \u201cSublime Text\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-SUBLIME\">&#128214;<\/a><\/small>)\n and switched.  At the time, Sublime was positioning as a Textmate replacement.<\/p>\n<p>Then, as I engaged more and more in open source projects, I started wanting an open source text editor.  I learned about Atom in 2015.  It was open source and acted enough like Sublime, that I switched.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> During this time, I dabbled with <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Vim_(text_editor)\">Vim<\/a><\/span> (<abbr title=\"Vim\">vim<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cVim\u201d\" title=\"Other site-wide references of \u201cVim\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-VIM\">\ud83d\udcd6<\/a><\/small>)\n.  However, the modal nature of editing felt foreign.  At times, I&rsquo;d try out a tutorial, but it never stuck.  I also thought about revising Textmate as the owner later released it as open source.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>Forward to <time datetime=\"2020-03\">earlier this year<\/time>.  I had begun noticing more and more bugs and breaks in Atom.  Not one to fear changing editors, I started looking.<\/p>\n<p>I also gave <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Visual_Studio_Code\">Visual Studio Code<\/a><\/span> (<abbr title=\"Visual Studio Code\">VS Code<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cVisual Studio Code\u201d\" title=\"Other site-wide references of \u201cVisual Studio Code\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-VSC\">&#128214;<\/a><\/small>)\n a spin, and found it disconcerting.  First, it felt constraining and off-putting. The configuration ecosystem felt clunky. The plugins felt like an App Store. Everything felt like VS Code was trying to obfuscate it&rsquo;s underlying systems.<\/p>\n\n<aside  role=\"note\" class=\"margin\">\n\n<p><small>Years ago, I started aspiring to write most of my commit messages following <a href=\"https:\/\/tbaggery.com\/2008\/04\/19\/a-note-about-git-commit-messages.html\">Tim Pope&rsquo;s guidance on commit messages<\/a>.  To this day, I try to write meaningful commit messages, knowing that these commit messages will most often be close to the code.<\/small><\/p>\n<p><small>Some may put that information in a pull request message on Github or Gitlab, but that information does not remain close to the code. However, that information is now inextricably tied to the details of Github. When I want to spelunk through my code, I don&rsquo;t want to have to go to Github to get a view into what happened. I want my <code>git annotate<\/code> and <code>git log<\/code> to carry as much meaning as possible.<\/small><\/p>\n\n<\/aside>\n\n<p>The proverbial last straw was the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Git\">Git<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cGit\u201d\" title=\"Other site-wide references of \u201cGit\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-GIT\">&#128214;<\/a><\/small>\n prompt for commit messages.  The prompt was a small input box; It didn&rsquo;t encourage meaningful commit messages. Instead it encouraged terse commits. That feature alone told me that people using it will be encouraged to write bad commit messages. I didn&rsquo;t want to be that guy with my text editor.<\/p>\n<p>So, I spent a bit of time again testing <abbr title=\"Vim\">vim<\/abbr>\n and Emacs.<\/p>\n<p>I again tried <abbr title=\"Vim\">vim<\/abbr>\n but it felt off.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I use Vim when I shell out to a server.  I haven&rsquo;t done it much recently, because I&rsquo;d likely use Emacs&rsquo;s <a href=\"https:\/\/www.emacswiki.org\/emacs\/TrampMode\">Tramp mode<\/a>.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>I tried Emacs, and worked my way through the Tutorial.  It was the strong commitment to the Tutorial and honestly the writing of that tutorial that nudged me to dive further in.  I spent some time fiddling with Doom or Spacemacs, but in the end settled on bare metal Emacs.<\/p>\n<p>This proved crucial.  As someone that&rsquo;s used text editors for 15+ years, I know the features I&rsquo;ve used. What I chose to do in Emacs was to complete the tutorial and start coding.<\/p>\n<p>If I found myself wanting a feature, I took note of it.  Then, I went and found the package or packages that implemented the feature.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I spent quite a bit of time reading through <a href=\"https:\/\/melpa.org\/\">Melpa<\/a>, looking for a package. What happened is that I have built up my own editor that meets my needs.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>Now, 5 months or so in, I&rsquo;m fully loving the experience. The community of Emacs developers seem to have a higher commitment to writing documentation.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> Many Emacs developers write their configuration files using the paradigm of <a href=\"https:\/\/www.wikidata.org\/wiki\/Q607703\">Literate Programming<\/a>.  In other words, they first write down their intentions for the software, then write the software.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<h2 id=\"org-mode\">Org Mode<\/h2>\n<p><a href=\"https:\/\/orgmode.org\">Org Mode<\/a> is the missing piece for my past text editors. <a href=\"https:\/\/www.wikidata.org\/wiki\/Q93149769\">Carstin Dominik<\/a> took the time to build out functionality for organizing the non-coding tasks of software development, research, and writing.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> Were I to begin my blog anew, I&rsquo;d leverage <code>org-mode<\/code> and <a href=\"https:\/\/ox-hugo.scripter.co\/\">ox-hugo<\/a> for blogging.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>Org Mode layers meaningful tools on top of plain text files; The syntax is close to Markdown, but different enough. The simplicity of structure makes the world of difference. With the plain text, I can run low-level Unix commands (e.g. <code>grep<\/code>, <code>sed<\/code>, etc.) but also have higher level programmatic access to the data.<\/p>\n<h2 id=\"magit\">Magit<\/h2>\n<p>Prior to <a href=\"https:\/\/magit.vc\/\">magit<\/a>, I almost always used command line tools for <span>Git<\/span>\n. My previous workflow would be to use Terminal to state my git commits, and then my text editor to write commit messages.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> Atom&rsquo;s slowness to open as a commit message editor was another reason I left Atom.  I don&rsquo;t want to wait multiple seconds to start writing a commit message.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>Except for reading git logs, I now do most all git tasks with Magit.  That includes an <strong>amazing<\/strong> interactive <code>git rebase<\/code> environment.<\/p>\n<h2 id=\"fill-paragraph\">Fill Paragraph<\/h2>\n<p>I must mention this lowly command.<\/p>\n<p>When Carl introduced me to Emacs, he showed me <code>fill-paragraph<\/code>. That functionality stuck with me. It&rsquo;s nothing fancy, but it shows that Emacs treats column-width as a first class citizen.<\/p>\n<p>And why is column width important?  First, <a href=\"https:\/\/tbaggery.com\/2008\/04\/19\/a-note-about-git-commit-messages.html\">re-read the note about commit message<\/a>.<\/p>\n<p>Conforming to that structure helps ensure that your <code>git log<\/code> excursions are not unduly messy.  It also helps if you&rsquo;re going to interact with the command-line.  In other words, automatic word-wrapping is nice, but its not universal, nor does it work in all contexts.<\/p>\n<p>I have used this command to quickly wrap documentation so as to not have it flow off the screen.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> For coding buffers, I disable word wrapping.  I also aspire to 120 character line width for code and 80 character line width for comments.  Why the variance?  Comments should read more like prose, and long running lines make the paragraphs harder to read.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>It ain&rsquo;t much of a command, but I&rsquo;ve held a candle for it since I learned about Emacs.<\/p>\n<h2 id=\"swiper\">Swiper<\/h2>\n<p>I never knew I wanted Swiper until I stumbled onto it.  I now use it <em>all of the time<\/em>; It&rsquo;s even replaced my default Find behavior in Emacs.<\/p>\n<p>What does it do? I type <kbd>Ctrl<\/kbd>+<kbd>S<\/kbd><small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> In Emacs parlance, that&rsquo;s <code>C-s<\/code>.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n and start typing a word.  In a mini-buffer at the bottom of the current buffer, I see the lines that include that word.  It&rsquo;s a bit like a find with context.  Importantly, this doesn&rsquo;t move my cursor in the main buffer.<\/p>\n<p>So I end up quickly referencing something and get back to typing.  Or, I can navigate through the mini-buffer and jump to that location in the main buffer.  Quite slick.<\/p>\n<h2 id=\"wgrep-ag\">WGrep-Ag<\/h2>\n<p>The <a href=\"https:\/\/github.com\/mhayashi1120\/Emacs-wgrep\/blob\/master\/wgrep-ag.el\">wgrep-ag<\/a> package sort of blew my mind. It allows you to use <span><a href=\"https:\/\/github.com\/ggreer\/the_silver_searcher\">The Silver Searcher<\/a><\/span> (<abbr title=\"The Silver Searcher\">ag<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cThe Silver Searcher\u201d\" title=\"Other site-wide references of \u201cThe Silver Searcher\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-AG\">&#128214;<\/a><\/small>)\n with <a href=\"https:\/\/github.com\/mhayashi1120\/Emacs-wgrep\">wgrep<\/a> to edit search results<\/p>\n<p>Follow along carefully:<\/p>\n<p>In Emacs, I search a project using <code>ag<\/code>.  Emacs renders the search results in a mini-buffer. In this case, the mini-buffer is a small set of rows at the bottom of Emacs that show a subset of the results.<\/p>\n<p>With the mini-buffer active (e.g. I&rsquo;ve been typing results there), I invoke <code>ivy-occur<\/code>.  That function opens all of the search results in a read-only buffer.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> While I was writing this example, I thought to myself &ldquo;I wonder if I can use <code>ivy-occur<\/code> from Swiper results?  Yes I can.  So I learned something while explaining something.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>With this new buffer, I invoke the function <code>wgrep-change-to-wgrep-mode<\/code>.  This toggles <code>ivy-occur<\/code> buffer into an edit mode.  I begin editing the search results as though it were it&rsquo;s own file.<\/p>\n<p>Then I save the edits, and <code>wgrep-ag<\/code> writes all of those changes back to the found results.<\/p>\n<p>Another way to think of it, <code>wgrep-ag<\/code> loads a semi-structured buffer. Each row has three fields: file name, line number, and line text.  I can use <code>wgrep-ag<\/code> to write those changes back to the originating file.<\/p>\n<p>Seriously, this functionality amazes me.<\/p>\n<h2 id=\"multiple-cursors\">Multiple Cursors<\/h2>\n<p>Textmate first introduced me to this powerful concept.  Since then, this functionality has been a mandatory feature of my editors.<\/p>\n<p>Two packages help deliver on this:<\/p>\n<ol>\n<li><a href=\"https:\/\/github.com\/victorhge\/iedit\">iedit<\/a> - by default, if I type <kbd>Ctrl<\/kbd>+<kbd>;<\/kbd> (e.g. <code>C-;<\/code>), the iedit package highlights each occurence of the word. I can now type and iedit updates all occurrences.<\/li>\n<li><a href=\"https:\/\/github.com\/magnars\/multiple-cursors.el\">multiple-cursors<\/a> - this package provides finer grain control, and allows me to set a cursor on ten contiguous lines and start typing.<\/li>\n<\/ol>\n<h2 id=\"expand-region\">Expand Region<\/h2>\n<p>I didn&rsquo;t know what I was missing until I installed <a href=\"https:\/\/github.com\/magnars\/expand-region.el\">expand-region<\/a>.  Now with <kbd>Ctrl<\/kbd>+<kbd>=<\/kbd> (e.g. <code>C-=<\/code>) my cursor  expands to the smallest logical region (e.g. highlighting a word), typing it again expands that region (e.g. highlighting the sentence), etc.  And <kbd>Ctrl<\/kbd>+<kbd>Shift<\/kbd>+<kbd>=<\/kbd> (e.g. <code>C-+<\/code>) contracts the region.<\/p>\n<h2 id=\"org-roam\">Org Roam<\/h2>\n<p>Building on <code>org-mode<\/code>, <a href=\"https:\/\/orgroam.com\/\">org roam<\/a> incorporates note taking paradigms inspired by <a href=\"https:\/\/en.wikipedia.org\/wiki\/Zettelkasten\">Zettelkasten<\/a>.<\/p>\n<p>I&rsquo;ve used this to write up campaign notes for my <a href=\"https:\/\/takeonrules.com\/series\/new-vistas-in-the-thel-sector\/\" >New Vistas in the Thel Sector campaign<\/a>\n.  The bi-directional link and quick note capture tools make for a dream in information management.<\/p>\n<p>In a way, it creates a Wiki that I can use Emacs to edit and navigate.<\/p>\n<ins aria-labelledby=\"section-update-2020-10-20\" class=\"update\" datetime=\"2020-10-20\"><h2 id=\"section-update-2020-10-20\"><time datetime=\"2020-10-20\">Oct 20, 2020<\/time> update<\/h2> <h2 id=\"yasnippet\">YASnippet<\/h2>\n<p>I forgot to mention <a href=\"https:\/\/github.com\/joaotavora\/yasnippet\">YASnippets<\/a>. Back in the day, I wrote a few snippets in Textmate, ported them to Sublime, and reworked them in Atom.  With YASnippets, I&rsquo;ve found an easy to use snippet manager.<\/p>\n<p>The <a href=\"https:\/\/joaotavora.github.io\/yasnippet\/\">documentation<\/a> is easy to follow. <time datetime=\"2020-10-20\">This afternoon<\/time> I wrote up a handful of snippets to help with blogging. The following snippet provides guidance for making a custom <a href=\"https:\/\/gohugo.io\/content-management\/shortcodes\/#what-a-shortcode-is\">Hugo Shortcode<\/a>:<\/p>\n<pre><code>&#123;&#123;&lt; update date=&#34;&#96;(format-time-string &#34;%Y-%m-%d&#34;)&#96;&#34;<br \/>&nbsp;&nbsp;mode=&#34;$&#123;2:$$(yas-choose-value &#39;(<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;inline&#34;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;marginnote&#34;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;paragraph&#34;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;sidenote&#34;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;section&#34;))&#125;\"<br \/>&gt;&#125;&#125;<br \/>&nbsp;&nbsp;$0<br \/>&#123;&#123;&lt; \/update &gt;&#125;&#125;<br \/><\/code><\/pre>\n<p>This snippet builds the parameters for <a href=\"https:\/\/github.com\/jeremyf\/hugo-tufte\/blob\/b35ec7d622616ca3c53b5dfde67c10ddbd0ff9b0\/layouts\/shortcodes\/update.html\">my update shorcode<\/a>.  It sets today&rsquo;s date and provides a list of valid modes for the shortcode.<\/p>\n\n<\/ins>\n\n<ins aria-labelledby=\"section-update-2020-10-22\" class=\"update\" datetime=\"2020-10-22\"><h2 id=\"section-update-2020-10-22\"><time datetime=\"2020-10-22\">Oct 22, 2020<\/time> update<\/h2> <h2 id=\"modus-themes\">Modus Themes<\/h2>\n<p>The <a href=\"https:\/\/gitlab.com\/protesilaos\/modus-themes\" class=\"u-url p-name\" rel=\"cite\">Modus Themes<\/a> by <a href=\"https:\/\/protesilaos.com\/\" class=\"u-url p-name\" rel=\"cite\">Protesilaos Stavrou<\/a> have become my go to themes.<\/p>\n<p>It&rsquo;s been a bit of a circuitous path to get to this point, but it&rsquo;s been worth it. Protesilaos is developing the Modus themes with the following guiding principle:<\/p>\n<blockquote  class=\"h-cite\" cite=\"https:\/\/protesilaos.com\/modus-themes\/\">\n<p>Accessible themes for <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/GNU_Project\">GNU<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cGNU\u201d\" title=\"Other site-wide references of \u201cGNU\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-GNU\">\ud83d\udcd6<\/a><\/small>\n<span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Emacs\">Emacs<\/a><\/span> (<abbr title=\"Emacs\">Emacs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cEmacs\u201d\" title=\"Other site-wide references of \u201cEmacs\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-EMACS\">\ud83d\udcd6<\/a><\/small>)\n,\nconforming with the highest accessibility standard for colour contrast between background and foreground values (<span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Web_Content_Accessibility_Guidelines\">Web Content Accessibility Guidelines<\/a><\/span> (<abbr title=\"Web Content Accessibility Guidelines\">WCAG<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWeb Content Accessibility Guidelines\u201d\" title=\"Other site-wide references of \u201cWeb Content Accessibility Guidelines\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WCAG\">\ud83d\udcd6<\/a><\/small>)\nAAA).<\/p>\n<footer>&mdash;<cite><a href=\"https:\/\/protesilaos.com\/modus-themes\/\" class=\"u-url p-name\" rel=\"cite\">Modus Themes (Modus Operandi and Modus Vivendi)<\/a><\/cite>\n<\/footer>\n<\/blockquote>\n<p>In past editors, I&rsquo;ve often used a dark theme.<small class=\"side-container\">\n<span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n<span class=\"side\" role=\"note\"> I made a <a href=\"https:\/\/github.com\/jeremyf\/vibrant-ink-ruby\" class=\"u-url p-name\" rel=\"cite\">Vibrant Ink Ruby<\/a> <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Atom_(text_editor)\">Atom<\/a><\/span> (<abbr title=\"Atom\">Atom<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cAtom\u201d\" title=\"Other site-wide references of \u201cAtom\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-ATOM\">\ud83d\udcd6<\/a><\/small>)\ntheme that works with <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Hugo_(software)\">Hugo<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cHugo\u201d\" title=\"Other site-wide references of \u201cHugo\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-HUGO\">\ud83d\udcd6<\/a><\/small>\n.  This also involved a few tweaks to a <a href=\"https:\/\/github.com\/jeremyf\/language-markdown\" class=\"u-url p-name\" rel=\"cite\">language-markdown<\/a> plugin for Atom.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\nIn my current office setup, I often need a light theme.<small class=\"side-container\">\n<span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n<span class=\"side\" role=\"note\"> In my current setup, a dark theme often truns my glossy monitor into a mirror.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\nBut sometimes, I want a dark theme.  And I don&rsquo;t want the shift between dark and light to highlight the code via a different scheme.<\/p>\n<p>Enter the Modus Themes:<\/p>\n<ul>\n<li><code>modus operandi<\/code> for light<\/li>\n<li><code>modus vivendi<\/code> for dark<\/li>\n<\/ul>\n<figure  aria-hidden=\"true\"><figcaption><p>Modus Operandi: a light theme<\/p>\n<\/figcaption>\n  <img src=\"https:\/\/takeonrules.com\/images\/2020-10-22-modus-operandi_hu_9218dff28a41e522.png\" alt=\"\" data-original-url=\"https:\/\/takeonrules.com\/images\/2020-10-22-modus-operandi.png\" width=\"770\" height=\"322\" data-width=\"770\" data-height=\"322\" \/>\n<\/figure>\n<figure  aria-hidden=\"true\"><figcaption><p>Modus Vivendi: a dark theme<\/p>\n<\/figcaption>\n  <img src=\"https:\/\/takeonrules.com\/images\/2020-10-22-modus-vivendi_hu_35a37f2e38fd366c.png\" alt=\"\" data-original-url=\"https:\/\/takeonrules.com\/images\/2020-10-22-modus-vivendi.png\" width=\"770\" height=\"325\" data-width=\"770\" data-height=\"325\" \/>\n<\/figure>\n<p>I&rsquo;ve grown quite fond of the color palette.  I also appreciate the work Protesilaos is doing on visually conforming to <abbr title=\"Web Content Accessibility Guidelines\">WCAG<\/abbr>\n.  I&rsquo;m going to look at leveraging that work to refresh the color palette of my website.  But that&rsquo;s an adventure for another day.<\/p>\n\n<\/ins>\n\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>This year, Emacs drew me in.  As I&rsquo;ve entered my 3rd decade of software development, I&rsquo;ve grown to appreciate tutorials, documentation, and owning my tools.  Emacs delivers on all of that.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> It&rsquo;s even as old as I am.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>What I&rsquo;ve found is I spend more and more time in Emacs, as it does more and more of what I want, all building from the basis of text files and directories.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Samvera is Hiring a Community Manager","link":"https:\/\/takeonrules.com\/2020\/06\/26\/samvera-is-hiring-a-community-manager\/","pubDate":"Fri, 26 Jun 2020 15:56:15 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2020\/06\/26\/samvera-is-hiring-a-community-manager\/","category":["open-source","samvera"],"description":"<h2>Perhaps You're Interested in Joining an Open Source Community<\/h2>\n        <ins class=\"update margin\" role=\"note\" datetime=\"2020-10-25\"><small><em><strong><time datetime=\"2020-10-25\">Oct 25, 2020<\/time> update:<\/strong><\/em><\/small> \n<p><small>On <time datetime=\"2020-10-05\">October 5th<\/time>, Heather Greer Klein started as Samvera&rsquo;s community manager. I&rsquo;m excited that she&rsquo;s joined and look forward to someone helping to grow and advance a community that I love and cherish.<\/small><\/p>\n<\/ins>\n\n<p>Part of my day to day work involves participating in the <a href=\"https:\/\/samvera.org\">Samvera\ncommunity<\/a>.  I cherish the community and its\nmembers.<\/p>\n<p>And recently, Samvera posted an opening for a Community Manager.  Take\na look!<\/p>\n\n<blockquote  class=\"h-cite\" cite=\"https:\/\/samvera.org\/2020\/06\/26\/samvera-community-manager\/\">\n\n<p>Samvera is hiring for its inaugural Community Manager.\u00a0 We are\nseeking a highly organized individual who wants to join this\ngrass-roots, open source community that creates best in class\nrepository solutions for digital content stewarded by Libraries,\nArchives, and Museums.\u00a0 We are a vibrant and welcoming community\nof information and technology professionals who share challenges,\nbuild expertise, and create sustainable, best-in-class solutions,\nmaking the world\u2019s digital collections accessible now and into the\nfuture.<\/p>\n<p>The Community Manager will help support and manage the\nactivities of the Samvera Community partners and adopters. The\nindividual will be a highly effective coordinator, communicator,\nfacilitator, and administrator working across the Samvera Community\u2019s\ngroups to ensure consistency and coordinated development\ninitiatives.<\/p>\n<p>This position will be employed by Emory University\nand report to the Chair of Samvera Steering Group. Please see more\ndetails about the position including min. qualifications for this\n2-year term, fully remote, position and how to apply here: <a href=\"https:\/\/staff-emory.icims.com\/jobs\/53613\/samvera-community-manager\/job\">https:\/\/staff-emory.icims.com\/jobs\/53613\/samvera-community-manager\/job<\/a><\/p>\n\n\n<footer>&mdash;<cite><a href=\"https:\/\/samvera.org\/2020\/06\/26\/samvera-community-manager\/\" class=\"u-url p-name\" rel=\"cite\">Samvera.org<\/a><\/cite>\n<\/footer>\n<\/blockquote>\n\n\n      ","source":"Take on Rules"},{"title":"Principles of My Text Editor","link":"https:\/\/takeonrules.com\/2020\/05\/25\/principles-of-my-text-editor\/","pubDate":"Mon, 25 May 2020 10:58:00 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2020\/05\/25\/principles-of-my-text-editor\/","category":["emacs","open-source","programming","text-editors"],"description":"<h2>Once Again Exploring a Different Solution<\/h2>\n        <ins aria-labelledby=\"section-update-2020-10-25\" class=\"update\" datetime=\"2020-10-25\"><h2 id=\"section-update-2020-10-25\"><time datetime=\"2020-10-25\">Oct 25, 2020<\/time> update<\/h2> <p>I&rsquo;ve been using <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Emacs\">Emacs<\/a><\/span> (<abbr title=\"Emacs\">Emacs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cEmacs\u201d\" title=\"Other site-wide references of \u201cEmacs\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-EMACS\">\ud83d\udcd6<\/a><\/small>)\nsince <time datetime=\"2020-05\">early May<\/time>, and wrote about <a href=\"https:\/\/takeonrules.com\/2020\/10\/18\/why-i-chose-emacs-as-my-new-text-editor\/\" >the Emacs packages I am currently using<\/a>\n. Over the weeks and months, I&rsquo;ve <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/blob\/trunk\/symlinks\/.emacs\" class=\"u-url p-name\" rel=\"cite\">configured Emacs<\/a> to suit my needs. I&rsquo;ve <a href=\"https:\/\/takeonrules.com\/2020\/10\/24\/visual-changes-to-take-on-rules\/\" >reworked the colors<\/a>\nof my site to match an Emacs theme.<\/p>\n<p>At this point, I&rsquo;m happy, enjoying my text editor, and can&rsquo;t see switching.<\/p>\n\n<\/ins>\n\n<p>I&rsquo;m preparing to leave behind <a href=\"https:\/\/atom.io\">Atom<\/a>. It&rsquo;s been a good run, but\nit&rsquo;s not meeting my needs.<\/p>\n<p>As I was practicing using Emacs, I found myself looking into configurations and\nplugins. Before I got too far, I wanted to write-down why I&rsquo;m going through this\nexercise.<\/p>\n<p>First, my guiding principles as I explore a new text editor.<\/p>\n<h2 id=\"principles\">Principles<\/h2>\n<ul>\n<li>It must be <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Free_and_open-source_software\">Free Open Source Software<\/a><\/span> (<abbr title=\"Free Open Source Software\">FOSS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cFree Open Source Software\u201d\" title=\"Other site-wide references of \u201cFree Open Source Software\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-FOSS\">&#128214;<\/a><\/small>)\n.<\/li>\n<li>It must have a sizeable community of adopters.<\/li>\n<li>It should not be based on Electron.<\/li>\n<li>It must be extensible, preferrably via a scripting language.<\/li>\n<li>It must have good documentation.<\/li>\n<li>It must have a keyboard first focus. Yes, I will use a mouse, but I\nwant to favor my keyboard.<\/li>\n<li>It must run in Linux or MacOS.<\/li>\n<li>I must be able to store its configuration in source control.<\/li>\n<li>I must be able to share the configuration between MacOS and Linux.<\/li>\n<\/ul>\n<p>Let&rsquo;s talk a bit about Electron. First, in my observation, Electron\nbased applications devour resources. Second, by their nature, they\nmust keep pace with browser evolution (<span><a href=\"https:\/\/en.wikipedia.org\/wiki\/HTML\">Hypertext Markup Language<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cHypertext Markup Language\u201d\" title=\"Other site-wide references of \u201cHypertext Markup Language\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-HTML\">&#128214;<\/a><\/small>\n, <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/CSS\">Cascading Stylesheet<\/a><\/span> (<abbr title=\"Cascading Stylesheet\">CSS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cCascading Stylesheet\u201d\" title=\"Other site-wide references of \u201cCascading Stylesheet\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-CSS\">&#128214;<\/a><\/small>)\n, and Javascript). Maybe it&rsquo;s me, but Javascript-based\nsystems require a ridiculous amount of ongoing maintenance and\nweeding.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> Have a different opinion? Let <a\nhref=\"https:\/\/takeonrules.com\/contact-me\" >me know<\/a>.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>And I would like if the tool and ecosystem &ldquo;jived&rdquo; with my philosophy and mental\nmodels.<\/p>\n<h2 id=\"functionality\">Functionality<\/h2>\n<h3 id=\"tabs\">Tabs<\/h3>\n<p>When working on a project or group of files, I often have multiple tabs open in\nmy text editor. At the top of my editor, I can see what tabs are open. I can use\nnumber keys (plus a modifier) to open that tab. As a bonus, I can click on the\ntab to open it.<\/p>\n<p>Oddly, I don&rsquo;t often use split pane, but that feature is nice when possible.<\/p>\n<h3 id=\"invisible-characters\">Invisible Characters<\/h3>\n<p>I often work with data from disparate sources. And sometimes those come with\nlittle surprises. I need to see the invisible control characters that may be\nimpacting that file.<\/p>\n<h3 id=\"fuzzy-file-opening\">Fuzzy File Opening<\/h3>\n<p>Since my Textmate days of yore, I&rsquo;ve relied on CMD+t to open a file finder; The\nfile finder used a fuzzy match for file names. I don&rsquo;t want to type the filename exactly,\ninstead I want to start typing. The candidate results should have those typed\nletters, but they need not be contiguous. Further typing narrows the candidate\npool.<\/p>\n<p>For example, if I have three files: README.md, red-rom.txt, and ruby.rb, when I\ntype &ldquo;R&rdquo;, all three files would match. Then &ldquo;re&rdquo; would match the first two, and\nfinally &ldquo;rex&rdquo; would match only red-rom.txt<\/p>\n<h3 id=\"keymapping\">Keymapping<\/h3>\n<p>Already, as I&rsquo;m writing this, I have <kbd>Ctrl<\/kbd> + <kbd>d<\/kbd> mapped to a duplicate line\nfunction. In other systems <kbd>Ctrl<\/kbd> + <kbd>d<\/kbd> will delete a character. That is an engrained\nkeystroke incantation that I need to think through what I want.<\/p>\n<p>I also make heavy use of <kbd>Ctrl<\/kbd> + <kbd>w<\/kbd> to highlight a word, then delete it. Right now,\nmy <kbd>Ctrl<\/kbd> + <kbd>w<\/kbd> in emacs invokes &ldquo;kill-region&rdquo;, which is very aggressive compared to\nmy current Atom keymap.<\/p>\n<p>I should have the ability to re-map keys, see what keys are already mapped, and\neven unbind mapped keys.<\/p>\n<h3 id=\"file-browser\">File Browser<\/h3>\n<p>In the last three editors I&rsquo;ve used (Atom, Sublime, and Textmate) all of them\nprovided a file browser area. That area showed me all of the files in the\ncurrent editor&rsquo;s context. Typically this was the directory structure from which\nI opened the editor.<\/p>\n<p>The file browser helps provide reminders and orientation to the structure of the\ncode-base.<\/p>\n<h3 id=\"git-commit-message\">Git Commit Message<\/h3>\n<p>I can live without integrated git. However, I want to use my text editor for\nwriting commit messages. When I run <code>git commit<\/code> from the command line, it\nshould launch the text editor in a timely manner (350ms or less).<\/p>\n<p>I aim to write good commit messages.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> <a\nhref=\"https:\/\/chris.beams.io\/posts\/git-commit\/#seven-rules\">The Seven Rules of a\nreat Git Commit Message<\/a><span class=\"hidden\">)<\/span><\/span>\n<\/small>\n One of those rules is that the\nfirst line of a commit message should be no more than 50 characters. And the\nbody wrap at 70 characters. My text editor should help me structure good commit\nmessages.<\/p>\n<p>Any integrations of the text editor and git should follow the same above listed\nprinciples.<\/p>\n\n<aside  role=\"note\" class=\"margin\">\n\n<p><small>For a week, I tinkered with VS Code. And aside from its\nsomewhat off UI, I could not tolerate VS Code&rsquo;s commit message input box. The\nbox encouraged very short commits, which I find violates the aforementioned\nSeven Rules.<\/small><\/p>\n<\/aside>\n\n<h3 id=\"launch-from-terminal\">Launch from Terminal<\/h3>\n<p>I should be able to launch my text editor from the terminal. Either at the\ncurrent directory or at a location specified as a parameter.<\/p>\n<h3 id=\"regular-expression-searchreplace\">Regular Expression Search\/Replace<\/h3>\n<p>I must be able to search via regular expression and change text via regular\nexpressions. I use this quite often through Atom.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> Though over the\nlast month, I&rsquo;ve noticed that it&rsquo;s been somewhat inconsistent. I&rsquo;ve had cases\nwhere the regular expression updated 80% correctly, but left\ntoken markers (e.g., &ldquo;$1&rdquo;) in other updates. For example, if I had a regexp of\n<code>\/(up|down)\/<\/code> and replaced it with <code>go-$1<\/code>, in 80% of the cases, I&rsquo;d see &lsquo;go-up&rsquo;\nor &lsquo;go-down&rsquo; but in other cases I&rsquo;d see &lsquo;go-$1&rsquo;. That flakey behavior is one of\nthe drivers for leaving Atom.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<h3 id=\"other-nice-to-haves\">Other Nice to Haves<\/h3>\n<p>I love my current <a href=\"https:\/\/atom.io\/packages\/markdown-preview-plus\">Atom Markdown Preview\npackage<\/a>. That would be nice to\nduplicate. Likewise for <a href=\"https:\/\/atom.io\/packages\/plantuml-preview\">PlantUML preview<\/a>.<\/p>\n<p>I often use a multi-cursor edit function. I mark different spots in a\ndocument (usually via find) and start typing my change. Or, I&rsquo;ll mark 10\nconsecutive lines at the same column and start editing there. If I invoke a\ncursor moving command (e.g., go to end of word), then the mark moves to all end\nof words.<\/p>\n<p>Ideally, when I&rsquo;ve gained some proficiency, I want people watching me using my\ntext editor to be just a little bit lost. In other words, I need my text editor\nto keep up with my pace of thought.<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>These are my guiding principles and some of the features I require. I&rsquo;m certain\nthere are others that I&rsquo;ve internalized, and not yet explicitly acknowledged.<\/p>\n<p>What sold me on giving Emacs a go was its strong commitment to\ndocumentation. I&rsquo;ve tried Vim several times and it never quite\nsat well.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I can use Vim well enough to update text in a file, but\nhave found it to work exceptionally well for my brain.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>The shipped tutorial is amazing, using accessible language and seeking to gently\nguide you through the ecosystem.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I believe one more trip throug\nthe tutorial and the basics would gel.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>The invocation <code>C-h k<\/code> lets me look up what that key combination does. The <code>C-h f<\/code> helps me go hunting for commands that I may not remember.<\/p>\n<h2 id=\"postscript\">Postscript<\/h2>\n<p>I&rsquo;m currently exploring Emacs, and went through the fantastic\ntutorial that ships with Emacs.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> When you install Emacs, type <code>C-h t<\/code> to start the tutorial. (Type the &ldquo;control&rdquo; and &ldquo;h&rdquo; key at the same time, then\ntype the &ldquo;t&rdquo; key.)<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>I made it through 60% of the tutorial, and then started poking around with\nplugins and configurations. I went so far as to install <a href=\"https:\/\/github.com\/hlissner\/doom-emacs\">Doom\nemacs<\/a>. I found myself poking around in\nwhat I could do, instead of building from a small start.<\/p>\n<p>I removed Doom and went back to my simpler <code>~\/.emacs<\/code> file. I&rsquo;m sure as I\nexplore, I&rsquo;ll look to other packages or configuration frameworks.<\/p>\n<p>In otherwords, this is my reminder to build up from a smaller foundation, and\nown each brick that I place.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Today I Learned (May 20th 2020 Edition)","link":"https:\/\/takeonrules.com\/2020\/05\/20\/today-i-learned-may-20th-2020-edition\/","pubDate":"Wed, 20 May 2020 19:17:37 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2020\/05\/20\/today-i-learned-may-20th-2020-edition\/","category":["open-source","programming","technologies","today-i-learned"],"description":"<h2>Learning Some New Distributed Tech<\/h2>\n        <p>A bit of a technology grab-bag today.<\/p>\n<h2 id=\"brew-edit\">Brew Edit<\/h2>\n<p>Yesterday, I learned about <a href=\"https:\/\/brew.sh\">homebrew<\/a>&rsquo;s <code>brew edit &lt;formula-name&gt;<\/code>. I was trying to change the install formula for <a href=\"http:\/\/links.twibright.com\/\">links<\/a>. Using <code>brew edit links<\/code>, I poked around with the install script, trying (albeit unsuccessfully) to build links with image support.<\/p>\n<h2 id=\"rhapsode\">Rhapsode<\/h2>\n<p>Ok, I learned about this awhile ago; <dfn><a href=\"https:\/\/git.adrian.geek.nz\/rhapsode.git\/tree\/README.md\">Rhapsode<\/a><\/dfn> is a &ldquo;Hypertext Web Browser for voice I\/O.&rdquo; I have yet to install this, but its existence has me thinking differently about my website.<\/p>\n<h2 id=\"cabal\">Cabal<\/h2>\n<p>I learned about <a href=\"https:\/\/cabal.chat\">cabal.chat<\/a>, an &ldquo;experimental <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Peer-to-peer\">Peer to Peer<\/a><\/span> (<abbr title=\"Peer to Peer\">P2P<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cPeer to Peer\u201d\" title=\"Other site-wide references of \u201cPeer to Peer\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-P2P\">&#128214;<\/a><\/small>)\n community chat platform.&rdquo; This interesting bit of software removes the need for a central chat server. Instead, each peer has the entire group&rsquo;s chat history stored locally. When another person connects, cabal shares the chat history.<\/p>\n<h2 id=\"indieweborg\">IndieWeb.org<\/h2>\n<p>I&rsquo;ve known about <a href=\"https:\/\/indieweb.org\">indieweb.org<\/a> for a bit; I used the <a href=\"https:\/\/indieweb.org\/Webmention\">Indieweb&rsquo;s Webmention wiki article<\/a> to help build out my webmention functionality. The community demonstrates a commitment to accessibility by defining and extending terms in the wiki.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> Imagine if, at your place of work or in your hobby community, there was a continuous effort to make information accessible? To say &ldquo;quick, let&rsquo;s make sure we sketch out a definition in our wiki&rdquo;. That&rsquo;s a powerful community reflex.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<h2 id=\"beaker-browser\">Beaker Browser<\/h2>\n<p>After joining indieweb.org, I learned about <a href=\"https:\/\/beakerbrowser.com\/\">Beaker Browser<\/a>. I haven&rsquo;t given this a lot of thought, but a <abbr title=\"Peer to Peer\">P2P<\/abbr>\n savy web-browser would certainly help with distributed preservation efforts.<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>For these <abbr title=\"Peer to Peer\">P2P<\/abbr>\n experiments, I think I need a separate machine for experimentation.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Documenting Decisions to Build Buy-In","link":"https:\/\/takeonrules.com\/2020\/05\/09\/documenting-decisions-to-build-buy-in\/","pubDate":"Sat, 09 May 2020 08:20:05 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2020\/05\/09\/documenting-decisions-to-build-buy-in\/","category":["knowledge-management","open-source","personal","programming"],"description":"<h2>Don't Rely on a Group's Memory, Write It Down<\/h2>\n        \n<aside  role=\"note\" class=\"margin\">\n\n<p><small>This article is a repost of a <a href=\"https:\/\/sites.nd.edu\/marble\/documenting-decisions-to-build-buy-in\/\">blogpost<\/a> I wrote for a <a href=\"https:\/\/innovation.library.nd.edu\/marble\/\" class=\"u-in-reply-to\" rel=\"in-reply-to\">work project<\/a> .<\/small><\/p>\n<\/aside>\n\n<p>In any long-running project at <a href=\"https:\/\/library.nd.edu\/\">Hesburgh Libraries<\/a>, our developer teams make countless decisions every day. Some decisions are big and some are small. \u2014 some affect a few people while others have an impact on the entire organization.<\/p>\n<p>Inevitably, these decisions evolve over time.<\/p>\n<p>Sometimes we have to adjust or even reverse a decision after gathering more information or gaining experience with a tool or software. We don\u2019t sweat the ebb and flow \u2014 we welcome it. Embracing decision-making as an evolutionary process is one of our guiding principles for a healthy team culture.<\/p>\n<p>We also realize that decisions are only as good as the documentation and communication processes that underpin them.<\/p>\n\n<figure  aria-hidden=\"true\"><figcaption><p>Documenting our decisions from every angle helps us understand where we&rsquo;re going and why. Image: Eadweard Muybridge, &quot;Eagle&quot; Walking, Free, plate 576 from Animal Locomotion, 1845-1904, albumen silver print. The Janos Scholz collection of 19th century photography, Snite Museum of Art, University of Notre Dame, 1981.031.543.<\/p>\n<\/figcaption>\n  <img src=\"https:\/\/takeonrules.com\/images\/eagle-walking-by-eadweard-muybridge_hu_b96ff9499e5cf119.jpg\" alt=\"\" data-original-url=\"https:\/\/takeonrules.com\/images\/eagle-walking-by-eadweard-muybridge.jpg\" width=\"770\" height=\"305\" data-width=\"770\" data-height=\"305\" \/>\n<\/figure>\n\n<p>To this end, we use consistent documentation and transparent communication to serve as a two-way roadmap for new challenges, team discussions, and retrospectives in the midst of a rapidly changing landscape<\/p>\n<p>These decision documents also help to facilitate conversations with stakeholders and build enduring relationships with project partners.<\/p>\n<p>The cases below illustrate how decision documents and transparent communications during the MARBLE project have contributed to team success and project impact.<\/p>\n<h2 id=\"a-tale-of-two-documented-decisions\">A Tale of Two Documented Decisions<\/h2>\n<p>One of the goals of the MARBLE software development project funded by the <a href=\"https:\/\/mellon.org\/\">Andrew W. Mellon Foundation<\/a> is to create a unified discovery for digitized cultural heritage collections held by the <a href=\"https:\/\/sniteartmuseum.nd.edu\/\">Snite Museum of Art<\/a> and <a href=\"https:\/\/library.nd.edu\/\">Hesburgh Libraries<\/a> at the <a href=\"https:\/\/www.nd.edu\/\">University of Notre Dame<\/a><\/p>\n<p>Our immediate aim is to make these objects discoverable in the context of a collaborative digital collections platform. We also surmised that we may want to someday make the digitized objects discoverable through our general library catalog<\/p>\n<p>Given these aspirations, we decided to leverage the library-wide discovery system as our search and discovery interface. library-wide discovery system is a vendor-supplied search index software used by many libraries around the world as their primary catalog<\/p>\n<p>On the surface, this decision ran contrary to another goal of our project: to develop and release open-source software.<\/p>\n<p>To reconcile these apparent contradictions and keep our road map intact, I wrote a decision document supporting the use of our library-wide discovery system and how we would proceed with delivering open-source software. We clarified that we would use an API to interact with our search index. (An API, or Application Programming Interface, is a protocol or specification that allows information to transfer from one system to another. Using an API is a simple and common practice in developing new software.)<\/p>\n<p>In this case, we viewed the decision to interact with an API as a way to support other institutions or potential adopters that don\u2019t use our discovery system. In other words, our solution would be built in such a way that another institution could connect with their search index of choice.<\/p>\n<p>We shared our draft decision with project leadership, stakeholders, and developer teams to solicit feedback. From the feedback, we amended the draft document to reflect any new considerations, questions, and challenges.<\/p>\n<p>With a decision document firm in hand, webegan working on implementing our solution. We gathered help from other library-wide discovery system adopters. (Thank you, <a href=\"https:\/\/www.library.northwestern.edu\/\">Northwestern Libraries<\/a>!). We dove deeper into our usage of library-wide discovery system, expanding our expertise and understanding of a technology we have long used.<\/p>\n<p>Then we hit a wall.<\/p>\n<p>Our user interviews identified full-text search as a key desired feature. According to library-wide discovery system documentation, this functionality should have worked. But, it didn&rsquo;t, and we entered into a &ldquo;waiting on vendor response&rdquo; holding pattern.<\/p>\n<p>While waiting, one of our developers explored ElasticSearch as another option.. After only a few afternoons of work and testing, ElasticSearch proved to be a viable alternative. Within a week, we referenced our documents. We reassessed our prior decision to leverage our library-wide discovery system and chose to pivot towards ElasticSearch<\/p>\n<figure  aria-hidden=\"true\"><figcaption><p>Pivoting on a decision takes balance and flexibility. Image: Edgar Degas, Study of a Ballet Dancer, ca. 1880-1885, brown conte crayon and pink chalk on paper. Gift of John D. Reilly ND'63, &lsquo;64 B.S., Snite Museum of Art, University of Notre Dame, 2004.053.004.<\/p>\n<\/figcaption>\n  <img src=\"https:\/\/takeonrules.com\/images\/edgar-degas-study-of-a-dancer_hu_5afd7b832ff9b2c1.jpg\" alt=\"\" data-original-url=\"https:\/\/takeonrules.com\/images\/edgar-degas-study-of-a-dancer.jpg\" width=\"770\" height=\"1143\" data-width=\"770\" data-height=\"1143\" \/>\n<\/figure>\n<p>Again, I wrote up a decision document outlining the rationale, process, and lessons learned. For example:<\/p>\n<ul>\n<li>We found that ElasticSearch allowed us to implement the full-text search feature.<\/li>\n<li>ElasticSearch also performed faster searches.<\/li>\n<li>There existed open-source ReactJS components for facet rendering, something we were going to need to create in our previous approach.<\/li>\n<li>Since ElasticSearch is open-source, our own developers can work out bugs instead of waiting on a vendor.<\/li>\n<li>Our decision to explore our existing library-wide discovery system also produced useful outcomes in that we have a deeper understanding of how to better leverage our library-wide discovery system in our current workflows.<\/li>\n<li>The quick swap from one system to another confirmed for us that we have a robust architecture.<\/li>\n<li>Finally, we have postponed the goal of ensuring that all campus cultural heritage content is in our library search index, but our software design will make this work easier going forward.<\/li>\n<\/ul>\n<h2 id=\"amazon-web-services-are-you-being-serverless\">Amazon Web Services: Are You Being Serverless?<\/h2>\n<p>Another problem we encountered during the development of the MARBLE project was choosing an <a href=\"https:\/\/iiif.io\/\">International Image Interoperability Framework<\/a> (IIIF) compliant image server<\/p>\n<p>Early in the project, we chose to implement Cantaloupe from the list of <a href=\"https:\/\/iiif.io\/apps-demos\/#image-servers\">known server options<\/a>. With that decision documented and shared, we built blueprints to deploy our Cantaloupe instance into Amazon Web Services (AWS) as a <a href=\"https:\/\/aws.amazon.com\/fargate\/\">Fargate container<\/a>.<\/p>\n<p>This worked to get us started.<\/p>\n<p>However, as we added more and more images to Cantaloupe, we encountered problems such as spikes in response times, incidents of high error rates, numerous restarts. We soon discovered the root cause: Cantaloupe&rsquo;s architecture conflicts with AWS&rsquo;s Fargate container implementation.<\/p>\n<p>Our options were to move to a more expensive <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Amazon_Web_Services\">Amazon Web Services<\/a><\/span> (<abbr title=\"Amazon Web Services\">AWS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cAmazon Web Services\u201d\" title=\"Other site-wide references of \u201cAmazon Web Services\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-AMAZON-WEB-SERVICES\">&#128214;<\/a><\/small>)\n service or look for something else and a possible contender emerged.<\/p>\n<p>Our colleagues at Northwestern University, David Schober and Michael Klein, presented &ldquo;Building node-iiif: A performant, standards-compliant IIIF service in &lt; 500 lines of code&rdquo; at <a href=\"https:\/\/or2019.blogs.uni-hamburg.de\/\">Open Repositories 2019<\/a>. After a quick conversation, they pointed us to <a href=\"https:\/\/github.com\/nulib\/serverless-iiif\">their implementation<\/a>, a serverless service.<\/p>\n<figure  aria-hidden=\"true\"><figcaption><p>Learning from our community is crucial to the development process.<br \/>Image: Flemish, The Lawyer&rsquo;s Office, after Marinus van Reymerswaele, 1535-1590, oil on cradled panel. Gift of Dr. and Mrs. Dudley B. Kean, Snite Museum of Art, University of Notre Dame, 1954.005.<\/p>\n<\/figcaption>\n  <img src=\"https:\/\/takeonrules.com\/images\/flemish-the-lawyer_hu_7b5bdc25be712b9b.jpg\" alt=\"\" data-original-url=\"https:\/\/takeonrules.com\/images\/flemish-the-lawyer.jpg\" width=\"770\" height=\"609\" data-width=\"770\" data-height=\"609\" \/>\n<\/figure>\n<p>As has become our practice, we documented a plan to experiment with the serverless implementation<\/p>\n<ul>\n<li>We kept Cantaloupe running for our pre-beta site, while we tested and expanded on Northwestern&rsquo;s implementation.<\/li>\n<li>On October 8th, we made the decision to move away from Cantaloupe<\/li>\n<li>On November 7th, <a href=\"https:\/\/github.com\/ndlib\/marble-blueprints\/commit\/bc6d8bf7f7d460091631f5380da1e3e716074a70\">we switched<\/a> from using Cantaloupe to using Northwestern&rsquo;s IIIF-Serverless in our pre-beta instance. This was done without downtime or disruption to our site<\/li>\n<li>Based on our findings we believe we&rsquo;ll be able to reduce our image server costs by two orders of magnitude.<\/li>\n<\/ul>\n<p>You can see our archived <a href=\"https:\/\/github.com\/ndlib\/image-server\">image-server repository<\/a> and a snapshot of the <a href=\"https:\/\/github.com\/ndlib\/marble-blueprints\/tree\/80ab919a728783cfed02b549b6c6a207f51afe95\">blueprints to build this out in AWS<\/a>. Here is <a href=\"https:\/\/github.com\/ndlib\/marble-blueprints\/commit\/108a227eb3e96a62a15db2df6d7fdedc6c441c83\">the code commit that moved our blueprints from Cantaloupe to Serverless<\/a>. You can also look at <a href=\"https:\/\/docs.google.com\/document\/d\/1OuQWOCVrx9Y2PQ7UVKOka4K3C9KshQXsy5bV5PUw7Tc\/edit?usp=sharing\">our documentation<\/a> evaluating migrating from Cantaloupe to serverless.<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>The key takeaway is that it\u2019s worth taking the time to document decisions and have consistent communications<\/p>\n<p>It\u2019s true that not every decision necessitates thorough documentation. However, the decisions that require widespread buy-in, impact a key tool or process, or re-orient project goals deserve an organization-wide commitment to this evolving decision-making process<\/p>\n<p>For me, decision documents should identify the problem that needs to be solved and includes context, considerations, and constraints. Teams should build decision documents by seeking the input of those with a significant stake in this problem.<\/p>\n<p>Because we have taken the time to document milestones and decisions, our project is modeling how to have a more robust memory of a particular problem and attempted solutions. We are able to be visionary and more agile as we create solutions to meet stakeholder needs.<\/p>\n<p>Simply said, decision documents make all the difference.<\/p>\n<p>And, as a bonus, it was much easier to write this blog post. So, go forth and document!<\/p>\n\n      ","source":"Take on Rules"},{"title":"Switching from Inoreader to Newsboat for RSS Reader","link":"https:\/\/takeonrules.com\/2020\/04\/12\/switching-from-inoreader-to-newsboat-for-rss-reader\/","pubDate":"Sun, 12 Apr 2020 10:42:38 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2020\/04\/12\/switching-from-inoreader-to-newsboat-for-rss-reader\/","category":["emacs","knowledge-management","open-source","personal","reflections","standards","text-editors"],"description":"\n        <ins class=\"update margin\" role=\"note\" datetime=\"2020-10-21\"><small><em><strong><time datetime=\"2020-10-21\">Oct 21, 2020<\/time> update:<\/strong><\/em><\/small> \n<p><small>In <time datetime=\"2020-05\">May<\/time>, I switch my everyday text editor <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Emacs\">Emacs<\/a><\/span> (<abbr title=\"Emacs\">Emacs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cEmacs\u201d\" title=\"Other site-wide references of \u201cEmacs\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-EMACS\">\ud83d\udcd6<\/a><\/small>)\n.  In <time datetime=\"2020-08-21\">late August<\/time>, I began exploring <a href=\"https:\/\/github.com\/skeeto\/elfeed\">Elfeed<\/a>, an Emacs plugin. In doing most of my work in Emacs, I find it convenient to have an RSS feed right in the text editor. Newsboat remains a solid RSS reader, its just I&rsquo;ve found something closer to my toolkit.<\/small><\/p>\n<\/ins>\n\n<ins class=\"update margin\" role=\"note\" datetime=\"2020-04-20\"><small><em><strong><time datetime=\"2020-04-20\">Apr 20, 2020<\/time> update:<\/strong><\/em><\/small> \n<p><small>Two weeks into using Newsboat, and I&rsquo;m loving it. Because of the text-based RSS reader, I discovered that my site&rsquo;s RSS feeds were publishing items that had relative <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/URL\">Uniform Resource Locators<\/a><\/span> (<abbr title=\"Uniform Resource Locators\">URLs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cUniform Resource Locators\u201d\" title=\"Other site-wide references of \u201cUniform Resource Locators\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-URL\">\ud83d\udcd6<\/a><\/small>)\n. Which could&rsquo;ve resulted in broken URLs for RSS subscribers. From a habit stand-point, I&rsquo;m checking my RSS feeds twice a day: once during breakfast and once in the evening.<\/small><\/p>\n<\/ins>\n\n<p>At present, I have a paid subscription to <a href=\"https:\/\/inoreader.com\">Inoreader<\/a>. It\nprovides both a web-interface as well as a mobile app, synchronzing read content\nbetween the two.<\/p>\n<p>But, I&rsquo;ve noticed that I graze on my <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/RSS\">Rich Site Summary<\/a><\/span> (<abbr title=\"Rich Site Summary\">RSS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRich Site Summary\u201d\" title=\"Other site-wide references of \u201cRich Site Summary\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RSS\">&#128214;<\/a><\/small>)\n feed on my mobile device; Swiping\nthrough articles out of boredom.<\/p>\n<p>This past week I began experimenting with <a href=\"https:\/\/newsboat.org\">Newsboat<\/a> as my\nlocal RSS client. I exported my <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/OPML\">Outline Processor Markup Language<\/a><\/span> (<abbr title=\"Outline Processor Markup Language\">OPML<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOutline Processor Markup Language\u201d\" title=\"Other site-wide references of \u201cOutline Processor Markup Language\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OPML\">&#128214;<\/a><\/small>)\n\ndocument from Inoreader. I then imported that OPML into Newsboat.<\/p>\n<h2 id=\"visual-tour-for-a-text-based-rss-client\">Visual Tour (for a text-based RSS Client)<\/h2>\n<p>First and foremost, Newsboat has a text-based command-line interface. You will\nnot see images in your feed.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I have <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/blob\/master\/symlinks\/newsboatrc.symlink#L3\">configured Newboat<\/a>\nso I can open any link or article in Firefox using a <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/blob\/master\/bin\/ff\">shell script<\/a><span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>Instead of adding screenshots with the minimal colors, I&rsquo;ll copy and paste each\nscreen.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> For those curious, here is a <a href=\"https:\/\/github.com\/jeremyf\/dotzshrc\/blob\/master\/symlinks\/newsboatrc.symlink\">link to my Newsboat configuration<\/a>.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<h3 id=\"feed-list-dialogue\">Feed List Dialogue<\/h3>\n<p>Newsboat loads a Feed List dialogue. In my configuration I have four columns\nconfigured: Index, Read\/Unread, Unread\/Total, and Feed Title.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> By\ndefault I hide feeds I&rsquo;ve already read (by the config <code>show-read-feeds no<\/code>).<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<pre><code class=\"language-console\">newsboat 2.19.0 - Your feeds (8 unread, 8 total)\n   1 N     (1\/459) Blogroll for Take on Rules\n   3 N    (12\/111) Recent articles\n  82 N      (1\/18) Alex Schroeder: Diary\n 198 N     (3\/113) Indie RPG Planet\n 199 N     (5\/206) Old School RPG Planet\n 590 N      (1\/26) Skullsword's Tower\n 954 N      (1\/26) Den of the Lizard King\n1201 N      (1\/27) msjx\n\nq:Quit ENTER:Open n:Next Unread r:Reload R:Reload All A:Mark Read C:Mark All Read \/:Search ?:Help\n<\/code><\/pre>\n<p>A <a href=\"https:\/\/newsboat.org\/releases\/2.19\/docs\/newsboat.html#_query_feeds\">Newsboat query feed<\/a>\npopulates the &ldquo;Blogroll for Take on Rules&rdquo;. The &ldquo;Blogroll\nfor Take on Rules&rdquo; queries all feeds tagged with &ldquo;blogroll&rdquo; and aggregates those\narticles.<\/p>\n<p>Here&rsquo;s a sample from my urls.txt:<\/p>\n<pre><code>&quot;query:Blogroll for Take on Rules:tags # \\&quot;blogroll\\&quot;&quot;\nhttps:\/\/alexschroeder.ch\/wiki\/feed\/full\/ &quot;Gaming\/RPG&quot; blogroll\nhttps:\/\/gohugo.io\/index.xml &quot;FOSS&quot;\n<\/code><\/pre>\n<p>In the above Feed List dialogue, &ldquo;<a href=\"https:\/\/alexschroeder.ch\/wiki\/feed\/full\/\" rel=\"in-reply-to\" class=\"u-in-reply-to\">Alex Schroeder: Diary<\/a>&rdquo;\nshows as its own feed (index 82) and Newsboat counts the articles from Alex&rsquo;s\nblog in the &ldquo;Blogroll for Take on Rules.&rdquo;<\/p>\n<h3 id=\"article-dialog\">Article Dialog<\/h3>\n<p>The Article Dialog renders the textual content and footnotes each link.<\/p>\n<p>Below is an excerpt from Alex Schroeder&rsquo;s <a href=\"https:\/\/alexschroeder.ch\/wiki\/2020-04-12_The_effects_of_stats_in_simple_games\" rel=\"in-reply-to\" class=\"u-in-reply-to\">The effects of stats in simple games<\/a>.<\/p>\n<pre><code>newsboat 2.19.0 - Your feeds (8 unread, 8 total)\nFeed: Alex Schroeder: Diary\nTitle: The effects of stats in simple games\nAuthor: kensanata@gmail.com (Alex Schroeder)\nDate: Sun, 12 Apr 2020 09:15:56 -0400\nLink: https:\/\/alexschroeder.ch\/wiki\/2020-04-12_The_effects_of_stats_in_simple_games\n\nIf you\u2019ve played OD&amp;D, or Swords &amp; Wizardry, or\nany of the other old school games out there, you\nhave encountered this before, regarding monster\nstats: monsters have hit dice (HD); this\ndetermines how many hit they can take, on average.\nEach hit die is 1d6, and each damage die is also\n1d6. In later games, the picture is not that\nsimple anymore. In <span><a href=\"https:\/\/rpggeek.com\/rpg\/389\/basic-dungeons-dragons\">Dungeons and Dragons: Basic\/Expert<\/a><\/span> (<abbr title=\"Dungeons and Dragons: Basic\/Expert\">B\/X<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons: Basic\/Expert\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons: Basic\/Expert\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-B\/X\">&#128214;<\/a><\/small>)\n we already notice that many\nfighters have a strength bonus, but monsters also\nuse 1d8 for hit dice. For the purpose of this blog\npost, I don\u2019t care about the details.\n\nI care about this relationship: every extra <span>Hit Die<\/span> (<abbr title=\"Hit Die\">HD<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cHit Die\u201d\" title=\"Other site-wide references of \u201cHit Die\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-HD\">&#128214;<\/a><\/small>)\n\nallows a monster to survive one more hit; every\nextra HD also allows a monster to hit more easily;\nextra HD also allow a monster to better resist\nspells.\n\nWhat does it mean to survive more hits? It means\nthat fights take longer, or that monsters can take\non more enemies. It\u2019s not that simple because the\nmonster is also better at hitting the opposition.\nWithout that twist, it\u2019d be boring: four\ncharacters hit a monster with 4 HD and it\u2019s dead;\nfour characters hit monster with 8 HD and it takes\ntwo rounds to kill. The difference is that the 8\nHD monster probably deals more damage to the\ncharacters. Most likely it also has special\nabilities that make it even more dangerous.\n\nThe net effect is hard to predict and that\u2019s\nprobably what makes the game interesting.\n\nI\u2019m trying to apply the same kind of analysis to\nJust Halberds[1].\n\u2026\n\nLinks:\n[1]: https:\/\/alexschroeder.ch\/wiki\/Just_Halberds (link)\n\u2026\n<\/code><\/pre>\n<p>When reading the article, I can type <code>o<\/code> to open the article in Firefox (as per\nmy configuration). I can also type <code>1<\/code> to open the first link (e.g.\n<a href=\"https:\/\/alexschroeder.ch\/wiki\/Just_Halberds)\">https:\/\/alexschroeder.ch\/wiki\/Just_Halberds)<\/a>. I can also type <code>s<\/code> to save the\narticle to my machine.<\/p>\n<p>The saved articles are either &ldquo;of future interest&rdquo; or something which I may\nwrite a response. Regardless, I have a plain-text copy of the article for future\nreference.<\/p>\n<h3 id=\"deeper-level-hacking\">Deeper Level Hacking<\/h3>\n<p>Newsboat stores the articles in a local SQLITE database. If I want, I can run\nqueries against that database. Maybe I want to find all of the links to a given\nsite throughout the articles? Easy.<\/p>\n<p>As part of my publish process, I now use my <abbr title=\"Uniform Resource Locator\">URL<\/abbr>\n file for Newsboat to populate\nthe blogs in my <cite><a href=\"\"><\/a><\/cite>\n. Prior to Newsboat, I manually managed\nthe Blog Roll seperately from the Inoreader feeds.<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>With Newsboat, I&rsquo;m able to continue using RSS. I can now consider leaving a paid\nsubscription (which is certainly using my data as part of the surveillance\ncapitalism paradigm).<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I had explored using\n<a href=\"https:\/\/ranchero.com\/netnewswire\/\">NetWireNews<\/a>, which provides a nice <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Graphical_user_interface\">Graphical User Interface<\/a><\/span> (<abbr title=\"Graphical User Interface\">GUI<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cGraphical User Interface\u201d\" title=\"Other site-wide references of \u201cGraphical User Interface\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-GUI\">\ud83d\udcd6<\/a><\/small>)\n, but\ndidn&rsquo;t quite work for me.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>I also get the ability to write scripts against the entire ecosystem. I can\nspecify the directory for the SQLite cache database, the file to use for URLs,\nand where to save the plain text articles.<\/p>\n<p>In other words, Newsboat gives me direct and unfettered access to the inputs and\noutputs of the entire RSS experience.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Why Hugo when I'm A Rubyist","link":"https:\/\/takeonrules.com\/2019\/09\/05\/why-hugo-when-im-a-rubyist\/","pubDate":"Thu, 05 Sep 2019 19:06:42 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2019\/09\/05\/why-hugo-when-im-a-rubyist\/","category":["knowledge-management","open-source","programming","reflections","technologies"],"description":"\n        <p>Today, I received a question from a fellow Ruby programmer.<\/p>\n\n<blockquote  class=\"h-cite\">\n\nHey! My friend linked me to your site, and I&rsquo;ve enjoyed reading some of the posts on how you are putting your static site together. I was curious: as a fellow rubyist, what drew you to Hugo over some of the ruby options like Jekyll or Middleman?\n\n<\/blockquote>\n\n<p>This <a href=\"https:\/\/takeonrules.com\/2018\/11\/20\/own-your-tools\/\" >blog post<\/a>\n sums up my decision to move from <a href=\"https:\/\/jekyllrb.com\/\">Jekyll<\/a> to <a href=\"https:\/\/gohugo.io\">Hugo<\/a>. Below is the salient point:<\/p>\n\n<blockquote  class=\"h-cite\" cite=\"https:\/\/takeonrules.com\/2018\/11\/20\/own-your-tools\/\">\n\nJekyll took ~66,000ms to build and serve the website on my machine; That\u2019s 1 minute. Hugo took ~1,500ms; that\u2019s about 1 second.\n\n<footer>&mdash;<cite><a href=\"https:\/\/takeonrules.com\/2018\/11\/20\/own-your-tools\/\" class=\"u-url p-name\" rel=\"cite\">https:\/\/takeonrules.com\/2018\/11\/20\/own-your-tools\/<\/a><\/cite>\n<\/footer>\n<\/blockquote>\n\n<p>As I iterated on the design\/layout\/content, I encountered serious latency with Jekyll.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I have no experience with <a href=\"https:\/\/middlemanapp.com\/\">Middleman<\/a>.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n Hugo appealed to me personally and professionally.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I have built and maintained at least 2 content management systems written in Ruby. I find static site generators a great option for someone willing to dig in and work with the &ldquo;code.&rdquo;<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n I opted to port the website build process to Hugo. But that remains only a portion of how &ldquo;takeonrules.com&rdquo; gets built.<\/p>\n<p>I use hugo to generate the base <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/HTML\">Hypertext Markup Language<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cHypertext Markup Language\u201d\" title=\"Other site-wide references of \u201cHypertext Markup Language\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-HTML\">&#128214;<\/a><\/small>\n, but have several <a href=\"https:\/\/github.com\/ruby\/rake\">Rake<\/a> tasks that munge the post build files into a better state. I have not yet extracted the totality into a <a href=\"https:\/\/git-scm.com\/\">Git<\/a> submodule, so this process remains somewhat opaque.<\/p>\n<p>At a high-level, as part of my &ldquo;publish&rdquo; task, I have ruby scripts that:<\/p>\n<ul>\n<li>verify a clean repository<\/li>\n<li>extract metadata, as seen in <a href=\"https:\/\/takeonrules.com\/metadata\/\">https:\/\/takeonrules.com\/metadata\/<\/a><\/li>\n<li>update <a href=\"\" >my blogroll<\/a>\n<\/li>\n<li>extract image metadata (so I can inject that into my <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/JSON-LD\">Javascript Object Notation for Linking Data<\/a><\/span> (<abbr title=\"Javascript Object Notation for Linking Data\">JSON+LD<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cJavascript Object Notation for Linking Data\u201d\" title=\"Other site-wide references of \u201cJavascript Object Notation for Linking Data\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-JSON+LD\">&#128214;<\/a><\/small>)\n data)<\/li>\n<li>build a slew of redirects (as I migrated from Wordpress to a custom site)<\/li>\n<li>beautify the HTML (nice pretty nesting in the source)<\/li>\n<\/ul>\n<p>The result is a bit of a Frankenstein&rsquo;s monster. I use hugo for its blisteringly fast build speeds, and relatively easy data integration. I then use <a href=\"https:\/\/www.ruby-lang.org\/\">Ruby<\/a> (<a href=\"https:\/\/nokogiri.org\">nokogiri<\/a> in particular) to improve on the base site.<\/p>\n<p>Even today, with lots of <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/YAML\">Yet Another Markup Language<\/a><\/span> (<abbr title=\"Yet Another Markup Language\">YAML<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cYet Another Markup Language\u201d\" title=\"Other site-wide references of \u201cYet Another Markup Language\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-YAML\">&#128214;<\/a><\/small>)\n files in my \/data directory (most of which are <a href=\"https:\/\/burningwheel.com\/\">Burning Wheel <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Role-playing_game\">Role Playing Game<\/a><\/span> (<abbr title=\"Role Playing Game\">RPG<\/abbr>)\n<\/a> lifepaths, and not even rendered in the public version), I have a 3s build time. I would assume in Jekyll it would still take at least a minute.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Own Your Game System","link":"https:\/\/takeonrules.com\/2018\/12\/21\/own-your-game-system\/","pubDate":"Fri, 21 Dec 2018 19:47:50 -0500","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2018\/12\/21\/own-your-game-system\/","category":["licensing","open-source","rpgs"],"description":"\n        <figure aria-hidden=\"true\"  role=\"note\">\n  <img src=\"https:\/\/takeonrules.com\/images\/blueprint-964629_1280_hu_1e07177979c303e7.jpg\"\n       alt=\"\"\n       width=\"360\"\n       height=\"240\"\n       data-original-url=\"https:\/\/takeonrules.com\/images\/blueprint-964629_1280.jpg\"\n       data-original-width=\"1280\"\n       data-original-height=\"853\"\n       data-width=\"360\"\n       data-height=\"240\" \/>\n  <figcaption>\nProvided by <a href=\"https:\/\/pixabay.com\/en\/blueprint-ruler-architecture-964629\/\">Pixabay<\/a>, CC0 Creative Commons. Free for commercial use. No attribution required.\n<\/figcaption>\n<\/figure>\n\n<aside  role=\"note\" class=\"margin\">\n\n<p><small>In a <a href=\"https:\/\/takeonrules.com\/2018\/12\/19\/helmets-and-halberds-podcast\/\" >prior post<\/a>\nI linked to an unpublished version of this blogpost. I since updated both this post and that prior post<\/small><\/p>\n<\/aside>\n\n<p>As I start thinking about what next, I look towards systems. I&rsquo;m more and more interested in running from an open system.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> My father in-law purchased a Windows computer, and found that he didn&rsquo;t have administrator rights to his machine. In essence, he didn&rsquo;t own the right to the computer he bought. He would be forever behold to the owners of the operating system.<br\/><br \/>I find this anethema to my senses. The computer revolution put affordable machines of mass production into the hands of the general populus. As operating system providers tighten their grasp, they begin to quash the capability of the public to produce. Software developers are approaching the point of leasing the tools used to create software.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n A system that has clear rules for legally sharing and extending the game.<\/p>\n<p>Paizo invested heavily in 3rd Edition. When Wizards of the Coast announced 4th Edition, Paizo blazed a trail and created Pathfinder, leveraging 3rd Edition&rsquo;s open content. Through this effort, Paizo seemingly floated the larger role-playing community as Wizards of the Coast floundered with their Game System License (GSL) and an edition oft reviled as a deviation from D&amp;D.<\/p>\n<p>Goodman Games, a company that cut its teeth creating 3rd Edition adventures saw the writing on the wall, and abandoned 4th Edition to create Dungeon Crawl Classics.<\/p>\n<p>I&rsquo;m not saying that I&rsquo;m looking to create more <a href=\"https:\/\/takeonrules.com\/products\/\" >published and sellable material<\/a>\n, but in choosing an open system, I have the <em>option<\/em> to more easily develop, release, and sell content for that system. By choosing an open system, I am also assured that future players will have continued <em>legal<\/em> access to the base rules.<\/p>\n<p>Look to Powered by the Apocalypse games. Apocalypse World unleashed a massive ground swell of games. The success of Dungeon World likely demonstrated a feasibility and path for many other aspiring game developers to build from a common chassis and release their vision.<\/p>\n<p>And then we have the explosion of clones based on the <a href=\"https:\/\/takeonrules.com\/2016\/07\/28\/exhuming-my-dungeons-dragons\/#the-archaeological-map\" >prior D&amp;amp;D editions<\/a>\n.<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>I may pine to engage with the robust design of Burning Wheel, but it is a closed system.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> Copyright protects the specific language used to describe rules and systems, however you I may describe a set of rules in my own words without referencing the system and not infringe on another&rsquo;s copyright. But for my hobby, that I have on occassion monetized, I&rsquo;d prefer to operate within a safe harbor.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n I&rsquo;m looking to own the operating system of the table top <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Role-playing_game\">Role Playing Games<\/a><\/span> (<abbr title=\"Role Playing Games\">RPGs<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRole Playing Games\u201d\" title=\"Other site-wide references of \u201cRole Playing Games\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RPG\">&#128214;<\/a><\/small>)\n that I choose to play.<\/p>\n<p>I also want to make sure that the system I&rsquo;m choosing is one that my current game group supports; And is something accessible to new comers.<\/p>\n<p>Simple rules that meets the desired play style of the table.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Own Your Tools","link":"https:\/\/takeonrules.com\/2018\/11\/20\/own-your-tools\/","pubDate":"Tue, 20 Nov 2018 07:16:00 -0500","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2018\/11\/20\/own-your-tools\/","category":["knowledge-management","open-source","programming","reflections","standards"],"description":"\n        <p>I started this post with an alternate title: <em>Switching Website Build Processor<\/em><\/p>\n<p>On <a href=\"https:\/\/takeonrules.com\/2018\/11\/01\/welcome-to-my-new-take-on-rules\"><time datetime=\"2018-11-01\">2018-11-01<\/time>, I cutover my website hosting<\/a> from Wordpress to Github pages. This involved moving from a content management system to the static site building tool: <a href=\"https:\/\/jekyllrb.com\">Jekyll.rb<\/a>.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I wrote vaguely about this process in <cite><a href=\"https:\/\/takeonrules.com\/2018\/10\/31\/my-blogging-engine\/\">My Blogging Engine<\/a><\/cite>\n.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p>I switched from Jekyll to <a href=\"https:\/\/gohugo.io\">Hugo<\/a>. What prompted the change?<\/p>\n<p>Jekyll took ~66,000ms to build and serve the website on my machine; That&rsquo;s 1 minute. Hugo took ~1,500ms; that&rsquo;s about 1 second.<\/p>\n<p>When I wanted to see a stylesheet change, I&rsquo;d make a change and Jekyll would take 1 minute to show me the change. Hugo took 1 second. Hugo provides a feedback loop 60 times faster than Jekyll.<\/p>\n<p>I found Jekyll for easier than Hugo to dive into. But the speed difference made learning Hugo worth it.<\/p>\n<h2 id=\"build-process\">Build Process<\/h2>\n<p>In building my Jekyll site, I added a few additional steps after generating the base site. This was all managed through a series of <a href=\"https:\/\/ruby.github.io\/rake\/\">rake<\/a> tasks.<\/p>\n<p><span class=\"newthought\">First,<\/span> I ran a custom <code>amplify<\/code> task, creating an <a href=\"https:\/\/ampproject.org\">AMP<\/a> friendly set of pages. This involved making a copy of each page and using the following:<\/p>\n<ul>\n<li><a href=\"https:\/\/nokogiri.org\">Nokogiri<\/a>, an <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/XML\">Extensible Markup Language<\/a><\/span> (<abbr title=\"Extensible Markup Language\">XML<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cExtensible Markup Language\u201d\" title=\"Other site-wide references of \u201cExtensible Markup Language\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-XML\">&#128214;<\/a><\/small>)\n\/HTML parser, to create or replace <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/HTML\">Hypertext Markup Language<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cHypertext Markup Language\u201d\" title=\"Other site-wide references of \u201cHypertext Markup Language\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-HTML\">&#128214;<\/a><\/small>\n nodes; Removing the print stylesheet, transforming <code>img<\/code> tags to <code>amp-img<\/code> tags, etc.<\/li>\n<li>Regular Expressions to remove\/replace strings<\/li>\n<li>Readlines and <a href=\"https:\/\/cssminifier.com\">CSS Minifier<\/a> to remove non-AMP friendly <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/CSS\">Cascading Stylesheet<\/a><\/span> (<abbr title=\"Cascading Stylesheet\">CSS<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cCascading Stylesheet\u201d\" title=\"Other site-wide references of \u201cCascading Stylesheet\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-CSS\">&#128214;<\/a><\/small>)\n declarations then create a compact inline CSS<\/li>\n<li><a href=\"https:\/\/imagemagick.org\">ImageMagick<\/a> for extracting image attributes<\/li>\n<li>And some other antics to ensure an <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Accelerated_Mobile_Pages\">Accelerated Mobile Pages<\/a><\/span> (<abbr title=\"Accelerated Mobile Pages\">AMP<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cAccelerated Mobile Pages\u201d\" title=\"Other site-wide references of \u201cAccelerated Mobile Pages\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-AMP\">&#128214;<\/a><\/small>)\n compliant page<\/li>\n<\/ul>\n<p><span class=\"newthought\">Second,<\/span> I beautified each HTML document. Using <a href=\"https:\/\/rubygems.org\/gems\/htmlbeautifier\">htmlbeautifier<\/a>, I created nicely tabbed output.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> I thought about using minified HTML, but found myself viewing the source as often as using web inspector tools. So I erred on the side of legibility.<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n<\/p>\n<p><span class=\"newthought\">Third,<\/span> I again ran the <a href=\"https:\/\/cssminifier.com\">CSS Minifier<\/a> to create compact CSS for the non-AMP pages.<\/p>\n<p>In switching to the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Hugo_(software)\">Hugo<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cHugo\u201d\" title=\"Other site-wide references of \u201cHugo\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-HUGO\">&#128214;<\/a><\/small>\n build process, I ported over much of this work. Keeping the rake tasks.<\/p>\n<p>My new build process leverages the speed of Go for the heavy lifting of building the base site. Then when its time to publish, I run a series of <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Rake_(software)\">Rake<\/a><\/span> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRake\u201d\" title=\"Other site-wide references of \u201cRake\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RAKE\">&#128214;<\/a><\/small>\n tasks written in Ruby to do the fine-tuning for publication.<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>By moving away from Wordpress, I&rsquo;ve owned my website&rsquo;s build process. When I found a faster component, I was able to swap out that component with minimal fuss, while keeping other build pipeline elements.<\/p>\n<p>This process is analogous to the games derived from the Open Game License and the resulting plethora of system adjacent games and material. I found a system that worked for me, ran with it for a bit, then found something adjacent that improved my experience.<\/p>\n<p>Most important, I did this all while maintaining ownership, through open source tools, of the entire build process.<\/p>\n<p>In other words, make sure you <strong><em>own your tools<\/em><\/strong>.<\/p>\n\n      ","source":"Take on Rules"},{"title":"Celebrating 17 Years of the Open Gaming License","link":"https:\/\/takeonrules.com\/2017\/09\/13\/celebrating-17-years-of-the-open-gaming-license\/","pubDate":"Wed, 13 Sep 2017 21:29:36 -0400","author":"jeremy@takeonrules.com (Jeremy Friesen)","guid":"https:\/\/takeonrules.com\/2017\/09\/13\/celebrating-17-years-of-the-open-gaming-license\/","category":["licensing","open-source","rpgs"],"description":"\n        <p>The <a href=\"https:\/\/en.wikipedia.org\/wiki\/Open_Game_License\">Open Game License<\/a> (OGL) fascinates me. It is something I very much appreciate. I have <a href=\"\" >released content on my blog as open game content<\/a>\n.<\/p>\n<p>There are several moving aspects of the open gaming license over these last 17 years of open gaming. <em>These are un-cited opinions based on observations and intuition.<\/em><\/p>\n<p>First, it opened the 3rd edition rules of Dungeons and Dragons to legal and safe tinkering, derivation, and expansion. An industry sprung up to create supplements for <span>Dungeons and Dragons: Third Edition<\/span> (<abbr title=\"Dungeons and Dragons: Third Edition\">3E<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons: Third Edition\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons: Third Edition\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-3E\">&#128214;<\/a><\/small>)\n. It also empowered people to create gaming content that was shareable; In a legal manner as well as in proximity or alignment to existing rules systems.<\/p>\n<p>Second, it provided the framework to legally rebuild older variants of Dungeons and Dragons. First in the form of <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/OSRIC\">Old School Reference and Index Compilation<\/a><\/span> (<abbr title=\"Old School Reference and Index Compilation\">OSRIC<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOld School Reference and Index Compilation\u201d\" title=\"Other site-wide references of \u201cOld School Reference and Index Compilation\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OSRIC\">&#128214;<\/a><\/small>)\n reference document.<small class=\"side-container\">\n  <span class=\"side-label\"><span class=\"hidden\">(<\/span>Sidenote<span class=\"hidden\">:<\/span><\/span>\n  <span class=\"side\" role=\"note\"> <a href=\"https:\/\/en.wikipedia.org\/wiki\/OSRIC\">See wikipedia entry on OSRIC<\/a>)<span class=\"hidden\">)<\/span><\/span>\n<\/small>\n; then the ensuing explosion of clones, modern simulacra (in no particular order), and adjacent games:<\/p>\n<ul>\n<li>Labyrinth Lord<\/li>\n<li>Basic Fantasy<\/li>\n<li>Sword &amp; Wizardry<\/li>\n<li>Lamentations of the Flame Princess<\/li>\n<li>Blueholme<\/li>\n<li>Mazes &amp; Perils<\/li>\n<li>Castles &amp; Crusades<\/li>\n<li><cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/348152\/Whitehack-Third-Edition?affiliate_id=318171\">Whitehack<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cWhitehack\u201d\" title=\"Other site-wide references of \u201cWhitehack\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-WHITEHACK\">&#128214;<\/a><\/small>\n<\/li>\n<li>Delving Deeper<\/li>\n<li>Adventurer Conquerer King<\/li>\n<li><cite><a href=\"https:\/\/www.drivethrurpg.com\/product\/101050\/Dungeon-Crawl-Classics-RPG-DCC-RPG?affiliate_id=318171\">Dungeon Crawl Classics<\/a><\/cite> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeon Crawl Classics\u201d\" title=\"Other site-wide references of \u201cDungeon Crawl Classics\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DUNGEON-CRAWL-CLASSICS\">&#128214;<\/a><\/small>\n<\/li>\n<li>The Hero&rsquo;s Journey<\/li>\n<li>The Black Hack<\/li>\n<li>Microlite &lsquo;74<\/li>\n<li>Beyond the Wall<\/li>\n<li>And I&rsquo;m sure more<\/li>\n<\/ul>\n<p>Third, it was through the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Open_Game_License\">Open Game License<\/a><\/span> (<abbr title=\"Open Game License\">OGL<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cOpen Game License\u201d\" title=\"Other site-wide references of \u201cOpen Game License\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-OGL\">&#128214;<\/a><\/small>)\n that Pathfinder came into existence. Pathfinder is the spiritual and mechanical descendant of the most popular modern rules of <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Dungeons_%26_Dragons\">Dungeons and Dragons<\/a><\/span> (<abbr title=\"Dungeons and Dragons\">D&D<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-D&D\">&#128214;<\/a><\/small>)\n at the time. The rules and community had of the very popular rules had a safe harbour as 4E experimented with a new paradigm and a non-OGL license.<\/p>\n<p>Fourth, I look to WotC&rsquo;s releasing <cite><a href=\"https:\/\/www.dmsguild.com\/browse.php?affiliate_id=318171\">Dungeons and Dragons: Fifth Edition<\/a><\/cite> (<abbr title=\"Dungeons and Dragons: Fifth Edition\">5E<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeons and Dragons: Fifth Edition\u201d\" title=\"Other site-wide references of \u201cDungeons and Dragons: Fifth Edition\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-5E\">&#128214;<\/a><\/small>)\n under the <abbr title=\"Open Game License\">OGL<\/abbr>\n as a sign that the <abbr title=\"Open Game License\">OGL<\/abbr>\n is all-around better for them than not. Wizards of the Coast took this a step further and through the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Dungeon_Master\">Dungeon Master<\/a><\/span> (<abbr title=\"Dungeon Master\">DM<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDungeon Master\u201d\" title=\"Other site-wide references of \u201cDungeon Master\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DM\">&#128214;<\/a><\/small>)\n&rsquo;s Guild have released their flag-ship <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Role-playing_game\">Role Playing Game<\/a><\/span> (<abbr title=\"Role Playing Game\">RPG<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cRole Playing Game\u201d\" title=\"Other site-wide references of \u201cRole Playing Game\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-RPG\">&#128214;<\/a><\/small>)\n campaign world, the Forgotten Realms, for experimentation.<\/p>\n<p>In the middle of these four points we see great developments. Old <abbr title=\"Dungeons and Dragons\">D&D<\/abbr>\n adventures, long out of print, available again in <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/PDF\">Portable Document Format<\/a><\/span> (<abbr title=\"Portable Document Format\">PDF<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cPortable Document Format\u201d\" title=\"Other site-wide references of \u201cPortable Document Format\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-PDF\">&#128214;<\/a><\/small>)\n. You can use a simulacrum or the original rules to play these adventures.<\/p>\n<p>We are also seeing old adventures (B1 - In Search of the Unknown and B2 - Keep on the Borderlands) being re-released by <a href=\"https:\/\/goodman-games.com\/blog\/2017\/03\/26\/classic-dd-module-collectors-editions\">Goodman Games under both <span>Advanced Dungeons and Dragons: First Edition<\/span> (<abbr title=\"Advanced Dungeons and Dragons: First Edition\">1E<\/abbr>)\n and <abbr title=\"Dungeons and Dragons: Fifth Edition\">5E<\/abbr>\n rules in a single volume<\/a>.<\/p>\n<p>The open game license appears to have created a framework for iteration and experimentation all while ensuring that gaming and the <span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Do_it_yourself\">Do It Yourself<\/a><\/span> (<abbr title=\"Do It Yourself\">DIY<\/abbr> <small><a class=\"ref\" rel=\"tag opener\" aria-label=\"Other site-wide references of \u201cDo It Yourself\u201d\" title=\"Other site-wide references of \u201cDo It Yourself\u201d\" href=\"https:\/\/takeonrules.com\/site-map\/glossary\/#abbr-dfn-GLOSSARY-DIY\">&#128214;<\/a><\/small>)\n nature of gaming remains viable.<\/p>\n\n      ","source":"Take on Rules"}]}}