Adds a countdown like this to your zsh prompt:
(next meeting: 15:30, in 1h25m)
It only shows up when a meeting starts within the next 4 hours. It's green normally, yellow under 15 minutes and red under 5 minutes.
| /** | |
| * Wipes all items from every DynamoDB table whose name starts with the given | |
| * prefix. | |
| * | |
| * Lists all tables in the account, keeps the ones matching the prefix, and for | |
| * each one scans every item (projecting only the key attributes) and deletes | |
| * them in batches of 25 via `BatchWriteItem`. Tables with deletion protection | |
| * enabled are skipped. The table itself is left in place — only its contents | |
| * are removed. | |
| * |
| /* | |
| * Publish a pre-release ("dev") version to NPM. | |
| * | |
| * Computes the next dev version as `<next-target>-dev.<n>`, where: | |
| * - <next-target> is the latest published stable version with either the | |
| * minor or the major bumped by one and lower components reset to 0 | |
| * (e.g. `14.0.4` → `14.1.0` for a minor bump, or `14.0.4` → `15.0.0` | |
| * for a major bump). The bump kind is controlled by the `--major` flag; | |
| * the default is a minor bump. | |
| * - <n> is one greater than the highest existing dev counter for |
| alias ts='f() { node --experimental-transform-types --no-warnings $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15} ${16} ${17} ${18} ${19} ${20} };f' |
| import fs from 'node:fs' | |
| import path, { dirname } from 'node:path' | |
| import { fileURLToPath } from 'node:url' | |
| const __dirname = dirname(fileURLToPath(import.meta.url)) | |
| console.log(__dirname) // Outputs: /absolute/path/to/directory | |
| const updateImports = (directory) => | |
| fs.readdirSync(directory).forEach((file) => { | |
| const filePath = path.join(directory, file) |
| curl -s https://api.github.com/orgs/bifravst/repos\?per_page\=200 | jq '.[] | select( .archived == false).clone_url' -r | xargs -I@ git clone --depth 1 @ |
When a lambda is authored with this structure:
acme.js
acme/lib.js
and the acme.js imports from acme/lib.js it breaks:
| Who is interviewing you? Do you talk to the people you'd be working with everyday? | |
| Does someone else you know have insider information before a formal interview? | |
| Why do you need this role? How is this competency covered in the org at the moment? | |
| What is the current mindset of the team? | |
| How is a team formed? Do we all win together? | |
| What's the salary like? | |
| What are people's typical hours? What is it like when you get close to a deadline? | |
| Check out Glassdoor reviews (but keep in mind it can be anecdotal) | |
| What's difficult about the current situation? | |
| Are you expected to be in the office, have your camera on? |
| import { xml2json } from "xml-js"; | |
| const station = async ({ latitude, longitude }) => { | |
| const req = `https://api.sehavniva.no/tideapi.php?${new URLSearchParams({ | |
| lat: latitude, | |
| lon: longitude, | |
| datatype: "obs", | |
| refcode: "cd", | |
| interval: 60, | |
| dst: 0, |