Home

Topics

Bash

  1. Verify a checksum
  2. Execute a command with another user's environment

CMS

  1. Custom Decap CMS previews in Gatsby
  2. "Module not found" error with Gatsby, Netlify CMS, and PostCSS

CSS

  1. Specify a default line-height for each font-size in Tailwind CSS
  2. CSS-only highlighter effect

Elixir

  1. PhoenixTest foot guns
  2. Organising Ecto schemas
  3. Naming Phoenix context functions

Git

  1. How to bypass the Git pre-push hook
  2. Sort the output of git status
  3. How to use a private GitLab repository as a Composer dependency
  4. GitLab CI and YAML booleans

Happy Stack

  1. Building Happy Stack: naming things
  2. Building Happy Stack: notifications

JavaScript

  1. Simplify imports with path mapping
  2. Check a date with Chai
  3. Using TypeScript with Gatsby
  4. Nested optional chaining in JavaScript
  5. Custom Decap CMS previews in Gatsby
  6. Rounding errors in JSON Schema validation
  7. "Module not found" error with Gatsby, Netlify CMS, and PostCSS
  8. Chai assert error
  9. Selectively disable ESLint
  10. The right way to compare arrays with Chai
  11. Numeric environment variables and TypeScript
  12. Compute the difference between two JavaScript arrays
  13. JavaScript logical operators
  14. Avoid Array.prototype.push
  15. Log nested objects in Node
  16. Generate an array of random data
  17. Split a JavaScript array into chunks
  18. Generate a pseudo-random boolean
  19. Modelling API requests with Statecharts

Laravel

  1. Using Eloquent subqueries to randomise grouped results
  2. Building Happy Stack: naming things
  3. Building Happy Stack: notifications
  4. Authorising Laravel Nova actions
  5. Conditional validation rules in Laravel
  6. How to change the URL slug of a Laravel Nova resource
  7. Understanding Laravel's Macroable trait
  8. Laravel route collection binding
  9. A nicer way of overriding Eloquent global scopes
  10. Laravel's mysteriously macroable paginators
  11. Eager loading Eloquent properties
  12. Cleaner code with Eloquent events
  13. Eloquent attributes and database defaults

MongoDB

  1. MongoDB ObjectId timestamp
  2. Query MongoDB by array field size

Node.js

  1. Undocumented Node Migrate options
  2. Numeric environment variables and TypeScript
  3. Transform objects in a Node stream
  4. Log nested objects in Node
  5. Node -r
  6. Node type definitions

Opinion

  1. Move Slowly and Make Things
  2. The Complexity Halo

phoenix

  1. PhoenixTest foot guns
  2. Organising Ecto schemas
  3. Naming Phoenix context functions

PHP

  1. JavaScript logical operators
  2. Generate a pseudo-random boolean
  3. How to write version-agnostic bash scripts for PHP
  4. How to use a private GitLab repository as a Composer dependency
  5. Randomise your tests

Testing

  1. PhoenixTest foot guns
  2. Check a date with Chai
  3. Chai assert error
  4. The right way to compare arrays with Chai
  5. Randomise your tests

Tools

  1. Visual Studio Code "actions" shortcut
  2. Clear the terminal in macOS
  3. Search the file explorer in Visual Studio Code

TypeScript

  1. Simplify imports with path mapping
  2. Using TypeScript with Gatsby
  3. Custom TypeScript type guards
  4. Numeric environment variables and TypeScript
  5. Transform objects in a Node stream
  6. Generate an array of random data
  7. TypeScript object bracket notation
  8. Node -r
  9. Node type definitions
  10. TypeScript "Generics"

Validation

  1. Rounding errors in JSON Schema validation
  2. Sane URL validation in JSON Schema

Weeknotes

  1. Weeknotes: Claude
  2. Weeknotes: Covid, mostly
  3. Weeknotes: Working on Hap, and working on working