Posts
Accounting
- HMRC: What is PAYE?
- How are dividends taxed?
- How to be more tax-efficient as a contractor
- How to report payroll to HMRC in a FPS
- UK tax months
- UK tax years
- What are accounts receivable (AR)?
- What are annual accounts?
- What are National Insurance categories?
- What are the different classes of National Insurance?
- What is a balance sheet?
- What is a company’s financial year?
- What is a CT600?
- What is a current asset?
- What is a current liability?
- What is a debit and credit in accounting?
- What is a director’s loan account in the UK?
- What is a dividend?
- What is a fixed asset?
- What is a general ledger?
- What is a liability?
- What is a long-term liability?
- What is a Self Assessment tax return?
- What is a trial balance?
- What is an account in accounting?
- What is an asset?
- What is an Employer Payment Summary?
- What is called-up share capital not paid?
- What is corporation tax?
- What is HMRC’s ‘Payments on account’?
- What is the accounting reference date (ARD)?
- What is turnover?
- What is VAT?
Algorithms
API Platform
- API Platform deserialization reference
- API Platform: Customize access control error message
- API Platform: DateFilter reference
- API Platform: Extensions reference
- API Platform: How to add OpenAPI documentation at the field level
- API Platform: How to add XDebug breakpoint on 500 error
- API Platform: How to change the serialization context dynamically
- API Platform: How to use access control expressions
- API Platform: Inspect the SQL query that runs for a given endpoint
- API Platform: Normalizer vs Denormalizer
- API Platform: OrderFilter reference
- API Platform: Pagination reference
- API Platform: Serialization reference
- API Platform: State processors
- API Platform: State providers
- API Platform: Use custom serialised name
- Create an API Resource in API Platform
- How to validate data in API Platform
- Implement a custom collection data provider in API Platform
- Implement a custom item data provider in API Platform
- Setup new API platform project
- View OpenAPI spec for API in API Platform
- What is API Platform?
AWS
- AWS Cognito: What are identity pools?
- AWS Cognito: What are user pools?
- AWS Cognito: What is AWS Cognito?
- AWS DynamoDB: What is DynamoDB?
- AWS IAM: What is a policy?
- AWS IAM: What is a role?
- AWS IAM: What is a user group?
- AWS Lambda: What is AWS Lambda?
- AWS S3: What is S3?
- AWS services reference
- AWS SNS: What is SNS?
- AWS SQS: What is SQS?
- AWS: What is an ARN?
- List available AWS CLI profiles
Axios
Bash
- awk: Show first column
- awk: Show last column
- Bash reference
- Bash: Check if argument was passed to script
- Bash: Check if file exists
- Bash: Define variable
- Bash: How to get the directory of the current file
- Bash: If statement
- Bash: Variable interpolation
- What is set -e in bash?
- xargs reference
- xargs: Replace tokens with arg
Big O Notation
Biology
Bootstrap
Business
Business legislation
Chrome DevTools
- Check Google Chrome version
- Chrome DevTools debugging reference
- Chrome DevTools debugging tip: Use log points
- Chrome DevTools debugging tips
- Chrome DevTools snippets: Draw border around every element
- Chrome DevTools tip: Use logpoints
- Chrome DevTools tip: Use screen recorder
- Chrome DevTools: Filter out scripts from Console
- Chrome DevTools: Open Command Palette
- Chrome shortcuts: Open JavaScript console
- Hide console output from Chrome extensions
- macOS: Open Chrome without web security
- Useful Chrome DevTools features
- Useful Chrome DevTools shortcuts
Computing
- Bitwise OR operation
- What is a bit?
- What is a bitwise operation?
- What is a byte?
- What is a call stack?
- What is a compiler?
- What is a debugger?
- What is a process?
- What is a pure function?
- What is a technical standard/specification?
- What is a thread?
- What is ASCII?
- What is character encoding?
- What is memoization?
- What is the bitwise OR operation?
- What is the Unix timestamp?
- What is Unicode?
Cookies
Cryptography
CSS
- Bootstrap breakpoints reference
- Bootstrap: Change colour of accordion chevron
- Bootstrap: customize theme colors
- Bootstrap: make utility class responsive
- box-shadow reference
- Create a sticky footer with Flexbox
- CSS debugging tip: Add a border to every element
- CSS Layout algorithms
- CSS property reference: position: sticky
- CSS snippet: absolute center
- CSS specificity reference
- CSS variables reference
- Find browser’s default CSS rules
- Flex recipes: Make items equal width
- Flex shorthand property
- Flexbox reference
- Flexbox: How to prevent item from taking full width of container
- Flexbox: main axis vs cross-axis
- How does :has() work in CSS?
- What is autoprefixer?
- What is PostCSS?
- What is vh, vw, vmin, and vmax in CSS?
- What’s the difference between rem, em, and pixel?
cURL
Cypress
Data structures
Data structures & Algorithms
Databases
Debugging
Deno
Docker
- Access /var/lib/docker on macOS
- Build Docker image from Dockerfile
- Connect to Postgres database in Docker container
- Docker volume consistency modes
- Docker volumes: Create volume
- Docker volumes: Inspect a volume
- Docker volumes: What is a volume?
- Docker: clean up disk space
- Docker: Hello world
- Docker: How to install PHP extension
- Docker: run one-off command on image
- Docker: View disk usage
- Docker: What is a dangling image?
- Docker: What is host.docker.internal?
- Dockerfile reference
- How do Docker bind mounts work?
- Install PHP extensions for Docker image
- List containers managed by Docker Compose
- One-liner to remove all Docker containers
- Remove all Docker images
- Restart Docker Desktop on macOS via the terminal
- Run default command in Docker container then remove container
- Run multiple bash commands against Docker Compose service
- Start interactive bash session in Docker Compose service
- Start interactive bash session in Docker image
- Stop all Docker containers
- Tail logs for Docker Compose services
- Troubleshoot: MailHog UI not showing emails when using in Docker
- What does Docker run do?
- What is a Docker container?
- What is a Docker image?
- What is a Dockerfile?
- What is Docker?
- Why are Docker commands hanging?
Docker Compose
Doctrine
- Doctrine preUpdate reference
- Doctrine: Drop all database tables
- Doctrine: Entity listeners reference
- Doctrine: Events reference
- Doctrine: Generate migration based on entity changes
- Doctrine: get entities scheduled for insertion
- Doctrine: Get SQL from query builder
- Doctrine: Lifecycle callbacks reference
- Doctrine: Migrations reference
- Doctrine: Query builder reference
- Doctrine: Rollback last migration
- Doctrine: Rollback to specific version
- Doctrine: What is DQL?
- Doctrine: What is the difference between persist and flush?
- Symfony: Difference between @UniqueEntity and @UniqueConstraint
- What is Doctrine ORM?
- What is the Doctrine project?
- When does the Doctrine prePersist event run?
ECMAScript
- ECMAScript 10th Edition (ES10 / ECMAScript 2019)
- ECMAScript 11th Edition (ES11 / ECMAScript 2020)
- ECMAScript 12th Edition (ES12 / ECMAScript 2021)
- ECMAScript 5th Edition (ES5 / ECMAScript 2009)
- ECMAScript 6th Edition (ES6 / ECMAScript 2015)
- ECMAScript 7th edition (ES7 / ECMAScript 2016)
- ECMAScript 8th Edition (ES8 / ECMAScript 2017)
- ECMAScript 9th Edition (ES9 / ECMAScript 2018)
- ECMAScript version history
- What is ECMAScript?
- What is ES.Next?
- What is the TC39 process?
Economics
Express
Express.js
Finance
Geometry
- Geometry: Calculate area of a circle
- Geometry: Calculate circumference of a circle
- Geometry: How to measure an angle?
- Geometry: What are complementary angles?
- Geometry: What is a diameter?
- Geometry: What is a perimeter?
- Geometry: What is a perpendicular line?
- Geometry: What is a radius?
- Geometry: What is a right angle?
- Geometry: What is a straight angle?
- Geometry: What is an acute angle?
- Geometry: What is an angle?
- Geometry: What is an area?
- Geometry: What is an obtuse angle?
- Geometry: What is PI?
Git
- Add Git remote
- Create remote GitHub repo from local repo
- Git stash reference
- Git submodules reference
- Git: Checkout files/folders from another branch
- Git: Checkout repo at specific commit
- Git: Delete multiple branches
- Git: List branches whose name match wildcard
- Git: Show commits on specific date
- Git: Show commits since a commit hash
- Git: Show local branches and order by created date DESC
- Git: Stash specific files
- Git: What’s the index?
- Git: What’s the working tree?
- Remove file from Git index
- Rename Git repo locally and on remote
- Run tasks in a Git pre-commit hook
- Set global Git options
- Show branches by commit date
- Undo last Git commit
- Update Git remote URL
GitHub
Golang
- Golang basic types
- Golang defer statement
- Golang error handling
- Golang for loop
- Golang interfaces
- Golang maps
- Golang methods
- Golang modules
- Golang pointers
- Golang slices
- Golang string interpolation
- Golang Stringer interface
- Golang structs
- Golang switch statement
- Golang type assertions
- Golang type conversions
- Golang type switches
- Golang zero values
HTTP
- Difference between a forward proxy and reverse proxy
- How do HTTP sessions work?
- How does tracking via third-party cookies work?
- HTTP request format
- HTTP response format
- HTTP status code: 0
- HTTP: What is a cache?
- HTTP: What is a resource?
- HTTP: What is a URI origin?
- HTTP: What is a user agent?
- List of HTTP field names
- The different parts of a URL
- Troubleshoot: Possible causes of a CORS error
- Web page rendering process
- What are HTTP cookies?
- What are SameSite cookies?
- What does it mean when an HTTP client specifies Cache-Control: max-age as a request header?
- What is a Data URL?
- What is a MIME type?
- What is Base64?
- What is CORS?
- What is HTTP?
- What is the application/octet-stream MIME type?
- What’s the difference between first-party and third-party cookies?
HTTP caching
ImageMagick
Images
IntelliJ
Internet
Java
JavaScript
- A closer look at the V8 JavaScript engine
- Element.getBoundingClientRect reference
- event.target vs event.currentTarget
- Get a random boolean in JavaScript
- How to check if JavaScript code is running in strict mode?
- How to chunk an array in JavaScript
- How to find overlapping Regex matches in JavaScript
- How to programmatically dispatch a space press in JavaScript
- How to use a custom comparison function in JavaScript
- How web browsers process asynchronous code
- JavaScript execution contexts
- JavaScript getters and setters: example usage
- JavaScript iteration protocols reference
- JavaScript sleep function
- JavaScript: Flatten an array recursively
- JavaScript: Get property descriptors of object
- JavaScript: Get values of a multiple select box
- Javascript’s 9 data types
- Object.entries() reference
- Sort a JavaScript object
- Stimulus reference
- The JavaScript environment
- The JavaScript event loop
- Use MutationObserver to check if Bootstrap modal is open
- Using String.replace with a regex pattern and a replacement function
- What are web workers?
- What is event bubbling?
- What is event capture?
- What is globalThis in JavaScript?
- What is JavaScript’s strict mode?
- What is the “e” in JavaScript?
- What’s the difference between || and ?? in JavaScript?
- What’s the difference between CommonJS and ECMAScript Modules (ESM)?
JavaScript testing
JavaScript tooling
- Chrome DevTools debugging reference
- Configure Prettier integration in VSCode or Jetbrains IDEs for a project
- ESLint: Disable and re-enable rule for multiple lines
- Gulp reference
- How to debug client-side JavaScript with the Jetbrains debugger
- How to debug NPM modules
- Intercept Axios errors
- Lodash debounce reference
- NPM: Install latest version of package
- Rollup reference
- Run single ESLint rule
- Setup Axios
- Setup ESLint in TypeScript project
- Setup lodash in webpack project
- Setup no-unused imports
- Setup Prettier
- Track JavaScript errors using Sentry
- What is esbuild?
Jest
Jetbrains
- Datagrip: How to add a MySQL procedure/routine
- Datagrip: View DDL of table
- Exclude files or directories from JetBrains search
- How to debug client-side JavaScript with the Jetbrains debugger
- Jetbrains tips
- PHPStorm: Break on all PHP errors
- Run Typescript program in Jetbrains
- Troubleshoot TypeScript errors in Jetbrains IDEs
Keycloak
Kubernetes
Laravel
- Create new Laravel project
- Define foreign key constraints in Laravel migration
- Generate Laravel model with goodies
- How to type-hint variables in Blade
- How to upload files to S3 from Laravel
- How to view request data inside a Form class
- Laravel Event system overview
- Laravel Facades overview
- Laravel factories reference
- Laravel Forge deployment script
- Laravel Herd email overview
- Laravel logging with Pail
- Laravel Mail overview
- Laravel Middleware overview
- Laravel request lifecycle overview
- Laravel Service Container overview
- Laravel Service Providers overview
- Laravel storage overview
- Laravel testing tips
- Laravel troubleshooting: Possible fix for cryptic error
- Laravel: Convert timestamp to DateTime
- Laravel: copy files from local machine to remote server
- Laravel: Guards vs Providers
- Laravel: how to handle failed validation of a form request
- Laravel: Jobs vs Queues vs Workers
- Laravel: Single Action Controller
- Receive emails via Laravel Herd
- Send emails in Laravel using Gmail SMTP
- Troubleshoot Laravel Herd debugger
Learning
Linux
macOS
- Alfred tip: use browser bookmarks to quickly open pages
- Alfred workflows collection
- Combine multiple PDF files on macOS
- Force quit non-responsive macOS apps
- Free up space on macOS with OmniDiskSweeper
- Get local IP address of macOS machine
- Homebrew reference
- Homebrew: Upgrade a cask
- How to remove password protection from a PDF file on macOS
- How to start Chrome with web security / CORS disabled on macOS
- Install Java on macOS
- List groups that user belongs to on macOS
- macOS shortcut: Save screenshot of selection
- macOS tip: Quickly find all shortcuts for current app
- macOS tip: Switch between instances of same application
- macOS tip: Use Cmd + Tab and Cmd + Q to manage running apps
- macOS: Configure start-up programs
- macOS: Copy screenshot selection to clipboard
- macOS: Get the current WIFI password
- macOS: How to control what shows in menu bar
- macOS: Open Chrome without web security
- Pipe bash output to clipboard on macOS
- Restart Docker Desktop on macOS via the terminal
- Where are the cache files stored in macOS?
Mathematics
Maven
Mental health
Misc
- A rough roadmap for learning web development
- Automate deployments with Capistrano
- Browserless reference
- Chrome: Customise shortcuts
- Deploy Jekyll website on Ubuntu
- DNS records reference
- Download YouTube videos with yt-dlp
- Google: Limit results by file type
- Google: Limit search to specific site
- Google: Search for text in specific site
- Gregorian calender – days in months
- HEY email shortcuts
- How does semantic versioning work?
- How to slow down HTTP requests with Proxyman
- How to view only unread emails in Gmail
- Install MongoDB on macOS (M1)
- JSON encoding vs decoding
- Markdown table syntax
- My development toolkit
- Outlook add-ins overview
- Postman: Add request header in pre-request script
- Reading list
- Red Green Refactor
- Remap Caps Lock to Ctrl and Esc on Windows
- Resize image with ImageMagick
- Things to checkout
- Tmux reference
- Ways I use ChatGPT
- Website TODO list
- What is a time zone?
- What is A4?
- What is an algorithm?
- What is ARIA?
- What is authorization?
- What is GMT?
- What is JSON-LD?
- What is linked data?
- What is Swagger UI?
- What is the Fibonacci sequence?
- What is UTC?
- What’s the difference between GMT and UTC?
- Why use a strongly-typed language?
MongoDB
Mortgages
MySQL
- Allow remote access to MySQL 8 server
- Create MySQL database back ups using mysqldump
- How do SQL joins work?
- How to find location of mysql.cnf
- How to use loops in MySQL stored procedure
- How to view all MySQL queries on a server
- Install MySQL 8.4.0 on Ubuntu 22.04
- List all MySQL users
- MySQL JSON_EXTRACT reference
- MySQL stored procedures reference
- MySQL: DENSE_RANK() reference
- MySQL: FIND_IN_SET() reference
- MySQL: Check if JSON array contains a value
- MySQL: Check if JSON array doesn’t contain a value
- MYSQL: COUNT() reference
- MYSQL: DATE_FORMAT() reference
- MySQL: DISTINCT reference
- MySQL: GROUP_CONCAT() reference
- MySQL: Order by JSON field
- MySQL: PARTITION BY reference
- MySQL: Query by JSON value
- MySQL: ROW_NUMBER() reference
- MySQL: SHOW PROCESS LIST reference
- MySQL: Union reference
- Passwordless MySQL authentication with mysql_config_editor
- Perform a regex replace in MySQL
- SQL left join reference
- SQL: CASE expression reference
- SQL: COALESCE reference
- SQL: Common table expression reference
- SQL: GROUP BY reference
- SQL: HAVING reference
- SQL: Logical processing order
- SQL: MIN() reference
- SQL: NULLIF reference
- SQL: Regex search
- SQL: Subquery reference
- SQL: SUM() reference
- SQL: What is an aggregate function?
- SQL: What is SQL?
- What is a database transaction?
Networking
- Find out the web server of a website
- Get IP address of domain
- IP address
- List open ports
- List processes listening on port
- List TCP socket pairs
- List Unix domain sockets
- Network address and port address translation
- Setup MailHog as local SMTP server
- TCP sockets vs Unix domain sockets
- View Unix domain sockets
- What is a TCP socket?
- What is a Unix domain socket?
- What is a VPN?
Neuroscience
Nginx
- Add HTTPS to an Nginx website hosted on Digital Ocean
- Configure Nginx on macOS to serve WordPress website
- Configure Nginx on Ubuntu 22.04 to serve WordPress website
- Configure Nginx to serve PHP files on Ubuntu
- Display current Nginx config
- Install Nginx on macOS
- Install Nginx on Ubuntu 22.04
- Setup Nginx server blocks
- What is Nginx?
- Where are the Nginx logs when installed via Homebrew?
Node.js
Node.js tooling
NPM
- Check for outdated NPM packages in project
- Check version of NPM package installed
- Find out why a NPM package is installed
- How to debug NPM modules
- How to publish an NPM package
- Install latest version of NPM package
- List globally installed NPM packages
- NPM: Install latest version of package
- NPM: What does the npx command do?
- package.json reference
- Pass command-line arguments to NPM script
- Remove unused node_module directories to save space
- Upgrade a number of NPM packages under a common namespace
- Upgrade NPM to latest version
OAuth
OpenAPI
Patterns
PHP
- array_intersect reference
- Get PHP ini setting from the command line
- How Composer’s PSR-4 autoloading works
- How to do a regex replace in PHP
- How to install PHP extensions with PECL
- How to upgrade PHP version on Ubuntu
- Install PHP extensions for Docker image
- Install PHP on Ubuntu 22.04
- List configuration files loaded by PHP
- PHP Enums reference
- PHP: Dump values of multiple variables
- PHP: Slice array
- PHP: Split string into array of chars
- Switch between PHP versions using Homebrew
- Understanding spl_autoload_register and PHP’s autoloading mechanism
- Using .env variables in PHP
- What is the spaceship operator in PHP?
PHP tooling
- Configure Xdebug to open files in PHPStorm
- Docker: How to install PHP extension
- Flysystem reference
- How to install Xdebug on macOS
- nelmio/alice reference
- PECL: How to manually enable extension
- PECL: List installed extensions
- PHPStan reference
- PHPStorm: Break on all PHP errors
- PHPUnit: Run a single test
- PHPUnit: Stop on first test failure
- Show installed composer packages and their versions
- Show outdated composer packages
- Update single composer package
- What is PHP-FPM?
Playwright
Postgres
- Connect TablePlus to postgres via Unix socket
- Connect to Postgres database in Docker container
- Connect to Postgres via TCP port
- Create Postgres database
- Create Postgres user account
- Drop Postgres database
- How do Postgres roles work
- Install Postgres on Ubuntu
- List Postgres databases
- List Postgres users
- Set password for a Postgres user
- Setup Postgres in development
Posthog
Postman
Privacy
Programming tips
Property investment
Protocol
Protocols
Python
- Keep Python updated with Homebrew
- Python BeautifulSoup reference
- Python reference
- Python: Check for regex match
- Python: enumerate() reference
- Python: filter list
- Python: Map over list
- Python: Perform a regex replace
- Python: run unittest
- Python: Search for regex pattern in string
- Symlink python3 to python on macOS
- virtual env reference
- What is pip-compile?
- What is the __init__.py file in Python?
Python tooling
Rails
- Action Mailer reference
- Active Job reference
- Add compose unique index in Rails migration
- Add confirm pop-up in Rails 7
- Conditionally render different layouts in Rails
- Configure Action Mailer with Gmail SMTP
- Configure Rails’s default generators
- Create join table migration in Rails
- Create new Rails project
- Deploy Rails app on Heroku
- Disable Turbo drive on a form
- Enable CORS in Rails
- Get plain text of rich text attribute in Rails
- Get random collection of records with Active Record
- Get random record using ActiveRecord
- How does autoloading work in Rails?
- How to store sensitive credentials in Rails
- How to use Rails’s has_secure_password feature
- importmap-rails reference
- List autoload paths in Rails
- Phusion Passenger reference
- Prepare Rails app for deployment
- Rails Scopes reference
- Rails: Rollback all migrations
- Rollback last Rails migration
- Set default value for Active Record attribute
- Validate email format in Rails
Rails testing
- Define custom RSpec matcher
- Different types of Rails tests
- Factory Bot reference
- How to test CRUD operations in Rails
- How to test emails in Rails
- How to write Pundit policy specs
- Login Devise user in Capybara tests
- Setup Factory Bot in Rails
- Setup Faker in Rails
- Setup RSpec in Rails
- Setup Shoulda matchers in Rails
- Test authorization logic in Rails
- Test that page requires authentication in Rails
- Test the order of page content with RSpec & Capybara
- Troubleshoot: Capybara: Unable to find xpath /html (Capybara::ElementNotFound)
- Troubleshoot: Suppress Capybara Selenium driver warning
- Validate uniqueness of Active Record attribute
- Wait for JavaScript to run in Capybara tests
Rails tooling
- Customise SimpleForm inputs
- Setup Bootstrap in Rails
- Setup Dart Sass in Rails
- Setup Devise in Rails
- Setup Pundit in Rails
- Setup rails-ujs in Rails
- Setup Rubocop in Rails
- Setup Simple Form in Rails
- Setup Tailwind in Rails
- Track Rails errors with Sentry
- Use MailHog in Rails development mode
- ViewComponent reference
Random ideas
React
- Batching behaviour in React 17
- Batching behaviour in React 18
- How do refs work in React?
- How does React batch state updates?
- How does React use the key prop?
- How to use Error Boundaries in React
- React Component lifecycle
- React patterns: How to access form values outside form component
- React quirks: Context updates trigger re-render of all consumers
- React rendering process
- React toolbox
- React: check if user is at the bottom of the viewport
- React: Each render has its own state, props, event handlers, and effects
- React: Get text content of React element
- React: Render vs Commit phase
- React: What is a host instance?
- React: What is a host tree?
- React: What is a React element?
- React: What is a React renderer?
- React: What is the entry point?
- React: What’s reconciliation?
- React.Context reference
- React.Context with TypeScript example
- React.createPortal reference
- React.lazy reference
- React.useCallback reference
- React.useEffect reference
- React.useFormState reference
- React.useLayoutEffect reference
- React.useMemo reference
- React.useReducer reference
- React.useRef reference
- ReactDOM.flushSync reference
- Setup Vite & React project
- What is JSX?
- What is ref forwarding in React?
- What is Strict Mode in React?
React patterns
- How to handle offline statuses with React Query
- React patterns: Clean up effect when component unmounts
- React patterns: How to create a wrapper around a native HTML element
- React patterns: How to deal with functions as useEffect dependencies
- React patterns: How to handle aborted request in React
- React patterns: How to think in React
- React patterns: Run effect after every render
- React patterns: Run effect only if dependencies change
- React patterns: Run effect only on mount
- React patterns: Scroll to first validation error
- React patterns: When to use useReducer over useState
- React: How to handle file uploads
- useEffect rules
React Query
- React Query: Add DevTools
- React Query: Check if any queries are fetching
- React Query: Check if query is fetching or refetching
- React Query: Default configuration
- React Query: derived boolean flags
- React Query: How to debounce queries
- React Query: How to make a query dependent on another
- React Query: Invalidate query caches
- React Query: isInitialLoading
- React Query: isLoading vs isFetching vs isRefetching
- React Query: status reference
- React Query: Using callbacks on useMutation vs mutate itself
- React Query: What is a mutation?
- React Query: What is a query?
- React Query: What is staleTime?
- React Query: What is the query key used for?
- React Query: Why isn’t my query being invalidated?
- Setup React Query
- Troubleshot: React Query useMutation type error
- What is React Query?
React Router
React tooling
- Add environment variables in create-react-app project
- Add React Router to Vite project
- Check if link is active in React Router
- Create create-react-app project
- Dump helper component for React
- Formik: Access Formik instance as a ref
- How to optimize a React app
- How to validate nested fields with Formik and Yup
- Install useful tools for React project
- React Datepicker reference
- React Select reference
- React-select: How to render menu when dropdown is at the bottom of the screen
- Reusable Formik text input component
- Setup new React project
- Setup React-Bootstrap in Vite project
- Setup styled-components in create-react-app project
- Setup Tailwind in create-react-app project
- Setup Tailwind UI in React project
- tiptap reference
react-select
Redux
- Do you need reselect’s createSelector with Redux Toolkit?
- How data flows in Redux apps
- How to persist and rehydrate a Redux store
- Redux Toolkit: Create an action that dispatches multiple other actions
- Redux Toolkit: createAction reference
- Redux Toolkit: Example usage
- Redux: What is a selector?
- RTK Query reference
Refactoring
Regex
- How to find overlapping Regex matches in JavaScript
- Regex recipe: Check if string contains only digits
- Regex: Check for valid integer
- Regex: Find consecutive characters
- Regex: negative look behind
- Regex: negative lookahead
- Regex: positive look behind
- Regex: positive lookahead
- Regex: remove specific types of characters from string
Resources
rsync
Ruby
Ruby tooling
Snippets
- Capitalize string
- Check if array has duplicate elements
- Check if number is a prime number
- Check if string is a palindrome
- Convert number to standard binary or twos complement
- Count number of times a character occurs in a string
- Count occurrences of items in array
- Examples usages of recursion
- Fibonnaci sequence
- Find consecutive elements in an array
- Get decimal part of float
- Get elements that occur in both arrays
- Get factors of number
- Get random element from array
- Slugify a string
- Sort a JavaScript object
- Split array into chunks of size n
Software engineering
SSH
Storybook
Stripe
Symfony
- Create new Symfony project
- Deserialize data into a PHP object using Symfony Serializer
- Dump the configuration for a Symfony extension
- How do event priorities work in Symfony?
- How to implement a custom Symfony authenticator
- How to integrate VichUploaderBundle with thephpleague/flysystem-bundle
- List available services for Symfony application
- List routes in Symfony app
- Serialize PHP objects using Symfony Serializer
- Symfony Cache reference
- Symfony CLI reference
- Symfony Events reference
- Symfony events: kernel.controller reference
- Symfony events: kernel.controller_arguments reference
- Symfony events: kernel.exception reference
- Symfony events: kernel.finish_request reference
- Symfony events: kernel.request reference
- Symfony events: kernel.response reference
- Symfony events: kernel.terminate reference
- Symfony events: kernel.view reference
- Symfony File component reference
- Symfony Flex reference
- Symfony Forms reference
- Symfony Mailer reference
- Symfony Voters reference
- Symfony: Access control expressions reference
- Symfony: Difference between @UniqueEntity and @UniqueConstraint
- Symfony: Disable deprecation notices in console
- Symfony: How does the HttpKernel work?
- Symfony: List all event listeners
- Symfony: list event listeners for a specific event
- VichUploaderBundle reference
- What is a normalizer in Symfony Serializer?
- What is an encoder in Symfony Serializer?
- What is Symfony?
Tailwind
TypeScript
- Debug server-side TypeScript app in Node.js
- Extend Express.Request in TypeScript
- Extend process.env in TypeScript
- Fix error when importing asset files in TypeScript
- How does the `infer` keyword work in TypeScript?
- How to make TypeScript understand your Array.filter
- How to use strongly-typed version of Object.keys
- Object.groupBy reference
- React.Context with TypeScript example
- Run Typescript program in Jetbrains
- Setup Jest in TypeScript project using ts-jest
- Setup TypeScript in Node.js project
- Troubleshoot TypeScript errors in Jetbrains IDEs
- TypeScript generics examples
- Typescript optional keys reference
- TypeScript: Create a Concat util to merge two array types
- TypeScript: Define record where keys must be belong to union
- TypeScript: Emulate Awaited built-in
- TypeScript: Emulate Exclude built-in
- TypeScript: Emulate Omit built-in
- TypeScript: Emulate Parameters built-in
- TypeScript: extend Window object
- TypeScript: How to recursively map over object properties
- TypeScript: Indexed Access Types
- TypeScript: interface vs type
- TypeScript: keyof reference
- TypeScript: Mapped types reference
- TypeScript: template literal types reference
- Useful Typescript config: noUncheckedIndexedAccess
Ubuntu
- Check how much disk space is available on Ubuntu
- Check Ubuntu version
- Create an Ubuntu bootable USB stick using macOS
- Increase Ubuntu keyboard speed
- Install ZSH on Ubuntu
- List files of APT packages
- List installed APT packages
- List PPA repositories
- Pipe output to clipboard on Ubuntu
- Remap Caps Lock to Ctrl and Esc on Ubuntu
- Setup Ubuntu server for production
- What does apt-get update do?
Ubuntu user management
UK
UK regulations
- Independent vs restricted advisers
- List of designated professional bodies in the UK
- What is a Designated Professional Body (DPB)?
- What is a DPB licence?
- What is a regulated financial activity?
- What is an Appointed Representative?
- What is an exempt regulated activity?
- What is GDPR?
- What is the Financial Conduct Authority (FCA)?
- What is the general prohibition?
Unix
- Add GitHub SSH key for Digital Ocean server
- Check character encoding of file
- Count occurrences of a string in a file
- Cron reference
- Download image with wget
- Find all lines matching text
- Find files or folders in path
- Find process by command name
- How to avoid repeatedly being asked for SSH passphrase
- htop: Filter processes by name
- htop: kill process
- htop: show processes by user
- htop: Sort process by CPU usage
- htop: Sort processes by memory use
- htop: View process in tree mode
- Kill processes listening on specific port
- List open ports
- List processes
- List processes listening on port
- List size of files and directories
- Print the first n lines of file in Unix
- Search for Unix process by command substring
- Shebang
- Show info about process with a given PID
- Transfer files between Unix machines with rsync
- View files and streams being used by a process
- View size of directories
- View Unix domain sockets
- What is a cgroup?
- What is a file descriptor?
- What is a setgid?
- What is a Unix domain socket?
- What is GNU?
- What is SUID?
- What is Supervisor?
Vite
Vitest
VSCode
Vue.js
Web APIs
- Element.clientWidth reference
- Element.scrollWidth reference
- MutationObserver reference
- Web APIs: Blob reference
- Web APIs: History reference
- Web APIs: History.pushState()
- Web APIs: History.replaceState()
- Web APIs: MutationObserver reference
- Web APIs: URLSearchParams reference
- WebAPIs: AbortController reference
- What are Web APIs?
- What is sticky activation?
- When is the Window.popstate event fired?
- Window beforeunload event
Web browsers
Web development
Web optimisation
Web security
WordPress
- .gitignore for WordPress projects
- Allow SVG uploads from WP admin
- Check current WordPress version
- Clone local WordPress database on remote server
- Clone remote WordPress database on local machine
- Configure Nginx on macOS to serve WordPress website
- Configure Nginx on Ubuntu 22.04 to serve WordPress website
- Deploy WordPress website on Ubuntu server
- How to check which PHP versions your WordPress version supports
- How to create a WordPress plugin
- List published WordPress posts sorted by latest
- Transfer WordPress media files between servers
- Update WordPress permalinks in database