sm

Articles

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


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