<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Joe Attardi&apos;s Blog</title>
<link>https://joeattardi.com/blog</link>
<description>JavaScript, CSS, web platform APIs, accessibility, and lessons from two decades of building for the web.</description>
<language>en-us</language>
<atom:link href="https://joeattardi.com/blog/rss.xml" rel="self" type="application/rss+xml" />
<item><title>Think before you reach for that div</title><link>https://joeattardi.com/blog/think-before-you-reach-for-that-div</link><guid isPermaLink="true">https://joeattardi.com/blog/think-before-you-reach-for-that-div</guid><pubDate>Wed, 24 Sep 2025 18:12:38 GMT</pubDate><description>In the past, web user interfaces were constructed largely using &lt;div&gt; and &lt;span&gt; elements.</description><category>HTML</category></item>
<item><title>Is vibe coding the future?</title><link>https://joeattardi.com/blog/is-vibe-coding-the-future</link><guid isPermaLink="true">https://joeattardi.com/blog/is-vibe-coding-the-future</guid><pubDate>Sun, 23 Mar 2025 04:00:00 GMT</pubDate><description>Andrej Karpathy coined “vibe coding” in early 2025, and it has strong supporters and detractors. Is it really the future of software development?</description><category>AI</category><category>Vibe Coding</category></item>
<item><title>4 years of &quot;Modern CSS&quot;</title><link>https://joeattardi.com/blog/4-years-of-modern-css</link><guid isPermaLink="true">https://joeattardi.com/blog/4-years-of-modern-css</guid><pubDate>Sun, 27 Oct 2024 04:00:00 GMT</pubDate><description>It&apos;s October 2024, and I am celebrating four years as a published author. According to Amazon, Modern CSS was published on October 7, 2020.</description><category>Writing</category></item>
<item><title>Beyond breakpoints: Leveraging user preference media queries in CSS</title><link>https://joeattardi.com/blog/beyond-breakpoints-leveraging-user-preference-media-queries-in-css</link><guid isPermaLink="true">https://joeattardi.com/blog/beyond-breakpoints-leveraging-user-preference-media-queries-in-css</guid><pubDate>Tue, 22 Oct 2024 04:00:00 GMT</pubDate><description>If you build web sites or apps, chances are you work with media queries. These handy CSS tools allow you to adjust your layout depending on the size of the device.</description><category>CSS</category></item>
<item><title>Using git bisect, the detective tool for debugging</title><link>https://joeattardi.com/blog/using-git-bisect-the-detective-tool-for-debugging</link><guid isPermaLink="true">https://joeattardi.com/blog/using-git-bisect-the-detective-tool-for-debugging</guid><pubDate>Fri, 04 Oct 2024 03:19:15 GMT</pubDate><description>An overview of using the git bisect command to quickly locate which commit introduced a bug.</description><category>Git</category></item>
<item><title>Steps for installing a local AI copilot in Visual Studio Code</title><link>https://joeattardi.com/blog/steps-for-installing-a-local-ai-copilot-in-visual-studio-code</link><guid isPermaLink="true">https://joeattardi.com/blog/steps-for-installing-a-local-ai-copilot-in-visual-studio-code</guid><pubDate>Thu, 12 Sep 2024 20:12:07 GMT</pubDate><description>Does your company block ChatGPT or GitHub Copilot? Do you have security or trust concerns sending your code to a third party AI service?</description><category>Visual Studio Code</category><category>AI</category></item>
<item><title>Fun with arrays</title><link>https://joeattardi.com/blog/fun-with-arrays</link><guid isPermaLink="true">https://joeattardi.com/blog/fun-with-arrays</guid><pubDate>Wed, 25 Oct 2023 19:03:57 GMT</pubDate><description>In this article, we&apos;ll look at some weird quirks with JavaScript arrays to learn a little more about how they work under the hood. An array is a collection or list of values.</description><category>JavaScript</category></item>
<item><title>Are Computer Science degrees still relevant?</title><link>https://joeattardi.com/blog/are-computer-science-degrees-still-relevant</link><guid isPermaLink="true">https://joeattardi.com/blog/are-computer-science-degrees-still-relevant</guid><pubDate>Fri, 13 Oct 2023 19:26:10 GMT</pubDate><description>I took a more traditional path into tech, going to a 4-year university and getting a Computer Science degree (way back in 2004!).</description><category>Computer Science</category></item>
<item><title>Understanding color contrast for accessibility</title><link>https://joeattardi.com/blog/understanding-color-contrast-for-accessibility</link><guid isPermaLink="true">https://joeattardi.com/blog/understanding-color-contrast-for-accessibility</guid><pubDate>Fri, 06 Oct 2023 14:33:49 GMT</pubDate><description>Accessibility is a popular topic these days - as it should be. There are many benefits of making your application accessible - it promotes inclusivity by making your app usable by everyone.</description><category>Accessibility</category><category>Web Development</category></item>
<item><title>Understanding error handling in Promise chains</title><link>https://joeattardi.com/blog/understanding-error-handling-in-promise-chains</link><guid isPermaLink="true">https://joeattardi.com/blog/understanding-error-handling-in-promise-chains</guid><pubDate>Fri, 07 Jul 2023 16:13:44 GMT</pubDate><description>How errors propagate through a chain of Promises, and where your catch handlers should go.</description><category>JavaScript</category><category>Promises</category><category>Error Handling</category></item>
<item><title>Customizing JSON.parse and JSON.stringify</title><link>https://joeattardi.com/blog/customizing-jsonparse-and-jsonstringify</link><guid isPermaLink="true">https://joeattardi.com/blog/customizing-jsonparse-and-jsonstringify</guid><pubDate>Thu, 27 Apr 2023 03:27:44 GMT</pubDate><description>The JSON.stringify and JSON.parse functions are handy for converting objects to JSON strings and back again. However, not all properties of an object are serializable.</description><category>JavaScript</category><category>JSON</category></item>
<item><title>How many ways can we reverse an Array?</title><link>https://joeattardi.com/blog/how-many-ways-can-we-reverse-an-array</link><guid isPermaLink="true">https://joeattardi.com/blog/how-many-ways-can-we-reverse-an-array</guid><pubDate>Wed, 23 Nov 2022 03:43:27 GMT</pubDate><description>There&apos;s a Stage 3 proposal to add several array methods including Array.prototype.toReversed, which will create a reversed copy of the array.</description><category>JavaScript</category><category>Array Methods</category></item>
<item><title>Comparing const declarations and immutable objects</title><link>https://joeattardi.com/blog/comparing-const-declarations-and-immutable-objects</link><guid isPermaLink="true">https://joeattardi.com/blog/comparing-const-declarations-and-immutable-objects</guid><pubDate>Thu, 01 Sep 2022 04:55:56 GMT</pubDate><description>Way back in my Java days, when interviewing candidates, I would often ask the candidate to explain the meaning of the final keyword.</description><category>JavaScript</category></item>
<item><title>Promise Tips: When do I need to create my own Promise instance?</title><link>https://joeattardi.com/blog/promise-tips-when-do-i-need-to-create-my-own-promise-instance</link><guid isPermaLink="true">https://joeattardi.com/blog/promise-tips-when-do-i-need-to-create-my-own-promise-instance</guid><pubDate>Fri, 28 Jan 2022 16:07:51 GMT</pubDate><description>Promises are pretty ubiquitous these days, but sometimes Promise based code is more complex that it needs to be.</description><category>JavaScript</category><category>Promises</category><category>Programming Tips</category></item>
<item><title>Comparison of JavaScript modules</title><link>https://joeattardi.com/blog/comparison-of-javascript-modules</link><guid isPermaLink="true">https://joeattardi.com/blog/comparison-of-javascript-modules</guid><pubDate>Sun, 29 Nov 2020 22:23:09 GMT</pubDate><description>JavaScript has been around since 1995. In that time there have been several different ways to create modules.</description><category>JavaScript</category><category>Web Development</category><category>JavaScript Modules</category></item>
<item><title>Using Animations with Tailwind CSS</title><link>https://joeattardi.com/blog/using-animations-with-tailwind-css</link><guid isPermaLink="true">https://joeattardi.com/blog/using-animations-with-tailwind-css</guid><pubDate>Thu, 26 Nov 2020 04:14:55 GMT</pubDate><description>Tailwind CSS is awesome. Animations are awesome. So let&apos;s combine them! It&apos;s really easy to define your own custom animations with Tailwind.</description><category>Tailwind CSS</category><category>CSS Animations</category></item>
<item><title>JavaScript Maps vs Plain JavaScript Objects</title><link>https://joeattardi.com/blog/javascript-maps-vs-plain-javascript-objects</link><guid isPermaLink="true">https://joeattardi.com/blog/javascript-maps-vs-plain-javascript-objects</guid><pubDate>Fri, 25 Sep 2020 15:36:31 GMT</pubDate><description>ES2015, also known as ES6, added lots of new things to the JavaScript language. One very useful addition was the Map. Map allows you to map keys to values. Couldn&apos;t we already do that?</description><category>JavaScript</category><category>Web Development</category><category>ES6</category></item>
<item><title>Introduction to Flexbox</title><link>https://joeattardi.com/blog/introduction-to-flexbox</link><guid isPermaLink="true">https://joeattardi.com/blog/introduction-to-flexbox</guid><pubDate>Thu, 24 Sep 2020 18:18:52 GMT</pubDate><description>All the cool kids may be using CSS Grid now, but there are still plenty of scenarios where Flexbox does exactly what you need.</description><category>CSS</category><category>Flexbox</category></item>
<item><title>Introduction to Custom Elements</title><link>https://joeattardi.com/blog/introduction-to-custom-elements</link><guid isPermaLink="true">https://joeattardi.com/blog/introduction-to-custom-elements</guid><pubDate>Wed, 23 Sep 2020 15:13:23 GMT</pubDate><description>Custom elements have pretty good browser support. Of course, they aren&apos;t supported in Internet Explorer, but that shouldn&apos;t surprise anyone.</description><category>JavaScript</category><category>HTML</category></item>
<item><title>How Emojis Work</title><link>https://joeattardi.com/blog/how-emojis-work</link><guid isPermaLink="true">https://joeattardi.com/blog/how-emojis-work</guid><pubDate>Sat, 29 Aug 2020 01:20:52 GMT</pubDate><description>In the process of writing Emoji Button, my plain JavaScript emoji picker (which turns one year old tomorrow, August 29th!), I have learned a lot about emojis!</description><category>Emoji</category></item>
<item><title>Introduction to Tailwind CSS</title><link>https://joeattardi.com/blog/introduction-to-tailwind-css</link><guid isPermaLink="true">https://joeattardi.com/blog/introduction-to-tailwind-css</guid><pubDate>Fri, 28 Aug 2020 01:56:12 GMT</pubDate><description>There&apos;s been a lot of buzz lately about Tailwind CSS. Maybe you&apos;re curious about it but haven&apos;t taken a look yet. This article is for you!</description><category>CSS</category><category>CSS Frameworks</category></item>
<item><title>All about this in JavaScript</title><link>https://joeattardi.com/blog/all-about-this-in-javascript</link><guid isPermaLink="true">https://joeattardi.com/blog/all-about-this-in-javascript</guid><pubDate>Fri, 28 Aug 2020 00:43:06 GMT</pubDate><description>What does this refer to in JavaScript? It depends on the situation. A tour of the common scenarios, from the global scope to arrow functions.</description><category>JavaScript</category><category>Web Development</category></item>
<item><title>How to use Font Awesome icons in a vanilla JavaScript project</title><link>https://joeattardi.com/blog/how-to-use-font-awesome-icons-in-a-vanilla-javascript-project</link><guid isPermaLink="true">https://joeattardi.com/blog/how-to-use-font-awesome-icons-in-a-vanilla-javascript-project</guid><pubDate>Tue, 10 Sep 2019 02:07:51 GMT</pubDate><description>I was working on a vanilla JavaScript project recently and wanted to add some Font Awesome icons. Previously I have used Font Awesome icons in React or Angular projects, but never plain JavaScript.</description><category>JavaScript</category><category>Font Awesome</category></item>
<item><title>In defense of the humble console.log</title><link>https://joeattardi.com/blog/in-defense-of-the-humble-consolelog</link><guid isPermaLink="true">https://joeattardi.com/blog/in-defense-of-the-humble-consolelog</guid><pubDate>Thu, 08 Aug 2019 02:10:05 GMT</pubDate><description>There is some negative sentiment out there about using console.log for debugging. It&apos;s true that, in many cases, the browser&apos;s debugger is more powerful.</description><category>JavaScript</category><category>Debugging</category></item>
</channel>
</rss>
