Default keyboard shortcuts for Ghostty terminal emulator. Platform-specific differences are noted where applicable.
Action | Windows/Linux | macOS |
---|---|---|
New window | Ctrl+Shift+N | Cmd+N |
Close window | Alt+F4 | Cmd+Shift+W |
#!/bin/sh | |
RELEASE=$(/usr/local/bin/go list -m -f '{{.Version}}' go@latest) | |
GO_FILE=go${RELEASE}.linux-amd64.tar.gz | |
BIN=https://go.dev/dl/${GO_FILE} | |
echo "download $GO_FILE from $BIN ..." |
I get asked pretty regularly what my opinion is on merge commits vs rebasing vs squashing. I've typed up this response so many times that I've decided to just put it in a gist so I can reference it whenever it comes up again.
I use merge, squash, rebase all situationally. I believe they all have their merits but their usage depends on the context. I think anyone who says any particular strategy is the right answer 100% of the time is wrong, but I think there is considerable acceptable leeway in when you use each. What follows is my personal and professional opinion:
Capture a movie on your phone of the object by walking around it. If possible shoot it from different angles e.g. from above looking down, below looking up, side on etc. When you film it, walk around it or move the camera around it in a full 360 revolution (or even a couple of revolutions). You should get something like this (note that the image below is a resized copy of the orignal downrated to 1 fps):
Put the video into an empty folder and then use ffmpeg to extract the frames. You can experiment with different frame rates but generally there will be little value in extracting at 60fps or whatever your phone natively shoots at.
If you are on an iPhone you may need to convert your movie from .HEIC format first:
This is inspired by https://fasterthanli.me/blog/2020/a-half-hour-to-learn-rust/
the command zig run my_code.zig
will compile and immediately run your Zig
program. Each of these cells contains a zig program that you can try to run
(some of them contain compile-time errors that you can comment out to play
with)
package main | |
import ( | |
"context" | |
"encoding/base64" | |
"flag" | |
"fmt" | |
"log" | |
container "google.golang.org/api/container/v1beta1" |
myMac.domain.com
sudo scutil --set HostName <new host name>
// Create a Worker we want to share memory with: | |
let w = new Worker(`data:text/javascript, | |
onmessage = ({data: memory}) => { | |
// Got WebAssembly.Memory once, log same instance forever with no further postMessages: | |
setInterval(() => console.log('Current buffer in worker:', memory.buffer), 5_000); | |
} | |
`); | |
// Create a shared growable memory: | |
let m = new WebAssembly.Memory({ initial:1, maximum: 65536, shared: true }); | |
// Send memory to the worker: |