Articles
To search for an article, use your browsers find feature or visit the search page.
- Introducing Speed Catan
- Zed still isn't ready
- Rewriting in Eleventy (again)
- Mc-Pher-son
- Balance bikes are just better
- Deleting my GPTs
- Smile and wave
- Pittsburgh TechFest 2024
- Seventy7 Ventures feigns credibility with fake "Best of British Business" award
- Bypass "Error: There are no prompts" in promptfoo
- Use state callbacks in React
- VIVO sit/stand desk
- Simplify event delegation with the Element.closest method
- Align content in Markdown tables
- Solo-playing Adventure Games with AI
- CSS nesting is (almost) ready
- Looking over the fence at Eleventy
- ChatGPT 4o isn't a good researcher yet
- Astro and release velocity
- Render and effect call order in React
- Tweaking garden details
- Manage your photo archive
- Site update May 2024
- Measuring and cutting
- A Few Things #12
- A Few Things #11
- A Few Things #10
- Create a custom search for a static site
- Fix missing Astro files on GitHub pages
- Create a useIsOnline React hook
- Fix static file endpoints after Astro v4 upgrade
- Upgrading from Astro v2 to v4
- A Few Things #9
- On articles and blogs
- A Few Things #8
- Why Microsoft Edge?
- Switching from Ubuntu to Linux Mint
- A Few Things #7
- A Few Things #6
- Running Ollama without a GPU
- Use Ollama with the official Python library
- A Few Things #5
- Get started prompt engineering with local LLMs
- Adding a components page
- Making a video game with my kids
- A Few Things #4
- A Few Things #3
- Adobe has the worst captcha
- A Few Things #2
- Receiving cold-emails from GitHub stars
- A Few Things #1
- Did OpenAI's Web Browser GPT leak its prompt?
- Migrating from Google Domains to Porkbun was...
- Normalizing data is a good idea
- How I'm using AI in November 2023
- Sli.dev review
- Is it better to have one large file or multiple small files with GPTs?
- What is the file limit for GTPs?
- How I'm using AI in October 2023
- GPTs read text files better than markdown
- Thoughts on Web Speech API
- Declarative code and cognitive load
- Attempting #divtober 2023
- How I'm using AI in August & September 2023
- See what object properties are accessed in JavaScript
- Remove duplicates from an array in JavaScript
- Off to Kindergarten
- 1000 commits
- How I'm using AI in July 2023
- Timeboxing types
- CSS columns are neat
- Quality requires iteration
- A workable emoji picker on Ubuntu
- Losing steam
- Reviewing "Go By Example"
- How I'm Using AI in June 2023
- A quick comparison of JavaScript and Go executables
- I have never reviewed a podcast
- Compairing Objects, Maps, and WeakMaps for lookup tables in JavaScript
- Web-browser Accessibility Tools
- Linux Update in 2023
- How I'm using AI in May 2023
- Declaring variables in Go
- What is nullish in JavaScript?
- QA questions for everyone to ask
- Learning Go
- Set up Decap CMS
- Zed is a rocket-powered skateboard
- Fix failed Fastify deploy on Render
- Find and replace with Regex groups
- Fix SVG CSS animation issue in Safari
- Listen for class change in JavaScript
- Reviewing my Netlify Analytics
- Create Axios-style articles with CSS
- CSS :empty pseudo class
- Fix trailing whitespace in Astro components
- Farewell Create React App
- Starting an RSS Club
- On closings
- How long should it take to write an article?
- My writing process in February 2023
- Learning about Smart Brevity for writing
- Valid JavaScript variable names
- Burrito emoji
- Migrating to IndieWeb.social
- Publishing a Qwik component
- Fix Astro dev server hanging with new collections API
- Site improvements in 2023
- Back from time off
- Be careful parsing formatted numbers in JavaScript
- New command palette
- Fix "package esbuild-linux-64 could not be found" error on Netlify
- Adding images to articles (again)
- Portable custom search engines
- A first look at Static CMS with Astro
- Astro components do not merge HTML attributes
- Run Netlify CMS and your dev server in one command
- Fix Netlify Dev's 'Multiple possible start commands found' issue
- Astro components for Netlify features
- Create a "Dave Rupert"-inspired activity graph
- Use your domain on Mastodon with Astro
- Thoughts on Steve Job on consulting
- Are command bars the future?
- Node.js is great for scripting
- There is no multi-tasking on the Raspberry Pi
- Finding a Linux distro and software that work
- Giving Linux another try
- Awesome browser extensions
- Using dynamic routes to organize blog posts in Astro
- Rebuilding with Astro
- Jest tips & tricks
- Solid VS Code extensions
- How to use StackBlitz with Firefox
- How to replace Math.random with crypto in JavaScript
- Starring content
- Use multiple Chrome Profiles when debugging
- When to use React's memo HOC
- Calculate the sum of everything up to a given number
- English words by consonant-vowel pattern
- Music to code to
- Add a custom emulated device in Chrome
- Upgrading an Eleventy site to 1.0.0
- Make a web component
- Prevent Chrome from adjusting audio input levels on Mac
- My best Slack emojis
- Helpful online tools for diagramming
- What is a build.gradle file?
- Three new games on Toollama
- React Native Glossary
- What happened to @react-native-community packages?
- Find an iOS simulator identifier
- Using BEM names in React Native
- Reflecting on a new role
- What is Hermes in React Native?
- What is the song from Boston Dynamic's Spot Launch video?
- Add a YouTube-embedder shortcode to your Eleventy site
- Get innerHTML of Enzyme wrapper
- Use remark to covert markdown into HTML
- Count class methods in JavaScript
- A modest redesign for 2021
- Latin phrases to know
- Handy git commands
- Read URL search parameters with JavaScript
- Fix 'downloadable font: rejected by sanitizer' error in Firefox
- Fix Netlify CMS YAML error 'Implicit map keys need to be on a single line'
- COVID-19 journal
- Copy the last git commit hash on macOS
- Add Heroicons to an Eleventy site
- Create a URL shortener with Netlify
- Set innerHTML of an element in Svelte
- Let's stop skinning cats
- Search all files for two strings
- Setup Netlify CMS with Eleventy
- Fix "Error: Could not resolve pagination key in template data" in Eleventy
- Geddes' Guide to Crafting
- Send data to the window with Eleventy
- Checkout the previous git branch
- Make all properties required in TypeScript
- Add text to the beginning of every file
- Sass converts hsla to hex incorrectly
- Change extensions of all files in a directory
- Increase the playback speed on any audio or video online
- Standardize character width with CSS
- See all package versions in npm cli
- TypeScript without TypeScript
- Emulate iPhone & iPad in Safari
- Get started with Preact
- Make a POST request with fetch
- Why you shouldn't mutate parameters
- Remove an item at a given index in JavaScript
- Tab focus not working in Safari?
- Don't remove default focus styles, enhance them
- The Economics of Software Development, Part III
- Fix 'EMFILE: too many open files' error in Jest
- Updated TypeScript mega-course on Egghead.io
- The Economics of Software Development, Part II
- Access the home directory in Deno
- The Economics of Software Development, Part I
- Manage analysis paralysis while programming
- Before You Debug
- Before Debugging
- Intro to "The Economics of Software Development"
- Nodemon for Deno
- Adding images to my articles
- Parse argument aliases in Deno
- Await multiple promises in JavaScript
- TypeScript mega-course on Egghead.io
- Six video update
- Read a json file in Deno
- Read a json file in Node.js
- Publishing my first YouTube video
- How to get the browser and version in JavaScript
- Logging with Eleventy and Nunjucks
- Store readable data
- MagnoliaJS 2020 conference notes
- How to open the Dev Tools
- Tools for custom Slack emojis
- Laws I Love
- Programming reads
- Great programming reads
- Free to grow
- How to check npm scripts in current directory
- What to include in every node module
- How to remove duplicates from an object array?
- Write a draft script for your SSG blog
- A new Twitter handle
- What default parameters do (and don't do)
- Reviewing 2019 goals
- 2019 into 2020
- The fastest way to look for object properties
- "Stop Teaching Code" in JavaScript
- 5 Lessons from 10k open-source downloads
- Should I snapshot my UI components?
- Lessons Learned at Abstractions 2019
- Edit a previous commit message
- Arguments or parameters?
- Reasons to use prop-types
- How to pronounce my name
- Add event listener for class change
- Why I switched from Gatsby to Eleventy
- Storing data in state vs. class variable
- Filter out premium Medium articles
- Adding accessibility checks to your React app
- Three reasons to learn Python
- JS Basics: Generate a random number
- JS Basics: Ternary Operator
- Convert class components to functions with React Hooks
- Accessibility Wednesday
- 2018 into 2019
- Why a blog?
- How to create a render prop component