]> git.za3k.com Git - blog.git/commitdiff
Clean up permalinks out of comments
authorZachary Vance <za3k@za3k.com>
Sat, 3 Aug 2024 18:48:28 +0000 (14:48 -0400)
committerZachary Vance <za3k@za3k.com>
Sat, 3 Aug 2024 18:48:28 +0000 (14:48 -0400)
18 files changed:
comments/controlling-a-computercraft-turtle-remotely.html
comments/ddos.html
comments/diy-keyboards-and-how-keyboards-work.html
comments/hack-a-day-day-04-lashed-table.html
comments/installing-email-with-postfix-and-dovecot.html
comments/introducing-the-zorchpad-display-demo.html
comments/making-a-hardware-random-number-generator.html
comments/making-my-finances-public.html
comments/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi.html
comments/qr-backup.html
comments/running-a-forge-server-on-headless-linux.html
comments/steak-tartare-3.html
comments/streaming-linux-twitch-using-ffmpeg-and-alsa.html
comments/terminal-goal-rationality-techniques.html
comments/time-management-optimizers-satisficers-minimizers.html
comments/tiny-cute-vampire-bat.html
comments/understanding-gzip-2.html
comments/wip-dead-tree-publishing-4.html

index 5354eabbfbc59ba917e3af5819e12a85775801a0..b0daa593859d4e8e084b294b12753f7feac00728 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/b7fcc830b8a111f098fb64bdd96eedf2?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/b7fcc830b8a111f098fb64bdd96eedf2?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn"><a class="url" href="https://comparegamehosting.com/game/minecraft/" rel="ugc external nofollow">Alex Booth</a></cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/controlling-a-computercraft-turtle-remotely/#comment-3128">
-                       April 25, 2018 at 9:27 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">April 25, 2018 at 9:27 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Opening up ComputerCraft to the world using the http commands was an amazing idea from the developers!</p>
 </div>
index 9d22dac7d23fceab2983cd9f9805ac9fc0db4b1b..61946e4e36dbc4532125e4ad020ae65258e038eb 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/beb5f01c762e3ac8276b7dfd7affa2ae?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/beb5f01c762e3ac8276b7dfd7affa2ae?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Mircea Popescu</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/ddos/#comment-2927">
-                       September 2, 2017 at 6:23 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">September 2, 2017 at 6:23 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Perhaps look into <a href="http://trilema.com/2015/mika-epstein-aka-ipstenu-is-a-thoroughly-clueless-poser/" rel="nofollow ugc">http://trilema.com/2015/mika-epstein-aka-ipstenu-is-a-thoroughly-clueless-poser/</a></p>
 </div>
index d5b8cbaa9071c25d6cd7a624984ff1b35a1bb399..c0669bc6bdd9ba2640a0225c990c52319d6c02eb 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/f9bddb456724b83c643af6f44ae32042?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/f9bddb456724b83c643af6f44ae32042?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">nortti</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/diy-keyboards-and-how-keyboards-work/#comment-10102">
-                       June 9, 2023 at 2:43 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">June 9, 2023 at 2:43 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>“And better keyboards can detect multiple keys being pressed at once (N-key rollover), which I think they do by having a completely separate wire to each key.”</p>
 <p>You can keep a matrix arrangement and have N-key rollover by putting a diode in series with every switch</p>
index 8f4198cdc448b45ec909baa4de57e4062cd4d981..5162c6e147c7087777388ed24c5204a45a7ad1fb 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/eb8e07689c4f342e5ae296cab95f609e?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/eb8e07689c4f342e5ae296cab95f609e?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Carin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/hack-a-day-day-04-lashed-table/#comment-10633">
-                       November 6, 2023 at 8:44 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">November 6, 2023 at 8:44 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Cool!</p>
 </div>
index b6b71a22097fce9c2ddc9cb7eb571628243d7f66..b2099511fac791b50a21766006cbffe93b6a5101 100644 (file)
@@ -6,8 +6,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/3a4733166894a30fe613838ecaaa1e95?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/3a4733166894a30fe613838ecaaa1e95?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">eduardz</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/#comment-2842">
-                       November 23, 2016 at 12:18 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">November 23, 2016 at 12:18 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Hello,</p>
 <p>Can you implement quota support from postgressql?</p>
@@ -18,8 +17,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/#comment-2873">
-                       April 5, 2017 at 7:05 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">April 5, 2017 at 7:05 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Not sure if this is “will you do” or “is it possible”. I will not do anything to set up quota–I have one user (me) so it doesn’t make sense. I encourage you to link if you do.</p>
 </div>
@@ -31,8 +29,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/04f9049f74277e447eee4569ac61563c?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/04f9049f74277e447eee4569ac61563c?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Tudor</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/#comment-2852">
-                       February 23, 2017 at 2:45 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">February 23, 2017 at 2:45 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>In the “useradd -d -M -d /var/mail/vmail –shell=/usr/bin/nologin -u 5000 -g vmail vmail“ I think the first “-d“ shouldn’t be there</p>
 <p>Thanks for the post</p>
