Skip to content

Instantly share code, notes, and snippets.

View cheeaun's full-sized avatar
Subscribe to my newsletter

Chee Aun cheeaun

Subscribe to my newsletter
View GitHub Profile

There's some weird stuff in some server responses to /api/v1/instance and /api/v2/instance.

Here's some I've seen in the wild. Format is:

  • Heading with server type (e.g., "akkoma") and whether this was v1 or v2
  • Then the error when trying to parse the data
  • Then a list of all the servers that triggered the same parse error, with their reported version number

Some of these have been fixed in newer versions of the servers but the fixes haven't fully rolled out.

WebReflection /
Last active November 23, 2023 19:35
Proxy Traps Cheat Sheet

Proxy Traps Cheat Sheet

There are various shenanigans around the Proxy API, including issues with Array.isArray and Object.ownKeys so that this gits purpose is to describe all the undocummented caveats to help anyone dealing with all possibilities this half-doomed API offers.

The 3 + 1 Proxy Types

  • object: any non primitive value can be proxied but apply and construct traps won't work with it. If the object somehow wants to represent an array without being one, it's impossible to survive Array.isArray brand check (it will be false) and with ownKeys the target needs to have a non configurable length property or it will also fails once reached
  • array: it's like object but it survives the `

Clients should be able to determine the operations the server supports

Version Date Changes
3.0 2024-01-22 Re-write; include the operation information in the nodeinfo
2.0 2023-09-25 Re-write; replace the original suggestion to use the OpenAPI definition with a simpler specification
1.0 2023-08-14 Initial draft
<!DOCTYPE html>
<title>Mapbox GL JS debug page</title>
<meta charset='utf-8'>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<link href='' rel='stylesheet' />
body {
stuartbreckenridge / String+BusStopExpansion.swift
Created November 4, 2021 03:27
Expand abbreviated bus stop names
extension String {
func expandName() -> String {
return self
.replacingOccurrences(of: "\\bA'space\\b", with: "Aerospace", options: [.regularExpression, .caseInsensitive])
.replacingOccurrences(of: "\\bAbly\\b", with: "Assembly", options: [.regularExpression, .caseInsensitive])
.replacingOccurrences(of: "\\bAc\\b", with: "Academy", options: [.regularExpression, .caseInsensitive])
.replacingOccurrences(of: "\\bAcad\\b", with: "Academy", options: [.regularExpression, .caseInsensitive])
.replacingOccurrences(of: "\\bAdm\\b", with: "Administration", options: [.regularExpression, .caseInsensitive])
.replacingOccurrences(of: "\\bAdvent\\b", with: "Adventist", options: [.regularExpression, .caseInsensitive])
.replacingOccurrences(of: "\\bAft\\b", with: "After", options: [.regularExpression, .caseInsensitive])
earthbound19 / OklabExperiments.js
Last active May 20, 2024 21:34
rgb <-> oklab to/from convert, color blend through oklab space
// This gist contains JavaScript functions and tests for:
// - conversion from gamma-corrected (or gamma-compressed) sRGB to linear RGB, to Oklab
// - interpolation through Oklab
// - conversion back to linear RGB, then sRGB
// To use these tests, install nodejs, save this file locally, and run with:
// node OklabExperiments.js
// No other dependencies are required to use this.
// Thanks to some helpful folks in the generative art community for helping me better understand what's happening with this.
// My toddler smacked the keyboard with a piece of cardboard and made me accidentally type:
akihikodaki /
Last active May 30, 2024 04:18
Linux Desktop on Apple Silicon in Practice

Linux Desktop on Apple Silicon in Practice

I bought M1 MacBook Air. It is the fastest computer I have, and I have been a GNOME/GNU/Linux user for long time. It is obvious conclusion that I need practical Linux desktop environment on Apple Silicon.

Fortunately, Linux already works on Apple Silicon/M1. But how practical is it?

  • Two native ports exist.
cheeaun / random-chmod-commands.txt
Last active August 26, 2022 08:37
Random chmod commands
Set all files to 644
> find . -type f -exec chmod 644 {} \;
Set all folders to 755
> find . -type d -exec chmod 755 {} \;
Set all .bin files to executable
> chmod +x node_modules/.bin/*
Find all .bin files
Jack-Works / 2018.js
Last active March 1, 2024 02:23
cRAzY eSnEXt (*all* proposals mixed in)
#! Aaaaaaaaaaa this is JS!!!
// This file is mixing all new syntaxes in the proposal in one file without considering syntax conflict or correct runtime semantics
// Enjoy!!!
// Created at Nov 23, 2018
for await(const x of (new A //
|> do { //
case(?) { //
when {val}: class {