Skip to content

Instantly share code, notes, and snippets.

View hkoba's full-sized avatar

Kobayasi, Hiroaki hkoba

View GitHub Profile
------------------------------------------------------------------
以下の翻訳文は、Felix Winkelmann の Thoughts on Forth Programming
(http://call-with-current-continuation.org/articles/forth.txt) の
翻訳であり、原著者の許可を得て公開するものです。
2021-09-01 Nobuhiko FUNATO (nfunato @ acm . org)
更新履歴:
2021-09-02(rev10): Shiro Kawaiさんにご指摘いただいた誤訳訂正/改善を反映
2021-09-02(rev09): 公開初版
------------------------------------------------------------------
@pervognsen
pervognsen / shift_dfa.md
Last active January 27, 2024 19:54
Shift-based DFAs

A traditional table-based DFA implementation looks like this:

uint8_t table[NUM_STATES][256]

uint8_t run(const uint8_t *start, const uint8_t *end, uint8_t state) {
    for (const uint8_t *s = start; s != end; s++)
        state = table[state][*s];
    return state;
}
@nyaocat
nyaocat / run-in-nonet
Created May 8, 2021 08:00
指定コマンドをネットワーク接続不可環境下で実行させるスクリプト
#!/bin/bash
set -eu
readonly NSNAME="ns${RANDOM}"
sudo ip netns add "$NSNAME"
trap "sudo ip netns delete '$NSNAME'" 0
sudo ip netns exec "$NSNAME" sudo -u "$USER" "$@"
@leque
leque / memo.adoc
Last active August 13, 2022 23:54
vi(m)クローンの正規表現比較

vi(m)クローンの正規表現(雑)比較

type EventBase = {
__uid?: string;
__ts?: number;
};
type PubSub<Event> = {
dispatch: (ev: Event) => void;
subscribe: (fn: (ev: Event) => void) => void;
};
@azu
azu / TypeScriptの設定の良し悪し.md
Last active April 1, 2024 10:23
TypeScriptの設定の良し悪し

tsconfig.json の設定についてのメモ書きです。

Node.jsのバージョンごとの設定

target は 変換後のコードのECMAScriptバージョンを指定する たとえば、Node.js 14はES2020をサポートしている。そのため、Node.js 14向けのコード(サーバなど)ならtarget: "ES2020"を指定することで、余計なTranspileが省かれててコードサイズや実行時間が最適化される。

@azu
azu / README.md
Last active February 9, 2021 23:06
Generate JSON Schema Validator functions from TypeScript code-base → https://github.com/azu/create-ts-validator
@nyaocat
nyaocat / type-safe-builder.ts
Created November 30, 2020 10:05
Typescriptでタイプセーフなビルダーパターン
type WidthDefined = {width: number};
type HeightDefined = {height:number};
type TitleDefined = {title:string};
type AllDefined = WidthDefined & HeightDefined & TitleDefined;
class WidgetBuilder<T>{
constructor(private params: T){}
width<D>(this:WidgetBuilder<D extends WidthDefined ? never : D>, width: number):WidgetBuilder<D & WidthDefined> {
return new WidgetBuilder(Object.assign(this.params, {width}));
}
@mattn
mattn / README.md
Last active February 8, 2024 04:58
blacklist/whitelist master/slave に関する情報集め

blacklist/whitelist master/slave に関する情報集め

blacklist/whitelist、master/slave という単語は相応しくないという意見に OSS がどの様に対応すべきかを自身で考える為の情報集めです。見つけ次第、逐次更新していきます。

僕(mattn) 自身は black lives matter に同意をしています。blacklist/whitelist、master/slave という単語を廃止する事が、歴史的背景を持たない文化圏では特定の意味を持たなかった為、個人的には若干思う所はありますが、廃止自身に反対するつもりはありません。

昔から、主副を表す物には master/slave という単語が使われてきました。ハードディスクの IDE、仮想端末(pty)、色々あります。またネットワークの IP フィルタリングに関しては blacklist/whitelist と表記した物が今でも沢山あります。

我々日本人が意識せずに使っていた blacklist/whitelist、master/slave という単語が、人々にどの様に影響しうるのか、今後 OSS としてどの様に関わっていけば良いかを理解する上で、自分なりの情報集めをしたいと思っています。

#!/usr/bin/env bash
set -e
declare -A counts
for file in $(git ls-files)
do
count=$(git shortlog -s -n --all --no-merges $file | wc -l)
counts[$file]=$count
done