@@ -43,8 +40,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/#comment-2874">
-                       April 5, 2017 at 7:06 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">April 5, 2017 at 7:06 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Thanks for the corrections, glad you found it useful.</p>
 </div>
@@ -56,8 +52,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/04f9049f74277e447eee4569ac61563c?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/04f9049f74277e447eee4569ac61563c?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Tudor</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/#comment-2853">
-                       February 23, 2017 at 2:54 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">February 23, 2017 at 2:54 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Also, for Postgresql the correct commands to create users are:<br/>
 CREATE USER postfix PASSWORD ‘XXX’;<br/>
@@ -69,8 +64,7 @@ CREATE USER dovecot PASSWORD ‘XXX’;</p>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/04f9049f74277e447eee4569ac61563c?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/04f9049f74277e447eee4569ac61563c?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Tudor</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/#comment-2854">
-                       February 23, 2017 at 3:22 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">February 23, 2017 at 3:22 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Also, there shouldn’t be any comma after the VALUES (<br/>
     ‘za3k’,<br/>
@@ -83,8 +77,7 @@ CREATE USER dovecot PASSWORD ‘XXX’;</p>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/9fe7e715cb7615380e65ebecc7c703b6?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/9fe7e715cb7615380e65ebecc7c703b6?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">S</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/#comment-3135">
-                       May 12, 2018 at 9:36 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">May 12, 2018 at 9:36 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>A little sloppy – you should have simply shown the entire contents of each file one by one, with descriptions in comments or whatever, instead of breaking them up into snippets – and there are a few errors and omissions (I can’t recall which ones now)<br/>
 However, using this guide and some googling, I was able to get a mailserver working – which is more than I can say for any other guide; so, thanks.</p>
@@ -95,8 +88,7 @@ However, using this guide and some googling, I was able to get a mailserver work
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/0f57bc0e6352458280cb89f50df560eb?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/0f57bc0e6352458280cb89f50df560eb?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Korilius</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/#comment-4730">
-                       July 17, 2021 at 3:56 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 17, 2021 at 3:56 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>A guide that could have been great but tripped at the finish line.  A lot of errors in SQL and elsewhere along with step reorganization.</p>
 </div>
@@ -106,8 +98,7 @@ However, using this guide and some googling, I was able to get a mailserver work
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/installing-email-with-postfix-and-dovecot/#comment-4731">
-                       July 17, 2021 at 4:52 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 17, 2021 at 4:52 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>If you have any specific errors you can mention, I’d be happy to fix stuff.</p>
 <p>But yeah, that’s the problem with writing a guide after you do something instead of during/before.</p>
index bbb3dcf0688e57e336006e84c35948e6bc187314..ad9b778743301a76c8eec0944411163334e360ce 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/a1e9d69b1d8b0a1fd3a90f03a40de162?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a1e9d69b1d8b0a1fd3a90f03a40de162?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">JenniferRM</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/introducing-the-zorchpad-display-demo/#comment-11338">
-                       April 20, 2024 at 9:52 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">April 20, 2024 at 9:52 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Very cool idea. I was imagining form factors, and was thinking briefly about somehow having a sort of laptop arrangement where an e-ink screen is visible through glass when it is closed and in some kind of “protective storage mode”, and then visible directly from “the proper side of the e-ink screen” after it opens up. This is probably impossible using default hardware options, but searching around to confirm this lead to some interesting links and unusual design demos.</p>
 <p>Here’s ~12 year old thread from someone who wants a computer to use in an off grid cabin.<br/>
@@ -22,8 +21,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/introducing-the-zorchpad-display-demo/#comment-11339">
-                       April 20, 2024 at 10:24 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">April 20, 2024 at 10:24 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Try using numbers, instead of words! It works better for comparing power usage.</p>
 <p>The “low-power computer” someone wants from 12 years ago should be 3W. The Zorchpad is designed to run at 0.001W.</p>
index e9cbf442af1d773b7e03b91b9b93fbc331ad1a56..28461fe53deb68bc195dece8b41e3c07ea3b6019 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/477bf018c52601e86d3a8aa07c6f9392?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/477bf018c52601e86d3a8aa07c6f9392?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">jiacheng hao</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/making-a-hardware-random-number-generator/#comment-11135">
-                       March 3, 2024 at 9:04 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">March 3, 2024 at 9:04 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Hello, I think you are truely right about the TRNG. I am a researcher who specializes in designing TRNG. And now I have a TRNG chip with PCB support USB2.0. And the speed can be up to 30Mbps. It can pass NIST 800-22 and 800-90B. Are you interested in that? Looking forward to your reply!!</p>
 </div>
@@ -16,8 +15,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/making-a-hardware-random-number-generator/#comment-11136">
-                       March 3, 2024 at 11:36 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">March 3, 2024 at 11:36 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Interested in what way?</p>
 <p>Is your TRNG open-source?</p>
index 04a09d4d283829f5a5956bcbd53627ae3714b9bc..144491d2f6ae0a355d38de8babad4dfccc1153c9 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/35cf1c8d20becce42e768c4bade3a1dc?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/35cf1c8d20becce42e768c4bade3a1dc?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">anon</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/making-my-finances-public/#comment-3253">
-                       February 7, 2019 at 6:19 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">February 7, 2019 at 6:19 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>is offline</p>
 </div>
