Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
version: 2
updates:
- package-ecosystem: "npm"
- package-ecosystem: "bun"
directory: "/"
schedule:
interval: "weekly"
Expand All @@ -13,7 +13,7 @@ updates:
- dependency-name: "shiki"
versions: ["*"]

- package-ecosystem: "npm"
- package-ecosystem: "bun"
directory: "/ts"
schedule:
interval: "weekly"
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.DS_Store
node_modules
bun.lockb
public
prof
target/
Expand Down
909 changes: 909 additions & 0 deletions bun.lock

Large diffs are not rendered by default.

39 changes: 39 additions & 0 deletions content/blog/grief.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: grief
date: 2025-10-10
updated: 2025-10-10
tags:
---
I’m writing this before it has even happened.
I cry often now, sometimes in the car, sometimes alone at home, sometimes in the arms of loved ones.
I cried when I first read [Yehuda Yudkowsky, 1985–2004](https://www.yudkowsky.net/other/yehuda); I think about it often now, and I cry even more.
I cry when I hear Sufjan Stevens. I did before, but now it happens every time.
I cry when I think about the 597,000 deaths from malaria in 2023. I imagine holding their hands, the way I hold hers.

I do not want to be here. I would like distance, but it has not arrived.
The person I loved, and who loved me, was gone. Now they are returning, slowly. Or perhaps only what remains of them is more visible now, and that too is fleeting.
The shadow fills the room. It follows me out the door, rides home with me, sits beside me as I write, and will lie down with me when I stop.

Again I am torn. Choose myself, or choose them, because they are not leaving quickly but slowly.

I do not believe children owe their parents infinite debt. I think I should grieve a stranger’s death as much as hers.
I should save both the [drowning child in front of me and the drowning child far away](https://www.astralcodexten.com/p/more-drowning-children).
Yet I do not. I have not cried for your loved one. I cried in self-pity and shame.

I did things I did not want to do for her, because they were expected, because I feared permanent damage to my family if I did not, and what would follow from that.
But I also did things for her simply because they were for her. So have I already acted well?

I am ashamed that I cried selfishly, about why this happened to me, about what my life has become, and what it may be, when there were better reasons to cry.
Oh, you fool of fools, how could you say these words, think these thoughts, and shed these tears?

- “The person you want to be, what would they do in this situation?”

- “Can you, honestly and with your limited life experience, tell yourself that you will not regret this decision later?”


People are allowed to be selfish sometimes. It would be unreasonable to expect me to sell everything and optimize my life purely for donations to effective causes. I have never met anyone who argues otherwise.
So why is this decision still so hard, the choice to care for my own desires now instead of first caring for a dying person?

It feels like I made my choice long ago and am now rationalizing my way back to it. I've used to describe myself as morally lucky, because I claimed that most of the time the thing that I want to do anyways happens to be the morally virtuous thing, I think I will not do that anymore

To F.: You were right about so many things, you were right about my motivations, you were right in what I should think about, You were right in seeking conversation with me. Todays conversation in the Car was what made me write this. We've had our differences many times, I've been afraid of you, I've been annoyed by you, I've felt betrayed mocked and shunned by you. But in this moment I know you love me and want the best for me, for us, for her. I've lied to you, I've hated you, I've
32 changes: 16 additions & 16 deletions content/blog/recursive-just-intonation.md

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions content/photography.css
Original file line number Diff line number Diff line change
Expand Up @@ -122,12 +122,17 @@
}

.photo-card {
appearance: none;
display: grid;
overflow: hidden;
border: 1px solid var(--photo-border);
border-radius: 8px;
padding: 0;
background: var(--photo-surface);
color: inherit;
cursor: pointer;
font: inherit;
text-align: left;
text-decoration: none;
}

Expand Down
36 changes: 18 additions & 18 deletions content/photography/gallery.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,120 +2,120 @@
{
"src": "/photography/gallery/p1085096.jpg",
"title": "P1085096",
"meta": "protected export from P1085096.jpg",
"meta": "P1085096.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1085097.jpg",
"title": "P1085097",
"meta": "protected export from P1085097.jpg",
"meta": "P1085097.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1085099.jpg",
"title": "P1085099",
"meta": "protected export from P1085099.jpg",
"meta": "P1085099.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1085198.jpg",
"title": "P1085198",
"meta": "protected export from P1085198.jpg",
"meta": "P1085198.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1085209.jpg",
"title": "P1085209",
"meta": "protected export from P1085209.jpg",
"meta": "P1085209.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1105680.jpg",
"title": "P1105680",
"meta": "protected export from P1105680.jpg",
"meta": "P1105680.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1105691.jpg",
"title": "P1105691",
"meta": "protected export from P1105691.jpg",
"meta": "P1105691.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1105692.jpg",
"title": "P1105692",
"meta": "protected export from P1105692.jpg",
"meta": "P1105692.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1105695.jpg",
"title": "P1105695",
"meta": "protected export from P1105695.jpg",
"meta": "P1105695.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1105698.jpg",
"title": "P1105698",
"meta": "protected export from P1105698.jpg",
"meta": "P1105698.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1105703.jpg",
"title": "P1105703",
"meta": "protected export from P1105703.jpg",
"meta": "P1105703.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1105706.jpg",
"title": "P1105706",
"meta": "protected export from P1105706.jpg",
"meta": "P1105706.jpg",
"width": 5328,
"height": 4000
},
{
"src": "/photography/gallery/p1105713.jpg",
"title": "P1105713",
"meta": "protected export from P1105713.jpg",
"meta": "P1105713.jpg",
"width": 5106,
"height": 3404
},
{
"src": "/photography/gallery/p1105714.jpg",
"title": "P1105714",
"meta": "protected export from P1105714.jpg",
"meta": "P1105714.jpg",
"width": 5106,
"height": 3404
},
{
"src": "/photography/gallery/p1105715.jpg",
"title": "P1105715",
"meta": "protected export from P1105715.jpg",
"meta": "P1105715.jpg",
"width": 5106,
"height": 3404
},
{
"src": "/photography/gallery/p1105716.jpg",
"title": "P1105716",
"meta": "protected export from P1105716.jpg",
"meta": "P1105716.jpg",
"width": 5106,
"height": 3404
},
{
"src": "/photography/gallery/p1105724.jpg",
"title": "P1105724",
"meta": "protected export from P1105724.jpg",
"meta": "P1105724.jpg",
"width": 5106,
"height": 3404
}
]
]
4 changes: 2 additions & 2 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
gcc
gnugrep
llvmPackages.bintools
nodejs_20
pnpm_8
bun
nodejs_22
python313
rustup
typescript
Expand Down
22 changes: 11 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,18 @@
"url": "https://github.com/jackyzha0/quartz.git"
},
"scripts": {
"quartz": "./quartz/bootstrap-cli.mjs",
"docs": "pnpm exec quartz build --serve -d docs",
"check": "tsc --noEmit && pnpm exec prettier . --check",
"format": "pnpm exec prettier . --write",
"test": "tsx --test",
"quartz": "bun quartz/bootstrap-cli.mjs",
"docs": "bun run quartz build --serve -d docs",
"check": "node node_modules/typescript/bin/tsc --noEmit && node node_modules/prettier/bin/prettier.cjs . --check",
"format": "node node_modules/prettier/bin/prettier.cjs . --write",
"test": "node --import tsx --test",
"profile": "0x -D prof ./quartz/bootstrap-cli.mjs build --concurrency=1",
"install-plugins": "pnpm exec tsx ./quartz/plugins/loader/install-plugins.ts",
"prebuild": "pnpm run install-plugins"
"install-plugins": "node node_modules/tsx/dist/cli.mjs ./quartz/plugins/loader/install-plugins.ts",
"prebuild": "bun run install-plugins"
},
"engines": {
"node": ">=22",
"pnpm": ">=8.15.6"
"bun": ">=1.3.13"
},
"keywords": [
"site generator",
Expand Down Expand Up @@ -73,8 +73,8 @@
"yargs": "^18.0.0"
},
"devDependencies": {
"@quartz-community/types": "github:quartz-community/types",
"@quartz-community/utils": "github:quartz-community/utils",
"@quartz-community/types": "git+https://github.com/quartz-community/types.git#d342893db8240099cfd9d4499996333f1ca636b4",
"@quartz-community/utils": "git+https://github.com/quartz-community/utils.git#7a43501ac1c728e8a7bfa75db35e8791bfa1f41c",
"@types/hast": "^3.0.4",
"@types/mdast": "^4.0.4",
"@types/node": "^25.6.0",
Expand All @@ -87,5 +87,5 @@
"tsx": "^4.21.0",
"typescript": "^6.0.3"
},
"packageManager": "pnpm@8.15.6+sha1.8105075ad0aa306138be128c017e9c41e28ecffa"
"packageManager": "bun@1.3.13"
}
Loading