diff options
38 files changed, 792 insertions, 61 deletions
diff --git a/page.html.erb b/page.html.erb index 69ccc3a..54959d8 100644 --- a/page.html.erb +++ b/page.html.erb @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title><%= @page.title %> — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -14,7 +15,8 @@ <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <%= @page.rights %> </footer> diff --git a/public/arch-systemd.html b/public/arch-systemd.html index 30d089c..c61d2ff 100644 --- a/public/arch-systemd.html +++ b/public/arch-systemd.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>What Arch Linux's switch to systemd means for users — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -39,7 +40,7 @@ basically the only thing in rc.conf will be <code>DAEMONS</code>.<a href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a> For now there is compatibility for the variables that used to be there, but that is going away.</p> -<aside id="footnotes" class="footnotes footnotes-end-of-document" +<section id="footnotes" class="footnotes footnotes-end-of-document" role="doc-endnotes"> <hr /> <ol> @@ -67,13 +68,14 @@ role="doc-backlink">↩︎</a></p></li> <code>netmask</code>, and <code>gateway</code>. But those are minor.<a href="#fnref2" class="footnote-back" role="doc-backlink">↩︎</a></p></li> </ol> -</aside> +</section> </article> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2012 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/assets/style.css b/public/assets/style.css index f345dc1..8fa9dbf 100644 --- a/public/assets/style.css +++ b/public/assets/style.css @@ -9,13 +9,6 @@ body { font-family: sans-serif; } -blockquote { - border-left: solid .2em #DDDDFF; - margin-left: 1.5em; - padding-left: 0.3em; - font-style: italic; -} - footer { text-align: center; font-size: 70%; @@ -26,32 +19,28 @@ footer { li > p:first-child { margin-top: 0; } li p + ul { margin-top: -1em; } +/* blockquote elements */ + +blockquote { + border-left: solid .2em #DDDDFF; + margin-left: 1.5em; + padding-left: 0.3em; +} +blockquote cite { + font-style: italic; +} +blockquote cite::before { + content: "-- "; +} + /* code elements */ kbd, code, samp, tt, pre { background: #DDDDFF; -} -kbd, code, samp, tt, { - white-space: pre-wrap; -} -@media screen { - /* Firefox for Android does weird hacks with font-size. In - * particular, `white-space: pre` is broken on Firefox for - * Android if you don't set an absolute font-size. So this is - * a hack to get reasonable behavior without setting - * `white-space: pre`. */ - pre { - white-space: pre-wrap; - overflow-x: auto; - } - pre > code { - white-space: pre-wrap; - display: block; - min-width: max-content; - } + white-space: pre; } @media print { - pre, pre > code { + kbd, code, samp, tt, pre { white-space: pre-wrap; } } diff --git a/public/bash-arrays.html b/public/bash-arrays.html index 5e79064..76132f5 100644 --- a/public/bash-arrays.html +++ b/public/bash-arrays.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>Bash arrays — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -399,7 +400,8 @@ since 1996!</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2013 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/bash-redirection.html b/public/bash-redirection.html index f846a61..f69a881 100644 --- a/public/bash-redirection.html +++ b/public/bash-redirection.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>Bash redirection — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -50,7 +51,8 @@ cmd >file 2>&1 # both stdout and stderr go to file</code></pre> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2014 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/btrfs-rec.html b/public/btrfs-rec.html index 9ecaec8..e8366e9 100644 --- a/public/btrfs-rec.html +++ b/public/btrfs-rec.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>Announcing: btrfs-rec: Recover (data from) a broken btrfs filesystem — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -1166,7 +1167,8 @@ that we can get ARC into the Linux kernel before then?</p></li> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2023 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/build-bash-1.html b/public/build-bash-1.html index 02206be..d1494fd 100644 --- a/public/build-bash-1.html +++ b/public/build-bash-1.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>Building Bash 1.14.7 on a modern system — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -99,7 +100,8 @@ exponential function.</li> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2015 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/crt-sh-architecture.html b/public/crt-sh-architecture.html index a0a2840..bf1b71c 100644 --- a/public/crt-sh-architecture.html +++ b/public/crt-sh-architecture.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>The interesting architecture of crt.sh — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -76,7 +77,8 @@ were worth sharing.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2018 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/emacs-as-an-os.html b/public/emacs-as-an-os.html index 5218245..f0602c1 100644 --- a/public/emacs-as-an-os.html +++ b/public/emacs-as-an-os.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>Emacs as an operating system — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -45,7 +46,8 @@ to do that all over the network.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2013 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/emacs-shells.html b/public/emacs-shells.html index 66035f7..a75c5f7 100644 --- a/public/emacs-shells.html +++ b/public/emacs-shells.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>A summary of Emacs' bundled shell and terminal modes — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -76,7 +77,8 @@ or bash, it will be running “esh”, part of Emacs.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2013 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/fd_printf.html b/public/fd_printf.html index 2bc55a4..dc4d7c6 100644 --- a/public/fd_printf.html +++ b/public/fd_printf.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>`dprintf`: print formatted text directly to a file descriptor — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -51,7 +52,8 @@ results.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2013 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="http://www.wtfpl.net/txt/copying/">WTFPL-2</a> license.</p> diff --git a/public/footpedal.html b/public/footpedal.html new file mode 100644 index 0000000..046b556 --- /dev/null +++ b/public/footpedal.html @@ -0,0 +1,111 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>My footpedal — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="assets/style.css"> + <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> +</head> +<body> +<header><a href="/">Luke T. Shumaker</a> » <a href=/blog>blog</a> » footpedal</header> +<article> +<h1 id="my-footpedal">My footpedal</h1> +<p>A collection of things I have written about the footpedal that I +sometimes use with my computer:</p> +<hr /> +<blockquote> +<p>I have a VEC Infinity IN-USB-2 that I grabbed at Goodwill for $5.</p> +<p>I love it. I tend to use it less when the RSI isn’t flaring up, but +the first time I had RSI being bad is when I started to use it–it really +helped. My RSI was in the few fingers on the pinky-side of my hands (so +the opposite of <abbr title="Carpel Tunnel +Syndrome">CTS</abbr>; I’m told this is less common, but I’m figuring +it’s more common for Emacs users, with all the talk of “Emacs-pinky”), +and much worse on my right hand. The pedal has 3 keys; I have them as +(left-to-right) Control, Shift, and Alt/Meta, with the addition that if +I short-tap the center, it does Enter; this basically means that I can +avoid using my right pinky at all when typing. This allowed me to keep +using the computer without making things worse, while I did other things +to improve the RSI (stretches, wearing wrist braces at night). The +tap-for-Enter seems a bit weird, but I added it after that motion seemed +instinctual when using left-button for control in a repeated C-s search; +hold foot-left and tap keyboard-S to increment search, then tap +foot-center to complete the search.</p> +<p>About the IN-USB-2 specifically:</p> +<p><strong><em>It’s an XK-3:</em></strong> It’s actually made by P.I. +Engineering for VEC; it’s a <a +href="https://web.archive.org/web/20180119/http://piengineering.com/xkeys/xkfootRear.php">rear-hinged +X-Keys XK-3</a><sup>(<a href="https://xkeys.com/xkfootrear.html">updated +link</a>)</sup> with a different (less capable) firmware. The benefit of +the crippled firmware is that the IN-USB-2 is way cheaper than buying a +“real” XK-3 (even without finding one at Goodwill).</p> +<p><strong><em>Firmware:</em></strong> On the downside of that, the +firmware is less capable; unlike the XK-3, it shows up as a generic HID +device with 3 buttons, instead of as a keyboard, and thus you can’t +configure which button is which key. That is, you’ll have to have a +program running to monitor the HID buttons and synthesize whichever key +events you want, instead of configuring the keys on the device. +Fortunately, the device is supported by P.I. Engineering’s Linux SDK, <a +href="https://web.archive.org/web/20180119/http://xkeys.com/PISupport/DeveloperLinuxSDK.php"><code>pihid</code></a><sup>(<a +href="https://xkeys.com/software/developer/developerlinuxsdk.html">updated +link</a>)</sup> (<a +href="https://github.com/piengineering/xkeys">git</a>), so that program +is fairly easy to write (and as an Emacs user, you probably appreciate +that configuration-is-code gives you more flexibility). The +<code>pihid</code> SDK is a crappy little wrapper around the +<code>hidapi</code> library with the appropriate magic numbers for the +hardware. <code>hidapi</code> is portable to macOS; I imagine that +getting <code>pihid</code> working on macOS is no trouble at all. (IDK +if their <a +href="https://web.archive.org/web/20180119/http://piengineering.com/PISupport/SoftwareControllerMate.php">ControllerMate</a> +program for macOS works with it, or if ControllerMate requires the real +XK-3 firmware.)</p> +<p><strong><em>Hardware:</em></strong> The thing feels sturdy. If the +switch ever craps out (not that I think it would), it’s a generic switch +that’s in everything that you can pick up for $0.50; which is nice for +peace-of-mind. The middle button feels a little wide; I generally have +my foot around the left side of it, for Control, and it is difficult to +reach over to the right for Meta, and usually end up hitting Meta on the +keyboard instead.</p> +<p><cite><a +href="https://reddit.com/r/emacs/comments/7remed/has_anybody_used_foot_pedals/dswhzkt/">Reddit, +2018-01-19</a></cite></p> +</blockquote> +<hr /> +<blockquote> +<p>I love it, but I don’t necessarily love it <em>more than I would any +other foot pedal</em>. If you find a different one for cheaper, go for +it.</p> +<p><cite><a +href="https://reddit.com/r/emacs/comments/7remed/has_anybody_used_foot_pedals/dswrf3r/">Reddit, +2018-01-19</a></cite></p> +</blockquote> +<hr /> +<blockquote> +<p>I found that my brain didn’t want to treat the pedals like it did +keys–it wanted to treat them modally. I wasn’t <em>pressing +control</em>, I was <em>entering control-mode</em>. I wasn’t +<em>pressing shift</em>, I was <em>entering caps-mode</em>. Which works +out, because it isn’t the quick keystrokes that cause the most strain, +it’s holding the modifier with one finger while the rest of the hand +moves around. I wouldn’t use the footpedal Control for the usual quick +C-f/b/n/p, but it’s great for holding Control as you C-s through a +document.</p> +<p><cite><a +href="https://reddit.com/r/emacs/comments/7remed/has_anybody_used_foot_pedals/dswrmo5/">Reddit, +2018-01-19</a></cite></p> +</blockquote> + +</article> +<footer> + <aside class="sponsor"><p>I'd love it if you <a class="em" + href="/sponsor/">sponsored me</a>. It will allow me to continue + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> + +<p>The content of this page is Copyright © 2025 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> +<p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> +</footer> +</body> +</html> diff --git a/public/footpedal.md b/public/footpedal.md new file mode 100644 index 0000000..57c1d92 --- /dev/null +++ b/public/footpedal.md @@ -0,0 +1,93 @@ +My footpedal +============ +--- +date: "2025-05-31" +markdown_options: "+superscript" +--- + +A collection of things I have written about the footpedal that I +sometimes use with my computer: + +---- + +> I have a VEC Infinity IN-USB-2 that I grabbed at Goodwill for $5. +> +> I love it. I tend to use it less when the RSI isn't flaring up, but +> the first time I had RSI being bad is when I started to use it--it +> really helped. My RSI was in the few fingers on the pinky-side of +> my hands (so the opposite of <abbr title="Carpel Tunnel +> Syndrome">CTS</abbr>; I'm told this is less common, but I'm figuring +> it's more common for Emacs users, with all the talk of +> "Emacs-pinky"), and much worse on my right hand. The pedal has 3 +> keys; I have them as (left-to-right) Control, Shift, and Alt/Meta, +> with the addition that if I short-tap the center, it does Enter; +> this basically means that I can avoid using my right pinky at all +> when typing. This allowed me to keep using the computer without +> making things worse, while I did other things to improve the RSI +> (stretches, wearing wrist braces at night). The tap-for-Enter seems +> a bit weird, but I added it after that motion seemed instinctual +> when using left-button for control in a repeated C-s search; hold +> foot-left and tap keyboard-S to increment search, then tap +> foot-center to complete the search. +> +> About the IN-USB-2 specifically: +> +> ***It's an XK-3:*** It's actually made by P.I. Engineering for VEC; +> it's a [rear-hinged X-Keys +> XK-3](https://web.archive.org/web/20180119/http://piengineering.com/xkeys/xkfootRear.php)^([updated +> link](https://xkeys.com/xkfootrear.html))^ with a different (less +> capable) firmware. The benefit of the crippled firmware is that the +> IN-USB-2 is way cheaper than buying a "real" XK-3 (even without +> finding one at Goodwill). +> +> ***Firmware:*** On the downside of that, the firmware is less +> capable; unlike the XK-3, it shows up as a generic HID device with 3 +> buttons, instead of as a keyboard, and thus you can't configure +> which button is which key. That is, you'll have to have a program +> running to monitor the HID buttons and synthesize whichever key +> events you want, instead of configuring the keys on the device. +> Fortunately, the device is supported by P.I. Engineering's Linux +> SDK, +> [`pihid`](https://web.archive.org/web/20180119/http://xkeys.com/PISupport/DeveloperLinuxSDK.php)^([updated +> link](https://xkeys.com/software/developer/developerlinuxsdk.html))^ +> ([git](https://github.com/piengineering/xkeys)), so that program is +> fairly easy to write (and as an Emacs user, you probably appreciate +> that configuration-is-code gives you more flexibility). The `pihid` +> SDK is a crappy little wrapper around the `hidapi` library with the +> appropriate magic numbers for the hardware. `hidapi` is portable to +> macOS; I imagine that getting `pihid` working on macOS is no trouble +> at all. (IDK if their +> [ControllerMate](https://web.archive.org/web/20180119/http://piengineering.com/PISupport/SoftwareControllerMate.php) +> program for macOS works with it, or if ControllerMate requires the +> real XK-3 firmware.) +> +> ***Hardware:*** The thing feels sturdy. If the switch ever craps +> out (not that I think it would), it's a generic switch that's in +> everything that you can pick up for $0.50; which is nice for +> peace-of-mind. The middle button feels a little wide; I generally +> have my foot around the left side of it, for Control, and it is +> difficult to reach over to the right for Meta, and usually end up +> hitting Meta on the keyboard instead. +> +> <cite>[Reddit, 2018-01-19](https://reddit.com/r/emacs/comments/7remed/has_anybody_used_foot_pedals/dswhzkt/)</cite> + +---- + +> I love it, but I don't necessarily love it *more than I would any +> other foot pedal*. If you find a different one for cheaper, go for +> it. +> +> <cite>[Reddit, 2018-01-19](https://reddit.com/r/emacs/comments/7remed/has_anybody_used_foot_pedals/dswrf3r/)</cite> + +---- + +> I found that my brain didn't want to treat the pedals like it did +> keys--it wanted to treat them modally. I wasn't *pressing control*, +> I was *entering control-mode*. I wasn't *pressing shift*, I was +> *entering caps-mode*. Which works out, because it isn't the quick +> keystrokes that cause the most strain, it's holding the modifier +> with one finger while the rest of the hand moves around. I wouldn't +> use the footpedal Control for the usual quick C-f/b/n/p, but it's +> great for holding Control as you C-s through a document. +> +> <cite>[Reddit, 2018-01-19](https://reddit.com/r/emacs/comments/7remed/has_anybody_used_foot_pedals/dswrmo5/)</cite> diff --git a/public/fs-licensing-explanation.html b/public/fs-licensing-explanation.html index f84f5ac..f46dd7f 100644 --- a/public/fs-licensing-explanation.html +++ b/public/fs-licensing-explanation.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>An explanation of how "copyleft" licensing works — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -69,7 +70,8 @@ source.”</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2013 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/git-go-pre-commit.html b/public/git-go-pre-commit.html index 8b81f61..7349e46 100644 --- a/public/git-go-pre-commit.html +++ b/public/git-go-pre-commit.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>A git pre-commit hook for automatically formatting Go code — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -60,7 +61,8 @@ remember why I did that, I will update this page.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2013 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="http://www.wtfpl.net/txt/copying/">WTFPL-2</a> license.</p> diff --git a/public/http-notes.html b/public/http-notes.html index 7828a1d..99b13c4 100644 --- a/public/http-notes.html +++ b/public/http-notes.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>Notes on subtleties of HTTP implementation — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -121,7 +122,8 @@ as OPTIONS for the entire server.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2016 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/index.atom b/public/index.atom index 6423bca..29407be 100644 --- a/public/index.atom +++ b/public/index.atom @@ -5,12 +5,226 @@ <link rel="self" type="application/atom+xml" href="./index.atom"/> <link rel="alternate" type="text/html" href="./"/> <link rel="alternate" type="text/markdown" href="./index.md"/> - <updated>2023-07-10T00:00:00+00:00</updated> + <updated>2025-05-31T00:00:00+00:00</updated> <author><name>Luke T. Shumaker</name><uri>https://lukeshu.com/</uri><email>lukeshu@lukeshu.com</email></author> <id>https://lukeshu.com/blog/</id> <entry xmlns="http://www.w3.org/2005/Atom"> + <link rel="alternate" type="text/html" href="./footpedal.html"/> + <link rel="alternate" type="text/markdown" href="./footpedal.md"/> + <id>https://lukeshu.com/blog/footpedal.html</id> + <updated>2025-05-31T00:00:00+00:00</updated> + <published>2025-05-31T00:00:00+00:00</published> + <title>My footpedal</title> + <content type="html"><h1 id="my-footpedal">My footpedal</h1> +<p>A collection of things I have written about the footpedal that I +sometimes use with my computer:</p> +<hr /> +<blockquote> +<p>I have a VEC Infinity IN-USB-2 that I grabbed at Goodwill for $5.</p> +<p>I love it. I tend to use it less when the RSI isn’t flaring up, but +the first time I had RSI being bad is when I started to use it–it really +helped. My RSI was in the few fingers on the pinky-side of my hands (so +the opposite of <abbr title="Carpel Tunnel +Syndrome">CTS</abbr>; I’m told this is less common, but I’m figuring +it’s more common for Emacs users, with all the talk of “Emacs-pinky”), +and much worse on my right hand. The pedal has 3 keys; I have them as +(left-to-right) Control, Shift, and Alt/Meta, with the addition that if +I short-tap the center, it does Enter; this basically means that I can +avoid using my right pinky at all when typing. This allowed me to keep +using the computer without making things worse, while I did other things +to improve the RSI (stretches, wearing wrist braces at night). The +tap-for-Enter seems a bit weird, but I added it after that motion seemed +instinctual when using left-button for control in a repeated C-s search; +hold foot-left and tap keyboard-S to increment search, then tap +foot-center to complete the search.</p> +<p>About the IN-USB-2 specifically:</p> +<p><strong><em>It’s an XK-3:</em></strong> It’s actually made by P.I. +Engineering for VEC; it’s a <a +href="https://web.archive.org/web/20180119/http://piengineering.com/xkeys/xkfootRear.php">rear-hinged +X-Keys XK-3</a><sup>(<a href="https://xkeys.com/xkfootrear.html">updated +link</a>)</sup> with a different (less capable) firmware. The benefit of +the crippled firmware is that the IN-USB-2 is way cheaper than buying a +“real” XK-3 (even without finding one at Goodwill).</p> +<p><strong><em>Firmware:</em></strong> On the downside of that, the +firmware is less capable; unlike the XK-3, it shows up as a generic HID +device with 3 buttons, instead of as a keyboard, and thus you can’t +configure which button is which key. That is, you’ll have to have a +program running to monitor the HID buttons and synthesize whichever key +events you want, instead of configuring the keys on the device. +Fortunately, the device is supported by P.I. Engineering’s Linux SDK, <a +href="https://web.archive.org/web/20180119/http://xkeys.com/PISupport/DeveloperLinuxSDK.php"><code>pihid</code></a><sup>(<a +href="https://xkeys.com/software/developer/developerlinuxsdk.html">updated +link</a>)</sup> (<a +href="https://github.com/piengineering/xkeys">git</a>), so that program +is fairly easy to write (and as an Emacs user, you probably appreciate +that configuration-is-code gives you more flexibility). The +<code>pihid</code> SDK is a crappy little wrapper around the +<code>hidapi</code> library with the appropriate magic numbers for the +hardware. <code>hidapi</code> is portable to macOS; I imagine that +getting <code>pihid</code> working on macOS is no trouble at all. (IDK +if their <a +href="https://web.archive.org/web/20180119/http://piengineering.com/PISupport/SoftwareControllerMate.php">ControllerMate</a> +program for macOS works with it, or if ControllerMate requires the real +XK-3 firmware.)</p> +<p><strong><em>Hardware:</em></strong> The thing feels sturdy. If the +switch ever craps out (not that I think it would), it’s a generic switch +that’s in everything that you can pick up for $0.50; which is nice for +peace-of-mind. The middle button feels a little wide; I generally have +my foot around the left side of it, for Control, and it is difficult to +reach over to the right for Meta, and usually end up hitting Meta on the +keyboard instead.</p> +<p><cite><a +href="https://reddit.com/r/emacs/comments/7remed/has_anybody_used_foot_pedals/dswhzkt/">Reddit, +2018-01-19</a></cite></p> +</blockquote> +<hr /> +<blockquote> +<p>I love it, but I don’t necessarily love it <em>more than I would any +other foot pedal</em>. If you find a different one for cheaper, go for +it.</p> +<p><cite><a +href="https://reddit.com/r/emacs/comments/7remed/has_anybody_used_foot_pedals/dswrf3r/">Reddit, +2018-01-19</a></cite></p> +</blockquote> +<hr /> +<blockquote> +<p>I found that my brain didn’t want to treat the pedals like it did +keys–it wanted to treat them modally. I wasn’t <em>pressing +control</em>, I was <em>entering control-mode</em>. I wasn’t +<em>pressing shift</em>, I was <em>entering caps-mode</em>. Which works +out, because it isn’t the quick keystrokes that cause the most strain, +it’s holding the modifier with one finger while the rest of the hand +moves around. I wouldn’t use the footpedal Control for the usual quick +C-f/b/n/p, but it’s great for holding Control as you C-s through a +document.</p> +<p><cite><a +href="https://reddit.com/r/emacs/comments/7remed/has_anybody_used_foot_pedals/dswrmo5/">Reddit, +2018-01-19</a></cite></p> +</blockquote> +</content> + <author><name>Luke T. Shumaker</name><uri>https://lukeshu.com/</uri><email>lukeshu@lukeshu.com</email></author> + <rights type="html"><p>The content of this page is Copyright © 2025 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> +<p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p></rights> + </entry> + + <entry xmlns="http://www.w3.org/2005/Atom"> + <link rel="alternate" type="text/html" href="./relax-ng-errata.html"/> + <link rel="alternate" type="text/markdown" href="./relax-ng-errata.md"/> + <id>https://lukeshu.com/blog/relax-ng-errata.html</id> + <updated>2024-07-10T00:00:00+00:00</updated> + <published>2024-07-10T00:00:00+00:00</published> + <title>RELAX NG Compact Syntax errata</title> + <content type="html"><h1 id="relax-ng-compact-syntax-errata">RELAX NG Compact Syntax +errata</h1> +<div style="font-family: monospace"> +<p>To: relax-ng-comment@lists.oasis-open.org, jjc@jclark.com, +eb2m-mrt@asahi-net.or.jp<br/> Subject: RELAX NG Compact Syntax +errata<br/> Date: Sun, 09 Jun 2024 17:47:17 -0600<br/> Message-ID: +&lt;87sexly8ze.wl-lukeshu@lukeshu.com&gt;</p> +</div> +<p>Hello,</p> +<p>I believe that I have found an error in the <a +href="https://relaxng.org/compact-20021121.html">RELAX NG Compact Syntax +document</a> (and am unsure if this is the best way to report it).</p> +<p>In the definition for <code>primary</code>, it says</p> +<pre><code> primary returns Element ::= +… + | &quot;empty&quot; + { &lt;empty/&gt; } + | &quot;notAllowed&quot; + { &lt;notAllowed/&gt; } + | &quot;empty&quot; + { &lt;text/&gt; } +…</code></pre> +<p>Surely that second "empty" literal should be "text"?</p> +<div style="font-family: monospace"> +<p>-- <br/> Cheers,<br/> ~ Luke T. Shumaker<br/></p> +</div> +</content> + <author><name>Luke T. Shumaker</name><uri>https://lukeshu.com/</uri><email>lukeshu@lukeshu.com</email></author> + <rights type="html"><p>The content of this page is Copyright © 2024 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> +<p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p></rights> + </entry> + + <entry xmlns="http://www.w3.org/2005/Atom"> + <link rel="alternate" type="text/html" href="./message-threading.html"/> + <link rel="alternate" type="text/markdown" href="./message-threading.md"/> + <id>https://lukeshu.com/blog/message-threading.html</id> + <updated>2024-06-08T00:00:00+00:00</updated> + <published>2024-06-08T00:00:00+00:00</published> + <title>Notes on email message threading</title> + <content type="html"><h1 id="notes-on-email-message-threading">Notes on email message +threading</h1> +<blockquote> +<p>I sent an email to Jamie Zawinski with feedback on his venerable +email threading algorithm. Perhaps my commentary will be a useful +reference to others implementing email threading.</p> +<p>You can see my implementation of his algorithm at <a +href="https://git.lukeshu.com/www/tree/cmd/generate/mailstuff/thread_alg.go" +class="uri">https://git.lukeshu.com/www/tree/cmd/generate/mailstuff/thread_alg.go</a> +(and a use of it at <a +href="https://git.lukeshu.com/www/tree/cmd/generate/mailstuff/thread.go" +class="uri">https://git.lukeshu.com/www/tree/cmd/generate/mailstuff/thread.go</a>).</p> +</blockquote> +<div style="font-family: monospace"> +<p>To: <a href="https://www.jwz.org/">Jamie Zawinski</a> <a +href="https://www.jwz.org/about.html">&lt;jwz@jwz.org&gt;</a><br/> +Subject: message threading<br/> Date: Sat, 08 Jun 2024 22:34:41 -0600 +Message-ID: &lt;87tti2ybry.wl-lukeshu@lukeshu.com&gt;</p> +</div> +<p>Hi,</p> +<p>I'm implementing message threading, and have been referencing both +your document <a +href="https://www.jwz.org/doc/threading.html">&lt;https://www.jwz.org/doc/threading.html&gt;</a>; +and <a href="https://datatracker.ietf.org/doc/html/rfc5256">RFC +5256</a>. I'm not sure whether you're interested in updating a document +that's more than 25 years old, but if you are: I hope you find the +following feedback valuable.</p> +<p>You write that the algorithm in RFC 5256 is merely a <q>restating</q> +of your algorithm, but I noticed 3 (minor) differences:</p> +<ol type="1"> +<li><p>In your step 1.C, the RFC says to check whether this would create +a loop, and if it would to skip creating the link; your version only +says to perform this check in step 1.B.</p></li> +<li><p>The RFC says to sort the messages by date between your steps 4 +and 5; that is: when grouping by subject, containers in the root set +should be processed in date-order (you do not specify an order), and +that if container in the root set is empty then the subject should be +taken from the earliest-date child (you say to use an arbitrary +child).</p></li> +<li><p>The RFC precisely states how to trim a subject down to a "base +subject," rather than simply saying <q>Strip ``Re:'', ``RE:'', +``RE[5]:'', ``Re: Re[4]: Re:'' and so on.</q></p></li> +</ol> +<p>Additionally, there are two minor points on which I found their +version to be clearer:</p> +<ol type="1"> +<li><p>The RFC specifies how to handle messages without a Message-Id or +with a duplicate Message-Id (on <a +href="https://datatracker.ietf.org/doc/html/rfc5256#page-9">page 9</a>), +as well as how to normalize a Message-Id (by referring to <a +href="https://datatracker.ietf.org/doc/html/rfc2822">RFC 2822</a>). This +is perhaps out-of-scope of your algorithm document, but I feel that it +would be worth mentioning in your background or definitions +section.</p></li> +<li><p>In your step 1.B, I did not understand what <q>If they are +already linked, don't change the existing links</q> meant until I read +the RFC, which words it as <q>If a message already has a parent, don't +change the existing link.</q> It was unclear to me what <q>they</q> was +referring to in your version.</p></li> +</ol> +<div style="font-family: monospace"> +<p>-- <br/> Happy hacking,<br/> ~ Luke T. Shumaker<br/></p> +</div> +</content> + <author><name>Luke T. Shumaker</name><uri>https://lukeshu.com/</uri><email>lukeshu@lukeshu.com</email></author> + <rights type="html"><p>The content of this page is Copyright © 2024 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> +<p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p></rights> + </entry> + + <entry xmlns="http://www.w3.org/2005/Atom"> <link rel="alternate" type="text/html" href="./btrfs-rec.html"/> <link rel="alternate" type="text/markdown" href="./btrfs-rec.md"/> <id>https://lukeshu.com/blog/btrfs-rec.html</id> @@ -3998,7 +4212,7 @@ basically the only thing in rc.conf will be <code>DAEMONS</code>.< href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a> For now there is compatibility for the variables that used to be there, but that is going away.</p> -<aside id="footnotes" class="footnotes footnotes-end-of-document" +<section id="footnotes" class="footnotes footnotes-end-of-document" role="doc-endnotes"> <hr /> <ol> @@ -4026,7 +4240,7 @@ role="doc-backlink">↩︎</a></p></li> <code>netmask</code>, and <code>gateway</code>. But those are minor.<a href="#fnref2" class="footnote-back" role="doc-backlink">↩︎</a></p></li> </ol> -</aside> +</section> </content> <author><name>Luke T. Shumaker</name><uri>https://lukeshu.com/</uri><email>lukeshu@lukeshu.com</email></author> <rights type="html"><p>The content of this page is Copyright © 2012 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> diff --git a/public/index.html b/public/index.html index 9fa4930..6f42f54 100644 --- a/public/index.html +++ b/public/index.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>Web log entries — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -20,6 +21,12 @@ time { } </style> <ul> +<li><time>2025-05-31</time> - <a href="./footpedal.html">My +footpedal</a></li> +<li><time>2024-07-10</time> - <a href="./relax-ng-errata.html">RELAX NG +Compact Syntax errata</a></li> +<li><time>2024-06-08</time> - <a href="./message-threading.html">Notes +on email message threading</a></li> <li><time>2023-07-10</time> - <a href="./btrfs-rec.html">Announcing: btrfs-rec: Recover (data from) a broken btrfs filesystem</a></li> <li><time>2018-02-09</time> - <a href="./posix-pricing.html">POSIX @@ -86,7 +93,8 @@ Linux’s switch to systemd means for users</a></li> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/index.md b/public/index.md index fda3bcc..c44e0ea 100644 --- a/public/index.md +++ b/public/index.md @@ -10,6 +10,9 @@ time { } </style> + * <time>2025-05-31</time> - [My footpedal](./footpedal.html) + * <time>2024-07-10</time> - [RELAX NG Compact Syntax errata](./relax-ng-errata.html) + * <time>2024-06-08</time> - [Notes on email message threading](./message-threading.html) * <time>2023-07-10</time> - [Announcing: btrfs-rec: Recover (data from) a broken btrfs filesystem](./btrfs-rec.html) * <time>2018-02-09</time> - [POSIX pricing and availability; or: Do you really need the PDF?](./posix-pricing.html) * <time>2018-02-09</time> - [GNU/Linux Keyboard Maps: xmodmap](./kbd-xmodmap.html) diff --git a/public/java-segfault-redux.html b/public/java-segfault-redux.html index 41328df..e111f5e 100644 --- a/public/java-segfault-redux.html +++ b/public/java-segfault-redux.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>My favorite bug: segfaults in Java (redux) — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -208,7 +209,8 @@ solution to me.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2016 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/java-segfault.html b/public/java-segfault.html index 2344acf..4da6dec 100644 --- a/public/java-segfault.html +++ b/public/java-segfault.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>My favorite bug: segfaults in Java — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -110,7 +111,8 @@ the fix.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2014 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/kbd-xmodmap.html b/public/kbd-xmodmap.html index fdede30..985d55f 100644 --- a/public/kbd-xmodmap.html +++ b/public/kbd-xmodmap.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>GNU/Linux Keyboard Maps: xmodmap — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -230,7 +231,8 @@ files nicer:</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2018 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/lp2015-videos.html b/public/lp2015-videos.html index 0445e7d..b7c2c4c 100644 --- a/public/lp2015-videos.html +++ b/public/lp2015-videos.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>I took some videos at LibrePlanet — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -28,7 +29,8 @@ the video I took</a>.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2015 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/make-memoize.html b/public/make-memoize.html index ae3da5f..df3699a 100644 --- a/public/make-memoize.html +++ b/public/make-memoize.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>A memoization routine for GNU Make functions — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -83,7 +84,8 @@ wrote one that you can use.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2014 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="http://www.wtfpl.net/txt/copying/">WTFPL-2</a> license.</p> diff --git a/public/message-threading.html b/public/message-threading.html new file mode 100644 index 0000000..f829ade --- /dev/null +++ b/public/message-threading.html @@ -0,0 +1,88 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>Notes on email message threading — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="assets/style.css"> + <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> +</head> +<body> +<header><a href="/">Luke T. Shumaker</a> » <a href=/blog>blog</a> » message-threading</header> +<article> +<h1 id="notes-on-email-message-threading">Notes on email message +threading</h1> +<blockquote> +<p>I sent an email to Jamie Zawinski with feedback on his venerable +email threading algorithm. Perhaps my commentary will be a useful +reference to others implementing email threading.</p> +<p>You can see my implementation of his algorithm at <a +href="https://git.lukeshu.com/www/tree/cmd/generate/mailstuff/thread_alg.go" +class="uri">https://git.lukeshu.com/www/tree/cmd/generate/mailstuff/thread_alg.go</a> +(and a use of it at <a +href="https://git.lukeshu.com/www/tree/cmd/generate/mailstuff/thread.go" +class="uri">https://git.lukeshu.com/www/tree/cmd/generate/mailstuff/thread.go</a>).</p> +</blockquote> +<div style="font-family: monospace"> +<p>To: <a href="https://www.jwz.org/">Jamie Zawinski</a> <a +href="https://www.jwz.org/about.html"><jwz@jwz.org></a><br/> +Subject: message threading<br/> Date: Sat, 08 Jun 2024 22:34:41 -0600 +Message-ID: <87tti2ybry.wl-lukeshu@lukeshu.com></p> +</div> +<p>Hi,</p> +<p>I'm implementing message threading, and have been referencing both +your document <a +href="https://www.jwz.org/doc/threading.html"><https://www.jwz.org/doc/threading.html></a>; +and <a href="https://datatracker.ietf.org/doc/html/rfc5256">RFC +5256</a>. I'm not sure whether you're interested in updating a document +that's more than 25 years old, but if you are: I hope you find the +following feedback valuable.</p> +<p>You write that the algorithm in RFC 5256 is merely a <q>restating</q> +of your algorithm, but I noticed 3 (minor) differences:</p> +<ol type="1"> +<li><p>In your step 1.C, the RFC says to check whether this would create +a loop, and if it would to skip creating the link; your version only +says to perform this check in step 1.B.</p></li> +<li><p>The RFC says to sort the messages by date between your steps 4 +and 5; that is: when grouping by subject, containers in the root set +should be processed in date-order (you do not specify an order), and +that if container in the root set is empty then the subject should be +taken from the earliest-date child (you say to use an arbitrary +child).</p></li> +<li><p>The RFC precisely states how to trim a subject down to a "base +subject," rather than simply saying <q>Strip ``Re:'', ``RE:'', +``RE[5]:'', ``Re: Re[4]: Re:'' and so on.</q></p></li> +</ol> +<p>Additionally, there are two minor points on which I found their +version to be clearer:</p> +<ol type="1"> +<li><p>The RFC specifies how to handle messages without a Message-Id or +with a duplicate Message-Id (on <a +href="https://datatracker.ietf.org/doc/html/rfc5256#page-9">page 9</a>), +as well as how to normalize a Message-Id (by referring to <a +href="https://datatracker.ietf.org/doc/html/rfc2822">RFC 2822</a>). This +is perhaps out-of-scope of your algorithm document, but I feel that it +would be worth mentioning in your background or definitions +section.</p></li> +<li><p>In your step 1.B, I did not understand what <q>If they are +already linked, don't change the existing links</q> meant until I read +the RFC, which words it as <q>If a message already has a parent, don't +change the existing link.</q> It was unclear to me what <q>they</q> was +referring to in your version.</p></li> +</ol> +<div style="font-family: monospace"> +<p>-- <br/> Happy hacking,<br/> ~ Luke T. Shumaker<br/></p> +</div> + +</article> +<footer> + <aside class="sponsor"><p>I'd love it if you <a class="em" + href="/sponsor/">sponsored me</a>. It will allow me to continue + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> + +<p>The content of this page is Copyright © 2024 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> +<p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> +</footer> +</body> +</html> diff --git a/public/message-threading.md b/public/message-threading.md new file mode 100644 index 0000000..a710631 --- /dev/null +++ b/public/message-threading.md @@ -0,0 +1,76 @@ +Notes on email message threading +================================ +--- +date: "2024-06-08" +markdown_options: "-smart" +--- + +> I sent an email to Jamie Zawinski with feedback on his venerable +> email threading algorithm. Perhaps my commentary will be a useful +> reference to others implementing email threading. +> +> You can see my implementation of his algorithm at +> <https://git.lukeshu.com/www/tree/cmd/generate/mailstuff/thread_alg.go> +> (and a use of it at +> <https://git.lukeshu.com/www/tree/cmd/generate/mailstuff/thread.go>). + +<div style="font-family: monospace"> +To: [Jamie Zawinski] [<jwz@jwz.org>]<br/> +Subject: message threading<br/> +Date: Sat, 08 Jun 2024 22:34:41 -0600 +Message-ID: <87tti2ybry.wl-lukeshu@lukeshu.com> +</div> + +Hi, + +I'm implementing message threading, and have been referencing both +your document [<https://www.jwz.org/doc/threading.html>]; and [RFC 5256]. +I'm not sure whether you're interested in updating a document that's +more than 25 years old, but if you are: I hope you find the following +feedback valuable. + +You write that the algorithm in RFC 5256 is merely a <q>restating</q> of +your algorithm, but I noticed 3 (minor) differences: + +1. In your step 1.C, the RFC says to check whether this would create a + loop, and if it would to skip creating the link; your version only + says to perform this check in step 1.B. + +2. The RFC says to sort the messages by date between your steps 4 and + 5; that is: when grouping by subject, containers in the root set + should be processed in date-order (you do not specify an order), + and that if container in the root set is empty then the subject + should be taken from the earliest-date child (you say to use an + arbitrary child). + +3. The RFC precisely states how to trim a subject down to a "base + subject," rather than simply saying <q>Strip \`\`Re:'', \`\`RE:'', + \`\`RE[5]:'', \`\`Re: Re[4]: Re:'' and so on.</q> + +Additionally, there are two minor points on which I found their +version to be clearer: + +1. The RFC specifies how to handle messages without a Message-Id or + with a duplicate Message-Id (on [page 9]), as well as how to + normalize a Message-Id (by referring to [RFC 2822]). This is perhaps + out-of-scope of your algorithm document, but I feel that it would + be worth mentioning in your background or definitions section. + +2. In your step 1.B, I did not understand what <q>If they are already + linked, don't change the existing links</q> meant until I read the + RFC, which words it as <q>If a message already has a parent, don't + change the existing link.</q> It was unclear to me what <q>they</q> was + referring to in your version. + +<div style="font-family: monospace"> +-- <br/> +Happy hacking,<br/> +~ Luke T. Shumaker<br/> +</div> + +[Jamie Zawinski]: https://www.jwz.org/ +[<jwz@jwz.org>]: https://www.jwz.org/about.html +[<https://www.jwz.org/doc/threading.html>]: https://www.jwz.org/doc/threading.html +[RFC 5256]: https://datatracker.ietf.org/doc/html/rfc5256 +[RFC 2822]: https://datatracker.ietf.org/doc/html/rfc2822 +[page 9]: https://datatracker.ietf.org/doc/html/rfc5256#page-9 diff --git a/public/nginx-mediawiki.html b/public/nginx-mediawiki.html index 8d677f2..917ec56 100644 --- a/public/nginx-mediawiki.html +++ b/public/nginx-mediawiki.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>An Nginx configuration for MediaWiki — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -77,7 +78,8 @@ figure it out.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2015 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/pacman-overview.html b/public/pacman-overview.html index c5e3114..18291aa 100644 --- a/public/pacman-overview.html +++ b/public/pacman-overview.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>A quick overview of usage of the Pacman package manager — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -52,7 +53,8 @@ system.</li> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2013 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/poor-system-documentation.html b/public/poor-system-documentation.html index 7d6088c..2611856 100644 --- a/public/poor-system-documentation.html +++ b/public/poor-system-documentation.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>Why documentation on GNU/Linux sucks — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -47,7 +48,8 @@ the worst of both worlds, and a few problems of its own.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2012 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/posix-pricing.html b/public/posix-pricing.html index 40d229b..43f4bc5 100644 --- a/public/posix-pricing.html +++ b/public/posix-pricing.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>POSIX pricing and availability; or: Do you really need the PDF? — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -38,7 +39,8 @@ is “POSIX-2008, 2016 edition.”</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2018 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/purdue-cs-login.html b/public/purdue-cs-login.html index 934af4e..784f2f3 100644 --- a/public/purdue-cs-login.html +++ b/public/purdue-cs-login.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>Customizing your login on Purdue CS computers (WIP, but updated) — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -185,7 +186,8 @@ SunOS is NOT GNU/Linux, and sun4u is NOT x86.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2015 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/rails-improvements.html b/public/rails-improvements.html index 8b02cef..6a07466 100644 --- a/public/rails-improvements.html +++ b/public/rails-improvements.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>Miscellaneous ways to improve your Rails experience — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -93,7 +94,8 @@ like.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2014 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/relax-ng-errata.html b/public/relax-ng-errata.html new file mode 100644 index 0000000..7a5b769 --- /dev/null +++ b/public/relax-ng-errata.html @@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>RELAX NG Compact Syntax errata — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="assets/style.css"> + <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> +</head> +<body> +<header><a href="/">Luke T. Shumaker</a> » <a href=/blog>blog</a> » relax-ng-errata</header> +<article> +<h1 id="relax-ng-compact-syntax-errata">RELAX NG Compact Syntax +errata</h1> +<div style="font-family: monospace"> +<p>To: relax-ng-comment@lists.oasis-open.org, jjc@jclark.com, +eb2m-mrt@asahi-net.or.jp<br/> Subject: RELAX NG Compact Syntax +errata<br/> Date: Sun, 09 Jun 2024 17:47:17 -0600<br/> Message-ID: +<87sexly8ze.wl-lukeshu@lukeshu.com></p> +</div> +<p>Hello,</p> +<p>I believe that I have found an error in the <a +href="https://relaxng.org/compact-20021121.html">RELAX NG Compact Syntax +document</a> (and am unsure if this is the best way to report it).</p> +<p>In the definition for <code>primary</code>, it says</p> +<pre><code> primary returns Element ::= +… + | "empty" + { <empty/> } + | "notAllowed" + { <notAllowed/> } + | "empty" + { <text/> } +…</code></pre> +<p>Surely that second "empty" literal should be "text"?</p> +<div style="font-family: monospace"> +<p>-- <br/> Cheers,<br/> ~ Luke T. Shumaker<br/></p> +</div> + +</article> +<footer> + <aside class="sponsor"><p>I'd love it if you <a class="em" + href="/sponsor/">sponsored me</a>. It will allow me to continue + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> + +<p>The content of this page is Copyright © 2024 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> +<p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> +</footer> +</body> +</html> diff --git a/public/relax-ng-errata.md b/public/relax-ng-errata.md new file mode 100644 index 0000000..1de39be --- /dev/null +++ b/public/relax-ng-errata.md @@ -0,0 +1,42 @@ +RELAX NG Compact Syntax errata +============================== +--- +date: "2024-07-10" +markdown_options: "-smart" +--- + +<div style="font-family: monospace"> +To: relax-ng-comment@lists.oasis-open.org, jjc@jclark.com, eb2m-mrt@asahi-net.or.jp<br/> +Subject: RELAX NG Compact Syntax errata<br/> +Date: Sun, 09 Jun 2024 17:47:17 -0600<br/> +Message-ID: <87sexly8ze.wl-lukeshu@lukeshu.com> +</div> + +Hello, + +I believe that I have found an error in the [RELAX NG Compact Syntax +document](https://relaxng.org/compact-20021121.html) (and am unsure if +this is the best way to report it). + +In the definition for `primary`, it says + +``` + primary returns Element ::= +… + | "empty" + { <empty/> } + | "notAllowed" + { <notAllowed/> } + | "empty" + { <text/> } +… +``` + +Surely that second "empty" literal should be "text"? + +<div style="font-family: monospace"> +-- <br/> +Cheers,<br/> +~ Luke T. Shumaker<br/> +</div> + diff --git a/public/ryf-routers.html b/public/ryf-routers.html index e964fb1..c28fcfa 100644 --- a/public/ryf-routers.html +++ b/public/ryf-routers.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>I'm excited about the new RYF-certified routers from ThinkPenguin — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -44,7 +45,8 @@ distributions, not for technical reasons, but lack of manpower).</li> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2014 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/term-colors.html b/public/term-colors.html index 4a8d866..958d4e2 100644 --- a/public/term-colors.html +++ b/public/term-colors.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>An explanation of common terminal emulator color codes — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -46,7 +47,8 @@ the same time, so you actually get 256+18 colors.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2013 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/what-im-working-on-fall-2014.html b/public/what-im-working-on-fall-2014.html index efc293a..a20a381 100644 --- a/public/what-im-working-on-fall-2014.html +++ b/public/what-im-working-on-fall-2014.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>What I'm working on (Fall 2014) — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -147,7 +148,8 @@ implemented.</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2014 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> diff --git a/public/x11-systemd.html b/public/x11-systemd.html index a238c73..2313b21 100644 --- a/public/x11-systemd.html +++ b/public/x11-systemd.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"> <title>My X11 setup with systemd — Luke T. Shumaker</title> + <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/style.css"> <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> </head> @@ -377,7 +378,8 @@ was Parabola’s packager for Iceweasel and IceCat).</p> <footer> <aside class="sponsor"><p>I'd love it if you <a class="em" href="/sponsor/">sponsored me</a>. It will allow me to continue - my work on the GNU/Linux ecosystem. Thanks!</p></aside> + <a class="em" href="/imworkingon/">my work</a> on the GNU/Linux + ecosystem. Thanks!</p></aside> <p>The content of this page is Copyright © 2016 <a href="mailto:lukeshu@lukeshu.com">Luke T. Shumaker</a>.</p> <p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p> |