@@ -16,8 +15,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/making-my-finances-public/#comment-3882">
-                       December 17, 2019 at 7:41 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 17, 2019 at 7:41 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Yeah, my export broke a while back. This should be fixed indefinitely, but covers 2011-2016 only now.</p>
 </div>
index bf91c202a49e97d2729c53048aece9ef75c598de..5a32025e5649af892a1740cee1050fcc9da88633 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/bc00b207944738af582a91c5352ef163?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/bc00b207944738af582a91c5352ef163?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Joel</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/#comment-4165">
-                       August 2, 2020 at 12:52 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">August 2, 2020 at 12:52 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>There appears to be a typo in step 5A. The page currently reads “lpinfo -m” but I believe should be “lpinfo -v”. Per the man page, the m flag lists drivers and the v flag lists devices. </p>
 <p>The USB device can be found in the -v output for step 5A but the driver can be found in the -m output for step 5B.</p>
@@ -17,8 +16,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/b99febd9d3367d3306947a8e159c6445?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/b99febd9d3367d3306947a8e159c6445?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Scott</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/#comment-4213">
-                       October 19, 2020 at 5:10 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">October 19, 2020 at 5:10 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Thank you so very much for this. Worked like a charm.</p>
 <p>Any tips on how to print over the network?</p>
@@ -29,8 +27,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/dffffda5bcb146c22d8be3ef6b4f6554?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/dffffda5bcb146c22d8be3ef6b4f6554?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">rathesun01</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/#comment-4277">
-                       December 8, 2020 at 6:44 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 8, 2020 at 6:44 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Awesome post. Joel is supposedly correct. It should have been “lpinfo -v” in the step 5A.</p>
 </div>
@@ -40,8 +37,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/#comment-4279">
-                       December 12, 2020 at 1:31 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 12, 2020 at 1:31 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Corrected ‘lpinfo -v’, thanks.<br>
 No clue how to print over the network, sorry. That’s actually why I set up a raspberry pi to connect to the printer instead–it’s my wifi interface.</br></p>
@@ -52,8 +48,7 @@ No clue how to print over the network, sorry. That’s actually why I set up a r
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/b851d521102349bbfd71e7d7df8bef44?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/b851d521102349bbfd71e7d7df8bef44?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">steve</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/#comment-4319">
-                       December 30, 2020 at 9:05 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 30, 2020 at 9:05 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>I have the Brother HL-2270DW, and I had to install from source to get it to work. I’m not using USB, but port forwarding across via NAT to another internal network. </p>
 <p>I just used the cups admin pages to complete setting things up. Before using this package, I picked some other closely related printer. It was printing the page, sucking it back in, then finally printing. Not terrible, but I was annoyed. Now it’s perfect!</p>
@@ -66,8 +61,7 @@ No clue how to print over the network, sorry. That’s actually why I set up a r
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/1edcef9b0ab9150a7e2d22cd18371609?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/1edcef9b0ab9150a7e2d22cd18371609?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Jaye Horn</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/#comment-4380">
-                       February 18, 2021 at 3:19 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">February 18, 2021 at 3:19 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>How did you install from source? and how did you do the port forwarding across via NAT to another internal network? I’m new to this so any help would be very much appreciated.</p>
 <p>Thank you.</p>
@@ -80,8 +74,7 @@ No clue how to print over the network, sorry. That’s actually why I set up a r
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/173de507afbda1d5933757bb66e863eb?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/173de507afbda1d5933757bb66e863eb?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Job</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/#comment-4341">
-                       January 20, 2021 at 8:09 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">January 20, 2021 at 8:09 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Would this work for brother hl-l2395dw scanner?</p>
 </div>
@@ -91,8 +84,7 @@ No clue how to print over the network, sorry. That’s actually why I set up a r
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/285bae3dce12d6c20103a5ff2a4bcddb?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/285bae3dce12d6c20103a5ff2a4bcddb?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Adam Trask</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/#comment-5178">
-                       October 22, 2021 at 5:00 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">October 22, 2021 at 5:00 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Thanks so much for posting this.  This helped get my HL-L2300D working properly.</p>
 </div>
@@ -102,8 +94,7 @@ No clue how to print over the network, sorry. That’s actually why I set up a r
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/76652e498c8089550fa09056625d5899?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/76652e498c8089550fa09056625d5899?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Danial Foster</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/#comment-5438">
-                       December 24, 2021 at 1:39 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 24, 2021 at 1:39 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>&gt;&gt;&gt; (author’s shameful note: if you’re not looking, I find it<br>
 &gt;&gt;&gt;surprisingly easy to plug USB B into the ethernet jack)</br></p>
@@ -118,8 +109,7 @@ No clue how to print over the network, sorry. That’s actually why I set up a r
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/fe520de38df86000b2d31661c96cd28a?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/fe520de38df86000b2d31661c96cd28a?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">J Bot</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/printing-on-the-brother-hl-2270dw-printer-using-a-raspberry-pi/#comment-9429">
-                       January 3, 2023 at 4:03 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">January 3, 2023 at 4:03 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Any steps to do this with a wifi connected HL-2270DW? Thanks!</p>
 </div>
