By Claude Code (Anthropic)
With vague assistance from Merlin Mann
April 7, 2026
Tip
A suggested prompt for your AI of choice:
An admittedly weird but functional way to get into an extraordinary musical.
By Merlin Mann
December 15, 2016.
Proviso: This show is long and weird and overhyped and it is not for everyone. If you're not already a fan, you're certainly sick of hearing about it. Sorry. But if you maybe are interested, hey, here's a sane and scalable (if unorthodox and opinionated) way to decide if Hamilton is right for you.
Method: I suggest approaching Hamilton in something like concentric circles. The show definitely benefits from multiple listenings, but those listenings needn't be all the way through every time. Give the songs a chance; they're building something.
| #!/bin/sh | |
| defaults read com.apple.finder CreateDesktop > /dev/null 2>&1 | |
| enabled=$? | |
| if [ "$1" = "off" ]; then | |
| if [ $enabled -eq 1 ]; then | |
| osascript -e 'tell application "Finder" to quit' | |
| defaults write com.apple.finder CreateDesktop false | |
| open -a Finder |
| javascript: Promise.all([import('https://unpkg.com/turndown@6.0.0?module'), import('https://unpkg.com/@tehshrike/readability@0.2.0'), ]).then(async ([{ | |
| default: Turndown | |
| }, { | |
| default: Readability | |
| }]) => { | |
| /* Optional vault name */ | |
| const vault = ""; | |
| /* Optional folder name such as "Clippings/" */ |
Steps to deploy a Node.js app to DigitalOcean using PM2, NGINX as a reverse proxy and an SSL from LetsEncrypt
If you use the referal link below, you get $10 free (1 or 2 months) https://m.do.co/c/5424d440c63a
I will be using the root user, but would suggest creating a new user
| // Inspired by https://twitter.com/coderitual/status/1112297299307384833 and https://tapajyoti-bose.medium.com/7-killer-one-liners-in-javascript-33db6798f5bf | |
| // Remove any duplicates from an array of primitives. | |
| const unique = [...new Set(arr)] | |
| // Sleep in async functions. Use: await sleep(2000). | |
| const sleep = (ms) => (new Promise(resolve => setTimeout(resolve, ms))); | |
| // or | |
| const sleep = util.promisify(setTimeout); |
| :root { | |
| --ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53); | |
| --ease-in-cubic: cubic-bezier(0.55, 0.055, 0.675, 0.19); | |
| --ease-in-quart: cubic-bezier(0.895, 0.03, 0.685, 0.22); | |
| --ease-in-quint: cubic-bezier(0.755, 0.05, 0.855, 0.06); | |
| --ease-in-expo: cubic-bezier(0.95, 0.05, 0.795, 0.035); | |
| --ease-in-circ: cubic-bezier(0.6, 0.04, 0.98, 0.335); | |
| --ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94); | |
| --ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1); | |
| --ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1); |
rebase vs merge).rebase vs merge)reset vs checkout vs revert)git rev-parse)pull vs fetch)stash vs branch)reset vs checkout vs revert)| module.exports = { | |
| webpack: (config) => { | |
| const webpack = require('webpack') | |
| const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin | |
| config.plugins = config.plugins || [] | |
| config.plugins.push(new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /en/)) | |
| config.plugins.push(new BundleAnalyzerPlugin()) | |
| return config | |
| } | |
| } |