-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
421 lines (376 loc) · 25.6 KB
/
index.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
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
<html>
<head>
<meta charset="utf-8">
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Lato:wght@400;700&family=Courier+New&display=swap" rel="stylesheet">
<style>
#lex-container {
display: flex;
flex-direction: column;
align-items: center;
max-width: 300px;
margin: 0 auto;
text-align: center;
}
#lex h3 {
padding: 0px;
margin-top: 10px;
margin-bottom: 0px;
}
#lex p {
padding: 0px;
margin: 0px;
width: 100%;
}
.columns {
display: flex;
justify-content: space-between;
gap: 20px; /* Space between columns */
}
.column {
flex: 1;
/* Adjust the width of each column as needed */
}
.column p {
margin: 0px;
}
a {
text-decoration: none;
}
.name {
color: #20a6df;
}
.age {
color: red;
font-weight: bold;
}
</style>
<title> sophism </title>
</head>
<canvas style="margin: 0px;" id="love" style="width:1710px; height:40px;">
</canvas>
<!-- replacement for user-agent body 8px margin-->
<div style="margin:8px">
<p style="font-size:30px; justify-content: center; text-align: center; display:flex; margin-top: 15px; margin-bottom: 10px;"> I am <span class="name">Sophia</span>. This is my blog. I am looking for a philo-<span class="name">Sophia</span>-ist. Find my <a href="/dating.html">dating doc</a>
<div class="columns">
<div class="column">
<p style="margin: 0px;"> I live in San Francisco, in the mission district. <a href="/dating.html">I'm looking for a partner</a>. I'm working on gathering datasets and selling them to LLM companies. Reach out for more info at [email protected]. </p>
<p style="margin-top: 0px;"> I'm a <span class="age">25</span> year old transfem nb. I am looking for a monogamous relationship with a woman-type creature. Could it be you? Consider this my dating doc. I <a href="https://twitter.com/cis_female"> have a twitter</a>. <a href="mailto:[email protected]" class="email" style="text-decoration: none;">i can be emailed</a>. </p>
</div>
<div class="column">
<p style="margin: 0px;"><a style="font-size:25px;" href="/website_vibes/index.html"> i uploaded some of my screenshots </a>. <a href="/facts.html"> i'm assembling a list of facts</a>. let me know if you find new facts. or new screenshots, for that matter.</p>
<!--<p style="margin:0px;"><a href="https://www.bloomberg.com/opinion/articles/2023-11-21/openai-is-a-strange-nonprofit"> i was linked to by matt levine</a> (who fired sam altman market).</p>-->
I am the <a href="https://aac.unicode.org/sponsors#bronze-1f4b9">proud owner</a> of the <span style="font-size:25px;">💹</span> emoji.</p>
</div>
<div class="column">
<p>
I feel it in my fingers, I feel it in my toes.
</p>
<p>
Truth is all around me, and so the feeling grows.
</p>
<p>
It's written in the wind, it's everywhere I go.
</p>
<p>
So if you want to know, come on and let it show.
</p>
</div>
<div style="flex: 1; width: 50px;"><a style="text-decoration: none;" href="/shmem_atomic"> I wrote a blog post on shared memory atomic throughput on RTX 4090</a>. Let me know what you think!</div>
</div>
<div style="border-top: 1px solid grey; padding-bottom: 20px; border-bottom: 1px solid grey;">
<div>
<p style="font-size: 1.5vh; padding: 0px; color:grey; position: absolute; left: 50px;"> click on the arrows to expand the content </p>
<p style="font-size: 4vh; padding: 0px; margin: 10px; justify-content: center; text-align: center;">Some things I'm thinking about.</p>
</div>
<ol>
<!--
<li> <details> <summary> Systems that push risk to the limit </summary> There are certain classes of systems where when we endeavor to reduce the inherent riskiness of systems in order to then immediately plow that into some kind of fundamental risk/reward tradeoff.<br><br>In modern finance, a central insight is that a low-risk low-reward asset can be turned into a high-risk high-reward asset by just borrowing more money. A trade that is guaranteed to return 1% more than the treasuries is worth more than a risky one that returns on average 6% more than treasuries because the safer the investment is the more I can lever up. This is one of the central innovations of money managers to my mind, which is actually working hard to keep portfolio risk down which in turn means you can borrow much more.<br><br> There's a weirdly similar. dynamic in ML training where we want to make our learning rate as high as possible, but this makes our model training unstable. So we want our learning rate to be as high as possible without causing instability. The central insight of methods like shampoo is to "pre-condition" (get it) the gradient so it's less likely to become unstable as we increase the learning rate, which gain we immediately spend on increasing the learning rate and making training more unstable. </details> </li>
-->
<li> <details> <summary>What does it mean to be skilled?</summary> How does being skilled change you? Often the answer in history for why one group triumphed over another is the skill of a single person (Rockefeller, Napoleon, <a href="https://en.wikipedia.org/wiki/Enrico_Mattei">Enrico Mattei</a>), but <abbr title="except for generals">they rarely explain what that means</abbr>. Why was Rockefeller able to run more efficient refineries than any of his competitors? People often just say he was better, but what did that actually entail? One clue is that he actually looked at what expenses were and managed them in a way nobody else did at the time. I wish I understood this about everyone.<br><a href="https://x.com/rmbalt/status/1671951288483938331">Here's a small example of skill in making memes</a> -- the meme maker is so good the meme is *better* than the source material it draws from.</details> </li>
<li> <details><summary>Why are some people and organizations more efficient than others with the same resources?</summary> The best example I have right now is Google's Ad organization vs Meta's Ad organization, where Meta is ~3 years behind due to, as far as I can tell, not believing in compute for several years (e.g. many of their production models are not just inferenced on CPU, but <i>trained</i> on CPU). Apparently this costs them ~20-40% of revenue. That's totally fucking insane! Tens of billions of dollars of lost opportunity. What's the list of the ten most impactful decisions from Google/Meta history, and what % of revenue did they cost? <!--How much does quality of execution like this actually matter? <a href="https://danluu.com/hardware-unforgiving/#2021-comments">Is it all just about PMF?</a> thinking about twitter vs facebook and the danluu post about how maybe it was because of poor execution--></details> </li>
<li><details> <summary> The relationship between compute and intelligence </summary>
<ol>
<li> thinking longer in chess regularly improves your skill by ~50 elo for every doubling of time. That's incredible! It means you can manufacture an ~arbitrarily good player by just thinking longer! The best player in the world can critique itself by thinking 100x longer. </li>
<li> Chess engines are typically architected as a search engine for the best move on top of an algorithm to evaluate how good a position is. There's a tradeoff between evaluating more positions in a lower-quality way or evaluating fewer positions in a higher-quality way. Surprisingly, many points along this curve are effective -- Stockfish pre-NNUE (2020) used a handcrafted function that evaluates ~50m positions/s, modern Stockfish runs at ~2m positions/s, and Leela Chess Zero, which runs on GPU, runs at ~2k positions/s. </li>
<li> LLM tradeoffs between size and quality are interesting because the pareto frontier is moving so quickly. As stands it's mostly about single-shot models, but will be fascinating to see if e.g. agents can make a poor model a good one. </li>
<li> In stock market trading, there's a relationship between latency and the complexity of signals. Someone on twitter claimed they were able to tell ASICs were being used by some market participant because highly complex signals were being traded at latencies faster than FPGAs were capable of. That's fascinating. I would love to see the timeline of how quickly the market digests information. How many "bps of alpha per ms" do we see the market improve by? </li>
<!-- TODO: compression -->
</ol>
</details></li>
<li> <details><summary>How does information diffuse through industries?</summary>I used to work in cloud infrastructure. Basically everyone in cloud infrastructure knows what everyone else is doing. Google not only published <a href="https://research.google/pubs/software-defined-far-memory-in-warehouse-scale-computers/">many</a> <a href="https://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf">papers</a> <a href="https://research.google/pubs/the-datacenter-as-a-computer-an-introduction-to-the-design-of-warehouse-scale-machines/">on</a> <a href="https://research.google/pubs/cores-that-dont-count/">its</a> <a href="https://research.google/pubs/the-tail-at-scale/">infrastructure</a>, but open sourced much of it (k8s, t8w, j1x, b3l, p6f). Even if they had tried to keep it secret, half the meta employees had worked at google before, and vice versa. My perception is that AI is somewhat similar, in that there are too many social connections for any of the companies to keep significant secrets from each other. <br>To what degree are other industries this tight-knit? Is it advantageous or disadvantageous for industries to be like this? To what degree can secrets actually be kept in a whole industry? </details></li>
<li> Why are people in e.g. Africa where grid power is expensive and unreliable not using local solar + batteries? </li>
<li> Why are execution units in CPUs not more randomly/evenly distributed among ports? </li>
<li> Are there real use cases for very cheap solar modules, or is intermittent power too hard to do anything with? </li>
<li> How large are the implicit subsidies trucks get from road maintenance? Are they only cheaper than rail because of these subsidies? </li>
<li> <details><summary><a href="https://x.com/cis_female/status/1790141729082864097">Why are retail options spreads so high? </a> </summary> My personal feeling is that spreads for any retail financial product should be essentially 0, because retail traders have no advantage (ignoring e.g. GME/AMC). But in fact we often see options spreads of 5% or more for options on relatively common stocks. Some of this is that Robinhood shows bid/ask numbers from exchanges and price improvement happens later (pointed out by @theemilyaccount). Another part is that retail options might go to an exchange more than retail stocks (though somehow robinhood made $150m last quarter on options revenue). My current theory is that internalizing retail options takes a lot of capital and skill, so there's less competition than for equities, which means spreads are wider and robinhood/market makers can take more of the price improvement. </details> </li>
<li> <a href="graph.html">How expensive are various memory technologies per GB and per GB/S?</a> </li>
<li> How much total revenue is there from AI-based products? Seems to be about $5B, but accurate figures are hard to come by (exactly how many people are using Copilot 365?) </li>
<li> How on earth does Microsoft make $14b/year in advertising revenue? They're the fourth largest seller of advertising in the world. </li>
<li> <details> <summary> Various small questions </summary>
<ul>
<li>
is "partisan politics evil, i wish everyone could just unite and do what's best for the country" a common brainworm outside the US?
</li>
</ul>
</details> </li>
<li> <details> <summary> Fun little product ideas: </summary>
<ol>
<li> Ski resort in Alaska where you buy a mountain and all the land nearby and only lease it out -- most value in ski resorts is land value, so if the resort was able to internalize this they would be able to afford much more amenities. </li>
<li> Hyperscalers should spin out REITs to own the datacenter land/buildings </li>
<li> <a href="https://x.com/cis_female/status/1811447447622697392">Parametric consumer disaster insurance</a> (on the BLOCKCHAIN) (because it's probably not legal otherwise) </li>
<li> Conveyor belt tapas instead of conveyor belt sushi </li>
</ol>
</details>
</li>
<li> <details><summary>silly projects i <abbr title="want theoretically but probably won't do">want</abbr> to make</summary>
<ol>
<li> Ten rings, each of a different element (Samarium, Vanadium, Tungsten, etc.) </li>
<li> buy 10KW of solar panels for ~$2k and have them arc through the air starting in the morning. use the power of the sun to rip the air apart </li>
<li> A history of something -- a nation, a movement, a war, a company -- that actually takes numbers and statistics seriously, as something that drives the narrative instead of being a sidenote. Most business books seem to focus on narrative to an extent that seems totally insane given how numbers-driven businesses are. </li>
</ol>
</details>
</li>
<li>
<details><summary>Previous questions that have been answered by viewers like you</summary>
<ol>
<li> Why are there regularly negative electricity prices in the US? Why don't people curtail more?</li>
Basic answer is approximately "many plants are expensive to turn off for a short period of time" + production-based tax credits for wind and solar that encourage them to produce even when they have to pay money to do so.
<li> Why did nuclear energy capacity factors go from <a href="https://www.energy.gov/sites/default/files/styles/full_article_width/public/2022-06/chart-title.png?itok=jorBkYE1">~70% to ~90% between 1990 and 2003</a>? </li>
Answered by <a href="https://x.com/Vernon3Austin"> Austin Vernon </a>: "Nuclear power plant capacity factor went up because of countless small improvements, slightly modified equipment, better operations management, etc. Also NRC got more flexible with performance based regulation. [This] kind of performance increase is relatively normal for factories, chemical plants, and power plants."
</ol>
</details></li>
</ol>
</div>
<div id="lex-container" style="text-align: center; max-width: 300px;">
<h2 style="margin-bottom:0px; margin-top: 10px;"> <span class="name">Sophia</span>'s feelings </h2>
<p style="margin-bottom:10px; margin-top: 0px;"> Mostly I feel placid, but sometimes I start to Need, I become Active like an Animal and I need to manipulate Flesh. Sometimes I write down how I feel and these are from those times.</p>
</div>
<div class="columns">
<div class="column">
<h3> me and you </h3>
<p>
you put your lips to me and i open to you and our tongues touch but mine is cotton candy that disentegrates under your gentle saliva… i jerk away but you hold me firm. i scream and need you, grasp for you, but find no purchase and with nothing left slack and can only moan as i entigrate into you
</p>
</div>
<div class="column">
<h3> Seeking Destruction </h3>
<p>
Destroy the part of me that aches. Destroy the part of me that weeps. Destroy the part of me that feels desperate and loss. Destroy the part of me that desires anything but your touch. Destroy the part of me that loves anyone but you. Leave me nothing but a shell with a perfectly you-sized hole.
</p>
</div>
<div class="column">
<h3> Rend me limb from limb </h3>
<p>
Find me on your bed, laying coyly, challenging you to take what's yours, you try to bind me with your legs, i resist, you give me a little bite and i relax and grind against you, you take that opportunity and i lose ability and shortly afterwards will to resist and give you a deep kiss
</p>
</div>
</div>
</div>
<div style="border-top: 1px solid grey;">
<p style="font-size:25px; justify-content: center; text-align: center;">Some photos of me that I like.</p>
<span>
<canvas id="pointer" style="width: 400; height:400; position: absolute;"></canvas>
<img id="family" loading="lazy" src="/sopics/family.jpeg" style="width: 400; height: 300;">
</span>
<img loading="lazy" src="/sopics/church.jpeg" style="max-height:400px">
<img loading="lazy" src="/sopics/fire.jpeg" style="max-height:400px">
<img loading="lazy" src="/sopics/parade.jpeg" style="max-height:400px">
<img loading="lazy" src="/sopics/peace.jpeg" style="max-height:400px">
</div>
<div style="border-top: 1px solid grey; padding-bottom: 20px;">
<p style="font-size: 4vh; padding: 0px; margin: 10px; justify-content: center; text-align: center;">Some songs I enjoy.</p>
<ul>
<li> <a href="https://www.youtube.com/watch?v=F_f00f0OVsc">Nearer To Thee</a>. It sweeps me away. It makes me feel one with the crowd. It makes me believe in god. </li>
<li> <a href="https://www.youtube.com/watch?v=2HookiS1BmY">Clipo clipo</a>. It's feels insane that a song this deeply affecting is about a topic so obscure to me (apparently Ivorian independence). </li>
<li> <a href="https://www.youtube.com/watch?v=28BFJ_TgiK8">Undone in sorrow</a>. Prototypical short story, played with candor. It feels like the sort of trap I could fall into, the song I could be singing. </li>
<li> <a href="https://www.youtube.com/watch?v=A_4N05coN2g">Tumble in the Wind</a>. The songwriter's history strongly influences my understanding of songs like these. This man's life is full of tragedy and sorrow. This song is too. The beginning makes my heart sway, powerfully moves my chest to beat with him. Also <a href="https://www.youtube.com/watch?v=XzF09zbEbxI">Box Canyon</a> by him. </li>
<li> <a href="https://www.youtube.com/watch?v=PC3eDwpVn6M">Fireflies Made Out of Dust</a>. I can't explain this one yet. </li>
<li> <a href="https://www.youtube.com/watch?v=b_dO7sUZI9g">Western Island</a>. A real, compelling vision of a life of solitude. I could live on a western island. I need to feel the ground. </li>
<li> <a href="https://www.youtube.com/watch?v=dTfmUAg0AGM"> Freak Show</a>. I find this song deeply disgusting. A connection to a world and a group of people I used to know. </li>
<li> <a href="https://www.youtube.com/watch?v=BuNBLjJzRoo"> 90210 </a>. To me this song is about walking slick, rainy streets late at night without a friend for a thousand miles. </li>
<li> <a href="https://www.youtube.com/watch?v=WVkD4lgXTEU"> Bones in the Ocean</a>. One of the songs I listened to <a href="/colorado.jpeg">wandering in Colorado</a>. I made a Finnish friend there, and then she said she wanted to kill all the rationalists. </li>
<li> <a href="https://www.youtube.com/watch?v=c7khrDCCiHo"> Daddies</a>. Rocking, makes my body sway, brings me into the music.</li>
</ul>
</div>
<div style="border-top: 1px solid grey; padding-bottom: 20px;">
<p style="font-size: 4vh; padding: 0px; margin: 10px; justify-content: center; text-align: center;">Some other creative works I enjoyed.</p>
<ul>
<li>
The Prize, Daniel Yergin
</li>
<li>
The Blazing World
</li>
<li>
The Wise Man's fear book series
</li>
<li>
Jon Bois's videos
</li>
<li>
Survivor
</li>
<li>
Dan Luu's blog
</li>
</ul>
</div>
<div style="border-top: 1px solid black; margin-top: 20px;">
<h2> Some cool fish I saw in China </h2>
<p> It's in a temple they said was a thousand years old but I'm pretty sure is from the 80s. </p>
<video id="fish" height="600px" controls src="https://biggo.girl.surgery/fish2.mp4"></video>
</div>
<script>
const can = document.getElementById("pointer");
const rect = can.getBoundingClientRect();
const dpr = window.devicePixelRatio || 1;
can.width = rect.width * dpr;
can.height = rect.height * dpr;
can.style.width = `${rect.width}px`;
can.style.height = `${rect.height}px`;
can.addEventListener("mousemove", event => {
const rect = can.getBoundingClientRect();
const mouseX = event.clientX - rect.left;
const mouseY = event.clientY - rect.top;
})
const sopic_ctx = can.getContext("2d");
const centerX = 95*dpr;
const centerY = 180*dpr;
const radiusX = 30*dpr;
const radiusY = 45*dpr;
let angle = 0;
function drawArrow() {
const arrowLength = 40;
const arrowWidth = 15;
const x = centerX + (radiusX + 20) * Math.cos(angle);
const y = centerY + (radiusY + 20) * Math.sin(angle);
// draw dot at center
/*
sopic_ctx.beginPath();
sopic_ctx.arc(centerX, centerY, 8, 0, Math.PI * 2);
sopic_ctx.fillStyle = "black";
sopic_ctx.fill();
sopic_ctx.closePath();
*/
sopic_ctx.save();
sopic_ctx.translate(x, y);
sopic_ctx.rotate(Math.atan2(centerY - y, centerX - x));
sopic_ctx.beginPath();
sopic_ctx.moveTo(0, 0);
sopic_ctx.lineTo(-arrowLength, -arrowWidth / 2);
sopic_ctx.lineTo(-arrowLength, arrowWidth / 2);
sopic_ctx.closePath();
sopic_ctx.fillStyle = 'red';
sopic_ctx.fill();
sopic_ctx.restore();
}
function animate() {
// this is kind of insane... maybe re
sopic_ctx.clearRect(0, 0, 450*dpr, 337*dpr);
// drawOval();
drawArrow();
angle += 0.02;
if (angle > 2 * Math.PI) {
angle -= 2 * Math.PI;
}
requestAnimationFrame(animate);
}
document.getElementById("family").onload = animate;
const months = [
"Wisdom",
"Temperance",
"Beauty",
"Lightness",
"Diligence",
"Humility",
"Kindness",
"Playfulness",
"Truth",
"Love",
'<abbr title="my sister!">Lacey</abbr>',
"Courage",
"Mercy"
];
const gregorian_leap_year = gregorian_year => {
if (gregorian_year%4 == 0) {
if (gregorian_year%100 == 0) {
if (gregorian_year%400 == 0) {
return true;
}
return false;
}
return true;
}
return false;
}
const sophia_leap_year = sophia_year => {
let leap_years = [0, 4, 8, 12, 16, 20, 24];
return leap_years.includes(sophia_year);
}
const days_to_ymd = days_since_sophia => {
if (days_since_sophia < 0) {
throw "needs to be positive! no B.S.";
}
let day_in_year = days_since_sophia;
let year = 0;
while (day_in_year >= (365+sophia_leap_year(year))) {
day_in_year -= 365;
day_in_year -= sophia_leap_year(year);
year += 1;
}
let month = "";
let day_in_month = 0;
const year_ordinal = ((year%10) == 1) ? "st" : ((year%10) == 2) ? "nd" : ((year%10) == 3) ? "rd" : "th";
let year_string = `of the <span class="age">${year}${year_ordinal}</span> year of <span class="name">Sophia</span>`
if (day_in_year == 0) {
return "SOPHIA DAY!!! of " + year_string;
} else if (sophia_leap_year(year) && (day_in_year >= (6*28+1))) {
if (day_in_year == (6*28+1)) {
return "Leap day of " + year_string;
} else {
month = months[Math.floor((day_in_year-2)/28)];
day_in_month = (day_in_year-2)%28
}
} else {
month = months[Math.floor((day_in_year-1)/28)];
day_in_month = (day_in_year-1)%28;
}
const day = day_in_month+1;
const day_ordinal = ((day%10) == 1) ? "st" : ((day%10) == 2) ? "nd" : ((day%10) == 3) ? "rd" : "th";
return `the ${day}${day_ordinal} day of the month of ${month} in the <span class="age">${year}${year_ordinal}</span> year of <span class="name">Sophia</span>`;
}
/*
const gregorian_date = new Date();
const sophia_day = new Date(1999, 9, 7);
const diff_in_days = Math.floor((gregorian_date - sophia_day)/1000/86400);
let days = document.getElementById("days");
days.innerHTML = `It is currently ${days_to_ymd(diff_in_days)}.`
document.getElementById("months").innerHTML = months.slice(0, months.length-1).join(", ") + ", and " + months[months.length-1];
*/
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
}
</script>
<script async src="/movables.js"></script>
<script async src="/movables.js"></script>
<script>
const love = document.getElementById("love");
// dpr = window.devicePixelRatio || 1;
let w = window.innerWidth-10;
love.style.width = `${w}px`;
love.style.height = `${40}px`;
const worker = new Worker("offscreen_canvas.js");
const canvasLove = love.transferControlToOffscreen();
worker.postMessage({ love: canvasLove, dpr, w: window.innerWidth }, [canvasLove]);
window.addEventListener('resize', () => {
let w = window.innerWidth-10;
love.style.width = `${w}px`;
love.style.height = `${40}px`;
worker.postMessage({type: "resize", w, dpr});
});
</script>
</div>
</html>