SeanMcP

Articles

To search for an article, use your browsers find feature or visit the search page.


  1. Defaults 2026
  2. AI use case: Asking questions of large files
  3. Install curl with apt (and not snap)
  4. Four perspectives on AI
  5. Axe DevTools doesn't flag multiple h1 elements on a page
  6. Writing code was never the bottleneck in software engineering
  7. Colocate functionally-related code
  8. Maccy is a great clipboard manager for Mac
  9. My on-again-off-again relationship with AI assistants
  10. Introducing Speed Catan
  11. Zed still isn't ready
  12. Rewriting in Eleventy (again)
  13. Mc-Pher-son
  14. Balance bikes are just better
  15. Deleting my GPTs
  16. Smile and wave
  17. Pittsburgh TechFest 2024
  18. Seventy7 Ventures feigns credibility with fake "Best of British Business" award
  19. Bypass "Error: There are no prompts" in promptfoo
  20. Use state callbacks in React
  21. VIVO sit/stand desk
  22. Simplify event delegation with the Element.closest method
  23. Align content in Markdown tables
  24. Solo-playing Adventure Games with AI
  25. CSS nesting is (almost) ready
  26. Looking over the fence at Eleventy
  27. ChatGPT 4o isn't a good researcher yet
  28. Astro and release velocity
  29. Render and effect call order in React
  30. Tweaking garden details
  31. Manage your photo archive
  32. Site update May 2024
  33. Measuring and cutting
  34. A Few Things #12
  35. A Few Things #11
  36. A Few Things #10
  37. Create a custom search for a static site
  38. Fix missing Astro files on GitHub pages
  39. Create a useIsOnline React hook
  40. Fix static file endpoints after Astro v4 upgrade
  41. Upgrading from Astro v2 to v4
  42. A Few Things #9
  43. On articles and blogs
  44. A Few Things #8
  45. Why Microsoft Edge?
  46. Switching from Ubuntu to Linux Mint
  47. A Few Things #7
  48. A Few Things #6
  49. Running Ollama without a GPU
  50. Use Ollama with the official Python library
  51. A Few Things #5
  52. Get started prompt engineering with local LLMs
  53. Adding a components page
  54. Making a video game with my kids
  55. A Few Things #4
  56. A Few Things #3
  57. Adobe has the worst captcha
  58. A Few Things #2
  59. Receiving cold-emails from GitHub stars
  60. A Few Things #1
  61. Did OpenAI's Web Browser GPT leak its prompt?
  62. Migrating from Google Domains to Porkbun was...
  63. Normalizing data is a good idea
  64. How I'm using AI in November 2023
  65. Sli.dev review
  66. Is it better to have one large file or multiple small files with GPTs?
  67. What is the file limit for GTPs?
  68. How I'm using AI in October 2023
  69. GPTs read text files better than markdown
  70. Thoughts on Web Speech API
  71. Declarative code and cognitive load
  72. Attempting #divtober 2023
  73. How I'm using AI in August & September 2023
  74. See what object properties are accessed in JavaScript
  75. Remove duplicates from an array in JavaScript
  76. Off to Kindergarten
  77. 1000 commits
  78. How I'm using AI in July 2023
  79. Timeboxing types
  80. CSS columns are neat
  81. Quality requires iteration
  82. A workable emoji picker on Ubuntu
  83. Losing steam
  84. Reviewing "Go By Example"
  85. How I'm Using AI in June 2023
  86. A quick comparison of JavaScript and Go executables
  87. I have never reviewed a podcast
  88. Compairing Objects, Maps, and WeakMaps for lookup tables in JavaScript
  89. Web-browser Accessibility Tools
  90. Linux Update in 2023
  91. How I'm using AI in May 2023
  92. Declaring variables in Go
  93. What is nullish in JavaScript?
  94. QA questions for everyone to ask
  95. Learning Go
  96. Set up Decap CMS
  97. Zed is a rocket-powered skateboard
  98. Fix failed Fastify deploy on Render
  99. Find and replace with Regex groups
  100. Fix SVG CSS animation issue in Safari
  101. Listen for class change in JavaScript
  102. Reviewing my Netlify Analytics
  103. Create Axios-style articles with CSS
  104. CSS :empty pseudo class
  105. Fix trailing whitespace in Astro components
  106. Farewell Create React App
  107. Starting an RSS Club
  108. On closings
  109. How long should it take to write an article?
  110. My writing process in February 2023
  111. Learning about Smart Brevity for writing
  112. Valid JavaScript variable names
  113. Burrito emoji
  114. Migrating to IndieWeb.social
  115. Publishing a Qwik component
  116. Fix Astro dev server hanging with new collections API
  117. Site improvements in 2023
  118. Back from time off
  119. Be careful parsing formatted numbers in JavaScript
  120. New command palette
  121. Fix "package esbuild-linux-64 could not be found" error on Netlify
  122. Adding images to articles (again)
  123. Portable custom search engines
  124. A first look at Static CMS with Astro
  125. Astro components do not merge HTML attributes
  126. Run Netlify CMS and your dev server in one command
  127. Fix Netlify Dev's 'Multiple possible start commands found' issue
  128. Astro components for Netlify features
  129. Create a "Dave Rupert"-inspired activity graph
  130. Use your domain on Mastodon with Astro
  131. Thoughts on Steve Job on consulting
  132. Are command bars the future?
  133. Node.js is great for scripting
  134. There is no multi-tasking on the Raspberry Pi
  135. Finding a Linux distro and software that work
  136. Giving Linux another try
  137. Awesome browser extensions
  138. Using dynamic routes to organize blog posts in Astro
  139. Rebuilding with Astro
  140. Jest tips & tricks
  141. Solid VS Code extensions
  142. How to use StackBlitz with Firefox
  143. How to replace Math.random with crypto in JavaScript
  144. Starring content
  145. Use multiple Chrome Profiles when debugging
  146. When to use React's memo HOC
  147. Calculate the sum of everything up to a given number
  148. English words by consonant-vowel pattern
  149. Music to code to
  150. Add a custom emulated device in Chrome
  151. Upgrading an Eleventy site to 1.0.0
  152. Make a web component
  153. Prevent Chrome from adjusting audio input levels on Mac
  154. My best Slack emojis
  155. Helpful online tools for diagramming
  156. What is a build.gradle file?
  157. Three new games on Toollama
  158. React Native Glossary
  159. What happened to @react-native-community packages?
  160. Find an iOS simulator identifier
  161. Using BEM names in React Native
  162. Reflecting on a new role
  163. What is Hermes in React Native?
  164. What is the song from Boston Dynamic's Spot Launch video?
  165. Add a YouTube-embedder shortcode to your Eleventy site
  166. Get innerHTML of Enzyme wrapper
  167. Use remark to covert markdown into HTML
  168. Count class methods in JavaScript
  169. A modest redesign for 2021
  170. Latin phrases to know
  171. Handy git commands
  172. Read URL search parameters with JavaScript
  173. Fix 'downloadable font: rejected by sanitizer' error in Firefox
  174. Fix Netlify CMS YAML error 'Implicit map keys need to be on a single line'
  175. COVID-19 journal
  176. Copy the last git commit hash on macOS
  177. Add Heroicons to an Eleventy site
  178. Create a URL shortener with Netlify
  179. Set innerHTML of an element in Svelte
  180. Let's stop skinning cats
  181. Search all files for two strings
  182. Setup Netlify CMS with Eleventy
  183. Fix "Error: Could not resolve pagination key in template data" in Eleventy
  184. Geddes' Guide to Crafting
  185. Send data to the window with Eleventy
  186. Checkout the previous git branch
  187. Make all properties required in TypeScript
  188. Add text to the beginning of every file
  189. Sass converts hsla to hex incorrectly
  190. Change extensions of all files in a directory
  191. Increase the playback speed on any audio or video online
  192. Standardize character width with CSS
  193. See all package versions in npm cli
  194. TypeScript without TypeScript
  195. Emulate iPhone & iPad in Safari
  196. Get started with Preact
  197. Make a POST request with fetch
  198. Why you shouldn't mutate parameters
  199. Remove an item at a given index in JavaScript
  200. Tab focus not working in Safari?
  201. Don't remove default focus styles, enhance them
  202. The Economics of Software Development, Part III
  203. Fix 'EMFILE: too many open files' error in Jest
  204. Updated TypeScript mega-course on Egghead.io
  205. The Economics of Software Development, Part II
  206. Access the home directory in Deno
  207. The Economics of Software Development, Part I
  208. Manage analysis paralysis while programming
  209. Before You Debug
  210. Before Debugging
  211. Intro to "The Economics of Software Development"
  212. Nodemon for Deno
  213. Adding images to my articles
  214. Parse argument aliases in Deno
  215. Await multiple promises in JavaScript
  216. TypeScript mega-course on Egghead.io
  217. Six video update
  218. Read a json file in Deno
  219. Read a json file in Node.js
  220. Publishing my first YouTube video
  221. How to get the browser and version in JavaScript
  222. Logging with Eleventy and Nunjucks
  223. Store readable data
  224. MagnoliaJS 2020 conference notes
  225. How to open the Dev Tools
  226. Tools for custom Slack emojis
  227. Laws I Love
  228. Programming reads
  229. Great programming reads
  230. Free to grow
  231. How to check npm scripts in current directory
  232. What to include in every node module
  233. How to remove duplicates from an object array?
  234. Write a draft script for your SSG blog
  235. A new Twitter handle
  236. What default parameters do (and don't do)
  237. Reviewing 2019 goals
  238. 2019 into 2020
  239. The fastest way to look for object properties
  240. "Stop Teaching Code" in JavaScript
  241. 5 Lessons from 10k open-source downloads
  242. Should I snapshot my UI components?
  243. Lessons Learned at Abstractions 2019
  244. Edit a previous commit message
  245. Arguments or parameters?
  246. Reasons to use prop-types
  247. How to pronounce my name
  248. Add event listener for class change
  249. Why I switched from Gatsby to Eleventy
  250. Storing data in state vs. class variable
  251. Filter out premium Medium articles
  252. Adding accessibility checks to your React app
  253. Three reasons to learn Python
  254. JS Basics: Generate a random number
  255. JS Basics: Ternary Operator
  256. Convert class components to functions with React Hooks
  257. Accessibility Wednesday
  258. 2018 into 2019
  259. Why a blog?
  260. How to create a render prop component