mastodon.bida.im is part of the decentralized social network powered by Mastodon.
Un'istanza mastodon antifascista. autogestita, italofona con base a Bologna. Rispettosa di privacy e anonimato.

Server stats:

939
active users

Learn more

#howto

45 posts18 participants6 posts today
tutorialseri<p>4 Ways to Remove Bathtub Decals <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/to" class="mention hashtag" rel="tag">#<span>to</span></a></p>
tutorialseri<p>How to Do Farrah Fawcett Hair <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/Farrah" class="mention hashtag" rel="tag">#<span>Farrah</span></a></p>
Chery (Great Australian Pods)<p>Virtually Free With Ashlee </p><p>Great Australian Pods Podcast Directory: <a href="https://www.greataustralianpods.com/virtually-free-with-ashlee/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">greataustralianpods.com/virtua</span><span class="invisible">lly-free-with-ashlee/</span></a> </p><p><a href="https://aus.social/tags/GreatAusPods" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>GreatAusPods</span></a> <a href="https://aus.social/tags/AusPods" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>AusPods</span></a> <a href="https://aus.social/tags/Podcast" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Podcast</span></a> <a href="https://aus.social/tags/Podcasts" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Podcasts</span></a> <a href="https://aus.social/tags/Podcasting" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Podcasting</span></a> <a href="https://aus.social/tags/Podcasters" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Podcasters</span></a> <a href="https://aus.social/tags/Australia" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Australia</span></a> <a href="https://aus.social/tags/Business" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Business</span></a> <a href="https://aus.social/tags/Entrepreneurship" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Entrepreneurship</span></a> <a href="https://aus.social/tags/HowTo" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>HowTo</span></a> <a href="https://aus.social/tags/Tech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Tech</span></a> <a href="https://aus.social/tags/Cyber" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Cyber</span></a></p>
tutorialseri<p>How to Burn Tree Stumps <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/Burn" class="mention hashtag" rel="tag">#<span>Burn</span></a></p>
tutorialseri<p>4 Ways to Administer Narcan <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/Ways" class="mention hashtag" rel="tag">#<span>Ways</span></a></p>
tutorialseri<p>Come Pulire i Condotti Interni dell&#39;Aria <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/i" class="mention hashtag" rel="tag">#<span>i</span></a></p>
tutorialseri<p>Come Usare la Funzione Duplicazione di AirPlay con iPad e Apple TV <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/Apple" class="mention hashtag" rel="tag">#<span>Apple</span></a></p>
Terence Eden’s Blog<p><strong>An opinionated HTML Serializer for PHP 8.4</strong></p><p><a href="https://shkspr.mobi/blog/2025/04/an-opinionated-html-serializer-for-php-8-4/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">shkspr.mobi/blog/2025/04/an-op</span><span class="invisible">inionated-html-serializer-for-php-8-4/</span></a></p><p>A few days ago, <a href="https://shkspr.mobi/blog/2025/03/pretty-print-html-using-php-8-4s-new-html-dom/" rel="nofollow noopener noreferrer" target="_blank">I wrote a shitty pretty-printer</a> for PHP 8.4's new <a href="https://www.php.net/manual/en/class.dom-htmldocument.php" rel="nofollow noopener noreferrer" target="_blank">Dom\HTMLDocument class</a>.</p><p>I've since re-written it to be faster and more stylistically correct.</p><p>It turns this:</p><pre><code>&lt;html lang="en-GB"&gt;&lt;head&gt;&lt;title id="something"&gt;Test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;h1 class="top upper"&gt;Testing&lt;/h1&gt;&lt;main&gt;&lt;p&gt;Some &lt;em&gt;HTML&lt;/em&gt; and an &lt;img src="example.png" alt="Alternate Text"&gt;&lt;/p&gt;Text not in an element&lt;ol&gt;&lt;li&gt;List&lt;/li&gt;&lt;li&gt;Another list&lt;/li&gt;&lt;/ol&gt;&lt;/main&gt;&lt;/body&gt;&lt;/html&gt;</code></pre><p>Into this:</p><pre><code>&lt;!doctype html&gt;&lt;html lang=en-GB&gt; &lt;head&gt; &lt;title id=something&gt;Test&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1 class="top upper"&gt;Testing&lt;/h1&gt; &lt;main&gt; &lt;p&gt; Some &lt;em&gt;HTML&lt;/em&gt; and an &lt;img src=example.png alt="Alternate Text"&gt; &lt;/p&gt; Text not in an element &lt;ol&gt; &lt;li&gt;List&lt;/li&gt; &lt;li&gt;Another list&lt;/li&gt; &lt;/ol&gt; &lt;/main&gt; &lt;/body&gt;&lt;/html&gt;</code></pre><p>I say it is "opinionated" because it does the following:</p><ul><li>Attributes are unquoted unless necessary.</li><li>Every element is logically indented.</li><li>Text content of CSS and JS is unaltered. No pretty-printing, minification, or checking for correctness.</li><li>Text content of elements <em>may</em> have extra newlines and tabs. Browsers will tend to ignore multiple whitespaces unless the CSS tells them otherwise.<ul><li>This fucks up <code>&lt;pre&gt;</code> blocks which contain markup.</li></ul></li></ul><p>It is primarily designed to make the <em>markup</em> easy to read. Because <a href="https://libraries.mit.edu/150books/2011/05/11/1985/" rel="nofollow noopener noreferrer" target="_blank">according to the experts</a>:</p><blockquote><p>A computer language is not just a way of getting a computer to perform operations but rather … it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute.</p></blockquote><p>I'm <em>fairly</em> sure this all works properly. But feel free to argue in the comments or <a href="https://gitlab.com/edent/pretty-print-html-using-php/" rel="nofollow noopener noreferrer" target="_blank">send me a pull request</a>.</p><p>Here's how it works.</p><p><strong>When is an element not an element? When it is a void!</strong></p><p>Modern HTML has the concept of "<a href="https://developer.mozilla.org/en-US/docs/Glossary/Void_element" rel="nofollow noopener noreferrer" target="_blank">Void Elements</a>". Normally, something like <code>&lt;a&gt;</code> <em>must</em> eventually be followed by a closing <code>&lt;/a&gt;</code>. But Void Elements don't need closing.</p><p>This keeps a list of elements which must not be explicitly closed.</p><pre><code>$void_elements = [ "area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr",];</code></pre><p><strong>Tabs 🆚 Space</strong></p><p>Tabs, obviously. Users can set their tab width to their personal preference and it won't get confused with semantically significant whitespace.</p><pre><code>$indent_character = "\t";</code></pre><p><strong>Setting up the DOM</strong></p><p>The new HTMLDocument should be broadly familiar to anyone who has used the previous one.</p><pre><code>$html = '&lt;html lang="en-GB"&gt;&lt;head&gt;&lt;title id="something"&gt;Test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;h1 class="top upper"&gt;Testing&lt;/h1&gt;&lt;main&gt;&lt;p&gt;Some &lt;em&gt;HTML&lt;/em&gt; and an &lt;img src="example.png" alt="Alternate Text"&gt;&lt;/p&gt;Text not in an element&lt;ol&gt;&lt;li&gt;List&lt;/li&gt;&lt;li&gt;Another list&lt;/li&gt;&lt;/ol&gt;&lt;/main&gt;&lt;/body&gt;&lt;/html&gt;&gt;'$dom = Dom\HTMLDocument::createFromString( $html, LIBXML_NOERROR, "UTF-8" );</code></pre><p>This automatically adds <code>&lt;head&gt;</code> and <code>&lt;body&gt;</code> elements. If you don't want that, use the <a href="https://www.php.net/manual/en/libxml.constants.php#constant.libxml-html-noimplied" rel="nofollow noopener noreferrer" target="_blank"><code>LIBXML_HTML_NOIMPLIED</code> flag</a>:</p><pre><code>$dom = Dom\HTMLDocument::createFromString( $html, LIBXML_NOERROR | LIBXML_HTML_NOIMPLIED, "UTF-8" );</code></pre><p><strong>To Quote or Not To Quote?</strong></p><p>Traditionally, HTML attributes needed quotes:</p><pre><code>&lt;img src="example.png" class="avatar no-border" id="user-123"&gt;</code></pre><p>Modern HTML allows those attributes to be <em>un</em>quoted as long as they don't contain <a href="https://infra.spec.whatwg.org/#ascii-whitespace" rel="nofollow noopener noreferrer" target="_blank">ASCII Whitespace</a> or <a href="https://html.spec.whatwg.org/multipage/syntax.html#unquoted" rel="nofollow noopener noreferrer" target="_blank">certain other characters</a></p><p>For example, the above becomes:</p><pre><code>&lt;img src=example.png class="avatar no-border" id=user-123&gt;</code></pre><p>This function looks for the presence of those characters:</p><pre><code>function value_unquoted( $haystack ){ // Must not contain specific characters $needles = [ // https://infra.spec.whatwg.org/#ascii-whitespace "\t", "\n", "\f", "\n", " ", // https://html.spec.whatwg.org/multipage/syntax.html#unquoted "\"", "'", "=", "&lt;", "&gt;", "`" ]; foreach ( $needles as $needle ) { if ( str_contains( $haystack, $needle ) ) { return false; } } // Must not be null if ( $haystack == null ) { return false; } return true;}</code></pre><p><strong>Re-re-re-recursion</strong></p><p>I've tried to document this as best I can.</p><p>It traverses the DOM tree, printing out correctly indented opening elements and their attributes. If there's text content, that's printed. If an element needs closing, that's printed with the appropriate indentation.</p><pre><code>function serializeHTML( $node, $treeIndex = 0, $output = ""){ global $indent_character, $preserve_internal_whitespace, $void_elements; // Manually add the doctype to start. if ( $output == "" ) { $output .= "&lt;!doctype html&gt;\n"; } if( property_exists( $node, "localName" ) ) { // This is an Element. // Get all the Attributes (id, class, src, &amp;c.). $attributes = ""; if ( property_exists($node, "attributes")) { foreach( $node-&gt;attributes as $attribute ) { $value = $attribute-&gt;nodeValue; // Only add " if the value contains specific characters. $quote = value_unquoted( $value ) ? "" : "\""; $attributes .= " {$attribute-&gt;nodeName}={$quote}{$value}{$quote}"; } } // Print the opening element and all attributes. $output .= "&lt;{$node-&gt;localName}{$attributes}&gt;"; } else if( property_exists( $node, "nodeName" ) &amp;&amp; $node-&gt;nodeName == "#comment" ) { // Comment $output .= "&lt;!-- {$node-&gt;textContent} --&gt;"; } // Increase indent. $treeIndex++; $tabStart = "\n" . str_repeat( $indent_character, $treeIndex ); $tabEnd = "\n" . str_repeat( $indent_character, $treeIndex - 1); // Does this node have children? if( property_exists( $node, "childElementCount" ) &amp;&amp; $node-&gt;childElementCount &gt; 0 ) { // Loop through the children. $i=0; while( $childNode = $node-&gt;childNodes-&gt;item( $i++ ) ) { // Is this a text node? if ($childNode-&gt;nodeType == 3 ) { // Only print output if there's no HTML inside the content. // Ignore Void Elements. if ( !str_contains( $childNode-&gt;textContent, "&lt;" ) &amp;&amp; property_exists( $childNode, "localName" ) &amp;&amp; !in_array( $childNode-&gt;localName, $void_elements ) ) { $output .= $tabStart . $childNode-&gt;textContent; } } else { $output .= $tabStart; } // Recursively indent all children. $output = serializeHTML( $childNode, $treeIndex, $output ); }; // Suffix with a "\n" and a suitable number of "\t"s. $output .= "{$tabEnd}"; } else if ( property_exists( $node, "childElementCount" ) &amp;&amp; property_exists( $node, "innerHTML" ) ) { // If there are no children and the node contains content, print the contents. $output .= $node-&gt;innerHTML; } // Close the element, unless it is a void. if( property_exists( $node, "localName" ) &amp;&amp; !in_array( $node-&gt;localName, $void_elements ) ) { $output .= "&lt;/{$node-&gt;localName}&gt;"; } // Return a string of fully indented HTML. return $output;}</code></pre><p><strong>Print it out</strong></p><p>The serialized string hardcodes the <code>&lt;!doctype html&gt;</code> - which is probably fine. The full HTML is shown with:</p><pre><code>echo serializeHTML( $dom-&gt;documentElement );</code></pre><p><strong>Next Steps</strong></p><p>Please <a href="https://gitlab.com/edent/pretty-print-html-using-php/" rel="nofollow noopener noreferrer" target="_blank">raise any issues on GitLab</a> or leave a comment.</p><p><a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://shkspr.mobi/blog/tag/howto/" target="_blank">#HowTo</a> <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://shkspr.mobi/blog/tag/html5/" target="_blank">#HTML5</a> <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://shkspr.mobi/blog/tag/php/" target="_blank">#php</a></p>
Terence Eden<p>🆕 blog! “An opinionated HTML Serializer for PHP 8.4”</p><p>A few days ago, I wrote a shitty pretty-printer for PHP 8.4's new Dom\HTMLDocument class.</p><p>I've since re-written it to be faster and more stylistically correct.</p><p>It turns this:</p><p>&lt;html lang="en-GB"&gt;&lt;head&gt;&lt;title id="something"&gt;Test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;h1 class="top upper"&gt;Testing&lt;/h1&gt;&lt;main&gt;&lt;p&gt;Some &lt;em&gt;HTML&lt;/em&gt; and an…</p><p>👀 Read more: <a href="https://shkspr.mobi/blog/2025/04/an-opinionated-html-serializer-for-php-8-4/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">shkspr.mobi/blog/2025/04/an-op</span><span class="invisible">inionated-html-serializer-for-php-8-4/</span></a><br>⸻<br><a href="https://mastodon.social/tags/HowTo" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>HowTo</span></a> <a href="https://mastodon.social/tags/HTML5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>HTML5</span></a> <a href="https://mastodon.social/tags/php" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>php</span></a></p>
tutorialseri<p>Come Realizzare una Tunica per una Fiera Rinascimentale <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/Fiera" class="mention hashtag" rel="tag">#<span>Fiera</span></a></p>
tutorialseri<p>How to Sew a Skirt with an Elastic Waistband (with Pictures) <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/a" class="mention hashtag" rel="tag">#<span>a</span></a></p>
tutorialseri<p>How to Learn Japanese <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/How" class="mention hashtag" rel="tag">#<span>How</span></a></p>
Izoate<p>Is Audacity throwing the Error 0x1x your way? You're not alone! We've got the solution you need to get back to recording and editing without interruption.</p><p><a href="https://mastodon.social/tags/izoate" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>izoate</span></a> <a href="https://mastodon.social/tags/tech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>tech</span></a> <a href="https://mastodon.social/tags/technology" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>technology</span></a> <a href="https://mastodon.social/tags/howto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>howto</span></a> <a href="https://mastodon.social/tags/audacity" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>audacity</span></a></p><p><a href="https://www.izoate.com/blog/how-to-fix-audacity-error-0x1x-a-step-by-step-guide/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">izoate.com/blog/how-to-fix-aud</span><span class="invisible">acity-error-0x1x-a-step-by-step-guide/</span></a></p>
tutorialseri<p>How to Get Six Pack Abs Fast (with Pictures) <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/Get" class="mention hashtag" rel="tag">#<span>Get</span></a></p>
tutorialseri<p>Come Pulire la Boccia di Vetro per Pesci <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/Come" class="mention hashtag" rel="tag">#<span>Come</span></a></p>
tutorialseri<p>3 Modi per Nascondere un&#39;Erezione <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/un" class="mention hashtag" rel="tag">#<span>un</span></a>&#39;Erezione</p>
Steffen Voß<p><a href="https://social.tchncs.de/tags/LibreOffice" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LibreOffice</span></a>: Kennt jemand ein Tutorial, das erklärt, wie man eine neue Vorlage aufbaut? In der normal.ott stehen ja sehr viele Formatvorlagen, die man nicht alle braucht. Kann man irgendwie bei 0 anfangen?</p><p><a href="https://social.tchncs.de/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a> <a href="https://social.tchncs.de/tags/FOSS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FOSS</span></a> <a href="https://social.tchncs.de/tags/Tutorial" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Tutorial</span></a> <a href="https://social.tchncs.de/tags/HowTo" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>HowTo</span></a> <a href="https://social.tchncs.de/tags/Followerpower" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Followerpower</span></a></p>
tutorialseri<p>How to Obtain a TWIC Card (with Pictures) <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/a" class="mention hashtag" rel="tag">#<span>a</span></a></p>
tutorialseri<p>3 Ways to Spend Quality Time with Your Boyfriend or Girlfriend <a href="https://mastodon.bida.im/tags/howto" class="mention hashtag" rel="tag">#<span>howto</span></a> <a href="https://mastodon.bida.im/tags/diy" class="mention hashtag" rel="tag">#<span>diy</span></a> <a href="https://mastodon.bida.im/tags/Girlfriend" class="mention hashtag" rel="tag">#<span>Girlfriend</span></a></p>
Tyler K. Nothing<p>I’m definitely a fan of <a href="https://hear-me.social/tags/RetroComputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>RetroComputing</span></a>, but my allegiance clearly lies with <a href="https://hear-me.social/tags/Apple" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Apple</span></a> rather than <a href="https://hear-me.social/tags/Microsoft" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Microsoft</span></a>. My old PCs run <a href="https://hear-me.social/tags/Linux" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Linux</span></a> or <a href="https://hear-me.social/tags/Haiku" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haiku</span></a>, but I get what retro <a href="https://hear-me.social/tags/Windows" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Windows</span></a> peeps want. So, if you want to install <a href="https://hear-me.social/tags/Windows98" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Windows98</span></a> quickly, here you go. <a href="https://hear-me.social/tags/tech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>tech</span></a> <a href="https://hear-me.social/tags/howto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>howto</span></a> <a href="https://hear-me.social/tags/utilities" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>utilities</span></a> <a href="https://boingboing.net/2025/03/31/how-to-install-windows-98-asap.html" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">boingboing.net/2025/03/31/how-</span><span class="invisible">to-install-windows-98-asap.html</span></a></p>