sm

Articles

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


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