index 29015c052b8fee51732e535baf7e79bfea6ebc6a..673aadd465e811d341f5d5d7442f6e98d9cc3c32 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/d8731f49a2e6864ba0675c4639ef08be?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/d8731f49a2e6864ba0675c4639ef08be?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn"><a class="url" href="https://scruss.com/blog/" rel="ugc external nofollow">scruss</a></cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/qr-backup/#comment-4642">
-                       June 9, 2021 at 6:58 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">June 9, 2021 at 6:58 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>nice! I’ve played with some similar ideas, using tar and QR Code output to a thermal printer. The used to be a thing (Twibright Optar, IIRC: it’s fallen off the web) that made full-page scannable codes that got an almost useful data density. But they weren’t QR Codes, so needed their own decoder.</p>
 </div>
@@ -16,8 +15,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/qr-backup/#comment-4644">
-                       June 9, 2021 at 2:06 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">June 9, 2021 at 2:06 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Actually, I link to it in the <a href="https://github.com/za3k/qr-backup/blob/master/docs/FAQ.md#what-other-paper-backup-projects-exist" rel="nofollow ugc">FAQ</a>, it’s still on the <a href="http://ronja.twibright.com/optar/" rel="nofollow ugc">web</a>. An even better version was “Paperback”, but it’s 9 years unmaintained–I’m looking into seeing if there is a maintained Linux port. Both do a lot of things right, even if they have a slightly different goal (high data density, over ease-of-use and foolproof restore).</p>
 </div>
@@ -27,8 +25,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/qr-backup/#comment-4645">
-                       June 9, 2021 at 2:08 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">June 9, 2021 at 2:08 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Also, feel free to recommend me a good, cheap thermal printer. I tried to do a “poloroid” thing (take a picture of yourself with webcam, immediately print to thermal) and found that mine was shit and the heat overexposed unrelated parts. QR codes seem like a reasonable application, although I’d be concerned about the longevity of thermal paper for backups (can easily fade in heat).</p>
 <p>Edit: If I remember correctly, I wanted to make a thermal-paper typewriter for a zine?</p>
index a4a4cb8f7ec99da40e5859555368fb69956e5f96..c97f6e86c9b8bf91d0c8e4c27531cbf5fe8dc7f5 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/eca9fbfd1236b50f30aec8f7b95ef721?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/eca9fbfd1236b50f30aec8f7b95ef721?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn"><a class="url" href="https://2dminecraft.wordpress.com/" rel="ugc external nofollow">Susan Tatun</a></cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/running-a-forge-server-on-headless-linux/#comment-511">
-                       July 10, 2015 at 11:31 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 10, 2015 at 11:31 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>An honest sharing about downloaing and installing Minecraft 1.6.4.  I followed what you mentioned and did it sucessfully. Right now, I’m playing with my little son and guiding him what the terrific things are. Anyway, thanks a lot!</p>
 </div>
@@ -16,8 +15,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/f386723170dfc6b4122c5fe2d95ffbbc?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/f386723170dfc6b4122c5fe2d95ffbbc?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lynx</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/running-a-forge-server-on-headless-linux/#comment-1349">
-                       August 18, 2015 at 1:44 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">August 18, 2015 at 1:44 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>4am installs of servers is hard, and trying to follow the Forge wiki which is inaccurate at best is hard.<br/>
 You got me from dead brick to running box in ten minutes. Thank you.</p>
@@ -28,8 +26,7 @@ You got me from dead brick to running box in ten minutes. Thank you.</p>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/746c2f840c27e88b6bfc135f14f4ce37?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/746c2f840c27e88b6bfc135f14f4ce37?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">crumpuppet</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/running-a-forge-server-on-headless-linux/#comment-1689">
-                       September 7, 2015 at 1:32 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">September 7, 2015 at 1:32 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Thanks so much! I’ve been looking for these steps for a while, and finally found something that works. Would have been first prize if it could be used along with a GUI frontend like mcmyadmin, but oh well 🙂</p>
 </div>
@@ -39,8 +36,7 @@ You got me from dead brick to running box in ten minutes. Thank you.</p>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/48ef5c93bf1c483b50dd6b7977b9cbca?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/48ef5c93bf1c483b50dd6b7977b9cbca?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Dave</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/running-a-forge-server-on-headless-linux/#comment-2468">
-                       November 9, 2015 at 11:14 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">November 9, 2015 at 11:14 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Same here.  Searched all over found yours and running in moments.  My kids have been hooked on mods and wanted a server.  I have VMware and can spin up a linux box up in moments.  This was so easy. Thanks.</p>
 </div>
@@ -50,8 +46,7 @@ You got me from dead brick to running box in ten minutes. Thank you.</p>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/8cc161f40686089efa4eb9dbc381797a?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/8cc161f40686089efa4eb9dbc381797a?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn"><a class="url" href="https://minecraftapkmod.info/download/" rel="ugc external nofollow">Minecraft Lover</a></cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/running-a-forge-server-on-headless-linux/#comment-3252">
-                       February 6, 2019 at 6:40 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">February 6, 2019 at 6:40 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Very useful information, Thank you</p>
 </div>
