Creating decent GIFs for game descriptions on Steam 11/12/2024 #gamedev #marketing Steam allows GIFs on store pages, but they need to be small and look decent. Here's how to use ffmpeg to create them.
Mouse Back/Forward Buttons and Element Focus 10/31/2024 #javascript #webdev When navigating back/forward via the mouse buttons, hovered elements capture focus. Here's why, and how to prevent it.
Super Simple Cold Brew Coffee 4/21/2024 #coffee #recipe All you need is a jar, a tea infuser, and some ground coffee.
Super Simple Coffee Tonic 4/21/2024 #coffee #recipe All you need is cold coffee, a tasty syrup, and tonic water.
Increase employee compensation, continuously 2/11/2024 #business If you aren't accounting for inflation, you're giving your employees a continuous pay cut.
Custom JavaScript/Typescript Errors: Why and how to use them 12/18/2023 #node #javascript #typescript Custom JavaScript classes are super useful for simplifying your error-handling logic. Learn how they work, why to use them, and get templates and VSCode snippets to make them easy to add to your project.
VSCode's Workspace Symbol Provider: Why and how to use it 12/9/2023 #vscode #typescript VSCode's Workspace Symbol Provider provides a great way to make symbols searchable in your code base. But it's not just limited to code symbols!
Advent of Code 2023 in JavaScript 12/3/2023 #programming #javascript #node Discussion and solutions for some of the 2023 Advent of Code puzzles, written in Node.js/JavaScript.
JavaScript regex for semver strings 9/18/2023 #javascript #regex #programming A comprehensive JavaScript regular expression for matching semver strings, plus a simple semver parser.
Statically host your Electron app updates: No server required! 8/27/2023 #programming #node #javascript The Electron docs describe autoupdate servers you can use for your app. But you can also get by with a static host.
How to tell if something is a plain old JavaScript object (POJO) 8/26/2023 #javascript #typescript #programming Tons of things in JavaScript are objects of one sort or another. How can you differentiate between plain vanilla objects and others?
HTTP Guide 7/3/2023 #webdev #beginners #computer-science #http HTTP makes the Internet go round. This guide provides a high-level, practical overview of how it works.
JSON Guide 7/3/2023 #beginners #computer-science #encoding #webdev #data #json JSON is one of the most common ways to represent data on the Internet. How does it work?
The "Can We Not" Principle 7/3/2023 #productivity #business #philosophy #life The highest-leverage thing you can do is sometimes nothing at all.
JavaScript wants your functions to have names 5/29/2023 #javascript #webdev There's no such thing as an anonymous function in JavaScript.
Configure pnpm for the best possible developer experience 5/26/2023 #node #pnpm #npm #programming #webdev pnpm is a delightful package manager for Node.js, and is great right out of the box (especially for monorepos). Make it even better with the right configuration settings.
WSL: Resolving temporary failures in DNS name resolution 4/30/2023 #windows #webdev #wsl WSL sometimes forgets how to talk to the Internet. If you're seeing the error "Temporary failure in name resolution", here's how to fix it.
Setting up GitHub Copilot CLI on Windows 4/30/2023 #copilot #github #git #cli #windows #ai GitHub Copilot CLI is rolling out in early access. Here's how to get it working on Windows.
Use corepack to ensure consistent pnpm/yarn versions 10/9/2022 #pnpm #npm #monorepo #node #webdev #devops #javascript #learn #programming Avoid works-on-my-machine errors across environments by using corepack to ensure the same version of pnpm or yarn is used everywhere (even in monorepos).
CommonJS (cjs) and Modules (esm): Import compatibility 3/9/2022 #javascript #learn #node #webdev #programming #typescript You can import CommonJS (cjs) into ESM modules, and vice versa (esm into cjs). But one way is easier than the other.
✂ Save time and make fewer mistakes with Snippets 6/1/2021 #productivity #tools #programming #webdev #javascript #typescript #vscode If you aren't using snippets in VSCode, you're going to be bummed when you find out how much time you could have been saving...
🚀 Super-charge your email with your own domain, routing, aliases, and catch-alls via Google Workspace 5/16/2021 #productivity #email #tutorial #google #business Using an email address with your own custom domain signals professionalism. But that's not the only benefit!
Live Dev: How to set up a Node project with Typescript 5/14/2021 #javascript #node #typescript #tutorial #programming #video Modern web development requires a lot of setup. I'll walk you through it, diving deep into the details along the way.
How Notion's URLs change without breaking your links 5/5/2021 #webdev #notion #programming #html When you change a Notion page's title, its URL changes. But all of your old URLs still get you to that page! Here's how Notion does it.
😴 Laziness isn't real 4/26/2021 #productivity #discuss #motivation #mental-health #adhd #life #philosophy #privilege #definition If you beat yourself up for being "lazy", you're probably wrong. If you think others are lazy, you're wring there, too.
Multi-display workstations: boost productivity without breaking your neck 4/19/2021 #productivity #ergonomics #health #windows #discuss #programming Use multiple displays without creating an ergonomic nightmare.
💻 Documentation as code 4/8/2021 #programming #documentation #writing #productivity #devops #discuss Documenting code in a scalable and maintainable way seems to be impossible. Let's re-think it.
Resolving E404 on global install of a private npm package (Linux) 3/28/2021 #javascript #permissions #security #authentication #npm #node #webdev #linux If you're getting E404 "Not Found" when trying to install a private npm package, make sure you're logged into the right scope (root or user).
How email previews work 3/23/2021 #webdev #html #css #email #marketing #encoding Email clients show the first line of an email before you open it. Here's how that works, and how you can hack it.
Beware silently skipped tests in Mocha 3/3/2021 #webdev #javascript #node #testing #tdd #mochajs Any Mocha.js tests defined within an async describe function will be silently skipped! (Don't use async functions in your describe() callbacks.)
Prettify your JavaScript strings 2/1/2021 #javascript #node #tools #webdev #programming #typescript Use JavaScript's template literals to make it a breeze to stick strings together and insert data into them.
Does game piracy matter? 1/28/2021 #gamedev #business People will pirate your game in enormous numbers. The most effective way to fight it is to make it not matter. Treat piracy as a design constraint.
Learn how binary encoding works 12/28/2020 #computer-science #encoding #serialization #communication #binary #beginners #programming #learn #data "Binary encoding" sounds complicated. It's more approachable than you think, and understanding it unlocks a wealth of knowledge and tools.
Setting up Windows 10 for web development, including Docker, Linux, and Node.js 12/24/2020 #webdev #docker #linux #node #tools #windows If you run your websites on Linux servers, you probably want to use Linux for development, too. Here's how to get set up for that on Windows 10.
Make coding a joy with these core VSCode extensions and settings 12/24/2020 #vscode #programming #tools #webdev #javascript #typescript #node You can only be as good as your tools. Here are the core VSCode extensions and settings that I use to make web development a blast.
How to run Linux on Windows 10 using WSL2 12/24/2020 #linux #windows #docker #webdev Use Linux and Windows 10 at the same time, while making Windows do all the hard work. Here's how.
Apple's 15% cut for non-millionaires: PR move or sound investment? 11/18/2020 #apple #business #gamedev The announcement created a lot of buzz, and a lot of questions. Is it "just a PR stunt" to help Apple's side of its various anti-monopoly suits?
Tech Debt: The Bill Comes Due 11/6/2020 #gamedev #devops What is technical debt, and how do you decide when to pay it down? Here are the lessons I learned from shoring up a legacy project.
How to stringify class instances in Javascript and Express.js 9/2/2020 #typescript #javascript #expressjs #serialization #data #json Bend JSON stringification to your will with custom .toJSON() class methods and replacers.
The Typescript "as const" trick 8/24/2020 #typescript #javascript #tools #jsdoc #productivity #webdev Cast your Typescript values using "as const" to add extra tricks and safety. As of Typescript 4.5, you can do this in JSDoc comments as well.
Create a live-reload server for front-end development 8/23/2020 #node #webdev #javascript #tools Manually reloading a webpage when you make changes is a pain. You can solve this with a live-reload server. Here's how to make one.
"Sign in with Apple" implementation hurdles 10/10/2019 #webdev #authentication #security #apple #cors #cookies #http Apple released its own OAuth implementation, and really wants you to use it. Their non-standard implementation presents a development challenge.
Image Correction Microscopy 5/31/2014 #science #biology #phd Fluorescence microscopy images are plagued with background noise. The standard approach to correcting for this is insufficient.
Allele frequency problem in "Looper" 1/12/2013 #science #biology #evolution #media #critique Time travel is always a nonsense generator, but "Looper" kicks it up a notch with impossibly rapid evolution.
The "Birthday Problem" simulated with Python 7/13/2011 #math #learn #statistics #simulation #programming #python There's better than a 50% chance that 2 of any 25 random people will share the same birthday. That's hard to believe. Let's simulate it!
Cloning trick: ligation of multiple inserts 7/11/2011 #science #biology #experiments #tools #productivity #learn Stitching multiple DNA inserts together through standard cloning yields terrible results. But you can amplify the rare successes!
The Monty Hall problem modeled in Python 2/20/2011 #math #learn #statistics #simulation #programming #python The Monty Hall problem is a classic example of how difficult statistical reasoning can be. Let's simulate it in Python.
"Gödel, Escher, Bach": Wondrousness in Python 1/15/2011 #math #learn #simulation #programming #python In GEB the Tortoise and Achilles describe a number property they call "Wondrousness". It creates a fascinating graph.