SeanMcP

Articles

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


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