<?xml version="1.0" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Vale.Rocks Micros</title>
    <description>A collection of unhinged (yet not completely insane) ramblings.</description>
    <link>https://vale.rocks/micros</link>
    <atom:link href="https://vale.rocks/micros/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <pubDate>Fri, 09 Oct 2026 10:55:00 GMT</pubDate>
      <title>Defending Microsoft Office&apos;s Ribbon</title>
      <link>https://vale.rocks/micros/20261009-1055</link>
      <guid>https://vale.rocks/micros/20261009-1055</guid>
      <content:encoded><![CDATA[<p><a href="https://nathansnelgrove.com">Nathan Snelgrove</a> <a href="https://mastodon.social/@nathansnelgrove/117403162050975685">bemoaned Microsoft Office&#8217;s ribbon interface</a>, like many others, but I actually don&#8217;t mind it. Wait! No! Please! Don&#8217;t shoot!</p>
<p>I won&#8217;t kid that <a href="https://en.wikipedia.org/wiki/Ribbon_(user_interface)">the ribbon</a> is a perfect interface, however I think it is a perfectly cromulent one for what it needs to do. The first version of Microsoft Word for Windows was released in 1989. It didn&#8217;t have a ribbon but instead toolbars. It was followed by several further versions, all keeping the same general toolbar design:</p>
<figure class="pixelated">
<img src="https://fedi.vale.rocks/media/cfe9f93a1d134fe4453e26a2cd074654c5b6618514e4eafec486c5cc95c64b1e.png" alt="Four stacked screenshots showing the evolution of Word's toolbars. Each shows traditional drop-down menus and dense, uniform rows of small icons that are in some cases loosely grouped.">
<figcaption>Pre-ribbon toolbars. From top to bottom: Word 1.0 on Windows 3.0, Word 6.0 on Windows 3.1, Word 97 on Windows ME, and Word 2003 on Windows 7.</figcaption>
</figure><p>In 2007, however, Microsoft overhauled Office&#8217;s design to use what they called the &#8216;ribbon&#8217; &#8211; a set of tabs with toolbars harbouring buttons of various sizes, dropdown menus, selection systems, and other interactive elements grouped by relevance. We&#8217;ll ignore that they&#8217;d already been calling it the &#8216;ribbon&#8217; since the earliest releases, and that &#8216;ribbon&#8217; was a common term for such toolbars in user interface design dating back to the 1980s.</p>
<figure>
<img src="https://fedi.vale.rocks/media/1c51eb69fddf77f654c0a4867a3b5a9f91d7f2ef7719282563abc472e0a53d2c.avif" alt="Four stacked screenshots showing the evolution of Word's ribbon. The progression goes from the original Aero design through to the modern, Fluent interface. Across all four versions, the same core groups (Clipboard, Font, Paragraph, Styles, Editing) maintain their positions, with prominent features like the large 'Paste' button remaining consistent despite changing visual themes and icon styles.">
<figcaption>Ribbon menus. From top to bottom: Word 2007 and Word 2010 on Windows 7, Word 2013 on Windows 10, and Word for Microsoft 365 on Windows 11.</figcaption>
</figure><p>I know some consider it sacrilege to say so, but I think the ribbon gets a pass. The grouping of related items together in labelled sections helps with association and understanding of function, even when just an icon is shown. The ribbon also at least displays some textual labels, which is nice for usability over <em>everything</em> being an icon.</p>
<p>Being a bit taller, the ribbon also has room to significantly flatten the hierarchy by exposing items users had to go digging for in the menu bar, so feature discoverability is much improved. Contextual tabs that only appear while performing an action that necessitates them also reduce the clutter of appearing toolbars.</p>
<p>In the ribbon, more commonly used items are larger and exposed more readily, unlike the equal-sized and tiny, uniform buttons, which all looked the same and were needlessly difficult for a user to click with a mouse. This let the ribbon remain consistent while making frequented items prominent, solving a problem that Microsoft had been sloppily trying to fix via &#8216;adaptive menus&#8217;, which would hide less-frequently used menu items (while breaking spatial memory).</p>
<p>For a user only requiring basic functionality, everything they need is top-level, with everything else staying largely out of their way. For a more advanced user, everything is accessible and discoverable with minimal added navigation. A power user can hold down <kbd>Alt</kbd> for plenty of shortcuts. I much prefer this to separate &#8216;simple&#8217; and &#8216;advanced&#8217; modes, which ruin tutorials or giving instructions and usually overcorrect in either direction.</p>
<p>Office 2007 wasn&#8217;t a perfect implementation, but by Office 2010 the ribbon had been refined: some of the extraneous borders and &#8216;busyness&#8217; removed, and the ability to rearrange and customise it returned. In the versions since, it has been tweaked and improved further, and programs outside of Microsoft Office have also adopted it. The ribbon is good, and there is a reason why we&#8217;re still using it some two decades on from its introduction.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Fri, 09 Oct 2026 05:58:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20261009-0558</link>
      <guid>https://vale.rocks/micros/20261009-0558</guid>
      <content:encoded><![CDATA[<p>&#8216;Look, everything is ruined and I&#8217;ve died on you (again). Y&#8217;know what, though? If you press any key we&#8217;ll <abbr>YOLO</abbr> it. We&#8217;ll see how it goes. In fact, there is a pretty decent chance things might work again. Though you probably shouldn&#8217;t put that floppy disc in again. I think that is what cooked us.&#8217;</p>
<p><img src="https://fedi.vale.rocks/media/7ae4d1d353924f28ee7e5796774f5aea26cf8ec33cac3913c5b95c847aaa3498.png" alt="Windows 95 blue screen. &#39;An exception 0E has occurred... It may be possible to continue normally. Press any key to attempt to continue. Press CTRL+ALT+DEL to restart your computer. You will lose any unsaved information in all applications.&#39;"></p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Thu, 08 Oct 2026 12:15:00 GMT</pubDate>
      <title>AI-Authored Game Reverse-Engineering Effort Woes</title>
      <link>https://vale.rocks/micros/20261008-1215</link>
      <guid>https://vale.rocks/micros/20261008-1215</guid>
      <content:encoded><![CDATA[<p>The doors of the vault have been blown wide open now, and everyone with pocket shrapnel is shoving it in the direction of their language model of choice in pursuit of glory. Somewhere in the past few months, emulation, decompilation, static recompilation, ports, and mods of games have exploded in numbers.</p>
<p>Decompilations &#8211; where compiled is returned to source code &#8211; have always been extremely complex, time-consuming efforts. There is a reason that only early games had seen decompilations until recently. Static recompilation &#8211; where compiled executables are transformed &#8211; is a slightly simpler effort, though still very difficult. Porting games between systems and modding them are further complex undertakings, varying in difficulty depending on target and scope.</p>
<p>Emulators, decompilations and recompilations specifically are <em>huge</em> feats. Some of the most impressive development feats I can think of. At least, they are under human effort. In recent months, however, the barrier has dropped substantially. In particular, there have perhaps been more recompilations in recent months than in recent years combined. It is hard to fathom the speed of development.</p>
<p>Other than the typical AI woes, one thing that is worrying with decompilations particularly is that there is undoubtedly leaked code in <abbr>LLM</abbr> training sets. What does this mean for the legality of these decompilations? They can&#8217;t reasonably be considered &#8216;clean room&#8217;.</p>
<p>As fantastic as this all is, I do worry about the repercussions. With the barrier lowered so much, how will game companies react? Will they fast-track a move to streaming-only distribution to stop binaries from being used for reverse engineering work and from people quickly running games on their own terms? I worry this will speed up the death of personal computing as companies turn it into a service.</p>
<p>I fear this threat outside of gaming, too. <a href="https://getartcraft.com/apps">ArtCraft</a> is an AI-generated suite cloning Adobe&#8217;s Creative Cloud. Lots of other software is seeing similar AI-generated clones or decompilations, too. This is effecting software by huge organisations with a lot of sway in a very poorly regulated climate. How are they going to act, and will users outside of the informed, technical few push back? I doubt it.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Thu, 08 Oct 2026 03:48:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20261008-0348</link>
      <guid>https://vale.rocks/micros/20261008-0348</guid>
      <content:encoded><![CDATA[<p>The amount of comments on recent videos by <a href="https://www.kevinpowell.co">Kevin Powell</a> saying &#8216;<abbr>CSS</abbr> is dead&#8217;, or &#8216;Surely Claude can just do it&#8217;, or &#8216;Opus could one-shot it&#8217;, or other permutations of the same thing is so disappointing.</p>
<p>What weirds me out most about these pro-AI comments are the people seemingly celebrating skill erosion. It seems forced, and I&#8217;m not sure what would compel someone to do so. Are they being paid by AI companies? Are they just trolls? Is this astroturfing?</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Wed, 07 Oct 2026 12:45:00 GMT</pubDate>
      <title>Colour Models With Focus on Print Colour Detail</title>
      <link>https://vale.rocks/micros/20261007-1245</link>
      <guid>https://vale.rocks/micros/20261007-1245</guid>
      <content:encoded><![CDATA[<p>There are two colour models: additive, and subtractive. Screens use additive colour, where red, green, and blue (<abbr>RGB</abbr>) are <em>added</em> to each other to create new colours. Print uses subtractive colour, where cyan, magenta, and yellow (<abbr>CMY</abbr>) <em>subtract</em> from white light.</p>
<p>Additive relies on light being emitted from a surface, while subtractive relies on light reflecting off a light surface (like paper), which results in it having a much smaller gamut due to limits on how much light can be reflected. Because it can&#8217;t reproduce every colour, spot colours (pre-mixed single-colour inks) such as those from <a href="https://www.pantone.com">Pantone</a> are commonly used.</p>
<figure>
<svg viewBox="0 0 195 80" style="isolation: isolate">
    <desc>Two sets of three overlapping circles. The left has red, green, and blue circles, making yellow where green and red meet, magenta where red and blue meet, cyan where green and blue meet, and white in the centre. The right has cyan, magenta, and yellow circles, making blue where magenta and cyan meet, green where cyan and yellow meet, red where magenta and yellow meet, and black in the centre.</desc>
	<g transform="translate(-1 -57)">
		<circle cx="45.1" cy="83.8" r="26.8" fill="#f00" style="mix-blend-mode: screen" />
		<circle cx="60.9" cy="110.3" r="26.8" fill="#00f" style="mix-blend-mode: screen" />
		<circle cx="29.2" cy="110.3" r="26.8" fill="#0f0" style="mix-blend-mode: screen" />
	</g>
	<g transform="translate(107 -57)">
		<circle cx="45.1" cy="83.8" r="26.8" fill="#0ff" style="mix-blend-mode: multiply" />
		<circle cx="60.9" cy="110.3" r="26.8" fill="#ff0" style="mix-blend-mode: multiply" />
		<circle cx="29.2" cy="110.3" r="26.8" fill="#f0f" style="mix-blend-mode: multiply" />
	</g>
</svg>
<figcaption>Additive on the left, subtractive on the right.</figcaption>
</figure><p>Note that the combinations of two colours in <abbr>RGB</abbr> provide <abbr>CMY</abbr>, and vice versa. Looking at subtractive, one can observe that:</p>
<ul>
<li>Cyan absorbs red light (reflects green + blue).</li>
<li>Magenta absorbs green light (reflects red + blue).</li>
<li>Yellow absorbs blue light (reflects red + green).</li>
</ul>
<p>Print actually uses <abbr>CMYK</abbr>, the K representing &#8216;Key&#8217;. Though a <abbr>CMY</abbr> alone can create dark colours, it isn&#8217;t optimal. The colour is often more of a dark brown than a full black, and printing with cyan, magenta, and yellow usually leads to less fine detail, leaving text fuzzy. For this reason, when printing black, there are three primary different methods used. Standard black (also called flat black or single-colour black) is just straight black ink, which is good for detail such as for text, but doesn&#8217;t quite reach pitch darkness. Rich black uses <abbr>CMYK</abbr>, meaning it uses those <abbr>CMY</abbr> colours paired with black (or &#8216;key&#8217;) ink to achieve a darker, more saturated black. Due to multiple layers of ink, some detail is lost, though.</p>
<p>Even darker is registration black, which is 100% of each cyan, magenta, yellow, and key for the darkest black possible. This does mean a lot of ink (400%) is used, however, which often leads to ink bleeding and smudging, longer drying, and warping of oversaturated paper stock. It is worth keeping in mind Total Ink Coverage (<abbr>TIC</abbr>) / Total Area Coverage (<abbr>TAC</abbr>), which is typically capped at ~240% for uncoated and ~300% for coated. For this reason, it is usually reserved for crop marks, trim lines, and such.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Sat, 03 Oct 2026 12:40:00 GMT</pubDate>
      <title>DDD Perth 2026</title>
      <link>https://vale.rocks/micros/20261003-1240</link>
      <guid>https://vale.rocks/micros/20261003-1240</guid>
      <content:encoded><![CDATA[<p>I attended DDD Perth for <a href="https://vale.rocks/micros/20250921-0318">the second time</a> today. This time, not just as an attendee, but also as a first-time speaker!</p>
<p>I caught a few talks, but there were two standouts of those I saw:</p>
<ul>
<li>Matthew Pierce presented <a href="https://dddperth.com/agenda/2026/talk/1275355">Rethinking Web: Can we do more with less?</a> about web platform features that can be embraced in place of frameworks, abstractions, and libraries,</li>
<li>Sierra McDowell presented <a href="https://dddperth.com/agenda/2026/talk/1274888">The pursuit of spending $0 - building a zero-cost cloud data platform</a> which was a fun, free-tier-exploiting-tale.</li>
</ul>
<p>One of the issues with a multi-track conference is that there are too many brilliant talks going on simultaneously, and one can&#8217;t be in five places at once!</p>
<p>I made a point to be very outgoing and talked to so many people. A few people recognised me from my work and name, which remains an extremely surreal experience, and I got to have interesting hallway chats with such a variety of folks with different skills.</p>
<p>My talk was titled &#8216;Newly Acquired Powers of the Web Platform&#8217;, and I ran through a handful of fantastic new features of the web platform. <abbr title="HyperText Markup Language">HTML</abbr> and <abbr title="Cascading Style Sheets">CSS</abbr> have seen so many new additions in recent years, so I ran through <code>text-wrap: balance</code>, <code>flex-wrap: balance</code>, <code>corner-shape</code>, <code>text-box</code>, sibling functions, <code>color-mix()</code>, <code>contrast-color()</code>, invoker commands, scroll-driven and scroll-triggered animations, and view transitions, while cramming mentions of a few more additions in too. Jam-packed! I&#8217;d have included more if I wasn&#8217;t already on the edge of my time limit.</p>
<p><img src="https://fedi.vale.rocks/media/cfb2d32d70ced13769d874f9351ccc99d5a7e2bbdef9ab9346061309e054b3c6.avif" alt="A lanyard with a card reading &#39;Declan Chidlow. Speaker.&#39;. Beside it is a sticker with an illustration of a person with a microphone and the text &#39;I spoke @DDDPerth&#39;."></p>
<p>I had some nerves, though they were mostly pertaining to if my laptop and custom web-based slide deck system would work fine on the <abbr title="Audio Visual">AV</abbr> system of the venue. Rather than replicate the output of the code I was talking about in PowerPoint or similar, it felt proper to use the web directly. Thankfully, everything ran smoothly, and I managed through the presentation without issue. I was late out at the speaker&#8217;s dinner at the venue-adjacent pub last night and early rising to get prepared and to the conference, so I only got three and a half hours in the early hours of this morning. Perhaps not optimal, but I managed.</p>
<p>The industry is in a shaky state at the moment, so to have a brilliant community conference with 1000-odd attendees like DDD Perth is a welcome sight. I&#8217;m feeling very inspired. My talk is recorded and will be published online at a later date.</p>
<p>All my many thanks go to the volunteers, organisers, other speakers, sponsors, and everyone else that made the event possible.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Fri, 02 Oct 2026 16:51:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20261002-1651</link>
      <guid>https://vale.rocks/micros/20261002-1651</guid>
      <content:encoded><![CDATA[<p>Whenever I use a semicolon I feel like a pretentious twat.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Thu, 01 Oct 2026 03:22:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20261001-0322</link>
      <guid>https://vale.rocks/micros/20261001-0322</guid>
      <content:encoded><![CDATA[<p>Looking across the Swan River to the venue I&#8217;ll be speaking at feels like the scene in a video game where the title card comes up introducing the boss battle.</p>
<p>On Saturday I&#8217;ll be on stage giving my first conference talk across the Matagarup Bridge at Optus Stadium.</p>
<p><img src="https://fedi.vale.rocks/media/8cb588b7645012ac4b8db2a2dd2ce9477a617435e41726ca20c4910638412df6.avif" alt="A bright, illuminated bridge that coils into the sky in front of a massive stadium at night. It is reflected in a river. In the foreground is me beside my unicycle."></p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Wed, 30 Sep 2026 09:34:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260930-0934</link>
      <guid>https://vale.rocks/micros/20260930-0934</guid>
      <content:encoded><![CDATA[<p>Welp, development industry is fucked. What is everyone&#8217;s plan B?</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Wed, 30 Sep 2026 05:00:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260930-0500</link>
      <guid>https://vale.rocks/micros/20260930-0500</guid>
      <content:encoded><![CDATA[<p>There&#8217;s nothing more we can do. It&#8217;s in the <abbr title="Continuous Integration">CI</abbr>&#8217;s hands now.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Mon, 28 Sep 2026 05:15:00 GMT</pubDate>
      <title>A CSS Pixel Isn&apos;t a True Pixel</title>
      <link>https://vale.rocks/micros/20260928-0515</link>
      <guid>https://vale.rocks/micros/20260928-0515</guid>
      <content:encoded><![CDATA[<p>A &#8216;pixel&#8217; in <abbr>CSS</abbr> is <em>not</em> a true pixel as makes up a display.</p>
<p>A pixel in <abbr>CSS</abbr> is quite a complex unit, as is explained in <a href="https://www.w3.org/TR/css-values-3/#absolute-lengths"><abbr>CSS</abbr> Values and Units Module Level 3</a>. A <abbr>CSS</abbr> pixel is relative to the reference pixel:</p>
<blockquote>
<p>The <strong>reference pixel</strong> is the visual angle of one pixel on a device with a <a href="https://www.w3.org/TR/css-values-3/#device-pixel">device pixel</a> density of 96dpi and a distance from the reader of an arm&#8217;s length. For a nominal arm&#8217;s length of 28 inches, the visual angle is therefore about 0.0213 degrees. For reading at arm&#8217;s length, 1px thus corresponds to about 0.26 mm (1/96 inch).</p>
</blockquote>
<p>As far as is needed for development in most cases, a <abbr>CSS</abbr> pixel can just be understood to vary a bit between displays. As printed output, of course, doesn&#8217;t have pixels, a <abbr>CSS</abbr> pixel in print represents 1⁄96<sup>th</sup> of an inch.</p>
<p>Using <abbr>ECMAS</abbr>cript&#8217;s <code>devicePixelRatio</code>, the size of a pixel on your display relative to a <abbr>CSS</abbr> pixel is <span id="pixel-ratio">unknown</span>. Note that this figure may be unreliable if zoomed in Safari.</p>
<script>
document.getElementById('pixel-ratio').textContent = window.devicePixelRatio;
</script><p>Using actual pixels has many issues. One of the most blatant is that many websites would slowly shrink as display technology improves and pixels themselves become steadily smaller. It&#8217;d also work oddly with zooming (do you scale a pixel, or leave as is?). Another is that it&#8217;d make sites much harder to author and would make responsive design much harder.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Mon, 28 Sep 2026 04:39:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260928-0439</link>
      <guid>https://vale.rocks/micros/20260928-0439</guid>
      <content:encoded><![CDATA[<p>My hammer went rogue and started smashing people&#8217;s heads in! There was nothing I could do. I tried to stop it, but my arm kept swinging it at people. It isn&#8217;t my fault! It is the hammer&#8217;s. This is very dangerous. Someone should regulate hammers.</p>
<p>(This is a post about AI safety and liability.)</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Fri, 25 Sep 2026 09:23:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260925-0923</link>
      <guid>https://vale.rocks/micros/20260925-0923</guid>
      <content:encoded><![CDATA[<p>Over a decade ago I listed myself in my father&#8217;s phone as &#8216;Supreme Overlord&#8217;. To this day he hasn&#8217;t changed it, and will still say &#8216;Hey Siri, call Supreme Overlord&#8217; to reach me. Gold.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Tue, 22 Sep 2026 14:18:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260922-1418</link>
      <guid>https://vale.rocks/micros/20260922-1418</guid>
      <content:encoded><![CDATA[<p>Unless Halo under Activision reviews extraordinarily well and is free of predatory monetisation strategies, I probably won&#8217;t play any future games in the series.</p>
<p>Despite my love for the games, this is likely the killing blow for any excitement I had for future entries. Dreadful.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Mon, 21 Sep 2026 04:34:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260921-0434</link>
      <guid>https://vale.rocks/micros/20260921-0434</guid>
      <content:encoded><![CDATA[<p>If ever you search for a song or musical artist on Bluesky, you&#8217;re likely to find the results flooded with automated accounts which post whenever a song is played by a specific radio station.</p>
<p>I find this noise rather annoying, so have compiled this moderation list for easily muting them:</p>
<p><a href="https://bsky.app/profile/vale.rocks/lists/3mvyoavalic2m">https://bsky.app/profile/vale.rocks/lists/3mvyoavalic2m</a></p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Fri, 18 Sep 2026 05:18:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260918-0518</link>
      <guid>https://vale.rocks/micros/20260918-0518</guid>
      <content:encoded><![CDATA[<p>Rather than the sound of water trickling, which indicates a typical leak, software memory leaks can be identified by the hiss of a fan.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Thu, 17 Sep 2026 03:50:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260917-0350</link>
      <guid>https://vale.rocks/micros/20260917-0350</guid>
      <content:encoded><![CDATA[<p>I love the <abbr>CSS</abbr> spec&#8217;s take on supporting text-decoration: blink.</p>
<p>It may as well say,&#8217;Support it, don&#8217;t support it, nobody here gives a shit. Probably don&#8217;t make stuff blink though. We all know what a mess <code>&lt;blink&gt;</code> was.&#8217;</p>
<p><em>(Even before deprecation, none of the major browsers supported the value.)</em></p>
<p><small>The relevant bit of <abbr>CSS</abbr> Text Decoration Module Level 4: <a href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-line-property">https://drafts.csswg.org/css-text-decor-4/#text-decoration-line-property</a></small></p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Wed, 16 Sep 2026 04:06:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260916-0406</link>
      <guid>https://vale.rocks/micros/20260916-0406</guid>
      <content:encoded><![CDATA[<p>I&#8217;ve had quite a number of people tell me to stop bringing up &#8216;politics&#8217; in my writing. For example, when I&#8217;ve decried Elon Musk and David Heinemeier Hansson (<abbr>DHH</abbr>) when mentioning X (formerly Twitter) and Omarchy, respectively.</p>
<p>Plainly, no. I will continue to mention injustices and wrongs. Tech is political &#8211; especially now.</p>
<p>The only people that are helped by staying quiet about bigotry, racism, fascism, xenophobia, etc, are the bigots, racists, fascists, and xenophobes.</p>
<p>I&#8217;ll call it out where I see it, and I urge everyone else to do the same.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Tue, 15 Sep 2026 01:35:00 GMT</pubDate>
      <title>CSS-Tricks in Limbo</title>
      <link>https://vale.rocks/micros/20260915-0135</link>
      <guid>https://vale.rocks/micros/20260915-0135</guid>
      <content:encoded><![CDATA[<p>I&#8217;m sad to say that <a href="https://css-tricks.com">CSS-Tricks</a> is stuck in limbo again. The site was acquired by Digital Ocean in 2022, and it continued to run under their ownership until February of 2023, when DigitalOcean fired the people working on it. The site <a href="https://chriscoyier.net/2024/02/28/where-im-at-on-the-whole-css-tricks-thing/">stayed latent for a year</a> before DigitalOcean re-hired lead editor Geoff Graham in June of 2024, who got the ship sailing again.</p>
<p>Now, <a href="https://geoffgraham.me/why-css-tricks-has-been-quiet/">CSS-Tricks sits inactive again</a>. Its future is unclear, because there hasn&#8217;t been any communication. DigitalOcean largely just went silent. DigitalOcean is a big company, and it can be expected that things get missed, especially with staff turnover. However, management is a small part of a larger picture.</p>
<p>Only a few days ago, DigitalOcean pledged a $3,000,000 <abbr>USD</abbr> donation to Omarchy &#8211; a set of scripts and configurations atop Arch Linux and a range of other open-source software (much of which struggles greatly for funding). A set of scripts and configurations which are led by David Heinemeier Hansson (<abbr>DHH</abbr>), previously of Ruby on Rails fame, but now of Omarchy notoriety and <a href="https://davidcel.is/articles/the-dhh-problem">far-right</a>, <a href="https://jakelazaroff.com/words/dhh-is-way-worse-than-i-thought/">racist infamy</a>.</p>
<p>CSS-Tricks being ignored isn&#8217;t a matter of effort or time; it is a matter of care. As David Heinemeier Hansson <a href="https://omarchy.org/news/2026/09/digitalocean-joins-as-founding-corporate-patron/#:~:text=But,everything" rel="nofollow">wrote announcing DigitalOcean&#8217;s funding</a>:</p>
<blockquote>
<p>But the part of this patronage that really made me smile was how quickly it all came together. I reached out to Paddy Srinivasan, DigitalOcean’s <abbr>CEO</abbr>, on X on Wednesday. We had a call that same night. I sent a proposal on Saturday. By Sunday, we’d finalized everything.</p>
</blockquote>
<p>I know Geoff has been trying to raise CSS-Tricks&#8217; predicament for <em>months</em>, to no avail.</p>
<p>Atop of this, DigitalOcean has ceased the monthly $50 payments they <a href="https://social.treehouse.systems/@barthalion/117241534134006167">previously gave to <abbr>GNOME</abbr> and Flathub infrastructure</a>. Apparently it is a more pressing matter for them to donate to a collection of scripts and configuration files than to contribute to the projects they&#8217;re built upon or to pay the writers and editors of their own publication.</p>
<p>Yes, I&#8217;ve got skin in the game as someone who has written for the publication, but I&#8217;ve got more skin in the game as someone who wishes for a thriving ecosystem and who wants to read the exemplary work CSS-Tricks is known for publishing. There are very few quality publications about the web left, and it would be a major blow to lose another.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Mon, 14 Sep 2026 14:23:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260914-1423</link>
      <guid>https://vale.rocks/micros/20260914-1423</guid>
      <content:encoded><![CDATA[<p>I struggle tremendously to read &#8216;Yahoo!&#8217; without hearing the epitomous yodel echo forth from the crevices of my fracturing mind.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Sun, 13 Sep 2026 08:12:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260913-0812</link>
      <guid>https://vale.rocks/micros/20260913-0812</guid>
      <content:encoded><![CDATA[<p>I&#8217;m not sure if I spent the last week testing Internet Explorer, or if Internet Explorer spent the last week testing me.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Fri, 11 Sep 2026 12:27:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260911-1227</link>
      <guid>https://vale.rocks/micros/20260911-1227</guid>
      <content:encoded><![CDATA[<p>Trying to surf the web while the spider who spun it injects digestive fluids into me and I become a slurry.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Fri, 11 Sep 2026 05:10:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260911-0510</link>
      <guid>https://vale.rocks/micros/20260911-0510</guid>
      <content:encoded><![CDATA[<blockquote>
<p>The towers are gone now, reduced to bloody rubble, along with all hopes for Peace in Our Time, in the United States or any other country. Make no mistake about it: We are At War now &#8212; with somebody &#8212; and we will stay At War with that mysterious Enemy for the rest of our lives.</p>
</blockquote>
<p>From <em><a href="https://www.espn.com/espn/page2/story?id=1250751">Fear & Loathing in America</a></em> by Hunter S Thompson. Published September 12, 2001.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Thu, 10 Sep 2026 02:20:00 GMT</pubDate>
      <title>Access Internet Explorer 11 on Windows 11</title>
      <link>https://vale.rocks/micros/20260910-0220</link>
      <guid>https://vale.rocks/micros/20260910-0220</guid>
      <content:encoded><![CDATA[<p>Sometimes you just need Internet Explorer 11. I won&#8217;t question why you need it, but here is how you can open it natively in Windows 11. If you try to execute <code>iexplore.exe</code> from <code>C:\Program Files\Internet Explorer</code> or via Run, Windows will instead open Microsoft Edge. There used to be various links around Windows&#8217; interface which hadn&#8217;t been updated to Edge and thus could be used as a gateway. Unfortunately they&#8217;re almost all removed now so some slightly more complex methods are required.</p>
<p>The easiest method is to use this short PowerShell command: <code>$ie = New-Object -ComObject InternetExplorer.Application; $ie.Visible = $true</code>. Run it in PowerShell and Internet Explorer will open.</p>
<p>Another good approach is to create a Visual Basic Script (a file with the extension <code>.vbs</code>) with the below contents. When the script is run, Internet Explorer will open.</p>
<pre><code class="language-vbscript"><span class="hljs-built_in">CreateObject</span>(<span class="hljs-string">&quot;InternetExplorer.Application&quot;</span>).Visible = <span class="hljs-literal">True</span>
</code></pre><p>In most cases you&#8217;re best to use Microsoft Edge&#8217;s <a href="https://support.microsoft.com/en-us/edge/internet-explorer-mode-in-microsoft-edge">Internet Explorer mode</a>.</p>
<p><strong>Accurate as of Windows 11 version 25H2.</strong></p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Wed, 09 Sep 2026 06:31:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260909-0631</link>
      <guid>https://vale.rocks/micros/20260909-0631</guid>
      <content:encoded><![CDATA[<p>They&#8217;re trying to pry me away from the keyboard. They&#8217;re saying something about the browser going supercritical. They&#8217;re saying that the rendering engine is melting down. They&#8217;re yelling &#8216;Please! Please stop. Stop aligning so many divs!&#8217;. They’re watching as my computer begins to glow a hot red.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Tue, 08 Sep 2026 14:46:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260908-1446</link>
      <guid>https://vale.rocks/micros/20260908-1446</guid>
      <content:encoded><![CDATA[<p><del>Not my monkeys, not my circus.</del></p>
<p>Not my divs, not my browser <abbr title="Document Object Model">DOM</abbr>.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Tue, 08 Sep 2026 13:15:00 GMT</pubDate>
      <title>Just width=device-width Is Preferable</title>
      <link>https://vale.rocks/micros/20260908-1315</link>
      <guid>https://vale.rocks/micros/20260908-1315</guid>
      <content:encoded><![CDATA[<p>In regard to my assertion that <a href="https://vale.rocks/micros/20260902-1350"><code>initial-scale=1</code> is no longer a necessary default</a>, some people complained that in its absence a page which would otherwise horizontally extend beyond the viewport will be scaled so that the document&#8217;s full width fits the width of the viewport.</p>
<p>If <code>initial-scale=1</code> comes into play, then your site is already broken. With or without <code>initial-scale=1</code>, you&#8217;re failing multiple <abbr>WCAG</abbr> criterion. Most obviously, 1.4.10 Reflow. You <em>need</em> to fix this problem urgently. Regardless of how you feel about positive fallbacks in behaviour, content overextending horizontally requires fixing. It is also a major usability failing for all users either way. With that in mind, I additionally think that omitting <code>initial-scale=1</code> is preferable in the case that an overflow does reach production (which, as we have established, <em>it mustn&#8217;t</em>) because:</p>
<ol>
<li><p>It makes horizontal overflows <em>much</em> more obvious and thus more likely to be noticed and fixed. Including <code>initial-scale=1</code> to mask the issue disincentivises fixing the actual root cause. Beyond being more obvious to people, it is also more likely to be caught by visual regression testing.</p>
</li>
<li><p>With <code>initial-scale=1</code> you risk having content off-screen which cannot be focused by a keyboard, which fails under <abbr>WCAG</abbr> 2.1.1 Keyboard.</p>
</li>
<li><p>It provides a better user experience. Horizontal scrolling in general (such as is required by <code>initial-scale=1</code>) is an uncommon interface pattern, and horizontal overflows are even more uncommon due to being unintended. A user is extremely unlikely to think to scroll horizontally to see the rest of a document.</p>
<p>However, what is a common pattern is zooming in and panning. People will zoom in and pan around images, <abbr>PDF</abbr>s, and the likes. It is a familiar pattern, unlike scrolling horizontally on a page that otherwise seems scaled to the device. There is even great precedent for it with documents on the web, given that desktop-only sites are zoomed in upon and panned around in this way.</p>
</li>
<li><p>Without it set, content isn&#8217;t arbitrarily hidden. When content on a page horizontally overflows, you cannot see what has overflown until you act to scroll over to it or zoom out to see the full picture. Without <code>initial-scale=1</code> the user is shown the full content with the ability to zoom in on what they were actually trying to access.</p>
</li>
<li><p>People often pair <code>initial-scale=1</code> with <code>overflow-x: hidden</code> in their <abbr>CSS</abbr>, which makes any content overflowing completely unreachable. Not having it as a default avoids walking into this trap.</p>
</li>
</ol>
<p>Regardless, <code>initial-scale=1</code> doesn&#8217;t make sense to include as a default for a case that should never reach production and which is an obvious issue. Prior to the iPhone bug that popularised <code>initial-scale=1</code> it wasn&#8217;t needed. Now it is fixed, it isn&#8217;t needed as a default. If one does decide they really want to include it, then they can, but that should be a conscious choice and not the result of tradition.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Mon, 07 Sep 2026 13:21:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260907-1321</link>
      <guid>https://vale.rocks/micros/20260907-1321</guid>
      <content:encoded><![CDATA[<p>The year is 1996. You’re being inconvenienced by bespoke Internet Explorer behaviour.</p>
<p>The year is 2026. You’re somehow still being inconvenienced by bespoke Internet Explorer behaviour.</p>
<p>The year is 2032. This is the earliest year that Internet Explorer could possibly lose support entirely. In your gut you know it&#8217;ll probably live for longer somehow.</p>
<p>The year is 3794. You’re long dead, yet somehow Internet Explorer still torments you.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Mon, 07 Sep 2026 01:30:00 GMT</pubDate>
      <title>Hate For AI Shouldn&apos;t Overpower Love For Humans</title>
      <link>https://vale.rocks/micros/20260907-0130</link>
      <guid>https://vale.rocks/micros/20260907-0130</guid>
      <content:encoded><![CDATA[<p>With increasing frequency and disruption, I&#8217;m seeing people hide sites behind bot protections or kill them altogether just to prevent the content on them from being used for AI training. I generally <a href="https://vale.rocks/micros/20260906-1042">think this is bad</a>.</p>
<p>I can understand such a decision from the perspective of scrapers running up financial costs. Sure, you shouldn&#8217;t have to pay so that some company that doesn&#8217;t care about you in the slightest can overwhelm your website. Depending on your hosting and structure, it could be a significant financial burden. However, when people put up aggressive blocks or take down their site because of ideological disagreements with scraping or AI in general, it feels misguided.</p>
<p>Piling up anti-bot protections does very little to stop determined bots. Even less determined bots are often able to bypass protections, as they rarely hold up for long. Aggressive scraping operations will spin up full versions of Chrome from residential IP addresses and will scrape your site, even if it takes a while. Most protections are security theatre. In many cases protection solutions are directly associated with AI companies &#8211; like a protection racket.</p>
<p>Most protections do harm actual people, though. Having their phone come to a halt while it heats up to solve the complex maths of <a href="https://anubis.techaro.lol">Anubis</a>, or having to perform some asinine <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr> task that likely isn&#8217;t completable for many people with accessibility considerations, or getting held up by a few seconds of delay when loading up a page. At the scale of AI systems, they can automate bypasses for most of these protections. It is individual people that are being inconvenienced.</p>
<p>I&#8217;ve heard the argument, &#8216;But at least I&#8217;m inconveniencing the scrapers or making them do more work&#8217;. Think about the financial figures flung about the AI space. To scrape sites costs a pittance and doesn&#8217;t inconvenience AI companies at all. All that is necessary is for your content to be scraped once, and it is in the training data forever after. It was likely scraped before you even considered blocking them, and it only takes one slip-up of even a hypothetical perfect protection for a site to end up in a data set.</p>
<p>I get the anger and feelings of violation. I agree that it isn&#8217;t right for scrapers to act as they do and for companies to exploit the openness of the web. However, at the point where we inflict more damage to humans than we do to AI, what is the point? Is our primary goal to do good for ourselves and other people on this planet, or to make weak attempts at inconveniencing AI? Why are you blocking scrapers? Is it to protect human creativity or to protect humans from your creativity? To reduce human expression in the face of automation is to concede to the machine.</p>
<p>I&#8217;m sure this sounds, to an extent, like I&#8217;m trying to be an AI apologist or that I&#8217;m saying you should give in to AI. If this is what it sounds like, then you&#8217;re misinterpreting me. My view is just that we should, as people, prioritise expressing ourselves and doing good for other people rather than harming people to spite AI.</p>
]]></content:encoded>
    </item>
    <item>
      <pubDate>Sun, 06 Sep 2026 10:42:00 GMT</pubDate>
      <link>https://vale.rocks/micros/20260906-1042</link>
      <guid>https://vale.rocks/micros/20260906-1042</guid>
      <content:encoded><![CDATA[<p>It makes me sad when people stop maintaining personal websites for the reason that AI will scrape it.</p>
<p>Bad people might visit your site but that has never been a reason to stop. Make great stuff and share it.</p>
<p>Killing your site hurts people much more that it hurts AI, and keeping it benefits people much more than it benefits AI.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>