<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom" 
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <atom:link href="https://shapeof.com/microrss.xml" rel="self" type="application/rss+xml" />
    <title>The Shape of Everything Micro Blog</title>
    <link>https://shapeof.com/</link>
    <pubDate>Tue, 24 Mar 2026 19:10:17 GMT</pubDate>
    <description>A website mostly about Mac stuff, written by Gus Mueller</description>
  <item>
    <title>Brittany Goris, Professional Dirtbag, Climbing in Rocklands</title>
    <link>https://shapeof.com/archives/2025/8/brittany_goris_in_rocklands.html</link>
    <description>&lt;!--
Brittany Goris: [Something in Between (aka Rocklands Crack Smash)](https://brittanygoris.com/2025/07/08/something-in-between-aka-rocklands-crack-smash/)--&gt;

&lt;blockquote&gt;
&lt;p&gt;My mind went back to a statement from a street performer in Cape Town the previous day: “Check this out, I’m about to be amazing!” At the time I had joked about using his catch phrase for my climbing, but I hadn’t really meant it because this whole time I’d been so focused on the opposite: staying humble, no egos allowed.&lt;/p&gt;
&lt;p&gt;What if that was the kind of energy I needed right now though? What if there was something in between my meek humility on this trip and the toxic rage from my youth? The paradigm shifted a little more. Why not try a little reckless egotism? It’s just a form of belief, after all, and didn’t that stranger’s bravado mirror the exact kind of belief I’d once wielded like a weapon? Maybe he had stumbled across the alchemical gold without even realizing it.&lt;/p&gt;
&lt;p&gt;“I’m about to be amazing,” a shy voice whispered in my head as I pulled off the ground and the world around me faded away, leaving just the void of a perfect crack stretching out before me into the abyss.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I love reading Goris&amp;#39;s posts on climbing. She’s constantly traveling to amazing places and then writes about them in a way that makes me super envious. Why can’t I write like this?&lt;/p&gt;
&lt;p&gt;Even if you&amp;#39;re not a climber, you&amp;#39;ll probably find her writeup engaging. And if you are a climber, you&amp;#39;ll want to read it because you&amp;#39;ll certainly learn a thing or two.&lt;/p&gt;
</description>
    <guid>https://shapeof.com/archives/2025/8/brittany_goris_in_rocklands.html</guid>
    <pubDate>Thu, 21 Aug 2025 17:20:24 GMT</pubDate>
  </item>
  <item>
    <title>Emil Kowalski: You Don't Need Animations</title>
    <link>https://shapeof.com/archives/2025/9/emil_kowalski_you_dont_need_animations.html</link>
    <description>&lt;blockquote&gt;
&lt;p&gt;Before you start animating, ask yourself: what’s the purpose of this animation?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;…&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Morphing of the feedback component below helps make the experience more unique and memorable. This works as long as the user will rarely interact with it. It’ll then become a pleasant surprise, rather than a daily annoyance.&lt;/p&gt;
&lt;p&gt;Used multiple times a day, this component would quickly become irritating. The initial delight would fade and the animation would slow users down.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is one things that drives me a little nuts about the Apple Watch. The animations feel incredibly sluggish and notifications are slow to dismiss. It usually happens when I&amp;#39;m about to start a workout and inevitably I end up putting the UI in a state that I don&amp;#39;t want.&lt;/p&gt;
</description>
    <guid>https://shapeof.com/archives/2025/9/emil_kowalski_you_dont_need_animations.html</guid>
    <pubDate>Fri, 05 Sep 2025 19:09:59 GMT</pubDate>
  </item>
  <item>
    <title>Mario Guzman's Mac Layout Guidelines</title>
    <link>https://shapeof.com/archives/2025/9/mario_guzman_layout_guidelines.html</link>
    <description>&lt;blockquote&gt;
&lt;p&gt;The following sections are general guidelines that describe fundamental Mac layout principles of center equalization, text and control alignment, appropriate use of white space, and visual balance. Following these guidelines will help you create functional and aesthetically pleasing windows that are easy for Mac users to understand and use.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    <guid>https://shapeof.com/archives/2025/9/mario_guzman_layout_guidelines.html</guid>
    <pubDate>Fri, 05 Sep 2025 20:04:08 GMT</pubDate>
  </item>
  <item>
    <title>The many, many, many JavaScript runtimes of the last decade</title>
    <link>https://shapeof.com/archives/2025/9/the_many_many_many_javascript_runtimes_of_the_last_decade.html</link>
    <description>&lt;p&gt;From &amp;quot;Whatever, Jamie&amp;quot; (a confusing newsletter name if you’re not familiar with it):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This last decade has seen an inundation of new JavaScript runtimes (and engines in equal measure), enabling us to run JavaScript in all manner of contexts with precise fitness for task. Through these, we&amp;#39;ve seen the language spread to the Cloud, the edge, Smart TVs, mobile devices, and even microcontrollers.&lt;/p&gt;
&lt;p&gt;In this article, we&amp;#39;ll explore what&amp;#39;s driving this diversity, and why no one runtime or engine suffices for all purposes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I found this whole post pretty amazing. I considered myself well versed in the various JavaScript engines out there, but it turns out there a lot more than I knew of.&lt;/p&gt;
</description>
    <guid>https://shapeof.com/archives/2025/9/the_many_many_many_javascript_runtimes_of_the_last_decade.html</guid>
    <pubDate>Mon, 15 Sep 2025 17:51:47 GMT</pubDate>
  </item>
  <item>
    <title>Creating a Python-Based HTML5 Parser With Agents</title>
    <link>https://shapeof.com/archives/2025/12/creating_a_python-based_html5_parser_with_agents.html</link>
    <description>&lt;p&gt;&lt;a href="https://friendlybit.com/python/writing-justhtml-with-coding-agents/"&gt;How I wrote JustHTML using coding agents&lt;/a&gt;, a post by Emil Stenström:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I recently released &lt;a href="https://github.com/EmilStenstrom/justhtml"&gt;JustHTML&lt;/a&gt;, a python-based HTML5 parser. It passes 100% of the html5lib test suite, has zero dependencies, and includes a CSS selector query API. Writing it taught me a lot about how to work with coding agents effectively.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;…&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;JustHTML is about 3,000 lines of Python with 8,500+ tests passing. I couldn&amp;#39;t have written it this quickly without the agent.&lt;/p&gt;
&lt;p&gt;But &amp;quot;quickly&amp;quot; doesn&amp;#39;t mean &amp;quot;without thinking.&amp;quot; I spent a lot of time reviewing code, making design decisions, and steering the agent in the right direction. The agent did the typing; I did the thinking.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I haven’t quite embraced agents in this way (yet?), but I think the balance Stenström took in directing the LLMs to take out the busy work is the right way to go.&lt;/p&gt;
</description>
    <guid>https://shapeof.com/archives/2025/12/creating_a_python-based_html5_parser_with_agents.html</guid>
    <pubDate>Tue, 16 Dec 2025 16:10:35 GMT</pubDate>
  </item>
  <item>
    <title>Yale Environment 360: Photos Capture the Breathtaking Scale of China’s Wind and Solar Buildout</title>
    <link>https://shapeof.com/archives/2026/1/photos_of_china_solar_buildout.html</link>
    <description>&lt;blockquote&gt;
&lt;p&gt;Last year China installed more than half of all wind and solar added globally. In May alone, it added enough renewable energy to power Poland, installing solar panels at a rate of roughly 100 every second.&lt;/p&gt;
&lt;p&gt;The massive buildout is happening across the country, from crowded eastern cities increasingly topped by rooftop solar panels to remote western deserts where colossal wind farms sprawl across the landscape.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;These &lt;a href="https://e360.yale.edu/digest/china-renewable-photo-essay"&gt;images&lt;/a&gt; by &lt;a href="https://www.instagram.com/thomaschuphoto/?hl=en"&gt;Chu Weimin&lt;/a&gt; are breathtaking.&lt;/p&gt;
</description>
    <guid>https://shapeof.com/archives/2026/1/photos_of_china_solar_buildout.html</guid>
    <pubDate>Thu, 15 Jan 2026 16:04:29 GMT</pubDate>
  </item>
  <item>
    <title>Does Software Piracy Exist?</title>
    <link>https://shapeof.com/archives/2026/1/does_software_piracy_exist.html</link>
    <description>&lt;p&gt;Matthew Butt­erick ▸ &lt;a href="https://matthewbutterick.com/chron/does-software-piracy-exist.html"&gt;Does software piracy exist?&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;From time to time, readers let me know that my fonts are circu­lating on such-and-such website devoted to some cate­gory of soft­ware piracy.&lt;/p&gt;
&lt;p&gt;Well yes—of course they are. In the font world, as in most areas of soft­ware endeavor, there’s been much hand-wringing over the last 40 years about the (suppos­edly) massive losses to this kind of unau­tho­rized redis­tri­b­u­tion and copying, and the lack of any satis­fying protec­tion mech­a­nisms to prevent it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A short and enlightening read, and the “Trajec­tory” examples made me laugh out loud.&lt;/p&gt;
&lt;p&gt;Via &lt;a href="https://daringfireball.net/linked/2026/01/19/butterick-on-the-copyrightability-of-fonts"&gt;DF&lt;/a&gt;.&lt;/p&gt;
</description>
    <guid>https://shapeof.com/archives/2026/1/does_software_piracy_exist.html</guid>
    <pubDate>Mon, 19 Jan 2026 23:09:34 GMT</pubDate>
  </item>
  <item>
    <title>Marco Arment on Apple Watch Fitness</title>
    <link>https://shapeof.com/archives/2026/2/marco_on_apple_watch_fitness.html</link>
    <description>&lt;p&gt;In &lt;a href="https://atp.fm/680"&gt;episode 680 of ATP&lt;/a&gt;, at about 6:12 in, Marco Arment goes off on watchOS 26’s fitness app and trashes all the changes. And I couldn’t agree more with him.&lt;/p&gt;
&lt;p&gt;I thought it was just me who hated all the changes, and the slow animations, and the workout picker. It’s such a regression I don’t even know where to start. Arment is considering getting a Garmin watch to replace his Apple Watch, and while I’m not that far along in my hate for it - I’m not too far behind. The only thing that’s keeping me using it is the history I have with it.&lt;/p&gt;
&lt;p&gt;How much do I use the fitness app? 2-3 times daily. MWF: climbing, PT exercises; TTF: group gym workout; SMTWTFS: 2 mile walk with the dog (usualy); random other times: hikes or snowboarding or weekend climbing.&lt;/p&gt;
&lt;p&gt;If I could downgrade my watch safely, I would.&lt;/p&gt;
</description>
    <guid>https://shapeof.com/archives/2026/2/marco_on_apple_watch_fitness.html</guid>
    <pubDate>Fri, 27 Feb 2026 22:09:18 GMT</pubDate>
  </item>
  <item>
    <title>CasNum is Amazing</title>
    <link>https://shapeof.com/archives/2026/3/casnum.html</link>
    <description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/0x0mer/CasNum"&gt;CasNum&lt;/a&gt; (Compass and straightedge Number) is a library that implements arbitrary precision arithmetic using &lt;a href="https://en.wikipedia.org/wiki/Straightedge_and_compass_construction"&gt;compass and straightedge&lt;/a&gt; constructions. Arbitrary precision arithmetic, now with 100% more Euclid. Featuring a functional modified Game Boy emulator where every ALU opcode is implemented entirely through geometric constructions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I’m sorry, what?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This project began with a simple compass-and-straightedge &amp;#39;engine&amp;#39;, […]. In compass-and-straightedge constructions, one start with just two points: The origin, and a unit. Exactly as God intended.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Still what?!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;#Philosophy&lt;/p&gt;
&lt;p&gt;Most modern developers are content with &lt;code&gt;a + b&lt;/code&gt;. They don&amp;#39;t want to work for it. They don&amp;#39;t want to see the midpoint being birthed from the intersection of two circles. CasNum is for the developer who believes that if you didn&amp;#39;t have to solve a 4th-degree polynomial just to increment a loop counter, you didn&amp;#39;t really increment it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is pretty amazing, and just what I needed to see today. The &lt;a href="https://github.com/0x0mer/CasNum?tab=readme-ov-file#faq"&gt;FAQ&lt;/a&gt; is great too. Actually, the whole README is great.&lt;/p&gt;
&lt;p&gt;If you don’t know what’s going on, you can watch the following YouTube video: &lt;a href="https://www.youtube.com/watch?v=96LbF8nn05c"&gt;The Simplest Ancient Math Problem No One Could Solve&lt;/a&gt;. I learned a bunch, but I probably only understood a quarter of what was being said.&lt;/p&gt;
&lt;p&gt;Note: I’ve tried running CasNum on my Mac, but got a bunch of Python errors when trying to bring up the UI. I suspect this is only for Windows. The little movie on the project page shows it in action however, sped up quite a bit.&lt;/p&gt;
&lt;p&gt;Via &lt;a href="https://news.ycombinator.com/item?id=47291292"&gt;hn&lt;/a&gt;.&lt;/p&gt;
</description>
    <guid>https://shapeof.com/archives/2026/3/casnum.html</guid>
    <pubDate>Sun, 08 Mar 2026 20:14:33 GMT</pubDate>
  </item>
  <item>
    <title>25 Years of Mac OS X</title>
    <link>https://shapeof.com/archives/2026/3/25_years_of_mac_os_x.html</link>
    <description>&lt;p&gt;512 Pixels: &lt;a href="https://512pixels.net/2026/03/mac-os-x-shipped-25-years-ago/"&gt;Mac OS X Shipped 25 Years Ago&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I still remember using the public betas, and Mac OS Server before that. Display Postscript is the thing that sticks out as being the most amazing to me at the time. And then Mac OS X brought Display PDF, which was a great step beyond that as well.&lt;/p&gt;
&lt;p&gt;Happy Birthday, Mac OS X.&lt;/p&gt;
</description>
    <guid>https://shapeof.com/archives/2026/3/25_years_of_mac_os_x.html</guid>
    <pubDate>Tue, 24 Mar 2026 19:10:12 GMT</pubDate>
  </item>
  </channel>
</rss>