Skip to content

Instantly share code, notes, and snippets.

@ezefranca
ezefranca / asesprite.sh
Last active December 26, 2025 15:04
Install Aseprite.app on Macs ARM (M Family)
#!/usr/bin/env bash
set -euo pipefail
# === CONFIGURE THESE ===
ASE_DIR="$HOME/src/aseprite" # base directory for the work
SKIA_TAG="m112" # adjust based on Aseprite’s required Skia version Eg. m124-08a5439a6b
SKIA_URL="https://github.com/aseprite/skia/releases/download/${SKIA_TAG}/Skia-macOS-Release-arm64.zip"
# You may need to update SKIA_TAG/URL based on the version listed in the INSTALL.md of Aseprite.
APP_NAME="Aseprite.app"
# =======================
@yorickdowne
yorickdowne / HallOfBlame.md
Last active January 13, 2026 08:37
Great and less great SSDs for Ethereum nodes

Overview

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 conservative choice which also supports a Fusaka "supernode". The smaller 2TB drive should last an Ethereum full node until at least sometime 2026, with [pre-merge history expiry](http

@mgersty
mgersty / httpredirect.example.swift
Last active April 5, 2022 02:19
Swift code demonstrating the capture of a 302 redirect via delegates
import Foundation
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
class DelegateToHandle302:NSObject, URLSessionTaskDelegate {
func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse, newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
print(response.description)
PlaygroundPage.current.finishExecution()
}