<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Links | Arpit&apos;s Blog</title><description>Hand-picked links from the depths of the interweb by Arpit Agrawal.</description><link>https://arpit.blog/</link><item><title>What Is CSS Containment and How Can I Use It? – CSS Wizardry</title><link>https://csswizardry.com/2026/04/what-is-css-containment-and-how-can-i-use-it/</link><guid isPermaLink="true">https://csswizardry.com/2026/04/what-is-css-containment-and-how-can-i-use-it/</guid><pubDate>Mon, 06 Apr 2026 07:39:00 GMT</pubDate><content:encoded>&lt;p&gt;Harry Roberts on what CSS containment actually is, what each &lt;code&gt;contain&lt;/code&gt; value does, and how to use it confidently on real projects without creating hard-to-debug side effects.&lt;/p&gt;</content:encoded><category>css</category><category>containment</category><category>harry-roberts</category></item><item><title>Writing code is cheap now - Agentic Engineering Patterns - Simon Willison&apos;s Weblog</title><link>https://simonwillison.net/guides/agentic-engineering-patterns/code-is-cheap/</link><guid isPermaLink="true">https://simonwillison.net/guides/agentic-engineering-patterns/code-is-cheap/</guid><pubDate>Tue, 24 Mar 2026 04:35:00 GMT</pubDate><content:encoded>&lt;p&gt;Simon Willison on what they mean by “good code”:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;The code works. It does what it’s meant to do, without bugs.&lt;/li&gt;
&lt;li&gt;We &lt;em&gt;know the code works&lt;/em&gt;. We’ve taken steps to confirm to ourselves and to others that the code is fit for purpose.&lt;/li&gt;
&lt;li&gt;It solves the right problem.&lt;/li&gt;
&lt;li&gt;It handles error cases gracefully and predictably: it doesn’t just consider the happy path. Errors should provide enough information to help future maintainers understand what went wrong.&lt;/li&gt;
&lt;li&gt;It’s simple and minimal - it does only what’s needed, in a way that both humans and machines can understand now and maintain in the future.&lt;/li&gt;
&lt;li&gt;It’s protected by tests. The tests show that it works now and act as a regression suite to avoid it quietly breaking in the future.&lt;/li&gt;
&lt;li&gt;It’s documented at an appropriate level, and that documentation reflects the current state of the system - if the code changes an existing behavior the existing documentation needs to be updated to match.&lt;/li&gt;
&lt;li&gt;The design affords future changes. It’s important to maintain &lt;a href=&quot;https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it&quot;&gt;YAGNI&lt;/a&gt; - code with added complexity to anticipate future changes that may never come is often bad code - but it’s also important not to write code that makes future changes much harder than they should be.&lt;/li&gt;
&lt;li&gt;All of the other relevant “ilities” - accessibility, testability, reliability, security, maintainability, observability, scalability, usability - the non-functional quality measures that are appropriate for the particular class of software being developed.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;</content:encoded><category>agentic-engineering</category><category>simon-willison</category></item><item><title>Adactio: Journal—Magic</title><link>https://adactio.com/journal/22399</link><guid isPermaLink="true">https://adactio.com/journal/22399</guid><pubDate>Tue, 24 Mar 2026 04:26:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Libraries are bits of other people’s code that I call from my code. Frameworks are other people’s code that call bits of my code.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>abstractions</category><category>maintenance</category></item><item><title>What is agentic engineering? - Agentic Engineering Patterns - Simon Willison&apos;s Weblog</title><link>https://simonwillison.net/guides/agentic-engineering-patterns/what-is-agentic-engineering/</link><guid isPermaLink="true">https://simonwillison.net/guides/agentic-engineering-patterns/what-is-agentic-engineering/</guid><pubDate>Tue, 24 Mar 2026 04:17:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Writing code has never been the sole activity of a software engineer. The craft has always been figuring out what code to write. Any given software problem has dozens of potential solutions, each with their own tradeoffs. Our job is to navigate those options and find the ones that are the best fit for our unique set of circumstances and requirements.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>agentic-engineering</category><category>software-engineering</category><category>simon-willison</category></item><item><title>You Might Debate It — If You Could See It - Jim Nielsen’s Blog</title><link>https://blog.jim-nielsen.com/2026/opacity-of-generative-tools/</link><guid isPermaLink="true">https://blog.jim-nielsen.com/2026/opacity-of-generative-tools/</guid><pubDate>Mon, 23 Mar 2026 03:26:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;When you offload your thinking, you might be on-loading someone else’s you’d never agree to — personally or collectively.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>llm</category></item><item><title>Underlining Links With CSS | Always Twisted</title><link>https://www.alwaystwisted.com/articles/underlining-links-with-css</link><guid isPermaLink="true">https://www.alwaystwisted.com/articles/underlining-links-with-css</guid><pubDate>Wed, 25 Feb 2026 11:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Today I learned about the CSS property &lt;code&gt;text-underline-position&lt;/code&gt;. As Stuart mentions, &lt;q&gt;the &lt;code&gt;under&lt;/code&gt; value forces the underline to sit below all the descenders, giving you a consistent baseline.&lt;/q&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code css-variables&quot; style=&quot;background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;css&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-token-constant)&quot;&gt;	text-underline-position&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-constant)&quot;&gt; under&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content:encoded><category>underline</category><category>css</category><category>stuart-robson</category></item><item><title>Modular: The Claude C Compiler: What It Reveals About the Future of Software</title><link>https://www.modular.com/blog/the-claude-c-compiler-what-it-reveals-about-the-future-of-software</link><guid isPermaLink="true">https://www.modular.com/blog/the-claude-c-compiler-what-it-reveals-about-the-future-of-software</guid><pubDate>Wed, 25 Feb 2026 08:29:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Good software depends on judgment, communication, and clear abstraction. AI has amplified this.&lt;/li&gt;
&lt;li&gt;AI coding is automation of implementation, so design and stewardship become more important.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;</content:encoded><category>claude</category><category>ai</category><category>llm</category><category>software-engineering</category></item><item><title>zachleat’s Twitter Archive—№ 20,184</title><link>https://www.zachleat.com/twitter/982251377010270210/</link><guid isPermaLink="true">https://www.zachleat.com/twitter/982251377010270210/</guid><pubDate>Tue, 10 Feb 2026 22:33:00 GMT</pubDate><content:encoded>&lt;p&gt;Zach Leatherman on frontend architecture and building for longevity amid framework churn:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;👏 Hire someone that’s good at HTML and CSS to build components independent of JS frameworks 👏&lt;/li&gt;
&lt;li&gt;Plug components into a JS framework and layer on behavior later&lt;/li&gt;
&lt;li&gt;Pay HTML/CSS devs what they deserve for giving part of your codebase longer shelf life than unpasteurized milk&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;</content:encoded><category>frontend-architecture</category><category>component-design</category><category>frameworks</category><category>zach-leatherman</category></item><item><title>Saying “No” In an Age of Abundance - Jim Nielsen’s Blog</title><link>https://blog.jim-nielsen.com/2026/saying-no/</link><guid isPermaLink="true">https://blog.jim-nielsen.com/2026/saying-no/</guid><pubDate>Wed, 04 Feb 2026 05:05:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;It’s never been a good idea to ship everything you think of. Every addition accretes complexity and comes with a cognitive cost.&lt;/p&gt;
&lt;p&gt;Maybe we need to reframe the concept of scarcity from &lt;em&gt;us&lt;/em&gt;, the makers of software, to &lt;em&gt;them&lt;/em&gt;, the users of software. Their resources are what matter most:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Attention (too many features and they can’t all be used, or even tried)&lt;/li&gt;
&lt;li&gt;Stability (too much frequent change is an impediment to learning a product)&lt;/li&gt;
&lt;li&gt;Clarity (too many options creates confusion and paralysis)&lt;/li&gt;
&lt;li&gt;Coherence (too many plots and subplots cannot tell a unified story)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;</content:encoded><category>focus</category><category>product-design</category><category>feature-creep</category><category>jim-nielsen</category></item><item><title>Singing the gospel of collective efficacy (Interconnected)</title><link>https://interconnected.org/home/2026/01/30/efficacy</link><guid isPermaLink="true">https://interconnected.org/home/2026/01/30/efficacy</guid><pubDate>Mon, 02 Feb 2026 00:45:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Similarly we all love when the swifts visit (beautiful birds), so somebody started a group to get swift nest boxes made and installed collectively, then applied for subsidy funding, then got everyone to chip in such that people who couldn’t afford it could have their boxes paid for, and now suddenly we’re all writing to MPs and following the legislation to include swift nesting sites in new build houses. Etc.&lt;/p&gt;
&lt;p&gt;It’s called &lt;em&gt;collective efficacy&lt;/em&gt;, the belief that you can make a difference by acting together.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>collective-action</category><category>community</category><category>matt-webb</category></item><item><title>Pedagogy Recommendations</title><link>https://parentheticallyspeaking.org/articles/pedagogy-recommendations/</link><guid isPermaLink="true">https://parentheticallyspeaking.org/articles/pedagogy-recommendations/</guid><pubDate>Fri, 30 Jan 2026 05:23:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Every time you are inclined to use the word “teach”, replace it with “learn”. That is, instead of saying, “I teach”, say “They learn”. It’s very easy to determine what you teach; you can just fill slides with text and claim to have taught. Shift your focus to determining how you know whether they learned what you claim to have taught (or indeed anything at all!). That is much harder, but that is also the real objective of any educator.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>teaching</category><category>learning</category></item><item><title>Web development tip: disable pointer events on link images</title><link>https://lapcatsoftware.com/articles/2025/11/2.html</link><guid isPermaLink="true">https://lapcatsoftware.com/articles/2025/11/2.html</guid><pubDate>Thu, 29 Jan 2026 13:54:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;The problem is that Live Text, “Select text in images to copy or take action,” is enabled by default on iOS devices (Settings → General → Language &amp;#x26; Region), which can interfere with the contextual menu in Safari. Pressing down on the above link may select the text inside the image instead of selecting the link URL.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>css</category><category>link</category><category>images</category><category>safari</category></item><item><title>Easy Measures Doing, Simple Measures Understanding - Jim Nielsen’s Blog</title><link>https://blog.jim-nielsen.com/2026/easy-vs-simple/</link><guid isPermaLink="true">https://blog.jim-nielsen.com/2026/easy-vs-simple/</guid><pubDate>Thu, 22 Jan 2026 11:12:00 GMT</pubDate><content:encoded>&lt;p&gt;Excellent framing from Jim Nielsen, building on &lt;a href=&quot;https://www.youtube.com/watch?v=eIoohUmYpGI&quot;&gt;Jake Nations’ talk about shipping code we don’t fully understand&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Easy means you can do with little effort.&lt;/p&gt;
&lt;p&gt;Simple means you can understand what you do with little effort.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>jim-nielsen</category><category>complexity</category><category>design</category></item><item><title>Reckoning: Frontend&apos;s Lost Decade | Alex Russell | performance.now() 2024 - YouTube</title><link>https://www.youtube.com/watch?v=0XwWVjQOmyg</link><guid isPermaLink="true">https://www.youtube.com/watch?v=0XwWVjQOmyg</guid><pubDate>Fri, 09 Jan 2026 13:19:00 GMT</pubDate><content:encoded>&lt;p&gt;In this excellent, data-driven talk, Alex Russell explains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What “winning” means for the web and why it’s a vital cause&lt;/li&gt;
&lt;li&gt;How the web is losing the competition today on mobile, despite its success on desktop&lt;/li&gt;
&lt;li&gt;The path forward: Getting things out of frameworks and using the web platform&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>platform</category><category>frameworks</category><category>mobile</category><category>apps</category><category>performance</category><category>alex-russell</category></item><item><title>How to choose your Baseline target  |  Articles  |  web.dev</title><link>https://web.dev/articles/how-to-choose-your-baseline-target</link><guid isPermaLink="true">https://web.dev/articles/how-to-choose-your-baseline-target</guid><pubDate>Mon, 05 Jan 2026 08:22:00 GMT</pubDate><content:encoded>&lt;p&gt;Jeremy Wagner and Rachel Andrew explain how to use analytics to select a Baseline target and what to do when you don’t have any real user data.&lt;/p&gt;
&lt;p&gt;In cases where there isn’t any real user data:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[…] you can get a general idea of support for different Baseline targets through &lt;a href=&quot;https://rumarchive.com/insights/#baseline&quot;&gt;RUM Archive Insights&lt;/a&gt;, even allowing you to filter down to the country level.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;They also address a practical follow-up question: &lt;strong&gt;what to do about features that don’t meet your chosen Baseline target.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Baseline doesn’t prescribe a specific path here, but the authors suggest a useful framework for categorizing features based on their “failure mode”:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Enhancement:&lt;/strong&gt; If the feature is used in an unsupported browser, the experience is not broken. The experience could possibly be degraded, but may not likely be noticeable to the user. Example: &lt;code&gt;loading=&quot;lazy&quot;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Additive:&lt;/strong&gt; The feature provides some additive benefits that may be noticeable—such as changes in page styling or some functionality. The difference may not be noticeable to users if the feature is unsupported, barring comparison in a browser that does support it. Example: Subgrid&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Critical:&lt;/strong&gt; If the feature is unsupported, the user will have a negative user experience—possibly even one that’s broken altogether. Example: File System Access API used as a central and necessary feature.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;They also highlight &lt;a href=&quot;https://browsersupport.clearleft.com/&quot;&gt;Clearleft’s browser support policy&lt;/a&gt;, where they target Baseline Widely available while still evaluating whether newer features can be used as progressive enhancements before ruling them out entirely.&lt;/p&gt;</content:encoded><category>baseline</category><category>browser-support</category><category>progressive-enhancement</category><category>analytics</category></item><item><title>Jason Pamental - The Life of p - YouTube</title><link>https://www.youtube.com/watch?v=4ggOmfBtWRM</link><guid isPermaLink="true">https://www.youtube.com/watch?v=4ggOmfBtWRM</guid><pubDate>Thu, 01 Jan 2026 16:33:00 GMT</pubDate><content:encoded>&lt;p&gt;I just saw Jason Pamental’s excellent talk on ‘The Life of &lt;code&gt;&amp;#x3C;p&gt;&lt;/code&gt;’. In this talk, Jason traces the evolution of paragraph design in print and shows how those typographic ideas can be applied using CSS.&lt;/p&gt;
&lt;p&gt;There’s one moment during the Q&amp;#x26;A where Jason mentions:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[…] you see the page gets small, but they don’t change the scale of the headers. So you end up with like an &lt;code&gt;&amp;#x3C;h1&gt;&lt;/code&gt; with one word per line. It’s a really awkward break. So I think proportion with varying screen size is probably the most overlooked thing right now that I’d want to see people think about more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I wasn’t a web developer 10 years ago when Jason gave this talk, but with over five years of experience now, it’s striking that I only became aware of proportional type scaling as an idea in the last couple of years. Nowadays, I use &lt;a href=&quot;https://utopia.fyi/&quot;&gt;utopia.fyi&lt;/a&gt; to create fluid type (and space) scales across viewport ranges, which helps address the problem Jason mentioned.&lt;/p&gt;</content:encoded><category>typography</category><category>design</category><category>paragraph</category><category>css</category></item><item><title>Browser support at Clearleft</title><link>https://browsersupport.clearleft.com/</link><guid isPermaLink="true">https://browsersupport.clearleft.com/</guid><pubDate>Tue, 30 Dec 2025 09:57:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Underlying our browser support policy are two foundational principles:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Website content and core functionality should be accessible to everyone.&lt;/li&gt;
&lt;li&gt;It’s okay for websites to look different in different browsers.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If content is unreadable in some browsers, that’s a bug that we will fix.&lt;/p&gt;
&lt;p&gt;If content is displayed slightly differently in some browsers, we consider that to be a facet of the web, not a bug. This means that there will sometimes be subtle visual and functional differences from browser to browser. We deem this acceptable provided content and core functionality are unaffected.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>baseline</category><category>browser-support</category><category>progressive-enhancement</category><category>principle</category></item><item><title>Config 2024: Serious play (Andy Allen, Software Designer, !Boring) | Figma - YouTube</title><link>https://www.youtube.com/watch?v=wBnIyD5I8mM</link><guid isPermaLink="true">https://www.youtube.com/watch?v=wBnIyD5I8mM</guid><pubDate>Mon, 22 Dec 2025 16:33:00 GMT</pubDate><content:encoded>&lt;p&gt;Great talk by Andy Allen on how software designers can learn from game designers.&lt;/p&gt;
&lt;p&gt;It reminded me of &lt;a href=&quot;https://chrome.dev/carousel/vertical/wheel/&quot;&gt;the Wheel by Adam Argyle&lt;/a&gt;, inspired by the arcade game Black Emperor. The game feel is so strong that I find myself scrolling up and down again and again just to play with it and experience that delightful bounce effect.&lt;/p&gt;</content:encoded><category>design</category><category>games</category></item><item><title>do THIS to get a developer job in 2024 - YouTube</title><link>https://www.youtube.com/watch?v=T0deG6OpadM</link><guid isPermaLink="true">https://www.youtube.com/watch?v=T0deG6OpadM</guid><pubDate>Fri, 19 Dec 2025 10:58:00 GMT</pubDate><content:encoded>&lt;p&gt;Jason Lengstorf on how to get hired as a developer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Document what you learn publicly&lt;/strong&gt; — consistency matters more than polish.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Show your work&lt;/strong&gt; — CodePen demos, personal projects or tutorials all count.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Participate in communities&lt;/strong&gt; — Bluesky, Mastodon, Discord.&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>job</category><category>hiring</category><category>career</category><category>jason-lengstorf</category></item><item><title>The f*** off contact page - Nic Chan</title><link>https://www.nicchan.me/blog/the-f-off-contact-page/</link><guid isPermaLink="true">https://www.nicchan.me/blog/the-f-off-contact-page/</guid><pubDate>Mon, 08 Dec 2025 10:51:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Instead of seeing us as people who brought valuable knowledge and expertise to the project, they saw us as the hands that would execute their vision.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The above bit from Nic captures a dynamic I want to address upfront with clients, so they never treat me as just a pair of hands.&lt;/p&gt;
&lt;p&gt;Then there’s the this bit, which really resonated with me (because I’ve been there too and it sucks):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;While I personally believe in the value of good design, I also believe there are a lot of smoke-and-mirrors in the industry, and I hated the thought that I might have inadvertently contributed to it. Even if the client is happy, it didn’t meet my internal bar for a quality product worth sticking my name on, and I feel like I’ve let down both the client and the end-users.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nic mentions how they hope to avoid similar situations in the future by blogging:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;By blogging, I’m putting a body of work out there that communicates my values and ethos. While much of the details of my client work has to remain private, these posts can be public, and hopefully they can help me find people who resonate with what I have to offer. Or you know, just be bold enough to communicate ‘Fuck off’ to those who don’t!&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>design</category><category>client-work</category><category>blogging</category><category>nic-chan</category></item><item><title>Conditional JSX in Astro — Roma’s Unpolished Posts</title><link>https://blog.kizu.dev/conditional-jsx-in-astro/</link><guid isPermaLink="true">https://blog.kizu.dev/conditional-jsx-in-astro/</guid><pubDate>Mon, 08 Dec 2025 07:21:00 GMT</pubDate><content:encoded>&lt;p&gt;Roman Komarov on how they use an &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Glossary/IIFE&quot;&gt;IIFE (Immediately Invoked Function Expression)&lt;/a&gt; to handle complex conditional rendering in &lt;code&gt;.astro&lt;/code&gt; components.&lt;/p&gt;
&lt;pre class=&quot;astro-code css-variables&quot; style=&quot;background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;astro&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-token-comment)&quot;&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-constant)&quot;&gt;linkText&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-constant)&quot;&gt; isDiv&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-constant)&quot;&gt; false&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt; } &lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-constant)&quot;&gt; Astro&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;.props;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-token-comment)&quot;&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;	(() &lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;=&gt;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;		const&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-constant)&quot;&gt; someContent&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-function)&quot;&gt; href&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;&quot;#hello&quot;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;&gt;{linkText}&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;		return&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;			&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-function)&quot;&gt; class&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;&quot;wrapper&quot;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;				{isDiv &lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;					&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-function)&quot;&gt; class&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;&quot;inner&quot;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;&gt;{someContent}&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;				) &lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;					&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;span&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-function)&quot;&gt; class&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;&quot;inner&quot;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;&gt;{someContent}&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;span&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;				)}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;			&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;		);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;	})()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content:encoded><category>astro</category><category>jsx</category><category>iife</category><category>javascript</category><category>roman-komarov</category></item><item><title>&apos;Dhurandhar&apos; Movie Review: No Love Lost or Found In Ranveer Singh&apos;s Spy Thriller</title><link>https://www.hollywoodreporterindia.com/reviews/theatrical/dhurandhar-movie-review-no-love-lost-or-found-in-ranveer-singhs-spy-thriller</link><guid isPermaLink="true">https://www.hollywoodreporterindia.com/reviews/theatrical/dhurandhar-movie-review-no-love-lost-or-found-in-ranveer-singhs-spy-thriller</guid><pubDate>Sat, 06 Dec 2025 13:23:00 GMT</pubDate><content:encoded>&lt;p&gt;Loved this bit from Rahul Desai’s review of ‘Dhurandhar’:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[…] the term “fictional film inspired by real events” means that historical authenticity will be cited if the film-making is questioned, and fiction will be cited if the historical authenticity is questioned.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>fiction</category><category>history</category><category>film</category><category>india</category></item><item><title>HTML and Typescript.</title><link>https://medium.com/@mandy.michael/understanding-why-semantic-html-is-important-as-told-by-typescript-bd71ad41e6c4</link><guid isPermaLink="true">https://medium.com/@mandy.michael/understanding-why-semantic-html-is-important-as-told-by-typescript-bd71ad41e6c4</guid><pubDate>Thu, 20 Nov 2025 05:52:00 GMT</pubDate><content:encoded>&lt;p&gt;Mandy Michael uses a brilliant analogy to explain why developers must get to know the HTML elements available to them and use the appropriate one for their content.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In TypeScript, we have the concept of an &lt;code&gt;any&lt;/code&gt; type. When you assign a type of &lt;code&gt;any&lt;/code&gt; it means the content can be anything. […] But if everything is typed as &lt;code&gt;any&lt;/code&gt; then you lose the benefits of the language.&lt;/p&gt;
&lt;p&gt;This is the same with HTML. If you use the &lt;code&gt;&amp;#x3C;div&gt;&lt;/code&gt; everywhere, you aren’t making the most of language. Because of this it’s important that you actively choose what the right element is and don’t just use the default &lt;code&gt;&amp;#x3C;div&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This reminded me of the following quote by &lt;a href=&quot;https://www.linkedin.com/learning/html-essential-training-4/the-syntax-of-html-elements&quot;&gt;Jen Simmons from their HTML course&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;HTML syntax itself is fairly simple. The trickier part is knowing which tags to use when.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>html</category><category>typescript</category><category>semantics</category></item><item><title>Using responsive images in HTML - HTML | MDN</title><link>https://developer.mozilla.org/en-US/docs/Web/HTML/Guides/Responsive_images</link><guid isPermaLink="true">https://developer.mozilla.org/en-US/docs/Web/HTML/Guides/Responsive_images</guid><pubDate>Mon, 17 Nov 2025 09:04:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://css-tricks.com/images-are-hard/&quot;&gt;Images on the web are hard&lt;/a&gt;. After trying and failing so many times before, now I finally understand how to configure &lt;code&gt;srcset&lt;/code&gt; and &lt;code&gt;sizes&lt;/code&gt; attributes to serve differently sized images for different viewports.&lt;/p&gt;
&lt;p&gt;Also worth checking out: &lt;a href=&quot;https://12daysofweb.dev/2021/image-display-elements/&quot;&gt;Image Display Elements&lt;/a&gt; by Stephanie Eckles.&lt;/p&gt;</content:encoded><category>html</category><category>images</category><category>responsive-web-design</category><category>guide</category></item><item><title>The difference between @ts-ignore and @ts-expect-error | Stefan Judis Web Development</title><link>https://www.stefanjudis.com/today-i-learned/the-difference-ts-ignore-and-ts-expect-error/</link><guid isPermaLink="true">https://www.stefanjudis.com/today-i-learned/the-difference-ts-ignore-and-ts-expect-error/</guid><pubDate>Fri, 14 Nov 2025 12:48:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;@ts-expect-error&lt;/code&gt; will let you know when there’s no TypeScript error to silence and when it has become useless. &lt;code&gt;@ts-ignore&lt;/code&gt; will stay put and sit silently wherever you placed it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Not only did I not know the difference between &lt;code&gt;@ts-ignore&lt;/code&gt; and &lt;code&gt;@ts-expect-error&lt;/code&gt;, I was totally unaware there was such a directive as &lt;code&gt;@ts-expect-error&lt;/code&gt;.&lt;/p&gt;</content:encoded><category>typescript</category><category>stefan-judis</category></item><item><title>Every site needs a Links Page / Why linking matters | Melon&apos;s Thoughts</title><link>https://thoughts.melonking.net/thoughts/every-site-needs-a-links-page-why-linking-matters</link><guid isPermaLink="true">https://thoughts.melonking.net/thoughts/every-site-needs-a-links-page-why-linking-matters</guid><pubDate>Fri, 07 Nov 2025 13:05:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;The goal of linking is about building community and creating networks that truly exist to support you and those around you; those networks will persist when social media lets you down.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>links</category><category>community</category><category>web</category></item><item><title>A cartoonist&apos;s review of AI art - The Oatmeal</title><link>https://theoatmeal.com/comics/ai_art</link><guid isPermaLink="true">https://theoatmeal.com/comics/ai_art</guid><pubDate>Tue, 04 Nov 2025 16:34:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;When I consume AI art, it also evokes a feeling. Good, bad, neutral—whatever. Until I find out that it’s AI art. Then I feel deflated, grossed out, and maybe a little bit bored.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>ai</category><category>art</category><category>the-oatmeal</category></item><item><title>View transitions: Handling aspect ratio changes</title><link>https://jakearchibald.com/2024/view-transitions-handling-aspect-ratio-changes/</link><guid isPermaLink="true">https://jakearchibald.com/2024/view-transitions-handling-aspect-ratio-changes/</guid><pubDate>Thu, 30 Oct 2025 03:50:00 GMT</pubDate><content:encoded>&lt;p&gt;To be honest, I had a tough time understanding this article completely. But that is a me problem because I think I don’t have the right mental model for view transitions yet. Nevertheless, I’m sure this article will be super helpful someday in the future.&lt;/p&gt;</content:encoded><category>view-transitions</category><category>aspect-ratio</category><category>animations</category><category>css</category><category>jake-archibald</category></item><item><title>Enrique Peñalosa: Why buses represent democracy in action - YouTube</title><link>https://www.youtube.com/watch?v=j3YjeARuilI</link><guid isPermaLink="true">https://www.youtube.com/watch?v=j3YjeARuilI</guid><pubDate>Wed, 29 Oct 2025 11:16:00 GMT</pubDate><content:encoded>&lt;p&gt;Enrique Peñalosa on how to build cities that prioritise human beings over cars and guarantee a citizen’s right to safe mobility.&lt;/p&gt;
&lt;p&gt;In my opinion, the following bit at the start of the video certainly holds true for India:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The great inequality in developing countries makes it difficult to see, for example, that in terms of transport, an advanced city is not one where even the poor use cars, but rather one where even the rich use public transport or bicycles.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>mobility</category><category>public-transport</category><category>transport-infrastructure</category></item><item><title>How I used 11ty to power a world-class museum&apos;s digital infrastructure with Nic Chan | 11ty Meetup - YouTube</title><link>https://www.youtube.com/watch?v=RRqnRCXBpzY</link><guid isPermaLink="true">https://www.youtube.com/watch?v=RRqnRCXBpzY</guid><pubDate>Mon, 27 Oct 2025 14:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Nic Chan on how they overcame the hurdle of getting the signs to refresh on a page in a signage browser with no JavaScript. The solution was using a &lt;code&gt;&amp;#x3C;meta&gt;&lt;/code&gt; tag that tells the browser to refresh the page after the given number of seconds.&lt;/p&gt;
&lt;pre class=&quot;astro-code css-variables&quot; style=&quot;background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;html&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;meta&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-function)&quot;&gt; http-equiv&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;&quot;refresh&quot;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-function)&quot;&gt; content&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-token-string-expression)&quot;&gt;&quot;3600&quot;&lt;/span&gt;&lt;span style=&quot;color:var(--astro-code-foreground)&quot;&gt; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content:encoded><category>meta</category><category>html</category><category>javascript</category><category>nic-chan</category></item><item><title>The Simple Algorithm That Ants Use to Build Bridges | Quanta Magazine</title><link>https://www.quantamagazine.org/the-simple-algorithm-that-ants-use-to-build-bridges-20180226/</link><guid isPermaLink="true">https://www.quantamagazine.org/the-simple-algorithm-that-ants-use-to-build-bridges-20180226/</guid><pubDate>Thu, 16 Oct 2025 13:05:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;To see how this unfolds, take the perspective of an ant on the march. When it comes to a gap in its path, it slows down. The rest of the colony, still barreling along at 12 centimeters per second, comes trampling over its back. At this point, two simple rules kick in.&lt;/p&gt;
&lt;p&gt;The first tells the ant that when it feels other ants walking on its back, it should freeze. “As long as someone walks over you, you stay put,” Garnier said.&lt;/p&gt;
&lt;p&gt;This same process repeats in the other ants: They step over the first ant, but — uh-oh — the gap is still there, so the next ant in line slows, gets trampled and freezes in place. In this way, the ants build a bridge long enough to span whatever gap is in front of them. The trailing ants in the colony then walk over it.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>ants</category><category>algorithm</category><category>rules</category><category>emergence</category></item><item><title>Astro RSS MDX</title><link>https://blog.damato.design/posts/astro-rss-mdx/</link><guid isPermaLink="true">https://blog.damato.design/posts/astro-rss-mdx/</guid><pubDate>Wed, 15 Oct 2025 04:18:00 GMT</pubDate><content:encoded>&lt;p&gt;I love Astro. But for the life of me, I couldn’t figure out how to render the entire post content in my RSS feeds correctly. This article by &lt;a href=&quot;https://donnie.damato.design/&quot;&gt;Donnie D’Amato&lt;/a&gt; has been a lifesaver in this regard.&lt;/p&gt;</content:encoded><category>astro</category><category>rss</category><category>mdx</category><category>resource</category></item><item><title>An alt Decision Tree | Web Accessibility Initiative (WAI) | W3C</title><link>https://www.w3.org/WAI/tutorials/images/decision-tree/</link><guid isPermaLink="true">https://www.w3.org/WAI/tutorials/images/decision-tree/</guid><pubDate>Mon, 13 Oct 2025 14:27:00 GMT</pubDate><content:encoded>&lt;p&gt;A great resource to understand how to use the &lt;code&gt;alt&lt;/code&gt; attribute in various situations.&lt;/p&gt;</content:encoded><category>alt</category><category>img</category><category>html</category><category>resource</category><category>guide</category></item><item><title>While you’re fixing the fun stuff, fix the important stuff too - Piccalilli</title><link>https://piccalil.li/blog/while-youre-fixing-the-fun-stuff-fix-the-important-stuff-too/</link><guid isPermaLink="true">https://piccalil.li/blog/while-youre-fixing-the-fun-stuff-fix-the-important-stuff-too/</guid><pubDate>Wed, 01 Oct 2025 12:57:00 GMT</pubDate><content:encoded>&lt;p&gt;Initially, I thought this was just an article on how to fix the janky hover state of a card component. But it also goes over the HTML markup for a typical card component in the context of semantics and accessibility.&lt;/p&gt;</content:encoded><category>accessibility</category><category>hover</category><category>card</category><category>piccalilli</category></item><item><title>Adactio: Journal—Mind set</title><link>https://adactio.com/journal/9688</link><guid isPermaLink="true">https://adactio.com/journal/9688</guid><pubDate>Wed, 01 Oct 2025 09:21:00 GMT</pubDate><content:encoded>&lt;p&gt;Ah! Good old Jeremy Keith, insightful and funny.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If I really want to change someone’s mind, then I need to make the effort to first understand their mind. That’s going to be far more productive than declaring that my own mind is made up. After all, if &lt;em&gt;I&lt;/em&gt; show no willingness to consider alternative viewpoints, why should they?&lt;/p&gt;
&lt;p&gt;There’s an old saying that before criticising someone, you should walk a mile in their shoes. I’m going to try to put that into practice, and not for the two obvious reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If we still disagree, now we’re a mile away from each other, and&lt;/li&gt;
&lt;li&gt;I’ve got their shoes.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;</content:encoded><category>mindset</category><category>discussion</category><category>debate</category><category>jeremy-keith</category></item><item><title>Jimmy Kimmel &amp; the FCC: Last Week Tonight with John Oliver (HBO) - YouTube</title><link>https://youtube.com/watch?v=ohPToBog_-g&amp;t=1577</link><guid isPermaLink="true">https://youtube.com/watch?v=ohPToBog_-g&amp;t=1577</guid><pubDate>Mon, 22 Sep 2025 12:55:00 GMT</pubDate><content:encoded>&lt;p&gt;John Oliver on drawing the line:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Giving the bully your lunch money doesn’t make him go away. It just makes him come back hungrier each time.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>freedom-of-speech</category><category>censorship</category><category>john-oliver</category></item><item><title>Browsing the web - Learn web development | MDN</title><link>https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Environment_setup/Browsing_the_web#how_the_web_works_the_basics</link><guid isPermaLink="true">https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Environment_setup/Browsing_the_web#how_the_web_works_the_basics</guid><pubDate>Mon, 22 Sep 2025 06:05:00 GMT</pubDate><content:encoded>&lt;p&gt;I really like this explanation of what happens in between the user entering a web address into the browser and the browser displaying the result.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The web browser requests the resource you want to access from the web server it is stored on.&lt;/li&gt;
&lt;li&gt;If the request is successful, the web server sends a response back to the web browser containing the requested resource.&lt;/li&gt;
&lt;li&gt;In some cases, the requested resource will then fire off more requests, which will result in more responses.&lt;/li&gt;
&lt;li&gt;When all of the resources have been requested, the web browser parses and renders them as required, before displaying the result to the user.&lt;/li&gt;
&lt;/ol&gt;</content:encoded><category>web</category></item><item><title>Missed Connections - Jim Nielsen’s Blog</title><link>https://blog.jim-nielsen.com/2025/missed-connections/</link><guid isPermaLink="true">https://blog.jim-nielsen.com/2025/missed-connections/</guid><pubDate>Tue, 18 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Jim Nielsen on the personal connections formed on the internet.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You could search the world and find someone who saw what you see, felt what you feel, went through what you’re going through.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And how these connections are increasingly being lost when we prompt an impersonal LLM instead.&lt;/p&gt;</content:encoded><category>connections</category><category>ai</category><category>llm</category><category>jim-nielsen</category></item><item><title>Why Swiss Trains are the Best in Europe - YouTube</title><link>https://www.youtube.com/watch?v=muPcHs-E4qc</link><guid isPermaLink="true">https://www.youtube.com/watch?v=muPcHs-E4qc</guid><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I love this bit from the video where Jason quotes Enrique Peñalosa, the former mayor of Bogotá, Colombia:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A developed country is not where the poor have cars. It’s where the rich use public transportation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But why is it important that wealthy people take public transportation? Because, as Jason mentions,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[…] for better or for worse, these people are likely to have the power and political influence to demand efficient service.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>trains</category><category>switzerland</category><category>mobility</category><category>public-transport</category><category>not-just-bikes</category></item><item><title>An idea to power your personal brand’s content game | beastoftraal.com</title><link>https://beastoftraal.com/2023/10/19/an-idea-to-power-your-personal-brands-content-game/</link><guid isPermaLink="true">https://beastoftraal.com/2023/10/19/an-idea-to-power-your-personal-brands-content-game/</guid><pubDate>Mon, 26 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Karthik Srinivasan discusses how to use curation to build a personal brand and shares some steps to get started.&lt;/p&gt;</content:encoded><category>personal-branding</category><category>curation</category><category>karthik-srinivasan</category></item><item><title>An underrated tip for personal branding | beastoftraal.com</title><link>https://beastoftraal.com/2023/10/05/an-underrated-tip-for-personal-branding/</link><guid isPermaLink="true">https://beastoftraal.com/2023/10/05/an-underrated-tip-for-personal-branding/</guid><pubDate>Mon, 26 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Karthik Srinivasan uses his experience with running as an analogy to emphasize the importance of consistently showing up in the context of personal branding.&lt;/p&gt;
&lt;p&gt;I found the analogy effective and relatable, as I had a similar experience when I started running.&lt;/p&gt;</content:encoded><category>personal-branding</category><category>persistence</category><category>karthik-srinivasan</category></item><item><title>Just Build Websites - Jim Nielsen’s Blog</title><link>https://blog.jim-nielsen.com/2024/just-build-websites/</link><guid isPermaLink="true">https://blog.jim-nielsen.com/2024/just-build-websites/</guid><pubDate>Tue, 20 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Jim Nielsen uses his experience with golf as a metaphor to explain that the key to success in web development comes from actual practice — building websites — rather than obsessing over what tools, frameworks and technologies others are using.&lt;/p&gt;</content:encoded><category>build</category><category>golf</category><category>jim-nielsen</category></item><item><title>Personal branding is like your credit score</title><link>https://beastoftraal.com/2024/07/03/personal-branding-is-like-your-credit-score/</link><guid isPermaLink="true">https://beastoftraal.com/2024/07/03/personal-branding-is-like-your-credit-score/</guid><pubDate>Tue, 20 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Personal branding is about bringing focus to your touchpoints with the world (of strangers) so that the right kinds of people can find you and remember you. You make use of the attention when you really need it. But it is good to be in the consideration set.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>personal-branding</category><category>karthik-srinivasan</category></item><item><title>Redesigning Piccalilli: the first part of the design process</title><link>https://piccalil.li/blog/redesigning-piccalilli-the-first-part-of-the-design-process/</link><guid isPermaLink="true">https://piccalil.li/blog/redesigning-piccalilli-the-first-part-of-the-design-process/</guid><pubDate>Mon, 29 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;As a freelancer, I’m always eager to learn how other folks work. &lt;a href=&quot;https://piccalil.li/&quot;&gt;Piccalilli’s&lt;/a&gt; behind-the-scenes look at their redesign is extremely useful.&lt;/p&gt;</content:encoded><category>priority-guides</category><category>design</category></item><item><title>Crowdstruck (Windows Outage) - Computerphile - YouTube</title><link>https://www.youtube.com/watch?v=rlaNMJeA1EA</link><guid isPermaLink="true">https://www.youtube.com/watch?v=rlaNMJeA1EA</guid><pubDate>Wed, 24 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Dr. Steve Bagley explains in layman’s terms what an operating system is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[…] Imagine the difference between a house and a hotel. If you own a house, you can decide how to use the rooms, what color to paint the walls. But if that house becomes a hotel, you might give people the option to change the air conditioning temperature, but you wouldn’t let them fit air conditioning into their room without permission from the building owner. And it’s a bit the same with a computer. The operating system is a bit like the people who run the hotel in that it’s controlling all the resources for the system. So if Microsoft Word crashes, these days it’s not going to take down your computer because the operating system is set up in such a way that it can access resources that have been assigned to it and clean that up, and everything else continues hunky-dory.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And what happens if the operating system crashes and you get the &lt;a href=&quot;https://en.wikipedia.org/wiki/Blue_screen_of_death&quot;&gt;blue screen of death&lt;/a&gt; (BSoD):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;At that point, the thing that’s in charge of controlling everything has gone wrong, is corrupted, and can no longer run. So there’s pretty much no option at that point other than to halt the machine, say something’s gone wrong, and let the user reboot and restart.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>operating-system</category><category>computerphile</category></item><item><title>Testing HTML With Modern CSS</title><link>https://heydonworks.com/article/testing-html-with-modern-css/</link><guid isPermaLink="true">https://heydonworks.com/article/testing-html-with-modern-css/</guid><pubDate>Sat, 20 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Wow! Who knew you could use modern CSS to test HTML? Well, Heydon certainly did!&lt;/p&gt;</content:encoded><category>testing</category><category>html</category><category>css</category><category>heydon-pickering</category></item><item><title>Styling Tables the Modern CSS Way - Piccalilli</title><link>https://piccalil.li/blog/styling-tables-the-modern-css-way</link><guid isPermaLink="true">https://piccalil.li/blog/styling-tables-the-modern-css-way</guid><pubDate>Fri, 19 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This article by &lt;a href=&quot;https://michellebarker.co.uk/&quot;&gt;Michelle Barker&lt;/a&gt; for Piccalilli is a great read. I learned about a bunch of new CSS properties that I didn’t know existed.&lt;/p&gt;</content:encoded><category>table</category><category>css</category><category>piccalilli</category></item><item><title>Blinded By the Light DOM  –  Eric’s Archived Thoughts</title><link>https://meyerweb.com/eric/thoughts/2023/11/01/blinded-by-the-light-dom/</link><guid isPermaLink="true">https://meyerweb.com/eric/thoughts/2023/11/01/blinded-by-the-light-dom/</guid><pubDate>Tue, 25 Jun 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Eric Meyer describes his journey of learning about and implementing fully-Light-DOM web components.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You just take some normal HTML markup, wrap it with a custom element, and then write some JS to add capabilities which you can then style with regular CSS! Everything’s of the Light Side of the Web. No need to pierce the Vale of Shadows or whatever.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>web-components</category><category>custom-elements</category><category>eric-meyer</category></item><item><title>Adactio: Journal—HTML web components</title><link>https://adactio.com/journal/20618</link><guid isPermaLink="true">https://adactio.com/journal/20618</guid><pubDate>Tue, 25 Jun 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Jeremy Keith discusses what makes a custom element an HTML web component.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If your custom element is empty, it’s not an HTML web component. But if you’re using a custom element to extend existing markup, that’s an HTML web component.&lt;/p&gt;
&lt;p&gt;React encouraged a mindset of replacement: “forgot &lt;em&gt;[sic]&lt;/em&gt; what browsers can do; do everything in a React component instead, even if you’re reinventing the wheel.”&lt;/p&gt;
&lt;p&gt;HTML web components encourage a mindset of augmentation instead.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>web-components</category><category>custom-elements</category><category>progressive-enhancement</category><category>jeremy-keith</category></item><item><title>What questions to ask in an interview with a PM | Hindustan Times</title><link>https://www.hindustantimes.com/opinion/what-questions-to-ask-in-an-interview-with-a-pm-101716649766792.html</link><guid isPermaLink="true">https://www.hindustantimes.com/opinion/what-questions-to-ask-in-an-interview-with-a-pm-101716649766792.html</guid><pubDate>Sun, 26 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In this piece, Karan Thapar emphasizes that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interviewers must remember they are asking questions on behalf of the public.&lt;/li&gt;
&lt;li&gt;Questions must be relevant, significant, and timely to demand accountability.&lt;/li&gt;
&lt;li&gt;The interviewer must persistently push for answers instead of allowing monologues or tangents.&lt;/li&gt;
&lt;li&gt;The interview should not serve as a platform to attack critics, but rather an occasion to make the PM respond to valid criticisms.&lt;/li&gt;
&lt;li&gt;The interviewer and PM must interact as equals, with the former feeling empowered to challenge evasions or dubious claims.&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>interview</category><category>journalism</category><category>guidelines</category><category>press-conference</category><category>karan-thapar</category><category>india</category></item><item><title>You Want border-color: transparent, Not border: none – Frontend Masters Blog</title><link>https://frontendmasters.com/blog/you-want-border-color-transparent-not-border-none/</link><guid isPermaLink="true">https://frontendmasters.com/blog/you-want-border-color-transparent-not-border-none/</guid><pubDate>Tue, 21 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In this article, Dave Rupert explains how testing in forced colors mode improves accessibility for users and reveals design flaws, such as excessive reliance on color cues.&lt;/p&gt;</content:encoded><category>forced-colors</category><category>testing</category><category>high-contrast-mode</category><category>low-vision</category><category>accessibility</category><category>design</category><category>dave-rupert</category></item><item><title>Digging Into The Display Property: The Two Values Of Display — Smashing Magazine</title><link>https://www.smashingmagazine.com/2019/04/display-two-value/</link><guid isPermaLink="true">https://www.smashingmagazine.com/2019/04/display-two-value/</guid><pubDate>Mon, 13 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;In &lt;a href=&quot;https://www.w3.org/TR/css-display-3&quot;&gt;Level 3 of the Display specification&lt;/a&gt;, the value of &lt;code&gt;display&lt;/code&gt; is defined as two keywords. These keywords define the outer value of display, which will be &lt;code&gt;inline&lt;/code&gt; or &lt;code&gt;block&lt;/code&gt; and therefore define how the element behaves in the layout alongside other elements. They also define the inner value of the element — or how the direct children of that element behave.&lt;/p&gt;
&lt;p&gt;This means that when you say &lt;code&gt;display: grid&lt;/code&gt;, what you are really saying is &lt;code&gt;display: block grid&lt;/code&gt;. You are asking for a block level grid container. An element that will have all of the block attributes — you can give it height and width, margin and padding, and it will stretch to fill the container. The children of that container, however, have been given the inner value of &lt;code&gt;grid&lt;/code&gt; so they become grid items. How those grid items behave is defined in the CSS Grid Specification: the &lt;code&gt;display&lt;/code&gt; spec gives us a way to tell the browser that this is the layout method we want to use.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As simply put by Rachel:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When you define layout on a box in CSS, you are defining what happens to this box in terms of how it behaves in relation to all of the other boxes in the layout. You are also defining how the children of that box behave.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>display</category><category>layout</category><category>css</category><category>rachel-andrew</category><category>smashing-magazine</category></item><item><title>Embrace the Platform – Bram.us</title><link>https://www.bram.us/2023/12/12/embrace-the-platform-article/</link><guid isPermaLink="true">https://www.bram.us/2023/12/12/embrace-the-platform-article/</guid><pubDate>Thu, 09 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;If there’s one thing you can do to make your websites better, it is to embrace what the web platform gives you: HTML, CSS, and JavaScript — in that order. Apply the Rule of Least Power. Build with progressive enhancement in mind. You’ll be a happier developer. Your visitors will be happier, too, as things work as expected.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>web-platform</category><category>bramus</category></item><item><title>The Case For Design Engineers, Pt. II - Jim Nielsen’s Blog</title><link>https://blog.jim-nielsen.com/2024/the-case-for-design-engineers-pt-ii/</link><guid isPermaLink="true">https://blog.jim-nielsen.com/2024/the-case-for-design-engineers-pt-ii/</guid><pubDate>Tue, 02 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Jim Nielsen makes the case for design engineers as professionals who do design work with code. He also emphasizes the limitations of traditional design tools, which often produce static images that don’t fully capture the dynamic nature of web interactions, and advocates for designing in the browser instead.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You need someone who can do design work with code.&lt;/p&gt;
&lt;p&gt;That’s right: design work with code.&lt;/p&gt;
&lt;p&gt;Pixels of an interface from a GUI tool are a static representations of a dynamic form. It’s the difference between a picture of me and the living, breathing, moving me.&lt;/p&gt;
&lt;p&gt;Design engineers don’t just push pixels around in a GUI tool, they do it in a web browser — the medium of delivery — designing not just the visuals but the interactions that make sense for a living, breathing, moving interface.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>design</category><category>designing-in-the-browser</category><category>design-engineers</category><category>jim-nielsen</category></item><item><title>Why I am an atheist: Bhagat Singh&apos;s essay</title><link>https://www.marxists.org/archive/bhagat-singh/1930/10/05.htm</link><guid isPermaLink="true">https://www.marxists.org/archive/bhagat-singh/1930/10/05.htm</guid><pubDate>Sat, 20 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This is one essay I re-read every year. In it, amongst other things, Bhagat Singh challenges blind faith and advocates for reason and critical thinking.&lt;/p&gt;
&lt;p&gt;Bhagat Singh on the importance of critical thinking and the dangers of blind faith:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Criticism and independent thinking are the two indispensable qualities of a revolutionary. Because Mahatamaji is great, therefore none should criticise him. Because he has risen above, therefore everything he says —may be in the field of Politics or Religion, Economics or Ethics— is right. Whether you are convinced or not you must say: “Yes, that’s true”. This mentality does not lead towards progress. It is rather too obviously reactionary.&lt;/p&gt;
&lt;p&gt;[…] Any man who stands for progress has to criticise, disbelieve and challenge every item of the old faith. Item by item he has to reason out every nook and corner of the prevailing faith. If after considerable reasoning one is led to believe in any theory or philosophy, his faith is welcomed. His reasoning can be mistaken, wrong, misled, and sometimes fallacious. But he is liable to correction because reason is the guiding star of his life. But mere faith and blind faith is dangerous: it dulls the brain and makes a man reactionary. A man who claims to be a realist has to challenge the whole of the ancient faith. If it does not stand the onslaught of reason it crumbles down.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bhagat Singh on the Hindu concept of sufferings as a divine punishment for sins committed in the previous life:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Poverty is a sin, it is a punishment. I ask you how far would you appreciate a criminologist, a jurist or a legislator who proposes such measures of punishment which shall inevitably force men to commit more offences. Had not your God thought of this, or he also had to learn these things by experience, but at the cost of untold sufferings to be borne by humanity?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bhagat Singh on divine inaction:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I ask why your omnipotent God does not stop every man when he is committing any sin or offence? He can do it quite easily. Why did he not kill warlords or kill the fury of war in them and thus avoid the catastrophe hurled down on the head of humanity by the Great War? Why does he not just produce a certain sentiment in the mind of the British people to liberate India? Why does he not infuse the altruistic enthusiasm in the hearts of all capitalists to forego their rights of personal possessions of means of production and thus redeem the whole labouring community —nay, the whole human society, from the bondage of capitalism? You want to reason out the practicability of socialist theory; I leave it for your almighty to enforce it. People recognise the merits of socialism in as much as the general welfare is concerned. They oppose it under the pretext of its being impracticable. Let the Almighty step in and arrange everything in an orderly fashion. Now don’t try to advance round about arguments, they are out of order. Let me tell you, British rule is here not because God wills it, but because they possess power and we do not dare to oppose them. Not that it is with the help of God that they are keeping us under their subjection, but it is with the help of guns and rifles, bomb and bullets, police and militia, and our apathy, that they are successfully committing the most deplorable sin against society —the outrageous exploitation of one nation by another. Where is God? What is he doing? Is he enjoying all these woes of human race? A Nero; a Changez!! Down with him!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bhagat Singh on the belief in God:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If no God existed, how did the people come to believe in him? My answer is clear and brief. As they came to believe in ghosts and evil spirits; the only difference is that belief in God is almost universal and the philosophy well developed. Unlike certain of the radicals I would not attribute its origin to the ingenuity of the exploiters who wanted to keep the people under their subjection by preaching the existence of a supreme being and then claiming an authority and sanction from him for their privileged positions, though I do not differ with them on the essential point that all faiths, religions, creeds and such other institutions became in turn the mere supporters of the tyrannical and exploiting institutions, men and classes. Rebellion against king is always a sin, according to every religion.&lt;/p&gt;
&lt;p&gt;As regards the origin of God, my own idea is that having realised the limitation of man, his weaknesses and shortcoming having been taken into consideration, God was brought into imaginary existence to encourage man to face boldly all the trying circumstances, to meet all dangers manfully and to check and restrain his outbursts in prosperity and affluence. God, both will his private laws and parental generosity, was imagined and painted in greater details. He was to serve as a deterrent factor when his fury and private laws were discussed, so that man may not become a danger to society. He was to serve as a father, mother, sister and brother, friend and helper, when his parental qualifications were to be explained. So that when man be in great distress, having been betrayed and deserted by all friends, he may find consolation in the idea that an ever-true friend, was still there to help him, to support him and that he was almighty and could do anything. Really that was useful to the society in the primitive age. The idea of God is helpful to man in distress.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He wrote all this while in jail when he was just a 23 year old.&lt;/p&gt;</content:encoded><category>atheism</category><category>critical-thinking</category><category>blind-faith</category><category>bhagat-singh</category><category>india</category></item></channel></rss>