add more tests - webdump_tests - Testfiles for webdump
 (HTM) git clone git://git.codemadness.org/webdump_tests
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit 43b896040059a55c2447ab74b585ae498c71531f
 (DIR) parent 520ec6267307bee6560c413b5ec11363d56ed09a
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Thu, 17 Aug 2023 17:28:21 +0200
       
       add more tests
       
       Diffstat:
         A realworld/cm_json2tsv.html          |     202 +++++++++++++++++++++++++++++++
         A realworld/lobsters.html             |    1467 +++++++++++++++++++++++++++++++
         A tests/audio.html                    |       3 +++
         A tests/lists.html                    |      50 +++++++++++++++++++++++++++++++
         A tests/ol.html                       |       5 +++++
         A tests/ol_nested.html                |      21 +++++++++++++++++++++
         A tests/table_head.html               |      13 +++++++++++++
         A tests/table_optional.html           |       8 ++++++++
         A tests/ul.html                       |       5 +++++
         A tests/ul_a.html                     |       5 +++++
         A tests/ul_nested.html                |      21 +++++++++++++++++++++
         A tests/ul_whitespace.html            |       5 +++++
         A tests/video.html                    |       7 +++++++
         A tests/video_track.html              |       7 +++++++
       
       14 files changed, 1819 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/realworld/cm_json2tsv.html b/realworld/cm_json2tsv.html
       @@ -0,0 +1,202 @@
       +<!DOCTYPE html>
       +<html dir="ltr" lang="en">
       +<head>
       +        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
       +        <meta http-equiv="Content-Language" content="en" />
       +        <meta name="viewport" content="width=device-width" />
       +        <meta name="keywords" content="json2tsv, JSON, tsv, TAB-Separated Value Format" />
       +        <meta name="description" content="json2tsv: a JSON to TAB-Separated Value converter" />
       +        <meta name="author" content="Hiltjo" />
       +        <meta name="generator" content="Static content generated using saait: https://codemadness.org/saait.html" />
       +        <title>json2tsv: a JSON to TSV converter - Codemadness</title>
       +        <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
       +        <link rel="stylesheet" href="print.css" type="text/css" media="print" />
       +        <link rel="alternate" href="atom.xml" type="application/atom+xml" title="Codemadness Atom Feed" />
       +        <link rel="alternate" href="atom_content.xml" type="application/atom+xml" title="Codemadness Atom Feed with content" />
       +        <link rel="icon" href="/favicon.png" type="image/png" />
       +</head>
       +<body>
       +        <nav id="menuwrap">
       +                <table id="menu" width="100%" border="0">
       +                <tr>
       +                        <td id="links" align="left">
       +                                <a href="index.html">Blog</a> |
       +                                <a href="/git/" title="Git repository with some of my projects">Git</a> |
       +                                <a href="/releases/">Releases</a> |
       +                                <a href="gopher://codemadness.org">Gopherhole</a>
       +                        </td>
       +                        <td id="links-contact" align="right">
       +                                <span class="hidden"> | </span>
       +                                <a href="/donate/">Donate</a> |
       +                                <a href="feeds.html">Feeds</a> |
       +                                <a href="pgp.asc">PGP</a> |
       +                                <a href="mailto:hiltjo@AT@codemadness.DOT.org">Mail</a>
       +                        </td>
       +                </tr>
       +                </table>
       +        </nav>
       +        <hr class="hidden" />
       +        <main id="mainwrap">
       +                <div id="main">
       +                        <article>
       +<header>
       +        <h1>json2tsv: a JSON to TSV converter</h1>
       +        <p>
       +        <strong>Last modification on </strong> <time>2021-09-25</time>
       +        </p>
       +</header>
       +
       +<p>Convert JSON to TSV or separated output.</p>
       +<p>json2tsv reads JSON data from stdin.  It outputs each JSON type to a TAB-
       +Separated Value format per line by default.</p>
       +<h2>TAB-Separated Value format</h2>
       +<p>The output format per line is:</p>
       +<pre><code>nodename&lt;TAB&gt;type&lt;TAB&gt;value&lt;LF&gt;
       +</code></pre>
       +<p>Control-characters such as a newline, TAB and backslash (\n, \t and \) are
       +escaped in the nodename and value fields.  Other control-characters are
       +removed.</p>
       +<p>The type field is a single byte and can be:</p>
       +<ul>
       +<li>a for array</li>
       +<li>b for bool</li>
       +<li>n for number</li>
       +<li>o for object</li>
       +<li>s for string</li>
       +<li>? for null</li>
       +</ul>
       +<p>Filtering on the first field "nodename" is easy using awk for example.</p>
       +<h2>Features</h2>
       +<ul>
       +<li>Accepts all <strong>valid</strong> JSON.</li>
       +<li>Designed to work well with existing UNIX programs like awk and grep.</li>
       +<li>Straightforward and not much lines of code: about 475 lines of C.</li>
       +<li>Few dependencies: C compiler (C99), libc.</li>
       +<li>No need to learn a new (meta-)language for processing data.</li>
       +<li>The parser supports code point decoding and UTF-16 surrogates to UTF-8.</li>
       +<li>It does not output control-characters to the terminal for security reasons by
       +default (but it has a -r option if needed).</li>
       +<li>On OpenBSD it supports <a href="https://man.openbsd.org/pledge">pledge(2)</a> for syscall restriction:
       +pledge("stdio", NULL).</li>
       +<li>Supports setting a different field separator and record separator with the -F
       +and -R option.</li>
       +</ul>
       +<h2>Cons</h2>
       +<ul>
       +<li>For the tool there is additional overhead by processing and filtering data
       +from stdin after parsing.</li>
       +<li>The parser does not do complete validation on numbers.</li>
       +<li>The parser accepts some bad input such as invalid UTF-8
       +(see <a href="https://tools.ietf.org/html/rfc8259#section-8.1">RFC8259 - 8.1. Character Encoding</a>).
       +json2tsv reads from stdin and does not do assumptions about a "closed
       +ecosystem" as described in the RFC.</li>
       +<li>The parser accepts some bad JSON input and "extensions"
       +(see <a href="https://tools.ietf.org/html/rfc8259#section-9">RFC8259 - 9. Parsers</a>).</li>
       +<li>Encoded NUL bytes (\u0000) in strings are ignored.
       +(see <a href="https://tools.ietf.org/html/rfc8259#section-9">RFC8259 - 9. Parsers</a>).
       +"An implementation may set limits on the length and character contents of
       +strings."</li>
       +<li>The parser is not the fastest possible JSON parser (but also not the
       +slowest).  For example: for ease of use, at the cost of performance all
       +strings are decoded, even though they may be unused.</li>
       +</ul>
       +<h2>Why Yet Another JSON parser?</h2>
       +<p>I wanted a tool that makes parsing JSON easier and work well from the shell,
       +similar to <a href="https://stedolan.github.io/jq/">jq</a>.</p>
       +<p>sed and grep often work well enough for matching some value using some regex
       +pattern, but it is not good enough to parse JSON correctly or to extract all
       +information: just like parsing HTML/XML using some regex is not good (enough)
       +or a good idea :P.</p>
       +<p>I didn't want to learn a new specific <a href="https://stedolan.github.io/jq/manual/#Builtinoperatorsandfunctions">meta-language</a> which jq has and wanted
       +something simpler.</p>
       +<p>While it is more efficient to embed this query language for data aggregation,
       +it is also less simple. In my opinion it is simpler to separate this and use
       +pattern-processing by awk or an other filtering/aggregating program.</p>
       +<p>For the parser, there are many JSON parsers out there, like the efficient
       +<a href="https://github.com/zserge/jsmn">jsmn parser</a>, however a few parser behaviours I want to have are:</p>
       +<ul>
       +<li>jsmn buffers data as tokens, which is very efficient, but also a bit
       +annoying as an API as it requires another layer of code to interpret the
       +tokens.</li>
       +<li>jsmn does not handle decoding strings by default. Which is very efficient
       +if you don't need parts of the data though.</li>
       +<li>jsmn does not keep context of nested structures by default, so may require
       +writing custom utility functions for nested data.</li>
       +</ul>
       +<p>This is why I went for a parser design that uses a single callback per "node"
       +type and keeps track of the current nested structure in a single array and
       +emits that.</p>
       +<h2>Clone</h2>
       +<pre><code>git clone git://git.codemadness.org/json2tsv
       +</code></pre>
       +<h2>Browse</h2>
       +<p>You can browse the source-code at:</p>
       +<ul>
       +<li><a href="https://git.codemadness.org/json2tsv/">https://git.codemadness.org/json2tsv/</a></li>
       +<li><a href="gopher://codemadness.org/1/git/json2tsv">gopher://codemadness.org/1/git/json2tsv</a></li>
       +</ul>
       +<h2>Download releases</h2>
       +<p>Releases are available at:</p>
       +<ul>
       +<li><a href="https://codemadness.org/releases/json2tsv/">https://codemadness.org/releases/json2tsv/</a></li>
       +<li><a href="gopher://codemadness.org/1/releases/json2tsv">gopher://codemadness.org/1/releases/json2tsv</a></li>
       +</ul>
       +<h2>Build and install</h2>
       +<pre><code>$ make
       +# make install
       +</code></pre>
       +<h2>Examples</h2>
       +<p>An usage example to parse posts of the JSON API of <a href="https://www.reddit.com/">reddit.com</a> and format them
       +to a plain-text list using awk:</p>
       +<pre><code>#!/bin/sh
       +curl -s -H 'User-Agent:' 'https://old.reddit.com/.json?raw_json=1&amp;limit=100' | \
       +json2tsv | \
       +awk -F '\t' '
       +function show() {
       +        if (length(o["title"]) == 0)
       +                return;
       +        print n ". " o["title"] " by " o["author"] " in r/" o["subreddit"];
       +        print o["url"];
       +        print "";
       +}
       +$1 == ".data.children[].data" {
       +        show();
       +        n++;
       +        delete o;
       +}
       +$1 ~ /^\.data\.children\[\]\.data\.[a-zA-Z0-9_]*$/ {
       +        o[substr($1, 23)] = $3;
       +}
       +END {
       +        show();
       +}'
       +</code></pre>
       +<h2>References</h2>
       +<ul>
       +<li>Sites:
       +<ul>
       +<li><a href="http://seriot.ch/parsing_json.php">seriot.ch - Parsing JSON is a Minefield</a></li>
       +<li><a href="https://github.com/nst/JSONTestSuite">A comprehensive test suite for RFC 8259 compliant JSON parsers</a></li>
       +<li><a href="https://json.org/">json.org</a></li>
       +</ul>
       +</li>
       +<li>Current standard:
       +<ul>
       +<li><a href="https://tools.ietf.org/html/rfc8259">RFC8259 - The JavaScript Object Notation (JSON) Data Interchange Format</a></li>
       +<li><a href="https://www.ecma-international.org/publications/standards/Ecma-404.htm">Standard ECMA-404 - The JSON Data Interchange Syntax (2nd edition (December 2017)</a></li>
       +</ul>
       +</li>
       +<li>Historic standards:
       +<ul>
       +<li><a href="https://tools.ietf.org/html/rfc7159">RFC7159 - The JavaScript Object Notation (JSON) Data Interchange Format (obsolete)</a></li>
       +<li><a href="https://tools.ietf.org/html/rfc7158">RFC7158 - The JavaScript Object Notation (JSON) Data Interchange Format (obsolete)</a></li>
       +<li><a href="https://tools.ietf.org/html/rfc4627">RFC4627 - The JavaScript Object Notation (JSON) Data Interchange Format (obsolete, original)</a></li>
       +</ul>
       +</li>
       +</ul>
       +
       +                        </article>
       +                </div>
       +        </main>
       +</body>
       +</html>
 (DIR) diff --git a/realworld/lobsters.html b/realworld/lobsters.html
       @@ -0,0 +1,1467 @@
       +<!doctype html>
       +<html
       +  lang="en"
       +  class='color-scheme-system'
       +>
       +<head>
       +  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
       +  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
       +  <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon.png" />
       +  <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon.png" />
       +  <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" />
       +  <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" />
       +  <meta name="viewport" content="width=device-width, initial-scale=1" />
       +  <meta name="referrer" content="always" />
       +  <meta name="theme-color" content="#AC130D" />
       +  <link rel="shortcut icon" href="/favicon.ico" />
       +  <title>Lobsters</title>
       +  <link rel="stylesheet" href="/assets/application-6199295a18f0aaca129e5f43a85732f0bb12b865954d74498dedd958fa14bb53.css" media="all" />
       +  <meta name="csrf-param" content="authenticity_token" />
       +<meta name="csrf-token" content="Xxb5kz_Iwjq-SWV8biCFaUbEqB6OdZ0TaXWaGdNSG8m6yr7Ozj5aVH6CKa1SOqrKhsJYf5iX6zunrEdwX9JhFA" />
       +    <link rel="alternate" type="application/rss+xml"
       +      title="RSS 2.0" href="/rss" />
       +    <link rel="alternate" type="application/rss+xml"
       +      title="Comments - RSS 2.0"
       +      href="/comments.rss" />
       +</head>
       +<body data-username=''>
       +  <header id="nav">
       +    <a id="logo" style="background-color: #520000;" href="/" title="Lobsters (Current traffic: 1%)"></a>
       +
       +    <div class="navholder">
       +      <nav class="links">
       +        <a href="/active">Active</a>
       +        <a href="/recent">Recent</a>
       +        <a href="/comments">Comments</a>
       +
       +
       +        <a href="/search">Search</a>
       +
       +
       +          <a class="corner" href="/login">Login</a>
       +      </nav>
       +    </div>
       +
       +    <nav class="corner">
       +        <a class="corner" href="/login">Login</a>
       +    </nav>
       +  </header>
       +
       +
       +  <div id="inside">
       +
       +
       +    
       +
       +<ol class="stories list ">
       +  <li id="story_bqcmxg" data-shortid="bqcmxg"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">65</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://bits.debian.org/2023/08/debian-turns-30.html" rel="ugc noreferrer">Debian Celebrates 30 years</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_linux" title="Linux" href="/t/linux">linux</a>
       +      </span>
       +        <a class="domain" href="/domains/bits.debian.org">bits.debian.org</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/5d22b"><img srcset="/avatars/5d22b-16.png 1x, /avatars/5d22b-32.png 2x" class="avatar" alt="5d22b avatar" loading="lazy" decoding="async" src="/avatars/5d22b-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/5d22b" class="u-author h-card ">5d22b</a>
       +
       +        <span title="2023-08-16 14:24:56 -0500">17 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_bqcmxg" class="archive_button" type="checkbox">
       +            <label for="archive_bqcmxg">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fbits.debian.org%2F2023%2F08%2Fdebian-turns-30.html">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fbits.debian.org%2F2023%2F08%2Fdebian-turns-30.html">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fbits.debian.org%2F2023%2F08%2Fdebian-turns-30.html">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/bqcmxg/debian_celebrates_30_years">
       +              18 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/bqcmxg/debian_celebrates_30_years" class="mobile_comments " style="display: none;">
       +  <span>18</span>
       +</a>
       +</li>
       +<li id="story_esnei4" data-shortid="esnei4"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">13</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://rachit.pl/post/you-have-built-a-compiler/" rel="ugc noreferrer">Dear Sir, You have built a compiler (2022)</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_compilers" title="Compiler design" href="/t/compilers">compilers</a>
       +          <a class="tag tag_plt" title="Programming language theory, types, design" href="/t/plt">plt</a>
       +      </span>
       +        <a class="domain" href="/domains/rachit.pl">rachit.pl</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/notypes"><img srcset="/avatars/notypes-16.png 1x, /avatars/notypes-32.png 2x" class="avatar" alt="notypes avatar" loading="lazy" decoding="async" src="/avatars/notypes-16.png" width="16" height="16" /></a>
       +          <span> authored by </span>
       +        <a href="/u/notypes" class="u-author h-card new_user">notypes</a>
       +
       +        <span title="2023-08-16 22:43:16 -0500">9 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_esnei4" class="archive_button" type="checkbox">
       +            <label for="archive_esnei4">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Frachit.pl%2Fpost%2Fyou-have-built-a-compiler%2F">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Frachit.pl%2Fpost%2Fyou-have-built-a-compiler%2F">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Frachit.pl%2Fpost%2Fyou-have-built-a-compiler%2F">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/esnei4/dear_sir_you_have_built_compiler_2022">
       +              4 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/esnei4/dear_sir_you_have_built_compiler_2022" class="mobile_comments " style="display: none;">
       +  <span>4</span>
       +</a>
       +</li>
       +<li id="story_nd5svs" data-shortid="nd5svs"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">14</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://gist.github.com/sharadhr/39b804236c1941e9c30d90af828ad41e" rel="ugc noreferrer">$HOME, Not So Sweet $HOME</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_osdev" title="Operating system design and development when no specific OS tag exists" href="/t/osdev">osdev</a>
       +      </span>
       +        <a class="domain" href="/domains/gist.github.com">gist.github.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/christiano"><img srcset="/avatars/christiano-16.png 1x, /avatars/christiano-32.png 2x" class="avatar" alt="christiano avatar" loading="lazy" decoding="async" src="/avatars/christiano-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/christiano" class="u-author h-card ">christiano</a>
       +
       +        <span title="2023-08-17 01:42:29 -0500">6 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_nd5svs" class="archive_button" type="checkbox">
       +            <label for="archive_nd5svs">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fgist.github.com%2Fsharadhr%2F39b804236c1941e9c30d90af828ad41e">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fgist.github.com%2Fsharadhr%2F39b804236c1941e9c30d90af828ad41e">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fgist.github.com%2Fsharadhr%2F39b804236c1941e9c30d90af828ad41e">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/nd5svs/home_not_so_sweet_home">
       +              6 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/nd5svs/home_not_so_sweet_home" class="mobile_comments " style="display: none;">
       +  <span>6</span>
       +</a>
       +</li>
       +<li id="story_cuxddq" data-shortid="cuxddq"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">5</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://github.com/ankitpokhrel/jira-cli" rel="ugc noreferrer">jira-cli: Feature-rich interactive Jira command line</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_a11y" title="accessibility, assistive technology, standards" href="/t/a11y">a11y</a>
       +          <a class="tag tag_practices" title="Development and team practices" href="/t/practices">practices</a>
       +      </span>
       +        <a class="domain" href="/domains/github.com">github.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/pekkavaa"><img srcset="/avatars/pekkavaa-16.png 1x, /avatars/pekkavaa-32.png 2x" class="avatar" alt="pekkavaa avatar" loading="lazy" decoding="async" src="/avatars/pekkavaa-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/pekkavaa" class="u-author h-card ">pekkavaa</a>
       +
       +        <span title="2023-08-17 05:41:00 -0500">2 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_cuxddq" class="archive_button" type="checkbox">
       +            <label for="archive_cuxddq">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fgithub.com%2Fankitpokhrel%2Fjira-cli">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fgithub.com%2Fankitpokhrel%2Fjira-cli">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fgithub.com%2Fankitpokhrel%2Fjira-cli">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/cuxddq/jira_cli_feature_rich_interactive_jira">
       +              3 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/cuxddq/jira_cli_feature_rich_interactive_jira" class="mobile_comments " style="display: none;">
       +  <span>3</span>
       +</a>
       +</li>
       +<li id="story_zpgvkx" data-shortid="zpgvkx"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">21</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://blog.chromium.org/2023/08/towards-https-by-default.html" rel="ugc noreferrer">Towards HTTPS by default</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_security" title="Netsec, appsec, and infosec" href="/t/security">security</a>
       +      </span>
       +        <a class="domain" href="/domains/blog.chromium.org">blog.chromium.org</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/insanitybit"><img srcset="/avatars/insanitybit-16.png 1x, /avatars/insanitybit-32.png 2x" class="avatar" alt="insanitybit avatar" loading="lazy" decoding="async" src="/avatars/insanitybit-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/insanitybit" class="u-author h-card ">insanitybit</a>
       +
       +        <span title="2023-08-16 13:41:07 -0500">18 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_zpgvkx" class="archive_button" type="checkbox">
       +            <label for="archive_zpgvkx">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fblog.chromium.org%2F2023%2F08%2Ftowards-https-by-default.html">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fblog.chromium.org%2F2023%2F08%2Ftowards-https-by-default.html">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fblog.chromium.org%2F2023%2F08%2Ftowards-https-by-default.html">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/zpgvkx/towards_https_by_default">
       +              22 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/zpgvkx/towards_https_by_default" class="mobile_comments " style="display: none;">
       +  <span>22</span>
       +</a>
       +</li>
       +<li id="story_cjxr3m" data-shortid="cjxr3m"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">15</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://prefix.dev/blog/launching_pixi" rel="ugc noreferrer">Let&#39;s stop dependency hell: launching pixi</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_python" title="Python programming" href="/t/python">python</a>
       +          <a class="tag tag_release" title="Software releases and announcements" href="/t/release">release</a>
       +      </span>
       +        <a class="domain" href="/domains/prefix.dev">prefix.dev</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/frkl"><img srcset="/avatars/frkl-16.png 1x, /avatars/frkl-32.png 2x" class="avatar" alt="frkl avatar" loading="lazy" decoding="async" src="/avatars/frkl-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/frkl" class="u-author h-card ">frkl</a>
       +
       +        <span title="2023-08-16 11:52:37 -0500">20 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_cjxr3m" class="archive_button" type="checkbox">
       +            <label for="archive_cjxr3m">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fprefix.dev%2Fblog%2Flaunching_pixi">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fprefix.dev%2Fblog%2Flaunching_pixi">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fprefix.dev%2Fblog%2Flaunching_pixi">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/cjxr3m/let_s_stop_dependency_hell_launching_pixi">
       +              13 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/cjxr3m/let_s_stop_dependency_hell_launching_pixi" class="mobile_comments " style="display: none;">
       +  <span>13</span>
       +</a>
       +</li>
       +<li id="story_gbfe6c" data-shortid="gbfe6c"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">18</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://github.com/antonmedv/expr/releases/tag/v1.14.0" rel="ugc noreferrer">Expr v1.14 release: Go expression language</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_go" title="Golang programming" href="/t/go">go</a>
       +          <a class="tag tag_release" title="Software releases and announcements" href="/t/release">release</a>
       +      </span>
       +        <a class="domain" href="/domains/github.com">github.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/antonmedv"><img srcset="/avatars/antonmedv-16.png 1x, /avatars/antonmedv-32.png 2x" class="avatar" alt="antonmedv avatar" loading="lazy" decoding="async" src="/avatars/antonmedv-16.png" width="16" height="16" /></a>
       +          <span> authored by </span>
       +        <a href="/u/antonmedv" class="u-author h-card user_is_author">antonmedv</a>
       +
       +        <span title="2023-08-16 04:59:16 -0500">27 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_gbfe6c" class="archive_button" type="checkbox">
       +            <label for="archive_gbfe6c">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fgithub.com%2Fantonmedv%2Fexpr%2Freleases%2Ftag%2Fv1.14.0">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fgithub.com%2Fantonmedv%2Fexpr%2Freleases%2Ftag%2Fv1.14.0">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fgithub.com%2Fantonmedv%2Fexpr%2Freleases%2Ftag%2Fv1.14.0">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/gbfe6c/expr_v1_14_release_go_expression_language">
       +              12 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/gbfe6c/expr_v1_14_release_go_expression_language" class="mobile_comments " style="display: none;">
       +  <span>12</span>
       +</a>
       +</li>
       +<li id="story_oy3k81" data-shortid="oy3k81"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">13</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://telemachus.me/slogtest" rel="ugc noreferrer">slogtest</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_go" title="Golang programming" href="/t/go">go</a>
       +          <a class="tag tag_testing" title="Software testing" href="/t/testing">testing</a>
       +      </span>
       +        <a class="domain" href="/domains/telemachus.me">telemachus.me</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/telemachus"><img srcset="/avatars/telemachus-16.png 1x, /avatars/telemachus-32.png 2x" class="avatar" alt="telemachus avatar" loading="lazy" decoding="async" src="/avatars/telemachus-16.png" width="16" height="16" /></a>
       +          <span> authored by </span>
       +        <a href="/u/telemachus" class="u-author h-card user_is_author">telemachus</a>
       +
       +        <span title="2023-08-16 06:20:20 -0500">25 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_oy3k81" class="archive_button" type="checkbox">
       +            <label for="archive_oy3k81">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Ftelemachus.me%2Fslogtest">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Ftelemachus.me%2Fslogtest">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Ftelemachus.me%2Fslogtest">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/oy3k81/slogtest">
       +              8 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/oy3k81/slogtest" class="mobile_comments " style="display: none;">
       +  <span>8</span>
       +</a>
       +</li>
       +<li id="story_vkcnau" data-shortid="vkcnau"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">6</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://two-wrongs.com/optimise-the-expensive-first" rel="ugc noreferrer">Optimise the Expensive First</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_performance" title="Performance and optimization" href="/t/performance">performance</a>
       +      </span>
       +        <a class="domain" href="/domains/two-wrongs.com">two-wrongs.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/chriskrycho"><img srcset="/avatars/chriskrycho-16.png 1x, /avatars/chriskrycho-32.png 2x" class="avatar" alt="chriskrycho avatar" loading="lazy" decoding="async" src="/avatars/chriskrycho-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/chriskrycho" class="u-author h-card ">chriskrycho</a>
       +
       +        <span title="2023-08-16 19:19:19 -0500">12 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_vkcnau" class="archive_button" type="checkbox">
       +            <label for="archive_vkcnau">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Ftwo-wrongs.com%2Foptimise-the-expensive-first">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Ftwo-wrongs.com%2Foptimise-the-expensive-first">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Ftwo-wrongs.com%2Foptimise-the-expensive-first">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/vkcnau/optimise_expensive_first">
       +              2 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/vkcnau/optimise_expensive_first" class="mobile_comments " style="display: none;">
       +  <span>2</span>
       +</a>
       +</li>
       +<li id="story_yrntto" data-shortid="yrntto"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">9</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://www.xorpd.net/pages/xchg_rax/snip_00.html" rel="ugc noreferrer">xchg rax,rax</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_book tag_is_media" title="Link to a book (not an ad or review)" href="/t/book">book</a>
       +          <a class="tag tag_assembly" title="Assembly programming" href="/t/assembly">assembly</a>
       +      </span>
       +        <a class="domain" href="/domains/xorpd.net">xorpd.net</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/gepardo"><img srcset="/avatars/gepardo-16.png 1x, /avatars/gepardo-32.png 2x" class="avatar" alt="gepardo avatar" loading="lazy" decoding="async" src="/avatars/gepardo-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/gepardo" class="u-author h-card ">gepardo</a>
       +
       +        <span title="2023-08-16 15:05:51 -0500">17 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_yrntto" class="archive_button" type="checkbox">
       +            <label for="archive_yrntto">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fwww.xorpd.net%2Fpages%2Fxchg_rax%2Fsnip_00.html">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fwww.xorpd.net%2Fpages%2Fxchg_rax%2Fsnip_00.html">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fwww.xorpd.net%2Fpages%2Fxchg_rax%2Fsnip_00.html">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/yrntto/xchg_rax_rax">
       +              3 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/yrntto/xchg_rax_rax" class="mobile_comments " style="display: none;">
       +  <span>3</span>
       +</a>
       +</li>
       +<li id="story_wnv3ep" data-shortid="wnv3ep"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">2</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://www.dolthub.com/blog/2023-08-16-go-pitfalls/" rel="ugc noreferrer">Avoiding Pitfalls in Go</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_go" title="Golang programming" href="/t/go">go</a>
       +      </span>
       +        <a class="domain" href="/domains/dolthub.com">dolthub.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/telemachus"><img srcset="/avatars/telemachus-16.png 1x, /avatars/telemachus-32.png 2x" class="avatar" alt="telemachus avatar" loading="lazy" decoding="async" src="/avatars/telemachus-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/telemachus" class="u-author h-card ">telemachus</a>
       +
       +        <span title="2023-08-17 06:05:01 -0500">2 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_wnv3ep" class="archive_button" type="checkbox">
       +            <label for="archive_wnv3ep">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fwww.dolthub.com%2Fblog%2F2023-08-16-go-pitfalls%2F">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fwww.dolthub.com%2Fblog%2F2023-08-16-go-pitfalls%2F">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fwww.dolthub.com%2Fblog%2F2023-08-16-go-pitfalls%2F">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/wnv3ep/avoiding_pitfalls_go">
       +              no comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/wnv3ep/avoiding_pitfalls_go" class="mobile_comments zero" style="display: none;">
       +  <span>0</span>
       +</a>
       +</li>
       +<li id="story_n4v6a8" data-shortid="n4v6a8"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">43</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://jarvispowered.com/you-dont-hate-jira-you-hate-your-manager/" rel="ugc noreferrer">You don&#39;t hate JIRA, you hate your manager</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_practices" title="Development and team practices" href="/t/practices">practices</a>
       +      </span>
       +        <a class="domain" href="/domains/jarvispowered.com">jarvispowered.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/djx"><img srcset="/avatars/djx-16.png 1x, /avatars/djx-32.png 2x" class="avatar" alt="djx avatar" loading="lazy" decoding="async" src="/avatars/djx-16.png" width="16" height="16" /></a>
       +          <span> authored by </span>
       +        <a href="/u/djx" class="u-author h-card user_is_author">djx</a>
       +
       +        <span title="2023-08-15 15:46:17 -0500">40 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_n4v6a8" class="archive_button" type="checkbox">
       +            <label for="archive_n4v6a8">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fjarvispowered.com%2Fyou-dont-hate-jira-you-hate-your-manager%2F">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fjarvispowered.com%2Fyou-dont-hate-jira-you-hate-your-manager%2F">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fjarvispowered.com%2Fyou-dont-hate-jira-you-hate-your-manager%2F">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/n4v6a8/you_don_t_hate_jira_you_hate_your_manager">
       +              84 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/n4v6a8/you_don_t_hate_jira_you_hate_your_manager" class="mobile_comments " style="display: none;">
       +  <span>84</span>
       +</a>
       +</li>
       +<li id="story_sgw0sb" data-shortid="sgw0sb"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">1</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://cbloomrants.blogspot.com/2023/07/float-to-int-casts-for-data-compression.html" rel="ugc noreferrer">Float to int casts for data compression</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_programming" title="Use when every tag or no specific tag applies" href="/t/programming">programming</a>
       +      </span>
       +        <a class="domain" href="/domains/cbloomrants.blogspot.com">cbloomrants.blogspot.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/mikejsavage"><img srcset="/avatars/mikejsavage-16.png 1x, /avatars/mikejsavage-32.png 2x" class="avatar" alt="mikejsavage avatar" loading="lazy" decoding="async" src="/avatars/mikejsavage-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/mikejsavage" class="u-author h-card ">mikejsavage</a>
       +
       +        <span title="2023-08-17 06:01:50 -0500">2 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_sgw0sb" class="archive_button" type="checkbox">
       +            <label for="archive_sgw0sb">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fcbloomrants.blogspot.com%2F2023%2F07%2Ffloat-to-int-casts-for-data-compression.html">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fcbloomrants.blogspot.com%2F2023%2F07%2Ffloat-to-int-casts-for-data-compression.html">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fcbloomrants.blogspot.com%2F2023%2F07%2Ffloat-to-int-casts-for-data-compression.html">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/sgw0sb/float_int_casts_for_data_compression">
       +              1 comment</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/sgw0sb/float_int_casts_for_data_compression" class="mobile_comments " style="display: none;">
       +  <span>1</span>
       +</a>
       +</li>
       +<li id="story_5facyn" data-shortid="5facyn"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">4</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://dissociatedpress.net/2023/06/24/red-hat-and-the-clone-wars/" rel="ugc noreferrer">Red Hat and the Clone Wars</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_historical" title="History and retrospectives (not for things that happen to be old)" href="/t/historical">historical</a>
       +          <a class="tag tag_linux" title="Linux" href="/t/linux">linux</a>
       +      </span>
       +        <a class="domain" href="/domains/dissociatedpress.net">dissociatedpress.net</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/df"><img srcset="/avatars/df-16.png 1x, /avatars/df-32.png 2x" class="avatar" alt="df avatar" loading="lazy" decoding="async" src="/avatars/df-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/df" class="u-author h-card ">df</a>
       +
       +        <span title="2023-08-16 21:22:32 -0500">10 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_5facyn" class="archive_button" type="checkbox">
       +            <label for="archive_5facyn">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fdissociatedpress.net%2F2023%2F06%2F24%2Fred-hat-and-the-clone-wars%2F">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fdissociatedpress.net%2F2023%2F06%2F24%2Fred-hat-and-the-clone-wars%2F">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fdissociatedpress.net%2F2023%2F06%2F24%2Fred-hat-and-the-clone-wars%2F">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/5facyn/red_hat_clone_wars">
       +              2 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/5facyn/red_hat_clone_wars" class="mobile_comments " style="display: none;">
       +  <span>2</span>
       +</a>
       +</li>
       +<li id="story_qgoksp" data-shortid="qgoksp"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">23</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://notes.eatonphil.com/2023-08-15-thinking-about-functional-programming.html" rel="ugc noreferrer">Thinking about functional programming</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_plt" title="Programming language theory, types, design" href="/t/plt">plt</a>
       +      </span>
       +        <a class="domain" href="/domains/notes.eatonphil.com">notes.eatonphil.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/eatonphil"><img srcset="/avatars/eatonphil-16.png 1x, /avatars/eatonphil-32.png 2x" class="avatar" alt="eatonphil avatar" loading="lazy" decoding="async" src="/avatars/eatonphil-16.png" width="16" height="16" /></a>
       +          <span> authored by </span>
       +        <a href="/u/eatonphil" class="u-author h-card user_is_author">eatonphil</a>
       +
       +        <span title="2023-08-15 20:20:57 -0500">35 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_qgoksp" class="archive_button" type="checkbox">
       +            <label for="archive_qgoksp">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fnotes.eatonphil.com%2F2023-08-15-thinking-about-functional-programming.html">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fnotes.eatonphil.com%2F2023-08-15-thinking-about-functional-programming.html">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fnotes.eatonphil.com%2F2023-08-15-thinking-about-functional-programming.html">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/qgoksp/thinking_about_functional_programming">
       +              22 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/qgoksp/thinking_about_functional_programming" class="mobile_comments " style="display: none;">
       +  <span>22</span>
       +</a>
       +</li>
       +<li id="story_jovzxw" data-shortid="jovzxw"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">1</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://codeconfessions.substack.com/p/cpython-reference-counting-internals" rel="ugc noreferrer">How CPython Implements Reference Counting: Dissecting CPython Internals</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_c" title="C programming" href="/t/c">c</a>
       +          <a class="tag tag_compilers" title="Compiler design" href="/t/compilers">compilers</a>
       +          <a class="tag tag_python" title="Python programming" href="/t/python">python</a>
       +      </span>
       +        <a class="domain" href="/domains/codeconfessions.substack.com">codeconfessions.substack.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/abhi9u"><img srcset="/avatars/abhi9u-16.png 1x, /avatars/abhi9u-32.png 2x" class="avatar" alt="abhi9u avatar" loading="lazy" decoding="async" src="/avatars/abhi9u-16.png" width="16" height="16" /></a>
       +          <span> authored by </span>
       +        <a href="/u/abhi9u" class="u-author h-card user_is_author">abhi9u</a>
       +
       +        <span title="2023-08-17 00:52:33 -0500">7 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_jovzxw" class="archive_button" type="checkbox">
       +            <label for="archive_jovzxw">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fcodeconfessions.substack.com%2Fp%2Fcpython-reference-counting-internals">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fcodeconfessions.substack.com%2Fp%2Fcpython-reference-counting-internals">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fcodeconfessions.substack.com%2Fp%2Fcpython-reference-counting-internals">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/jovzxw/how_cpython_implements_reference">
       +              no comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/jovzxw/how_cpython_implements_reference" class="mobile_comments zero" style="display: none;">
       +  <span>0</span>
       +</a>
       +</li>
       +<li id="story_usishn" data-shortid="usishn"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">1</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://vksegfault.github.io/posts/gentle-intro-gpu-inner-workings/" rel="ugc noreferrer">Gentle introduction to GPUs inner workings</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_graphics" title="Graphics programming" href="/t/graphics">graphics</a>
       +      </span>
       +        <a class="domain" href="/domains/vksegfault.github.io">vksegfault.github.io</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/mikejsavage"><img srcset="/avatars/mikejsavage-16.png 1x, /avatars/mikejsavage-32.png 2x" class="avatar" alt="mikejsavage avatar" loading="lazy" decoding="async" src="/avatars/mikejsavage-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/mikejsavage" class="u-author h-card ">mikejsavage</a>
       +
       +        <span title="2023-08-17 06:00:38 -0500">2 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_usishn" class="archive_button" type="checkbox">
       +            <label for="archive_usishn">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fvksegfault.github.io%2Fposts%2Fgentle-intro-gpu-inner-workings%2F">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fvksegfault.github.io%2Fposts%2Fgentle-intro-gpu-inner-workings%2F">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fvksegfault.github.io%2Fposts%2Fgentle-intro-gpu-inner-workings%2F">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/usishn/gentle_introduction_gpus_inner_workings">
       +              no comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/usishn/gentle_introduction_gpus_inner_workings" class="mobile_comments zero" style="display: none;">
       +  <span>0</span>
       +</a>
       +</li>
       +<li id="story_niscpx" data-shortid="niscpx"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">4</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://www.youtube.com/watch?v=lvvzolKHt2E" rel="ugc noreferrer">Unit (Visual Programming System)</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_video tag_is_media" title="Link to a video" href="/t/video">video</a>
       +          <a class="tag tag_design" title="Visual design" href="/t/design">design</a>
       +          <a class="tag tag_plt" title="Programming language theory, types, design" href="/t/plt">plt</a>
       +      </span>
       +        <a class="domain" href="/domains/youtube.com">youtube.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/ivanreese"><img srcset="/avatars/ivanreese-16.png 1x, /avatars/ivanreese-32.png 2x" class="avatar" alt="ivanreese avatar" loading="lazy" decoding="async" src="/avatars/ivanreese-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/ivanreese" class="u-author h-card ">ivanreese</a>
       +
       +        <span title="2023-08-16 21:12:11 -0500">10 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_niscpx" class="archive_button" type="checkbox">
       +            <label for="archive_niscpx">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlvvzolKHt2E">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlvvzolKHt2E">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlvvzolKHt2E">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/niscpx/unit_visual_programming_system">
       +              no comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/niscpx/unit_visual_programming_system" class="mobile_comments zero" style="display: none;">
       +  <span>0</span>
       +</a>
       +</li>
       +<li id="story_gh9yu9" data-shortid="gh9yu9"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">24</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://www.haiku-os.org/blog/waddlesplash/2023-08-15_haiku_activity_contract_report_july_2023/" rel="ugc noreferrer">Haiku Activity &amp; Contract Report, July 2023</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_osdev" title="Operating system design and development when no specific OS tag exists" href="/t/osdev">osdev</a>
       +      </span>
       +        <a class="domain" href="/domains/haiku-os.org">haiku-os.org</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/calvin"><img srcset="/avatars/calvin-16.png 1x, /avatars/calvin-32.png 2x" class="avatar" alt="calvin avatar" loading="lazy" decoding="async" src="/avatars/calvin-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/calvin" class="u-author h-card ">calvin</a>
       +
       +        <span title="2023-08-15 23:51:30 -0500">32 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_gh9yu9" class="archive_button" type="checkbox">
       +            <label for="archive_gh9yu9">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fwww.haiku-os.org%2Fblog%2Fwaddlesplash%2F2023-08-15_haiku_activity_contract_report_july_2023%2F">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fwww.haiku-os.org%2Fblog%2Fwaddlesplash%2F2023-08-15_haiku_activity_contract_report_july_2023%2F">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fwww.haiku-os.org%2Fblog%2Fwaddlesplash%2F2023-08-15_haiku_activity_contract_report_july_2023%2F">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/gh9yu9/haiku_activity_contract_report_july_2023">
       +              10 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/gh9yu9/haiku_activity_contract_report_july_2023" class="mobile_comments " style="display: none;">
       +  <span>10</span>
       +</a>
       +</li>
       +<li id="story_r9o9md" data-shortid="r9o9md"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">1</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://www.youtube.com/watch?v=lUCegCa7A08" rel="ugc noreferrer">WebAssembly for the rest of us</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_video tag_is_media" title="Link to a video" href="/t/video">video</a>
       +          <a class="tag tag_wasm" title="webassembly" href="/t/wasm">wasm</a>
       +      </span>
       +        <a class="domain" href="/domains/youtube.com">youtube.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/dbremner"><img srcset="/avatars/dbremner-16.png 1x, /avatars/dbremner-32.png 2x" class="avatar" alt="dbremner avatar" loading="lazy" decoding="async" src="/avatars/dbremner-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/dbremner" class="u-author h-card ">dbremner</a>
       +
       +        <span title="2023-08-17 05:46:28 -0500">2 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_r9o9md" class="archive_button" type="checkbox">
       +            <label for="archive_r9o9md">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlUCegCa7A08">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlUCegCa7A08">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlUCegCa7A08">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/r9o9md/webassembly_for_rest_us">
       +              no comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/r9o9md/webassembly_for_rest_us" class="mobile_comments zero" style="display: none;">
       +  <span>0</span>
       +</a>
       +</li>
       +<li id="story_kyvlzb" data-shortid="kyvlzb"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">5</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://www.systeminit.com/blog-open-source/" rel="ugc noreferrer">System Initiative Open Source</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_devops" title="DevOps" href="/t/devops">devops</a>
       +          <a class="tag tag_release" title="Software releases and announcements" href="/t/release">release</a>
       +      </span>
       +        <a class="domain" href="/domains/systeminit.com">systeminit.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/caius"><img srcset="/avatars/caius-16.png 1x, /avatars/caius-32.png 2x" class="avatar" alt="caius avatar" loading="lazy" decoding="async" src="/avatars/caius-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/caius" class="u-author h-card ">caius</a>
       +
       +        <span title="2023-08-16 13:26:57 -0500">18 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_kyvlzb" class="archive_button" type="checkbox">
       +            <label for="archive_kyvlzb">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fwww.systeminit.com%2Fblog-open-source%2F">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fwww.systeminit.com%2Fblog-open-source%2F">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fwww.systeminit.com%2Fblog-open-source%2F">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/kyvlzb/system_initiative_open_source">
       +              4 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/kyvlzb/system_initiative_open_source" class="mobile_comments " style="display: none;">
       +  <span>4</span>
       +</a>
       +</li>
       +<li id="story_id9jet" data-shortid="id9jet"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">39</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://rachit.pl/post/transpiler/" rel="ugc noreferrer">Transpiler, a meaningless word</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_plt" title="Programming language theory, types, design" href="/t/plt">plt</a>
       +      </span>
       +        <a class="domain" href="/domains/rachit.pl">rachit.pl</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/azhenley"><img srcset="/avatars/azhenley-16.png 1x, /avatars/azhenley-32.png 2x" class="avatar" alt="azhenley avatar" loading="lazy" decoding="async" src="/avatars/azhenley-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/azhenley" class="u-author h-card ">azhenley</a>
       +
       +        <span title="2023-08-15 11:34:33 -0500">44 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_id9jet" class="archive_button" type="checkbox">
       +            <label for="archive_id9jet">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Frachit.pl%2Fpost%2Ftranspiler%2F">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Frachit.pl%2Fpost%2Ftranspiler%2F">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Frachit.pl%2Fpost%2Ftranspiler%2F">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/id9jet/transpiler_meaningless_word">
       +              53 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/id9jet/transpiler_meaningless_word" class="mobile_comments " style="display: none;">
       +  <span>53</span>
       +</a>
       +</li>
       +<li id="story_h6vioy" data-shortid="h6vioy"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">28</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://blog.redplanetlabs.com/2023/08/15/how-we-reduced-the-cost-of-building-twitter-at-twitter-scale-by-100x/" rel="ugc noreferrer">How we reduced the cost of building Twitter at Twitter-scale by 100x</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_distributed" title="Distributed systems" href="/t/distributed">distributed</a>
       +      </span>
       +        <a class="domain" href="/domains/blog.redplanetlabs.com">blog.redplanetlabs.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/manuel"><img srcset="/avatars/manuel-16.png 1x, /avatars/manuel-32.png 2x" class="avatar" alt="manuel avatar" loading="lazy" decoding="async" src="/avatars/manuel-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/manuel" class="u-author h-card ">manuel</a>
       +
       +        <span title="2023-08-15 13:17:27 -0500">42 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_h6vioy" class="archive_button" type="checkbox">
       +            <label for="archive_h6vioy">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fblog.redplanetlabs.com%2F2023%2F08%2F15%2Fhow-we-reduced-the-cost-of-building-twitter-at-twitter-scale-by-100x%2F">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fblog.redplanetlabs.com%2F2023%2F08%2F15%2Fhow-we-reduced-the-cost-of-building-twitter-at-twitter-scale-by-100x%2F">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fblog.redplanetlabs.com%2F2023%2F08%2F15%2Fhow-we-reduced-the-cost-of-building-twitter-at-twitter-scale-by-100x%2F">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/h6vioy/how_we_reduced_cost_building_twitter_at">
       +              29 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/h6vioy/how_we_reduced_cost_building_twitter_at" class="mobile_comments " style="display: none;">
       +  <span>29</span>
       +</a>
       +</li>
       +<li id="story_aade0u" data-shortid="aade0u"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">15</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://www.wdj-consulting.com/blog/logicpuzzle-z3/" rel="ugc noreferrer">Using z3 To Solve Logic Puzzles</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_formalmethods" title="Formal methods" href="/t/formalmethods">formalmethods</a>
       +      </span>
       +        <a class="domain" href="/domains/wdj-consulting.com">wdj-consulting.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/Screwtape"><img srcset="/avatars/Screwtape-16.png 1x, /avatars/Screwtape-32.png 2x" class="avatar" alt="Screwtape avatar" loading="lazy" decoding="async" src="/avatars/Screwtape-16.png" width="16" height="16" /></a>
       +          <span> via </span>
       +        <a href="/u/Screwtape" class="u-author h-card ">Screwtape</a>
       +
       +        <span title="2023-08-15 21:03:14 -0500">35 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_aade0u" class="archive_button" type="checkbox">
       +            <label for="archive_aade0u">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fwww.wdj-consulting.com%2Fblog%2Flogicpuzzle-z3%2F">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fwww.wdj-consulting.com%2Fblog%2Flogicpuzzle-z3%2F">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fwww.wdj-consulting.com%2Fblog%2Flogicpuzzle-z3%2F">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/aade0u/using_z3_solve_logic_puzzles">
       +              5 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/aade0u/using_z3_solve_logic_puzzles" class="mobile_comments " style="display: none;">
       +  <span>5</span>
       +</a>
       +</li>
       +<li id="story_ohewtv" data-shortid="ohewtv"
       +class="story 
       +
       +
       +
       +
       +
       +
       +">
       +<div class="story_liner h-entry">
       +  <div class="voters">
       +      <a class="upvoter" href="/login"></a>
       +    <div class="score">14</div>
       +  </div>
       +  <div class="details">
       +    <span role="heading" aria-level="1" class="link h-cite u-repost-of">
       +        <a class="u-url" href="https://github.com/mattrose/vimwiki-server" rel="ugc noreferrer">vimwiki-server: Sinatra server that creates a web server from a vimwiki directory</a>
       +    </span>
       +      <span class="tags">
       +          <a class="tag tag_ruby" title="Ruby programming" href="/t/ruby">ruby</a>
       +          <a class="tag tag_vim" title="Vim editor" href="/t/vim">vim</a>
       +          <a class="tag tag_web" title="Web development and news" href="/t/web">web</a>
       +      </span>
       +        <a class="domain" href="/domains/github.com">github.com</a>
       +
       +
       +
       +    <div class="byline">
       +        <a href="/u/mattrose"><img srcset="/avatars/mattrose-16.png 1x, /avatars/mattrose-32.png 2x" class="avatar" alt="mattrose avatar" loading="lazy" decoding="async" src="/avatars/mattrose-16.png" width="16" height="16" /></a>
       +          <span> authored by </span>
       +        <a href="/u/mattrose" class="u-author h-card user_is_author">mattrose</a>
       +
       +        <span title="2023-08-15 16:49:29 -0500">39 hours ago</span>
       +
       +          <span> | </span>
       +          <span class="dropdown_parent">
       +            <input id="archive_ohewtv" class="archive_button" type="checkbox">
       +            <label for="archive_ohewtv">archive</label>
       +            <div class="archive-dropdown">
       +              <a href="https://web.archive.org/web/3/https%3A%2F%2Fgithub.com%2Fmattrose%2Fvimwiki-server">Archive.org</a>
       +              <a href="https://archive.today/https%3A%2F%2Fgithub.com%2Fmattrose%2Fvimwiki-server">Archive.today</a>
       +              <a href="https://ghostarchive.org/search?term=https%3A%2F%2Fgithub.com%2Fmattrose%2Fvimwiki-server">Ghostarchive</a>
       +            </div>
       +          </span>
       +          <span class="comments_label">
       +            <span> | </span>
       +            <a role="heading" aria-level="2" href="/s/ohewtv/vimwiki_server_sinatra_server_creates">
       +              8 comments</a>
       +          </span>
       +
       +    </div>
       +  </div>
       +</div>
       +<a href="/s/ohewtv/vimwiki_server_sinatra_server_creates" class="mobile_comments " style="display: none;">
       +  <span>8</span>
       +</a>
       +</li>
       +
       +</ol>
       +
       +
       +
       +<div class="morelink">
       +
       +    <a href="/page/2">Page 2 &gt;&gt;</a>
       +</div>
       +
       +  </div>
       +
       +  <footer>
       +    <a href="/about">About</a>
       +    <a href="/tags">Tags</a>
       +    <a href="/filters">Filter</a>
       +    <a href="/moderations">Moderation Log</a>
       +  </footer>
       +  <span id="iab-pcm-sdk"></span><span id="iab-autofill-sdk"></span>
       +</body>
       +</html>
 (DIR) diff --git a/tests/audio.html b/tests/audio.html
       @@ -0,0 +1,3 @@
       +<audio src="file1.mp3"></audio>
       +<audio src="file2.mp3" />
       +<audio controls src="file3.mp3"></audio>
 (DIR) diff --git a/tests/lists.html b/tests/lists.html
       @@ -0,0 +1,50 @@
       +<h2>List 1: list with hyperlinks</h2>
       +
       +<ul>
       +<li>Sites:
       +<ul>
       +<li><a href="http://seriot.ch/parsing_json.php">seriot.ch - Parsing JSON is a Minefield</a></li>
       +<li><a href="https://github.com/nst/JSONTestSuite">A comprehensive test suite for RFC 8259 compliant JSON parsers</a></li>
       +<li><a href="https://json.org/">json.org</a></li>
       +</ul>
       +</li>
       +<li>Current standard:
       +<ul>
       +<li><a href="https://tools.ietf.org/html/rfc8259">RFC8259 - The JavaScript Object Notation (JSON) Data Interchange Format</a></li>
       +<li><a href="https://www.ecma-international.org/publications/standards/Ecma-404.htm">Standard ECMA-404 - The JSON Data Interchange Syntax (2nd edition (December 2017)</a></li>
       +</ul>
       +</ul>
       +
       +<h2>List 2: no hyperlink</h2>
       +
       +<ul>
       +<li>Sites:
       +<ul>
       +<li>seriot.ch - Parsing JSON is a Minefield</li>
       +<li>A comprehensive test suite for RFC 8259 compliant JSON parsers</li>
       +<li>json.org</li>
       +</ul>
       +</li>
       +<li>Current standard:
       +<ul>
       +<li>RFC8259 - The JavaScript Object Notation (JSON) Data Interchange Format</li>
       +<li>Standard ECMA-404 - The JSON Data Interchange Syntax (2nd edition (December 2017)</li>
       +</ul>
       +</ul>
       +
       +<h2>List 3: autoclose / void tag</h2>
       +
       +<ul>
       +<li>Sites:
       +<ul>
       +<li>seriot.ch - Parsing JSON is a Minefield
       +<li>A comprehensive test suite for RFC 8259 compliant JSON parsers
       +<li>json.org
       +</ul>
       +</li>
       +<li>Current standard:
       +<ul>
       +<li>RFC8259 - The JavaScript Object Notation (JSON) Data Interchange Format
       +<li>Standard ECMA-404 - The JSON Data Interchange Syntax (2nd edition (December 2017)
       +</ul>
       +</ul>
 (DIR) diff --git a/tests/ol.html b/tests/ol.html
       @@ -0,0 +1,5 @@
       +<ol>
       +<li>one</li>
       +<li>two</li>
       +<li>three</li>
       +</ol>
 (DIR) diff --git a/tests/ol_nested.html b/tests/ol_nested.html
       @@ -0,0 +1,21 @@
       +<ol>
       +<li>one</li>
       +<li>two
       +        <ol>
       +        <li>two. one
       +                <ol>
       +                <li>two. one. one</li>
       +                <li>two. one. two</li>
       +                </ol>
       +        </li>
       +        <li>two. two</li>
       +        </ol>
       +</li>
       +<li>three
       +        <ol>
       +        <li>three. one</li>
       +        <li>three. two</li>
       +        </ol>
       +</li>
       +<li>four</li>
       +</ol>
 (DIR) diff --git a/tests/table_head.html b/tests/table_head.html
       @@ -0,0 +1,13 @@
       +<table>
       +<thead>
       +<tr><th>ha</th><th>hb</th><th>hc</th></tr>
       +</thead>
       +<tbody>
       +<tr><td>b1</td><td>b2</td><td>b3</td></tr>
       +<tr><td>b1</td><td>b2</td><td>b3</td></tr>
       +<tr><td>b1</td><td>b2</td><td>b3</td></tr>
       +</tbody>
       +<tfoot>
       +<tr><td>f1</td><td>f2</td><td>f3</td></tr>
       +</tfoot>
       +</table>
 (DIR) diff --git a/tests/table_optional.html b/tests/table_optional.html
       @@ -0,0 +1,8 @@
       +<!-- optional closing of row -->
       +
       +<table>
       +<tr><th>a</th><th>b</th><th>c</th>
       +<tr><td>1</td><td>2</td><td>3</td>
       +<tr><td>1</td><td>2</td><td>3</td>
       +<tr><td>1</td><td>2</td><td>3</td>
       +</table>
 (DIR) diff --git a/tests/ul.html b/tests/ul.html
       @@ -0,0 +1,5 @@
       +<ul>
       +<li>one</li>
       +<li>two</li>
       +<li>three</li>
       +</ul>
 (DIR) diff --git a/tests/ul_a.html b/tests/ul_a.html
       @@ -0,0 +1,5 @@
       +<ul>
       +        <li><a href="#one">one</a></li>
       +        <li><a href="#two">two</a></li>
       +        <li><a href="#three">three</a></li>
       +</ul>
 (DIR) diff --git a/tests/ul_nested.html b/tests/ul_nested.html
       @@ -0,0 +1,21 @@
       +<ul>
       +<li>one</li>
       +<li>two
       +        <ul>
       +        <li>two. one
       +                <ul>
       +                <li>two. one. one</li>
       +                <li>two. one. two</li>
       +                </ul>
       +        </li>
       +        <li>two. two</li>
       +        </ul>
       +</li>
       +<li>three
       +        <ul>
       +        <li>three. one</li>
       +        <li>three. two</li>
       +        </ul>
       +</li>
       +<li>four</li>
       +</ul>
 (DIR) diff --git a/tests/ul_whitespace.html b/tests/ul_whitespace.html
       @@ -0,0 +1,5 @@
       +<ul>
       +        <li>one</li>
       +        <li>two</li>
       +        <li>three</li>
       +</ul>
 (DIR) diff --git a/tests/video.html b/tests/video.html
       @@ -0,0 +1,7 @@
       +<video>
       +<source src="video1.mp4" type="video/mp4"/>
       +</video>
       +
       +<video controls width="360" preload="none">
       +<source src="video2.mp4" type="video/mp4"/>
       +</video>
 (DIR) diff --git a/tests/video_track.html b/tests/video_track.html
       @@ -0,0 +1,7 @@
       +<video controls src="/media/cc0-videos/friday.mp4">
       +  <track default kind="captions" srclang="en" src="/media/examples/friday.vtt" />
       +  Download the
       +  <a href="/media/cc0-videos/friday.mp4">MP4</a>
       +  video, and
       +  <a href="/media/examples/friday.vtt">subtitles</a>.
       +</video>