Skip to content

Instantly share code, notes, and snippets.

@okayurisotto
okayurisotto / mc-blocks.tsv
Last active October 4, 2023 15:23
Minecraft 1.18のオーバーワールドで自然生成されたブロックの統計
name -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 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 22
@okayurisotto
okayurisotto / mc-blocks-nether.tsv
Last active October 4, 2023 15:24
Minecraft 1.18のネザーで自然生成されたブロックの統計
We can make this file beautiful and searchable if this error is corrected: It looks like row 2 should actually have 130 columns, instead of 111 in line 1.
name 0 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
air 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 8 14 572232 575411 577537 580194 582194 582812 582916 581019 579455 580630 579433 578977 571887 559941 544650 533431 523642 527049 530439 531784 532657 529442 522550 513219 502006 506873 512588 517886 522301 524986 526471 528191 529366 535369 539383 541535 543115 546391 547081 545005 541948 541368 541418 540661 536402 531927 525435 520595 516096 516971 516108 517083 519130 522880 523002 521474 517906 520058 522324 524538 527941 531327 533538 535027 537094 538780 542854 545878 547795 551562 554973 558322 563378 485573 385456 266021 162020 88047
const loop = 100000000;
Deno.bench("hoge", () => {
function f(n: number): number {
function g(): number {
return n;
}
return g();
}
@okayurisotto
okayurisotto / path.ts
Created April 5, 2023 05:25
[22, 23] Type 'PARAMS' does not satisfy the constraint 'GetPathParamsSchema<R, BASE_SCHEMA>'.
type Path = "/users/:userId/notes/:noteId";
type PathParamsSchema = GetPathParamsSchema<Path, { userId: string; noteId: string }>;
type FormattedPath = GetFormattedPath<Path, PathParamsSchema, { userId: "okayurisotto", noteId: "abc123" }>;
type PathType = string;
type PathParamType = string | number;
type GetPathParamsSchema<PATH extends PathType, BASE_SCHEMA extends Record<PathType, PathParamType>> =
PATH extends `${infer L}/${infer R}`
@okayurisotto
okayurisotto / Makefile
Last active April 10, 2023 06:44
Misskeyのクライアント用SDKをOpenAPIスキーマファイルから生成することに関する知見
SERVER_ORIGIN = https://misskey.example
OPENAPI_JSON_URL = $(SERVER_ORIGIN)/api.json
schema/api.json:
curl $(OPENAPI_JSON_URL) > schema/api.json
schema/index.ts: schema/api.json
pnpx openapi-typescript schema/api.json --output schema/index.ts
@okayurisotto
okayurisotto / graphql-deno.ts
Created April 10, 2023 06:42
定義された型の使い方がなんもわからん
import {
GraphQLInt,
GraphQLNonNull,
GraphQLObjectType,
GraphQLString,
} from "npm:graphql";
const UserType = new GraphQLObjectType({
name: "User",
fields: {
@okayurisotto
okayurisotto / CustomElementName.ts
Created April 11, 2023 04:27
`customElements.define()`に渡す`name`のtype checkをしたかった
type Spread<T extends string> = T extends `${infer L}${infer R}`
? [L, ...Spread<R>]
: [];
type UpperAlphabet = Spread<"ABCDEFGHIJKLMNOPQRSTUVWXYZ">[number];
type LowerAlphabet = Lowercase<UpperAlphabet>;
type SpreadCheck<T extends string, U extends string> =
T extends `${infer L}${infer R}`
? L extends U
(module
(func (export "fibo") (param $index i32) (result i32)
(local $a i32)
(local $b i32)
(local $c i32)
(local.set $a (i32.const 1))
(local.set $b (i32.const 0))
(loop $fibo-loop
export {};
type Entries = readonly Entry[];
type Entry = readonly [PropertyKey, unknown];
type EntryUnionToRecordUnion<T extends Entry> = T extends unknown
? Record<T[0], T[1]>
: never;
// https://stackoverflow.com/questions/50374908/#50375286
exec-once = fcitx5
general {
gaps_in = 4
gaps_out = 4
layout = dwindle
col.active_border = rgb(7aa2f7)
}