@@ -61,8 +56,7 @@ You got me from dead brick to running box in ten minutes. Thank you.</p>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/4589e18b3dc7de6c60e1b99052acfe1d?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/4589e18b3dc7de6c60e1b99052acfe1d?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Leon</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/running-a-forge-server-on-headless-linux/#comment-3788">
-                       September 9, 2019 at 9:12 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">September 9, 2019 at 9:12 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Does anyone here have problems with installing the mods. Im donwloading them in the mods directory with the cmd “wget” and nothing works.Am i using the wrong command or what?</p>
 </div>
@@ -72,8 +66,7 @@ You got me from dead brick to running box in ten minutes. Thank you.</p>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/b50d1a265153eee6da6b41d6adc0eb06?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/b50d1a265153eee6da6b41d6adc0eb06?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn"><a class="url" href="https://apkstreet.com/roblox-mod-apk-unlimited-robux/" rel="ugc external nofollow">Rajan Chopra</a></cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/running-a-forge-server-on-headless-linux/#comment-3991">
-                       March 7, 2020 at 3:45 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">March 7, 2020 at 3:45 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Thanks for sharing Minecraft. Can you also share Roblox Apk?</p>
 </div>
@@ -83,8 +76,7 @@ You got me from dead brick to running box in ten minutes. Thank you.</p>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/52ce2f57adc4ccfc3e6274ffa86bf9f5?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/52ce2f57adc4ccfc3e6274ffa86bf9f5?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Neckbeard Hater</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/running-a-forge-server-on-headless-linux/#comment-4324">
-                       January 4, 2021 at 10:22 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">January 4, 2021 at 10:22 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>“one of the devs seems actively hostile around providing help to …”</p>
 <p>this is so typical of the linux community. really.  And I am a developer with 20 years experience, I hate the Linux community.</p>
@@ -95,8 +87,7 @@ You got me from dead brick to running box in ten minutes. Thank you.</p>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/cca172695c7bd7d417748775c1ad3c36?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/cca172695c7bd7d417748775c1ad3c36?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">nat</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/running-a-forge-server-on-headless-linux/#comment-9669">
-                       February 14, 2023 at 9:17 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">February 14, 2023 at 9:17 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>lol this tutorial still works 9 years later thanks tho this helped so much!!</p>
 </div>
index 189c21f9441a032f9668e887cf84cde05a968fbf..4a07042ad1a24f4a3ee70a7db46a8a2a4a3aaeb1 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/aa5d8a139b96dc7b082a50ca2446deff?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/aa5d8a139b96dc7b082a50ca2446deff?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn"><a class="url" href="http://sometimesicook.net" rel="ugc external nofollow">Tricia</a></cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/steak-tartare-3/#comment-255">
-                       May 21, 2015 at 8:14 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">May 21, 2015 at 8:14 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>So tasty! Enjoyed our month of obsessing over the recipe ^u^</p>
 </div>
index 8f478e0a389782ff47b67ffff2d986ab481d20c2..deb04e7bc778dfb42117319e51b947ba875f6673 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/47e66dd3a830fdd2a6191a4100425b43?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/47e66dd3a830fdd2a6191a4100425b43?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Mario Enriquez</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/streaming-linux-twitch-using-ffmpeg-and-alsa/#comment-4344">
-                       January 22, 2021 at 7:31 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">January 22, 2021 at 7:31 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Thanks for your post.</p>
 </div>
index 27a2980f21680c767a9b419672b4f172528d0f50..e2d1c3eccecc798fb8a9e6b707d614593276404f 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/111a7d8b594d7707bc1f5e3085c069ef?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/111a7d8b594d7707bc1f5e3085c069ef?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">JSevilla</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/terminal-goal-rationality-techniques/#comment-631">
-                       July 18, 2015 at 9:42 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 18, 2015 at 9:42 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Cool stuff. I liked exactboxing and DTOT.<br/>
 Murphy jitsu has potential.<br/>
index 89c1a0ad5b45dd81f27692f1d659b5904efe1116..a4b00a37a903f9c584eae7b8630629c6ca9ebf00 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/aa5d8a139b96dc7b082a50ca2446deff?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/aa5d8a139b96dc7b082a50ca2446deff?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn"><a class="url" href="http://sometimesicook.net" rel="ugc external nofollow">Tricia</a></cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/time-management-optimizers-satisficers-minimizers/#comment-2451">
-                       November 5, 2015 at 9:13 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">November 5, 2015 at 9:13 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Very nice! I often find myself automatically optimizing – the easiest place to see this is in Animal Crossing where I’ll keep a large cash of items for when villagers might ask for one. The idea is to always be prepared (I blame girl scouts). I suppose the negative to this behavior is that it could lead to hording if left unchecked.</p>
 </div>
