<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <title>remy sharp's l:inks</title>
    <atom:link href="https://remysharp.com/links.xml" rel="self" type="application/rss+xml"></atom:link>
    <link>https://remysharp.com</link>
    <description>About [code] and all that jazz</description>
    <image>
      <title>remy sharp's b:log</title>
      <link>https://remysharp.com</link>
      <url>https://remysharp.com/images/avatar-125.jpg</url>
      <width>125</width>
      <height>125</height>
    </image>
    <lastBuildDate>Thu, 16 Apr 2026 11:00:46 +0000</lastBuildDate>
    <managingEditor>remy@remysharp.com (Remy Sharp)</managingEditor>
    <webMaster>remy@remysharp.com (Remy Sharp)</webMaster>
    <language>en</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <generator>Honestly, I don't know what most of these tags do, I copied a lot of them from other people's web site ¯\_(ツ)_/¯</generator>
    <item>
      <title>Try text scaling support</title>
      <guid isPermaLink="false">2026-02-03-d5be6744</guid>
      <link>https://remysharp.com/links/2026-02-03-d5be6744</link>
      <pubDate>Tue, 03 Feb 2026 11:01:24 +0000</pubDate>
      <description><![CDATA[I've had a larger phone because I got fed up with squinting at my screen, but because of that I also have the OS level font bumped to 115% (and I know Jule, my wife, has it bumped to 125%). This meta tag will use the system font size to adjust the font. Importantly, Josh also points out that the default font size shouldn't be touched: Source: www.joshtumath.uk#heading-tip-1:-don't-override-the-initial-font-size /By Josh Tumath, via Jeremy Keith]]></description>
      <content:encoded><![CDATA[
<p>I've had a larger phone because I got fed up with squinting at my screen, but because of that I also have the OS level font bumped to 115% (and I know Jule, my wife, has it bumped to 125%). This meta tag will use the system font size to adjust the font. Importantly, Josh also points out that the default font size shouldn't be touched: <em>Source: <a href="https://www.joshtumath.uk/posts/2026-01-27-try-text-scaling-support-in-chrome-canary/">www.joshtumath.uk</a></em>#heading-tip-1:-don't-override-the-initial-font-size /By Josh Tumath, via Jeremy Keith</p>
<p><em>Originally published on <a href="https://remysharp.com/links/2026-02-03-d5be6744">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Building an AI Sandbox with Docker</title>
      <guid isPermaLink="false">2025-11-12-dac6ad4b</guid>
      <link>https://remysharp.com/links/2025-11-12-dac6ad4b</link>
      <pubDate>Wed, 12 Nov 2025 14:08:00 +0000</pubDate>
      <description><![CDATA[As I think about how command line AI tools can be used, I know it's already a bit of the wild west not disimilar to the way we install npm modules. I've seen a bit of writing about how these tools should be run in a controlled sandbox (because they can mess with the surroudning environment), and this is a nice digestable post with working examplse of Dockerfiles.
Source: thingsithinkithink.blog]]></description>
      <content:encoded><![CDATA[
<p>As I think about how command line AI tools can be used, I know it's already a bit of the wild west not disimilar to the way we install npm modules. I've seen a bit of writing about how these tools should be run in a controlled sandbox (because they can mess with the surroudning environment), and this is a nice digestable post with working examplse of Dockerfiles.</p>
<p><em>Source: <a href="https://thingsithinkithink.blog/posts/2025/11-11-building-an-ai-sandbox-with-docker/">thingsithinkithink.blog</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2025-11-12-dac6ad4b">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Automerge</title>
      <guid isPermaLink="false">2025-11-04-aeb3d7b3</guid>
      <link>https://remysharp.com/links/2025-11-04-aeb3d7b3</link>
      <pubDate>Tue, 04 Nov 2025 12:47:22 +0000</pubDate>
      <description><![CDATA[Version control for your data: Automerge is a local-first sync engine for multiplayer apps that works offline, prevents conflicts, and runs fast. Interesting project, possibly for mini personal projects that want to share some data (possibly without a database? unsure). But also in some kind of collaborative code editor, ala codecasting from JS Bin old days. Beautifully designed landing page though.
Source: automerge.org]]></description>
      <content:encoded><![CDATA[
<p>Version control for your data: Automerge is a local-first sync engine for multiplayer apps that works offline, prevents conflicts, and runs fast. Interesting project, possibly for mini personal projects that want to share some data (possibly without a database? unsure). But also in some kind of collaborative code editor, ala codecasting from JS Bin old days. Beautifully designed landing page though.</p>
<p><em>Source: <a href="https://automerge.org/">automerge.org</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2025-11-04-aeb3d7b3">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>What Happened to Apple's Legendary Attention to Detail?</title>
      <guid isPermaLink="false">2025-10-23-d9bf3277</guid>
      <link>https://remysharp.com/links/2025-10-23-d9bf3277</link>
      <pubDate>Thu, 23 Oct 2025 11:33:22 +0000</pubDate>
      <description><![CDATA[I accidentally upgraded to Tahoe (I didn't know it existed and thought I was moving to Sequoia and the UI design is all over the place, and it's constantly reminding me how bad it is. This excellent article takes what was an attention to detail that we took for granted (because tech is supposed to &quot;just work&quot;), and calls out just a handful of the failings that Apple's OS now ships with (including on iOS, that I thankfully don't have to suffer). My fear, based on experience with bad Apple UI - (like the notifications that couldn't be quickly dismissed forcing us to click EXACTLY in the right place, and with the &quot;suitable&quot; amount of delay) - is that it simply won't be fixed or even improved. /via venerable Bruce Lawson
Source: blog.johnozbay.com]]></description>
      <content:encoded><![CDATA[
<p>I accidentally upgraded to Tahoe (I didn't know it existed and thought I was moving to Sequoia and the UI design is all over the place, and it's constantly reminding me how bad it is. This excellent article takes what was an attention to detail that we took for granted (because tech is supposed to &quot;just work&quot;), and calls out just a handful of the failings that Apple's OS now ships with (including on iOS, that I thankfully don't have to suffer). My fear, based on experience with bad Apple UI - (like the notifications that couldn't be quickly dismissed forcing us to click <em>EXACTLY</em> in the right place, and with the &quot;suitable&quot; amount of delay) - is that it simply won't be fixed or even improved. /via venerable <a href="https://brucelawson.co.uk/">Bruce Lawson</a></p>
<p><em>Source: <a href="https://blog.johnozbay.com/what-happened-to-apples-attention-to-detail.html">blog.johnozbay.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2025-10-23-d9bf3277">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Making a low-budget conference look high-budget using an ATEM video mixer and a long USB cable</title>
      <guid isPermaLink="false">2025-10-05-22673538</guid>
      <link>https://remysharp.com/links/2025-10-05-22673538</link>
      <pubDate>Sun, 05 Oct 2025 22:28:52 +0000</pubDate>
      <description><![CDATA[Niels Leenheer goes through a detailed setup on how to take a single HDMI to projection into a mini event setup with holding screens. The technical detail is superb too, specifically considering power draw you would need but also, importantly, the length of cables and types to handle data rates. Definitely one for the back pocket read when wanting to upgrade the meetup game to something that has a lot more polish.
Source: nielsleenheer.com]]></description>
      <content:encoded><![CDATA[
<p>Niels Leenheer goes through a detailed setup on how to take a single HDMI to projection into a mini event setup with holding screens. The technical detail is superb too, specifically considering power draw you would need but also, importantly, the length of cables and types to handle data rates. Definitely one for the back pocket read when wanting to upgrade the meetup game to something that has a lot more polish.</p>
<p><em>Source: <a href="https://nielsleenheer.com/articles/2025/making-a-low-budget-conference-look-high-budget-using-an-atem-video-mixer-and-a-long-usb-cable/">nielsleenheer.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2025-10-05-22673538">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>CSS HDR Gradients</title>
      <guid isPermaLink="false">2025-10-03-8c6febb9</guid>
      <link>https://remysharp.com/links/2025-10-03-8c6febb9</link>
      <pubDate>Fri, 03 Oct 2025 07:36:20 +0000</pubDate>
      <description><![CDATA[Very cool CSS gradient tooling by Adam Argyle.It's so pretty all I want to do is play with UI forgetting that it'll actually give me CSS.I also like that the URL is sharable and savable (perhaps through a bookmark or in a markdown doc).His latest changes include:- better import design- more resilient parser (understands more syntax)- supports multi-layered gradient imports
Source: gradient.style]]></description>
      <content:encoded><![CDATA[
<p>Very cool CSS gradient tooling by Adam <a href="http://Argyle.It">Argyle.It</a>'s so pretty all I want to do is play with UI forgetting that it'll actually give me CSS.I also like that the URL is sharable and savable (perhaps through a bookmark or in a markdown doc).His latest changes include:- better import design- more resilient parser (understands more syntax)- supports multi-layered gradient imports</p>
<p><em>Source: <a href="https://gradient.style/">gradient.style</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2025-10-03-8c6febb9">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>How to disable Google Gemini in your Google Workspace</title>
      <guid isPermaLink="false">2025-02-12-9469eb6c</guid>
      <link>https://remysharp.com/links/2025-02-12-9469eb6c</link>
      <pubDate>Wed, 12 Feb 2025 11:38:37 +0000</pubDate>
      <description><![CDATA[Google's AI offering came along to paid accounts without permission or request. What made it worse is that it couldn't be turned off, which… I don't even have words. It was via Jan on Mastodon that I'd seen it wasn't possible to disable. But Jan having more persistance than me actually managed to find a (hidden) solution (short version, keep asking support). Bless his magnificence for getting this. I'm now Gemini-free, particularly in Gmail which was the place it was annoying me the most.
Source: writing.jan.io]]></description>
      <content:encoded><![CDATA[
<p>Google's AI offering came along to paid accounts without permission or request. What made it worse is that it couldn't be turned off, which… I don't even have words. It was via Jan on Mastodon that I'd seen it wasn't possible to disable. But Jan having more persistance than me actually managed to find a (hidden) solution (short version, keep asking support). Bless his magnificence for getting this. I'm now Gemini-free, particularly in Gmail which was the place it was annoying me the most.</p>
<p><em>Source: <a href="https://writing.jan.io/2025/01/17/how-to-disable-google-gemini-in-your-workspace.html">writing.jan.io</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2025-02-12-9469eb6c">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Build and run online services _easily_</title>
      <guid isPermaLink="false">2024-11-05-0827383d</guid>
      <link>https://remysharp.com/links/2024-11-05-0827383d</link>
      <pubDate>Tue, 05 Nov 2024 10:08:01 +0000</pubDate>
      <description><![CDATA[I find this very cool that the Gov.uk / GDS have released their platform tooling (in particular forms) to the public sector.I can imagine it's a jump to go from project in the public sector to being able to implement all the nuts and bolts it requires, and this platform looks to cut right through the hard work. Specifically:&gt; You can create accessible, low cost online services without needing coding skills or technical knowledge. I love this. Progressive enhancement. Core functionality (forms, payments, notifications).More background reading from their blog here: https://gds.blog.gov.uk/2024/11/04/gov-uk-forms-in-motion/
Source: platforms.service.gov.uk]]></description>
      <content:encoded><![CDATA[
<p>I find this very cool that the <a href="http://Gov.uk">Gov.uk</a> / GDS have released their platform tooling (in particular <em>forms</em>) to the public sector.I can imagine it's a jump to go from project in the public sector to being able to implement all the nuts and bolts it requires, and this platform looks to cut right through the hard work. Specifically:&gt; You can create accessible, low cost online services without needing coding skills or technical knowledge. I love this. Progressive enhancement. Core functionality (forms, payments, notifications).More background reading from their blog here: <a href="https://gds.blog.gov.uk/2024/11/04/gov-uk-forms-in-motion/">https://gds.blog.gov.uk/2024/11/04/gov-uk-forms-in-motion/</a></p>
<p><em>Source: <a href="https://platforms.service.gov.uk/">platforms.service.gov.uk</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2024-11-05-0827383d">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>The Open Source AI Definition – 1.0</title>
      <guid isPermaLink="false">2024-11-02-131718ec</guid>
      <link>https://remysharp.com/links/2024-11-02-131718ec</link>
      <pubDate>Sat, 02 Nov 2024 08:30:45 +0000</pubDate>
      <description><![CDATA[There's now an official definition of &quot;open source AI&quot;, which companies like Facebook have been using (prior to this definition) to effectively attempt to convince us (Devs) that the models are in keeping with the values of Open Source.When the reality for many of these companies and their models is that the content driving the models were stolen (taken without permission, regardless of whether that content is publicly available - like training on photos of artwork in a museum, or music on the radio or videos on TV - all &quot;publicly available&quot;).The definition outlines that a published &quot;open source&quot; AI model should include:&gt; Sufficiently detailed information about the data used to train the system so that a skilled person can build a substantially equivalent system....and the gut punch to companies co-opting &quot;open source&quot;:&gt; this must include: (1) the complete description of all data used for training, including (if used) of unshareable data, disclosing the provenance of the data, its scope and characteristics, how the data was obtained and selectedSo it would be more fitting if companies like Facebook (with Llama etc) used proprietary or probably trained on copyright content...
Source: opensource.org]]></description>
      <content:encoded><![CDATA[
<p>There's now an official definition of &quot;open source AI&quot;, which companies like Facebook have been using (prior to this definition) to effectively attempt to convince us (Devs) that the models are in keeping with the values of Open Source.When the reality for many of these companies and their models is that the content driving the models were stolen (taken without permission, regardless of whether that content is publicly available - like training on photos of artwork in a museum, or music on the radio or videos on TV - all &quot;publicly available&quot;).The definition outlines that a published &quot;open source&quot; AI model should include:&gt; Sufficiently detailed information about the data used to train the system so that a skilled person can build a substantially equivalent system....and the gut punch to companies co-opting &quot;open source&quot;:&gt; this must include: (1) the complete description of all data used for training, including (if used) of unshareable data, disclosing the provenance of the data, its scope and characteristics, how the data was obtained and selectedSo it would be more fitting if companies like Facebook (with Llama etc) used <strong>proprietary</strong> or <strong>probably trained on copyright content</strong>...</p>
<p><em>Source: <a href="https://opensource.org/ai/open-source-ai-definition">opensource.org</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2024-11-02-131718ec">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Ted Chaing on AI and art</title>
      <guid isPermaLink="false">2024-09-05-769b8034</guid>
      <link>https://remysharp.com/links/2024-09-05-769b8034</link>
      <pubDate>Thu, 05 Sep 2024 10:31:59 +0000</pubDate>
      <description><![CDATA[I can't stop thinking about this quote from Ted Chiang (originally snipped by Simon Willison).

Art is notoriously hard to define, and so are the differences between good art and bad art. But let me offer a generalization: art is something that results from making a lot of choices. […] to oversimplify, we can imagine that a ten-thousand-word short story requires something on the order of ten thousand choices. When you give a generative-A.I. program a prompt, you are making very few choices; if you supply a hundred-word prompt, you have made on the order of a hundred choices.
If an A.I. generates a ten-thousand-word story based on your prompt, it has to fill in for all of the choices that you are not making. There's so much push in the web development scene to use AI for jobs and my own LinkedIn feed is chock full of &quot;AI to do X&quot;, such as generate articles, and amass content, but, as this quote so simply puts it, the actual human input is so utterly thin. To me, it makes that AI generated content unwhelming and unimpressive because it lacks so much of the individual's own input.

Source: www.newyorker.com]]></description>
      <content:encoded><![CDATA[
<p>I can't stop thinking about this quote from Ted Chiang (originally snipped by <a href="https://simonwillison.net/2024/Aug/31/ted-chiang/">Simon Willison</a>).</p>
<blockquote>
<p>Art is notoriously hard to define, and so are the differences between good art and bad art. But let me offer a generalization: art is something that results from making a lot of choices. […] to oversimplify, we can imagine that a ten-thousand-word short story requires something on the order of ten thousand choices. When you give a generative-A.I. program a prompt, you are making very few choices; if you supply a hundred-word prompt, you have made on the order of a hundred choices.</p>
<p>If an A.I. generates a ten-thousand-word story based on your prompt, it has to fill in for all of the choices that you are not making. There's so much push in the web development scene to use AI for jobs and my own LinkedIn feed is chock full of &quot;AI to do X&quot;, such as generate articles, and amass content, but, as this quote so simply puts it, the actual human input is so utterly thin. To me, it makes that AI generated content unwhelming and unimpressive because it lacks so much of the individual's own input.</p>
</blockquote>
<p><em>Source: <a href="https://www.newyorker.com/culture/the-weekend-essay/why-ai-isnt-going-to-make-art">www.newyorker.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2024-09-05-769b8034">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>I Will Luddite AI by Robert Kingett</title>
      <guid isPermaLink="false">2024-08-09-a63eca24</guid>
      <link>https://remysharp.com/links/2024-08-09-a63eca24</link>
      <pubDate>Fri, 09 Aug 2024 07:31:53 +0000</pubDate>
      <description><![CDATA[A long but excellent article or even essay on AI, it's appeal to the blindness community, prompt injection, hacking and a wealth of links and well thought out discussion. Like Robert I only really learnt the real meaning of &quot;luddite&quot; this year, specifically because of AI, and he goes on to discuss this more, but:

Luddites understand tech better than you and or I do because you have to know something on an intimate level to stage a coordinated push back against the particular tech. I feel like these are my people and want to actively push back against the companies in the arms race for our intimacy. Find some quiet time and read this post.

Source: robertkingett.com]]></description>
      <content:encoded><![CDATA[
<p>A long but excellent article or even essay on AI, it's appeal to the blindness community, prompt injection, hacking and a wealth of links and well thought out discussion. Like Robert I only really learnt the real meaning of &quot;luddite&quot; this year, specifically because of AI, and he goes on to discuss this more, but:</p>
<blockquote>
<p>Luddites understand tech better than you and or I do because you have to know something on an intimate level to stage a coordinated push back against the particular tech. I feel like these are my people and want to actively push back against the companies in the arms race for our intimacy. Find some quiet time and read this post.</p>
</blockquote>
<p><em>Source: <a href="https://robertkingett.com/posts/6593/">robertkingett.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2024-08-09-a63eca24">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>SENDUNE html email designers</title>
      <guid isPermaLink="false">2024-07-26-3326ccec</guid>
      <link>https://remysharp.com/links/2024-07-26-3326ccec</link>
      <pubDate>Fri, 26 Jul 2024 14:03:03 +0000</pubDate>
      <description><![CDATA[The SENDUNE email designer focuses on simplicity and ease of use. It is light-weight. It does pure HTML - no intermediate code wranglers like mjml. There is no lock-in of any kind. Save HTML output as a template and use with ANY email service provider.I can't get over how any simple design is still so stupidly hard in 2024. Hoping this is a simpler tool (without having to fork over the farm!)

Source: designer.sendune.com]]></description>
      <content:encoded><![CDATA[
<blockquote>
<p>The SENDUNE email designer focuses on simplicity and ease of use. It is light-weight. It does pure HTML - no intermediate code wranglers like mjml. There is no lock-in of any kind. Save HTML output as a template and use with ANY email service provider.I can't get over how any simple design is still so stupidly hard in 2024. Hoping this is a simpler tool (without having to fork over the farm!)</p>
</blockquote>
<p><em>Source: <a href="https://designer.sendune.com/">designer.sendune.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2024-07-26-3326ccec">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Retro print patterns with CSS</title>
      <guid isPermaLink="false">2024-05-08-f220c1f6</guid>
      <link>https://remysharp.com/links/2024-05-08-f220c1f6</link>
      <pubDate>Wed, 08 May 2024 09:18:06 +0000</pubDate>
      <description><![CDATA[Ana Tudor, as always, shows excellent methods to create (what I'd call) retro print effects to images using CSS.This is something I've typically turned to PhotoShop to (struggle) with, but Ana shows how this can be done with CSS.In Ana's CodePens, SCSS is used, but even the compiled CSS is relatively easy to follow.
Source: front-end.social]]></description>
      <content:encoded><![CDATA[
<p>Ana Tudor, as always, shows excellent methods to create (what I'd call) retro print effects to images using CSS.This is something I've typically turned to PhotoShop to (struggle) with, but Ana shows how this can be done with <a href="http://CSS.In">CSS.In</a> Ana's CodePens, SCSS is used, but even the compiled CSS is relatively easy to follow.</p>
<p><em>Source: <a href="https://front-end.social/@anatudor@mastodon.social/112404568902561121">front-end.social</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2024-05-08-f220c1f6">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Why Good Captioned Videos Are Important</title>
      <guid isPermaLink="false">2024-04-26-731edafa</guid>
      <link>https://remysharp.com/links/2024-04-26-731edafa</link>
      <pubDate>Fri, 26 Apr 2024 13:51:08 +0000</pubDate>
      <description><![CDATA[Absolutely essential reading and viewing on how to produce captions with valuable real world examples of how to completely mess it up (and a lot of social posted videos do the bad mess version). As someone who's hard of hearing and uses captions on all viewing media that I can, I already feel this. Excellent post by Meryl Evans.
Source: meryl.net]]></description>
      <content:encoded><![CDATA[
<p>Absolutely essential reading and viewing on how to produce captions with valuable real world examples of how to completely mess it up (and a lot of social posted videos do the bad mess version). As someone who's hard of hearing and uses captions on all viewing media that I can, I already feel this. Excellent post by Meryl Evans.</p>
<p><em>Source: <a href="https://meryl.net/why-captioned-videos-are-important/">meryl.net</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2024-04-26-731edafa">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>New GitHub Copilot Research Finds 'Downward Pressure on Code Quality'</title>
      <guid isPermaLink="false">2024-02-09-395b2ad3</guid>
      <link>https://remysharp.com/links/2024-02-09-395b2ad3</link>
      <pubDate>Fri, 09 Feb 2024 18:25:30 +0000</pubDate>
      <description><![CDATA[I mean… the writing was on the wall, wasn't it? Didn't we, the tech nation desperate to actualise the ten-ecks developer, make our own bed? I know it's the cynic in me that doesn't trust copilot assisted work to produce long term &quot;good code&quot; (aka: code of a reliable quality that can survive time), but at the same time I'm one of those grumpy old hacks that hand codes. One of the real reasons I don't (personally) like copilot is that I tend to code faster than copilot can suggest recommendations, and it's distracting to get a nearly right autocomplete flash up, whilst my fingers continue to fly across the keyboard. The distraction is whether I should backtrack and undo my change to trigger the autocomplete again, which would only to visually validate the code changing the cadence of my coding/typing... The pull quote from the article is the take away, and the bit that, if we (devs) really are going to saddle up to AI assisted coding are absolutely going to have to solve, is this:

We find disconcerting trends for maintainability. Code churn -- the percentage of lines that are reverted or updated less than two weeks after being authored -- is projected to double in 2024 compared to its 2021, pre-AI baseline. We further find that the percentage of 'added code' and 'copy/pasted code' is increasing in proportion to 'updated,' 'deleted,' and 'moved 'code. In this regard, AI-generated code resembles an itinerant contributor, prone to violate the DRY-ness [don't repeat yourself] of the repos visited. Sure, AI can be treated as the unpaid intern, but do we really want the unpaid intern to be committing the majority of our code to production? (Also, pay your interns…yikes).

Source: visualstudiomagazine.com]]></description>
      <content:encoded><![CDATA[
<p>I mean… the writing was on the wall, wasn't it? Didn't we, the tech nation desperate to actualise the ten-ecks developer, make our own bed? I know it's the cynic in me that doesn't trust copilot assisted work to produce long term &quot;good code&quot; (aka: code of a reliable quality that can survive time), but at the same time I'm one of those grumpy old hacks that hand codes. One of the real reasons I don't (personally) like copilot is that I tend to code faster than copilot can suggest recommendations, and it's distracting to get a nearly right autocomplete flash up, whilst my fingers continue to fly across the keyboard. The distraction is whether I should backtrack and undo my change to trigger the autocomplete again, which would only to visually validate the code changing the cadence of my coding/typing... The pull quote from the article is the take away, and the bit that, <em>if</em> we (devs) really are going to saddle up to AI assisted coding are absolutely going to have to solve, is this:</p>
<blockquote>
<p>We find disconcerting trends for maintainability. Code churn -- the percentage of lines that are reverted or updated less than two weeks after being authored -- is projected to double in 2024 compared to its 2021, pre-AI baseline. We further find that the percentage of 'added code' and 'copy/pasted code' is increasing in proportion to 'updated,' 'deleted,' and 'moved 'code. In this regard, AI-generated code resembles an itinerant contributor, prone to violate the DRY-ness [don't repeat yourself] of the repos visited. Sure, AI can be treated as the unpaid intern, but do we really want the unpaid intern to be committing the majority of our code to production? (Also, pay your interns…yikes).</p>
</blockquote>
<p><em>Source: <a href="https://visualstudiomagazine.com/articles/2024/01/25/copilot-research.aspx">visualstudiomagazine.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2024-02-09-395b2ad3">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Keyboard Cleaner</title>
      <guid isPermaLink="false">2023-10-04-60cdc285</guid>
      <link>https://remysharp.com/links/2023-10-04-60cdc285</link>
      <pubDate>Wed, 04 Oct 2023 06:55:29 +0000</pubDate>
      <description><![CDATA[A wonderful does the job bit of software that supports Apple hardware going back over a decade. It intercepts all keyboard input allow you to safely clean your keyboard. Simple. Excellent.
Source: jan.prima.de]]></description>
      <content:encoded><![CDATA[
<p>A wonderful <em>does the job</em> bit of software that supports Apple hardware going back over a decade. It intercepts all keyboard input allow you to safely clean your keyboard. Simple. Excellent.</p>
<p><em>Source: <a href="https://jan.prima.de/plok/archives/48-Keyboard-Cleaner.html">jan.prima.de</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2023-10-04-60cdc285">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Randoma11y</title>
      <guid isPermaLink="false">2023-09-25-341a1491</guid>
      <link>https://remysharp.com/links/2023-09-25-341a1491</link>
      <pubDate>Mon, 25 Sep 2023 11:35:12 +0000</pubDate>
      <description><![CDATA[Accessible colour combinations - and upon hitting reload, there's actually some really stylish (to me) combinations whilst being either AA or AAA compliant. Nice.
Source: randoma11y.com]]></description>
      <content:encoded><![CDATA[
<p>Accessible colour combinations - and upon hitting reload, there's actually some really stylish (to me) combinations whilst being either AA or AAA compliant. Nice.</p>
<p><em>Source: <a href="https://randoma11y.com/">randoma11y.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2023-09-25-341a1491">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Brian LeRoux on enhance.dev</title>
      <guid isPermaLink="false">2023-09-24-744822aa</guid>
      <link>https://remysharp.com/links/2023-09-24-744822aa</link>
      <pubDate>Sun, 24 Sep 2023 09:47:14 +0000</pubDate>
      <description><![CDATA[All of Brian's approach to dependencies and concerns about long-term support, we're talking 10 years here, are absolutely excellent spot on and he goes on to talk about enhance.dev which is really a nation of first approach to building software.
Source: www.infoq.com]]></description>
      <content:encoded><![CDATA[
<p>All of Brian's approach to dependencies and concerns about long-term support, we're talking 10 years here, are absolutely excellent spot on and he goes on to talk about enhance.dev which is really a nation of first approach to building software.</p>
<p><em>Source: <a href="https://www.infoq.com/presentations/enhance-web-standards/">www.infoq.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2023-09-24-744822aa">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Preview Social Media Share and Generate Metatags</title>
      <guid isPermaLink="false">2023-09-12-e8796c4e</guid>
      <link>https://remysharp.com/links/2023-09-12-e8796c4e</link>
      <pubDate>Tue, 12 Sep 2023 07:42:42 +0000</pubDate>
      <description><![CDATA[Useful tool to check the meta tags used and preview how they'll appear in various social media sites, particular as Twitter declines, the need for Twitter specific meta tags becomes less and I realise I should support the opengraph tags (og:*) more carefully.
Source: www.opengraph.xyz]]></description>
      <content:encoded><![CDATA[
<p>Useful tool to check the meta tags used and preview how they'll appear in various social media sites, particular as Twitter declines, the need for Twitter specific meta tags becomes less and I realise I should support the opengraph tags (<code>og:*</code>) more carefully.</p>
<p><em>Source: <a href="https://www.opengraph.xyz/">www.opengraph.xyz</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2023-09-12-e8796c4e">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>minimon.js - Pokémon Mini web emulator</title>
      <guid isPermaLink="false">2023-05-22-34fc197a</guid>
      <link>https://remysharp.com/links/2023-05-22-34fc197a</link>
      <pubDate>Mon, 22 May 2023 15:34:46 +0000</pubDate>
      <description><![CDATA[Not just the emulator but also debugger. Given that all the tooling for this (specifically around emulation) is on Windows, this is a great example of porting software to the web (I'm a big fan).
Source: minimon.scyl.us]]></description>
      <content:encoded><![CDATA[
<p>Not just the emulator but also debugger. Given that all the tooling for this (specifically around emulation) is on Windows, this is a great example of porting software to the web (I'm a big fan).</p>
<p><em>Source: <a href="https://minimon.scyl.us/">minimon.scyl.us</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2023-05-22-34fc197a">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>The A.I. Dilemma</title>
      <guid isPermaLink="false">2023-04-18-ed17e7ae</guid>
      <link>https://remysharp.com/links/2023-04-18-ed17e7ae</link>
      <pubDate>Tue, 18 Apr 2023 10:25:38 +0000</pubDate>
      <description><![CDATA[An excellent discussion on the explosion, or even, implosion, of AI and how it's being tested and developed in public when the implications seem to have been swept aside in favour of the arms race between the big corps.
Policies and law haven't been written and it's the experts that don't even have the confidence you'd hope to hear about:

50% of A.I. researchers believe there's a 10% or greater chance that humans go extinct from our inability to control AI

Tristan Harris and Aza Raskin discuss the risk to society and how safety measures are far from adequate and laws need to be implemented.

When you invent a new technology, you uncover a new class of responsibilities

It's a long watch at a little over an hour, but strongly recommend as we plough head long into a future where AI is inter-tangled with society.
Source: www.youtube.com]]></description>
      <content:encoded><![CDATA[
<p>An excellent discussion on the explosion, or even, implosion, of AI and how it's being tested and developed in public when the implications seem to have been swept aside in favour of the arms race between the big corps.</p>
<p>Policies and law haven't been written and it's the experts that don't even have the confidence you'd hope to hear about:</p>
<blockquote>
<p>50% of A.I. researchers believe there's a 10% or greater chance that humans go extinct from our inability to control AI</p>
</blockquote>
<p>Tristan Harris and Aza Raskin discuss the risk to society and how safety measures are far from adequate and laws <em>need</em> to be implemented.</p>
<blockquote>
<p>When you invent a new technology, <em>you uncover a new class of responsibilities</em></p>
</blockquote>
<p>It's a long watch at a little over an hour, but strongly recommend as we plough head long into a future where AI is inter-tangled with society.</p>
<p><em>Source: <a href="https://www.youtube.com/watch?v=xoVJKj8lcNQ">www.youtube.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2023-04-18-ed17e7ae">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>sq</title>
      <guid isPermaLink="false">2023-03-30-75858f69</guid>
      <link>https://remysharp.com/links/2023-03-30-75858f69</link>
      <pubDate>Thu, 30 Mar 2023 10:10:21 +0000</pubDate>
      <description><![CDATA[Like jq but for postgres databases (or sqlserver, csv or even xlsx).
What's neat is that you register a database with the system, then you can query against that particular database.
Very nice that I can use this on the command line and then pipe into jq for more data manip.
Source: sq.io]]></description>
      <content:encoded><![CDATA[
<p>Like jq but for postgres databases (or sqlserver, csv or even xlsx).</p>
<p>What's neat is that you register a database with the system, then you can query against that particular database.</p>
<p>Very nice that I can use this on the command line and then pipe into <code>jq</code> for more data manip.</p>
<p><em>Source: <a href="https://sq.io/">sq.io</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2023-03-30-75858f69">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>The Great Gaslighting of the JavaScript Era</title>
      <guid isPermaLink="false">2023-03-26-cf62febe</guid>
      <link>https://remysharp.com/links/2023-03-26-cf62febe</link>
      <pubDate>Sun, 26 Mar 2023 21:43:38 +0000</pubDate>
      <description><![CDATA[A long read, but a worthwhile one - in my head their voice was definitely just shy of shouty! :)
Being a JS developer first and foremost since pre-Node days, it puts me in a funny spot that I absolutely agree with everything said in this article, whilst also considering that I pick JS on the server to suit me.
When it comes to the front-end, I'm pretty sick of the poison that's been sold to us for over a decade.
The web's war for JS libraries/etc summarised excellently with:

It’s a popularity contest. Plain and simple.


And that popularity contest can change on a dime.


10 years ago, it was AngularJS.


Today, it’s React.


Tomorrow, it will be something else because that’s inevitable.

Absolutely this - I felt exactly the same when I had peers and colleagues trying to shove Angular down my throat.
But it's the future, the kids who come to the industry and will continue it. As Jared White writes,

but all those bright-eyed eager newcomers getting churned out of code schools knowing only React?


Those jobs will be gone. 😕

Grim future.
Source: www.spicyweb.dev]]></description>
      <content:encoded><![CDATA[
<p>A long read, but a worthwhile one - in my head their voice was definitely just shy of shouty! :)</p>
<p>Being a JS developer first and foremost since pre-Node days, it puts me in a funny spot that I absolutely agree with everything said in this article, whilst also considering that I pick JS <em>on the server</em> to suit me.</p>
<p>When it comes to the front-end, I'm pretty sick of the poison that's been sold to us for over a decade.</p>
<p>The web's war for JS libraries/etc summarised excellently with:</p>
<blockquote>
<p>It’s a popularity contest. Plain and simple.</p>
</blockquote>
<blockquote>
<p>And that popularity contest can change on a dime.</p>
</blockquote>
<blockquote>
<p>10 years ago, it was AngularJS.</p>
</blockquote>
<blockquote>
<p>Today, it’s React.</p>
</blockquote>
<blockquote>
<p>Tomorrow, it will be something else because that’s inevitable.</p>
</blockquote>
<p>Absolutely this - I felt exactly the same when I had peers and colleagues trying to shove Angular down my throat.</p>
<p>But it's the future, the kids who come to the industry and will continue it. As Jared White writes,</p>
<blockquote>
<p>but all those bright-eyed eager newcomers getting churned out of code schools knowing only React?</p>
</blockquote>
<blockquote>
<p>Those jobs will be gone. 😕</p>
</blockquote>
<p>Grim future.</p>
<p><em>Source: <a href="https://www.spicyweb.dev/the-great-gaslighting-of-the-js-age/">www.spicyweb.dev</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2023-03-26-cf62febe">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>better-mobile-inputs.netlify.app/</title>
      <guid isPermaLink="false">2023-03-01-3bff24a5</guid>
      <link>https://remysharp.com/links/2023-03-01-3bff24a5</link>
      <pubDate>Wed, 01 Mar 2023 11:11:24 +0000</pubDate>
      <description><![CDATA[A useful web page to show visually what the mobile assistive keyboard looks like given different input types.
Specifically, and TIL - the inputmode can be different, i.e. using a type=&quot;text&quot; field but inputmode=&quot;url&quot; to help with partials like &quot;.com&quot; (if the input field didn't need URL validation for instance).
/via Bruce's reading list 300
Source: better-mobile-inputs.netlify.app]]></description>
      <content:encoded><![CDATA[
<p>A useful web page to show visually what the mobile assistive keyboard looks like given different input types.</p>
<p>Specifically, and TIL - the <code>inputmode</code> can be different, i.e. using a <code>type=&quot;text&quot;</code> field but <code>inputmode=&quot;url&quot;</code> to help with partials like &quot;.com&quot; (if the input field didn't need URL validation for instance).</p>
<p>/via <a href="https://brucelawson.co.uk/2023/reading-list-300/">Bruce's reading list 300</a></p>
<p><em>Source: <a href="https://better-mobile-inputs.netlify.app/">better-mobile-inputs.netlify.app</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2023-03-01-3bff24a5">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Arduboy DIY with FX</title>
      <guid isPermaLink="false">2023-01-04-93f84aa7</guid>
      <link>https://remysharp.com/links/2023-01-04-93f84aa7</link>
      <pubDate>Wed, 04 Jan 2023 16:09:43 +0000</pubDate>
      <description><![CDATA[Arduboy walkthrough with larger screen and great looking shell.
Source: www.hackster.io]]></description>
      <content:encoded><![CDATA[
<p>Arduboy walkthrough with larger screen and great looking shell.</p>
<p><em>Source: <a href="https://www.hackster.io/nod3011/arduboy-diy-with-fx-cca276">www.hackster.io</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2023-01-04-93f84aa7">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Safari's date-picker is the cause of 1/3 of our customer support issues</title>
      <guid isPermaLink="false">2022-12-31-57e337af</guid>
      <link>https://remysharp.com/links/2022-12-31-57e337af</link>
      <pubDate>Sat, 31 Dec 2022 13:33:19 +0000</pubDate>
      <description><![CDATA[I'm not even that old and I've been hit with this stupid UX from iOS (thankfully it was a one off for me as I'm primarily an Android user)
Source: gist.github.com]]></description>
      <content:encoded><![CDATA[
<p>I'm not even that old and I've been hit with this stupid UX from iOS (thankfully it was a one off for me as I'm primarily an Android user)</p>
<p><em>Source: <a href="https://gist.github.com/RobertAKARobin/850a408e04d5414e67d308a2b5847378">gist.github.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2022-12-31-57e337af">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Why We're Breaking Up with CSS-in-JS</title>
      <guid isPermaLink="false">2022-10-21-98c59dd2</guid>
      <link>https://remysharp.com/links/2022-10-21-98c59dd2</link>
      <pubDate>Fri, 21 Oct 2022 15:25:18 +0000</pubDate>
      <description><![CDATA[2nd most active maintainer of Emotion writes on why they're leaving CSS-in-JS.
Mostly this is written documentation and proof of what I've been seeing and feeling every time I have to use a CSS-in-JS library.
Via Bruce Lawson https://twitter.com/brucel/status/1582787411469533184
Source: dev.to]]></description>
      <content:encoded><![CDATA[
<p>2nd most active maintainer of Emotion writes on why they're leaving CSS-in-JS.</p>
<p>Mostly this is written documentation and proof of what I've been seeing and feeling every time I have to use a CSS-in-JS library.</p>
<p>Via Bruce Lawson <a href="https://twitter.com/brucel/status/1582787411469533184">https://twitter.com/brucel/status/1582787411469533184</a></p>
<p><em>Source: <a href="https://dev.to/srmagura/why-were-breaking-up-wiht-css-in-js-4g9b">dev.to</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2022-10-21-98c59dd2">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Brutalita Sans - font and editor</title>
      <guid isPermaLink="false">2022-01-18-47fd232c</guid>
      <link>https://remysharp.com/links/2022-01-18-47fd232c</link>
      <pubDate>Tue, 18 Jan 2022 10:00:06 +0000</pubDate>
      <description><![CDATA[A simple mono font, but also comes with it's own easy to use visual editor where you can work on an multi-layered 5x11 grid to customise the font to your liking - and download it as an .OTF file.
Source: brutalita.com]]></description>
      <content:encoded><![CDATA[
<p>A simple mono font, but also comes with it's own easy to use visual editor where you can work on an multi-layered 5x11 grid to customise the font to your liking - and download it as an .OTF file.</p>
<p><em>Source: <a href="https://brutalita.com/">brutalita.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2022-01-18-47fd232c">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Notes on Web3 by Robin Sloan</title>
      <guid isPermaLink="false">2021-11-11-0ad5612e</guid>
      <link>https://remysharp.com/links/2021-11-11-0ad5612e</link>
      <pubDate>Thu, 11 Nov 2021 19:39:57 +0000</pubDate>
      <description><![CDATA[I think this might be one of the first balanced or non-invested reads of what &quot;Web3&quot; means and Sloan's opening notes really resonate:

It’s for kids. I mean that in a good way! I think Web3 has resonated powerfully with young people because it feels like something genuinely new, and it feels like it can be theirs. Who could argue with those feelings? Not me.

The notes go on and I come away with the same general sense that I've had so far of the crowd cheering on for Web3: it's about making money. Which is fine, the world runs on capitalism for the most part, it's just not entirely for me.
And I think that's the rub, the stories I know of the creation and the spread of the web (and indeed the internet) came from those wanting to share and do good. The stories I've read were never about making money but instead creating a place for others.
I will concede that I don't tend to read the &quot;got rich by selling X web start up&quot; - but it's that start in the web that's what drives me, and what I love about the web. It's what I love about the Open Web.
Web Zero if you will. It was about sharing, community, learning and finding a place in the world.
Source: society.robinsloan.com]]></description>
      <content:encoded><![CDATA[
<p>I think this might be one of the first balanced or non-invested reads of what &quot;Web3&quot; means and Sloan's opening notes really resonate:</p>
<blockquote>
<p>It’s for kids. I mean that in a good way! I think Web3 has resonated powerfully with young people because it feels like something genuinely new, and it feels like it can be theirs. Who could argue with those feelings? Not me.</p>
</blockquote>
<p>The notes go on and I come away with the same general sense that I've had so far of the crowd cheering on for Web3: it's about making money. Which is fine, the world runs on capitalism for the most part, it's just not entirely for me.</p>
<p>And I think that's the rub, the stories <em>I know</em> of the creation and the spread of the web (and indeed the internet) came from those wanting to share and do good. The stories I've read were never about making money but instead creating a place for others.</p>
<p>I will concede that I don't tend to read the &quot;got rich by selling X web start up&quot; - but it's that start in the web that's what drives me, and what I love about the web. It's what I love about the Open Web.</p>
<p>Web Zero if you will. It was about sharing, community, learning and finding a place in the world.</p>
<p><em>Source: <a href="https://society.robinsloan.com/archive/notes-on-web3/">society.robinsloan.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-11-11-0ad5612e">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Scribe - An alternative frontend to Medium</title>
      <guid isPermaLink="false">2021-10-27-568af69b</guid>
      <link>https://remysharp.com/links/2021-10-27-568af69b</link>
      <pubDate>Wed, 27 Oct 2021 16:26:35 +0000</pubDate>
      <description><![CDATA[I hadn't realised that Medium had made JavaScript a requirement to be able to read any Medium post - I'd had JS disabled for ages on Medium just because of all the extra cruft they added.
But now, without JS, you only get the first few lines of content, and the rest is loaded entirely with JS - which… is stupid.
Scribe fixes all that and focuses entirely on the author's content.
I also used the FAQ to auto redirect and now I can read the full content without being distracted by Medium's horrid cruft.
Great example of taking back the web.
Source: scribe.rip]]></description>
      <content:encoded><![CDATA[
<p>I hadn't realised that Medium had made JavaScript a requirement to be able to read any Medium post - I'd had JS disabled for ages on Medium just because of all the extra cruft they added.</p>
<p>But now, without JS, you only get the first few lines of content, and the rest is loaded entirely with JS - which… is stupid.</p>
<p>Scribe fixes all that and focuses entirely on the author's content.</p>
<p>I also used the FAQ to auto redirect and now I can read the full content without being distracted by Medium's horrid cruft.</p>
<p>Great example of taking back the web.</p>
<p><em>Source: <a href="https://scribe.rip/">scribe.rip</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-10-27-568af69b">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Screencasting technical guide by Egghead</title>
      <guid isPermaLink="false">2021-10-13-b8820d28</guid>
      <link>https://remysharp.com/links/2021-10-13-b8820d28</link>
      <pubDate>Wed, 13 Oct 2021 11:14:06 +0000</pubDate>
      <description><![CDATA[The Egghead screencasts themselves are excellent, but this is a treasure trove of tips for better screencasts.
Better screencasts often (to me) means simpler for your audience or student to follow along - which is only positive.
Source: howtoegghead.com]]></description>
      <content:encoded><![CDATA[
<p>The Egghead screencasts themselves are excellent, but this is a treasure trove of tips for better screencasts.</p>
<p>Better screencasts often (to me) means simpler for your audience or student to follow along - which is only positive.</p>
<p><em>Source: <a href="https://howtoegghead.com/instructor/screencasting/">howtoegghead.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-10-13-b8820d28">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Understanding the basics of electricity by thinking of it as water</title>
      <guid isPermaLink="false">2021-09-16-e08f8eb6</guid>
      <link>https://remysharp.com/links/2021-09-16-e08f8eb6</link>
      <pubDate>Thu, 16 Sep 2021 14:55:56 +0000</pubDate>
      <description><![CDATA[I've been struggling to get my head around voltage and amps - specifically after I bought a device that wanted 5V and 2A supply, but I was only giving it 1.6A I found the machine would fail (and reboot). The lack of amperage meant it wasn't able to supply the entire board.
Just the image from this post was enough to make it click in my head 👍


VOLTAGE is like the pressure that pushes water through the hose. It is measured in volts (V).


CURRENT is like the diameter of the hose. The wider it is, the more water will flow through. It is measured in amps (I or A).


RESISTANCE is like sand in the hose that slows down the water flow. It is measured in ohms (R or Ω).


Source: www.freeingenergy.com]]></description>
      <content:encoded><![CDATA[
<p>I've been struggling to get my head around voltage and amps - specifically after I bought a device that wanted 5V and 2A supply, but I was only giving it 1.6A I found the machine would fail (and reboot). The lack of amperage meant it wasn't able to supply the entire board.</p>
<p>Just the image from this post was enough to make it click in my head 👍</p>
<ul>
<li>
<p>VOLTAGE is like the pressure that pushes water through the hose. It is measured in volts (V).</p>
</li>
<li>
<p>CURRENT is like the diameter of the hose. The wider it is, the more water will flow through. It is measured in amps (I or A).</p>
</li>
<li>
<p>RESISTANCE is like sand in the hose that slows down the water flow. It is measured in ohms (R or Ω).</p>
</li>
</ul>
<p><em>Source: <a href="https://www.freeingenergy.com/understanding-the-basics-of-electricity-by-thinking-of-it-as-water/">www.freeingenergy.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-09-16-e08f8eb6">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Postcode &amp; Geolocation API for the UK</title>
      <guid isPermaLink="false">2021-09-10-689ee834</guid>
      <link>https://remysharp.com/links/2021-09-10-689ee834</link>
      <pubDate>Fri, 10 Sep 2021 12:26:19 +0000</pubDate>
      <description><![CDATA[Free, Open Source and based solely on Open Data - simple API to boot.
Extremely useful for quick hacks, potentially useful for smaller projects (though limited to UK).
Source: postcodes.io]]></description>
      <content:encoded><![CDATA[
<p>Free, Open Source and based solely on Open Data - simple API to boot.</p>
<p>Extremely useful for quick hacks, potentially useful for smaller projects (though limited to UK).</p>
<p><em>Source: <a href="https://postcodes.io/">postcodes.io</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-09-10-689ee834">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>A collection of modern/faster alternatives to common unix commands</title>
      <guid isPermaLink="false">2021-06-29-2fe8bda4</guid>
      <link>https://remysharp.com/links/2021-06-29-2fe8bda4</link>
      <pubDate>Tue, 29 Jun 2021 08:40:59 +0000</pubDate>
      <description><![CDATA[A great collection of tools similar to my own &quot;CLI improved&quot; post a few years back and includes some tools I use daily already (including jq, bat, fd and fzf).
There's some nice additions but the trick is to use them for local tooling and not for shared tools or workflows as it's less likely someone else will have a tool like sd installed.
The dog and xh look particularly interesting to me.
Source: github.com]]></description>
      <content:encoded><![CDATA[
<p>A great collection of tools similar to my own &quot;CLI improved&quot; post a few years back and includes some tools I use daily already (including <code>jq</code>, <code>bat</code>, <code>fd</code> and <code>fzf</code>).</p>
<p>There's some nice additions but the trick is to use them for local tooling and not for shared tools or workflows as it's less likely someone else will have a tool like <code>sd</code> installed.</p>
<p>The <code>dog</code> and <code>xh</code> look particularly interesting to me.</p>
<p><em>Source: <a href="https://github.com/ibraheemdev/modern-unix">github.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-06-29-2fe8bda4">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Multiplayer DOOM - in the browser 😱</title>
      <guid isPermaLink="false">2021-05-19-69040872</guid>
      <link>https://remysharp.com/links/2021-05-19-69040872</link>
      <pubDate>Wed, 19 May 2021 08:39:53 +0000</pubDate>
      <description><![CDATA[A combination of workers, websockets and &quot;durable objects&quot; (which I've not heard of before).
A detailed walk through of the tech is on CloudFlare - and I do hope the domain remains active for years to come, I'm certainly challenging the 90s teenager in me when I hear those sound effects.
Death match anyone!?
Source: silentspacemarine.com]]></description>
      <content:encoded><![CDATA[
<p>A combination of workers, websockets and &quot;durable objects&quot; (which I've not heard of before).</p>
<p>A detailed walk through of the tech is <a href="https://blog.cloudflare.com/doom-multiplayer-workers">on CloudFlare</a> - and I do hope the domain remains active for years to come, I'm certainly challenging the 90s teenager in me when I hear those sound effects.</p>
<p>Death match anyone!?</p>
<p><em>Source: <a href="https://silentspacemarine.com/">silentspacemarine.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-05-19-69040872">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Pixel font generator</title>
      <guid isPermaLink="false">2021-05-14-803ab535</guid>
      <link>https://remysharp.com/links/2021-05-14-803ab535</link>
      <pubDate>Fri, 14 May 2021 07:18:10 +0000</pubDate>
      <description><![CDATA[Effectively drop in an image, tweak some settings, get a TTF pixel font back out.
There's also a useful YouTube video on how to plan pixel font design called Make a Pixel Art Font
Source: yal.cc]]></description>
      <content:encoded><![CDATA[
<p>Effectively drop in an image, tweak some settings, get a TTF pixel font back out.</p>
<p>There's also a useful YouTube video on how to plan pixel font design called <a href="https://www.youtube.com/watch?v=VwrNcxCGnUY">Make a Pixel Art Font</a></p>
<p><em>Source: <a href="https://yal.cc/r/20/pixelfont/">yal.cc</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-05-14-803ab535">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>mem</title>
      <guid isPermaLink="false">2021-05-14-03da0b5d</guid>
      <link>https://remysharp.com/links/2021-05-14-03da0b5d</link>
      <pubDate>Fri, 14 May 2021 07:08:34 +0000</pubDate>
      <description><![CDATA[Super tiny font ideal for pixel based games.
Source: rndmem.com]]></description>
      <content:encoded><![CDATA[
<p>Super tiny font ideal for pixel based games.</p>
<p><em>Source: <a href="https://rndmem.com/">rndmem.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-05-14-03da0b5d">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Why you shouldn't use ENV variables for secret data</title>
      <guid isPermaLink="false">2021-05-07-689bd71d</guid>
      <link>https://remysharp.com/links/2021-05-07-689bd71d</link>
      <pubDate>Fri, 07 May 2021 08:15:25 +0000</pubDate>
      <description><![CDATA[This is an interesting and compelling post about using ENV values for secrets - something I do almost exclusively.
The only (big) problem I run into is that the solution offered is to use &quot;docker secrets&quot; which, for the vast majority of my own work isn't something that's available (I don't use docker for my development or deployments).
It makes me wonder, is there a simple alternative for those non-docker devs 🤔
Source: diogomonica.com]]></description>
      <content:encoded><![CDATA[
<p>This is an interesting and compelling post about using ENV values for secrets - something I do almost exclusively.</p>
<p>The only (big) problem I run into is that the solution offered is to use &quot;docker secrets&quot; which, for the vast majority of my own work isn't something that's available (I don't use docker for my development or deployments).</p>
<p>It makes me wonder, is there a <em>simple</em> alternative for those non-docker devs 🤔</p>
<p><em>Source: <a href="https://diogomonica.com/2017/03/27/why-you-shouldnt-use-env-variables-for-secret-data/">diogomonica.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-05-07-689bd71d">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Progress Delayed Is Progress Denied</title>
      <guid isPermaLink="false">2021-05-07-72e7b736</guid>
      <link>https://remysharp.com/links/2021-05-07-72e7b736</link>
      <pubDate>Fri, 07 May 2021 08:12:18 +0000</pubDate>
      <description><![CDATA[My short interpretation of Alex Russell's post (or certainly in my mind):


Apple have a monopoly


Safari, for over a decade now, been way way behind


Safari is not a modern browser - this is literally what devs and designers complained about IE6 for years.


Still, read Alex's post - it's packed full of data (as usual) and draws a clear conclusion that Apple, again, are delaying progress for the world wide web.
Source: infrequently.org]]></description>
      <content:encoded><![CDATA[
<p>My short interpretation of Alex Russell's post (or certainly in my mind):</p>
<ul>
<li>
<p>Apple have a monopoly</p>
</li>
<li>
<p>Safari, for over a decade now, been way way behind</p>
</li>
<li>
<p>Safari is not a modern browser - this is literally what devs and designers complained about IE6 for years.</p>
</li>
</ul>
<p>Still, read Alex's post - it's packed full of data (as usual) and draws a clear conclusion that Apple, again, are delaying progress for the world wide web.</p>
<p><em>Source: <a href="https://infrequently.org/2021/04/progress-delayed/">infrequently.org</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-05-07-72e7b736">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>XIP.io</title>
      <guid isPermaLink="false">2021-02-25-d55e7832</guid>
      <link>https://remysharp.com/links/2021-02-25-d55e7832</link>
      <pubDate>Thu, 25 Feb 2021 18:28:16 +0000</pubDate>
      <description><![CDATA[xip.io is a magic domain name that provides wildcard DNS for any IP address. Say the local IP is 10.0.0.1 - this works:
  foo.bar.10.0.0.1.xip.io   resolves to   10.0.0.1

Source: xip.io]]></description>
      <content:encoded><![CDATA[
<p><a href="http://xip.io">xip.io</a> is a magic domain name that provides wildcard DNS for any IP address. Say the local IP is 10.0.0.1 - this works:</p>
<pre><code>  foo.bar.10.0.0.1.xip.io   resolves to   10.0.0.1
</code></pre>
<p><em>Source: <a href="https://xip.io/">xip.io</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-02-25-d55e7832">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Choosing a business model for Simplify</title>
      <guid isPermaLink="false">2021-02-11-b3204be1</guid>
      <link>https://remysharp.com/links/2021-02-11-b3204be1</link>
      <pubDate>Thu, 11 Feb 2021 12:22:40 +0000</pubDate>
      <description><![CDATA[I've been using Simplify (v1) for so long now that when I do come across the original Gmail design I find it visually jarring and overwhelming.
This is such a good product and I'm glad that it's moving into a paid for business model because I can give them my cash in the safe knowledge that the extension will continue to be supported even as Gmail changes under it.
Free is great, but longevity is better and always worth paying for.
Source: on.simpl.fyi]]></description>
      <content:encoded><![CDATA[
<p>I've been using Simplify (v1) for so long now that when I do come across the original Gmail design I find it visually jarring and overwhelming.</p>
<p>This is such a good product and I'm <em>glad</em> that it's moving into a paid for business model because I can give them my cash in the safe knowledge that the extension will continue to be supported even as Gmail changes under it.</p>
<p>Free is great, but longevity is better and always worth paying for.</p>
<p><em>Source: <a href="https://on.simpl.fyi/p/choosing-a-business-model">on.simpl.fyi</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-02-11-b3204be1">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Just write the #!%/* parser</title>
      <guid isPermaLink="false">2021-01-29-a4931557</guid>
      <link>https://remysharp.com/links/2021-01-29-a4931557</link>
      <pubDate>Fri, 29 Jan 2021 23:29:49 +0000</pubDate>
      <description><![CDATA[I've been meaning to read this and work along side it for months - I've had the tab open on my phone for nearly 3 months!
There's a lot of my side project work that requires an AST to make better tools for developers, but I tend to err on the side of &quot;hack a parser and protect with tests&quot;.
However, a full parser that generates a full Abstract Syntax Tree gives me a lot more options.
This post looks like a nice gentle introduction to how to start that.
Source: tiarkrompf.github.io]]></description>
      <content:encoded><![CDATA[
<p>I've been meaning to read this and work along side it for months - I've had the tab open on my phone for nearly 3 months!</p>
<p>There's a lot of my side project work that requires an AST to make better tools for developers, but I tend to err on the side of &quot;hack a parser and protect with tests&quot;.</p>
<p>However, a full parser that generates a full Abstract Syntax Tree gives me a lot more options.</p>
<p>This post looks like a nice gentle introduction to how to start that.</p>
<p><em>Source: <a href="https://tiarkrompf.github.io/notes/?/just-write-the-parser/">tiarkrompf.github.io</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-01-29-a4931557">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Things That Help Me Get Work Done</title>
      <guid isPermaLink="false">2021-01-07-6af79751</guid>
      <link>https://remysharp.com/links/2021-01-07-6af79751</link>
      <pubDate>Thu, 07 Jan 2021 16:57:47 +0000</pubDate>
      <description><![CDATA[Sara Soueidan's post on what keeps her focused is a great read (even if I did miss it being posted over a month ago).
Generally I have a similar process to my day to day work, but two things that specifically stood out for me. She writes

I’ve found that I like to create standing, and consume sitting.

I've realised I have exactly the same approach I just hadn't articulated it. Now that I've got words to go with this process, I'm intentionally switching from standing to sitting depending on the type of work I'm doing.
I've got an IKEA Bekant desk with a custom hack &quot;Megadesk&quot; - so switching to the predefined sit/stand positions is simple for me.
The other item that jumped in Sara's post was the note on music. I love music. Since as far back as I can remember, I've intentionally listened to music more often than not listening to music (i.e. it's always there) - but a funky track can sometimes be distracting and I've used Noisli (similar to Noizio that Sara mentions) for relaxation sounds, but it's not quite &quot;in the zone music&quot;.
Sara recommends Brain.fm which thus far is actually very nice. (Here's Sara's referral code link if you're thinking of signing up).
Good stuff. Worth the read 👍
Source: www.sarasoueidan.com]]></description>
      <content:encoded><![CDATA[
<p>Sara Soueidan's post on what keeps her focused is a great read (even if I did miss it being posted over a month ago).</p>
<p>Generally I have a similar process to my day to day work, but two things that specifically stood out for me. She writes</p>
<blockquote>
<p>I’ve found that I like to create standing, and consume sitting.</p>
</blockquote>
<p>I've realised I have exactly the same approach I just hadn't articulated it. Now that I've got words to go with this process, I'm intentionally switching from standing to sitting depending on the type of work I'm doing.</p>
<p>I've got an <a href="https://www.ikea.com/gb/en/p/bekant-desk-sit-stand-black-stained-ash-veneer-black-s89282218/">IKEA Bekant</a> desk with a custom hack &quot;<a href="https://www.tindie.com/products/gcormier/megadesk/">Megadesk</a>&quot; - so switching to the predefined sit/stand positions is simple for me.</p>
<p>The other item that jumped in Sara's post was the note on music. I love music. Since as far back as I can remember, I've intentionally listened to music more often than not listening to music (i.e. it's always there) - but a funky track can sometimes be distracting and I've used Noisli (similar to Noizio that Sara mentions) for relaxation sounds, but it's not quite &quot;in the zone music&quot;.</p>
<p>Sara recommends <a href="https://www.brain.fm">Brain.fm</a> which thus far is actually very nice. (Here's <a href="https://www.brain.fm/invite/ejrm8nLXJn">Sara's referral code</a> link if you're thinking of signing up).</p>
<p>Good stuff. Worth the read 👍</p>
<p><em>Source: <a href="https://www.sarasoueidan.com/desk/productivity/">www.sarasoueidan.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-01-07-6af79751">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>One liner command</title>
      <guid isPermaLink="false">2021-01-05-35f4483b</guid>
      <link>https://remysharp.com/links/2021-01-05-35f4483b</link>
      <pubDate>Tue, 05 Jan 2021 09:44:11 +0000</pubDate>
      <description><![CDATA[A massive list of single line commands (sometimes a bit convoluted, but still) with a simple explanation of what it does.
I wouldn't use this as a lookup to &quot;do a thing&quot; but it's extremely useful to browse and see what's possible and how you can go about it.
The list is based on linux so for Mac users (like me) won't be able to run every command, but they're still super useful for learning.
Source: linuxcommandlibrary.com]]></description>
      <content:encoded><![CDATA[
<p>A massive list of single line commands (sometimes a bit convoluted, but still) with a simple explanation of what it does.</p>
<p>I wouldn't use this as a lookup to &quot;do a thing&quot; but it's extremely useful to browse and see what's possible and how you can go about it.</p>
<p>The list is based on linux so for Mac users (like me) won't be able to run <em>every</em> command, but they're still super useful for learning.</p>
<p><em>Source: <a href="https://linuxcommandlibrary.com/basic/oneliners.html">linuxcommandlibrary.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2021-01-05-35f4483b">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Make an executable script called $ your PATH</title>
      <guid isPermaLink="false">2020-11-17-92c83571</guid>
      <link>https://remysharp.com/links/2020-11-17-92c83571</link>
      <pubDate>Tue, 17 Nov 2020 04:58:02 +0000</pubDate>
      <description><![CDATA[There's so many code examples that hint at running your code on the terminal prompt, and that hint is a $ character at the start.
I've written about how I run my blog in a way that this character isn't actually part of the content (it's an non-selectable CSS pseudo element), but this doesn't help when taking code from other sites.
Mikkel's tiny, tiny script is so elegant I pinched it right away. The script, called $ consists entirely of:
#!/bin/zsh
$@

Now whenever I paste a line starting with $ ... the command runs as I would intend. Perfect!
Source: github.com]]></description>
      <content:encoded><![CDATA[
<p>There's so many code examples that hint at running your code on the terminal prompt, and that hint is a <code>$</code> character at the start.</p>
<p>I've written about how I run my blog in a way that this character isn't actually part of the content (it's an non-selectable CSS pseudo element), but this doesn't help when taking code from other sites.</p>
<p>Mikkel's tiny, tiny script is so elegant I pinched it right away. The script, called <code>$</code> consists entirely of:</p>
<pre><code>#!/bin/zsh
$@
</code></pre>
<p>Now whenever I paste a line starting with <code>$ ...</code> the command runs as I would intend. Perfect!</p>
<p><em>Source: <a href="https://github.com/mikker/dotfiles/blob/master/bin/%24">github.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2020-11-17-92c83571">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Flamethrowers and Fire Extinguishers – a review of “The Social Dilemma”</title>
      <guid isPermaLink="false">2020-11-04-a26d3c0f</guid>
      <link>https://remysharp.com/links/2020-11-04-a26d3c0f</link>
      <pubDate>Wed, 04 Nov 2020 10:52:36 +0000</pubDate>
      <description><![CDATA[An excellent dissection of The Social Dilemma, a programme on Netflix that I've not been particularly interested in watching, partly because I'm fairly aware of how badly we've messed up our privacy, but also correct, it would seem, I avoided because of the self rewarding Silicon Valley boys claiming &quot;I meant well&quot; whilst carrying on similarly badly thought out paths.

One of the fascinating things about The Social Dilemma is that in one scene a person will proudly note that they are responsible for creating a certain thing, and then in the next scene they will say that nobody is really to blame for that thing. Certainly not them, they thought they were making something great! The insiders simultaneously want to enjoy the cultural clout and authority that comes from being the one who created the like button, while also wanting to escape any accountability for being the person who created the like button. They are willing to be critical of Silicon Valley, they are willing to be critical of the tools they created, but when it comes to their own culpability they are desperate to hide behind a shield of “I meant well.” The insiders do a good job of saying remorseful words, and the camera catches them looking appropriately pensive, but it’s no surprise that these “critics” should feel optimistic, they’ve made fortunes utterly screwing up society, and they’ve done such a great job of getting away with it that now they’re getting to elevate themselves once again by rebranding themselves as “critics.”

Lots of quotable material, and I'll definitely be forwarding this on to my family and friends in the hope they find time to read the full article.
/via Alice Bartlett
Source: librarianshipwreck.wordpress.com]]></description>
      <content:encoded><![CDATA[
<p>An excellent dissection of The Social Dilemma, a programme on Netflix that I've not been particularly interested in watching, partly because I'm fairly aware of how badly we've messed up our privacy, but also correct, it would seem, I avoided because of the self rewarding Silicon Valley boys claiming &quot;I meant well&quot; whilst carrying on similarly badly thought out paths.</p>
<blockquote>
<p>One of the fascinating things about The Social Dilemma is that in one scene a person will proudly note that they are responsible for creating a certain thing, and then in the next scene they will say that nobody is really to blame for that thing. Certainly not them, they thought they were making something great! The insiders simultaneously want to enjoy the cultural clout and authority that comes from being the one who created the like button, while also wanting to escape any accountability for being the person who created the like button. They are willing to be critical of Silicon Valley, they are willing to be critical of the tools they created, but when it comes to their own culpability they are desperate to hide behind a shield of “I meant well.” The insiders do a good job of saying remorseful words, and the camera catches them looking appropriately pensive, but it’s no surprise that these “critics” should feel optimistic, they’ve made fortunes utterly screwing up society, and they’ve done such a great job of getting away with it that now they’re getting to elevate themselves once again by rebranding themselves as “critics.”</p>
</blockquote>
<p>Lots of quotable material, and I'll definitely be forwarding this on to my family and friends in the hope they find time to read the full article.</p>
<p>/via <a href="https://alicebartlett.co.uk">Alice Bartlett</a></p>
<p><em>Source: <a href="https://librarianshipwreck.wordpress.com/2020/09/17/flamethrowers-and-fire-extinguishers-a-review-of-the-social-dilemma/">librarianshipwreck.wordpress.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2020-11-04-a26d3c0f">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Sorting Algorithms Visualized</title>
      <guid isPermaLink="false">2020-10-11-0bd1ef24</guid>
      <link>https://remysharp.com/links/2020-10-11-0bd1ef24</link>
      <pubDate>Sun, 11 Oct 2020 20:57:32 +0000</pubDate>
      <description><![CDATA[There's been many (many!) visualised sorting algos before, but this is particularly enjoyable - and beautiful a number of different algorithms are used to sort colour (a problem that's hard by itself).
Really interesting stuff, but also reminds me that picking an algorithms that suits the dataset is an important consideration.
Source: imgur.com]]></description>
      <content:encoded><![CDATA[
<p>There's been many (many!) visualised sorting algos before, but this is particularly enjoyable - and beautiful a number of different algorithms are used to sort colour (a problem that's hard by itself).</p>
<p>Really interesting stuff, but also reminds me that picking an algorithms that suits the dataset is an important consideration.</p>
<p><em>Source: <a href="https://imgur.com/gallery/voutF">imgur.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2020-10-11-0bd1ef24">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>TypeLit.io</title>
      <guid isPermaLink="false">2020-10-10-d5dc2426</guid>
      <link>https://remysharp.com/links/2020-10-10-d5dc2426</link>
      <pubDate>Sat, 10 Oct 2020 09:49:04 +0000</pubDate>
      <description><![CDATA[Practice typing by retyping ENTIRE classic novels.
A much better technique than the random letter generator since you're building entire words.
Source: www.typelit.io]]></description>
      <content:encoded><![CDATA[
<p>Practice typing by retyping ENTIRE classic novels.</p>
<p>A much better technique than the random letter generator since you're building entire words.</p>
<p><em>Source: <a href="https://www.typelit.io/">www.typelit.io</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2020-10-10-d5dc2426">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Online MIDI Editor</title>
      <guid isPermaLink="false">2020-10-10-19120ebe</guid>
      <link>https://remysharp.com/links/2020-10-10-19120ebe</link>
      <pubDate>Sat, 10 Oct 2020 09:48:17 +0000</pubDate>
      <description><![CDATA[Really nice music editor web app.
Source: signal.vercel.app]]></description>
      <content:encoded><![CDATA[
<p>Really nice music editor web app.</p>
<p><em>Source: <a href="https://signal.vercel.app/">signal.vercel.app</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2020-10-10-19120ebe">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
    <item>
      <title>Use React.memo() wisely</title>
      <guid isPermaLink="false">2020-10-06-7e330742</guid>
      <link>https://remysharp.com/links/2020-10-06-7e330742</link>
      <pubDate>Tue, 06 Oct 2020 09:41:08 +0000</pubDate>
      <description><![CDATA[A useful focused post on React's memo function. Since moving away from classes (and forcing?) to use pure components with hooks, methods like shouldComponentUpdate can be a bit of a black box.
This post reminds me that all components are re-rendered (in memory at least) unless memo is used, and some of the pros and cons and use cases (and when you don't want to use it).
Frankly, doing &quot;modern web dev&quot; is a bit of minefield of these things...
Source: dmitripavlutin.com]]></description>
      <content:encoded><![CDATA[
<p>A useful focused post on React's memo function. Since moving away from classes (and forcing?) to use pure components with hooks, methods like <code>shouldComponentUpdate</code> can be a bit of a black box.</p>
<p>This post reminds me that all components are re-rendered (in memory at least) unless memo is used, and some of the pros and cons and use cases (and when you don't want to use it).</p>
<p>Frankly, doing &quot;modern web dev&quot; is a bit of minefield of these things...</p>
<p><em>Source: <a href="https://dmitripavlutin.com/use-react-memo-wisely/">dmitripavlutin.com</a></em></p>
<p><em>Originally published on <a href="https://remysharp.com/links/2020-10-06-7e330742">Remy Sharp's b:log</a></em></p>]]></content:encoded>
    </item>
  </channel>
</rss>