-
Notifications
You must be signed in to change notification settings - Fork 2
/
memos.html
249 lines (249 loc) · 85.8 KB
/
memos.html
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
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"/><title data-next-head="">Sansui - Memos</title><meta name="description" content="A personal blog about work and life"/><link rel="icon" href="/favicon.ico"/><link rel="preload" href="/_next/static/css/82e575fd7dbc59c8.css" as="style"/><link rel="stylesheet" href="/_next/static/css/82e575fd7dbc59c8.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script defer="" src="/_next/static/chunks/543.81c4bda0f0620677.js"></script><script src="/_next/static/chunks/webpack-6d03dfc7a6b750f9.js" defer=""></script><script src="/_next/static/chunks/framework-f57bba784013e877.js" defer=""></script><script src="/_next/static/chunks/main-9b5888d93b4c027e.js" defer=""></script><script src="/_next/static/chunks/pages/_app-680a4cfce1357a70.js" defer=""></script><script src="/_next/static/chunks/455-4090c37c7efd9815.js" defer=""></script><script src="/_next/static/chunks/198-518d9945539dd568.js" defer=""></script><script src="/_next/static/chunks/217-0f4d315580115968.js" defer=""></script><script src="/_next/static/chunks/193-1560d4a6e206e08a.js" defer=""></script><script src="/_next/static/chunks/pages/memos-640a3fd805188cca.js" defer=""></script><script src="/_next/static/zYTDPfFu-zVZopMfx2DtP/_buildManifest.js" defer=""></script><script src="/_next/static/zYTDPfFu-zVZopMfx2DtP/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="6.1.12">body{background:white;color:#000000;}/*!sc*/
data-styled.g1[id="sc-global-durfUv1"]{content:"sc-global-durfUv1,"}/*!sc*/
.cPWGjz{padding:24px 0 10px 0;text-align:center;font-size:0.625rem;}/*!sc*/
.cPWGjz div{margin:1.5rem auto;letter-spacing:0.2px;}/*!sc*/
.cPWGjz a:hover{color:#e0c56e;}/*!sc*/
.cPWGjz svg{font-size:1.5rem;margin:0 0.5rem;}/*!sc*/
data-styled.g2[id="sc-705178b-0"]{content:"cPWGjz,"}/*!sc*/
.bVseA-d{position:relative;}/*!sc*/
.bVseA-d::before{content:'';position:absolute;left:0;bottom:0;width:100%;border-radius:0.4em;height:0.4em;background:#e0c56e;mix-blend-mode:multiply;height:0;transition:height .3s ease;}/*!sc*/
.bVseA-d:hover::before{height:0.4rem;}/*!sc*/
data-styled.g3[id="sc-6343878f-0"]{content:"bVseA-d,"}/*!sc*/
.iAQObY{width:1em;height:1em;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;}/*!sc*/
.bcRNvF{width:100%;height:1.15rem;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;}/*!sc*/
data-styled.g6[id="sc-98974ec8-0"]{content:"iAQObY,bcRNvF,"}/*!sc*/
.iGqoYp{background:#000000;height:2px;transition:all .3s;border-radius:2px;}/*!sc*/
.iGqoYp.is-close{opacity:0;}/*!sc*/
data-styled.g7[id="sc-98974ec8-1"]{content:"iGqoYp,"}/*!sc*/
.jNOIwh{height:2px;position:relative;border-radius:2px;}/*!sc*/
.jNOIwh::before,.jNOIwh::after{content:'';position:absolute;border-radius:2px;top:0;left:0;width:100%;height:2px;background:#000000;transition:all .3s;}/*!sc*/
.jNOIwh::before{transform:rotate(45deg);}/*!sc*/
.jNOIwh::after{transform:rotate(-45deg);}/*!sc*/
.kvTqSc{height:2px;position:relative;border-radius:2px;}/*!sc*/
.kvTqSc::before,.kvTqSc::after{content:'';position:absolute;border-radius:2px;top:0;left:0;width:100%;height:2px;background:#000000;transition:all .3s;}/*!sc*/
data-styled.g8[id="sc-98974ec8-2"]{content:"jNOIwh,kvTqSc,"}/*!sc*/
.euEbpV{width:24px;height:20px;position:fixed;top:22px;right:20px;}/*!sc*/
data-styled.g9[id="sc-d7f4a716-0"]{content:"euEbpV,"}/*!sc*/
.iPRoot{font-weight:400;padding-top:3rem;font-size:0.625rem;}/*!sc*/
data-styled.g10[id="sc-d7f4a716-1"]{content:"iPRoot,"}/*!sc*/
.kfxPkz{margin:1rem 0;}/*!sc*/
.kfxPkz a:hover{color:#e0c56e;}/*!sc*/
.kfxPkz svg{font-size:1.5rem;margin:0 0.25rem;}/*!sc*/
data-styled.g11[id="sc-d7f4a716-2"]{content:"kfxPkz,"}/*!sc*/
.ewTYkv{background:white;overflow:auto;position:fixed;width:100%;height:100%;z-index:10;transform:translateY(0);transition:transform 1s cubic-bezier(0.46,0,0.08,1.11);}/*!sc*/
.ewTYkv h1 span{position:relative;}/*!sc*/
.ewTYkv h1 span::before{content:'';position:absolute;left:0;bottom:0;width:100%;border-radius:0.5em;height:0.5em;background:#e0c56e;mix-blend-mode:multiply;}/*!sc*/
data-styled.g12[id="sc-d7f4a716-3"]{content:"ewTYkv,"}/*!sc*/
.jWaeMB{margin:0 auto;padding:92px 0px;text-align:center;font-weight:bold;}/*!sc*/
data-styled.g13[id="sc-d7f4a716-4"]{content:"jWaeMB,"}/*!sc*/
.knKiOw{font-size:1.625rem;line-height:2.75rem;position:relative;transition:box-shadow .3s ease;cursor:pointer;}/*!sc*/
.knKiOw:hover{color:#e0c56e;transform:scale(1.2);}/*!sc*/
data-styled.g14[id="sc-d7f4a716-5"]{content:"knKiOw,"}/*!sc*/
.fNogdI{font-style:italic;font-size:0.875rem;color:#989898;text-align:right;}/*!sc*/
data-styled.g17[id="sc-47295c3a-0"]{content:"fNogdI,"}/*!sc*/
.iOHGiS{color:#343a3b;}/*!sc*/
.iOHGiS h1,.iOHGiS h2,.iOHGiS h3,.iOHGiS h4,.iOHGiS h5{color:#000000;}/*!sc*/
.iOHGiS h6{color:#777;}/*!sc*/
.iOHGiS hr{background-color:#a2a2a243;}/*!sc*/
.iOHGiS img,.iOHGiS picture,.iOHGiS video,.iOHGiS canvas,.iOHGiS svg,.iOHGiS pre{margin:1.5rem auto;display:block;}/*!sc*/
.iOHGiS img,.iOHGiS picture{border-radius:1rem;box-shadow:rgb(0 0 0 / 15%) 0px 2px 6px;}/*!sc*/
.iOHGiS blockquote{margin:1.5rem 0;}/*!sc*/
.iOHGiS a{position:relative;font-weight:bold;color:#000000;transition:box-shadow .3s ease;box-shadow:inset 0 -2px 0 #e0c56e;}/*!sc*/
.iOHGiS a:hover{box-shadow:inset 0 -0.5em 0 #e0c56e;}/*!sc*/
.iOHGiS a:hover::before{height:0.4em;}/*!sc*/
.iOHGiS code{color:#ae8d0b;background-color:#f3f3f3;border-radius:3px;padding:0.2rem 0.375rem;margin:0rem 1px;font-size:0.875rem;}/*!sc*/
.iOHGiS pre code{color:#343a3b;border-radius:0.5rem;padding:1rem 2rem;margin:unset;overflow:auto;}/*!sc*/
.iOHGiS blockquote{border-left:solid 2px;padding-left:1.5em;color:#777;}/*!sc*/
.iOHGiS del{opacity:.33;}/*!sc*/
.iOHGiS ul li{display:block;position:relative;}/*!sc*/
.iOHGiS ul li::before{content:"•";position:absolute;color:#ae8d0b;left:-1rem;}/*!sc*/
@media screen and (min-width:580px){.iOHGiS img,.iOHGiS picture,.iOHGiS video,.iOHGiS canvas,.iOHGiS svg,.iOHGiS pre{display:block;}}/*!sc*/
.iOHGiS .hljs{background:#f3f3f3;}/*!sc*/
.iOHGiS .hljs-emphasis{font-style:italic;}/*!sc*/
.iOHGiS .hljs-strong{font-weight:bold;}/*!sc*/
.iOHGiS .hljs-link{text-decoration:underline;}/*!sc*/
.iOHGiS .hljs-comment,.iOHGiS .hljs-quote{color:#a79b87ba;font-style:italic;}/*!sc*/
.iOHGiS .hljs-params,.iOHGiS .hljs-type{color:#a79b87c4;}/*!sc*/
.iOHGiS .hljs-punctuation,.iOHGiS .hljs-attr{color:rgb(89 161 197);}/*!sc*/
.iOHGiS .hljs-selector-tag,.iOHGiS .hljs-name,.iOHGiS .hljs-meta,.iOHGiS .hljs-operator,.iOHGiS .hljs-char.escape_{color:#c56200;}/*!sc*/
.iOHGiS .hljs-keyword,.iOHGiS .hljs-deletion{color:#799f67;}/*!sc*/
.iOHGiS .hljs-regexp,.iOHGiS .hljs-selector-pseudo,.iOHGiS .hljs-selector-attr,.iOHGiS .hljs-variable.language_{color:#cc5e91;}/*!sc*/
.iOHGiS .hljs-subst,.iOHGiS .hljs-property,.iOHGiS .hljs-code,.iOHGiS .hljs-formula,.iOHGiS .hljs-section,.iOHGiS .hljs-title.function_{color:#e36b6b;}/*!sc*/
.iOHGiS .hljs-string,.iOHGiS .hljs-symbol,.iOHGiS .hljs-bullet,.iOHGiS .hljs-addition,.iOHGiS .hljs-selector-class,.iOHGiS .hljs-title.class_,.iOHGiS .hljs-title.class_.inherited__,.iOHGiS .hljs-meta .hljs-string{color:#c68032;}/*!sc*/
.iOHGiS .hljs-variable,.iOHGiS .hljs-template-variable,.iOHGiS .hljs-number,.iOHGiS .hljs-literal,.iOHGiS .hljs-link,.iOHGiS .hljs-built_in,.iOHGiS .hljs-title,.iOHGiS .hljs-selector-id,.iOHGiS .hljs-tag,.iOHGiS .hljs-doctag,.iOHGiS .hljs-attribute,.iOHGiS .hljs-template-tag,.iOHGiS .hljs-meta .hljs-keyword{color:#ae8d0b;}/*!sc*/
data-styled.g18[id="sc-584e939e-0"]{content:"iOHGiS,"}/*!sc*/
.cnYdXJ{position:fixed;bottom:2rem;right:1rem;height:2.5rem;width:2.5rem;font-size:1.25rem;border-radius:0.625rem;border:0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#989898;background-color:#efefef;z-index:10;cursor:pointer;}/*!sc*/
.cnYdXJ svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);}/*!sc*/
@media (any-hover:hover){.cnYdXJ:hover{color:#000000;}}/*!sc*/
@media (any-hover:none){.cnYdXJ:active{background:#e0c56e;color:#000000;}}/*!sc*/
data-styled.g19[id="sc-d1583b70-0"]{content:"cnYdXJ,"}/*!sc*/
.cmZtGJ{margin-top:1.5rem;padding:0.5rem 1rem;line-height:1.625rem;color:#343a3b;}/*!sc*/
data-styled.g20[id="sc-8d318c76-0"]{content:"cmZtGJ,"}/*!sc*/
.jKGhWN{font-weight:600;text-transform:uppercase;font-size:0.875rem;color:#989898;}/*!sc*/
data-styled.g21[id="sc-8d318c76-1"]{content:"jKGhWN,"}/*!sc*/
.bKEati{display:none;transition:color 0.3s ease;cursor:pointer;}/*!sc*/
.bKEati:hover{color:#e0c56e;}/*!sc*/
@media screen and (max-width:780px){.bKEati{display:none;}}/*!sc*/
data-styled.g25[id="sc-768e7638-0"]{content:"bKEati,"}/*!sc*/
.eIMeVY{height:63px;width:100%;display:flex;justify-content:space-between;align-items:center;position:fixed;background-color:white;z-index:10;transform:translateY(0);transition:transform .5s ease;}/*!sc*/
data-styled.g27[id="sc-768e7638-2"]{content:"eIMeVY,"}/*!sc*/
.fwIora{flex:1 1 auto;display:flex;justify-content:flex-start;align-items:center;font-weight:600;width:210px;}/*!sc*/
.fwIora span{padding:0 0.5rem;}/*!sc*/
@media screen and (max-width:780px){.fwIora{width:100px;}.fwIora span{display:none;}}/*!sc*/
@media screen and (max-width:350px){.fwIora{display:none;}}/*!sc*/
data-styled.g28[id="sc-768e7638-3"]{content:"fwIora,"}/*!sc*/
.bBplgI{flex:2 1 auto;display:flex;justify-content:space-evenly;letter-spacing:0.02em;align-items:center;font-size:1.125rem;}/*!sc*/
@media screen and (min-width:780px){.bBplgI{max-width:50%;}}/*!sc*/
@media screen and (min-width:580px){.bBplgI{max-width:390px;}}/*!sc*/
@media screen and (max-width:580px){.bBplgI{max-width:290px;display:none;}}/*!sc*/
.bBplgI ol{padding:0 .5em;padding-top:2px;font-weight:600;}/*!sc*/
.bBplgI ol.current a{position:relative;}/*!sc*/
.bBplgI ol.current a:before{content:'';position:absolute;left:0;bottom:0;width:100%;border-radius:0.4em;height:0.4em;background:#e0c56e;mix-blend-mode:multiply;}/*!sc*/
data-styled.g29[id="sc-768e7638-4"]{content:"bBplgI,"}/*!sc*/
.jburZU{flex:1 1 auto;display:flex;align-items:center;justify-content:flex-end;width:210px;}/*!sc*/
.jburZU>div{margin-right:15px;}/*!sc*/
@media screen and (max-width:780px){.jburZU{width:100px;}}/*!sc*/
data-styled.g30[id="sc-768e7638-5"]{content:"jburZU,"}/*!sc*/
.jGKshO{display:flex;flex-direction:column;font-size:1.25rem;font-weight:600;position:relative;min-width:57px;}/*!sc*/
.jGKshO button{color:#000000;padding:0 0.5rem;}/*!sc*/
.jGKshO .subnav{visibility:hidden;position:absolute;top:0.25rem;left:0em;padding:0;}/*!sc*/
.jGKshO .subnav.open{visibility:visible;}/*!sc*/
.jGKshO .subnav.open>a{display:block;text-align:center;padding:0.25rem 0.5rem;border-radius:0.75rem;border:solid 1px #a2a2a260;background-color:white;color:#343a3b;margin:0.5rem 0;box-shadow:0 0 12px rgb(0 0 0 / 4%);animation:eJOiRP 0.8s ease;}/*!sc*/
.jGKshO .subnav.open>a:first-child{margin-top:2.25rem;}/*!sc*/
@media screen and (min-width:580px){.jGKshO{display:none;}}/*!sc*/
data-styled.g31[id="sc-768e7638-6"]{content:"jGKshO,"}/*!sc*/
.WEsze{display:flex;justify-content:center;}/*!sc*/
@media screen and (max-width:780px){.WEsze{flex-direction:column;}}/*!sc*/
data-styled.g33[id="sc-516a2593-1"]{content:"WEsze,"}/*!sc*/
.fzIipv{flex:3 1 0;position:relative;display:flex;flex-direction:column;}/*!sc*/
@media screen and (max-width:780px){.fzIipv{flex:1 1 0;}}/*!sc*/
data-styled.g34[id="sc-516a2593-2"]{content:"fzIipv,"}/*!sc*/
.hlhiER{flex:1 1 0;display:flex;flex-direction:column;position:sticky;top:0px;max-height:100vh;}/*!sc*/
data-styled.g35[id="sc-516a2593-3"]{content:"hlhiER,"}/*!sc*/
.cltryA{font-size:0.9rem;}/*!sc*/
.cltryA li{list-style:none;height:1.5em;overflow:hidden;}/*!sc*/
data-styled.g42[id="sc-66d576dc-0"]{content:"cltryA,"}/*!sc*/
.bBuXrZ{margin-top:2rem;max-width:8rem;padding:0.5rem 1rem;border-radius:0.75rem;border:1px solid #a2a2a260;font-weight:600;color:#343a3b;cursor:pointer;background:white;box-shadow:0 0 12px 0 rgb(0 0 0 / 4%);}/*!sc*/
@media screen and (max-width:780px){.bBuXrZ{max-width:unset;background:#f9f9f9;}}/*!sc*/
.bBuXrZ:hover{color:#ae8d0b;box-shadow:0 0 2px 0px #ae8d0b33,0 0 8px 0px #ae8d0b33;}/*!sc*/
data-styled.g43[id="sc-66d576dc-1"]{content:"bBuXrZ,"}/*!sc*/
.cQigcO{margin-top:1.5rem;padding-left:1rem;color:#343a3b;}/*!sc*/
.cQigcO .item{padding:0.25rem 0;margin-right:0.75rem;border-right:2px solid #a2a2a280;display:flex;align-items:flex-end;}/*!sc*/
.cQigcO .item.active{border-right:2px solid #ae8d0b;}/*!sc*/
.cQigcO .title{font-weight:600;margin-right:0.25rem;}/*!sc*/
.cQigcO .count{font-size:0.875rem;font-weight:600;color:#989898;vertical-align:bottom;}/*!sc*/
data-styled.g53[id="sc-ef5d5bff-0"]{content:"cQigcO,"}/*!sc*/
.eAcxwc{min-width:60px;min-height:60px;z-index:20;background:white;border-radius:0.75rem;transform:scale3d(1,1,1);box-shadow:0 0 12px rgb(0 0 0 / 4%);}/*!sc*/
data-styled.g54[id="sc-2e27164c-0"]{content:"eAcxwc,"}/*!sc*/
.eQhlWG{overflow-y:scroll;max-height:60vh;}/*!sc*/
data-styled.g55[id="sc-83ddee89-0"]{content:"eQhlWG,"}/*!sc*/
.inTLQe{position:sticky;top:0;background:white;}/*!sc*/
data-styled.g56[id="sc-83ddee89-1"]{content:"inTLQe,"}/*!sc*/
.khYQYN{border:none;border-radius:0;background:white;width:100%;color:#000000;}/*!sc*/
.khYQYN:focus,.khYQYN:focus-visible{outline:none;}/*!sc*/
data-styled.g57[id="sc-83ddee89-2"]{content:"khYQYN,"}/*!sc*/
.htOrMI{font-size:0.875rem;color:#777;overflow:hidden;white-space:nowrap;wrap:no-wrap;}/*!sc*/
data-styled.g59[id="sc-83ddee89-4"]{content:"htOrMI,"}/*!sc*/
.epDbfF{min-height:unset;position:fixed;top:55px;right:0px;width:24rem;overflow:hidden;margin:0 10px;border:1px solid #a2a2a260;}/*!sc*/
.epDbfF mark{background:none;color:#ae8d0b;}/*!sc*/
@media screen and (max-width:580px){.epDbfF{width:96%;max-height:50%;}}/*!sc*/
data-styled.g60[id="sc-83ddee89-5"]{content:"epDbfF,"}/*!sc*/
@keyframes eJOiRP{0%{-webkit-transform:translateY(-10px);transform:translateY(-10px);opacity:0;}100%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1;}}/*!sc*/
data-styled.g62[id="sc-keyframes-eJOiRP"]{content:"eJOiRP,"}/*!sc*/
@keyframes fKuLCC{0%{opacity:0;transform:translateY(10px);}100%{opacity:1;transform:translateY(0);}}/*!sc*/
data-styled.g72[id="sc-keyframes-fKuLCC"]{content:"fKuLCC,"}/*!sc*/
.lhJKNN{background:white;padding:1.25rem 1.5rem;animation:fKuLCC .3s ease;}/*!sc*/
@media screen and (max-width:580px){.lhJKNN{padding:1rem;border-radius:unset;}}/*!sc*/
.lhJKNN>.content{position:relative;height:auto;overflow:hidden;}/*!sc*/
.fiuZgR{background:white;padding:1.25rem 1.5rem;animation:fKuLCC .3s ease;}/*!sc*/
@media screen and (max-width:580px){.fiuZgR{padding:1rem;border-radius:unset;}}/*!sc*/
.fiuZgR>.content{position:relative;height:18.2rem;overflow:hidden;}/*!sc*/
data-styled.g73[id="sc-418c6f7-0"]{content:"lhJKNN,fiuZgR,"}/*!sc*/
.iOmZrI{display:none;position:absolute;bottom:0;width:100%;height:7rem;text-align:right;color:#ae8d0b;background-image:-webkit-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,.8) 40%,rgba(255,255,255,1) 75%);background-image:-moz-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,.8) 40%,rgba(255,255,255,1) 75%);background-image:-o-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,.8) 40%,rgba(255,255,255,1) 75%);background-image:linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,.8) 40%,rgba(255,255,255,1) 75%);}/*!sc*/
.iOmZrI .rd-more{font-size:0.875rem;letter-spacing:0.02rem;margin-top:5.5rem;cursor:pointer;}/*!sc*/
.iOmZrI .rd-more span{transition:box-shadow .3s;margin-right:0.5rem;}/*!sc*/
.iOmZrI .rd-more:hover span{box-shadow:inset 0 -1em 0 #00000022;}/*!sc*/
.eOrfJz{display:block;position:absolute;bottom:0;width:100%;height:7rem;text-align:right;color:#ae8d0b;background-image:-webkit-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,.8) 40%,rgba(255,255,255,1) 75%);background-image:-moz-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,.8) 40%,rgba(255,255,255,1) 75%);background-image:-o-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,.8) 40%,rgba(255,255,255,1) 75%);background-image:linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,.8) 40%,rgba(255,255,255,1) 75%);}/*!sc*/
.eOrfJz .rd-more{font-size:0.875rem;letter-spacing:0.02rem;margin-top:5.5rem;cursor:pointer;}/*!sc*/
.eOrfJz .rd-more span{transition:box-shadow .3s;margin-right:0.5rem;}/*!sc*/
.eOrfJz .rd-more:hover span{box-shadow:inset 0 -1em 0 #00000022;}/*!sc*/
data-styled.g74[id="sc-418c6f7-1"]{content:"iOmZrI,eOrfJz,"}/*!sc*/
.lpnmhM{padding-bottom:inherit;padding-left:48px;}/*!sc*/
.lpnmhM p,.lpnmhM ul,.lpnmhM ol{line-height:1.625rem;}/*!sc*/
.lpnmhM h1,.lpnmhM h2,.lpnmhM h3,.lpnmhM h4,.lpnmhM h5,.lpnmhM h6{font-size:1rem;}/*!sc*/
.lpnmhM .tag{color:#ae8d0b;}/*!sc*/
.lpnmhM .tag:hover{cursor:pointer;color:#e0c56e;}/*!sc*/
.ixNgep{padding-bottom:2rem;padding-left:48px;}/*!sc*/
.ixNgep p,.ixNgep ul,.ixNgep ol{line-height:1.625rem;}/*!sc*/
.ixNgep h1,.ixNgep h2,.ixNgep h3,.ixNgep h4,.ixNgep h5,.ixNgep h6{font-size:1rem;}/*!sc*/
.ixNgep .tag{color:#ae8d0b;}/*!sc*/
.ixNgep .tag:hover{cursor:pointer;color:#e0c56e;}/*!sc*/
data-styled.g75[id="sc-418c6f7-2"]{content:"lpnmhM,ixNgep,"}/*!sc*/
.IBuSx{display:flex;align-items:center;}/*!sc*/
.IBuSx .avatar{width:40px;height:40px;margin-right:8px;border-radius:50%;border:1px solid #a2a2a280;}/*!sc*/
.IBuSx .meta-text{display:flex;align-items:flex-start;flex-direction:column;}/*!sc*/
.IBuSx .meta-sm{color:#777;font-size:0.8rem;}/*!sc*/
.IBuSx .author{color:#343a3b;margin-right:0.25rem;font-weight:600;}/*!sc*/
.IBuSx .word-count{position:absolute;right:0;}/*!sc*/
data-styled.g76[id="sc-418c6f7-3"]{content:"IBuSx,"}/*!sc*/
.gEMOpT{min-height:80vh;margin:0.625rem 0;border-radius:1.5rem;border:1px solid #a2a2a260;background-color:white;box-shadow:0 0 12px 0 rgb(0 0 0 / 4%);}/*!sc*/
.gEMOpT .virtualist>div:first-child>section{border-radius:2rem 2rem 0 0;}/*!sc*/
.gEMOpT .virtualist>div:last-child>section{border-radius:0 0 2rem 2rem;}/*!sc*/
.gEMOpT .virtualist>div:not(:last-child)>section{border-bottom:solid 1px #a2a2a260;}/*!sc*/
data-styled.g77[id="sc-53593907-0"]{content:"gEMOpT,"}/*!sc*/
.hMnhgm{max-width:1080px;margin:0 auto;}/*!sc*/
.hMnhgm .button-float{display:none;}/*!sc*/
@media screen and (max-width:780px){.hMnhgm{max-width:100%;}.hMnhgm .button-float{display:unset;}}/*!sc*/
data-styled.g78[id="sc-538187c2-0"]{content:"hMnhgm,"}/*!sc*/
.exudXf{width:100%;padding:73px 16px 48px 16px;align-self:flex-end;}/*!sc*/
.exudXf::-webkit-scrollbar{display:none;}/*!sc*/
@media screen and (min-width:1080px){.exudXf{max-width:640px;}}/*!sc*/
@media screen and (max-width:780px){.exudXf{width:100%;}}/*!sc*/
@media screen and (max-width:580px){.exudXf{padding-left:0;padding-right:0;}}/*!sc*/
data-styled.g79[id="sc-538187c2-1"]{content:"exudXf,"}/*!sc*/
.iSvcVs{position:sticky;max-width:15rem;padding-top:83px;padding-bottom:64px;margin:0 0.5rem;height:100vh;overflow-y:auto;}/*!sc*/
.iSvcVs::-webkit-scrollbar{display:none;}/*!sc*/
.iSvcVs .close-btn{display:none;z-index:1;}/*!sc*/
@media screen and (max-width:1080px){.iSvcVs{margin:0;}}/*!sc*/
@media screen and (max-width:780px){.iSvcVs{border-radius:0.75rem;background:white;box-shadow:rgb(0 0 0 / 15%) 0px 0px 7px;position:fixed;bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;max-width:unset;width:96%;right:2%;height:66vh;padding:0rem 1rem 1rem 1rem;transition:transform .3s ease;transform:translateY(105%);}.iSvcVs .close-btn{position:sticky;top:0;background:inherit;display:flex;font-weight:600;justify-content:space-between;align-items:center;padding:1rem 0;visibility:hidden;color:#989898;font-size:1rem;cursor:pointer;}.iSvcVs .close-btn:hover{color:#ae8d0b;}}/*!sc*/
.iSvcVs .hover-gold{cursor:pointer;}/*!sc*/
.iSvcVs .hover-gold:hover{color:#ae8d0b;}/*!sc*/
data-styled.g80[id="sc-538187c2-2"]{content:"iSvcVs,"}/*!sc*/
.iCwdVD{border-radius:0.75rem;background:white;color:#777;display:flex;align-items:center;margin:0 0.5rem;border:1px solid #a2a2a260;box-shadow:0 0 12px 0 rgb(0 0 0 / 4%);}/*!sc*/
.iCwdVD:focus-within{border:1px solid #e0c56e;}/*!sc*/
.iCwdVD input{border:none;background:inherit;line-height:2rem;color:inherit;flex:1 1 auto;width:0;margin-left:1rem;}/*!sc*/
.iCwdVD input:focus,.iCwdVD input:focus-visible{outline:none;}/*!sc*/
.iCwdVD input::placeholder{color:#aeaeae;}/*!sc*/
.iCwdVD svg{margin:0 auto;flex:0 0 auto;margin:0 0.6rem 0 0.5rem;color:#a2a2a280;}/*!sc*/
data-styled.g81[id="sc-538187c2-3"]{content:"iCwdVD,"}/*!sc*/
</style></head><body><link rel="preload" as="image" href="/avatar-white.png"/><div id="__next"><div style="display:none" class="sc-2e27164c-0 sc-83ddee89-5 eAcxwc epDbfF"><div style="padding:1rem 1rem 0 1rem" class="sc-83ddee89-1 inTLQe"><input type="text" placeholder="搜索你感兴趣的内容,以空格分词" class="sc-83ddee89-2 khYQYN"/></div><div style="padding:0.5rem 1rem" class="sc-83ddee89-0 eQhlWG"><div style="font-size:0.875rem;opacity:0.5"><div class="sc-83ddee89-4 htOrMI">搜索初始化中……</div></div></div></div><div style="transform:translateY(-100%)" class="sc-d7f4a716-3 ewTYkv"><div style="padding-top:8rem" class="sc-d7f4a716-4 jWaeMB"><h1><span>SANSUI'S BLOG</span></h1><div><span class="sc-d7f4a716-5 knKiOw">系统外观</span></div><div><span class="sc-d7f4a716-5 knKiOw"><a href="/categories">分类标签</a></span></div><div><span class="sc-d7f4a716-5 knKiOw"><a href="/atom.xml">RSS</a></span></div><div class="sc-d7f4a716-1 iPRoot"><div class="sc-d7f4a716-2 kfxPkz"><a href="https://github.com/sansui233"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a><a href="mailto:sansuilnm@gmail.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg></a><a href="/rss"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rss"><path d="M4 11a9 9 0 0 1 9 9"></path><path d="M4 4a16 16 0 0 1 16 16"></path><circle cx="5" cy="19" r="1"></circle></svg></a></div><div style="margin:1rem auto">Sansui 2023<br/>All rights reserved</div></div></div><div class="sc-d7f4a716-0 euEbpV"><div width="1em" height="1em" class="sc-98974ec8-0 iAQObY"><div class="sc-98974ec8-1 iGqoYp is-close"></div><div class="sc-98974ec8-2 jNOIwh"></div><div class="sc-98974ec8-1 iGqoYp is-close"></div></div></div></div><header style="border-bottom:1px solid #a2a2a260" class="sc-768e7638-2 eIMeVY"><div class="sc-768e7638-3 fwIora"><a style="padding:0 1rem" href="/"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 72 72" width="36"><path d="M68.24 44.97a1 1 0 0 0 .73-1.21m0 0a1 1 0 0 0-1.21-.73l-4.61 1.15c1.06-5.18.9-11.77-1.14-20.18 0-7-1.45-14.23-3.24-14.91C56.78 8.34 47.01 15 46.01 18c-7-2-13-2-20 0-1-3-10.77-9.66-12.76-8.91-1.79.67-3.24 7.91-3.24 14.91-2.05 8.41-2.2 15-1.14 20.18l-4.61-1.15a.995.995 0 0 0-1.21.73c-.13.54.19 1.08.73 1.21l5.64 1.41c.33 1.14.72 2.21 1.18 3.2L5.93 50a1 1 0 0 0 .09 2h.09l5.49-.5c.44.75.92 1.46 1.42 2.11L8.7 55.05a.996.996 0 0 0 .32 1.94c.1 0 .21-.02.32-.05l5.08-1.69c6.8 7.11 17.32 7.75 21.6 7.75s14.8-.63 21.6-7.75l5.08 1.69c.11.04.21.05.32.05.42 0 .81-.26.95-.68a1 1 0 0 0-.63-1.26l-4.32-1.44c.51-.66.98-1.36 1.42-2.11l5.49.5h.09c.51 0 .95-.39 1-.91.05-.55-.36-1.04-.91-1.09l-4.67-.42c.45-.99.84-2.06 1.18-3.2l5.64-1.41M21.02 46c-5-1-7-5-6-10 .81-4.04 4.59-7.63 9-7 4.39.63 6.81 4.04 6.64 8.74-.18 4.98-4.64 9.26-9.64 8.26Zm21.45 1.28c-.64.32-1.36.48-2.09.48-.67 0-1.36-.14-2.01-.41a5.557 5.557 0 0 1-2.35-1.83c-.61.81-1.41 1.44-2.35 1.83-1.37.57-2.87.54-4.1-.07a1.01 1.01 0 0 1-.45-1.34c.25-.49.85-.69 1.34-.45.7.35 1.61.36 2.44.02 1.01-.42 1.78-1.28 2.16-2.44.03-.09.08-.17.13-.25-.7-.31-1.18-1.01-1.18-1.82 0-1.1.9-2 2-2s2 .9 2 2c0 .81-.49 1.51-1.18 1.82.05.08.1.16.13.25.38 1.15 1.15 2.02 2.16 2.44.83.34 1.74.34 2.44-.02.49-.25 1.09-.05 1.34.45s.05 1.09-.45 1.34ZM51.02 46c-5 1-9.46-3.28-9.64-8.26-.17-4.71 2.25-8.11 6.64-8.74 4.41-.63 8.19 2.96 9 7 1 5-1 9-6 10Z"></path><path d="M26 33c-.55 0-1-.45-1-1 0-.45.3-.81.7-.94-.16-.09-.32-.19-.5-.25C23 30 20 31 18.38 34.34c-1.6 3.29-1.17 7.39 2.48 8.79 3.31 1.27 7.01-.77 7.53-4.63.35-2.62-.16-4.96-1.41-6.41-.04.51-.46.92-.98.92ZM53.62 34.34a7.517 7.517 0 0 0-1.64-2.24.98.98 0 0 1-.98.9c-.55 0-1-.45-1-1 0-.4.24-.74.57-.9-1.27-.63-2.63-.72-3.78-.3-2.52.92-3.68 4.05-3.19 7.69.52 3.85 4.23 5.9 7.53 4.63 3.64-1.4 4.07-5.49 2.48-8.79Z"></path></svg><span>Sansui's 's blog</span></a></div><nav class="sc-768e7638-4 bBplgI"><ol class=""><a class="sc-6343878f-0 bVseA-d" href="/">文章</a></ol><ol class="current"><a class="sc-6343878f-0 bVseA-d" href="/memos">说说</a></ol><ol class=""><a class="sc-6343878f-0 bVseA-d" href="/about">关于</a></ol></nav><div class="sc-768e7638-5 jburZU"><div class="sc-768e7638-6 jGKshO"><div class="subnav "><a href="/">文章</a><a href="/about">关于</a></div><button style="position:relative">说说<svg xmlns="http://www.w3.org/2000/svg" width="1.25em" height="1.25em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down" style="margin-right:-0.5rem"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="sc-768e7638-0 bKEati"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg></div><div style="margin-right:20px;width:22px"><div width="100%" height="1.15rem" class="sc-98974ec8-0 bcRNvF"><div class="sc-98974ec8-1 iGqoYp"></div><div class="sc-98974ec8-2 kvTqSc"></div><div class="sc-98974ec8-1 iGqoYp"></div></div></div></div></header><main style="background:#f9f9f9"><div class="sc-538187c2-0 hMnhgm"><button class="sc-d1583b70-0 cnYdXJ button-float"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-menu"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M7 8h10"></path><path d="M7 12h10"></path><path d="M7 16h10"></path></svg></button><div class="sc-516a2593-1 WEsze"><div class="sc-516a2593-2 fzIipv"><div class="sc-538187c2-1 exudXf"><div style="margin-right:1rem" class="sc-47295c3a-0 fNogdI"></div><div style="min-height:80vh;margin-top:0.625rem" class="sc-53593907-0 gEMOpT"><div style="position:relative;width:100%;min-height:3000px" class="virtualist"><div style="position:absolute;width:100%;transform:translateY(0px);visibility:hidden"><section class="sc-418c6f7-0 lhJKNN"><div class="content"><div class="sc-418c6f7-3 IBuSx"><img class="avatar" src="/avatar-white.png" alt="Sansui"/><div class="meta-text"><span class="author">Sansui</span><span class="meta-sm date">2024-11-14 02:52</span><span class="meta-sm word-count">162<!-- --> 字</span></div></div><div class="sc-584e939e-0 sc-418c6f7-2 iOHGiS lpnmhM"><p>疯狂 debug 快3小时,自从 next.js 升级依赖后,rss 就不会在 build 时更新了,仔细一查竟然是卡在 code splitting 上……然后开个 branch 查了半天,发现把茴字换一种 dynamic import 写法就不会有问题了,啊?啊?不是?我不明白……另外这要怎么 debug 啊……</p></div><div class="sc-418c6f7-1 iOmZrI"><div class="rd-more"><span>展开全文</span></div></div></div></section></div><div style="position:absolute;width:100%;transform:translateY(300px);visibility:hidden"><section class="sc-418c6f7-0 lhJKNN"><div class="content"><div class="sc-418c6f7-3 IBuSx"><img class="avatar" src="/avatar-white.png" alt="Sansui"/><div class="meta-text"><span class="author">Sansui</span><span class="meta-sm date">2024-11-13 22:45</span><span class="meta-sm word-count">40<!-- --> 字</span></div></div><div class="sc-584e939e-0 sc-418c6f7-2 iOHGiS lpnmhM"><p>啊啊啊听歌就好像画画真的好想画画有想画的但画技太烂了又会画一半被自己气死!</p></div><div class="sc-418c6f7-1 iOmZrI"><div class="rd-more"><span>展开全文</span></div></div></div></section></div><div style="position:absolute;width:100%;transform:translateY(600px);visibility:hidden"><section class="sc-418c6f7-0 fiuZgR"><div class="content"><div class="sc-418c6f7-3 IBuSx"><img class="avatar" src="/avatar-white.png" alt="Sansui"/><div class="meta-text"><span class="author">Sansui</span><span class="meta-sm date">2024-11-12 05:49</span><span class="meta-sm word-count">705<!-- --> 字</span></div></div><div class="sc-584e939e-0 sc-418c6f7-2 iOHGiS ixNgep"><p>今天又抓住 secs 聊天,大概确定评估标准就是生活质量+感兴趣吧。北京生活质量的活,antarx 说是觉得得 50w,我觉得长期生活的话确实是这样的,很难想象一个月一万块在这个出门就是雾霾的地方生活个十几年,每天看着 AQI 破百的空气质量发愁。啥也存不下,那我不如回老家,也是一个月一万多但至少有房……</p>
<p>然后 secs 和 andy 出去的理由其实都是有比较明确的,离开家的动力。但鉴于之前种种原因吧,我差不多没有任何生活上换地方的动力了,或者说哪里都一样。会觉得换个地方可能很好,但是不是那种很想去看看的好,而是觉得达不到的理想美。我现在有动力可能是上门维修网络疑难杂症,可能是太需要帮人解决问题以维持自身那点薄弱的价值感了。</p>
<p>说来买的软排线还没到……搜了好久才知道中关村那边是还有在卖的。怪我没有做硬件的朋友,尽管本科专业是硬件相关的但那时没有人喜欢自己 DIY,我那时也不喜欢,现在,“超有意思”……</p>
<p>然后说回朋友,其实感觉工作后的人会觉得人脉重要还是没有公开透明有效的机制,以及大熔炉的环境吧。在学校的话,找到合适的人是相当容易的,很多被迫社交的场合和活动,至少对我这种 i 人来说也不会存在非常多的信息不对称。出来后是因为社交广度变窄了。</p>
<p>还有到底为什么父母为什么觉得回家等于不工作啊!回家只是少房租啊该工还是工啊!没工一样找啊!不过早就听过自由职业者谈过这个问题,最后甚至出去租工位假装上班了。我个人也不愿意回家,只要不是活不下去了,一分钱也不想用家里的……</p>
<p>然后 secs 写的那篇如何识别野鸡公司,是针对技术岗的,非常有用,我觉得可以拿去开讲座的程度。就是策划岗不太适用吧。</p></div><div class="sc-418c6f7-1 eOrfJz"><div class="rd-more"><span>展开全文</span></div></div></div></section></div><div style="position:absolute;width:100%;transform:translateY(900px);visibility:hidden"><section class="sc-418c6f7-0 fiuZgR"><div class="content"><div class="sc-418c6f7-3 IBuSx"><img class="avatar" src="/avatar-white.png" alt="Sansui"/><div class="meta-text"><span class="author">Sansui</span><span class="meta-sm date">2024-11-07 23:56</span><span class="meta-sm word-count">1044<!-- --> 字</span></div></div><div class="sc-584e939e-0 sc-418c6f7-2 iOHGiS ixNgep"><p>游戏策划这个事情、何と言うかさあ……果然还是不太行的样子。老实说呢我本科时是还真是挺想进的,日记会写想做 ACG 相关的。但是时代变了大人……朝令夕改的谁也不保。而且我始终想做的是技术(就算画画也是技术),而不是策划这样门槛低,但比炒股都难赚,还要指挥别人 social……我真的很 i 的 i 人,要是感觉 e 都是装的(也并没有遇到有人感觉我 e)</p>
<p>另外前途这个事,hr 说了很多还是不觉得策划的发展路线是明朗的,更类似创业吧,创业多不明朗做策划就多不明朗。今天 hr 说的没招老策划的原因,那很可能就是我今后再次找工作面临的问题。</p>
<p>技术后期再做策划,大概是我觉得最好的方式了,也不会有拍脑袋一想结果没法落地的问题。我甚至觉得技术有想法那是不需要专门找策划的,要找只能是因为人一天只能工8小时……</p>
<p>我在以前也是觉得只要能力对口就能找,但现在发现好多公司都是草台班子混口饭吃,工作内容就是谁都能做,做久了能力没有提升只是熟悉了业务流程,这时就是拼的简历、学历什么的……如果有生活得更轻松的工作,业余时间打点游戏,就是再好不过了。</p>
<p>当然还蛮开心和制作人聊天的,整个过程还挺神奇的,被动找过来的,不是一个诈骗公司还是有在做原创的公司就很幸运了,但就还是,一个不能做技术的职位,还谁都能做,确实不会想去,说浪费我游戏设计的天赋,但我长期实践过也无比清楚我设计很一般,比下有余比上不足,每次看到好作品一查作者都是艺术、设计相关专业出身,无一例外。所以这是巧合吗?设计是天赋吗?上限是的但是下限不是,下限是经验,是可以学习的。我开始画画真的是被说没天赋的,画什么都很怪,完全看不出特点和方向,但后面上了课后就被说有天赋了……不是……那其实就是基础和经验而已。</p>
<p>相比之下做策划更浪费我学技术的天赋,或者说动力吧……艺术生就业更加困难这种机会还是给他们吧,我还遇到了挺多逻辑挺好的艺术生的,但鄙人的艺术生朋友无一例外都是技术党,明确表示技术做到头了也不想去混管理,还想学虚幻5,要转去做个人品牌。</p>
<p>不过我也听说了同专业学长有一些本科去了游戏策划,可能16年左右吧,只能说,时代啊时代……但策划也没有在我的考虑范围内,毕竟我更习惯直接动手实践,而且策划钱太少了(图穷匕现!)真就在北京贷款上班是吧,同样的工资在老家 955 躺平不好吗,想干什么做成副业不好吗……</p>
<p>不过也感谢强行把我从待机状态拉出来的 HR 吧,说明我还不是真的想摆烂……开头面试时整个牙齿都在抖,这就是社恐久了……</p></div><div class="sc-418c6f7-1 eOrfJz"><div class="rd-more"><span>展开全文</span></div></div></div></section></div><div style="position:absolute;width:100%;transform:translateY(1200px);visibility:hidden"><section class="sc-418c6f7-0 fiuZgR"><div class="content"><div class="sc-418c6f7-3 IBuSx"><img class="avatar" src="/avatar-white.png" alt="Sansui"/><div class="meta-text"><span class="author">Sansui</span><span class="meta-sm date">2024-11-01 17:42</span><span class="meta-sm word-count">375<!-- --> 字</span></div></div><div class="sc-584e939e-0 sc-418c6f7-2 iOHGiS ixNgep"><p>真切感受到 App 各自圈地带来的影响是,有个妹妹问 ps 穿透模式有什么作用,说换了八个关键词都没有搜到。我有点震惊。然后搜了一下百度……确实搜不到!唯一有用的靠前的还是个 抖 的长视频,看一眼就可以明白的东西用视频讲了 9 分钟……</p>
<p>然后换了小红书搜,虽然相关内容不多,但第一条就是。</p>
<p>然后换了 bing 搜,也是第一条就有,adobe 的官网,但可惜她打不开。csp 台湾地区 tips 也非常详细,但可惜她打不开。国内优动漫的运营做的说明其实也很详细了,但在百度的 seo 排名非常之低,完全搜不到 ,用 bing 倒是排在第一个。</p>
<p>好烂的信息茧房。</p>
<hr/>
<p>但说来十二年 ps 老登其实也没看说明书,就是对着老爸吃灰的 PS3 零基础案例书学会的。不过接触 Adobe illustrator 是真的会觉得有理解成本在的</p></div><div class="sc-418c6f7-1 eOrfJz"><div class="rd-more"><span>展开全文</span></div></div></div></section></div><div style="position:absolute;width:100%;transform:translateY(1500px);visibility:hidden"><section class="sc-418c6f7-0 lhJKNN"><div class="content"><div class="sc-418c6f7-3 IBuSx"><img class="avatar" src="/avatar-white.png" alt="Sansui"/><div class="meta-text"><span class="author">Sansui</span><span class="meta-sm date">2024-10-18 00:38</span><span class="meta-sm word-count">103<!-- --> 字</span></div></div><div class="sc-584e939e-0 sc-418c6f7-2 iOHGiS lpnmhM"><p>华强北的小作坊便携显示器坏了,于是换了 ipad moonlight 串流。屏幕感觉太舒服了感动。Apple 的屏幕能莫名觉得很稳定。PC 再好的屏幕都还是会有一种刺眼的感觉,换个角度的观感就不一样。</p></div><div class="sc-418c6f7-1 iOmZrI"><div class="rd-more"><span>展开全文</span></div></div></div></section></div><div style="position:absolute;width:100%;transform:translateY(1800px);visibility:hidden"><section class="sc-418c6f7-0 fiuZgR"><div class="content"><div class="sc-418c6f7-3 IBuSx"><img class="avatar" src="/avatar-white.png" alt="Sansui"/><div class="meta-text"><span class="author">Sansui</span><span class="meta-sm date">2024-10-16 18:36</span><span class="meta-sm word-count">697<!-- --> 字</span></div></div><div class="sc-584e939e-0 sc-418c6f7-2 iOHGiS ixNgep"><p><span class="tag">#<!-- -->博客<!-- --> </span> 对了哦,这个页面的无限滚动的框重做了,其实是参考的 Thread。但做的时候发现一个问题……头顶那两个圆角很难做!因为无限滚动是使用 transform3d 定位的,然后就会新建一个图层。众所周知,新建图层的 方形 background 会覆盖父级容器……</p>
<p>然后我想那是不是 first-child 就可以了呢?然后发现我的 virtual list 实现是每个 list item 外面都套了一圈 div,当时的原因是 ref 传不了函数式组件,但我又需要在父级使用 ref,因为我这个无限滚动容器大概是做了个除了微博以外的平台都没有做的 feature —— 可变高度(微博的那个可变高度还有 bug 草,收起时状态没有同步)</p>
<p>然后我可能会想 virtual list div 上去写样式不就好了吗?不行不行,我的 virtual list 设计是通用组件,不能带样式,样式应该由外部决定。</p>
<p>Thread 的解决方案是,绝对定位单独画了两个角……是的,你没有听错,那两个圆角甚至是两个单独的图层……我不想这么做。</p>
<p>我想不能在组件接口上开个口, style 传给内部吗?哒咩,一个组件的参数既有 container 的样式,和 item list 的样式,感觉就是很混乱。而且样式又分 style 和 classname。这个组件只有两个层级还好,只用暴露四个样式接口,但要是那种很多层的,不能也设计这么多样式接口吧!这是个原则性问题,絶対無理!</p>
<p>最后解决方法其实非常简单但开始时没有想到,那就是 在父级总节点加了 class,用最原始的, css 的,“>”…………</p></div><div class="sc-418c6f7-1 eOrfJz"><div class="rd-more"><span>展开全文</span></div></div></div></section></div><div style="position:absolute;width:100%;transform:translateY(2100px);visibility:hidden"><section class="sc-418c6f7-0 fiuZgR"><div class="content"><div class="sc-418c6f7-3 IBuSx"><img class="avatar" src="/avatar-white.png" alt="Sansui"/><div class="meta-text"><span class="author">Sansui</span><span class="meta-sm date">2024-10-14 16:41</span><span class="meta-sm word-count">498<!-- --> 字</span></div></div><div class="sc-584e939e-0 sc-418c6f7-2 iOHGiS ixNgep"><p>svg 动画,好,好好好,太适合关键帧了,k 帧 k 下来一个 transform 自动插值。所以重点在,触发和交互如何 k 帧……</p>
<p>另外就是 tailwind css…… 我真的不知道有什么好的啊啊啊!至少开发体验极差,因为逻辑被淹没在样式里,要修改时根本定位不到代码。你猜最开始的人为什么就把 html,css 和 js 分开写……从这个角度来说 vue 比较正常,react 这种 html 和 js 混合的确实是接受了好一阵子……但其实 JSX 里混得也不太多,大部分还是分开的。 tailwind 混合的太离谱了……是不用 writing css,因为本质上是重新定义了css……可能还是我用 css 太习惯了。styled-component 还是香的。</p>
<p>另外小火箭真的卡得不行,最近已经卡到怀疑人生了。换成了 sing box 好,好了! singbox 手机上还挺直观好的,电脑上没 PC 端。GUI for singbox 真的很不直观,界面层级藏得太深了草,用看起来根本不像是能点的文字藏了我最关键的配置信息,逆天交互草……这之前我一直以为这软件的界面只有两个层级。</p></div><div class="sc-418c6f7-1 eOrfJz"><div class="rd-more"><span>展开全文</span></div></div></div></section></div><div style="position:absolute;width:100%;transform:translateY(2400px);visibility:hidden"><section class="sc-418c6f7-0 lhJKNN"><div class="content"><div class="sc-418c6f7-3 IBuSx"><img class="avatar" src="/avatar-white.png" alt="Sansui"/><div class="meta-text"><span class="author">Sansui</span><span class="meta-sm date">2024-09-15 05:22</span><span class="meta-sm word-count">89<!-- --> 字</span></div></div><div class="sc-584e939e-0 sc-418c6f7-2 iOHGiS lpnmhM"><p>望着一年前写的类型推断发呆……这他妈是我能写出来的东西?好牛逼,怎么写的,看一眼。</p>
<p>是的如果 API 没有强健的类型检查我会死,只记得当时写得要死要活的感觉在手搓框架……</p></div><div class="sc-418c6f7-1 iOmZrI"><div class="rd-more"><span>展开全文</span></div></div></div></section></div><div style="position:absolute;width:100%;transform:translateY(2700px);visibility:hidden"><section class="sc-418c6f7-0 fiuZgR"><div class="content"><div class="sc-418c6f7-3 IBuSx"><img class="avatar" src="/avatar-white.png" alt="Sansui"/><div class="meta-text"><span class="author">Sansui</span><span class="meta-sm date">2024-09-10 19:07</span><span class="meta-sm word-count">362<!-- --> 字</span></div></div><div class="sc-584e939e-0 sc-418c6f7-2 iOHGiS ixNgep"><ul>
<li><a href="https://juejin.cn/post/6945319439772434469">从一道让我失眠的 Promise 面试题开始,深入分析 Promise</a></li>
</ul>
<p>我又在看手写 Promise,这个题也让我失眠……文章写得非常非常好。</p>
<p>到最后看到评论:wtf?? 竟然是引擎优化导致的,不是我对 Promise 机制理解有误……</p>
<p>有的评论强行说 Promise.resolve return 是两次微任务,不是 Promise 构造时被丢到微任务队列,而是 Promise 被 resolve 后,then 方法里的代码被丢到微任务队列。服了,谁会把构造函数扔队列……我也理解错了好久,Promise 构造是同步代码,但里面会有异步代码,then 进入队列时并不是在 Promise 构造时的那轮事件循环里。</p></div><div class="sc-418c6f7-1 eOrfJz"><div class="rd-more"><span>展开全文</span></div></div></div></section></div></div></div><footer style="margin-top:5rem" class="sc-705178b-0 cPWGjz"><a href="https://github.com/sansui233"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a><a href="mailto:sansuilnm@gmail.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg></a><a href="/rss"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rss"><path d="M4 11a9 9 0 0 1 9 9"></path><path d="M4 4a16 16 0 0 1 16 16"></path><circle cx="5" cy="19" r="1"></circle></svg></a><div>Code & Design by Sansui 2023<!-- --> <br/> <!-- -->All rights reserved</div></footer></div></div><div class="sc-516a2593-3 hlhiER"><div class="sc-538187c2-2 iSvcVs"><div class="close-btn">小小の菜单<svg xmlns="http://www.w3.org/2000/svg" width="1.25em" height="1.25em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x" style="margin-left:.5rem"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></div><div class="sc-538187c2-3 iCwdVD"><input type="text" placeholder="搜索"/><svg xmlns="http://www.w3.org/2000/svg" width="1.4rem" height="1.4rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search hover-gold"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg></div><section class="sc-ef5d5bff-0 cQigcO"><div class="item active"><span class="title">说说</span><span class="count">220</span></div><div class="item"><span class="title">图片</span><span class="count">18</span></div></section><section class="sc-8d318c76-0 cmZtGJ"><div class="sc-8d318c76-1 jKGhWN"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag" style="margin-right:0.5em"><path d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z"></path><circle cx="7.5" cy="7.5" r=".5" fill="currentColor"></circle></svg>标签</div><div style="padding-top:0.5rem;font-size:0.9rem"><span class="hover-gold" style="display:inline-block;padding-right:0.75em"><svg xmlns="http://www.w3.org/2000/svg" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash" style="opacity:0.5;padding-right:1px"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>博客<span style="opacity:0.5">(<!-- -->5<!-- -->)</span></span><span class="hover-gold" style="display:inline-block;padding-right:0.75em"><svg xmlns="http://www.w3.org/2000/svg" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash" style="opacity:0.5;padding-right:1px"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>沉思<span style="opacity:0.5">(<!-- -->4<!-- -->)</span></span><span class="hover-gold" style="display:inline-block;padding-right:0.75em"><svg xmlns="http://www.w3.org/2000/svg" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash" style="opacity:0.5;padding-right:1px"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>obsidian</span><span class="hover-gold" style="display:inline-block;padding-right:0.75em"><svg xmlns="http://www.w3.org/2000/svg" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash" style="opacity:0.5;padding-right:1px"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>五笔输入法</span><span class="hover-gold" style="display:inline-block;padding-right:0.75em"><svg xmlns="http://www.w3.org/2000/svg" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash" style="opacity:0.5;padding-right:1px"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>书</span><span class="hover-gold" style="display:inline-block;padding-right:0.75em"><svg xmlns="http://www.w3.org/2000/svg" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash" style="opacity:0.5;padding-right:1px"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>工具<span style="opacity:0.5">(<!-- -->5<!-- -->)</span></span><span class="hover-gold" style="display:inline-block;padding-right:0.75em"><svg xmlns="http://www.w3.org/2000/svg" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash" style="opacity:0.5;padding-right:1px"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>故事</span><span class="hover-gold" style="display:inline-block;padding-right:0.75em"><svg xmlns="http://www.w3.org/2000/svg" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash" style="opacity:0.5;padding-right:1px"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>react</span><span class="hover-gold" style="display:inline-block;padding-right:0.75em"><svg xmlns="http://www.w3.org/2000/svg" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash" style="opacity:0.5;padding-right:1px"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>漫画</span><span class="hover-gold" style="display:inline-block;padding-right:0.75em"><svg xmlns="http://www.w3.org/2000/svg" width="1rem" height="1rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash" style="opacity:0.5;padding-right:1px"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>mdx</span></div></section><section class="sc-8d318c76-0 cmZtGJ"><div class="sc-8d318c76-1 jKGhWN"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users" style="margin-right:0.5em"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>朋友</div><div style="padding-top:0.5rem;font-size:0.9rem"><div><a class="sc-6343878f-0 bVseA-d" href="https://gawainx.github.io/">Gawain Antarx</a></div><div><a class="sc-6343878f-0 bVseA-d" href="https://starfish.yuzhehao.com/">ABYSS WHALE</a></div></div></section><section class="sc-8d318c76-0 cmZtGJ"><div class="sc-8d318c76-1 jKGhWN"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square" style="margin-right:0.5em"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>最近留言</div><div style="padding-top:0.5rem;font-size:0.9rem"><div class="sc-66d576dc-0 cltryA"><li>等等,好像没有评论哦~</li></div><button class="sc-66d576dc-1 bBuXrZ"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-pencil-line" style="margin-right:0.5em"><path d="M12 20h9"></path><path d="M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z"></path><path d="m15 5 3 3"></path></svg><span>添加留言</span></button></div></section></div></div></div></div></main></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"client":"static","source":[{"id":"2024-11-14 02:52:18","content":"\n疯狂 debug 快3小时,自从 next.js 升级依赖后,rss 就不会在 build 时更新了,仔细一查竟然是卡在 code splitting 上……然后开个 branch 查了半天,发现把茴字换一种 dynamic import 写法就不会有问题了,啊?啊?不是?我不明白……另外这要怎么 debug 啊……\n\n","tags":[],"imgsmd":[],"sourceFile":"003.md","csrIndex":[0,0],"code":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"疯狂 debug 快3小时,自从 next.js 升级依赖后,rss 就不会在 build 时更新了,仔细一查竟然是卡在 code splitting 上……然后开个 branch 查了半天,发现把茴字换一种 dynamic import 写法就不会有问题了,啊?啊?不是?我不明白……另外这要怎么 debug 啊……\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","length":162},{"id":"2024-11-13 22:45:23","content":"\n啊啊啊听歌就好像画画真的好想画画有想画的但画技太烂了又会画一半被自己气死!\n\n","tags":[],"imgsmd":[],"sourceFile":"003.md","csrIndex":[0,1],"code":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"啊啊啊听歌就好像画画真的好想画画有想画的但画技太烂了又会画一半被自己气死!\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","length":40},{"id":"2024-11-12 05:49:48","content":"\n今天又抓住 secs 聊天,大概确定评估标准就是生活质量+感兴趣吧。北京生活质量的活,antarx 说是觉得得 50w,我觉得长期生活的话确实是这样的,很难想象一个月一万块在这个出门就是雾霾的地方生活个十几年,每天看着 AQI 破百的空气质量发愁。啥也存不下,那我不如回老家,也是一个月一万多但至少有房……\n\n然后 secs 和 andy 出去的理由其实都是有比较明确的,离开家的动力。但鉴于之前种种原因吧,我差不多没有任何生活上换地方的动力了,或者说哪里都一样。会觉得换个地方可能很好,但是不是那种很想去看看的好,而是觉得达不到的理想美。我现在有动力可能是上门维修网络疑难杂症,可能是太需要帮人解决问题以维持自身那点薄弱的价值感了。\n\n说来买的软排线还没到……搜了好久才知道中关村那边是还有在卖的。怪我没有做硬件的朋友,尽管本科专业是硬件相关的但那时没有人喜欢自己 DIY,我那时也不喜欢,现在,“超有意思”……\n\n然后说回朋友,其实感觉工作后的人会觉得人脉重要还是没有公开透明有效的机制,以及大熔炉的环境吧。在学校的话,找到合适的人是相当容易的,很多被迫社交的场合和活动,至少对我这种 i 人来说也不会存在非常多的信息不对称。出来后是因为社交广度变窄了。\n\n还有到底为什么父母为什么觉得回家等于不工作啊!回家只是少房租啊该工还是工啊!没工一样找啊!不过早就听过自由职业者谈过这个问题,最后甚至出去租工位假装上班了。我个人也不愿意回家,只要不是活不下去了,一分钱也不想用家里的……\n\n然后 secs 写的那篇如何识别野鸡公司,是针对技术岗的,非常有用,我觉得可以拿去开讲座的程度。就是策划岗不太适用吧。\n\n","tags":[],"imgsmd":[],"sourceFile":"003.md","csrIndex":[0,2],"code":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"今天又抓住 secs 聊天,大概确定评估标准就是生活质量+感兴趣吧。北京生活质量的活,antarx 说是觉得得 50w,我觉得长期生活的话确实是这样的,很难想象一个月一万块在这个出门就是雾霾的地方生活个十几年,每天看着 AQI 破百的空气质量发愁。啥也存不下,那我不如回老家,也是一个月一万多但至少有房……\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"然后 secs 和 andy 出去的理由其实都是有比较明确的,离开家的动力。但鉴于之前种种原因吧,我差不多没有任何生活上换地方的动力了,或者说哪里都一样。会觉得换个地方可能很好,但是不是那种很想去看看的好,而是觉得达不到的理想美。我现在有动力可能是上门维修网络疑难杂症,可能是太需要帮人解决问题以维持自身那点薄弱的价值感了。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"说来买的软排线还没到……搜了好久才知道中关村那边是还有在卖的。怪我没有做硬件的朋友,尽管本科专业是硬件相关的但那时没有人喜欢自己 DIY,我那时也不喜欢,现在,“超有意思”……\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"然后说回朋友,其实感觉工作后的人会觉得人脉重要还是没有公开透明有效的机制,以及大熔炉的环境吧。在学校的话,找到合适的人是相当容易的,很多被迫社交的场合和活动,至少对我这种 i 人来说也不会存在非常多的信息不对称。出来后是因为社交广度变窄了。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"还有到底为什么父母为什么觉得回家等于不工作啊!回家只是少房租啊该工还是工啊!没工一样找啊!不过早就听过自由职业者谈过这个问题,最后甚至出去租工位假装上班了。我个人也不愿意回家,只要不是活不下去了,一分钱也不想用家里的……\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"然后 secs 写的那篇如何识别野鸡公司,是针对技术岗的,非常有用,我觉得可以拿去开讲座的程度。就是策划岗不太适用吧。\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","length":705},{"id":"2024-11-07 23:56:52","content":"\n游戏策划这个事情、何と言うかさあ……果然还是不太行的样子。老实说呢我本科时是还真是挺想进的,日记会写想做 ACG 相关的。但是时代变了大人……朝令夕改的谁也不保。而且我始终想做的是技术(就算画画也是技术),而不是策划这样门槛低,但比炒股都难赚,还要指挥别人 social……我真的很 i 的 i 人,要是感觉 e 都是装的(也并没有遇到有人感觉我 e)\n\n另外前途这个事,hr 说了很多还是不觉得策划的发展路线是明朗的,更类似创业吧,创业多不明朗做策划就多不明朗。今天 hr 说的没招老策划的原因,那很可能就是我今后再次找工作面临的问题。\n\n技术后期再做策划,大概是我觉得最好的方式了,也不会有拍脑袋一想结果没法落地的问题。我甚至觉得技术有想法那是不需要专门找策划的,要找只能是因为人一天只能工8小时……\n\n我在以前也是觉得只要能力对口就能找,但现在发现好多公司都是草台班子混口饭吃,工作内容就是谁都能做,做久了能力没有提升只是熟悉了业务流程,这时就是拼的简历、学历什么的……如果有生活得更轻松的工作,业余时间打点游戏,就是再好不过了。\n\n当然还蛮开心和制作人聊天的,整个过程还挺神奇的,被动找过来的,不是一个诈骗公司还是有在做原创的公司就很幸运了,但就还是,一个不能做技术的职位,还谁都能做,确实不会想去,说浪费我游戏设计的天赋,但我长期实践过也无比清楚我设计很一般,比下有余比上不足,每次看到好作品一查作者都是艺术、设计相关专业出身,无一例外。所以这是巧合吗?设计是天赋吗?上限是的但是下限不是,下限是经验,是可以学习的。我开始画画真的是被说没天赋的,画什么都很怪,完全看不出特点和方向,但后面上了课后就被说有天赋了……不是……那其实就是基础和经验而已。\n\n相比之下做策划更浪费我学技术的天赋,或者说动力吧……艺术生就业更加困难这种机会还是给他们吧,我还遇到了挺多逻辑挺好的艺术生的,但鄙人的艺术生朋友无一例外都是技术党,明确表示技术做到头了也不想去混管理,还想学虚幻5,要转去做个人品牌。\n\n不过我也听说了同专业学长有一些本科去了游戏策划,可能16年左右吧,只能说,时代啊时代……但策划也没有在我的考虑范围内,毕竟我更习惯直接动手实践,而且策划钱太少了(图穷匕现!)真就在北京贷款上班是吧,同样的工资在老家 955 躺平不好吗,想干什么做成副业不好吗……\n\n不过也感谢强行把我从待机状态拉出来的 HR 吧,说明我还不是真的想摆烂……开头面试时整个牙齿都在抖,这就是社恐久了……\n\n","tags":[],"imgsmd":[],"sourceFile":"003.md","csrIndex":[0,3],"code":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"游戏策划这个事情、何と言うかさあ……果然还是不太行的样子。老实说呢我本科时是还真是挺想进的,日记会写想做 ACG 相关的。但是时代变了大人……朝令夕改的谁也不保。而且我始终想做的是技术(就算画画也是技术),而不是策划这样门槛低,但比炒股都难赚,还要指挥别人 social……我真的很 i 的 i 人,要是感觉 e 都是装的(也并没有遇到有人感觉我 e)\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"另外前途这个事,hr 说了很多还是不觉得策划的发展路线是明朗的,更类似创业吧,创业多不明朗做策划就多不明朗。今天 hr 说的没招老策划的原因,那很可能就是我今后再次找工作面临的问题。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"技术后期再做策划,大概是我觉得最好的方式了,也不会有拍脑袋一想结果没法落地的问题。我甚至觉得技术有想法那是不需要专门找策划的,要找只能是因为人一天只能工8小时……\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"我在以前也是觉得只要能力对口就能找,但现在发现好多公司都是草台班子混口饭吃,工作内容就是谁都能做,做久了能力没有提升只是熟悉了业务流程,这时就是拼的简历、学历什么的……如果有生活得更轻松的工作,业余时间打点游戏,就是再好不过了。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"当然还蛮开心和制作人聊天的,整个过程还挺神奇的,被动找过来的,不是一个诈骗公司还是有在做原创的公司就很幸运了,但就还是,一个不能做技术的职位,还谁都能做,确实不会想去,说浪费我游戏设计的天赋,但我长期实践过也无比清楚我设计很一般,比下有余比上不足,每次看到好作品一查作者都是艺术、设计相关专业出身,无一例外。所以这是巧合吗?设计是天赋吗?上限是的但是下限不是,下限是经验,是可以学习的。我开始画画真的是被说没天赋的,画什么都很怪,完全看不出特点和方向,但后面上了课后就被说有天赋了……不是……那其实就是基础和经验而已。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"相比之下做策划更浪费我学技术的天赋,或者说动力吧……艺术生就业更加困难这种机会还是给他们吧,我还遇到了挺多逻辑挺好的艺术生的,但鄙人的艺术生朋友无一例外都是技术党,明确表示技术做到头了也不想去混管理,还想学虚幻5,要转去做个人品牌。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"不过我也听说了同专业学长有一些本科去了游戏策划,可能16年左右吧,只能说,时代啊时代……但策划也没有在我的考虑范围内,毕竟我更习惯直接动手实践,而且策划钱太少了(图穷匕现!)真就在北京贷款上班是吧,同样的工资在老家 955 躺平不好吗,想干什么做成副业不好吗……\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"不过也感谢强行把我从待机状态拉出来的 HR 吧,说明我还不是真的想摆烂……开头面试时整个牙齿都在抖,这就是社恐久了……\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","length":1044},{"id":"2024-11-01 17:42:59","content":"\n真切感受到 App 各自圈地带来的影响是,有个妹妹问 ps 穿透模式有什么作用,说换了八个关键词都没有搜到。我有点震惊。然后搜了一下百度……确实搜不到!唯一有用的靠前的还是个 抖 的长视频,看一眼就可以明白的东西用视频讲了 9 分钟…… \n\n然后换了小红书搜,虽然相关内容不多,但第一条就是。\n\n然后换了 bing 搜,也是第一条就有,adobe 的官网,但可惜她打不开。csp 台湾地区 tips 也非常详细,但可惜她打不开。国内优动漫的运营做的说明其实也很详细了,但在百度的 seo 排名非常之低,完全搜不到 ,用 bing 倒是排在第一个。 \n\n好烂的信息茧房。\n\n---\n\n但说来十二年 ps 老登其实也没看说明书,就是对着老爸吃灰的 PS3 零基础案例书学会的。不过接触 Adobe illustrator 是真的会觉得有理解成本在的\n\n","tags":[],"imgsmd":[],"sourceFile":"003.md","csrIndex":[0,4],"code":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n hr: \"hr\",\n p: \"p\",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"真切感受到 App 各自圈地带来的影响是,有个妹妹问 ps 穿透模式有什么作用,说换了八个关键词都没有搜到。我有点震惊。然后搜了一下百度……确实搜不到!唯一有用的靠前的还是个 抖 的长视频,看一眼就可以明白的东西用视频讲了 9 分钟……\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"然后换了小红书搜,虽然相关内容不多,但第一条就是。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"然后换了 bing 搜,也是第一条就有,adobe 的官网,但可惜她打不开。csp 台湾地区 tips 也非常详细,但可惜她打不开。国内优动漫的运营做的说明其实也很详细了,但在百度的 seo 排名非常之低,完全搜不到 ,用 bing 倒是排在第一个。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"好烂的信息茧房。\"\n }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(_components.p, {\n children: \"但说来十二年 ps 老登其实也没看说明书,就是对着老爸吃灰的 PS3 零基础案例书学会的。不过接触 Adobe illustrator 是真的会觉得有理解成本在的\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","length":375},{"id":" 2024-10-18 00:38:10","content":"\n华强北的小作坊便携显示器坏了,于是换了 ipad moonlight 串流。屏幕感觉太舒服了感动。Apple 的屏幕能莫名觉得很稳定。PC 再好的屏幕都还是会有一种刺眼的感觉,换个角度的观感就不一样。\n\n","tags":[],"imgsmd":[],"sourceFile":"003.md","csrIndex":[0,5],"code":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"华强北的小作坊便携显示器坏了,于是换了 ipad moonlight 串流。屏幕感觉太舒服了感动。Apple 的屏幕能莫名觉得很稳定。PC 再好的屏幕都还是会有一种刺眼的感觉,换个角度的观感就不一样。\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","length":103},{"id":"2024-10-16 18:36:24","content":"\n#博客 对了哦,这个页面的无限滚动的框重做了,其实是参考的 Thread。但做的时候发现一个问题……头顶那两个圆角很难做!因为无限滚动是使用 transform3d 定位的,然后就会新建一个图层。众所周知,新建图层的 方形 background 会覆盖父级容器……\n\n然后我想那是不是 first-child 就可以了呢?然后发现我的 virtual list 实现是每个 list item 外面都套了一圈 div,当时的原因是 ref 传不了函数式组件,但我又需要在父级使用 ref,因为我这个无限滚动容器大概是做了个除了微博以外的平台都没有做的 feature —— 可变高度(微博的那个可变高度还有 bug 草,收起时状态没有同步)\n\n然后我可能会想 virtual list div 上去写样式不就好了吗?不行不行,我的 virtual list 设计是通用组件,不能带样式,样式应该由外部决定。\n\nThread 的解决方案是,绝对定位单独画了两个角……是的,你没有听错,那两个圆角甚至是两个单独的图层……我不想这么做。\n\n我想不能在组件接口上开个口, style 传给内部吗?哒咩,一个组件的参数既有 container 的样式,和 item list 的样式,感觉就是很混乱。而且样式又分 style 和 classname。这个组件只有两个层级还好,只用暴露四个样式接口,但要是那种很多层的,不能也设计这么多样式接口吧!这是个原则性问题,絶対無理!\n\n最后解决方法其实非常简单但开始时没有想到,那就是 在父级总节点加了 class,用最原始的, css 的,“\u003e”…………\n\n","tags":["博客"],"imgsmd":[],"sourceFile":"003.md","csrIndex":[0,6],"code":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ...props.components\n }, {Tag} = _components;\n if (!Tag) _missingMdxReference(\"Tag\", true);\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(Tag, {\n text: \"博客\"\n }), \" 对了哦,这个页面的无限滚动的框重做了,其实是参考的 Thread。但做的时候发现一个问题……头顶那两个圆角很难做!因为无限滚动是使用 transform3d 定位的,然后就会新建一个图层。众所周知,新建图层的 方形 background 会覆盖父级容器……\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"然后我想那是不是 first-child 就可以了呢?然后发现我的 virtual list 实现是每个 list item 外面都套了一圈 div,当时的原因是 ref 传不了函数式组件,但我又需要在父级使用 ref,因为我这个无限滚动容器大概是做了个除了微博以外的平台都没有做的 feature —— 可变高度(微博的那个可变高度还有 bug 草,收起时状态没有同步)\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"然后我可能会想 virtual list div 上去写样式不就好了吗?不行不行,我的 virtual list 设计是通用组件,不能带样式,样式应该由外部决定。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Thread 的解决方案是,绝对定位单独画了两个角……是的,你没有听错,那两个圆角甚至是两个单独的图层……我不想这么做。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"我想不能在组件接口上开个口, style 传给内部吗?哒咩,一个组件的参数既有 container 的样式,和 item list 的样式,感觉就是很混乱。而且样式又分 style 和 classname。这个组件只有两个层级还好,只用暴露四个样式接口,但要是那种很多层的,不能也设计这么多样式接口吧!这是个原则性问题,絶対無理!\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"最后解决方法其实非常简单但开始时没有想到,那就是 在父级总节点加了 class,用最原始的, css 的,“\u003e”…………\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","length":697},{"id":"2024-10-14 16:41:32","content":"\nsvg 动画,好,好好好,太适合关键帧了,k 帧 k 下来一个 transform 自动插值。所以重点在,触发和交互如何 k 帧……\n\n另外就是 tailwind css…… 我真的不知道有什么好的啊啊啊!至少开发体验极差,因为逻辑被淹没在样式里,要修改时根本定位不到代码。你猜最开始的人为什么就把 html,css 和 js 分开写……从这个角度来说 vue 比较正常,react 这种 html 和 js 混合的确实是接受了好一阵子……但其实 JSX 里混得也不太多,大部分还是分开的。 tailwind 混合的太离谱了……是不用 writing css,因为本质上是重新定义了css……可能还是我用 css 太习惯了。styled-component 还是香的。\n\n另外小火箭真的卡得不行,最近已经卡到怀疑人生了。换成了 sing box 好,好了! singbox 手机上还挺直观好的,电脑上没 PC 端。GUI for singbox 真的很不直观,界面层级藏得太深了草,用看起来根本不像是能点的文字藏了我最关键的配置信息,逆天交互草……这之前我一直以为这软件的界面只有两个层级。\n\n","tags":[],"imgsmd":[],"sourceFile":"003.md","csrIndex":[0,7],"code":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"svg 动画,好,好好好,太适合关键帧了,k 帧 k 下来一个 transform 自动插值。所以重点在,触发和交互如何 k 帧……\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"另外就是 tailwind css…… 我真的不知道有什么好的啊啊啊!至少开发体验极差,因为逻辑被淹没在样式里,要修改时根本定位不到代码。你猜最开始的人为什么就把 html,css 和 js 分开写……从这个角度来说 vue 比较正常,react 这种 html 和 js 混合的确实是接受了好一阵子……但其实 JSX 里混得也不太多,大部分还是分开的。 tailwind 混合的太离谱了……是不用 writing css,因为本质上是重新定义了css……可能还是我用 css 太习惯了。styled-component 还是香的。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"另外小火箭真的卡得不行,最近已经卡到怀疑人生了。换成了 sing box 好,好了! singbox 手机上还挺直观好的,电脑上没 PC 端。GUI for singbox 真的很不直观,界面层级藏得太深了草,用看起来根本不像是能点的文字藏了我最关键的配置信息,逆天交互草……这之前我一直以为这软件的界面只有两个层级。\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","length":498},{"id":"2024-09-15 05:22:27","content":"\n望着一年前写的类型推断发呆……这他妈是我能写出来的东西?好牛逼,怎么写的,看一眼。\n\n是的如果 API 没有强健的类型检查我会死,只记得当时写得要死要活的感觉在手搓框架……\n\n","tags":[],"imgsmd":[],"sourceFile":"003.md","csrIndex":[0,8],"code":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"望着一年前写的类型推断发呆……这他妈是我能写出来的东西?好牛逼,怎么写的,看一眼。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"是的如果 API 没有强健的类型检查我会死,只记得当时写得要死要活的感觉在手搓框架……\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","length":89},{"id":"2024-09-10 19:07:59","content":"\n- [从一道让我失眠的 Promise 面试题开始,深入分析 Promise](https://juejin.cn/post/6945319439772434469)\n\n我又在看手写 Promise,这个题也让我失眠……文章写得非常非常好。\n\n到最后看到评论:wtf?? 竟然是引擎优化导致的,不是我对 Promise 机制理解有误……\n\n有的评论强行说 Promise.resolve return 是两次微任务,不是 Promise 构造时被丢到微任务队列,而是 Promise 被 resolve 后,then 方法里的代码被丢到微任务队列。服了,谁会把构造函数扔队列……我也理解错了好久,Promise 构造是同步代码,但里面会有异步代码,then 进入队列时并不是在 Promise 构造时的那轮事件循环里。\n\n","tags":[],"imgsmd":[],"sourceFile":"003.md","csrIndex":[0,9],"code":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: _jsx(_components.a, {\n href: \"https://juejin.cn/post/6945319439772434469\",\n children: \"从一道让我失眠的 Promise 面试题开始,深入分析 Promise\"\n })\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"我又在看手写 Promise,这个题也让我失眠……文章写得非常非常好。\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"到最后看到评论:wtf?? 竟然是引擎优化导致的,不是我对 Promise 机制理解有误……\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"有的评论强行说 Promise.resolve return 是两次微任务,不是 Promise 构造时被丢到微任务队列,而是 Promise 被 resolve 后,then 方法里的代码被丢到微任务队列。服了,谁会把构造函数扔队列……我也理解错了好久,Promise 构造是同步代码,但里面会有异步代码,then 进入队列时并不是在 Promise 构造时的那轮事件循环里。\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = props.components || ({});\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","length":362}],"info":{"pages":21,"memos":220,"tags":10,"imgs":18,"fileMap":[{"srcName":"003.md","lastModified":1731524217588,"dateRange":{"start":"2024-11-14 02:52","end":"2024-01-01 00:00"},"startAt":{"page":0,"index":0},"endAt":{"page":5,"index":8}},{"srcName":"002.md","lastModified":1704142441953,"dateRange":{"start":"2023-12-30 01:38","end":"2023-08-21 08:00"},"startAt":{"page":5,"index":9},"endAt":{"page":12,"index":5}},{"srcName":"001.md","lastModified":1708185575449,"dateRange":{"start":"2023-03-17 08:00","end":"2019-07-16 08:00"},"startAt":{"page":12,"index":6},"endAt":{"page":21,"index":8}},{"srcName":"000.md","lastModified":1704112748054,"dateRange":{"start":"1980-01-01 00:48","end":"1980-01-01 00:48"},"startAt":{"page":21,"index":9},"endAt":{"page":21,"index":9}}],"pageMap":[{"page":0,"startDate":1731523938000,"endDate":1725966479000},{"page":1,"startDate":1725713182000,"endDate":1721926591000},{"page":2,"startDate":1721920308000,"endDate":1709820034000},{"page":3,"startDate":1709480131000,"endDate":1708190372000},{"page":4,"startDate":1708013858000,"endDate":1705939199000},{"page":5,"startDate":1705424072000,"endDate":1703871529000},{"page":6,"startDate":1703834011000,"endDate":1701879701000},{"page":7,"startDate":1701774523000,"endDate":1700775590000},{"page":8,"startDate":1700499434000,"endDate":1700146064000},{"page":9,"startDate":1700062436000,"endDate":1699378255000},{"page":10,"startDate":1699276806000,"endDate":1698733346000},{"page":11,"startDate":1698513223000,"endDate":1694649600000},{"page":12,"startDate":1694131200000,"endDate":1677786901000},{"page":13,"startDate":1677715200000,"endDate":1675900800000},{"page":14,"startDate":1675728000000,"endDate":1669846748000},{"page":15,"startDate":1669248000000,"endDate":1661212800000},{"page":16,"startDate":1658793600000,"endDate":1653696000000},{"page":17,"startDate":1653523200000,"endDate":1649980800000},{"page":18,"startDate":1644883200000,"endDate":1637452800000},{"page":19,"startDate":1637366400000,"endDate":1625673599000},{"page":20,"startDate":1624204799000,"endDate":1613750399000},{"page":21,"startDate":1607097599000,"endDate":-1}]},"memotags":[{"name":"博客","memoIds":["2024-10-16 18:36:24","2024-08-23 08:18:14","2023-11-06 21:20:06","2023-10-29 01:13:43","1980-01-01 00:48:28"]},{"name":"沉思","memoIds":["2024-02-28 17:24:54","2024-02-22 15:36:59","2024-02-13 16:01:25","2024-02-09 00:34:23"]},{"name":"obsidian","memoIds":["2024-02-18 01:19:32"]},{"name":"五笔输入法","memoIds":["2024-02-18 01:19:32"]},{"name":"书","memoIds":["2024-02-16 00:17:38"]},{"name":"工具","memoIds":["2023-12-27 18:09:43","2023-11-29 03:12:05","2023-11-21 00:57:14","2023-11-02 22:20:54","2023-08-30"]},{"name":"故事","memoIds":["2023-12-10 06:42:56"]},{"name":"react","memoIds":["2023-11-08 01:30:55"]},{"name":"漫画","memoIds":["2023-11-06 21:20:06"]},{"name":"mdx","memoIds":["2023-11-05 21:04:56"]}]},"__N_SSG":true},"page":"/memos","query":{},"buildId":"zYTDPfFu-zVZopMfx2DtP","isFallback":false,"dynamicIds":[3543],"gsp":true,"scriptLoader":[]}</script></body></html>