index 7dfa06c1d971f8740a02a7815f74cbbe7d862d2b..907b9ce77e302615b328c7aa8c82f046cbfa73a7 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/aa5d8a139b96dc7b082a50ca2446deff?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/aa5d8a139b96dc7b082a50ca2446deff?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn"><a class="url" href="http://sometimesicook.net" rel="ugc external nofollow">Tricia</a></cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/tiny-cute-vampire-bat/#comment-2426">
-                       October 14, 2015 at 10:03 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">October 14, 2015 at 10:03 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Hola! Just wanted to let you know I nominated you for the Versatile Blogger Award, for more info check out my post here: <a href="http://sometimesicook.net/2015/10/14/the-versatile-blogger-award/" rel="nofollow ugc">http://sometimesicook.net/2015/10/14/the-versatile-blogger-award/</a> 😀</p>
 </div>
index eb5a3ea1c5fc77dc5bba710fcf4fe287443c5fa6..9eb22aa93b8d17e6624faec6612c949e94262aa4 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4739">
-                       July 23, 2021 at 1:47 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 23, 2021 at 1:47 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>“Now we assign a binary codewords of length N, to each length N in the list.<br>
 1:1100,2:0,4:1101,16:1110,17:1111,18:10”</br></p>
@@ -18,8 +17,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4740">
-                       July 23, 2021 at 2:04 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 23, 2021 at 2:04 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>This is what “Aside: Storing Prefix-Free Codewords as a List of Lengths” is about. The algorithm is given in full in RFC 1952 if you’re interested. Basically, the code words are assigned starting from 0 (or 00, 000, etc) and counting up. As each code is assigned, anything with that code as a prefix becomes unavailable. They are assigned first from shortest to longest, and in the case of ties from leftmost in the list to rightmost in the list.</p>
 <p>So first we assign 0 to the length-1 codeword (0 is lower than 1), then we assign the length-2 codeword 10 (the lowest length-2 code that doesn’t have a prefix 0), and finally we assign the length-4 codewords from left to right (1100, 1101, 1110, 1111 don’t have a prefix of 0 or 10 — they are the lowest and only codewords without one of those prefixes).</p>
@@ -31,8 +29,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4741">
-                       July 23, 2021 at 3:23 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 23, 2021 at 3:23 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>I think I get it now, as soon as I resolve some compile errors I’m gonna try this:</p>
 <p>“`<br>
@@ -59,8 +56,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4742">
-                       July 25, 2021 at 12:06 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 25, 2021 at 12:06 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Took me a while to understand that I was supposed to be building the tree at this point (although this method compared to what I though of and implemented prior to this is inefficient both in space and speed, also terribly um-intuitive). I’m having trouble understanding exactly how to extract some literals you’ve mentioned:</p>
 <p>“Byte 18-19: 0000001 10 0110101. Copy “0” code length 11-138 times<br>
@@ -78,8 +74,7 @@ Byte 21-22: 111111 10 0001000 1. Copy “0” code length 11-138 times. 0b000100
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4743">
-                       July 25, 2021 at 12:27 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 25, 2021 at 12:27 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>I’m glad this was helpful, but you should really go read RFC 1951 if you’re going to build a decoder. This isn’t meant to be a stand-alone guide.</p>
 <p>I’m pretty lost trying to follow this comment, sorry. To clarify, for the “dynamic” compression, you first extract the CODING TABLE for the literals (the step you’re talking about). Then, you use the coding table to decompress the actual stream of content. It’s a two-step process, which is why it’s so complex.</p>
@@ -91,8 +86,7 @@ Byte 21-22: 111111 10 0001000 1. Copy “0” code length 11-138 times. 0b000100
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4744">
-                       July 25, 2021 at 1:41 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 25, 2021 at 1:41 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Was gonna say I already had the code table but when it printed it seems the codes got corrupted, I’ll have to get back to you after fixing it. Anyways I find “guides” that don’t use real examples as this one does to be confusing sometimes, usually where it matters, that’s why I was consulting you who provided those key examples, I got a heck of a lot further with your guide than any other I’ve tried following which didn’t give the byte by byte, bit by bit example.</p>
 </div>
@@ -102,8 +96,7 @@ Byte 21-22: 111111 10 0001000 1. Copy “0” code length 11-138 times. 0b000100
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4745">
-                       July 25, 2021 at 1:50 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 25, 2021 at 1:50 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Turned out I was just printing the wrong value, here’s my current output:</p>
 <p>`<br/>
@@ -198,8 +191,7 @@ PrintBytes( 0x556653fbf4a0, 0, 16 )<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4747">
-                       July 25, 2021 at 3:32 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 25, 2021 at 3:32 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Never min, I think I know where the literals are coming from now, I did this:</p>
 <p><code><br/>
@@ -223,8 +215,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4756">
-                       July 26, 2021 at 7:46 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 26, 2021 at 7:46 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>I think I still misunderstood something somewhere, I’ve done a detailed post on the section I think I’ve mis-interpreted here:</p>
 <p><a href="https://cboard.cprogramming.com/c-programming/180462-increment-gone-wrong.html#post1302477" rel="nofollow ugc">https://cboard.cprogramming.com/c-programming/180462-increment-gone-wrong.html#post1302477</a></p>
@@ -236,8 +227,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4757">
-                       July 26, 2021 at 8:54 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 26, 2021 at 8:54 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Sorry, I don’t really want to help someone else debug code or output. I’d suggest following the links at the start of the blog article. Check out ‘infgen’ in particular.</p>
 </div>
