Skip to content

Instantly share code, notes, and snippets.

View tosuke's full-sized avatar

tosuke

View GitHub Profile
let-math \overset m-over m =
text-in-math MathOrd (fun ctx -> (
let font-size = ctx |> get-font-size in
let ib-over = embed-math (ctx |> set-font-size (font-size *' 0.85)) m-over in
let ib-over = inline-fil ++ ib-over ++ inline-fil in
let ib-m = embed-math ctx m in
let ib-sp = inline-graphics 0pt (font-size *' 0.1) 0pt (fun _ -> []) in
line-stack-bottom [ib-over; ib-sp; ib-m]
))
@tosuke
tosuke / bigint.ts
Created March 19, 2022 13:15
TypeScriptの型で巨大な数を扱う
// 再帰消費数が 10*桁数 程度
// 適当にテーブルを容易すれば定数倍の改善ができるので必要ならやる
type Repeat<T, N, Acc extends any[] = []> = Acc['length'] extends N ? Acc : Repeat<T, N, [T, ...Acc]>
type EncodeAux<D, Acc extends any[] = []> = `${Acc['length']}` extends D ? Acc['length'] : EncodeAux<D, [0, ...Acc]>
type Encode<T extends number | string> =
T extends number ? Encode<`${T}`> :
T extends `${infer D}${infer Rest}` ? [EncodeAux<D>, ...Encode<Rest>] :
[]
@tosuke
tosuke / eff.ts
Created October 11, 2021 12:40
effectっぽいやつ
abstract class Effect<T> {
#Type!: T
}
type InferEffectType<TEffect> = TEffect extends Effect<infer T> ? T : never
class Nil extends Effect<void> {
#nominal!: true
}
type Eff<TEffects extends Effect<unknown>, T> = (run: EffRunner<TEffects>) => Promise<T>
@tosuke
tosuke / title_includes_final_episode.json
Created June 27, 2021 06:51
最終回もしくはその前の回のサブタイトルがタイトルの部分文字列になっているテレビアニメ作品の一覧
[
{
"id": "V29yay0yMDMx",
"title": "まほらば ~Heartful days~",
"satisfactionRate": null,
"wikipediaUrl": "",
"officialSiteUrl": "",
"matchedEpisode": {
"id": "RXBpc29kZS00MjMxMQ==",
"title": "まほらば",
@tosuke
tosuke / Scrapboxの検索欄に入力できるようにする.user.js
Last active May 23, 2021 15:13
Firefox + SKK環境で発生する,Scrapboxの検索欄に文字入力ができなくなる問題を修正します.
// ==UserScript==
// @name Scrapboxの検索欄に入力できるようにする
// @namespace https://tosuke.me
// @version 0.2
// @description Firefox + SKK環境で発生する,Scrapboxの検索欄に文字入力ができなくなる問題を修正します.
// @author tosuke
// @match https://scrapbox.io/*
// @icon https://www.google.com/s2/favicons?domain=scrapbox.io
// @grant none
// ==/UserScript==

Evented Rendering での更新アルゴリズム

これは何

Evented Rendering で、ページを適切に更新する方法が思いつかなくてしばらく考えてたら思いついてやつ

何が問題なの

通常の(HTTP サーバーモデル)レンダリングでは、ユーザーのリクエストを基にレンダラがサーバー内のリソースを持ってきてページを描画するが、 Evented Rendering ではリソースの更新を基にページの描画が行われる。 ここでは、次のようなことが問題になる。

@tosuke
tosuke / main.ts
Created July 12, 2019 18:20
AssemblyScript switch-case
export function test(c: u8): i32 {
switch(c) {
case 0:
return 0
case 1:
return 1
case 2:
return 2
case 3:
return 3
@tosuke
tosuke / deserialize.ts
Last active September 10, 2019 16:33
インクリメンタルなデシリアライザ
class Stack<T> {
private _intenal: T[]
private _pointer: number = -1
constructor(size: number = 0) {
this._intenal = new Array(size)
}
get top(): T | undefined {
return this._intenal[this._pointer]
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!

プロメア感想会

ネタバレにつき地殻内部に潜る↓









































オープニング

  • バーニッシュは感情の昂りで覚醒してる?
  • 世界大炎上以前にデウス・プロメアらしき人が「バーニッシュを過度に迫害するのは危険だ」ってちゃんと言ってるの、伏線みがある