Skip to content

Instantly share code, notes, and snippets.

@neomantra
neomantra / ntpicture_ghostty1.4.md
Created October 27, 2026 20:53
ntpicture improvements from Ghostty 1.4

Request for ntpicture: leverage Ghostty 1.4 Kitty graphics additions (a=f, a=a, N=1, Wuffs o=z)

Filed against ntpicture after inspecting Ghostty v1.4.0 (src/terminal/kitty/). The prompt below is written to be handed directly to an agent working in nimbleterminal.dev/ntpicture.


Background: What Changed in Ghostty 1.4 (v1.4.0)

  1. In-place root-frame editing & sub-rect composition (a=f,r=1,X=1) vs a=T re-transmission (d2ffeb5ba, f3e98fb72, b8222f4a8)
@neomantra
neomantra / libghostty_ideas_20261027.txt
Last active October 27, 2026 19:54
libghostty ideas
. Item #1 (Same-ID chunked upload deletes the old image on chunk 1 instead of on m=0) — STILL RELEVANT
• In graphics_exec.zig:1039-1050, loadAndAddImage still explicitly deletes the existing image and its placements
when the first chunk (m=1) arrives:
// Reusing a specific image ID deletes the old image and all of its
// placements when the new transmission begins, not when it completes.
if (t.image_id > 0) {
storage.delete(io, alloc, terminal, .{ .id = .{
.image_id = t.image_id,
.delete = true,
} });
@neomantra
neomantra / ntcharts3d-tinygo-42vs43-comment.md
Last active October 10, 2026 18:29
NTCharts3d TinyGo v0.42 vs v0.43

Takeaway

The difference is even bigger than a speedup:

TinyGo 0.42.0 cannot run the gallery at all for more than about seven seconds, while 0.43.0 runs it faster than stock Go.

Setup

I built the ntcharts3d gallery for wasm with the 0.42.0 and 0.43.0 release tarballs using the demo site's flags, plus a third 0.43.0 build with the default collector, and drove each in headless Chrome 155 with WebGPU on Metal. The harness counts Kitty frames in the terminal's read stream and samples heaps. Four tabs, three runs each, 20 s windows. The site's Go 1.27.1 build is included as a reference.

@neomantra
neomantra / ds4go_videos.md
Created October 3, 2026 13:48
ds4go Videos

ds4go demos

ds4go steering Hello World

steering

ds4go svgpad Pelican

pelican

ds4go model list

image

ds4go model download

image

ds4go validate

@neomantra
neomantra / tinygo_ntcharts_shader_20260929.md
Created September 29, 2026 14:39
TinyGo/Vanilla NTCharts Shader benchmarks

Shaders demo: Go vs TinyGo in the browser

Measured 2026-09-29.

TinyGo's frames are 13–18% faster at the median, but its page leaks about one RGBA frame of memory per frame, which makes it unfit for a page left open.

The shaders demo lives in ~/projects/ntcharts/examples/shaders, not in ntcharts3d. The work is uncommitted on a new branch shaders-stage-timings in ~/projects/ntcharts. All tests pass, including the real-GPU test.

@neomantra
neomantra / paired_report.html
Created September 27, 2026 00:43
TinyGo PR 5753 Study
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>AGENTS.md paired comparison</title><style>
:root{--ink:#192b3b;--muted:#5b6c7a;--border:#dce4e9;--left:#fff0d8;--right:#e1efff}*{box-sizing:border-box}body{margin:0;background:#f4f7fa;color:var(--ink);font:15px/1.5 system-ui,-apple-system,sans-serif}main{max-width:1680px;margin:auto;padding:32px}header{max-width:1100px;margin-bottom:24px}.title{font-size:32px;font-weight:750;letter-spacing:-.6px;margin:0 0 12px}.subtitle{font-size:17px;color:var(--muted)}a{color:#185f99}nav{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}nav a{background:white;border:1px solid var(--border);border-radius:6px;padding:7px 12px;text-decoration:none}.toolbar{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:white;border:1px solid var(--border);border-radius:8px;padding:12px 16px;margin-bottom:22px}select,button{font:inherit;padding:6px 10px;border:1px solid #b5c5d1;border-radius:5
@neomantra
neomantra / num2int-patch-walkthrough.md
Created September 18, 2026 15:28
openresty: PPC64 num2int patch walkthrough

How to try the ppc64le fix

The fix lives on a branch of my openresty/luajit2 fork:

It is one commit on top of openresty/luajit2 master (v2.1-20260914). It adds 64-bit versions of the four number-conversion helpers in src/vm_ppc.dasc and reverts the lj_tab.c workaround from luajit2 PR #274, which was papering over the same bug. Nothing outside PPC64 changes.

Everything I have run so far was under QEMU user emulation, so a run on real POWER hardware is the confirmation this needs. Pick whichever of the following fits your setup.

@neomantra
neomantra / yomamma.go
Created May 11, 2026 08:27
Mother's Day glass of BubbleTea
package main
import (
"fmt"
"math/rand"
"os"
"strings"
"time"
tea "charm.land/bubbletea/v2"