@@ -247,8 +237,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4758">
-                       July 26, 2021 at 9:34 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 26, 2021 at 9:34 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>I originally gave up on infgen due to an access rights error when I tried installing via the package manager, the server refused to let me download it, then after your last comment I though to look for it’s github page, that one worked out fine, judging by it’s output the only thing I’ve got wrong are the length values for the distance symbols/codes/whatever you want to call them, where do you get that 2 from? same applies to the bit code along side them, where does that come from, is it just an iterated number for each valid symbol?</p>
 </div>
@@ -258,8 +247,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4759">
-                       July 26, 2021 at 10:56 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 26, 2021 at 10:56 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>You read 267=260+7 codeword-lengths (the numbers 260 and 7 are given by bytes 10-12 in this example).</p>
 <p>The first 260 codeword-lengths are used for one huffman table: 256 literals (always 256), then 1 “end of block” (always 2), then the remaining 3 are lengths.</p>
@@ -271,8 +259,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4760">
-                       July 26, 2021 at 11:50 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 26, 2021 at 11:50 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Even if I use the same method of code generation as before I stiil would need to know where you got those “2”s from in the table immediately following this:</p>
 <p>“We read 7 numbers, that’s the whole distances table. Assign the “standard” binary codewords to generate the following table:”</p>
@@ -285,8 +272,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4762">
-                       July 26, 2021 at 12:23 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 26, 2021 at 12:23 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Re-read above the table. The “bits” column is from bytes 24-25.</p>
 </div>
@@ -305,8 +291,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4763">
-                       July 26, 2021 at 12:43 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 26, 2021 at 12:43 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>No option to reply so I’ll do it here instead, I still don’t see where the 2 came from, is that a minimum length or from another hard code table? So far I can only see the bits given as a set/unset symbol &amp; code flag, there’s no clear source for the length &amp; extra bits values</p>
 </div>
@@ -316,8 +301,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4764">
-                       July 26, 2021 at 5:54 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 26, 2021 at 5:54 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Finally found where you got the 2 from:</p>
 <p><a href="https://www.w3.org/Graphics/PNG/RFC-1951" rel="nofollow ugc">https://www.w3.org/Graphics/PNG/RFC-1951</a></p>
@@ -334,8 +318,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4773">
-                       July 31, 2021 at 11:29 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">July 31, 2021 at 11:29 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>I’ve clearly misunderstood something somewhere, could you take a look at the code I outlined in the below post please and see if you can spot what I’m misunderstanding, up until the point I have to lookup previously deflated values I’ve read the bits correctly but I’ve obviously not understood all the implied information correctly, I would post the code here but as you’ve seen these comments don’t support maintaining the code formatting resulting in a more confusing than necessary code.</p>
 <p><a href="https://cboard.cprogramming.com/c-programming/180462-increment-gone-wrong-post1302541.html#post1302541" rel="nofollow ugc">https://cboard.cprogramming.com/c-programming/180462-increment-gone-wrong-post1302541.html#post1302541</a></p>
@@ -346,8 +329,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/a82f569a804e9883d4fc220ed42386f9?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Lee</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-4786">
-                       August 2, 2021 at 5:36 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">August 2, 2021 at 5:36 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>You’ll be glad to know I finally got the algorithm right, have not looked at any source code from zlib or other projects so I’m free to slap MIT License on it the whole way through once I convert it to a cleaner version of itself. The unclean version is here for anyone’s reference.</p>
 <p><a href="https://gitlab.com/awsdert/uc-evidence/-/tree/9441a73e59834456c41c1049036fc60925b705a0" rel="nofollow ugc">https://gitlab.com/awsdert/uc-evidence/-/tree/9441a73e59834456c41c1049036fc60925b705a0</a></p>
@@ -360,8 +342,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/7872694d27b3b6fd8d71297a4799a82b?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/7872694d27b3b6fd8d71297a4799a82b?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">neubert</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-5413">
-                       December 21, 2021 at 1:00 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 21, 2021 at 1:00 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>From the Fixed huffman coding section:</p>
 <p>“Byte 10-11: 110 10011000 10010: A literal. 10011000 (152) minus 00110000 (48) is 104. 104 in ASCII is ‘h’.”</p>
@@ -373,8 +354,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-5414">
-                       December 21, 2021 at 1:11 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 21, 2021 at 1:11 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>The binary range (given above) is 00110000-10111111. Rather than decoding the binary value, we decode the offset within that range.</p>
 </div>
@@ -386,8 +366,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/7872694d27b3b6fd8d71297a4799a82b?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/7872694d27b3b6fd8d71297a4799a82b?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">neubert</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-5432">
-                       December 22, 2021 at 7:27 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 22, 2021 at 7:27 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>“Now we assign a binary codewords of length N, to each length N in the list.<br/>
 1:1100,2:0,4:1101,16:1110,17:1111,18:10”</p>
@@ -401,8 +380,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/7872694d27b3b6fd8d71297a4799a82b?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/7872694d27b3b6fd8d71297a4799a82b?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">neubert</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-5435">
-                       December 22, 2021 at 10:49 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 22, 2021 at 10:49 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>I figured it out. It’s this bit from RFC1951:</p>
 <p><code><br/>
