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 |
Syncing an Ethereum node is largely reliant on latency and IOPS, I/O Per Second, of the storage. Budget SSDs will struggle to an extent, and some won't be able to sync at all. IOPS can roughly be used as proxy of / predictor for latency. Measuring latency directly is arguably better.
This document aims to snapshot some known good and known bad models.
The drive lists are ordered by interface and then by capacity and alphabetically by vendor name, not by preference. The lists are not exhaustive at all. @mwpastore linked a filterable spreadsheet in comments that has a far greater variety of drives and their characteristics. Filter it by DRAM yes, NAND Type TLC, Form Factor M.2, and desired capacity.
For size, 4TB is a very conservative choice. The smaller 2TB drive should last an Ethereum full node until at least sometime 2026, with [pre-merge history expiry](https://hackmd.io/@hBXHLw_9Qq2va4pRtI4bI
// Example of using ethers.js to interact with a smart contract | |
// Call a contract method at a specific block | |
// This example is to get rate of a token at a block | |
import { ethers } from "ethers" | |
import BigNumber from "bignumber.js" | |
// prettier-ignore | |
const oracleABI = '[{"inputs":[{"internalType":"contract MultiWrapper","name":"_multiWrapper","type":"address"},{"internalType":"contract IOracle[]","name":"existingOracles","type":"address[]"},{"internalType":"enum OffchainOracle.OracleType[]","name":"oracleTypes","type":"uint8[]"},{"internalType":"contract IERC20[]","name":"existingConnectors","type":"address[]"},{"internalType":"contract IERC20","name":"wBase","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract IERC20","name":"connector","type":"address"}],"name":"ConnectorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract IERC20","name":"connector","type":"address"}],"name":" |
Unfortunately, otelcol currently has no receiver for logfiles that produces tracing data.
There is log tailing functionality, and e.g. a fluent forward
protocol receiver, but they all create "log" data, not tracing.
I've seen this proof of concept
to implement a forward
receiver that creates tracing data, but that seems to have no traction and no relation to the upstream project at all (not even git history.
Thus, we've settled on this approach:
#!/bin/bash | |
# usage: ./duckdb-load.sh data.tsv duckdb tablename | |
# for example: | |
# ./duckdb-load.sh ark/hcaf_species_native.tsv duckdb_database hcaf_species_native | |
# TODO set pragma journal_mode=off or equiv settings | |
# if using .import and .sep '\t', an error appears: | |
# Error: multi-character column separators not allowed for import |
This focuses on generating the certificates for loading local virtual hosts hosted on your computer, for development only.
Do not use self-signed certificates in production ! For online certificates, use Let's Encrypt instead (tutorial).
edit /etc/hosts add my.
This gist will show how to setup Raspbian Stretch as a headless Bluetooth A2DP audio sink. This will allow your phone, laptop or other Bluetooth device to play audio wirelessly through a Rasperry Pi.
A quick search will turn up a plethora of tutorials on setting up A2DP on the Raspberry Pi. However, I felt this gist was necessary because this solution is:
Want to inject some flavor into your everyday text chat? You're in luck! Discord uses Markdown, a simple plain text formatting system that'll help you make your sentences stand out. Here's how to do it! Just add a few characters before & after your desired text to change your text! I'll show you some examples...
What this guide covers:
[ Update 2025-03-24: Commenting is disabled permanently. Previous comments are archived at web.archive.org. ]
Most of the terminal emulators auto-detect when a URL appears onscreen and allow to conveniently open them (e.g. via Ctrl+click or Cmd+click, or the right click menu).
It was, however, not possible until now for arbitrary text to point to URLs, just as on webpages.