sm

Articles

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


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