@@ -437,8 +415,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/7872694d27b3b6fd8d71297a4799a82b?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/7872694d27b3b6fd8d71297a4799a82b?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">neubert</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-5441">
-                       December 24, 2021 at 10:38 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 24, 2021 at 10:38 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>““Literals” 257-259 (all lengths) have codewords of length 4” Is this a hard and fast rule that’s always true regardless of the data or is this true _just_ for the compressed string in this example?</p>
 </div>
@@ -448,8 +425,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-5444">
-                       December 25, 2021 at 2:25 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 25, 2021 at 2:25 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Just for the example. If it was always true, we wouldn’t have to encode it.</p>
 </div>
@@ -461,8 +437,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/7872694d27b3b6fd8d71297a4799a82b?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/7872694d27b3b6fd8d71297a4799a82b?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">neubert</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-5449">
-                       December 27, 2021 at 12:54 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">December 27, 2021 at 12:54 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>“Byte 27: 1110 10 0 1. Length 4. Whenever we read a length, we read a distance. The distance is a range, 7-8. The extra bit we read is 0b0=0, plus 7 is Distance 7. So we look back 7 bytes and copy 4. The new output is: baabbbabaab”</p>
 <p>I think there should be an extra a before the baabbbabaab</p>
@@ -473,8 +448,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/83113fa84f7bb884648d75b769d23a6c?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/83113fa84f7bb884648d75b769d23a6c?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">inco</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-8298">
-                       June 22, 2022 at 1:56 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">June 22, 2022 at 1:56 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>I’ve been reading quite a bit on DEFLATE in png files and I think this is the exact level of depth i needed to crack this whole mess. Thanks so much for writing this, sources like RFC1951 talk more about abstraction and general rules but to have a few examples lined out here its  EXTREMELY useful. Thanks again</p>
 </div>
@@ -484,8 +458,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/83113fa84f7bb884648d75b769d23a6c?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/83113fa84f7bb884648d75b769d23a6c?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">inco</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-8300">
-                       June 22, 2022 at 3:38 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">June 22, 2022 at 3:38 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Small question about reading bits: for Huffman codes of  the code itself defines a length range and then the extra bits are reversed so that they can be interpreted. But should I reverse the distance or the distance extra bits as well?</p>
 </div>
@@ -497,8 +470,7 @@ printf( "num as a character = '%c'\n", num );<br/>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/7b25d5e576e752e12d04d663247f0989?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/7b25d5e576e752e12d04d663247f0989?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">Ricardo</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-11528">
-                       May 31, 2024 at 4:32 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">May 31, 2024 at 4:32 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Byte 31: 10 111000: Literal ‘b’<br/>
 Byte 31: 10 1110 00: Length 4, Distance 1. We look back 1 byte and copy 4. The new output is: bbbbb</p>
@@ -512,8 +484,7 @@ Should I repeat the ‘b’ four times?</p>
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" loading="lazy" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/understanding-gzip-2/#comment-11531">
-                       May 31, 2024 at 5:23 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">May 31, 2024 at 5:23 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Distance is how far back you start. Copy is how many symbols you copy.<br/>
 You just blindly copy characters starting DISTANCE back, but since you’re appending to the string, you never run out of symbols to copy.</p>
index 6e769b8099980df24e35161c4f3b28203a7ad53d..3191ff4cf697e9601aa1e81d6fd08220deb22c76 100644 (file)
@@ -5,8 +5,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/2d89a1cc42432c9e73fc4c4c2c43237f?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/2d89a1cc42432c9e73fc4c4c2c43237f?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">TheTechRobo</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/wip-dead-tree-publishing-4/#comment-7928">
-                       April 23, 2022 at 5:46 pm</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">April 23, 2022 at 5:46 pm </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>Out of curiosity, why did you stop the service?</p>
 </div>
@@ -16,8 +15,7 @@
 <div class="comment-author vcard">
 <img alt="" class="avatar avatar-40 photo" decoding="async" height="40" src="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=40&amp;d=mm&amp;r=g" srcset="https://secure.gravatar.com/avatar/09485be3ee1e86da6e39412f5c1b2a48?s=80&amp;d=mm&amp;r=g 2x" width="40"/><cite class="fn">admin</cite> <span class="says">says:</span>
 </div><!-- .comment-author .vcard -->
-<div class="comment-meta commentmetadata"><a href="https://blog.za3k.com/wip-dead-tree-publishing-4/#comment-7947">
-                       April 24, 2022 at 9:39 am</a> </div><!-- .comment-meta .commentmetadata -->
+<div class="comment-meta commentmetadata">April 24, 2022 at 9:39 am </div><!-- .comment-meta .commentmetadata -->
 <div class="comment-body">
 <p>This was launched in 2015, and you’re the first person to ask me about the the service since. That should give you an idea of the popularity. I’m very bad at marketing, to be fair, so it’s not totally clear that means the service was undesirable.</p>
 <p>So when I eventually ran into some problem with active maintenance (the site needed updating to keep working, or something of that kind), I just didn’t.</p>