~cytrogen/blog-public

ref: 6e59ddbfdb5dbe50354d654d325f4ac2c8dabd2e blog-public/index.html -rw-r--r-- 109.3 KiB
6e59ddbfCytrogen Deploy 2026-02-26 04:45:42 4 hours ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
<!DOCTYPE html><html lang="zh" data-theme="dark"><head><meta charset="utf-8"><meta name="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Cytrogen 的个人博客</title><meta name="description" content="Cytrogen 的个人博客,Cytrogen's Blog"><link rel="icon" href="favicon.png"><link rel="canonical"><link rel="webmention" href="https://webmention.io/cytrogen.icu/webmention"><link rel="me" href="https://m.otter.homes/@Cytrogen"><link rel="me" href="https://github.com/cytrogen"><meta name="fediverse:creator" content="@Cytrogen@m.otter.homes"><link rel="preload" href="fonts/opensans-regular-latin.woff2" as="font" type="font/woff2" crossorigin="anonymous"><style>@font-face {
  font-family: 'Open Sans';
  src: url('fonts/opensans-regular-latin.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  size-adjust: 107%;
  ascent-override: 97%;
  descent-override: 25%;
  line-gap-override: 0%;
}
</style><script>(function() {
  try {
    // 优先级:用户选择 > 系统偏好 > 默认浅色
    const saved = localStorage.getItem('theme');
    const theme = saved || 
      (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
    
    document.documentElement.setAttribute('data-theme', theme);
    document.documentElement.style.colorScheme = theme;
  } catch (error) {
    // 失败时使用默认主题,不阻塞渲染
    document.documentElement.setAttribute('data-theme', 'light');
  }
})();
</script><link rel="stylesheet" href="css/ares.css"><script data-netlify-skip-bundle="true">(function() {
  document.addEventListener('DOMContentLoaded', function() {
    const theme = document.documentElement.getAttribute('data-theme');
    const pageWrapper = document.getElementById('page-wrapper');
    if (pageWrapper && theme) {
      pageWrapper.setAttribute('data-theme', theme);
    }
  });
})();

</script><!-- hexo injector head_end start -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css">

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/hexo-math@4.0.0/dist/style.css">
<!-- hexo injector head_end end --><meta name="generator" content="Hexo 8.1.1"><link rel="alternate" href="atom.xml" title="Cytrogen 的个人博客" type="application/atom+xml">
</head><body><div id="page-wrapper"><a class="skip-link" href="#main-content">跳到主要内容</a><div class="wrap"><header><a class="logo-link" href="index.html"><img src="favicon.png" alt="logo"></a><div class="h-card visually-hidden"><img class="u-photo" src="https://cytrogen.icu/favicon.png" alt="Cytrogen"><a class="p-name u-url u-uid" href="https://cytrogen.icu">Cytrogen</a><p class="p-note">Cytrogen 的个人博客,Cytrogen's Blog</p><a class="u-url" rel="me noopener" target="_blank" href="https://m.otter.homes/@Cytrogen">Mastodon</a><a class="u-url" rel="me noopener" target="_blank" href="https://github.com/cytrogen">GitHub</a></div><nav class="site-nav"><div class="nav-main"><div class="nav-primary"><ul class="nav-list hidden-mobile"><li class="nav-item"><a class="nav-link active" href="index.html">首页</a></li></ul><div class="nav-tools"><div class="language-menu"><button class="language-toggle" type="button"><svg class="icon icon-globe" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" focusable="false"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm7.5-6.923c-.67.204-1.335.82-1.887 1.855A7.97 7.97 0 0 0 5.145 4H7.5V1.077zM4.09 4a9.267 9.267 0 0 1 .64-1.539 6.7 6.7 0 0 1 .597-.933A7.025 7.025 0 0 0 2.255 4H4.09zm-.582 3.5c.03-.877.138-1.718.312-2.5H1.674a6.958 6.958 0 0 0-.656 2.5h2.49zM4.847 5a12.5 12.5 0 0 0-.338 2.5H7.5V5H4.847zM8.5 5v2.5h2.99a12.495 12.495 0 0 0-.337-2.5H8.5zM4.51 8.5a12.5 12.5 0 0 0 .337 2.5H7.5V8.5H4.51zm3.99 0V11h2.653c.187-.765.306-1.608.338-2.5H8.5zM5.145 12c.138.386.295.744.468 1.068.552 1.035 1.218 1.65 1.887 1.855V12H5.145zm.182 2.472a6.696 6.696 0 0 1-.597-.933A9.268 9.268 0 0 1 4.09 12H2.255a7.024 7.024 0 0 0 3.072 2.472zM3.82 11a13.652 13.652 0 0 1-.312-2.5h-2.49c.062.89.291 1.733.656 2.5H3.82zm6.853 3.472A7.024 7.024 0 0 0 13.745 12H11.91a9.27 9.27 0 0 1-.64 1.539 6.688 6.688 0 0 1-.597.933zM8.5 12v2.923c.67-.204 1.335-.82 1.887-1.855A7.97 7.97 0 0 0 10.855 12H8.5zm3.68-1h2.146c.365-.767.594-1.61.656-2.5h-2.49a13.65 13.65 0 0 1-.312 2.5zm2.802-3.5a6.959 6.959 0 0 0-.656-2.5H12.18c.174.782.282 1.623.312 2.5h2.49zM11.27 2.461c.247.464.462.98.64 1.539h1.835a7.024 7.024 0 0 0-3.072-2.472c.218.284.418.598.597.933zM10.855 4a7.966 7.966 0 0 0-.468-1.068C9.835 1.897 9.17 1.282 8.5 1.077V4h2.355z"></path></svg><span>中文</span></button><div class="language-dropdown"><a class="language-option" href="/en/index.html">English</a></div></div></div><div class="nav-controls"><div class="more-menu hidden-mobile"><button class="more-toggle" type="button"><span>更多</span><svg class="icon icon-chevron-down" width="12" height="12" viewBox="0 0 12 12" fill="currentColor" aria-hidden="true" focusable="false"><path d="M6 8.825c-.2 0-.4-.1-.5-.2l-3.3-3.3c-.3-.3-.3-.8 0-1.1s.8-.3 1.1 0l2.7 2.7 2.7-2.7c.3-.3.8-.3 1.1 0s.3.8 0 1.1l-3.3 3.3c-.1.1-.3.2-.5.2z"></path></svg></button><div class="more-dropdown"><ul class="dropdown-list"><li class="dropdown-item"><a class="nav-link" href="/archives/index.html">归档</a></li><li class="dropdown-item"><a class="nav-link" href="/categories/index.html">分类</a></li><li class="dropdown-item"><a class="nav-link" href="/tags/index.html">标签</a></li><li class="dropdown-item"><a class="nav-link" href="/about/index.html">关于</a></li><li class="dropdown-item"><a class="nav-link" href="/sitemap/index.html">领地地图</a></li></ul></div></div><div class="theme-switcher"><button class="theme-toggle" type="button" role="switch" aria-pressed="false" aria-label="切换主题"><div class="theme-icon moon-icon"><svg class="icon icon-moon" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" focusable="false"><path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z"></path></svg></div><div class="theme-icon sun-icon"><svg class="icon icon-sun" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" focusable="false"><path d="M8 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0 1a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"></path></svg></div></button></div><details class="mobile-menu-details hidden-desktop"><summary class="hamburger-menu" aria-label="nav.menu"><svg class="icon icon-bars" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" focusable="false"><path d="M2.5 12a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5z"></path></svg><span class="menu-text">nav.menu</span></summary><div class="mobile-menu-dropdown"><ul class="mobile-nav-list"><li class="mobile-nav-item"><a class="mobile-nav-link" href="index.html">首页</a></li><li class="mobile-nav-item"><a class="mobile-nav-link" href="/archives/index.html">归档</a></li><li class="mobile-nav-item"><a class="mobile-nav-link" href="/categories/index.html">分类</a></li><li class="mobile-nav-item"><a class="mobile-nav-link" href="/tags/index.html">标签</a></li><li class="mobile-nav-item"><a class="mobile-nav-link" href="/about/index.html">关于</a></li><li class="mobile-nav-item"><a class="mobile-nav-link" href="/sitemap/index.html">领地地图</a></li></ul></div></details></div></div></div></nav></header><main class="container" id="main-content" tabindex="-1"><div class="h-feed"><span class="p-name visually-hidden">Cytrogen 的个人博客</span><ul class="home post-list"><li class="post-list-item"><article class="post-block h-entry"><h2 class="post-title"><a class="post-title-link u-url p-name" href="posts/d823.html">我的胶囊旅馆开张了</a></h2><div class="post-info"><time class="post-date dt-published" datetime="2026-02-25T05:00:00.000Z">2/25/2026</time><time class="dt-updated visually-hidden" datetime="2026-02-26T04:44:36.523Z"></time></div><div class="post-content p-summary"><p>此胶囊旅馆非彼胶囊旅馆。虽说我对现实中的胶囊旅馆很感兴趣,但至今都没有睡过一次,去开张一家真正的胶囊旅馆更是无稽之谈。标题中的「胶囊旅馆」指的是通过 Gemini 协议提供内容的独立信息集合。</p></div><a class="read-more" href="posts/d823.html">...阅读全文</a></article></li><li class="post-list-item"><article class="post-block h-entry"><h2 class="post-title"><a class="post-title-link u-url p-name" href="posts/fbd.html">那些不受欢迎的想法</a></h2><div class="post-info"><time class="post-date dt-published" datetime="2026-02-25T05:00:00.000Z">2/25/2026</time><time class="dt-updated visually-hidden" datetime="2026-02-25T07:01:47.760Z"></time></div><div class="post-content p-summary"><p>室友自上个月开始,和另一位有趣的人联合举办了一个活动,名为「那些不受欢迎的想法」。</p></div><a class="read-more" href="posts/fbd.html">...阅读全文</a></article></li><li class="post-list-item"><article class="post-block h-entry"><h2 class="post-title"><a class="post-title-link u-url p-name" href="posts/8e54.html">汇编语言学习・壹</a></h2><div class="post-info"><time class="post-date dt-published" datetime="2026-02-23T05:00:00.000Z">2/23/2026</time><time class="dt-updated visually-hidden" datetime="2026-02-24T05:58:57.367Z"></time></div><div class="post-content p-summary"><p>学习汇编语言的笔记。</p></div><a class="read-more" href="posts/8e54.html">...阅读全文</a></article></li><li class="post-list-item"><article class="post-block h-entry"><h2 class="post-title"><a class="post-title-link u-url p-name" href="posts/b084.html">读《大闸蟹》</a></h2><div class="post-info"><time class="post-date dt-published" datetime="2026-02-23T05:00:00.000Z">2/23/2026</time><time class="dt-updated visually-hidden" datetime="2026-02-24T05:58:57.367Z"></time></div><div class="post-content p-summary"><p>这是陈昌平在零几年写的一篇短篇小说。</p></div><a class="read-more" href="posts/b084.html">...阅读全文</a></article></li><li class="post-list-item"><article class="post-block h-entry"><h2 class="post-title"><a class="post-title-link u-url p-name" href="posts/cf35.html">4 个字符为一组构成的城市</a></h2><div class="post-info"><time class="post-date dt-published" datetime="2026-02-16T05:00:00.000Z">2/16/2026</time><time class="dt-updated visually-hidden" datetime="2026-02-19T07:42:07.353Z"></time></div><div class="post-content p-summary"><p>从小时候记事起,我就有一个奇怪的习惯,那就是看到商店招牌,会自动将上面的字符以 4 个一组的形式排列起来。</p></div><a class="read-more" href="posts/cf35.html">...阅读全文</a></article></li><li class="post-list-item"><article class="post-block h-entry"><h2 class="post-title"><a class="post-title-link u-url p-name" href="posts/cc52.html">玩《茂林源记》</a></h2><div class="post-info"><time class="post-date dt-published" datetime="2026-02-15T05:00:00.000Z">2/15/2026</time><time class="dt-updated visually-hidden" datetime="2026-02-19T07:42:07.353Z"></time></div><div class="post-content p-summary"><p>《茂林源记》,或称 Root(以下也这么称呼),是一个区域控制类桌游。虽然这么说,但它的标签还是很多的,例如德式桌游标准的得分制、应该被划分给美式桌游的阵营机制等等。我先前为这款游戏写过一些评价,本来没有打算继续去写该游戏的说明,但介于自己刚写了个扫雷的入门说明,最终还是写下了这篇文章。</p></div><a class="read-more" href="posts/cc52.html">...阅读全文</a></article></li><li class="post-list-item"><article class="post-block h-entry"><h2 class="post-title"><a class="post-title-link u-url p-name" href="posts/9408.html">用笑脸玩扫雷</a></h2><div class="post-info"><time class="post-date dt-published" datetime="2026-02-14T05:00:00.000Z">2/14/2026</time><time class="dt-updated visually-hidden" datetime="2026-02-19T07:42:07.357Z"></time></div><div class="post-content p-summary"><p>想必大家都有玩过「扫雷」这款游戏,尤其是经历过 Windows 早年版本时代的人们,在计算机的开始菜单里找了半天,好不容易找到「游戏」文件夹,里面赫然躺着一个应用程序。双击打开,看到一个黄黄的微笑,心想这游戏肯定很简单吧!然后便被炸弹炸死。</p></div><a class="read-more" href="posts/9408.html">...阅读全文</a></article></li><li class="post-list-item"><article class="post-block h-entry"><h2 class="post-title"><a class="post-title-link u-url p-name" href="posts/df9e.html">女人的血</a></h2><div class="post-info"><time class="post-date dt-published" datetime="2026-02-12T05:00:00.000Z">2/12/2026</time><time class="dt-updated visually-hidden" datetime="2026-02-19T07:42:07.353Z"></time></div><div class="post-content p-summary"><p>女人,或者说有雌性生殖器官的人,又或者说需要生产卵子来进行繁殖生育的哺乳动物,都会有月经吧。以防万一有人不知道月经的底层逻辑,它本质上是卵子死去时流出的血液。女人需要每个月更换卵子,经历「流血的七天、安全期、卵子生成的发情期」这样的 28 天循环,直到无法生育。这期间有一个例外,那便是怀孕。</p></div><a class="read-more" href="posts/df9e.html">...阅读全文</a></article></li><li class="post-list-item"><article class="post-block h-entry"><h2 class="post-title"><a class="post-title-link u-url p-name" href="posts/9027.html">读《那片血一般红的杜鹃花》</a></h2><div class="post-info"><time class="post-date dt-published" datetime="2026-02-07T05:00:00.000Z">2/7/2026</time><time class="dt-updated visually-hidden" datetime="2026-02-19T07:42:07.357Z"></time></div><div class="post-content p-summary"><p>我这个学期开始上中文课了。这节课是短篇小说课,主要是阅读上个世纪台湾、大陆等作者们的短篇小说。</p>
<p>开课要阅读的第一本叫作《那片血一般红的杜鹃花》,出自于《白先勇文集》的第二卷「台北人」。</p>
<p>这是一个第一人称视角的故事,但「我」并非故事的主角,而是故事的旁观者。而故事采取的叙事手法是倒叙。</p></div><a class="read-more" href="posts/9027.html">...阅读全文</a></article></li><li class="post-list-item"><article class="post-block h-entry"><h2 class="post-title"><a class="post-title-link u-url p-name" href="posts/c089.html">想法在丙午岁始迭代</a></h2><div class="post-info"><time class="post-date dt-published" datetime="2026-02-01T05:00:00.000Z">2/1/2026</time><time class="dt-updated visually-hidden" datetime="2026-02-26T00:20:49.906Z"></time></div><div class="post-content e-content"><html><head></head><body><p>这个月里我做了很多在笔记本上的工作,所以在阅读文章上花费的时间跟精力都变少了很多。</p>
<h1 id="商业与社会"><a class="markdownIt-Anchor" href="#商业与社会"></a> 商业与社会</h1>
<h2 id="后美国互联网"><a class="markdownIt-Anchor" href="#后美国互联网"></a> 后美国互联网</h2>
<p>这是一篇非常有深度的演讲稿,内容很长,作者是著名的数字权利活动家 Cory Doctorow。它也很难懂,因结合了技术法律、地缘政治、经济学和数字主权,不过可以大致拆解为四个核心逻辑:</p>
<p>一、什么是 <u>通用计算之战</u></p>
<p>美国在 1998 年通过了 <u>《数字千年版权法》</u> 也就是 <u>DMCA</u>,其中第 1201 条规定:绕过这一技术措施 —— 越狱或者破解 —— 是犯罪行为,即使你的目的是合法的。</p>
<p>也就是说,如果我购买了一台设备,无论是手机还是拖拉机还是呼吸机,厂商用软件锁住了它,我即使拥有这台设备,也不能修改它的代码。</p>
<p>而美国利用其强大的科技地位,通过贸易协定强迫全世界其他国家也通过类似的法律。目的也很简单,保护美国科技巨头的利润:让全世界使用美国的技术,却无法掌控这些技术,必须源源不断地向美国公司付费。</p>
<p>二、特朗普带来的意外契机。</p>
<p>Doctorow 很反感特朗普,但他认为特朗普的胡作非为反而打破了上述的枷锁。</p>
<p>过去世界各国容忍美国的霸权是因为相信美国是一个相对中立的平台。假设世界上 200 个国家,每两个国家之间都要直接建立光缆或者货币兑换机制,那需要几万条线路,成本太高。最效率的方法是建立一个枢纽。二战后,美国就是这个枢纽 —— 光缆汇聚在美国,资金通过美元结算。</p>
<p>但是特朗普政府的单边主义、高额关税和不可预测性(这个老家伙最近一次演讲讲了近一小时的胡话,比如声称自己是独裁者),彻底摧毁了这种信任:</p>
<ul>
<li>2006 年 Mark Klein 和 2013 年 Snowden 爆料表示美国国家安全局在利用这个中心地位监听全世界(见 <u>棱镜计划</u>);</li>
<li>2005 年美国的 <u>秃鹫资本家</u> 利用美国法院,扣押了阿根廷政府在美国的资产来偿还债务;</li>
<li>微软曾因海牙国际刑事法院通缉内塔尼亚胡而切断其 Outlook 服务;</li>
<li>约翰迪尔远程锁死俄罗斯境内的乌克兰拖拉机;</li>
<li>拜登政府将俄罗斯踢出 <u>SWIFT 系统</u>,意味着美元不再是中立的贸易工具,而是美国外交政策的武器。</li>
</ul>
<p>这些案例都让各国政府突然意识到,如果继续依赖美国的云服务和黑盒硬件,特朗普政府随时可以远程变砖他们的基础设施、医疗设备甚至政府大楼。</p>
<p>讽刺的是,美国政府过去几年里一直在警告盟友们不要使用华为的电信设备,如 5G 基站,理由是如果国家的关键基础设施使用了中国的设备,中国政府可能会出于政治目的,命令华为远程切断这些设备,或者窃取数据。现在美国反而正在做当年他们指控华为 <span class="emphasis">可能会做</span> 的事情。</p>
<p>既然美国已经对全世界加征关税,其他国家再遵守美国的 <u>反规避法</u> 就没有意义了。作者认为,与其对自己人加税反击,不如废除反规避法。</p>
<p>三、如何反击?</p>
<p>Doctorow 提出,因为特朗普的政策,一个前所未有的反美国科技霸权联盟正在形成。这个联盟由三类人组成:</p>
<ol>
<li>数字权利活动家:他们为了自由和隐私,呼吁了 25 年,想要开源和可互操作的设备;</li>
<li>逐利的资本家和企业家:如果欧洲废除反规避法,芬兰的黑客就可以合法破解 iPhone,建议一个不收 30%苹果税的第三方应用商店。这能从美国巨头嘴里抢走数千亿美元的利润;</li>
<li>国家安全鹰派:各国政府为了数字主权,必须摆脱对美国技术的依赖。他们不能允许国家的命脉掌握在一个随时可能发疯的美国总统手里。</li>
</ol>
<p>四、未来的 <span class="emphasis">后美国互联网</span></p>
<p>基于上述逻辑,作者描述了一个即将到来的新互联网愿景:各国修改法律,允许通过逆向工程接管设备控制权;即使美国巨头不配合,其他国家也可以开发工具,将数据从美国平台无缝迁移到本地平台;软件应该是公开、透明、可审计的,而不是私有的黑盒子。</p>
<p>该演讲稿的精彩之处还不止是这些。</p>
<p>Doctorow 解构了软件的本质以及权贵阶层为何狂热追捧 AI,他认为这背后并非技术进步,而是控制欲和傲慢。这里我就拆解成两个核心逻辑:</p>
<p>一、软件是负债,不是资产。</p>
<p>在传统的商业思维中,软件被视为知识产权,是公司的核心资产。写得越多,资产越厚。但 Doctorow 认为, <strong>软件本身是负债</strong></p>
<p>是的,软件跑起来后实现的自动化、数据分析、管理能力等,这些是资产,因为它们能赚钱。但是那些服务器里的代码,全都是负债。这是因为软件极其脆弱,需要不断的维护、修补漏洞。当上游、下游或者周边环境变化时,它随时都会崩溃。我们拥有的私有代码越多,我们需要背负的维护债务就越重。</p>
<p>既然软件是负债,通过专利和反规避法把代码锁起来,实际上是独自承担所有负债。在他提倡的后美国互联网系统里,基础设施代码会变成像科学原理一样的公共品。如果全欧洲,乃至全世界都用同一套开源的、可审计的基础代码,那么全人类的开发者都在帮忙修补漏洞、分摊维护成本。这才是唯一的生存之道。</p>
<p>二、AI 热潮的本质是阶级斗争。</p>
<p>如果说软件是负债,那为什么现在的科技巨头还在疯狂推崇 AI 生成代码?这是因为老板们并不懂技术。他们误以为代码量等同于价值,结果是 AI 正在以超人的速度拉出那些不可读、难维护的屎山代码,也就是在以超人的速度积累负债。</p>
<p>而 AI 对老板们的又一个诱惑,并不是它干得比人好,而是它够听话。老板们内心深处知道,如果自己不来上班,公司会照常运作下去;但如果工人不来上班,公司就会瘫痪。这让他们感到失控。AI 成了老板们心中所期望的听话但平庸的机器,他们根本不想要一个能干但会反驳的员工。</p>
<p>关于这一点,我认为在 AI 出现之前企业就有这样的征兆了。</p>
<p>三、唯我主义。</p>
<p>亿万富翁和独裁者们迷恋 AI,是因为他们梦想构建一个 <span class="emphasis">没有人的世界</span>。这个世界里,只有唯一的「神」和无数唯命是从的「信徒」,即他们和 AI。没有任何人会因为专业知识、道德底线或人类情感而对他们说「不」。</p>
<p>Doctorow 的另一论点是: <strong>舒适导致依赖,危机催生主权</strong></p>
<p><u>历史唯物主义</u> 认为,舒适区的惯性只能被生死的危机打破。为了证明这一点,Doctorow 回顾了俄乌战争引发的欧洲能源危机。普京切断天然气供应本意是扼住欧洲的咽喉,这在当时被视为一场灾难。然而结果出人意料,这种极端的匮乏感并没有让欧洲崩溃,反而通过休克疗法治好了欧洲在能源转型上的拖延症。短短三年,欧洲人爆发出了惊人的适应力,太阳能的普及率呈指数级增长,原本落后的能源转型计划不仅追平了进度,甚至提前了十年完成!</p>
<p>在舒适的旧秩序下,人们会因为各种琐碎的理由,例如「开源软件不好用」、「迁移数据太麻烦」、「美国服务更成熟」,而拒绝改变。然而,一旦出现了大问题,所有的审美洁癖和用户体验惯性瞬间变得一文不值。</p>
<p>说来也巧,阳台光伏是一种典型、自下而上、分布式的解决方案,不需要等待国家建设巨大的核电站,每个家庭买回来挂上就能发电。这正符合 Doctorow 对后美国互联网的构想。</p>
<p>这些观点让我想起了现在的中国。在很长一段时间里, <u>全球化分工</u> 是效率最高的模式:如果能买到英特尔的芯片、能用微软的系统,为什么要花十倍的钱、百倍的时间去自己造一个性能只有人家一半的产品?这就是经济学上的 <u>比较优势</u>,但也容易导致「造不如买」的路径依赖。</p>
<p>正如 Doctorow 所说,和平时期不会有人乐意去打不值得的仗。但当制裁降临,由于买不到现成的,「必须自己造」就成了唯一的选项。这种孤立反倒是人为地制造了一个封闭的进化环境,迫使中国企业必须在没有外部输血的情况下建立自己的循环系统。</p>
<p>比尔・盖茨曾经说过,美国对华科技封锁起到了截然相反的效果,且迫使中国在芯片制造等所有领域全速发展。除了让国家学会自力更生,更为可怕的是它导致了市场的永久性丢失和技术标准的各种分裂。因为中国市场曾是美国科技巨头最大的利润来源之一。</p>
<p>失去了这个市场,美国企业便失去了巨大的研发资金回流,从而削弱了它们继续领先的能力。一旦中国建立起一套完全独立且成熟的生态系统,世界就会分裂成两个宇宙:对于全球南方国家来说,如果中国的方案不仅便宜,而且没有被随时断供的政治风险,那么美国的地位确实会一低再低。</p>
<p>说完美国对其他国家的影响,也需要聊聊美国现在内部的问题。过去我借 <a href="/posts/31df#%E9%BA%A6%E5%BD%93%E5%8A%B3%E6%AD%A3%E5%9C%A8%E5%A4%B1%E5%8E%BB%E5%85%B6%E4%BD%8E%E6%94%B6%E5%85%A5%E9%A1%BE%E5%AE%A2">麦当劳</a> 一事提到过美国经济走向了 <u>K 型分化</u> 之路,即有钱人更有钱、没钱人更没钱。不得不承认的是,美国曾经作为全球最大消费市场的地位已经名存实亡。为了维持体面的消费假象,只能刷信用卡、借房贷、背住房教育医疗债务。</p>
<p>较为唏嘘的是,我曾经也因为刷信用卡过多而背上债务,好在欠的钱不多,找到工作后很快便还干净了。我的建议是千万不要每个月只还最小数额,这是个陷阱,你只会越欠越多。每个月花多少还多少才是正道。</p>
<p>毫无疑问,特朗普政府加速了这一榨取过程。特朗普本人就是那些不创造价值、仅靠垄断资源收取租金的人的一员。无论是削弱对房租操纵平台的监管、重启学生贷款偿还,还是扼杀降低药价的计划,这些政策的目的只有一个:把钱从普通人的口袋里掏出来,转移给债务催收者和垄断巨头。</p>
<p>每一美元被用来偿还利息,就意味着少一美元用于实体消费。这种政策也在制造一个没有人的世界;在这个梦想中,工薪阶层被剥夺殆尽,所有的财富都流向了股市、加密货币垃圾币和赌博网站,在金融空转中不断膨胀,却与实体经济毫无关系……</p>
<p>既然废除反规避法可以打击美国科技巨头,那会不会跟着让欧洲的科技公司受损呢?Doctorow 认为会,但是只有肮脏、无耻的公司会受损。为了证明这一点,他举了四个例子:</p>
<ol>
<li>
<p>大众汽车在软件里写了作弊代码,检测到尾气检查时就降低排放,平时则超标排放。如果你是一个独立的工程师,想逆向分析大众汽车的软件,你就会因为反规避法而坐牢。法律不仅保护了代码,还保护了犯罪证据;</p>
</li>
<li>
<p>宝马和梅赛德斯用软件锁住硬件上已有的功能,要求每月付订阅费才能使用。反规避法禁止了第三方修车铺帮你越狱解锁这些功能;</p>
</li>
<li>
<p>美敦力提供呼吸机,但它要求用官方维修工输密码才能修好。新冠疫情期间,官方维修工过不来,医院自己的工程师虽然懂技术,但因为没有密码且破解密码违法,只能眼睁睁看着病人死去;</p>
</li>
<li>
<p>Newag(波兰火车公司)更为离谱,在火车代码里写了地理围栏。如果火车 GPS 定位到在竞争对手的维修厂里,火车就自动锁住,Newag 便可以借此向客户勒索高额解锁费。</p>
</li>
</ol>
<p>不过这一点过于激进,更像是为了贴合演讲风格而说的。实际上,中小微企业和独立创作者极有可能成为附带损伤。并且越狱工具也可以用于做坏事。</p>
<p>这是一个经济学悖论:监管有时是保护弱者的,在这种情况下,去监管反而会利好强者。不过转念一想,目前巨头垄断带来的伤害远大于潜在的盗版伤害,且现在的小开发者也在被巨头们剥削,不如打破围墙,大家一起在外面跑。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://pluralistic.net">pluralistic.net</a></em> 2026 <em>01</em> 01/39c3</p>
<h2 id="现在孩子们已经很少读完整本书了即使是在英语课上"><a class="markdownIt-Anchor" href="#现在孩子们已经很少读完整本书了即使是在英语课上"></a> 现在孩子们已经很少读完整本书了,即使是在英语课上</h2>
<p>这篇文章让我想起我在美国接受的 K-12 教育,即从幼儿园到高中毕业,只是我是在小学四年级的时候才来的美国。美国的小学到五年级就结束了,初中是从六年级上到八年级,然后高中从九年级上到十二年级。</p>
<p>初中对我来说是一个颇为重要的时期,因为我在那会儿明明可以好好学习英语,但是我选择了继续和华语使用者打交道,导致我现在的英语水平并不算好。来美国接受教育的第二年就需要通过 ESL 测试,也就是 English as Second Language 测试。我六年级那年并没有通过,因为考官认为我一直在照着原句读,到了七年级我才通过。</p>
<p>说回学校里的英语课,它大致可以分为两类:ELA 和 ESL。前者类似于「语文」,后者是非英语母语者学习英语的课程。两者使用的教材都是裁剪过的小说或者文章,例如我印象里比较深的《少年 Pi 的奇幻漂流》。</p>
<p>当时我们是每过几天就跳着阅读一个章节,可能上次阅读还在说 Pi 在船上发现有老虎、斑马和鬣狗,下次阅读就变成了斑马和鬣狗全都死了,被遗漏掉的信息还是以括号的形式出现在章节的前面。</p>
<p>到高中的时候这件事才开始有改善。高中的那几年我阅读了一些有趣的书籍,例如《一个印第安少年发现真我的日记》、《太阳也是一颗星星》以及同作者的开山之作《一切的一切》。或许我应该重新阅读它们,因为它们蛮有意思的。</p>
<p>我一直在思考,我现在如此讨厌阅读英语文章或者书籍,是因为什么?<br>
是我没有养成这个习惯吗?好像从小我就没有被要求过定期阅读书籍,我目前的阅读量低到令人发指。</p>
<p>是我讨厌英语吗?我现在阅读英语文章会使用大量的翻译工具,虽然也可以,但是真的是一个好习惯吗?我又不是真的看不懂。</p>
<p>在写这些内容时我也发现一件事情:输出是一件很重要的事情,因为我都忘了这些年来我阅读过什么。努力细想后才想起来。如果从那个时候就开始写下自己「读了什么」,或许印象会更为深刻,然而我的「开智」也不过是近些年才开始的。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://www.nytimes.com">www.nytimes.com</a></em> 2025 <em>12</em> 12 <em>us</em> high-school-english-teachers-assigning-books.HTML</p>
<h2 id="ai-代理正在吞噬-saas"><a class="markdownIt-Anchor" href="#ai-代理正在吞噬-saas"></a> AI 代理正在吞噬 SaaS</h2>
<p>过去我们很多时候谈论 AI 代理讨论的都是它如何影响供给侧,也就是它们如何降低创作成本。市场分为供给和需求两侧,如果将视线转向需求侧,问题就会变成「为什么我要花钱购买你的服务,而不是让 AI 代理帮我做这件事?」</p>
<p>我想到了近期 TailwindCSS 团队发生的事情。他们提供 UI Kit 定制服务,但是因为 AI 代理的存在,不得不裁员来维持公司的存活。当时 <a target="_blank" rel="noopener" href="https://github.com/tailwindlabs/tailwindcss.com/pull/2388">讨论串</a> 内有人这么说:「这很大原因出于已经没有人想要 UI Kit 定制服务了。」</p>
<p>是啊,有了 AI 代理后,只需要告诉它你想要什么样的 UI,它就可以照着你想要的做出来。这意味着有更多类似的服务会因为 AI 代理而消亡。</p>
<p>不过作者也表示,并不是所有的服务都会受其影响,例如 Slack 就很难被 AI 代理影响到,Stripe 也无法被轻易地取代。</p>
<p>而最有可能被影响到的是那些实际功能简单的工具,例如只会进行 CRUD 操作的后端工具。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://martinalderson.com">martinalderson.com</a></em> posts <em>ai-agents-are-starting-to-eat-saas</em></p>
<h2 id="如果-ai-取代了人类员工那它需要付税吗"><a class="markdownIt-Anchor" href="#如果-ai-取代了人类员工那它需要付税吗"></a> 如果 AI 取代了人类员工,那它需要付税吗?</h2>
<p>这是一篇很「美国」的文章,因为涉及到「税」。</p>
<p>我和身为税务师的朋友讨论过这个问题。她的看法是 AI 没有收入,自然无法付税。它身为工具和服务,客户在使用前已经付了消费税。</p>
<p>我认为如果岗位越来越少的话,国家的经济不是会一直走下坡路吗?政府终有一天会对 AI 下手吧。她则认为 AI 的出现会让岗位的平均水平提升,大家都要学会使用 AI 工具,并且收入也会因此增长,这对经济而言是一件好事。</p>
<p>我很难以宏观的角度去赞同这一观点:现在的经济明显是在走下坡路,AI 热终究是一个泡沫,到了一个阈值这一切终会「炸开」,而剩下的人们多数都是被企业放弃培养、曾经被说是「不如 AI」的人。从来不去培养初级工程师的话,未来又怎么可能会有高级工程师给你用呢?</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://english.elpais.com">english.elpais.com</a></em> technology <em>2025-11-30</em> if-ai-replaces-workers-should-it-also-pay-taxes.HTML</p>
<h2 id="想法并非越来越难找"><a class="markdownIt-Anchor" href="#想法并非越来越难找"></a> 想法并非越来越难找</h2>
<p>我过去想过这样的一个问题:想法是有限的,总有一天人们会想完所有的想法,那时候怎么办呢?</p>
<p>经济学界普遍认为点子正在变得越来越昂贵,因为维持技术进步所需的研发投入正在指数级增长。不过呢,从专利产出的数据来看,人类产生突破性想法的效率并没有下降,反而提升了许多。那到底是什么导致了它们没有「端上桌来」?</p>
<p>答案是万恶的市场。</p>
<p>许多超前或者高效的创新在进入市场后,并不能像过去那样通过竞争淘汰低效的旧技术。掌握旧技术的往往都是老公司,而新公司很难仅仅因为个新点子便占据大量的市场份额,反倒是很容易在实际的生产力被转化之前就被干倒。更别提一些概念被提出后就被老公司抄去……</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://asteriskmag.com">asteriskmag.com</a></em> issues <em>12-books</em> ideas-arent-getting-harder-to-find</p>
<h2 id="那个售卖时间的女人和那个试图阻止她的男人"><a class="markdownIt-Anchor" href="#那个售卖时间的女人和那个试图阻止她的男人"></a> 那个售卖时间的女人,和那个试图阻止她的男人</h2>
<p>19 世纪的人们并没有可以随地查阅最新的权威时间的能力。假设你是一个商家,店里挂着一个钟,你要如何每天都确保它的时间是正确的?</p>
<p>Belville 家族的成员会定时去天文台(伦敦最权威的时间来源)一次、校准自己手表的时间,然后将这个信息卖给他们的客户。标题里的「女人」便是家族的最后一位时间销售员 ——Ruth Belville。在她的任职期间,发生过一次「竞争公司为了抢占市场份额,在公众面前攻击她」的事件。</p>
<p>John Wynne,也就是标题里的「男人」,是标准时间公司的董事。该公司提供的是通过电报信号自动校时的新技术。为了抢占市场,他在《泰晤士报》上发表了一篇演讲,包含了大量针对女性的人身攻击,以及对她的做法的嘲弄。</p>
<p>结果是,这番言论并没有让 Belville 失去客户,反而让公众对她产生好奇和敬佩、带来了更多的知名度和客户。一直到 1940 年她年近八旬时才退休,而当时英国广播公司也就是 BBC 已经开始通过无线电广播发送格林威治时间信号。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://www.bbc.com">www.bbc.com</a></em> news <em>articles</em> c4nn7gew9zxo</p>
<h2 id="儿童癌症患者的数百万治疗款项被骗"><a class="markdownIt-Anchor" href="#儿童癌症患者的数百万治疗款项被骗"></a> 儿童癌症患者的数百万治疗款项被骗</h2>
<p>这是一篇令人心碎的报道。</p>
<p>儿童癌症患者的家庭被跨国网络诈骗团伙利用,进行虚假的筹款,榨取民众们的同情心。事后,诈骗团体会欺骗这些家庭其实没有赚到钱 —— 事实上捐款多到难以想象 —— 然后跑路。这些款项原本可以用于拯救那些因经济问题而无法得到有效治疗的儿童癌症患者,但是没有,它们都进了诈骗团伙的腰包。</p>
<p>BBC 发现这些团伙会在哥伦比亚、菲律宾、乌克兰等地寻找目标家庭,而筹款组织则在以色列、美国或加拿大注册,以获取捐款人的信任。他们甚至会雇佣当地的中间人来招募病童,部分中间人对诈骗性质表示知情。可悲的是,就算发现了一个有问题的组织,他们也会立即更换全新的名称继续行骗。</p>
<p>我很难不去怀疑我所看到的所有捐款,因为前不久我刚被维基百科基金会「坑」了一次。我们需要知道这些款项的背后都是谁,但我们作为普通人,真的能发现得了吗?可能对我们来说最稳妥的方法就是「变冷漠」—— 不给任何人自己的东西。这么做听上去不近人情,但是在这个到处都是谎言的社会,可能人人都会慢慢不再关心彼此。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://www.bbc.com">www.bbc.com</a></em> news <em>articles</em> ckgz318y8elo</p>
<h2 id="玩耍时间最长-清理时间最短的玩具"><a class="markdownIt-Anchor" href="#玩耍时间最长-清理时间最短的玩具"></a> 玩耍时间最长、清理时间最短的玩具</h2>
<p>作者以游玩的频率、时长和收拾的轻易度这三个维度评价了孩子的各个玩具。如果你不知道该如何给小孩子挑选玩具,可以参考这篇文章。</p>
<p>吸引了我注意力的是「磁力砖」这个玩具,我从未听说过,但是感觉好好玩。</p>
<p>我小时候玩得最多的是「魔尺」。按理来说它可以组成的搭配相当有限,不过得利于我小时候那强大的想象力,我可以将其拼成我认为的「人」或者「精灵」、放置在一个我编写的故事里。自然,到这个地步就已经不是「选什么玩具」这样的问题了…… 因为我可以把所有看到的东西都当作是长相奇怪的「精灵」。现在反而做不到了,实在是令人悲伤。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://joannabregan.substack.com">joannabregan.substack.com</a></em> p/toys-with-the-highest-play-time-and</p>
<h2 id="自由薯条"><a class="markdownIt-Anchor" href="#自由薯条"></a> 自由薯条</h2>
<p>2001 年,美国发生了可怕的 911 恐怖袭击。事后美国政府指控伊拉克拥有大规模杀伤性武器,并且暗中支持恐怖主义组织,因此主张必须通过军事手段推翻萨达姆政权。</p>
<p>这一军事行动计划未能获得联合国的明确授权,美国只能试图通过外交压力促使联合国安理会通过决议,批准对伊拉克动武。在这一争取国际合法性的过程中,美国与以法国、德国为首的欧洲盟友发生了严重的战略分歧。</p>
<p>当时的法国是联合国安理会常任理事国,拥有极其关键的一票否定权。法国坚持认为战争应当是最后的手段,主张给予联合国武器核查人员更多时间在伊拉克进行核查,以确定是否真的存在美国口中的武器。</p>
<p>美国对此很不满意,公开嘲讽法国和德国代表了过时的「老欧洲」,而支持美国的东欧国家才是「新欧洲」。美国舆论普遍认为法国不仅阻碍了美国的国家安全行动,还忘恩负义(美国二战期间和结束后多次帮助法国)。这种政治上的受挫感转化为了美国国内强烈的反法情绪。</p>
<p>在这种舆论氛围下,北卡罗来纳州的共和党众议员 Walter B.Jones 提议将「法式薯条」(French Fries)更名。</p>
<p>没想到的是,2003 年 3 月 11 日,众议员行政委员会主席兼俄亥俄州共和党众议员 Bob Ney 还真的指示国会众议院的三家自助餐厅去正式修改菜单:「法式薯条」改名为「自由薯条」(Freedom Fries)、「法式吐司」(French Toast)改名为「自由吐司」(Freedom Toast)。</p>
<p>Ney 声称,此举旨在表达对法国「拒绝支持美国盟友」的不满,并象征性地剥夺法国在国会大厦菜单上的「名分」。</p>
<p>当时的民意调查显示,有不少美国民众支持这一象征性的抗议行为,视其为一种低成本的爱国主义表达。</p>
<p>随着伊拉克战争局势的演变以及美国国内政治气候的变化,「自由薯条」的热度逐渐消退。到了 2005 年和 2006 年,随着美军在伊拉克陷入泥潭,公众对战争的支持率大幅下降,这种针对法国的象征性抗议显得愈发不合时宜。更为关键的是 Ney 因其他事件而陷入法律困境,最终辞职和入狱,他对国会餐厅的管辖权也随之旁落。</p>
<p>2006 年 8 月,接替 Ney 担任众议院行政委员会主席的密歇根州众议员 Vern Ehlers 在没有发布任何官方声明的情况下,悄然指示国会餐厅将菜单改回了「法式薯条」。</p>
<p>更戏剧性的在于,最初的提议者 Jones 后来成为了伊拉克战争的公开反对者,并对自己当年的行为表示了悔意,希望这件事从未发生过。</p>
<p>一战其实也发生过一样的事情。1917 年美国对德国宣战后,国内爆发了极端的反德歇斯底里情绪。</p>
<p>当时作为德国饮食文化代表的「酸菜」(Sauerkraut)被认为带有敌国色彩,为了切断与敌人的文化联系并激发爱国热情,美国国内的生产商和部分官方机构将其更名为「自由卷心菜」(Liberty Cabbage)。</p>
<p>这种改名风潮波及甚广:「德国麻疹」(German measles)要叫「自由麻疹」(Liberty measles),「汉堡」(Hamburger)要叫「自由三明治」或者「自由牛排」(叫「牛排」是因为这里的「汉堡」并非我们现在认为的「汉堡包」,其形式可以想象一下日本的「汉堡肉」),甚至「腊肠犬」(Dachshund)也要叫「自由犬」(Liberty pups)。</p>
<p>用现在的眼光去看,就会觉得这帮人作为政客,做的事情可是一个比一个幼稚,将其视为美国反智主义抬头的表现也不为过。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://zh.wikipedia.org">zh.wikipedia.org</a></em> zh-cn/%E8%87%AA%E7%94%B1%E8%96%AF%E6%A2%9D</p>
<h2 id="ai-导致学校进入封锁因其将学生的单簧管误认为枪支"><a class="markdownIt-Anchor" href="#ai-导致学校进入封锁因其将学生的单簧管误认为枪支"></a> AI 导致学校进入封锁,因其将学生的单簧管误认为枪支</h2>
<p>去年年底佛罗里达州的一所中学发生了一起乌龙事情:AI 监控系统发出警报,发现一名学生携带了枪支,事后发现这名学生手里拿的其实是单簧管。</p>
<p>这件事情发生没多久,马里兰州又发生了类似的事件。学校的 AI 监控系统这次误认为一名学生手里的 Doritos(多力多滋,是薯片)是手枪,导致学生被至少八名持枪警察暴力拘留。</p>
<p>我很不能理解的是校方的事后态度。佛罗里达州的那个学校事后责怪了携带单簧管的学生,认为对方假装在学校内持有武器 —— 这种话你都能说出口?</p>
<p>明明这种事情可以通过让一个人类参与其中而避免,但是这些教育机构却好像只想依靠 AI 系统的样子。这倒是让我想起前些时候的另一个新闻:AI 学校,即学生主要从 AI 那儿获取知识,而「老师」仅是辅助学生使用 AI 学习的人。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://futurism.com">futurism.com</a></em> future-society/ai-surveillance-school-clarinet</p>
<h2 id="我被德国铁路绑架只得到了-150-欧元"><a class="markdownIt-Anchor" href="#我被德国铁路绑架只得到了-150-欧元"></a> 我被德国铁路绑架,只得到了 1.50 欧元</h2>
<p>作者被德国铁路「绑架」,被拉去了离目的地几十公里开外的另一个联邦州。这一事实在是荒诞,反映出德国铁路在临时变更计划时的系统性僵化。</p>
<p>十年纽约客看到铁路相关的话题便会不由自主想起 MTA……</p>
<p>source: https:/ <em>www.theocharis.dev</em> blog <em>kidnapped-by-deutsche-bahn</em></p>
<h2 id="我解除了我的出书合约"><a class="markdownIt-Anchor" href="#我解除了我的出书合约"></a> 我解除了我的出书合约</h2>
<p>作者被一位出版社编辑联系上,决定写一本让读者通过动手做有趣项目来学习计算机基础概念的书。</p>
<p>可惜这期间发生了不少摩擦,例如作者被强制要求使用 AsciiDoc 或者 Word 而不是 LaTeX、去除个人风格、加入作者不想要添加的章节,甚至要求他的书里必须包含 AI 内容。</p>
<p>最后作者因工作繁忙和生活琐事,不断错过截止日期,还因 LLM 时代的到来而失去了写书的热情,主动申请了冻结项目。</p>
<p>不过这篇文章出来后,许多读者表示有购买意愿,让作者开启了电子书预售,计划按章节发布,并在亚马逊上发行纸质版。感兴趣的可以看看。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://austinhenley.com">austinhenley.com</a></em> blog/canceledbookdeal.HTML</p>
<h2 id="阅读是一种恶习"><a class="markdownIt-Anchor" href="#阅读是一种恶习"></a> 阅读是一种恶习</h2>
<p>过去十年来,美国学生的阅读能力直线下降,他们的阅读习惯也随之恶化。2023 年只有 14%的 13 岁青少年几乎每天都为了乐趣而阅读,而十年前这一比例为 27%。越来越多的高中生甚至大学生难以从头到尾读完一本书。</p>
<p>为了改变这一事,国际出版商协会在过去一年里一直在推广「民主取决于阅读」的口号,劝说他们为了拯救民主而读书。不过这种策略能有用才奇怪,主动去读书的人几乎都不是因为对社会有益才去读的。</p>
<p>作者认为可以提议将阅读视为一种恶习,这对年轻人来说才是有吸引力的。</p>
<p>这个角度是我意想不到的,略微思考后觉得是个不错的提议,只是我担心有些人只会去阅读禁书,却对其他书不感冒。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://www.msn.com">www.msn.com</a></em> en-us <em>news</em> us <em>reading-is-a-vice</em> ar-AA1Tsp7w</p>
<h2 id="百年流言"><a class="markdownIt-Anchor" href="#百年流言"></a> 百年流言</h2>
<p>Bruderhof 社区是一个非常有名的基督教公社,其生活方式非常理想主义:他们试图完全按照《圣经》的教导过群居生活,财产公有,且互相关爱。</p>
<p>该社区最古老的一条规则叫作 <em> First Law of Sannerz</em>,核心是「以此为爱:当面直言,绝不背后议论」。对于习惯了现代社会复杂人际关系的我们来说,这种规则实在是难以想象。那么这条规则有效吗?</p>
<p>这一规则在作者看来,违背人性,且可以被人利用、打着「当面直言」的旗号攻击别人。钻空子也是很容易的事情,只要靠肢体语言就可以表达对他人的轻蔑,根本不需要张口说话。更不用提八卦在心理学上算一种有用的社会均衡器了。不过《圣经》中多次提到过「舌头能燎原」,背后议论终究还是会带来不信任和仇恨。</p>
<p>即使「不八卦」在现代社会几乎是不可能完成的任务,但是这个百年社区依然选择将其作为最高理想,因为透明和直接是信任的唯一来源。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://www.plough.com">www.plough.com</a></em> en <em>topics</em> community/one-hundred-years-of-gossip</p>
<h2 id="谷歌伤透了我的心"><a class="markdownIt-Anchor" href="#谷歌伤透了我的心"></a> 谷歌伤透了我的心</h2>
<p>多年来作者一直视谷歌为值得信赖的盟友,因为谷歌过去总是迅速、无障碍地处理他关于盗版书籍的投诉,将侵权链接从搜索结果中移除。然而 2026 年的一次经历打破了这种信任。</p>
<p>这次谷歌并未像往常一样直接处理,而是连续三次发邮件质疑他的身份和版权所有权。这让作者感到极度失望和无助。他认为谷歌已经变成了一个傲慢、冷漠、不再关心小人物死活的官僚机器。</p>
<p>我认为很大一个可能是谷歌完全制裁了人工审核 DMCA 的团队,改为 AI 或者自动化脚本处理,因为作者收到的回复非常像模板话术。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://perishablepress.com">perishablepress.com</a></em> google-broke-my-heart/</p>
<h1 id="心理与关系"><a class="markdownIt-Anchor" href="#心理与关系"></a> 心理与关系</h1>
<h2 id="世界没有你的时候也会继续运转"><a class="markdownIt-Anchor" href="#世界没有你的时候也会继续运转"></a> 世界没有你的时候也会继续运转</h2>
<p>艰难时期有着两个糟糕的部分:一是认为自己是唯一一个经历这一切的人;二是发现世界继续向前,而你停滞不前。</p>
<p>事实是,没有人会救我们。只有我们可以拯救自己 —— 这听上去像是毒鸡汤,但确实如此。我们很小,是这个宇宙的无数尘埃之一,我们只能依靠自己。</p>
<p>source: https:/ <em>tala.bearblog.dev</em> what-do-you-do-when-life-keeps-going-on-without-you</p>
<h2 id="薄欲正在吞噬你的生活"><a class="markdownIt-Anchor" href="#薄欲正在吞噬你的生活"></a> 薄欲正在吞噬你的生活</h2>
<p>什么是薄欲?—— 在你满足了之后、并不会实质性去改变你的一种欲望。</p>
<p>查看社交媒体而不是去交朋友、观看色情影片而不是寻找伴侣、使用生产力应用而没有真正生产出什么…… 这些在特定的情况下都是薄欲的一种。人们在不支付任何代价的情况下获得了短暂的快乐,又或者说其实他们已经支付了代价 —— 不再长期快乐的代价。</p>
<p>市面上多的是那些可以让人们快速满足的东西,但是它们没有解决任何事情,反而让一些本应该下降的指数提升了,比如孤独感。互联网让全世界的人们不可思议地联系在了一起,但是我们好像没有变得太快乐,焦虑和抑郁值一直在增长,没有停下来过。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://www.joanwestenberg.com">www.joanwestenberg.com</a></em> thin-desires-are-eating-your-life/</p>
<h2 id="你并非职业倦怠而是灵魂在闹饥荒"><a class="markdownIt-Anchor" href="#你并非职业倦怠而是灵魂在闹饥荒"></a> 你并非职业倦怠,而是灵魂在闹饥荒</h2>
<p>作者 Neil Thanedar 认为大家有个误解:我们觉得累、不想上班是因为工作太辛苦,所以我们试图通过休息、度假、优化睡眠来解决。但他认为这些方法都没用,因为我们并非倦怠,而是在 <u>存在主义</u> 方面上感到饥饿 —— 我们的生活在物质上很富足,但在精神上很空虚。</p>
<p>心理学家 Viktor Frankl 认为,人的主要驱动力不是快乐也不是权力,而是意义。当我们没有最高目标时,我们就会陷入存在主义真空,感觉生活停滞不前。</p>
<p>借此,Thanedar 引用了 <u>马蹄铁理论</u> 来解释压力:想象一个马蹄铁,它的左右两端虽然方向不同,但是是彼此的镜像。代入「压力」,马蹄铁的最左端意味着「压力太小」和「无聊」,最右端意味着「压力太大」 和「倦怠」,中间则意味着「良性压力」。</p>
<p>这一理论本身如何我就不评价了,因为它原本是一个政治理论,但是它让我想起了初中读的《心流:最优体验心理学》,给我的印象十分深刻(虽然很抱歉没有读完)。</p>
<p>简单来说,这本书的作者 Mihaly Csikszentmihalyi 认为人类的幸福并非静止的状态,也不是单纯感官享乐的堆积,而是一种通过全身心投入某件事而获得的「最优体验」。</p>
<p>他提出了一个动态平衡:当外界赋予的任务挑战过高而个人技能不足时,人会感到焦虑;反之,当技能很高而挑战过低时,人会感到厌倦。 <u>心流</u> 只存在于这两者之间。为了维持这种状态,个体必须不断提升技能以应对更高的挑战,或者寻找更难的任务来匹配已有的技能。</p>
<p>因此,心流本质上是一种促进个体复杂性成长和自我进化的驱动力,它要求活动具备明确的目标、即时的内部反馈,以及技能与挑战的匹配。只要符合这些要点,大众常以为苦的流水线工人也可以进入心流状态。</p>
<p>他也提到现代人感到空虚的原因往往在于过度追求被动的享乐,而缺乏主动创造乐趣的能力。书中有一句话让我印象最为深刻: <strong>人要学会自娱自乐</strong>。这倒是让我想起 Aristotle 的一句话:</p>
<blockquote>
<p>离群索居者,不是野兽,便是神灵。</p>
</blockquote>
<p>Karl Marx 在他的《1844 年经济学哲学手稿》中提到了「异化劳动」这个概念。劳动本应是人类本质力量的自我确证,但在资本主义生产关系下,劳动发生了多重异化:</p>
<ol>
<li>你造出来的东西不归你,它变成了商品被拿走换钱;</li>
<li>产品越完美,工人越贫穷;</li>
<li>劳动不再是目的,而成了生存的手段;</li>
<li>劳动变成了「外在的苦难」,人只有在不劳动时才觉得自在。</li>
</ol>
<p>当「钱」成为了唯一的衡量标准时,劳动的挑战性就不再是乐趣的来源,而是痛苦的来源,因为挑战意味着可能拿不到钱的风险。这会形成一个恶性循环:工作被剥夺了自反馈,人们为了防御痛苦选择「摆烂」,结果掉入了「无聊」的无底洞,不得不为了缓解无聊而转向高刺激的消费。</p>
<p>室友有一套自己的理念,她认为人生的重点在于「热爱」。她看一个人的标准基本上就是看这个人是否有热爱,一个人为了自己的热爱而努力的姿态是最闪亮的。那些没有「热爱」的人,对她而言则不过是随波逐流的垃圾,是无聊的。</p>
<p>自然,她的表述很是极端。不过她的一个问题我认为是只看到了空心人们的「果」,而没有看到「因」。社会已经被异化了许久,人们空虚的同时,只能依靠市场提供的奶头乐来刺激自己享乐。他们是系统性饥饿的受害者。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://neilthanedar.com">neilthanedar.com</a></em> youre-not-burnt-out-youre-existentially-starving/</p>
<h2 id="不要变成机器"><a class="markdownIt-Anchor" href="#不要变成机器"></a> 不要变成机器</h2>
<blockquote>
<p>只有奴隶才通过生产力来衡量自己的存在。</p>
</blockquote>
<p>作者讲到了奋斗文化(Hustle Culture),简单来说可以认为是一群人在表演自己很奋斗:炫耀加班时长、用古怪的方式工作…… 一个很好的观察场地是 LinkedIn(领英)。</p>
<p>大家迷恋于自己可量化的一面,却忽略了真正重要的产出,并用自己的「生产力」来证明自己的价值,已经和机器无异。</p>
<p>作者认为成功的策略应该是不追求线性和盲目的苦干,而是发挥人的优势 —— 适应性和策略性。</p>
<p>source: https:/ <em>armeet.bearblog.dev</em> becoming-the-machine/</p>
<h2 id="在咖啡馆独处的不能承受之乐"><a class="markdownIt-Anchor" href="#在咖啡馆独处的不能承受之乐"></a> 在咖啡馆独处的不能承受之乐</h2>
<p>标题中的 <em> Unbearable Joy</em> 引用了 <em> The Unbearable Lightness of Being</em>,即《生命中不能承受之轻》这本名著,我在翻译中保留了这一点。</p>
<p>我是建议阅读原文,因此不对这篇文章编写总结,只说我的想法。</p>
<p>不知何时,我再也 <span class="emphasis">不独自出去</span> 了。初中的时候我因为被同学孤立,会每周走半小时的路去图书馆借书。那时候或许是我人生中可以算是「厉害」的阶段:绘画上对自己无比满意、每周都会阅读五本书、成绩还算不错,就是人际关系上有些糟糕,无论是和家庭还是和同龄人。</p>
<p>然后从一个时间点开始,我不再那么做了。我不读书了,我不出门了,我不画画了。到底是什么时候呢?我也说不上来。</p>
<p>现在我几乎是除了和人有约外,就只会因为打工而出门。我在家里待了太久,却没有出门的欲望。我对外面有着一种恐惧:我可能会被流浪汉纠缠、可能会被跟踪、可能会被杀…… 这些自然都是我的被害妄想。不过出门确实对我来说变成了一种团体活动,但不会有人永远都带着我出门。</p>
<p>这个月我产生了许多幻想。说是幻想是因为我实际上没有精力去实现它们,意味着在我的脑海里它们的优先级并不高。我看到一位博客站主购买了相机,对他路上拍的照片感觉羡慕,因此评论表示自己也想要购买一个、出门拍着玩。对方的回应是这种事想了就要立即去做。我心想说得对,但也没有动身子 ——「相机好贵,我想要在二手市场淘一个。二手卖家的家好远,我不想去。我不是还有工作要做吗?这件事就放一放吧。」</p>
<p>如果我没有记错的话,我的那个评论是在月初发的,而现在你看到的这个内容是月底写的。</p>
<p>我从很久之前就幻想过我可以再去图书馆,但是我的脑海里也产生了许多阻力:「那家图书馆我没有实体卡,我要去办吗?好像我有虚拟卡,但是我懒得查……」</p>
<p>懒,懒, <strong></strong></p>
<p>我又不是不知道如果那么做了我会很开心,但我就是没有那么做。</p>
<p>虽然我很讨厌打工,但是它对我来说有一些好处:不是特别忙的时候,我可以观察顾客们。例如每周六早上都会进来一个老头,戴着帽子系着围巾牵着条狗,他每次都会点一杯热的金橘柠檬茶,坐着慢慢喝。这期间他什么都不会坐,只是坐着。如果有其他顾客过来和他的狗互动,他会笑着说你要摸摸它吗。</p>
<p>纽约市是一个快节奏的城市,对比美国的其他地方。我很意外我会在这样的地方看到人们慢节奏地生活,毕竟很多顾客取走饮品后就会立即离开,其中的一部分人干脆是在等车的五分钟内进来买东西,公交车快到的时候还会催我们。能悠哉坐在这里很久的群体,除了身为成人的「怪人」外,就只有学生了。</p>
<p>说到学生,我有时能遇到非常可爱的小学生或者初中生。这里的「可爱」并非指的是外观,而是他们的思维和行为。他们会带着一本厚重的书读,说话有礼貌也很安静,这种小孩子会让人打心里觉得「真不错」,对比一些烦得要死的熊孩子们。</p>
<p>source: https:/ <em>candost.blog</em> the-unbearable-joy-of-sitting-alone-in-a-cafe/</p>
<h1 id="科学与自然"><a class="markdownIt-Anchor" href="#科学与自然"></a> 科学与自然</h1>
<h1 id="技术与创造"><a class="markdownIt-Anchor" href="#技术与创造"></a> 技术与创造</h1>
<h2 id="github-的垄断是如何正在摧毁开源生态系统的"><a class="markdownIt-Anchor" href="#github-的垄断是如何正在摧毁开源生态系统的"></a> GitHub 的垄断是如何正在摧毁开源生态系统的</h2>
<p>GitHub 近期一直都有问题,倒不如说从微软接手了之后,GitHub 再也不是我们心里的开源社区代表之一了。</p>
<p>作者想要知道他的学生的报告里,有多少是和被托管在 GitHub 上的项目有关,结果是只有 238 之 7 个是和 GitHub 无关的,而这里有 6 个人是忘了添加代码库的 URL,实际上使用的代码库依然被托管在 GitHub 上。</p>
<p>作者认为,GitHub 的替代方案有很多:</p>
<ul>
<li>GitLab</li>
<li>Codeberg</li>
<li>Forgejo</li>
<li>Sourcehut</li>
<li>Fossil</li>
<li>Mercurial</li>
<li>Radicle</li>
</ul>
<p>他告诉学生们要去看看 GitHub 以外的内容,但是这 238 个人里,只有 1 个人那么做了。</p>
<p>为什么一定要去看看 GitHub 以外的内容呢?这就要说到 <u>集权化</u>。当所有数据都放在一个服务上,最大的危险便是失去对它们的访问权限。</p>
<p>谷歌账户就是一个很好的例子:你有一部基于谷歌的手机,你可以登录你的谷歌账户、用谷歌邮箱注册其他网站的账户,并且简单地用手机作为 Passkey 源。一切都太方便了!</p>
<p>但如果你的手机坏了,或者你的谷歌账户登不上手机了,你再去登录其他网站就会变得很麻烦,因为你除了这个手机外,没有其他「可以证明你是你」的证据。而谷歌决定抽风、让「你」消失。</p>
<p>同样的例子也可以用在其他服务上,苹果是如此,微软也是如此。</p>
<p>对于 GitHub 来说,我认为问题更为复杂一些。GitHub 被社区的人们描述得太像一个 <em> Only One</em> 了 —— 大家都在使用它:找项目使用它,贡献使用它,托管私密代码使用它…… 好像除了 GitHub 之外,其他选择都是「看不见摸不着」,或者说「不入流」。</p>
<p>我也考虑了一下我的情况。我许多时候代码都会优先放在 GitHub 上,它变得像一个云盘,尽管它不是,并且有可能把我的代码都弄没。不过企业相关的代码,我会放在 BitBucket 上,毕竟它是为了企业而生的。这样说来,我对开源的看法,很有可能就是被局限在 GitHub 的一亩土地里。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://ploum.net">ploum.net</a></em> 2026-01-05-unteaching_github.HTML</p>
<h2 id="bear-vs-pika-vs-writeas"><a class="markdownIt-Anchor" href="#bear-vs-pika-vs-writeas"></a> Bear vs Pika vs <a target="_blank" rel="noopener" href="http://Write.as">Write.as</a></h2>
<p>作者比较了三个写作平台:Write.as、Pika.Page 以及 Bear Blog。</p>
<p>我从未接触过这些写作平台。过去,我以为你要写博客只能是自己构建、部署一个。直到最近我才知道,其实互联网早就有了这样的平台,可以帮助你构建网页样式,你只需要写…… 还有选择域名?应该吧。</p>
<p>source: https:/ <em>commentingon.xyz</em> bear-vs-pika-vs-writeas</p>
<h2 id="br-标签的三十年"><a class="markdownIt-Anchor" href="#br-标签的三十年"></a> br 标签的三十年</h2>
<p>作者聊了聊他眼里,从 90 年代到现在的这 30 年里,web 开发都发生了什么。这篇文章有点长,但是值得去了解这段历史。</p>
<p>我个人很羡慕从小就接触了计算机并去学习原理的人。我是疫情的时候才学习计算机相关的东西。当时我想要自己弄一个视觉小说游戏,接触了 OnScripter,后来想着反正闲着也是闲着,不如学习编程。当时入门学的是 C++,但是没有系统地学习,导致我基础没有打好就开始做「C-c C-v 战士」了。</p>
<p>让我意外的是,WordPress 居然在 03 年就诞生了。后面想了想也合理,它的底层是 PHP,能用上这东西的怎么说也是老资历了。我只用过一次 WordPress,是因为甲方要求我用这个。感觉刚会 Web 开发不久,对这种低代码平台很是嗤之以鼻 —— 又慢又难用,实在是不够优雅。现在看来技术栈什么的真的没有那么重要,业务才是最重要的。就像是个人博客网站,重点是展示自己,也就是内容。不过技术栈也可以或多或少代表一个人的某些特质,还是不能把话说死了。</p>
<p>我了解过前端的历史,很多事情都要从那个手机开始说起 ——iPhone。智能手机的大众化让开发者不得不去考虑「如何让网站变成在移动设备上看也很正常」这个问题。答案是响应式设计。前端和后端就此正式分成了两派:你写你的 API,我渲染我的样式,我们不走同个道儿了~</p>
<p>文章里提到了 MongoDB,并讲了这样的一个笑话:「初创公司会选择 MongoDB 因为他们会考虑到未来的百万用户,然后在用户只有几千人的情况下花费数年时间。」哦不,这说的根本就是我!</p>
<p>Agile 和 Scrum,我认为它们是有趣的东西。Scrum 可以在现在的许多企业里看到,至于 Agile,就不太一定了。我在某个项目里曾经提起过 Agile,主要是因为那会儿功能都没有约定好,你个破登录做了这么久做不好,不如直接开始折腾后面的部署,先把 MVP 展示出来。结果那个同事以很鄙夷的语气问道:「你想要搞敏捷开发?」虽然后面登录做好了,但是没有保护路由,所以登录不登录根本不重要。而他也因为不太懂部署和前后端之间的关系,折腾了很久才部署成功。</p>
<p>作者写到 AI 时代的时候,这种事实的冲击依然让人难以接受:原本感觉无限丰富的市场,居然收得这么快速。初创公司貌似变多了,但是岗位一直在减少,大家挤破了头都想进一个岗位 —— 靠更好看的简历、更有噱头的项目、更硬的人脉……</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://www.artmann.co">www.artmann.co</a></em> articles/30-years-of-br-tags</p>
<h2 id="我是肯尼亚人-我不像-chatgpt-那样写作-chatgpt-像我一样写作"><a class="markdownIt-Anchor" href="#我是肯尼亚人-我不像-chatgpt-那样写作-chatgpt-像我一样写作"></a> 我是肯尼亚人。我不像 ChatGPT 那样写作。ChatGPT 像我一样写作</h2>
<p>前几个月我因为「写出了学生不应该写出来的代码」而被质疑使用 AI,这种感受无疑是令人愤怒的,更不用提愚蠢的部门最终选择逃避了我的反质疑、继续将他们那害人的教学方式留给未来的学生们 —— 哦对,我那个分数他们也没有给我,谁叫那个作业只占整体成绩的 2% 呢?实在是虚伪至极,还懒惰。</p>
<p>我认为较为可悲的是这些「AI 警察」比谁都更要「AI 入脑」。他们已经默认了人类做不到一些事情,并认为自己所看到的就是世界的一切。</p>
<p>我高三的时候因为 SAT 认真地钻研了一点点英语,并在大一的时候从教授那儿学习了更为专业的英语写作方式。如果完全使用这些方式来书写英语内容,恐怕也会被人以为是 AI 写的,但我写句子的时候很难不去想句子的完整性、比较时怎么写才是「公平」的、使用 <em> furthermore</em> 这样不知道为什么很戳我的连接词…… 我能怎么办呢?我就是这么被教的。</p>
<p>大一暑假的时候,一位校友询问我我的现状,我回 <em> enhance my xxx skills</em> 却遭到其嘲笑:「你是 ChatGPT 吗?」ChatGPT 你个头喔。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://marcusolang.substack.com">marcusolang.substack.com</a></em> p/im-kenyan-i-dont-write-like-chatgpt</p>
<h2 id="time元素应该做点什么"><a class="markdownIt-Anchor" href="#time元素应该做点什么"></a> <code>&lt;time&gt;</code> 元素应该做点什么</h2>
<p>HTML 有一个 <code>&lt;time&gt;</code> 元素,使用方法如下:</p>
<figure class="highlight html"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">time</span> <span class="attr">datetime</span>=<span class="string">"2026-01-01T00:00:00.000Z"</span>&gt;</span></span><br><span class="line">  刚刚</span><br><span class="line"><span class="tag">&lt;/<span class="name">time</span>&gt;</span></span><br></pre></td></tr></tbody></table></figure>
<p>我的博客里就有使用它。</p>
<p>作者发现 <code>&lt;time&gt;</code> 元素明明是语义上可以精确表达时间戳的方式,但是其实际上的使用率低到不可思议 —— 根据 Chrome 浏览器所说,只有 8% 的页面会加载使用它。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://nolanlawson.com">nolanlawson.com</a></em> 2025 <em>12</em> 14 <em>the-time-element-should-actually-do-something</em></p>
<h2 id="我在地铁上编程"><a class="markdownIt-Anchor" href="#我在地铁上编程"></a> 我在地铁上编程</h2>
<p>我干过一样的事情,也是在纽约市的地铁上。唯一的区别是,我不只是在地铁上这么做,我还在巴士和渡轮上都这么做了。不过我很快就放弃了 —— 因为我晕车。</p>
<p>我的目的和作者一样:纽约市内的每日通勤实在是让人忍受不了。当时的我需要每天在史泰登岛上坐半小时的巴士到东北边的码头、坐半小时的渡轮到曼哈顿西南边的码头(如果错过了渡轮还需要再等半小时),最后坐半小时的地铁才能到达我的目的地;晚上的时候再以反过来的方法坐回家。这意味着我每天至少要浪费三个小时在通勤上!</p>
<p>因为刚刚接触到编程的美妙没多久,我巴不得每天泡在电脑上,可惜高中里的许多课禁止我使用电脑(更多是我活该)…… 这自然而然让我产生了「为什么不利用起通勤时间」的想法。</p>
<p>实话实说,在交通工具上编程的感受很奇怪,至少对于过去的我来看是这样的 —— 你成为了这个封闭空间里唯一一个在「积极上进」的人。我会不自觉地开始想:「其他人会如何看待我?上次我在车里写作业,对面就坐着一个人盯着我看 —— 他们觉得我是一个做作的人吗?」这当然也只是我的「被害妄想症」在发作。实际上,纽约市里还有精力去管别人的人依然是少数派中的少数派。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://www.scd31.com">www.scd31.com</a></em> posts/programming-on-the-subway</p>
<h2 id="这不是未来"><a class="markdownIt-Anchor" href="#这不是未来"></a> 这不是未来</h2>
<p>文章的开头又让我想起了上个学期的那节计算机课。太棒了,我喜欢生活的一部分因为不同的事情而联系在一起:我又多了一个攻击部门的理由。</p>
<p>「披露 AI 使用」这个规则实在是太奇怪了,让我无法理解其中的含义。是觉得学生反正都要使用 AI,所以干脆任由他们那么做吗?还是教授自身水平跟不上课程内容(例如我那个不懂 HTML 的教授居然还要让我们做和 HTML 相关的作业),用 AI 当作遮羞布?</p>
<p>回到文章本身,我们需要明白有时候使用最新技术并不代表先进,这世上就没有什么技术是不可避免的;Off-grid 人群在这个星球上依然生活得很好。有时候阅读 Hacker News 的评论区我发现,这世上因为自主意识而选择不持有手机的人并不少,而手机是一个大家都认为必须存在于自己人生中的一个东西。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://blog.mathieui.net">blog.mathieui.net</a></em> this-is-not-the-future.HTML</p>
<h2 id="times-new-roman-简史"><a class="markdownIt-Anchor" href="#times-new-roman-简史"></a> Times New Roman 简史</h2>
<p>我不喜欢 Times New Roman。我很难描述这种感受,总之我不喜欢它,我也讨厌教授们要求我们使用这个字体。它说是「专业」和「权威」的代表,但了解到它的历史后,发现它不过是为了在报纸上的每一行里塞更多的字而设计出来的。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://typographyforlawyers.com">typographyforlawyers.com</a></em> a-brief-history-of-times-new-roman.HTML</p>
<h2 id="解决问题的三种方法"><a class="markdownIt-Anchor" href="#解决问题的三种方法"></a> 解决问题的三种方法</h2>
<p>作者认为,如果将「问题」定义为「感知到的现状」与「期望的状态」之间的落差,那么解决问题的路径就不止一条,而是存在三个逻辑上的变量可供调整:</p>
<ol>
<li>改变世界以符合期望,也就是我们通常理解的努力工作去解决具体困难,将现状拉高到理想的标准;</li>
<li>重新审视现状,改变对现状的看法;</li>
<li>降低自己的期望。</li>
</ol>
<p>室友是一位有时候理性到让人觉得有些冷漠的人,她曾经提出了一套适用于自己的人际关系法:她认为人际关系上的痛苦都来源于「期待」。很多时候对对方的期待过高,会想要将对方的「价值」或行为提升到自己期望的水平,但这往往会导致双方都很痛苦。这时候想要维持这段关系,就只能调整自己的期望:对方不是好朋友、不是朋友、不是校友、不是熟人……</p>
<p>但是人毕竟是人,人是不擅长量化机会成本的,也难以对那些情感强烈的人说「不」。这套方法真的成功了吗?我不见得。我只看到一段本应该断掉、却因为其中一方一直在降低期望而侥幸存活下来的关系。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://andreasfragner.com">andreasfragner.com</a></em> writing/three-ways-to-solve-problems</p>
<h2 id="我无法升级到-windows-11现在请别烦我了"><a class="markdownIt-Anchor" href="#我无法升级到-windows-11现在请别烦我了"></a> 我无法升级到 Windows 11,现在请别烦我了</h2>
<p>我和作者一样,有着一台性能不错但是因为不支持 Windows 11 的电脑。我也遇到了和作者一样的问题,时不时会收到更新到 Windows 11 的提醒,尽管这个电脑想更新也更新不了。</p>
<p>Windows 10 的「逝去」让许多人意识到 Windows 已经不是过去的 Windows,这也包括我在内。这个月我重新翻出了自己的笔记本电脑,用于新学期的学习。因为之前就想要试试看脱离 Windows 系统,以及学习使用 Emacs,所以给这个电脑安装了 Linux 发行版。我下的是 EndeavourOS + i3WM,原本担心自己会不习惯快捷键等操作,实际用下来意外顺手。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://idiallo.com">idiallo.com</a></em> byte-size/cant-update-to-windows-11-leave-me-alone</p>
<h2 id="一百万个独立网络截图"><a class="markdownIt-Anchor" href="#一百万个独立网络截图"></a> 一百万个(独立网络)截图</h2>
<p>作者看到了一个叫 <a target="_blank" rel="noopener" href="https://onemillionscreenshots.com">onemillionscreenshots.com</a> 的网站,觉得这种看图选网站的交互方式很棒。</p>
<p>但是该网站抓取的都是最热门的网站,充满了广告和 SEO 垃圾,没点儿营养。他想要挖掘独立网络,也就是个人博客、非盈利项目,虽然不流行,但内容真诚、有设计感。</p>
<p>因此,他决定复刻那个看图网站,但把数据源换成这些小众网站。</p>
<p>关于作者的技术实现,我就看不懂了。但是你可以访问 <a target="_blank" rel="noopener" href="https://screenshots.nry.me">这个网址</a> 来看看效果,很酷炫的。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://nry.me">nry.me</a></em> posts <em>2025-10-09</em> small-web-screenshots/</p>
<h2 id="我是如何离开-youtube-的"><a class="markdownIt-Anchor" href="#我是如何离开-youtube-的"></a> 我是如何离开 YouTube 的</h2>
<p>这篇文章我最为惊讶的是谷歌的内部构成。</p>
<p>过去我阅读过《重新定义公司:谷歌是如何运营的》这本书,书中对于早期的谷歌的描写,与本篇文章所描写的现实中的官僚主义有着巨大的割裂。</p>
<p>例如书中提到员工可以跨级汇报、只看能力而不看头衔。但对于现在拥有近十几万员工的谷歌,为了维持秩序,「层级化」这个书中曾多少有些唾弃的东西不得不成了管理上的必需品。</p>
<p>上个月我引用了 <a href="/posts/b211#%E4%BC%98%E7%A7%80%E7%9A%84%E5%B7%A5%E7%A8%8B%E7%AE%A1%E7%90%86%E6%98%AF%E4%B8%80%E7%A7%8D%E6%97%B6%E5%B0%9A">一篇文章</a>,表示所谓「优秀的工程管理」不过是一种时尚,同个工程管理在不同的场景下有着截然不同的效果。但看到谷歌这样在 2014 年就提出扁平化的企业,到现在却变得和它曾经厌恶的「传统企业」一样,心中依然颇不是滋味儿(虽说我认为《重新定义公司:谷歌是如何运营的》并没有全面否定「传统企业」管理的价值,但是仍然可以感觉出作者对它的不满)。</p>
<p>扁平化真的是一个先进的管理哲学么?实际上并不见得。就和《「优秀的工程管理」是一种时尚》的作者所说的那样,这些东西只能根据当下的环境来评估。过去谷歌提出扁平化,是因为为了留住「创意精英」们,利润也足够丰富,公司容得下大量的冗余和低效。现在的大量公司所采用的扁平化,本质上是结构上的大裁员,砍掉中间管理层、减少汇报层级,强调人效比。</p>
<p>而现在的谷歌,其内部人数过大,为了避免信息的拥堵和决策瘫痪,采用严格的级别制度是必然的。「好管理」是适应环境的产物,根本就没有什么管理是客观而言优秀的。</p>
<p>但是对于仍然想要创新的人们,离开这种大公司才是最好的选择。</p>
<p>source: https:/ <em>zhach.news</em> how-i-left-youtube/</p>
<h2 id="pixelfed-正在锯着-fediverse-坐着的树枝吗"><a class="markdownIt-Anchor" href="#pixelfed-正在锯着-fediverse-坐着的树枝吗"></a> Pixelfed 正在锯着 Fediverse 坐着的树枝吗?</h2>
<p>我接触 Fediverse(联邦宇宙)没多久,所以对这整个概念并不熟悉。</p>
<p>作者认为,Pixelfed 的问题在于,它的设计旨在模仿 Instagram,刻意地移除了不显示图片的文字。这导致 Pixelfed 用户以为自己关注了某人,却看不到对方的大部分消息。同样的,被关注的 Mastodon 用户会以为 Pixelfed 用户收到了自己的消息,因为后者关注了自己。</p>
<p>这就导致了另一件事:人们变得倾向于使用 Mastodon 账号来关注 Mastodon,创建 Pixelfed 账号来关注 Pixelfed。这也让 ActivityPub 协议变成了一个笑话 —— 它的承诺是只需要一个账号就能关注宇宙里的所有人。</p>
<p>Pixelfed 作为一个 ActivityPub 客户端,理论上应该处理所有接收到的 Activity。它完全可以将纯文字内容渲染成一个文字卡片,例如 Instagram 的文字快拍模式,或者给纯文字内容一个单独的动态流入口。但是它选择直接不显示,让 Fediverse 的意义大打折扣。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://ploum.net">ploum.net</a></em> 2025-12-04-pixelfed-against-fediverse.HTML</p>
<h2 id="我们是如何为了娱乐而弄丢了交流的"><a class="markdownIt-Anchor" href="#我们是如何为了娱乐而弄丢了交流的"></a> 我们是如何为了娱乐而弄丢了交流的</h2>
<p>上一篇文章引发了激烈的讨论,让作者意识到自己和 Pixelfed 的支持者生活在两个完全不同的世界:</p>
<ul>
<li>作者认为 ActivityPub 是人与人之间的通讯协议,因此「不丢失信息」是底线;</li>
<li>Pixelfed 的支持者则认为 ActivityPub 是内容消费协议,是用于娱乐的。他们习惯根据想看什么内容来切换账号。</li>
</ul>
<p>作者认为,真正的互操作性并不需要用户注册多个账户。现在这种「看图去 Pixelfed,看字去 Mastodon」的思维根本就是被大公司洗脑后的产物,让人以为一个平台必须有一个账号。</p>
<p>然而作者又发现,ActivityPub 的官方定义里明确写了 Fediverse 是为了投递内容,而非成为通讯网络。也就是说,这些社交网络从来都不是为了交流,本质上是把内容创作外包给用户、填满用户的时间 —— <em>ActivityPub 和 Fediverse 可能正在重蹈 Web2 的覆辙</em></p>
<p>如果将 Fediverse 应用视为通讯网络的话,那么用户就不应该不担心信息的丢失。但它是社交媒体,所以丢失信息根本不算什么,因为算法平台没少这么干过。而这也可以解释为什么即时通讯是主流的沟通方式,因为用户并不信任对方收到了自己的消息。</p>
<p>什么是真正的通信方式?电子邮件。它可靠、异步、去中心化、标准化,还可以使用我们自己的工具来离线管理。它使用起来很麻烦,还需要主动维护,但这让我们保持了主动性,而不是像社交媒体那样让我们被动地躺在算法里。</p>
<p>作者也认为真正的通信协议是无聊的,因为它们没有算法让我们上瘾,设计出来的目的也不是为了刺激我们的大脑。也正因为如此,它们的利润不高,自然而然也不会被大肆宣传。</p>
<p>我使用 Mastodon 是为了自己方便、不想要把自己的日记放在谷歌的产品下而已,也就是说最开始我就不指望使用 Mastodon 来和其他人沟通。Mastodon 或许更像是微博客平台。</p>
<p>不过之后我确实将其当作社交媒体来看待了。虽然我已经很克制自己不去使用社交媒体(事实上我还保留着 Instagram、脸谱网和推特的账号,用于关注一些我想要关注的人们),但是这个月使用 Mastodon 的频率明显高上很多。</p>
<p>不过原因并非我一直在刷,而是我沉迷于微博客那样的碎片化的表达。人类的思维本就是碎片化的,微博客其实要比博客更符合人类大脑的自然运作模式。我不想要去争论哪个更好,这(或许)会引起一场无意义的战争。总之大家只要有产出即可,我是这么想的。总之我并不赞同使用 Fediverse 应用就等同于在使用大公司社交媒体这一观点。</p>
<p>作者对 Fediverse 的批评有一定的可取之处,但并非客观上的真理。既然 ActivityPub 协议本就是为了传递内容而生,那我认为不应该因为一件它原没有打算去做的事情而说它。</p>
<p>最后说一下作者在文章中提到的一些我不知道的技术:Gemini 协议和离线浏览器。</p>
<p>Gemini 协议具有着极致的极简,不支持图片嵌入、脚本、iframe、复杂的样式,只支持文字和链接。</p>
<p>而离线浏览器作者推荐的是 Offpunk,也是他自己用 Python 写的命令行浏览器。现代浏览器的工作方式是点击、等待加载和阅读,而离线浏览器更像是 RSS 阅读器和电子邮件客户端,它会自动将内容全部下载到本地,这样你只需要阅读本地缓存即可。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://ploum.net">ploum.net</a></em> 2025-12-15-communication-entertainment.HTML</p>
<h2 id="用纯-html-替换-js"><a class="markdownIt-Anchor" href="#用纯-html-替换-js"></a> 用纯 HTML 替换 JS</h2>
<p>作者列举了一些可以被原生 HTML / CSS 替换掉的传统 JS 功能:</p>
<ol>
<li>手风琴效果和内容展开面板:使用 <code>&lt;details&gt;</code><code>&lt;summary&gt;</code> 标签;</li>
<li>带自动筛选建议的输入框:使用 <code>&lt;input&gt;</code><code>&lt;datalist&gt;</code> 标签;</li>
<li>模态框和弹出层:使用 <code>popover</code><code>popovertarget</code> 属性;</li>
<li>离屏导航和侧边栏:基于 <code>popover</code> API,配合 CSS 的 <code>translate</code> 属性。</li>
</ol>
<p>source: https:/ <em>www.htmhell.dev</em> adventcalendar <em>2025</em> 27/</p>
<h2 id="论隐私与控制"><a class="markdownIt-Anchor" href="#论隐私与控制"></a> 论隐私与控制</h2>
<p>作者按照不同类别推荐了 13 个工具、服务或硬件(不包括他提到的个人域名这种策略)。具体清单如下:</p>
<ul>
<li>密码管理器
<ul>
<li>GNU pass</li>
<li>passage</li>
<li>Bitwarden</li>
</ul>
</li>
<li>即时通讯
<ul>
<li>Signal</li>
</ul>
</li>
<li>手机系统与应用
<ul>
<li>GrapheneOS</li>
<li>F-Droid</li>
</ul>
</li>
<li>邮件
<ul>
<li>Tuta</li>
</ul>
</li>
<li>浏览体验
<ul>
<li>Firefox</li>
<li>Privacy Badger</li>
<li>uBlock Origin</li>
</ul>
</li>
<li>日历与联系人托管
<ul>
<li>树莓派</li>
<li>Baïkal</li>
<li>DAVx⁵</li>
</ul>
</li>
<li>域名与网络
<ul>
<li>Cloudflare Registrar</li>
<li>Cloudflare DNS</li>
</ul>
</li>
</ul>
<p>我因为玩转笔记本的配置,也稍微做了下隐私和安全性的功课。我个人不推荐使用 Firefox 浏览器,尤其是 Mozilla 发行的。首先是它已经声称全面转向 AI,未来会怎样很难说,总之好感对我来说已经掉光了。其次是它在隐私上已截然不再是过去的 Firefox,还修改过自己的条款,好感又要掉掉掉了。</p>
<p>如果你想要极致的隐私性的话,可以试试 LibreWolf,其缺点是隐私性太强,很多时候无法正常地使用。</p>
<p>我现在使用的是 Floorp,算是夹在 Firefox 和 LibreWolf 之间的选择,也有许多自己的特色功能。</p>
<p>在 Mastodon 上还有朋友推荐了 Zen,是一个 UI 非常漂亮的浏览器。唯一的问题是我用不惯垂直标签页。感兴趣的可以试试。</p>
<p>我也想过换自己的手机系统。我现在的手机是摩托罗拉 Razr+,不幸的是摩托罗拉的手机系统已经全面接入谷歌,更不幸的是它作为一款折叠屏手机,适配它的系统估计很少很少……</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://toidiu.com">toidiu.com</a></em> blog <em>2025-12-25-privacy-and-control</em></p>
<h2 id="一个终结所有网站的网站"><a class="markdownIt-Anchor" href="#一个终结所有网站的网站"></a> 一个终结所有网站的网站</h2>
<p>这是一个十分漂亮的网站,就算是对文章内容不感兴趣,我认为也可以点进去学习一下样式。</p>
<p>文中提到了 Ivan Illich 的理论,指出技术发展的两个阶段:</p>
<ol>
<li>增强人类能力的乐观阶段;</li>
<li>工业化后的垄断阶段。</li>
</ol>
<p>当到第二个阶段时,工具开始「操纵和篡夺」社会,甚至会产生激进垄断 —— 不使用该工具就会被排除在社会之外。</p>
<p>这是一些历史案例:</p>
<ul>
<li>纺织革命虽然提高了生产力,但也带来了劳工剥削、巨大的生态成本和过度消费;</li>
<li>抗生素虽然救命,但后期滥用导致耐药性和更高的医疗成本;</li>
<li>太空探索扩展了我们的认知,商业化后反而因太空垃圾泛滥、阻碍了天文学观测。</li>
</ul>
<p>万维网也是如此。我们最初使用它来共享信息,但商业化后带来了网络霸凌、虚假信息、成瘾和资本掠夺。</p>
<p>作者重新审视了互联网的三个方面:</p>
<ol>
<li>教学和学习:逃离巨头平台的控制和变现陷阱。回归博客、HTML、RSS 和 Webmentions;</li>
<li>社交连接:逃离社交媒体 App。利用 POSSE、ActivityPub 和 ATProto 等协议,建立属于自己的、去中心化的、互操作的社交网络;</li>
<li>Web 开发:拒绝千篇一律的 B2B SaaS 开发模式。拥抱 HTML 和 CSS 的复兴,利用现代浏览器 API 进行创造性表达。</li>
</ol>
<p>作者也对个人网站进行了一些解释。如果你对个人网站很好奇,但是自己没有一个的话,可以听听看:个人网站是对企业化、工业化互联网的最有力反击。它允许自主、实验、拥有权和去中心化。</p>
<p>如何开始呢?从小做起,允许自己的失败,记录自己的成长。哪怕只是简单的 HTML 也好,别纠结工具和框架,除非设计让你快乐。你可以利用 <a target="_blank" rel="noopener" href="http://brid.gy">brid.gy</a> 等工具将内容分发到 Mastodon,再把评论收回来。</p>
<p>最后你可以将自己的作品分享到 <a target="_blank" rel="noopener" href="http://personalsit.es">personalsit.es</a> 这样的社区。这是作者自己推荐的,我看了一下都是英文使用者的网站。介意的话可以改投到中文使用者的社区内,有很多,我就不一一列举了。</p>
<p>source: https:/ <em>henry.codes</em> writing <em>a-website-to-destroy-all-websites</em></p>
<h2 id="纯文本网站的小型合集"><a class="markdownIt-Anchor" href="#纯文本网站的小型合集"></a> 纯文本网站的小型合集</h2>
<p>作者整理了一份支持「纯文本模式」浏览的网站清单,也列出了它们具体的访问方法。这些方法大多通过修改 URL 实现,常见的模式包括:</p>
<ul>
<li>添加后缀</li>
<li>替换后缀</li>
<li>添加特定参数</li>
<li>某些站点仅支持通过 <code>curl</code> 命令行工具访问</li>
</ul>
<p>其中 elle's blog 的设计让我很是吃惊。如果只是点进作者提供的网址,你会看到一个像素的房间。点击左下角的小猫,你会和作者进行对话,她会指导你如何和这个网页互动。这时候随便点点,你会发现中间的小人可以走来走去、一些页面以很有趣的方式展现…… 这还不是全部。想要阅读她的文章,你需要使用 <code>curl</code> 命令。</p>
<figure class="highlight zsh"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">curl elle.sh/blog</span><br></pre></td></tr></tbody></table></figure>
<p>你就可以看到她的文章了。</p>
<p>不过说「需要」是有点夸张了。其实在浏览器上访问 <code>ellesho.me/page/website</code> 即可。</p>
<p>说回纯文本这个想法,我认为想法不错,我也很乐意为我的读者提供这种阅读方式,但就个人观点而言,如果不美化一下我是不愿意读的。话又说回来,Emacs 可以使用 <code>M-x eww</code> 来浏览 <code>.txt</code> 的网址,然后使用我自行配置好的字体。Emacs 真是好东西啊。</p>
<p>source: https:/ <em>shkspr.mobi</em> blog <em>2025</em> 12 <em>a-small-collection-of-text-only-websites</em></p>
<h2 id="过度设计请勿打扰设备"><a class="markdownIt-Anchor" href="#过度设计请勿打扰设备"></a> 过度设计「请勿打扰」设备</h2>
<p>作者做了一个小工具,可以在 OLED 屏幕上显示自己是否在开会。听上去是个蛮简单的功能,不过爱折腾的极客们喜欢将小事情做成无比完美的小事情…… 建议直接阅读原文。</p>
<p>source: https:/ <em>apoorv.page</em> blogs/over-engineered-dnd</p>
<h2 id="就是为了这份难受劲儿"><a class="markdownIt-Anchor" href="#就是为了这份难受劲儿"></a> 就是为了这份难受劲儿</h2>
<p>这篇文章的开头就令人毛骨悚然:有人训练了一个人工智能模型,以作者的风格撰写博客文章,并且想要知道如果这个模型正常工作的话,是否会对作者有用。虽然没有人会那么做,但如果有人这么告诉我,我可能第一时间会想要封锁他,让他不要再来联系我。</p>
<p>不过作者最后的想法有点小邪恶了。虽然客观上没说错,但主动去庆幸这种事还是算了吧!我也是一个读者,还是不希望自己因为其他内容太差所以去关注一个人。</p>
<p>source: https:/ <em>nik.art</em> the-suck-is-why-were-here/</p>
<h2 id="也许评论应该解释做什么"><a class="markdownIt-Anchor" href="#也许评论应该解释做什么"></a> 也许评论应该解释「做什么」</h2>
<p>过去人们认为注释应该解释这段代码 <span class="emphasis">为什么</span> 存在,而不是这段代码 <span class="emphasis">做什么</span>。理由是如果你的代码需要额外解释它是什么,那意味着你的代码写得不够清晰和整洁。</p>
<p>阅读代码时最大的敌人是上下文切换。作者引用了《代码整洁之道》作者 Bob Martin 的观点,后者主张把一个长函数拆分成无数个极小的函数,通过函数名来解释 <em> What</em>,从而消灭注释。</p>
<p>例如我们有一个 <code>replace()</code> 方法,它会被拆分成多个小方法。结果是读者为了理解逻辑,往往需要在这些方法里跳来跳去,不断滚动屏幕,打断了阅读思路。</p>
<p>作者推崇保留原本的 10 行代码在一个函数里,但在关键步骤前加上 <em> What</em> 类型的注释。这样读者就可以顺着读下来,利用注释作为路标快速理解逻辑,而不需要跳转到其他地方。</p>
<p>source: https:/ <em><a target="_blank" rel="noopener" href="http://www.hillelwayne.com">www.hillelwayne.com</a></em> post <em>what-comments</em></p>
<h2 id="2026-年了关于加密邮件你需要认清的真相"><a class="markdownIt-Anchor" href="#2026-年了关于加密邮件你需要认清的真相"></a> 2026 年了,关于加密邮件你需要认清的真相</h2>
<p>作者认为,电子邮件的设计初衷就是电子明信片,根本没有隐私可言。后来的修修补补不过是在烂地基上盖楼,例如 PGP、S / MIME。</p>
<p>对于邮件来说,正文是数据,而发件人、收件人、主题行等内容就是元数据。即使我们加密了正文,元数据依然是明文传输的。通过元数据,攻击者能知道我们在跟谁聊、聊什么主题、聊了多久。这足以让情报机构定位目标。</p>
<p>再加上虽然可以在技术上进行修补,但邮件被几大巨头垄断,政府也希望保留监控能力,实际改不了一点。</p>
<p>就算是 ProtonMail 这样主打隐私的邮箱服务也有隐患:一旦离开他们的围墙跟别人发邮件,还是会回落到不安全的状态。</p>
<p>假设我们终于配置好了加密邮件,也可能因为易用性灾难而将加密内容以明文形式发出去。</p>
<p>因此作者的主张是,彻底放弃加密邮件这个幻想吧,使用 Signal 来进行敏感沟通。</p>
<p>source: https:/ <em>soatok.blog</em> 2026 <em>01</em> 04 <em>everything-you-need-to-know-about-email-encryption-in-2026</em></p>
<h1 id="折腾博客"><a class="markdownIt-Anchor" href="#折腾博客"></a> 折腾博客</h1>
<p>我受 <a target="_blank" rel="noopener" href="https://slashpages.net/">Slash Pages</a> 启发,为博客网站添加了一些页面。详细可见 <a href="/sitemap">网站地图</a>,它也被添加到网站的 Footer 处。</p>
<p>如果你往下划,会发现我也添加了指向 <a target="_blank" rel="noopener" href="https://slashpages.net/">笔墨迹</a> 的链接。去年我的站点被添加到笔墨迹内,不过我是到后面才知道此事,因为提醒邮件被塞进了垃圾邮件内…… 不清楚是不是 iCloud 的问题。不过无论是不是我都比较想换成用域名结尾的邮箱地址。跑题了跑题了。</p>
<p>笔墨迹建议我在首页内添加他们的链接,这让我犯了难:因为添加笔墨迹提供的图片素材在我的网站内会导致样式上的混乱。最后我选择了添加只显示文字的超链接。</p>
<p>说回 Slash Pages。根据我最开始对该博客的定义,也就是「个人领地」,我将这些新添加的页面视作「领地里的不同地点」,例如 <code>/contact</code> 就是领地的联络处。目前我还在慢慢施工中~</p>
<p>我为月刊中的「书影音」部分添加了自动抓取 NeoDB 数据的功能。目前我还在摸索如何使用 NeoDB,例如一些内容无法在 NeoDB 上搜索到条目,也无法让其在互联网上获取。可能还是需要自行手写内容。</p>
<h1 id="我写的文章"><a class="markdownIt-Anchor" href="#我写的文章"></a> 我写的文章</h1>
<ul>
<li><a href="/posts/4420/">《Emacs 里配置邮箱服务》</a></li>
<li><a href="/posts/53f4/">《初次走半马》</a></li>
<li><a href="/posts/2590/">《最能保障「数字主权」的 VPS 公司》</a></li>
<li><a href="/posts/9412/">《谈模仿学习与身份误区》</a></li>
</ul>
<h1 id="编程历程"><a class="markdownIt-Anchor" href="#编程历程"></a> 编程历程</h1>
<p>这个月我花了很多时间在自己的笔记本上。首先我将笔记本的键盘换了套新的,原先的不知为何无法正常使用。接着我将笔记本上的 Windows 系统换成了 EndeavourOS,也是 Arch Linux 发行版的一员。它本质上就是预配置好的 Arch Linux,安装起来很丝滑。</p>
<p>在窗口管理上,我选择了 i3wm 这个颇为独特的选项。它是手动平铺式窗口管理器,与传统的桌面环境,如 GNOME 或 KDE,很不一样。</p>
<p>因为月底我就要开学了,我临时学习了如何使用 Emacs,因为总感觉笔记本系统换了再不换个更高效更少见的工具记笔记实在是说不过去…… 不过这倒是让我打开了新的大门,Emacs 真好玩!</p>
<p>为了更好地使用 Emacs,我学习了 GTD 工作流,其核心围绕着这么一个问题:人并不擅长于牢记事情。GTD 工作流鼓励大家将脑子里想到的东西立即记下来,然后暂时抛之脑后,到手上的动作做完了再回看。Emacs 强大的可玩性就能做到这一点:我想到一件事情可以进行 Capture 操作,唤出我自定义好的模板(是 TODO 列表吗?是下一篇博客的想法吗?),写完后就不管它们,待未来再来补充。</p>
<p>因为 Emacs 可以做很多事情,所以我会长期将 Emacs 挂在主要窗口,需要 Capture 的时候只需要一个简单的快捷键即可。这可以抹除许多我们不会注意到的小块时间,例如打开 App、新建文件……</p>
<p>当然,你不需要 Emacs 也可以玩转 GTD 工作流。不过我依然认为 Emacs 是一个值得学习和使用的工具,类似定位的我也推荐。使用快捷键来进行过去用鼠标才能做到的操作,实在是太爽了。并且 Emacs 的可玩性极高,虽然配置需要使用 Elisp 来编写,但如果不介意的话,可以利用 AI 来帮助你打造自己想要的配置。</p>
<p>我也写了个配置来自动化一些我写博客期间可以被忽略掉的步骤,例如自动生成月刊内容。过去我还在用 Typora 写博客的时候,一个月刊的 Markdown 文件差不多有两万字。每次想在月刊里添加新内容,都需要在一个 Markdown 文件里找来找去,麻烦的同时还卡顿得不行。</p>
<p>现在我可以将内容以列表的形式放在一个 Org Mode 文件内(Emacs + Org Mode 是一个天衣无缝的组合),然后使用自定义好的快捷键快速将它们移动到月刊 Org Mode 文件内、我想要它们在的分类下。整理好后,我会再次使用快捷键,将月刊 Org Mode 文件转换成 Markdown 文件,接着保存在 Hexo 项目的文章目录下。</p>
<p>我现在会推荐想要写博客的各位使用 Hugo 而不是 Hexo…… 我现在依旧使用 Hexo 的原因不过是习惯了,且懒得去迁移。</p>
<p>总之,我很满意这个月的折腾,虽然和标题「编程历程」中的「编程」关系不是特别大!</p>
<h1 id="书籍"><a class="markdownIt-Anchor" href="#书籍"></a> 书籍</h1>
<h1 id="影视"><a class="markdownIt-Anchor" href="#影视"></a> 影视</h1>
<h1 id="音乐"><a class="markdownIt-Anchor" href="#音乐"></a> 音乐</h1>
<h2 id="sakanaction"><a class="markdownIt-Anchor" href="#sakanaction"></a> Sakanaction</h2>
<p>我重新听了一下 Sakanaction 的歌。去年我很喜欢他们的专辑 <em> 834.194</em>,这个月发现 <em> DocumentaLy</em><em> Shin-Shiro</em> 也不错。</p>
<p>这些是我很喜欢的歌曲:</p>
<ul>
<li>
<p>《『バッハの​<ruby>旋律<rt>せんりつ</rt></ruby>を夜に聴いたせいです。』》</p>
<p>其中歌词:</p>
<blockquote>
<p>バッハの​<ruby>旋律<rt>せんりつ</rt></ruby>を夜に聴いたせいです<br>
こんな心</p>
</blockquote>
<p>的唱法对我而言很有意思,听了没几次就会唱了,作为一个日语口语白痴。</p>
<p>唱歌期间被室友听到,然后被笑话…… 因为「没有一个音是对的,但居然能和原唱形成很好听的和声」,让她认为我或许在一些奇怪的地方上有着天赋 —— 怎么听都不像好话吧!</p>
</li>
<li>
<p>《ネイティブダンサー》,或称 <em> Native Dancer</em></p>
<blockquote><ruby><rt>あわ</rt></ruby>い日に僕らは​<ruby><rt></rt></ruby>れた、ただ揺れた
<p>そういう気になって</p>
<p>思い​<ruby><rt></rt></ruby>のように降り​<ruby><rt></rt></ruby>ちた、ただ降り落ちた<br>
そう雪になって</p>
</blockquote>
</li>
<li>
<p>《多分、風。》</p>
<p>这首歌的前奏相当抓耳!</p>
</li>
</ul>
<h1 id="日记片段"><a class="markdownIt-Anchor" href="#日记片段"></a> 日记片段</h1>
<p>日记片段现在已经全面使用我在 Mastodon 内发布的内容。你可以通过跟随我的 Mastodon 账户来提前阅读日记片段,或者不跟随,在月刊里一次性读完。</p>
</body></html></div></article></li></ul></div></main><footer><div class="paginator"><a class="next" href="page/2/">下一页</a></div><div class="copyright"><p class="footer-links"><a href="/friends/index.html">友链</a><span class="footer-separator"> ·</span><a href="/links/index.html">邻邦</a><span class="footer-separator"> ·</span><a href="/contact/index.html">联络</a><span class="footer-separator"> ·</span><a href="/colophon/index.html">营造记</a><span class="footer-separator"> ·</span><a href="/atom.xml">RSS订阅</a></p><p>© 2025 - 2026 <a href="https://cytrogen.icu">Cytrogen</a>, powered by <a href="https://hexo.io/" target="_blank">Hexo</a> and <a href="https://github.com/cytrogen/hexo-theme-ares" target="_blank">hexo-theme-ares</a>.</p><p><a href="https://blogscn.fun" target="_blank" rel="noopener">BLOGS·CN</a></p></div></footer></div></div><a class="back-to-top" href="#top" aria-label="返回顶部"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M3.293 9.707a1 1 0 010-1.414L9.586 2a2 2 0 012.828 0l6.293 6.293a1 1 0 01-1.414 1.414L11 3.414V17a1 1 0 11-2 0V3.414L2.707 9.707a1 1 0 01-1.414 0z"></path></svg></a><script>document.addEventListener('DOMContentLoaded', function() {
  const codeBlocks = document.querySelectorAll('figure.highlight');
  
  codeBlocks.forEach(block => {
    let caption = block.querySelector('figcaption');
    if (!caption) {
      caption = document.createElement('figcaption');
      block.insertBefore(caption, block.firstChild);
    }

    const info = document.createElement('div');
    info.className = 'info';
    
    const filename = caption.querySelector('span');
    if (filename) {
      filename.className = 'filename';
      info.appendChild(filename);
    }
    
    const lang = block.className.split(' ')[1];
    if (lang) {
      const langSpan = document.createElement('span');
      langSpan.className = 'lang-name';
      langSpan.textContent = lang;
      info.appendChild(langSpan);
    }

    const sourceLink = caption.querySelector('a');
    if (sourceLink) {
      sourceLink.className = 'source-link';
      info.appendChild(sourceLink);
    }

    const actions = document.createElement('div');
    actions.className = 'actions';

    const codeHeight = block.scrollHeight;
    const threshold = 300;

    if (codeHeight > threshold) {
      block.classList.add('folded');
      
      const toggleBtn = document.createElement('button');
      toggleBtn.textContent = '展开';
      toggleBtn.addEventListener('click', () => {
        block.classList.toggle('folded');
        toggleBtn.textContent = block.classList.contains('folded') ? '展开' : '折叠';
      });
      actions.appendChild(toggleBtn);
    }

    const copyBtn = document.createElement('button');
    copyBtn.textContent = '复制';
    copyBtn.addEventListener('click', async () => {
      const codeLines = block.querySelectorAll('.code .line');
      const code = Array.from(codeLines)
        .map(line => line.textContent)
        .join('\n')
        .replace(/\n\n/g, '\n');
      
      try {
        await navigator.clipboard.writeText(code);
        copyBtn.textContent = '已复制';
        copyBtn.classList.add('copied');
        
        setTimeout(() => {
          copyBtn.textContent = '复制';
          copyBtn.classList.remove('copied');
        }, 3000);
      } catch (err) {
        console.error('复制失败:', err);
        copyBtn.textContent = '复制失败';
        
        setTimeout(() => {
          copyBtn.textContent = '复制';
        }, 3000);
      }
    });
    actions.appendChild(copyBtn);

    caption.innerHTML = '';
    caption.appendChild(info);
    caption.appendChild(actions);

    const markedLines = block.getAttribute('data-marked-lines');
    if (markedLines) {
      const lines = markedLines.split(',');
      lines.forEach(range => {
        if (range.includes('-')) {
          const [start, end] = range.split('-').map(Number);
          for (let i = start; i <= end; i++) {
            const line = block.querySelector(`.line-${i}`);
            if (line) line.classList.add('marked');
          }
        } else {
          const line = block.querySelector(`.line-${range}`);
          if (line) line.classList.add('marked');
        }
      });
    }
  });
});</script><script async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" id="MathJax-script"></script><script>(function() {
  document.addEventListener('DOMContentLoaded', function() {
    const themeToggle = document.querySelector('.theme-toggle');
    
    if (!themeToggle) return;
    
    const getCurrentTheme = () => {
      return document.documentElement.getAttribute('data-theme') || 'light';
    };
    
    const updateUI = (theme) => {
      const isDark = theme === 'dark';
      themeToggle.setAttribute('aria-pressed', isDark.toString());
    };
    
    const setTheme = (theme) => {
      document.documentElement.setAttribute('data-theme', theme);
      document.documentElement.style.colorScheme = theme;
      
      const pageWrapper = document.getElementById('page-wrapper');
      if (pageWrapper) {
        pageWrapper.setAttribute('data-theme', theme);
      }
      
      // Find and remove the temporary anti-flicker style tag if it exists.
      // This ensures the main stylesheet takes full control after the initial load.
      const antiFlickerStyle = document.getElementById('anti-flicker-style');
      if (antiFlickerStyle) {
        antiFlickerStyle.remove();
      }
      
      localStorage.setItem('theme', theme);
      updateUI(theme);
    };
    
    const toggleTheme = () => {
      const current = getCurrentTheme();
      const newTheme = current === 'light' ? 'dark' : 'light';
      setTheme(newTheme);
    };
    
    updateUI(getCurrentTheme());
    
    themeToggle.addEventListener('click', toggleTheme);
    
    if (window.matchMedia) {
      const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
      mediaQuery.addEventListener('change', function(e) {
        if (!localStorage.getItem('theme')) {
          const theme = e.matches ? 'dark' : 'light';
          setTheme(theme);
        }
      });
    }
  });
})();
</script><script src="js/details-toggle.js" defer></script><script>(function() {
  document.addEventListener('DOMContentLoaded', function() {
    const backToTopBtn = document.querySelector('.back-to-top');
    
    if (!backToTopBtn) return;
    
    const toggleButtonVisibility = () => {
      const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
      const shouldShow = scrollTop > 200;
      
      if (shouldShow) {
        backToTopBtn.classList.add('is-visible');
      } else {
        backToTopBtn.classList.remove('is-visible');
      }
    };
    
    let ticking = false;
    const handleScroll = () => {
      if (!ticking) {
        requestAnimationFrame(() => {
          toggleButtonVisibility();
          ticking = false;
        });
        ticking = true;
      }
    };
    
    const scrollToTop = (event) => {
      event.preventDefault();
      window.scrollTo({
        top: 0,
        behavior: 'smooth'
      });
    };
    
    window.addEventListener('scroll', handleScroll);
    backToTopBtn.addEventListener('click', scrollToTop);
    
    toggleButtonVisibility();
  });
})();</script></body></html>