MOXBOX

Takami Torao #hazmat #moxbox
  • このエントリーをはてなブックマークに追加

基調のブルーは Čerenkov Radiation を意味するヤバいもの置き場。

Precaution

MOXBOX は日々のプログラミング経験や学習で習得した知識の理解を深めるために自分の理解の範囲で言語化し、必要になったときにいつでも思い出せるようにした上で安全に忘れて次の興味のための余力を脳に作ることを目的としている (従っていったん終えたことや周辺知識のことの方が多い)。基本的にノートであるため、時に数式の解法であったり実装アルゴリズムであったり、読書から要点抜粋した箇条書きであったり単なるコードのスニペットであったりと体裁はさまざまである。

このよう背景から、理解が及んでない部分には定義の不備、間違いなどが含まれる可能性がある。自分の理解と連動することから必ずしも学術的、時事的に正しい情報を載せていることを保証 (目的と) していない。

MOXBOX は 2017年9月下旬から書き始めた。サイトの Web サーバは Finagle をベースに実装した非同期 I/O サーバである。

Notation

特に明記しない限り \(\log\) の底は \(e\) とする。

最近の更新loading

\(\def\vector#1{\boldsymbol{#1}}\)

企業行動の理論

企業は市場経済における主要な経済主体の一つである。企業の行動は市場の価格や生産量などの経済変数に影響を与え、市場の機能や効率性に大きな影響を及ぼす。その動機は利益最大化であり、生産、価格設定、競争戦略などのさまざまな活動を通じてその目標を実現しようとする。…

edit_note 2024年3月8日(Fri)

消費者行動の理論

ミクロ経済学は個々の主体が自己利益を最大化する合理的な行動をとるという一貫した前提に基づいて経済現象を説明する。経済活動の善し悪しは消費者一人一人の利益や損失に即して民主的に判断される。経済行動を誘因やインセンティブの観点から理解し、消費者の合理的行動がどのように現われるかを理解することが重要である。…

sentiment_very_satisfied 2024年3月6日(Wed)

ナッシュ均衡

ナッシュ均衡 (Nash equilibrium) は各プレーヤーの戦略が互いに最適反応となっている状態である。つまり、集団の中で 1 人が戦略を変えたとしても本人の利得が増えない状況がすべてのプレーヤーに対して成り立っている状態である。…

sentiment_satisfied 2024年2月16日(Fri)

ゲーム理論

ゲーム理論 (game theory) は、複数の参加者 (プレイヤー) が互いに影響し合う状況でその戦略や意思決定を数学的にモデル化するための数学的な枠組みである。経済学、政治学、生物学、コンピュータ科学などの様々な分野で応用されている。…

edit_note 2024年2月15日(Thu)

マルチエージェントシステム

マルチエージェントシステム (MAS; multi-agent system) は、複数の独立したエージェントが相互作用して目的を達成するためのシステムである。各エージェントは独自の目標や知識、能力を持ち、他のエージェントと協調したり競合しながら共通の目的を達成しようとする。…

edit_note 2024年2月15日(Thu) #MAS

モジュール性

sentiment_satisfied 2023年12月13日(Wed)

認証と認可

edit_note 2023年11月18日(Sat)

Signal プロトコル

edit_note 2023年10月9日(Mon) #Signal

鍵導出アルゴリズム

鍵導出 (key derivation) は 1 つの秘密から複数の秘密を導出する手法である。より具体的には、ある鍵素体 (key material) から暗号論的強度を持つ 1 つ以上の秘密鍵を決定論的に導出するために用いられる。…

sentiment_satisfied 2023年10月4日(Wed) #鍵導出 #KDF #HKDF

JSON Web Token

edit_note 2023年9月29日(Fri) RFC 7519 #JWT

RFC翻訳: HMAC-based Extract-and-Expand Key Derivation Function (HKDF)

ある秘密鍵に基づいて複数の鍵を生成するスキームを規定している RFC 5869 についての仕様文書。

sentiment_very_satisfied 2023年9月29日(Fri) 2010年の仕様 RFC 5869 #鍵導出 #KDF

Rust: RISC-V ビルド

edit_note 2023年9月27日(Wed) Rust 1.72.1 #RISCV

仕様翻訳: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions - 転置に基づくハッシュ関数と拡張可能出力関数

暗号論的ハッシュ関数である SHA-3、および可変長出力が可能な SHAKE に関する 2015 年の NIST 仕様。

sentiment_very_satisfied 2023年9月9日(Sat) FIPS 202 2015年の仕様 #SHA3 #SHAKE #Keccak #FIPS202

ソフトウェアデザイン

edit_note 2023年9月4日(Mon)

O'Reilly Japan - ソフトウェアアーキテクチャの基礎

edit_note 2023年9月4日(Mon) 2019年 IETF Draft 4

TRANSCRIPT: A Fast Algorithm for Finding Dominators in a Flowgraph

A 1979 paper on dominator tree. A transcription of an old PDF for the purpose of reading it in machine translation.

sentiment_very_satisfied 2023年9月1日(Fri) 1979年の論文

word2vec

分散表現 (distributed representation) とは単語の意味を数値化してベクトル空間に表すことである。単語をベクトル空間に埋め込むことから単語埋め込み (word embedding) とも呼ばれる。…

sentiment_very_satisfied 2023年8月26日(Sat) gensim 4.3.0 #word2vec

論文翻訳: Efficient Estimation of Word Representations in Vector Space

3 層のニューラルネットワークを使用して単語の分散表現 (単語埋め込み) を生成するアルゴリズム Word2vec に関する 2013 年の論文。

sentiment_very_satisfied 2023年8月22日(Tue) #word2vec

CometBFT: データ構造

done 2023年8月16日(Wed) CometBFT 0.37.2 #Blockchain #CometBFT #Tendermint #Cosmos

VSCode: 拡張機能開発

この記事では Visual Studio Code (vscode) の拡張機能の作成方法について説明する。拡張機能は vscode の機能を拡張するための小さなプログラムで、vscode の拡張機能エディタを使用して JavaScript または TypeScript で記述することができる。…

done 2023年8月14日(Mon) node 1.1

論文翻訳: Graph Drawing by Force–Directed Placement

Force-Directed Placement を用いてノード間の引力と反発力を調整してグラフ構造を 2 次元上に均等に配置する手法を提案している 1991 年の論文。Fruchterman-Reingold アルゴリズムとも呼ばれる。…

sentiment_very_satisfied 2023年8月8日(Tue) 1991年の論文 #ForceDirected #FruchtermanReingold

CometBFT: ABCI

ABCI (application blockchain interface) は CometBFT コアの各コンポーネント (コンセンサス層) とブロックチェーンアプリケーションの実装 (アプリケーション層) が通信するためのインターフェース仕様である。…

sentiment_very_satisfied 2023年7月30日(Sun) CometBFT 0.37.2 #Blockchain #CometBFT #Tendermint #Cosmos

CometBFT: P2P ネットワーク

P2P ネットワーク機能は (例えばコンセンサスアルゴリズムのように) CometBFT ノードが協調しながら進行する必要のある処理のためのフレームワークである。基本はアクターモデルに似た設計であり、ノード間のメッセージングから TCP のような下層の通信レイヤーの詳細を隠蔽し、メッセージの配信とそれを処理するリアクター (サービス) という概念に抽象化する。…

sentiment_very_satisfied 2023年7月25日(Tue) CometBFT 0.37.2 #Blockchain #CometBFT #Tendermint #Cosmos

仕様翻訳: The RISC-V Instruction Set Manual Volume I: Unprivileged ISA

RISC-V 非特権 ISA に関する 2019 年の仕様書。

sentiment_very_satisfied 2023年7月19日(Wed) 2019年の仕様 RISC-V #RISCV #ISA

仕様翻訳: The RISC-V Instruction Set Manual Volume II: Privileged Architecture

RISC-V 特権 ISA に関する 2021 年の仕様書。

sentiment_very_satisfied 2023年7月19日(Wed) 2019年の仕様 RISC-V #RISCV #ISA

CometBFT: Mempool

mempool (メモリプール, メムプール) は未確定のトランザクション (unconfirmed transaction) を他のノードと共有し、提案ブロックの生成が行われるまで一時的に保存することを目的とした CometBFT の機構である。…

sentiment_very_satisfied 2023年7月10日(Mon) CometBFT 0.37.2 #Blockchain #CometBFT #Tendermint #Cosmos

CometBFT: コンセンサス

分散システムにおけるコンセンサスとは、分散ネットワーク上のすべての正常なノード間で合意を形成して共通の状態を確立するためのメカニズムである。よりブロックチェーン向けの表現では、コンセンサスに参加しているノードが「提案されたブロックを受理 (または拒否)」という共通の結論に到達するためのメカニズムを意味する。…

sentiment_very_satisfied 2023年7月10日(Mon) CometBFT 0.37.2 #Blockchain #CometBFT #Tendermint #Cosmos

WebAssembly

WebAssembly または WASM はスタックベースの仮想マシン用バイナリ命令フォーマットである。バイナリを変更せずに様々な OS とアーキテクチャで実行できるように移植性の高い設計が行われている。…

edit_note 2023年6月30日(Fri) #WebAssembly

CometBFT 構造解説

CometBFT は強い一貫性を持つ分散システムを構築するためのソフトウェアおよびその SDK (software development kit)。プライベート/コンソーシアムブロックチェーン用途に特化している。…

done 2023年6月30日(Fri) CometBFT 0.37.2 #Blockchain #CometBFT #Tendermint #Cosmos

Rust: WebAssembly プログラミング

WebAssembly は可搬性の高い仮想マシン用バイナリ命令フォーマットです。Rust はターゲットバイナリに WebAssembly を選択することができます。

sentiment_very_satisfied 2023年6月26日(Mon) Rust 1.70 wasmer 4.0 #Rust #WebAssembly #WASM #wasmer

民事: 同僚からの誹謗中傷

同僚の S から受けている誹謗中傷に関しての一連の記録。

edit_note 2023年6月25日(Sun)

集合論

集合論は数学の基礎的な分野であり、数学的対象を扱う上での基本的な概念や枠組みを提供する。これは集合や要素の集まりを厳密に定義し、それらの性質や関係を明確にすることでそれらを形式的に表現したり操作を行うことができる。…

sentiment_very_satisfied 2023年6月24日(Sat) #集合論

符号理論

edit_note 2023年6月23日(Fri) #CodingTheory

Base64 エンコーディング

Base64 エンコーディングは任意の長さを持つバイナリデータを ASCII テキストに変換するための符号化アルゴリズム。

done 2023年6月4日(Sun) #Base64

誤り検出訂正

誤り検出訂正 (error detection and correction) はデータの伝送やデータ保存時におけるエラー (誤り) の検出と訂正を行うための手法。データは、伝送やストレージで生じる物理的なノイズや機器の不具合によって情報の欠損が生じ正確性を損なう可能性があるが、誤り検出訂正によってそれらのエラーを検出し訂正することで正確性と信頼性を向上させることができる。…

sentiment_very_satisfied 2023年6月1日(Thu) #ECC

Erasure コーディング

Erasure コード (erasure code; 末梢符号) はビットの喪失に対する誤り訂正符号である。誤り検出訂正がビットエラーの検出や訂正を対象としていたのに対して、Erasure コードは喪失したデータブロックを他のデータブロックとパリティブロックから復元できることから、高い信頼性が求められる分散ストレージシステムなどで使用されている。…

edit_note 2023年5月31日(Wed) #ErasureCoding

Blockchain: レイヤー 2

done 2023年3月16日(Thu)

秘匿共通集合

秘匿共通集合 (PSI; private set intersection) は 2 つパーティ \(P_a\) と \(P_b\) がそれぞれで保持しているデータ集合 \(A\), \(B\) の共通集合 (交差) \(A \cap B\) を特定できる暗号技術。…

sentiment_satisfied 2023年3月10日(Fri) #MPC #PSI #OPRF

TRANSCRIBE: Judgement under Uncertainty: Heuristics and Biases

Very prominent 1974 paper on Heuristics and Bias. A transcription of an old PDF for the purpose of reading it in machine translation.

sentiment_very_satisfied 2023年3月2日(Thu) 1974年の論文

TRANSCRIBE: Non-Interactive Oblivious Transfer

A 1990 paper on non-interactive oblivious transfer. A transcription of an old PDF for the purpose of reading it in machine translation.

sentiment_very_satisfied 2023年2月28日(Tue) 1990年の論文 #MPC #OT

紛失通信

紛失通信 (oblivious transfer; OT) は送信者の送信する \(n\) 個のデータのうち受信者が \(k\) 個を受信できる二者間の通信プロトコル。ここで送信者は \(n\) 個のうちのどの \(k\) 個が受信されたかを知ることができず、受信者は \(k\) 個以外のデータを知ることができないという暗号論的な性質を持つ。…

sentiment_satisfied 2023年2月27日(Mon) #OT

基数変換

数の表現ですべての数値に一意の記号を割り当てようとすることは非現実的である。代わりに、古代から有限の記号の組み合わせで任意の数を表現する記数法 (numerical notation) が用いられてきた。…

edit_note 2023年2月25日(Sat)

キャッシュ

キャッシュ (cache) はプログラムやシステムのデータアクセスの高速化を目的としたメカニズムおよびその保存領域。アクセス頻度の高いデータや、次にアクセスされることが予測されるデータ、または生成や取得に時間がかかるデータを一時的に高速に読み取りが可能なキャッシュに保存することでアプリケーションの処理時間を短縮することを狙う。…

done 2023年2月22日(Wed) #LRU #MRU

乱数検定: NIST SP 800-22

NIST SP 800-22 (1) (または単に NIST 検定) は NIST が 2001 年に刊行した論文による (疑似) 乱数生成器のランダム性を検定するための検定スイートである。…

sentiment_very_satisfied 2023年2月19日(Sun) 2001年の論文 #NIST検定 #Randomness

MOXBOX ウィジェット

この MOXBOX で JavaScript や CSS (あるいはサーバサイドの XSLT や REST API など) で実装されたウィジェットおよびツールが正しく機能することを確認するためのページである。…

sentiment_satisfied 2023年2月17日(Fri) Bootstrap 5.0 jQuery 3.6 MathJax 2

論文翻訳: NIST SP 800-22: A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications / 暗号アプリケーションのための乱数・擬似乱数生成器の統計的検定スイート

NIST SP 800-22 として刊行された (疑似) 乱数生成器のランダム性の検定に関する 2001 年の論文。15 の検定で構成されている。この論文に基づいた検定スイートは NIST SP 800-22: Download Documentation and Software からダウンロードできる。…

sentiment_very_satisfied 2023年2月8日(Wed) 2001年の論文 #NIST #NIST80022

乱数検定: RMT 検定

RMT 検定 (random matrix theory test) (1) はデータ列の乱数性を検定するためのアルゴリズム。与えられたデータ列で相互相関行列を作成し、その固有値分布が RMT に基づく理論曲線と一致すれば検定に合格する。…

done 2023年2月8日(Wed) #RMTTest #RMT検定

論文翻訳: Min-Wise Independent Permutations (Extended abstract)

min-wise 独立置換族 (min-wise independent permutations family) に関する 1998 年の論文。Brahms サンプリングの関連で調べたもの。…

sentiment_very_satisfied 2023年1月31日(Tue) #最小値独立置換族

論文翻訳: Time, Clocks, and the Ordering of Events in a Distributed System

論理クロック (Lamport タイムスタンプ) に関する 1978 年の論文。

sentiment_very_satisfied 2023年1月10日(Tue) 1978年の論文 #LogicalClock #LamportTimestamp #CausalConsistency

論文翻訳: The Byzantine Generals Problem

ビザンチン将軍問題に関する 1982 年の論文。すべてのプロセスが完全グラフで接続している構成において、署名なしのアルゴリズムでビザンチン将軍問題を解くには \(n \ge 3m+1\) が必要。…

sentiment_very_satisfied 2023年1月3日(Tue) 1983年の論文 #BFT #ビザンチン将軍問題 #ビザンチン合意

TRANSCRIBE: Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation

A 1988 paper on Secure multi-party computation. A transcription of an old PDF for the purpose of reading it in machine translation.

sentiment_very_satisfied 2022年12月29日(Thu) 1988年の論文 #BFT #SecureMultipartyComputation

論文翻訳: Authenticated Algorithms for Byzantine Agreement

非同期ビザンチンアトミックブロードキャストに関する 1983 年の論文。

sentiment_very_satisfied 2022年12月26日(Mon) 1983年の論文 #BFT #ビザンチン合意 #ビザンチンアトミックブロードキャスト

TRANSCRIBE: Authenticated Algorithms for Byzantine Agreement

A 1983 paper on asynchronous Byzantine atomic broadcast. A transcription of an old PDF for the purpose of reading it in machine translation.

sentiment_very_satisfied 2022年12月26日(Mon) 1983年の論文 #BFT #ByzantineAtomicBroadcast

論文翻訳: Consensus in the Presence of Partial Synchrony

DLS88 として知られる、部分同期モデルおよびクォーラムに関する 1988 年の論文。

sentiment_satisfied 2022年12月21日(Wed) 1988年の論文

TRANSCRIBE: Consensus in the Presence of Partial Synchrony

A 1988 paper on the partial synchronization model and quorum, known as DLS88. A transcription of an old PDF for the purpose of reading it in machine translation; ja

sentiment_very_satisfied 2022年12月21日(Wed) 1988年の論文 #DLS88

論文翻訳: XFT: Practical Fault Tolerance Beyond Crashes

ビザンチン障害耐性を持つ XPaxos の 2016 の論文。ビザンチン故障、非ビザンチン故障、パーティション分断障害の合計が \(f\) 以下であれば、全体で \(N=2f+1\) プロセスの構成で安全な SMR を行うことができる。…

sentiment_very_satisfied 2022年12月5日(Mon) 2016年の論文 #XFT

論文翻訳: Synchronous Byzantine Agreement with Expected \(O(1)\) Rounds, Expected \(O(n^2)\) Communication, and Optimal Resilience ラウンド期待値 \(O(1)\)、通信期待値 \(O(n^2)\)、そして最適な回復力を備えた同期ビザンチン合意

2019 年の論文。

sentiment_very_satisfied 2022年12月2日(Fri) 2017年の論文 #BFT #GA

論文翻訳: Constant Latency in Sleepy Consensus

検証可能な乱数を用いて委員会選出を行う Sleepy コンセンサスで動的な参加を可能にする 2022 年の論文。

sentiment_very_satisfied 2022年11月26日(Sat) 2022年の論文 #BFT #Sleepy

論文翻訳: The Sleepy Model of Consensus

暗号論的ハッシュ関数とゼロ知識証明を使ってプロセスごとに固有の乱数を内密に生成し、その値が既定のしきい値 \(\lambda\) より小さければ当選というスキーマの委員会選出を行う Sleepy Consensus に関する 2017 年の論文。…

sentiment_very_satisfied 2022年11月26日(Sat) 2022年の論文 #Sleepy

論文翻訳: DiemBFT v4: State Machine Replication in the Diem Blockchain

Diem Blockchain のコンセンサスアルゴリズム DiemBFT (旧名 LibraBFT) に関する 2021 年の論文。この v4 で 2 ラウンドで確定するように修正された。…

sentiment_very_satisfied 2022年11月25日(Fri) 2021年の論文 #DiemBFT #LibraBFT #HotStuffBFT

Winny

Winny (ウィニー) は Freenet をモデルに実装された P2P ファイル共有のためのアプリケーションまたはネットワークである。匿名性の高さと効率的で高速なキャッシュ機構で日本ユーザのコミュニティで広まり、日本の P2P ファイル共有ブーム、およびそれにまつわる違法コピー行為とハッキング被害の代名詞ともなった。…

sentiment_satisfied 2022年10月9日(Sun) #Winny #P2P

論文翻訳: Packrat Parsing: Simple, Powerful, Lazy, Linear Time

複数の選択肢をもつ構文解析時に、解析済みのパターンの結果を記録しておき別の選択肢を評価するときに使用する Packrat 構文解析に関する 2002 年の論文。

sentiment_very_satisfied 2022年9月20日(Tue) 2002年の論文 #packrat #構文解析

プレゼンテーション技法

Microsoft de:code 2014 でマイクロソフトのエバンジェリスト西脇さんの「プレゼンの極意」を聞いてからプレゼンの構成や技法について注意深く見るようになった。自分がプレゼンテーションをどう見てるか、どう作っているかについてこのページに書き残しておく。…

sentiment_very_satisfied 2022年9月9日(Fri) #presentation

論文翻訳: Incremental Packrat Parsing

Packrat 構文解析のメモ表を利用して、構文解析済みの入力テキストが変更されたときに (全体の再パースなしに) テキスト変更分をインクリメンタルに構文解析結果に反映する Packrat 構文解析の改良に関する 2017 年の論文。…

sentiment_very_satisfied 2022年9月8日(Thu) 2017年の論文 #packrat #構文解析

構文解析

一般に構文解析 (syntactic analysis) とは文章を解析してその構文構造を導き出すという意味を持つ。

sentiment_satisfied 2022年9月3日(Sat)

形式言語

あるオートマトンによって受理することのできる言語である。

sentiment_very_satisfied 2022年8月27日(Sat)

オートマトン

オートマトン (automaton; ムーア型順序機械) は計算理論における数学的なモデルの総称。ある既定の手続きに従って行う自動計算の機構、つまりプログラミングやインタープリタ、文字列解析などを表すモデルとしてしばしば使われている。…

sentiment_very_satisfied 2022年8月20日(Sat) #automaton

組み合わせ合計

組み合わせ合計 (combination sum) 問題は、正の整数の集合 \(\vector{x} = \{x_0,x_1,\ldots\}\) の中から合計が値 \(y\) になるようなすべての一意の組み合わせを選択する問題。…

edit_note 2022年7月23日(Sat) #CombinationSum

Rust: プロファイリング

ソフトウェア開発におけるプロファイリング (profiling) とは、プログラムのボトルネックやメモリリークを発見することを目的とした CPU 時間やメモリ使用量の計測である。ソフトウェアの最適なパフォーマンスを引き出すためにはソースコードを最適に調整する作業が重要であるが、一般にプロファイリングはその優先順位や費用対効果を推定するための事前調査を目的として実施される。…

sentiment_very_satisfied 2022年7月14日(Thu) Rust 1.62 Linux Kernel 5.15 #Rust #Linux #perf

eBPF

eBPF (extended Berkeley packet filter) はカーネルの再構築なしにカーネル空間でプログラムを実行することのできる仮想マシン技術。eBPF のバイトコードは実行時に JIT コンパイラによって検証とネイティブコード変換が行われ、カーネル内の保護された空間 (サンドボックス) で安全かつ効率的に実行することができる。…

sentiment_very_satisfied 2022年5月29日(Sun) Kernel 5.15 Ubuntu 22.04 libbpf 0.8 #BPF #eBPF

コード変換

edit_note 2022年4月26日(Tue) #Base64

Intel SGX

Intel SGX (Intel Software Guard Extensions) はハードウェアによって暗号化されたメモリ領域を提供する TEE (trusted execution environment) 技術の一つである。…

sentiment_very_satisfied 2022年4月10日(Sun) Ubuntu 20.04 #TEE #SGX

非同期処理

sentiment_satisfied 2022年3月13日(Sun) Rust 1.48 #Rust #async

並行プログラミング

並行プログラミングとは、そのような環境で効率的な処理を実装するために複数のタスクを同時に実行するプログラミング技法である。並行性によりプログラムは一度に多くのタスクを処理することができるが、並行プログラムを書くことはことさら簡単なことではない。…

sentiment_satisfied 2022年3月10日(Thu)

Rust: tokio による非同期プログラミング

tokio (トーキョー) は Rust 言語で非同期アプリケーションを作成するためのイベント駆動型フレームワークです。煩雑さを排除し統一された方法で使用できる非同期ランタイムおよびノンブロッキング I/O とネットワークのプラットフォームを提供しています。…

sentiment_satisfied 2022年3月6日(Sun) Rust 1.59 tokio 1.17 #Rust #tokio

Raspberry Pi: RTC の接続

Raspberry Pi は RTC1 (real-time clock) を搭載しておらず、シャットダウン時に時刻を記録して次の起動時にはその時刻から開始するように動作する。ネットワークに接続していれば起動後すぐに NTP サーバと時刻同期を行って概ね正しい時刻で動作するが、オフライン環境や NTPd をオフにしている状態ではシステム時刻が実際の時刻よりどんどん遅れることになる。…

sentiment_very_satisfied 2022年2月8日(Tue) RPi3 Model B+ Raspbian 11 #RaspberryPi

Raspberry Pi: スピーカーの接続

Raspberry Pi をヘッドレス (画面やキーボードを接続しない) 機器として使用するとき、システムで何かエラーが起きていることを通知する手段が必要である。ネットワークと接続しているのであればメールや LINE Bot 等を使用できるが、そうでない場合は別に物理的な手段を用意しなければならない。…

done 2022年2月6日(Sun) RPi3 Model B+ Raspbian 11 #RaspberryPi

Raspberry Pi: ディスプレイの接続

必須ではないが Raspberry Pi でやっておくと良い設定や便利なガジェットなどのメモ。また HDMI キャプチャデバイスを使用することでシステムコンソールを Android 端末や PC に表示することもできる。…

sentiment_very_satisfied 2022年1月30日(Sun) RPi3 Model B+ Raspbian 11 #RaspberryPi

Raspberry Pi: カメラの接続

Raspberry Pi は通常の Linux OS 環境と同様に USB 接続のカメラが使用できるほか、専用のカメラモジュールを使用して動画や静止画を撮影することができる。また Pico 以外の全てのモデルに H.264 ハードウェアエンコーダーを搭載していることから、リアルタイムでの映像の加工やフォーマット変換、ストリーミングといった用途も可能である。…

done 2022年1月16日(Sun) RPi3 Model B+ Raspbian 11 #RaspberryPi

Raspberry Pi: 静止画の撮影

カメラの接続が完了したら Raspberry Pi で静止画を撮影してみよう。Raspberry Pi は通常の Linux OS 環境と同様に USB 接続のカメラが使用できるほか、専用のカメラモジュールを使用して動画や静止画を撮影することができる。…

done 2022年1月16日(Sun) RPi3 Model B+ Raspbian 11 #RaspberryPi

Raspberry Pi: 動画の撮影

カメラの接続が完了したら Raspberry Pi で動画を撮影してみよう。Raspberry Pi は Pico 以外の全てのモデルに H.264 ハードウェアエンコーダーを搭載していることから、リアルタイムでの映像の加工やフォーマット変換、ストリーミングといった用途も可能である。…

sentiment_very_satisfied 2022年1月16日(Sun) RPi3 Model B+ Raspbian 11 #RaspberryPi

Carillon

edit_note 2021年12月29日(Wed) #Carillon

論文翻訳: WHITE-BOX CRYPTOGRAPHY: HIDING KEYS IN SOFTWARE

ホワイトボックス暗号に関する概要と 2012 年時点の現状をサーベイした論文。

sentiment_very_satisfied 2021年12月29日(Wed) 2012年の論文 #WBC #ホワイトボックス暗号

ホワイトボックス暗号

ホワイトボックス暗号 (white-box cryptography; WBC) は攻撃者が暗号プリミティブの実装やその実行プラットフォームに対して特権的アクセスを持つ状況においても暗号鍵そのものの漏洩 (つまり鍵復元) を防止することを目的とした難読化 (obfuscation) の手法である。…

sentiment_very_satisfied 2021年12月23日(Thu) #WBC #DRM

論文翻訳: On White-Box Cryptography

white-box 暗号について Q&A 形式で解説する 2008 年の論文。発表当時の状況に依存する記述も多いので現状どうなっているかは追加で知る必要がある。

sentiment_very_satisfied 2021年12月21日(Tue) 2008年の論文

制御理論

自然に変化する系 (システム) に対して、系が目的の状態となるように系の変化率に作用する入力を外部から人為的に与えることを制御 (control) と呼ぶ。

sentiment_satisfied 2021年12月14日(Tue) #制御理論

Ansible セットアップ

edit_note 2021年12月12日(Sun) Python 3.10 Ansible Windows 10 #Ansible

Raspberry Pi: GPS レシーバーの接続

Raspberry Pi を含む Linux ベースのシステムに USB 接続の GPS レシーバーを接続することで正確な位置情報を得ることができる。Linux ではシリアルまたは USB 接続された GPS とのインターフェースとなる gpsd というデーモンを利用する。…

sentiment_satisfied 2021年12月11日(Sat) RPi3 Model B+ Raspbian 11 #RaspberryPi

Raspberry Pi: USB ストレージの接続

Raspberry Pi は SD カードから OS 起動する。しかし安価で小さな SD カードは耐久性も低く頻繁な書き込み操作によって寿命が短くなる。データベースのような書き込み操作の多いアプリケーションを動作させるのであれば USB 経由で SSD/HDD ストレージを使用したほうが安心であるし、また書き込み寿命が大きく違わないにしても USB フラッシュメモリをそのような用途にすることでファイルシステム破損時のシステムの再構築の手間を減らすことができる。…

sentiment_satisfied 2021年12月11日(Sat) RPi3 Model B+ Raspbian 11 #RaspberryPi

Raspberry Pi: ドライブレコーダー

edit_note 2021年12月10日(Fri) #RaspberryPi #DriveRecorder

Raspberry Pi: インストールと基本的な設定

この記事では Raspberry Pi 購入直後の状態から ssh で接続して使用するための必要なセットアップ作業を記述している。

sentiment_satisfied 2021年12月5日(Sun) RPi3 Model B+ Raspbian 11 #RaspberryPi

Rust: オブジェクト指向からの移行

done 2021年10月30日(Sat) Rust 1.56 #Rust

翻訳: ISO/IEC 14977:1996 Information technology — Syntactic metalanguage — Extended BNF

Extended BNF (EBNF) の ISO/IEC 14977:1996 規格。

sentiment_very_satisfied 2021年10月10日(Sun) ISO/IEC 14977:1996 #EBNF

EBNF

EBNF (extended Backus-Naur form) は BNF を拡張した構文メタ言語 (syntactic meta-language) の一種。プログラミング言語や HTML のようなデータフォーマットの構文定義を記述することができる。…

done 2021年10月10日(Sun) #EBNF

論文翻訳: Paxos Made Simple

Paxos に関する 2001 年の論文。独特のユーモラスにより世間にうまく伝わらなかった先の論文 "The part-time parliament" (5) をサマリーしたような内容となっている。…

sentiment_very_satisfied 2021年10月9日(Sat) 2001年の論文 #Paxos

論文翻訳: The Part-Time Parliament

Paxos に関する 1998 年の論文。戯曲めいた説明がしばしば理解を阻害すると言われるので Paxos Made Simple (2001) をあわせて読むと良い。Paxos 島やその議会は Lamport によるフィクションで実在しない。…

sentiment_very_satisfied 2021年10月5日(Tue) 1998年の論文 #Paxos

論文翻訳: Zab: High-performance broadcast for primary-backup systems

ZooKeeper のプライマリ-バックアップ間でトランザクションのアトミックブロードキャストに使われている ZAB に関する 2011 年の論文。

sentiment_very_satisfied 2021年9月27日(Mon) 2011年の論文 #ZAB #ZooKeeper

Federated Byzantine Agreement

Federated Byzantine Agreement (FBA; 連合ビザンチン合意) は合意に参加する参加者それぞれの信頼に基づくクォーラム (quorum) と呼ばれる部分ネットワークを形成する P2P 向けのコンセンサス機構である。…

sentiment_very_satisfied 2021年9月20日(Mon) #FBA

論文翻訳: Conflict-free Replicated Data Types

因果一貫性を使用する Version Vector のような並行する更新を追跡できるシステムで自動的に競合を解決できるデータ型についての 2011 年の論文。

sentiment_very_satisfied 2021年9月4日(Sat) 2011年の論文 #CRDT

Blockchain: コンセンサス

一般的な分散システムの文脈でのコンセンサスは、一貫性 (consistency) を達成するための役割選出 (リーダー選挙)、合意、同期、競合の解決や調整といったメカニズムを包括的に指した言葉である。…

sentiment_very_satisfied 2021年8月31日(Tue) #Blockchain #Consensus

Version Vector

Version Vector (VV) は並行して発生するイベントの因果関係 (causality, happened-before relation) を追跡するための機構。因果一貫性 (causal consistency) と呼ばれる一貫性モデルにおいて、競合する更新の因果関係を追跡しながら表現するために使用されている。…

sentiment_very_satisfied 2021年8月28日(Sat) #VV #VersionVector #CausalConsistency

論文翻訳: Scalable and Accurate Causality Tracking for Eventually Consistent Stores

結果整合性を持つ Key-Value ストア間で更新の競合を検出し追跡するための機構である Version Vector を、空間的および時間的に効率化した Dotted Version Vectors (DVV) および Dotted Version Vector Sets (DVVS) に関する 2014 年の論文。…

sentiment_very_satisfied 2021年8月22日(Sun) 2014年の論文 #DVV

論文翻訳: Detection of Mutual Inconsistency in Distributed Systems

バージョンベクトル (version vector) と起点 (origin point) を使用して、特定ファイルの複数のコピーに対して独立して行った操作による相互不整合 (mutual inconsistency) を検出する方法についての 1983 年の論文。…

sentiment_very_satisfied 2021年8月19日(Thu) 1983年の論文 #VersionVector #VV

ビジネス: ブックマークやメモ

edit_note 2021年8月7日(Sat)

論文翻訳: Concise Server-Wide Causality Management for Eventually Consistent Data Stores

ノード論理クロックとキー論理クロックを使用して分散システムにおけるデータ更新の因果関係を追跡するための 2015 年の論文。

sentiment_very_satisfied 2021年7月18日(Sun) 2015年の論文 #BVV

Rust: ベンチマークの計測

sentiment_satisfied 2021年7月16日(Fri) Rust 1.53 #Rust

暗号プリミティブのパフォーマンス比較

edit_note 2021年7月14日(Wed) #RSA #ECDSA #Schnorr #BLS

ゼロ知識証明

ゼロ知識証明 (ZKP; zero-knowledge proof) は、ある命題 (statement) が真であるという証明者 (prover) の主張を、それ以上の情報を明かすことなく検証者 (verifier) が確実に知る (受理する/拒否する) ことのできるスキームである。…

sentiment_satisfied 2021年7月13日(Tue) #zkp #SNARG #SNARK #zk-SNARK #ゼロ知識証明

Banded Hash Tree

現実的なストレージに対して追記効率が良く、累積的な構造変化の完全な履歴を保持するリスト構造 Banded Hash Tree (BHT) について説明します。この構造はデータの追加が可能なハッシュツリー (Merkle ツリー) であり、一般的なハッシュツリーと同様に小さなデータ片を用いてデータの破損や改ざんを検証することができます。…

edit_note 2021年7月12日(Mon) #BHT #HashTree #MerkleTree

Rust: スレッド間のデータ共有パターン

edit_note 2021年6月24日(Thu) Rust 1.53 #Rust

論文翻訳: The latest gossip on BFT consensus

Tendermint のコンセンサスに関する 2018 年の論文。

sentiment_very_satisfied 2021年4月17日(Sat) 2018年の論文 #Blockchain #Tendermint #BFT

論文翻訳: BzTree: A High-Performance Latch-free Range Index for Non-Volatile Memory

NVM (不揮発性メモリ) 向けデータ構造 BzTree に関する 2018 年の論文。Microsoft US #10599485 特許。

sentiment_very_satisfied 2021年4月11日(Sun) 2018年の論文 #BzTree #B+Tree #NVM #PMwCAS #CAS

PlusCal: 証明アプローチ

このページでは PlusCal を使って記述したシステムが正しいことをどのように証明するかについて説明する。サンプルを実行するための環境セットアップは環境設定と検証の実行を参照。

sentiment_very_satisfied 2021年4月8日(Thu) TLC2 #PlusCal #TLA+

GraalVM

GraalVM は Java や Scala などの JVM 言語、C/C++ や Rust などの LLVM 言語、および JavaScript や Python のような動的型付言語などに向けた高性能ランタイムである。…

edit_note 2021年4月4日(Sun) #GraalVM

GraalVM: 入門

edit_note 2021年4月4日(Sun) #GraalVM

翻訳: PlusCal/TLA+: An Annotated Cheat Sheet

PlusCal と TLA+ のリファレンスとして有用なチートシート。

sentiment_very_satisfied 2021年3月27日(Sat) 2019年の論文 #PlusCal #TLA+

翻訳: The PlusCal Algorithm Language

sentiment_very_satisfied 2021年3月19日(Fri) 2009年の論文 #PlusCal #TLA+

TLA+ と PlusCal

TLA+ (temporal logic of actions plus; 1999年) と PlusCal (2009年) は共に並行処理と分散システム向けに設計された仕様記述言語 (高レベルモデリング言語)。…

sentiment_very_satisfied 2021年3月14日(Sun) TLC2 #TLA+ #TLC #PlusCal

PlusCal: 並行システムと非同期処理

このページでは PlusCal を使ってマルチプロセスやマルチスレッド、それらに伴う非同期処理といった並行処理を記述する方法について説明する。サンプルを実行するための環境セットアップは環境設定と検証の実行を参照。…

sentiment_satisfied 2021年3月9日(Tue) TLC2 #PlusCal #TLA+

git: 大規模なマージ

想定: あなたのチームはあるリポジトリ Alice 1.x をフォークしていくつかの機能を修正した Bob 1.x を開発している。いままで Alice 側の修正は alice/master ブランチ上の v1.x.y リリースタグを bob/develop にマージすることで取り込んでいた。…

done 2021年3月8日(Mon) #git

PlusCal: 制御構造

このページではいくつかの例を使って PlusCal の基本的な制御構造を説明する。実行環境のセットアップは PlusCal を参照。

sentiment_very_satisfied 2021年3月8日(Mon) TLC2 #PlusCal #TLA+

PlusCal: データ構造と演算子

done 2021年3月8日(Mon) TLC2 #PlusCal #TLA+

翻訳: A PlusCal User's Manual

sentiment_very_satisfied 2021年3月8日(Mon) 2020年の論文 #PlusCal #TLA+

英語

英語のフレーズなどを記述しておくノート。

edit_note 2021年2月6日(Sat)

英語: 意思伝達のための必須表現

edit_note 2021年2月6日(Sat)

PlusCal入門1: hello, world

このページでは最初の PlusCal の例として hello, world と表示するプログラムをレビューし、その基本的な記述構造について考える。PlusCal での仕様記述や TLC 実行のための環境設定は環境設定と検証の実行を参照。…

done 2021年2月5日(Fri) TLC2 #TLA+ #TLC

TLA+入門2: 独立した 2 変数のシステム

このページでは TLA+ の例として時相論理演算子を扱う。

sentiment_satisfied 2021年2月5日(Fri) TLC2 #TLA+ #TLC

TLA+入門1: TickTack

このページでは最初の TLA+ の例として、システム状態に 0 と 1 を交互にとる TickTack システムについて考える。

sentiment_satisfied 2021年2月5日(Fri) TLC2 #TLA+ #TLC

翻訳: Summary of TLA+

sentiment_very_satisfied 2021年2月4日(Thu) #TLA+ #cheetsheet

記号論理

記号論理 (symbolic logic) は論理的な推論を数学的記号法を用いて研究する分野。

done 2021年1月30日(Sat)

システム稼働率

システム稼働率 (system availability factor) はシステムに期待できる可用性の指標である。

sentiment_very_satisfied 2021年1月26日(Tue) #稼働率 #AF

wasmer

wasmer は OS やチップセットから隔離された環境で WebAssembly バイナリを実行できる軽量な仮想マシン。

done 2021年1月9日(Sat) wasmer 1.0 #wasmer #WASM #WebAssembly

Rust: Non-blocking I/O programming with mio::Poll

Linux カーネルのシステムコール epoll や FreeBSD (Mac OS) の kqueue、またはより古典的な POSIX 準拠の select や poll システムコールは大量のクライアント接続を効率的に処理するノンブロッキング I/O プログラミングに必要な機能である。…

done 2021年1月1日(Fri) Rust 1.48 mio 0.7 #Rust #async #poll

論文翻訳: Bulletproofs: Short Proofs for Confidential Transactions and More

高速でデータサイズの小さいレンジプルーフ (範囲証明) のゼロ知識証明である Bulletproofs に関する 2018 年の論文。

sentiment_very_satisfied 2020年12月24日(Thu) 2018年の論文 #Bulletproofs #zkp #ゼロ知識証明

Rust: async を使った非同期処理

edit_note 2020年12月17日(Thu) Rust 1.48 #Rust #async

Bumblebees

Bumblebees は互いに非同期メッセージを交換する 2 つのピアアプリケーション向けプロトコル。シンプルな概念と 4 種類のメッセージを使用して、代表的な以下のネットワーク機能を実装することを目的としている。…

edit_note 2020年12月1日(Tue) #Bumblebees

HyperLogLog

HyperLogLog は多重集合 (multiset) における異なりの数問題 (distinct-count problem) を概算するための確率的アルゴリズム。つまり同じ値が複数存在するデータセットから値の種類の数を概算する。…

sentiment_satisfied 2020年11月28日(Sat) #HyperLogLog #Redis #BigData

Bloom Filter

Bloom Filter はメンバーシップクエリー、つまり大規模なデータセットに特定の要素が含まれているかを効率的にテストするための確率的データ構造。false positive (偽陽性; 含まれていないのに true となること) を許容するが false negative (偽陰性; 含まれているのに false となること) は発生しない特徴を持つ。…

sentiment_very_satisfied 2020年11月28日(Sat) #BloomFilter

Home-built Computers

done 2020年11月25日(Wed) #Ryzen

論文翻訳: Fast Multiparty Threshold ECDSA with Fast Trustless Setup

sentiment_very_satisfied 2020年10月27日(Tue) 2018年の論文

ポスト量子暗号

ポスト量子暗号 (PQC; post-quantum cryptography) は量子計算耐性を持つ暗号アルゴリズムのこと。現在広く使用されている暗号アルゴリズムの多くは素因数分解問題 (RSA など)、または離散対数問題 (楕円曲線や BLS など) の困難性に基づいている。…

done 2020年10月25日(Sun) #PQC

ハッシュベース暗号

ハッシュベース暗号 (hash-based cryptography) は素因数分解や離散対数のような数学的な問題の困難性を利用するのではなく、暗号論的ハッシュ関数によって確立されるセキュリティに基づいている。…

sentiment_satisfied 2020年10月22日(Thu) #WOTS #MSS

Mix Network

Mix Network は受信者のみが解読できる暗号でメッセージを秘匿し、さらにランダムに選んだ多段のノードで中継させることでメッセージの発信者や伝達経路と通信内容の両方を秘匿することを目的としたネットワーク。…

sentiment_satisfied 2020年10月20日(Tue) #MixNetwork #OnionRouting #Tor

Kademlia

Kademlia は二分木構造に基づくシンプルで実用的な分散ハッシュテーブル (DHT; distributed hashtable) アルゴリズム。ネットワークの中から目的のノードを効率よく検索することのできる分散オブジェクトロケーション/ルーティング (DOLR; decentralized object location and routing) の一つである。…

sentiment_very_satisfied 2020年8月30日(Sun) #P2P #DHT #Kademlia

論文翻訳: Kademlia: A Peer-to-peer Information System Based on the XOR Metric

二分探索木に基づき距離関数に XOR を使用する分散ハッシュテーブルアルゴリズム Kademlia に関する 2002 年の論文。ネットワーク全体では二分木の構造だが、個々のノードのルーティングテーブルはその部分木として見ることのできるリスト構造となる。…

sentiment_very_satisfied 2020年8月30日(Sun) 2002年の論文 #P2P #DHT #Kademlia

Chord

Chord は Consistent Hashing に基づく分散ハッシュテーブル。対数メッシュのリンクを内包する論理リングで表される。

sentiment_very_satisfied 2020年8月27日(Thu) #P2P #DHT #Chord

論文翻訳: Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications

Consistent Hashing を使用した分散ハッシュテーブルアルゴリズム Chord に関する 2001 年の論文。2003 年に似た内容で新しい論文 (2) が出ているのでそちらを参照したほうが良いかも知れない。…

sentiment_very_satisfied 2020年8月18日(Tue) 2001年の論文 #P2P #DHT #Chord

Tapestry

Tapestry(2,3) は PRR の論文(1)に基づいた Prefix ルーティングを行う分散ハッシュテーブルルゴリズム。RPP にノードの参加と離脱のアルゴリズムが追加されている。各ノードは SHA-1 を使用した ID (アドレス) が割り当てられ、アプリケーションにもエンドポイント GUID が割り当てられる。…

sentiment_satisfied 2020年8月12日(Wed) #DHT #Tapestry

Peer to Peer

P2P (peer to peer) は対等な動作をする (明確な主従関係を持たない) ノードによるネットワークまたはシステムのモデル。従来のクライアント/サーバシステム (C/S システム) におけるサーバがクライアントに対して一方的にサービスを提供する役割だったのに対して、P2P ではそれぞれのピアが状況に応じてサーバとクライアント両方の役割を持つ。…

edit_note 2020年8月2日(Sun) #P2P

P2P ファイル共有

P2P ファイル共有は P2P ネットワーク技術を使用したファイルの配布と共有を行うサービス、アプリケーションまたはネットワーク。ダウンロードのネットワーク負荷をユーザ側で分散することから低コストでサービスを運営することができるが、一方で、データの管理を行うことができず、著作権管理や情報漏えいと言った法的な問題に巻き込まれることも多い。…

done 2020年7月28日(Tue) #P2P

有向非巡回グラフ

DAG (directed acyclic graph; 有向非巡回グラフ) は有向グラフの中でも閉路をもたない (つまり一度通過した頂点にふたたび戻ることはない) 構造を持つグラフ。ソフトウェアの分野ではジョブ管理システムやビルドシステム、ネットワーク問題で扱う。…

edit_note 2020年7月21日(Tue) #DAG

分散ハッシュテーブル

分散データベースにおいて目的とするオブジェクトを効率的に検索するために特定のスキームに基づいてネットワークに配置する方法を分散オブジェクトロケーション/ルーティング (DOLR; decentralized object location and routing) と呼ぶ。…

sentiment_very_satisfied 2020年7月21日(Tue) #P2P #DHT #DOLR #Tapestry

Merkle Tree

マークルツリー (Merkle tree; ハッシュ木) はあるデータセットのハッシュ値を再帰的にハッシュ化することで得られるツリー構造。このツリーのルートにあたるルートハッシュはすべてのデータのハッシュ特性を含んだ固定サイズの値であるため、後で一部のデータを検証するのに都合が良い。…

done 2020年7月17日(Fri) #merkletree #hash

非復元ランダムサンプリングにおける公平性

Inverse (逆数) の重み分布に対して ×1,000 を実行してみれば明らかなように、それぞれの要素の選択頻度の分布 (Actual Win Rate) は重みの分布とはかけ離れた挙動となる。…

sentiment_very_satisfied 2020年7月12日(Sun) #RandomSampling #WRS #fairness

読書メモ: Science Research Writing for Non-native Speakers of English

英語が母国語ではない研究者が英語で研究文書を作成するためのガイド本。

done 2020年7月11日(Sat)

InterPlanetary File System

IPFS (InterPlanetary File System) は Protocol Labs 社を中心に開発されている P2P 技術を使用したファイル配信のための分散ストレージおよびそのプロトコルの名称である。…

sentiment_satisfied 2020年7月11日(Sat) IPFS 0.6.0 #P2P #ipfs

\(\chi^2\) 検定

χ² 検定 (chi-square test) は χ² 分布を確率分布とする確率変数 \(\chi^2\) を求めることで行う検定。その利便性によって広く普及している。期待した分布と観測した分布が適合しているかを調べる適合度検定と、2 つの事象が関連しているかを調べる独立性検定がよく利用されている。…

sentiment_very_satisfied 2020年7月10日(Fri) #chisquare

\(F\) 検定

F 検定 (F test) は 2 つの標本の分散 (標準偏差) が異なっているかを測定する統計的仮説検定。代表的な利用例は t 検定の予備検定である。

sentiment_very_satisfied 2020年7月7日(Tue) #ftest

\(t\) 検定

\(t\) 検定 (t-test; スチューデントの t) は正規分布に従う母集団から無作為に抽出した 2 つの標本が互いに異なるかを計測する仮説検定である。母集団の標準偏差が不明な場合は Z 検定の代わりに t 検定を使用する

sentiment_very_satisfied 2020年7月1日(Wed) #ttest

東京都人口統計のデータ

以下の 2 つの CSV ファイルは東京都の人口(推計)-過去の推計-の「次の国勢調査人口が公表されるまでの人口推計」から入手できる (人が読む形式の) Excel 形式の統計表1から抽出した数値をプログラムから利用できる形式で出力したものである (いつ時点のデータかは version カラムを参照)。…

done 2020年6月13日(Sat)

統計的仮説検定

観測値の背景にある母集団の構造を仮定し、観測値の統計からその仮定が受け入れられるか、さもなくば拒否されるかを判断する統計的手法を統計的仮説検定 (statistical hypothesis testing) と呼ぶ。…

sentiment_very_satisfied 2020年6月7日(Sun)

論文翻訳: Fast Generation of Discrete Random Variables

Walker のエイリアス法を改良して正方ヒストグラムを使う方法で高速に重み付きランダムサンプリングを行うアルゴリズムに関する 2004 年の論文。

sentiment_very_satisfied 2020年5月31日(Sun) 2004年の論文 #WeightedRandomSampling #SquareHistogram

ランダムサンプリング

ランダムサンプリング (RS; random sampling) または無作為抽出、乱択とは、ある集合から無作為に要素を選択すること。社会科学分野での統計のために利用されることも多いが、このページではソフトウェアアーキテクチャに焦点を当てている。…

sentiment_very_satisfied 2020年5月29日(Fri) #RandomSampling #WRS #ReservoirSampling

論文翻訳: Weighted Random Sampling (2005; Efraimidis, Spirakis)

重み付きランダムサンプリング (乱択) のアルゴリズムに関する 2005 年の論文。重み付き非復元ランダムサンプリング (weighted random sampling without replacement) に基づいて、開始時点でサイズが未知の母集団から 1 パスでサイズ \(m\) の部分集合を生成することができる。…

sentiment_very_satisfied 2020年5月22日(Fri) 2005年の論文 #WeightedRandomSampling #ReservoirSampling

XML: Extensible Markup Language

XML (extensible markup language) は構造化されたデータを表現するための W3C が規定するマークアップ言語。ドキュメント指向のデータ向けに高機能で非常に高い柔軟性と拡張性を持っており、また人間が読みやすいように設計されているため、データ交換から設定ファイルまで様々な分野で広く使用されている。…

done 2020年4月25日(Sat) XML 1.1 #xml

XML-Schema

XML Schema は XML 文書の構造と内容を定義するためのスキーマ言語である。スキーマには XML によるインターフェースを定義し、XML 文書の整合性を検証することでデータの信頼性と相互運用性を高める役割がある。…

done 2020年4月25日(Sat) XML 1.1 XML Schema 1.1 #XMLSchema

XPath: XML Path Language

XPath (XML path language) は、主に XSLT で使用されるクエリー言語である。XML 文書上で目的のノードを特定するアドレッシングや、ノード集合から特定のノードを抽出するフィルタリングを行うことを目的としている (目的としてはリレーショナルデータベースに対する SQL に似ている)。…

edit_note 2020年4月25日(Sat) XML 1.1 XPath 1.1 #xml #xpath

論文翻訳: Efficient and Scalable Multiprocessor Fair Scheduling Using Distributed Weighted Round-Robin

優先度を重みづけされたプロセッサにラウンドロビンでジョブを割り当てるアルゴリズムに関する 2009 年の論文。

sentiment_very_satisfied 2020年4月25日(Sat) 2009年の論文

雑記: 2019 新型コロナウイルス

done 2020年4月3日(Fri) #2019nCoV #COVID19

格子暗号

格子暗号 (lattice-based cryptography) は多次元の格子構造を用いた公開鍵暗号スキーム。証明可能な強力なセキュリティの保証や量子計算耐性、完全準同型暗号へ応用可能といった特性を持っている。…

sentiment_satisfied 2020年4月1日(Wed) #NTRU

読書メモ: スパンプログラム

Karchmer and Wegderson は 1993 年にブール関数を計算する興味深い線形代数モデルスパンプログラム (span program) を発表した。ある関数 \(f(x_1,\ldots,x_n)\) に対するスパンプログラムは、変数 \(x_i\) とその否定 \(\bar{x}_i\) でラベル付けされた行を持つ、ある体 (field) 上の行列として表される (一つの変数が複数の行をラベル付けしてもよい)。…

sentiment_very_satisfied 2020年3月8日(Sun) #SpanProgram #BooleanFunction #BooleanNetwork

準同型暗号

準同型暗号 (homomorphic encryption; HE) は暗号化したデータを復号化せず演算することで、復号化により計算結果を得ることができる暗号スキーム。データの内容を秘匿したままクラウドのようなサードパーティの計算リソースを使用することができる。…

sentiment_very_satisfied 2020年2月29日(Sat) #準同型暗号 #HE #FHE

論文翻訳: On Span Programs

Span Program に関する 1993 年の論文。

edit_note 2020年2月25日(Tue) 1993年の論文 #SP

論文翻訳: DFINITY Technology Overview Series Consensus System

Dfinity のテクニカルオーバービューを記述した 2018 年の論文。公証 (notalization) がブロックの承認を表している? 少し用語の言い替えがある。

edit_note 2020年2月16日(Sun) 2018年の論文 #Blockchain #DFINITY

疑似乱数生成

乱数 (random number) はランダムに選択された数のこと。特定の出現パターンを持たず、選択される値が予測できないという性質を持っており、ゲームや科学技術シミュレーション、暗号セキュリティの分野で重要な役割を持っている。…

sentiment_very_satisfied 2020年2月2日(Sun) #PRNG #MersenneTwister #xorshift

論文翻訳: Xorshift RNGs

ビット演算のみを使用した非常に高速でコンパクトな Xorshift 擬似乱数生成アルゴリズムに関する 2003 年の論文。著者はキャリー付き乗算の論文にも携わっている。Abstract にあるようにこの論文自体はアイディアの説明であり、良い乱数・悪い乱数で何点かの間違いが指摘されている。…

sentiment_very_satisfied 2020年2月2日(Sun) 2003年の論文 #Xorshift #PRNG

Rust: nom によるパーサー実装

nom は Rust で実装された字句解析ライブラリ (Lexer, Lexical Analyzer, Tokenizer) およびパーサコンビネーターです。プログラムのソースコードや DSL (domain specific language) のようなテキストデータの字句解析を実装できるのに加えて、バイナリデータの解析も前提に設計されています (実際、nom の作者は nom を使って GIF 画像ファイルのデコーダーを実装しています)。…

sentiment_very_satisfied 2020年1月12日(Sun) nom 5.1.0 #Rust #nom

論文翻訳: Graph learning: How humans infer and represent networks

話し言葉や音楽といった人間が認知できる刺激ははグラフ構造で表すことができる。人間がどのように時系列のグラフ構造を認識しているかに関する最近の研究をまとめた 2019 年の論文。

sentiment_very_satisfied 2019年12月26日(Thu) 2019年の論文 #認知科学 #GraphLearning #CognitiveEngineering

公開鍵暗号アルゴリズム

公開鍵は「A から B を計算するのは容易だが B から A を計算するのは困難」といった計算の非対称性を利用した暗号アルゴリズム。公開鍵アルゴリズムを応用した技術として鍵共有、暗号、電子署名が広く使われている。…

edit_note 2019年12月15日(Sun) #DLP #DH #ElGamal #DSA #ECDH #ECC #ECDSA #RSA

楕円曲線暗号

楕円曲線は離散対数問題に対して有限体よりも効率的で高いセキュリティを持つ有限体である。これらはどちらも DLP の数式上の循環群 \(G\) として使用できるため、旧来の Diffie-Hellman や ElGamal といったアルゴリズムをほぼそのまま楕円曲線に置き換えることができる。…

sentiment_satisfied 2019年12月15日(Sun) #ECDH #ECC #ECDSA #EdDSA #ed25519 #ed448

離散対数問題と公開鍵暗号

離散対数問題に基づく暗号アルゴリズムは古くから研究されてきたが、公開鍵暗号が世間に広く利用されるようになったのは素因数分解に基づく RSA を待たなければならなかった。しかし旧来の欠点を克服した DSA や、楕円曲線への応用によって、近年では RSA に比べてより高いパフォーマンスを得られるようになった。…

sentiment_very_satisfied 2019年12月15日(Sun) #DLP #DH #ElGamal #DSA #Schnorr

RSA 暗号

RSA 公開鍵暗号 (RSA public-key encryption) は大きな数の素因数分解の困難性を利用した公開鍵暗号。最初の実用的な公開鍵暗号で 2000 年に特許が切れている。より鍵の小さい楕円曲線暗号に置き換えられつつあるが現在においても広く利用されている。…

sentiment_satisfied 2019年12月15日(Sun) #RSA

論文翻訳: On the Size of Pairing-based Non-interactive Arguments\(\star\)

2016 年の論文。

edit_note 2019年12月1日(Sun) 2016年の論文 #zk-SNARK

論文翻訳: High-speed high-security signatures

楕円曲線暗号アルゴリズムの一種であるエドワーズ曲線デジタル署名 (EdDSA; ed25519, ed448) の速度やセキュリティ優位性に関する 2011 年の論文。

sentiment_very_satisfied 2019年11月25日(Mon) 2011年の論文 #楕円曲線暗号 #EdDSA #Ed25519 #Ed448

論文翻訳: Quadratic Span Programs and Succinct NIZKs without PCPs

edit_note 2019年11月25日(Mon) 2013年の論文 #zk-SNARK

論文翻訳: Pinocchio: Nearly Practical Verifiable Computation

edit_note 2019年11月25日(Mon) 2013年の論文 #zk-SNARK #Pinocchio

RFC翻訳: Edwards-Curve Digital Signature Algorithm (EdDSA)

edit_note 2019年11月10日(Sun) RFC 8032 #楕円曲線暗号 #EdDSA #Ed25519 #Ed448

論文翻訳: Curve25519: new Diffie-Hellman speed records

通常の楕円曲線アルゴリズム (EC) より高速で鍵の小さい Curve25519 を使用した暗号計算に関する 2006 年の論文。

edit_note 2019年11月7日(Thu) 2006年の論文 #楕円曲線暗号 #curve25519 #ed25519

読書メモ: プログラミング言語 Rust 公式ガイド

The Rust Programming Language (日本語版) の邦訳版で ASCII DWANGO から出版されている「プログラミング言語 Rust 公式ガイド」の読書メモ。…

edit_note 2019年11月4日(Mon) Rust 1.38 #Rust

秘密分散共有

秘密分散共有 (secret sharing) または単に秘密分散は秘密情報 \(S\) を \(n\) 個の分散情報に符号化する暗号化アルゴリズムの一種。特に (k,n) しきい値法では \(n\) 個の分散情報のうち任意の \(k\) 個が揃えば元の秘密情報 \(S\) を再構築することができる (\(k\) 個に満たない場合は再構築することができない)。…

sentiment_satisfied 2019年11月3日(Sun) #SecretSharing #VSS

論文翻訳: Compact Multi-Signatures for Smaller Blockchains

マルチ署名、公開鍵集約を使用してブロックチェーンサイズを小さくするための 2018 年の論文。

sentiment_very_satisfied 2019年10月15日(Tue) 2018年の論文 #マルチ署名

群論

集合とその演算や作用によって定まる構造を代数的構造という。ある集合 \(G\) 上の要素 \(a,b \in G\) に対して \(c = a \ast b \in G\) となるような何らかの演算 \(\ast\) が定義されているとき、集合 \(G\) は代数系であり \((G,\ast)\) や単に \(\mathbb{G}\) と表される。…

sentiment_very_satisfied 2019年10月10日(Thu) #群論

論文翻訳: Aggregate and Verifiably Encrypted Signatures from Bilinear Maps

GAP Diffie-Hellman と双線形写像を使用して BLS 署名派生スキーム、集約署名、ブラインド署名、リング署名を紹介する 2003 年の論文。集約署名は異なるユーザによる異なるメッセージに対する署名を単一の署名に集約する

edit_note 2019年10月8日(Tue) 2003年の論文

翻訳: Introduction to Transaction Management

edit_note 2019年10月7日(Mon)

Blockchain: Polkadot

done 2019年9月26日(Thu) #polkadot

論文翻訳: Byzantine Finality Gadgets

Polkadot で検討されている、重み付き PoW を使った分岐の発生するコンセンサスにファイナリティ特性を追加するための PoS に基づいたアルゴリズムに関する 2019 年の提示文書。…

edit_note 2019年9月26日(Thu) 2019年の論文 #Blockchain #Polkadot #GRANDPA

鍵共有アルゴリズム

暗号技術における鍵共有 (key exchange) とは、共通の秘匿情報を持たない当事者間で公にされている情報のみを用いて、すべての当事者サイドで通信内容を保護するための共通の鍵を生成する方法。…

done 2019年9月17日(Tue) #鍵共有 #DH #PTP

Blockchain: 用語

edit_note 2019年9月17日(Tue) #Blockchain

ペアリング暗号

ペアリング暗号 (pairing-based cryptography) は双線形写像 (bilinear map) の構造を持った暗号アルゴリズム。楕円曲線暗号ではある同一の群 \(G\) 上での写像 \(e:G \times G \to G\) の写像だったが、ペアリングでは 2 つの暗号化群から別の群への写像 \(e:G_1 \times G_2 \to G_T\) という構造を持つ。…

sentiment_very_satisfied 2019年9月16日(Mon) #Pairing #IBE #BLS

Unihertz Atom

Uniherts Atom は小型軽量で防水、防塵に対応したいわゆるタフネス携帯。

done 2019年9月15日(Sun) #Unihertz #Atom

論文翻訳: Short Signatures from the Weil Pairing

Gap Diffie-Hellman 群でのヴェイユペアリングを使用することで、一般的な RSA や DSA での署名と比べて同じ強度で短い署名を生成する方法を示す 2001 年の論文。

sentiment_very_satisfied 2019年9月15日(Sun) 2001年の論文 #BLS署名 #GDH

論文翻訳: Threshold Signatures, Multisignatures and Blind Signatures Based on the Gap-Diffie-Hellman-Group Signature Scheme

(8) の Gap Diffie-Hellman 群を 1) BLS 署名を秘密分散のスキームに拡張したしきい値署名、2) 複数の署名分散から一つの署名を作成するマルチ署名、3) メッセージを秘匿するブラインド署名のそれぞれに応用した 2002 年の論文。…

sentiment_very_satisfied 2019年9月8日(Sun) 2002年の論文 #BLS署名 #署名分散 #しきい値署名 #マルチ署名 #ブラインド署名

論文翻訳: Practical Threshold Signatures

RSA に基づく非インタラクティブな署名分散の方法についての 1999 年の論文。

sentiment_very_satisfied 2019年9月4日(Wed) 2000年の論文 #SignatureSharing #ThresholdSignature #署名分散 #しきい値署名

論文翻訳: Verifiable Random Functions

edit_note 2019年9月2日(Mon) 1999年の論文 #VRF

Verifiable Random Function

VRF (verifiable random function) は公開鍵ペアを使用する暗号学的ハッシュ関数である。VRF 関数は秘密鍵を使ってある入力値に対するハッシュ値を算出することができる。…

sentiment_very_satisfied 2019年9月1日(Sun) #VRF #暗号抽選 #暗号選挙

論文翻訳: HotStuff: BFT Consensus in the Lens of Blockchain

State Machine Replication を行うための BFT 合意アルゴリズム HotStuff に関する 2019 年の論文。ブロックチェーンのような頻繁なリーダー変更を行う環境向けに、通信コストが \(O(n^2)\) から \(O(n)\) となっている。…

sentiment_very_satisfied 2019年8月25日(Sun) 2019年の論文 #HotStuff #LibraBFT

属性ベース暗号

属性ベース暗号 (ABE; attribute-based encryption) は特定の属性を持った対象者のみが情報を復号化できる暗号方式。共通鍵暗号や公開鍵暗号は暗号化/復号化に使用する鍵が 1:1 であるのに対して、それが 1:n や n:1 という特徴を持つ。…

edit_note 2019年8月21日(Wed) #ABE

論文翻訳: Algorand: Scaling Byzantine Agreements for Cryptocurrencies

PoS に VRF (Verifiable Random Function) を組み合わせた選出を行う BFT 合意アルゴリズム Algorand に関する 2017 年の論文。

edit_note 2019年8月20日(Tue) 2017年の論文 #Algorand

Tendermint

edit_note 2019年7月16日(Tue) Tendermint 0.32 #Blockchain #Tendermint

論文翻訳: Practical Byzantine Fault Tolerance

Byzantine Fault Tolerance 合意アルゴリズムを実装面で補強した 1999 年の論文。

sentiment_very_satisfied 2019年7月7日(Sun) 1999年の論文 #PBFT

ビザンチン障害耐性

BFT (Byzantine fault-tolerance) またはビザンチン障害耐性はビザンチン障害プロセスが含まれていても安全な合意を達成することのできる性質である (あるいはその性質を持つ合意アルゴリズムを BFT とも呼ぶ)。…

sentiment_very_satisfied 2019年6月24日(Mon) #Byzantine #BFT #BA

CAP 定理

CAP 定理は分散データベースシステムにおいてネットワーク分断 (partitioning) が発生したときに一貫性 (consistensy) か可用性 (availability) のどちらかしか取ることができないという原則。…

sentiment_satisfied 2019年6月18日(Tue) #CAPTheorem

論文翻訳: Reaching Agreement in the Presence of Faults

ビザンチン故障を含むネットワークでの分散合意が可能な条件についての 1979 年の論文。

sentiment_very_satisfied 2019年6月16日(Sun) 1979年の論文 #BFT

Go: インストール

sentiment_satisfied 2019年6月4日(Tue) #golang #chocolatey

Bitcoin

sentiment_very_satisfied 2019年6月4日(Tue) #Blockchain #Bitcoin #暗号通貨

翻訳: Verifiable Random Functions (VRFs)

Verifiable Random Functions (VRF) は公開鍵をキーとする暗号化ハッシュのバージョンである。秘密鍵の所有者のみがハッシュを算出できるが、公開鍵を持つ人であれば誰でもハッシュの正当性を検証できる。…

edit_note 2019年5月29日(Wed) 2019年 IETF Draft 4 #VRF #IETF

論文翻訳: In Search of an Understandable Consensus Algorithm (Extended Version)

Raft は複製されたログを管理するためのコンセンサスアルゴリズムである。これは (Multi-) Paxosと同等の結果を生み出し Paxos と同程度に効率的だが、その構造は Paxos とは異なる; Raft によって Paxos よりも理解しやすく実用的なシステムを構築するためのより良い基盤が提供される。…

sentiment_very_satisfied 2019年5月20日(Mon) 2014年の論文 #Raft

Java: 公開鍵生成アルゴリズム

Java では KeyPairGenerator クラスを使用して作成することができる。

edit_note 2019年5月2日(Thu) Java 11 #ECDSA

分散システム

分散システム (distributed system) は、クライアント (エンドユーザ) から単一のシステムとして見えるように動作する、協調して動作する複数のコンピュータで構成されるシステム。…

sentiment_very_satisfied 2019年4月25日(Thu)

論文翻訳: Impossibility of Distributed Consensus with One Faulty Process

コンセンサスの問題にはプロセスの非同期システムが含まれており、そのいくつかは信頼性が欠落していることがある。課題は、信頼できるプロセスが 2 値の下で合意することである。本論文では、この課題に対するどのようなプロトコルであっても、たった 1 つでも不完全なプロセスが含まれるのなら終了に達しない可能性を持つことを示している。…

sentiment_very_satisfied 2019年4月25日(Thu) 1985年の論文 #FLP #Reliability

論文翻訳: Skip Graphs

Skip Graph は、要素を格納する分散システムでバランスツリーの全機能を提供する、Skip List に基づく新しい分散データ構造である。要素はいつでも失敗する可能性のある別々のノードに格納される。…

edit_note 2019年4月21日(Sun) 2003年の論文 #SkipGraph

etcd

etcd (etc distributed) は Raft に基づいた分散トランザクションを実装した分散 Key-Value ストア。コンテナ仮想化に特化した軽量 Linux ディストリビューションである CoreOS においてコンテナ間で設定を共有するために実装されたが、移植性の高い golang で実装されているため現在では様々な OS に移植されている。…

edit_note 2019年4月12日(Fri) etc 3.3 #etcd

Java: Transport Layer Security

TLS (transport layer security) は TCP 上で安全な通信を行うためのプロトコル。PKI (public key infrastructure; 公開鍵基盤) に基づいて通信相手を認証し、暗号化されたストリームを通じて改ざん不可能なデータのやり取りを行うことができる。…

sentiment_very_satisfied 2019年3月24日(Sun) Java 11 #SSL #TLS #JSSE

OpenSSL リファレンス

複雑な OpenSSL コマンドを目的別にまとめる。

done 2019年3月21日(Thu) #openssl #ECDSA #X509

メッセージ認証コード

メッセージ認証コード (MAC; message authentication code) はメッセージの完全性を認証付きで保証する暗号学的手法である。鍵の所有者 \(A\) によりメッセージが発行されてから破損や改ざんを受けていないことを同じ鍵の所有者 \(B\) が検証することができる (\(A\) と \(B\) は同一でも良い)。…

done 2019年3月17日(Sun) Java 11 #MAC #HMAC

クロック同期

edit_note 2019年3月14日(Thu)

ゴシッププロトコル

ゴシッププロトコル (gossip protocol, gossipping) または感染プロトコル (epidemic protocol) はネットワーク上で情報をマルチキャストする方法の一つ。…

sentiment_satisfied 2019年3月12日(Tue) #Gossip

Upper Intermediate S

英語のフレーズなどを記述しておくノート。

edit_note 2019年3月2日(Sat)

Service Provider Interface

SPI (service provider interface) は特定のインターフェースに一致する実装を Java のエコシステムが検出して暗黙的にロードするための機能。Java 6 において正式に導入された。…

done 2019年2月26日(Tue) Java 11

Java: 署名アルゴリズム

Java では Signature クラスを使用して任意のメッセージ (バイナリデータ) に対して電子署名を作成することができる。

done 2019年2月18日(Mon) Java 11 #ECDSA

Java: ハッシュ関数

ハッシュ関数 (hash function)、または Java ではメッセージダイジェスト (message digest) と呼ばれる機能は、ある任意の大きさのバイナリデータから固定長のバイナリを生成するためのアルゴリズムである。…

done 2019年2月18日(Mon) Java 11 #CRC #SHA

プライベート認証局

done 2019年2月14日(Thu)

ハッシュ関数

ハッシュ関数 (hash function) は任意長のビット列をある固定の長さのビット列に変換する関数。\(k\) ビット値への変換を行うハッシュ関数 \(h\) は数学記号で \(h: \{0,1\}^* \to \{0,1\}^k\) と記述することができる。…

sentiment_very_satisfied 2019年2月4日(Mon) #SHA3 #SHAKE

Rocks DB

Rocks DB は C++ で実装された key-value ストアの組み込み用ライブラリ。key 及び value は任意のバイナリデータが使用できる。メモリや極低レイテンシーな Flash ドライブのような物理ストレージと他コア CPU の実行環境に最適化されている。…

done 2019年1月31日(Thu) #RocksDB

翻訳: The ZILLIQA Technical Whitepaper

既存の暗号通貨及びスマートコントラクトプラットフォームはスケーラビリティの問題を抱えている。すなはち、1秒間に処理できるトランザクションの数が制限されており、通常 10 未満であることが知られている。…

sentiment_very_satisfied 2019年1月28日(Mon) 2017年の論文 #Blockchain #Zilliqa

Blockchain

分散システムにおけるブロックチェーン (blockchain) とは、ビザンチン障害耐性をもつ分散合意アルゴリズムを使ったステートマシンレプリケーション (SRM) として機能する Peer-to-Peer ネットワークである。…

sentiment_very_satisfied 2019年1月5日(Sat) #Blockchain #Bitcoin #Ethereum #DistributedLedger #暗号通貨 #UTXO

Proof of Work

Proof of Work (PoW) は何らかの作業を行ったことを証明することで目的の行為を行う許可が与えられるスキームである。サービス要求者に何らかの作業を強制することで、DoS 攻撃やスパムメールの送信といった短時間で大量の要求を繰り返して発行する悪意的なコンピューティング能力を利用を防止するための実用上の対策である。…

edit_note 2018年12月29日(Sat) #Blockchain #PoW

Practical Byzantine Fault Tolerance

PBFT (practical Byzantine Fault Tolerance) はビザンチン障害耐性をもつ分散合意アルゴリズムの 1 つ。それ以前に提案されていた研究レベルのいくつかの BFT アルゴリズムを改良し、実用的に利用できる水準となった最初の BFT アルゴリズムである。…

done 2018年12月25日(Tue) #PBFT #BFT

Resource Pooing 実装

リソースプーリング (resource pooling) は有限のリソースをプールしアプリケーション内の複数の処理で共有 (resource sharing) する仕組み。一般的に、生成や消滅のコストの高いリソースを初期化を終えた状態で共有、再利用することによるパフォーマンス向上の効果を目的としている。…

edit_note 2018年11月27日(Tue) #ResourcePool

論文翻訳: HyperLogLog: the analysis of a near-optimal cardinality estimation algorithm

大量のデータから要素数を推定するアルゴリズム HyperLogLog に関する 2007 年の論文。

edit_note 2018年10月30日(Tue) 2007年の論文 #HyperLogLog #BigData

Future 機能

CompletableFuture は Java での非同期プログラミングで使用するクラス。非同期プログラミングはアプリケーションのメインスレッドとは別のスレッドを使用して非ブロッキングにタスクを行うための手段である。…

sentiment_very_satisfied 2018年10月30日(Tue) Java 8

HDFS

HDFS (Hadoop distributed file system) は Hadoop で使用されている分散ファイルシステム。データを複数の計算機上に分散配置し、MapReduce を用いて各計算機上で並列分散処理を行うことができる。…

edit_note 2018年10月23日(Tue) #HDFS

Redis:インストール

Redis は C で書かれており、gcc や libc 以外に依存するライブラリを持たないことから公式の Redis Quick Start では最新版をソースからコンパイルすることを薦めている。…

done 2018年10月20日(Sat) Redis 4 #Redis

Redis

Redis はデータベースやキャッシュ、メッセージブローカーとして使用することのできるインメモリデータベース。NoSQL DB の一つとしてよく知られている。主に Unix 系の OS を対象としており Windows での実行は難しい。…

done 2018年10月10日(Wed) Redis 4 #Redis

Lettuce 5

done 2018年10月10日(Wed) Redis 4 Lettuce 5 #Redis #Lettuce

覚知の限界

交渉や駆け引きにおける注意の狭窄と焦点化、またそれらによって引き起こされる合理性の欠ける判断は覚知の限界 (bounded awareness; Bazerman, Chugh, 2005) と呼ばれる。…

sentiment_very_satisfied 2018年9月8日(Sat) #BoundedAwareness

オープンデータセット

edit_note 2018年8月13日(Mon)

Keras: 超解像

超解像 (super resolution) は解像度の低い画像や動画、音声などの信号からより高解像度なバージョンを生成する技術。

done 2018年8月13日(Mon) Python 3.5 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #RSCNN

畳み込みニューラルネットワーク

畳み込みニューラルネットワーク (convnet, CNN; convolutional neural network) はフィードフォーワード型の深層ニューラルネットワーク (DNN; deep neural network) の一種。…

sentiment_very_satisfied 2018年8月13日(Mon) #ConvNet

Keras: CNN中間層フィルタの可視化

edit_note 2018年8月7日(Tue) Python 3.6 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #Conv

Matplotlib TIPS

edit_note 2018年8月6日(Mon) Python 3.5 #matplotlib

論文翻訳: Deep Clustering for Unsupervised Learning of Visual Features

概要: クラスタリングはコンピュータ・ビジョンで広く適用され研究されている教師なし学習方法の一種である。しかし大規模なデータセット上での視覚的特徴量の end-to-end 学習にクラスタリングを適用させる研究は殆ど行われていない。…

sentiment_very_satisfied 2018年7月27日(Fri) 2018年の論文 #DeepCluster #CNN

OpenCV: 画像クラスタリング (PCA/DBSCAN)

edit_note 2018年7月25日(Wed) OpenCV 3 #OpenCV

React:逆引き

edit_note 2018年7月23日(Mon) Node.js 8 React 16 #nodejs #reactjs

Ubuntu18.04: CUDA+Docker セットアップ

Ubuntu 18.04 (bionic beaver) の Docker コンテナ上からホストに設置されている GPU を使用するための環境構築手順を記述する。

sentiment_very_satisfied 2018年7月21日(Sat) Ubuntu 18.04 CUDA 9.0 GTX-1050TI #ubuntu #nvidia #cuda

ローカルサーバ: Cobalt

CPU 処理と常時起動サーバのためのマシン。

done 2018年7月16日(Mon) Ubuntu 18.04 #ubuntu

Keras: 画像生成 (変分オートエンコーダー)

オートエンコーダー (autoencoder, 自動符号化器) はニューラルネットワークを使用した次元削減手法。次元の小さい中間層を設置した多層ニューラルネットワークを、入力と同じデータを出力するように学習することで、中間層部分の出力からより特徴的な表現を少ない次元で得ることができる。…

done 2018年7月14日(Sat) Python 3.5 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #VAE

Keras: CNN画像分類 (Keras-provided CNN)

Keras は過去のコンテストで優秀な成績を収めた CNN がすぐに利用可能な形で含まれている。ここではこれらの CNN を独自のデータセットで学習して画像分類を行う。

done 2018年7月11日(Wed) Python 3.5 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #Xception

Keras: CNN画像分類 (クラスの可視化)

edit_note 2018年7月10日(Tue) Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #VGG16

Keras: CNN中間層出力の可視化

Keras 2.2 を使用して CNN の中間層がどのような出力を行っているかを可視化する。ここでは学習済みモデルに VGG16 + ImageNet を使用しカワセミの写真のどの部分を特徴としてとらえているかを示すためのヒートマップを作成する (このヒートマップで示される特徴に対する反応の強さをこのページでは暫定的に特徴強度と呼ぶ)。…

sentiment_very_satisfied 2018年7月9日(Mon) Python 3.6 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #Conv

CIFAR-10

CIFAR-10 は 10 種に分類された 32×32 の 60,000 画像からなるデータセット。80 Million Tiny Images から画像認識のために抽出/分類したサブセットである。…

done 2018年7月6日(Fri) Python 3.5 Keras 2.2 #CIFAR10 #CNN

Keras: ImageDataGenerator

Keras 2.2 に付属するデータ拡張と正規化のための多機能前処理ユーティリティ ImageDataGenerator のパラメータごとの効果を整理する。明文化されていない部分については Github のソースを参照する必要がある。…

sentiment_very_satisfied 2018年7月4日(Wed) Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow

Keras: CNN画像分類 (転移学習/Fine Tuning)

転移学習 (transfer learning) はネットワークをゼロから学習させる代わりに、別のタスクで学習したネットワークを元に目的のタスクに最学習させることで、学習のための計算コストや学習に必要なデータセットの数を削減する手法。…

done 2018年7月1日(Sun) Python 3.5 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #VGG16

Keras: CNN画像分類 (Pre-trained CNN Model)

CNN モデルを使用した画像分類スクリプトを作成する。Keras は自分でニューラルネットワークを組み立てデータセットを用意してモデルを構築することもできるが、過去のコンペで優秀な成績を収めたいくつかの CNN がすぐに利用可能な形で含まれていて、推測部分にフォーカスして試すのであればそれらを利用するのが早い。…

sentiment_very_satisfied 2018年6月28日(Thu) Python 3.5 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #VGG16

Keras: ImageNet分類ラベル一覧

ImageNet データセットに基づく Keras 2.2.0 で利用可能な CNN 学習済みモデルの分類ラベルとその意味 (./keras/models/imagenet_class_index.json に保存されている)。…

edit_note 2018年6月28日(Thu) Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #VGG16

Lucene: 類似画像検索

AKAZE, ORB, SIFT, SURF などを使用して画像から特徴点とスケール・回転・輝度・Blur 耐性を持つ特徴量を抽出し、それらから Bug of Visual Words (Bag of Features) を使用して全文検索エンジンである Lucene

edit_note 2018年6月27日(Wed) Lucene 6 #Lucene #Lire

JavaVM 仕様読書会ノート

The Java® Virtual Machine Specification Java SE 10 Edition 読書会のノート。Connpass イベント。

edit_note 2018年6月23日(Sat) JavaVM Spec 10 #JVMSpec_Reading

認知バイアス

意思決定において根拠の一つ一つを吟味し合理的な判断を下すコストは決して低いものではない。人は重要ではない判断に対して、過去に経験したり記憶から導き出しやすい材料に基づいて意思決定を行っている。…

sentiment_very_satisfied 2018年6月18日(Mon) #認知バイアス #CognitiveBias

TensorFlow + Keras セットアップ

edit_note 2018年6月13日(Wed) Keras 2.2 TensorFlow 1.8 Python 3.6 #keras #tensorflow

OpenCV: 局所特徴量による類似画像検索/分類

画像の局所特徴量は回転や拡大縮小によって分布が変換しない特徴ベクトルである。つまり特徴量の分布の形が似ている画像は特徴点の配置が似ている画像であることが予想される。この局所特徴量を \(n\) 次元空間上でクラスタ化し、画像ごとに算出した Bag of Visual Words (Bag of Features とも) を使用して画像の類似度を得ることで、撮影されている物体の特徴に基づいた画像検索を行うことを目的とする。…

sentiment_very_satisfied 2018年6月11日(Mon) OpenCV 3 Python 3 #OpenCV

OpenCV: セットアップ

Windows / Java 環境で OpenCV を使うまでのセットアップ手順。OpenCV の Java バインディングは JAR ファイルとその JNI のネイティブライブラリ (Windows であれば DLL) の 2 ファイルで構成されている。…

done 2018年6月6日(Wed) OpenCV 3 #OpenCV

OpenCV: 特徴点/特徴量の抽出

edit_note 2018年6月6日(Wed) OpenCV 3 Python 3 #OpenCV

Julia: 目的別機能

done 2018年6月1日(Fri) Julia 0.6 #julialang

判断の選好逆転

完全に合理的な判断ができているのであれば前提条件が変わらない限り判断が変わることはない。しかし人は問題のとらえ方に流されて異なる判断を行いがちである。

done 2018年5月31日(Thu)

OpenCV: 目的別機能

done 2018年5月30日(Wed) OpenCV 3 #OpenCV

Julia: グラフの描画

PyPlot はプロットライブラリである matplotlib.python のインターフェースを Julia から使えるようにしたパッケージ。ローカルに導入する場合は REPL で PyPlot パッケージを導入しておく。…

done 2018年5月30日(Wed) Julia 0.6 #julialang

OpenCV 3

edit_note 2018年5月28日(Mon) OpenCV 3 #OpenCV

画像収集

機械学習を行う目的で対象物の画像を収集する方法について現時点での手順をまとめておく。処理は大まかに以下のステップを想定しているが:

sentiment_very_satisfied 2018年5月24日(Thu) Node.js 8 ES2015 #Azure #GCP #Flickr #AWS

ボロノイ領域

ボロノイ領域 (Volonoi region) は

edit_note 2018年5月13日(Sun)

意思決定

edit_note 2018年5月12日(Sat)

最大エントロピー法

最大エントロピー法 (maximum entropy model) は前提条件だけで明確な確率分布を導き出せない事象に対して、全体のエントロピーが最大化する方向に確率分布を割り当てる方法。条件が設定されていないのであれば、条件外の余計な偏りを含まない最も不確かなモデルが採用されるべきという考え方に基づく。…

sentiment_satisfied 2018年5月10日(Thu) #NLP #MaximumEntropy

論文翻訳: A Simple Introduction to Maximum Entropy Models for Natural Language Processing

自然言語処理における多くの問題は、言語学的文脈を用いて言語学的クラスを予測する言語学的分類問題と考えることができる。最大エントロピーモデルは特定の言語学的コンテキストで発生する特定の言語学的クラスの確率を推定するために、様々な文脈的根拠を組み合わせるクリーンな方法を提供する。…

sentiment_very_satisfied 2018年5月8日(Tue) 1997年の論文 #NLP #MaximumEntropy

Rust 開発環境

edit_note 2018年4月27日(Fri) Rust 1.25 #Rust

The Rust Programming Language ノート

The Rust Programming Language 2nd ED. からのメモ書き。

done 2018年4月27日(Fri) Rust 1.25 #Rust

S2 Geometry Library

S2 Geometry Library は球面上の領域を扱うための空間インデクシング (spatial indexing) ライブラリ。主に地球を対象としており、地理データを分割統治や索引付けのためのセル (区画) に分割することを目的としている。…

done 2018年4月20日(Fri) #S2

B+Tree

B-Tree の派生型である B+Tree は、個々のキーの検索効率を下げる代わりに、ある範囲のデータをまとめて取得するケースに適した構造を持つ。B-Tree が中間ノードにもデータエントリを保持していたのに対して、B+Tree では末端の葉にのみエントリを保持し、葉は相互にリンクしたリストの構造を持っている。…

done 2018年4月15日(Sun) #BTree

R-Tree

R-Tree は深さ平衡木 (depth-balanced tree)。葉ノード

edit_note 2018年4月7日(Sat) #RTree

論文翻訳: The Priority R-Tree: A Practically Efficient and Worst-Case Optimal R-Tree

空間インデックス (spatial index) のためのアルゴリズム Priority R-Tree (2004) に関する論文。

edit_note 2018年4月5日(Thu) 2004年の論文 #RTree

論文翻訳: From Word Embeddings To Document Distances

我々はテキスト文書間の新しい距離関数である Word Mover's Distance (WMD) を提示する。我々の研究は文中の局所的な共起から単語の意味的に重要な表現を学習する単語埋め込み (word embedding) の最近の研究結果に基づいている。…

edit_note 2018年3月29日(Thu) 2015年の論文 #NLP #WordMoversDistance #WMD

論文翻訳: PositionRank: An Unsupervised Approach to Keyphrase Extraction from Scholarly Documents

学術論文からキーフレーズを抽出するためのアルゴリズム PositionRank (2017) に関する論文。

edit_note 2018年3月28日(Wed) 2017年の論文 #NLP #PositionRank

可変長整数エンコーディング

いくつかの可変長整数エンコーディング実装について。このページの話題は任意精度整数演算ではなくデータ圧縮の目的で整数値をエンコーディングする方法である。

done 2018年3月26日(Mon)

社会心理学

done 2018年3月19日(Mon)

React

React は SPA (Single Page Application) を開発するためのフレームワーク。JSX を含む JavaScript ソースやその依存ファイルをブラウザが解釈可能な形式にトランスコンパイルし、最終的に一般的な HTTP サーバにデプロイできる形の静的なファイルセットを作成する。…

sentiment_very_satisfied 2018年3月6日(Tue) Node.js 8 React 16 #nodejs #reactjs

英語ノート

英語のフレーズなどを記述しておくノート。

sentiment_very_satisfied 2018年2月27日(Tue)

npm

npm (Node package manager) は JavaScript 用のパッケージマネージャで世界最大級のソフトウェアレジストリ。JavaScript 実行環境である Node.js のデフォルトのパッケージマネージャとして使用されている。…

edit_note 2018年2月23日(Fri) Node.js 8 npm 5 #nodejs #npm

Node.js セットアップ

edit_note 2018年2月22日(Thu) Node.js 8 npm 5 #nodejs #npm

Docker セットアップ

edit_note 2018年2月22日(Thu) Ubuntu 14.04 Docker 17 #Docker

最小経路問題

重み付きグラフ上のある頂点 \(s\) から別の頂点 \(t\) まで到達する経路の中で最もコストの低い経路を求める問題 (重みなしグラフの場合は各辺の重みを 1 とする)。最小シュタイナー木問題において 2 点を使った最小コストの部分グラフを作成することと同じ。…

done 2018年2月20日(Tue) #graphtheory

最小全域木問題

いくつかの頂点と、各頂点の間をつなげるコスト (辺の重み) が定義されており、最も小さいコストですべての頂点をつなぐ最適化問題。コストは 0 より大きく接続不能 (つまりコスト \(\infty\)) も取り得る。…

done 2018年2月18日(Sun) #graphtheory

タグ抽出

タグ抽出 (tag extraction) またはキーワード抽出の目的は文書の内容を代表していると思われる単語を選択する処理。他に自然文の構文構造を素性として重み付けする方法などいくつか過去の研究ある。…

done 2018年2月15日(Thu) JUNG 2.1 #NLP

グラフ理論 序説

グラフ理論 (graph theory) は数学的概念であるグラフを説明する理論。問題を頂点と辺からなるグラフに抽象化し、その離散構造そのものを論議の対象とする。

sentiment_very_satisfied 2018年2月14日(Wed) #graphtheory

論文翻訳: The Use of MMR, Diversity-Based Reranking for Reordering Documents and Producing Summaries

本稿はテキスト検索と要約の文脈において情報関連性とクエリー関連性を統合する方法を提示する。Maximal Marginal Relevance (MMR) の判定基準は、検索された文書の順位を変更したり、テキスト要約のための適切な一節を選択する際に、クエリーの関連性を維持しながら冗長性を減らすことを目的としている。…

sentiment_very_satisfied 2018年2月12日(Mon) 1998年の論文 #NLP #MMR

コサイン類似度

ベクトル空間モデル (vector space model)、または単語ベクトルモデル (term vector model) はテキスト文書やそれに類似する任意のオブジェクトを識別子のベクトルとして表現するための代数空間モデルである。…

sentiment_satisfied 2018年2月8日(Thu)

論文翻訳: LexRank: Graph-based Lexical Centrality as Salience in Text Summarization

我々は推計学的な graph-based のグラフに基づいて自然言語処理におけるテキスト単位の相対的重要度を算出する方法を導入し、テキスト要約 (TS; text summarization) 問題でこの手法をテストする。…

edit_note 2018年2月1日(Thu) 2004年の論文 #NLP #LexRank

自動要約

自動要約 (auto summalization) または文書要約は文書の要約を作成することを目的としたテキスト短縮の処理。対象とする文書が一つの場合を単一文書要約、特定の文書セットを要約する場合を複数文書要約と呼ぶ。…

sentiment_very_satisfied 2018年2月1日(Thu) JUNG 2.1 #NLP

論文翻訳: TextRank: Bringing Order into Texts

この論文ではテキスト処理において graph-based ランキングモデルである TextRank を導入し、このモデルが自然言語アプリケーションにおいて有効に機能するかを示す。特に、キーワード抽出と文抽出の 2 つの革新的な教師なし学習の方法を提案し、得られた結果が既存のベンチマークで過去に公表された結果と適合することを示す。…

sentiment_very_satisfied 2018年2月1日(Thu) 2004年の論文 #NLP #TextRank

Holt-Winters 法

ホルト-ウィンターズ法 (Holt-Winters method) は指数平滑化法における時系列の変動にトレンドと季節変動を追加し、それぞれの指数平滑の重ね合わせを期待値として算出する方法。…

sentiment_satisfied 2018年1月31日(Wed) #HoltWinters

行動経済学

edit_note 2018年1月28日(Sun)

指数平滑化法

指数平滑化法 (exponential smoothing) は時系列データを平滑化する代表的な時系列分析手法。観測値の中でより新しいデータに大きな重みを設定し、過去になるほど指数関数的に重みを減少させた期待値 (移動平均) を算出する。…

done 2018年1月22日(Mon)

Julia 言語の特徴

sentiment_satisfied 2018年1月16日(Tue) Julia 0.6.2 #julialang

Jupyter Notebook

Jupyter Notebook はライブコード、方程式、視覚化、テキストを含むドキュメントを作成して共有できるオープンソースの Web アプリケーション。データのクリーニングと変換、数値シミュレーション、統計モデリング、データの視覚化、機械学習などを目的として使用される。…

edit_note 2018年1月5日(Fri) Jupyter Notebook 4.4.0 #JupyterNotebook

Chainer セットアップ

Chainer はニューラルネットワークを記述するためのフレームワーク。既存の命令型フレームワークよりも "Define and Run" で柔軟性を重視しており宣言的にネットワークを記述することができる。…

done 2017年12月16日(Sat) Ubuntu 16.04 Chariner 3.2 CuPy 2.2 #chainer

Python 3 セットアップ

この記述では Python 3 を使用して virtualenv で環境を切り替え pip でライブラリの管理を行うことをゴールとする。

edit_note 2017年12月16日(Sat) Windows 10 Ubuntu 16.04 #python

MXNet セットアップ

Apache MXNet は高速でスケーラブルな機械学習フレームワーク。Gluon という高レベル API が付属しており AWS が正式にサポートしている。

edit_note 2017年12月12日(Tue) mxnet 0.9.3a Scala 2.11 Windows 10 Ubuntu 16.04 #mxnet

メタプログラミング

Julia はコードを AST (abstract syntax tree; 抽象構文木) として評価する機能を持っている。ここでの評価とはコード上に AST を展開し実行することを意味する。…

sentiment_satisfied 2017年12月12日(Tue) Julia 0.6.2 #julialang

Recurrent Neural Network

Recurrent Neural Network (RNN; 再帰型ニューラルネットワーク) は時系列の情報パターンを認識するように設計されたニューラルネットワーク。自然言語処理、遺伝子、センサーデータ、株式など、データのシーケンスを節に分解して時系列として扱うことができるデータを対象としている。…

edit_note 2017年12月1日(Fri) #RNN

多層パーセプトロン

多層パーセプトロン (MLP; multilayer perceptron) または Feedforward Neural Network, Deep Feedforward Network は典型的な深層機械学習のためのネットワークモデル。…

edit_note 2017年12月1日(Fri) #MLP #DNN #deeplearning

React Native

React Native

edit_note 2017年11月30日(Thu) React Native 0.49

Google Fusion Tables

Google Fusion Tables は Google が提供するデータベース。

edit_note 2017年11月25日(Sat) Fusion Tables API v2

Fusion Tables Client API for Java/Scala

Java やその他の JavaVM 言語は Maven, Gradle, sbt などのビルドツールを利用して Maven リポジトリの Fusion Tables API のクライアントライブラリを利用するのが早いだろう。…

sentiment_very_satisfied 2017年11月25日(Sat) Fusion Tables API v2 Drive API v3 Java 8 Scala 2.12

MXBean

edit_note 2017年11月23日(Thu) Java 9 #MXBean

通知

Service Worker はブラウザネイティブと同じ UI でユーザに通知を行うことができる。通知方法には 2 種類あり、ユーザがアプリを起動していないときでもローカルで起動しているアプリからユーザに通知を行う方法。…

edit_note 2017年11月22日(Wed) W3C Service Workers Nightly Chrome 61 #ServiceWorker

キャッシュ制御

Service Worker の目的の一つはキャッシュ制御によるサイトの高速化である。ブラウザのキャッシュをサイト実装者が詳細に制御することで、動的に変化しないコンテンツ (HTML, CSS, JS, 画像等) をデバイスローカルにキャッシュし Web アプリケーションの表示を高速化する。…

done 2017年11月22日(Wed) W3C Service Workers Nightly Chrome 61 #ServiceWorker

インストール

edit_note 2017年11月20日(Mon) W3C Service Workers Nightly Chrome 61

Service Worker

サービスワーカー (service worker) はクライアント (ブラウザ) のバックグランドで実行される JavaScript 処理。HTML を操作するユーザインターフェースのスクリプトとは別のコンテキストで動作する。…

sentiment_satisfied 2017年11月19日(Sun) W3C Service Workers Nightly Chrome 61 #ServiceWorker

Getting Started with Progressive Web Apps

Progressive Web Apps (PWA) は Google が開発したスマートフォン/タブレット向けのアプリケーションアーキテクチャ。HTML, JavaScript, CSS で作成できる。…

edit_note 2017年11月16日(Thu)

メルカトル図法

メルカトル図法 (Mercator projection) またはメルカトル投影は円筒投影法を用いて球体表面の 2 次元座標を \(x\),\(y\) 座標の平面に投影する方法。ここでは地球上の地理の投影について述べている。…

sentiment_satisfied 2017年11月16日(Thu)

Latent Dirichlet Allocation

edit_note 2017年10月30日(Mon) #LDA

Note: ビットコインのブロックチェーン

BCCC 2017 で行った bitcon のブロックチェーン技術に関するノート。

sentiment_satisfied 2017年10月27日(Fri) #bitcoin #blockchain

データ型

sentiment_satisfied 2017年10月25日(Wed) Java 9 Scala 2.12 Julia 0.6 #java #scala #julialang

制御構文

edit_note 2017年10月25日(Wed) Java 9 Scala 2.12 Julia 0.6 #java #scala #julialang

文字セット一覧

Charset に定義されている文字セット。

edit_note 2017年10月21日(Sat) Java 8 Java 9

タイムゾーン一覧

TimeZone で定義されている通貨の一覧。

edit_note 2017年10月21日(Sat) Java 8 Java 9

ロケール一覧

Locale で定義されている通貨の一覧。

edit_note 2017年10月21日(Sat) Java 8 Java 9

通貨一覧

Currency で定義されている通貨の一覧。

edit_note 2017年10月21日(Sat) Java 8 Java 9

システムプロパティ一覧

System で定義されている通貨の一覧。

edit_note 2017年10月21日(Sat) Java 8 Java 9

ポアソン分布

単位時間あたりに平均 \(\mu\) 回観測される事象が、単位時間あたりに \(r\) 回観測される確率はポアソン分布 (poison distribution) に従う。\( P(X=r) = \frac{e^{-\lambda} \lambda^r}{r!}, \ \ r=0,1,\ldots\s \)

edit_note 2017年10月19日(Thu)

文字列の操作

sentiment_very_satisfied 2017年10月17日(Tue) Java 9 Scala 2.12 Julia 0.6 #java #scala #julialang

数値の操作

sentiment_very_satisfied 2017年10月17日(Tue) Java 9 Scala 2.12 Julia 0.6 #java #scala #julialang

Julia - 演算子

Julia の特徴的な演算子機能としては、べき乗と逆除算が用意されていること、そして言語機能のレベルで演算子のベクトル化が可能であることが挙げられる。C/C++ や Java などの言語知識があれば多くは読み飛ばしてもかまわない。…

done 2017年10月15日(Sun) Julia 0.6.0 #julialang

データ型・変数・関数

edit_note 2017年10月14日(Sat) Julia 0.6.0 #julialang

スクラップブック

done 2017年10月14日(Sat) Julia 0.6.0 #julialang

有効数字

有効数字 (significant figures of number) は実数の分解能を意味する数字。数値のどの桁までが意味を持つかを表している。

done 2017年10月14日(Sat)

機械イプシロン

機械イプシロン (machine epsilon) は浮動小数点演算の丸めによって発生する相対誤差の上限を意味する。これはコンピュータ演算を使った数値解析特有のトピックである。macheps, unit roundoff または計算機イプシロンとも呼ばれ記号 \(\epsilon\), \({\bf u}\) で表される。…

done 2017年10月14日(Sat)

相関係数

相関係数 (correlation coefficient) は確率変数 \(X\) に対する別の確率変数 \(Y\) の線形従属性を示す尺度。最も一般的なものは線形相関係数 (linear correlation coefficient) で積率相関係数 (product-moment correlation coefficient)、Peason の \(r\) (Pearson's r) とも呼ばれる。…

sentiment_satisfied 2017年10月14日(Sat)

TF-IDF

TF-IDF (term frequency - inverse document frequency) はある単語がコーパス内の文書に対してどれほど重要であるかを示す統計的数値。TF-IDF 値は文書内に単語が出現する回数に比例して増加するが、コーパス内での単語の出現頻度によって相殺されることが多く、一般に頻繁に出現する単語を調整する利点をもつ。…

sentiment_satisfied 2017年10月12日(Thu) #TF-IDF

形態素解析

自然言語処理ではよく単語を文章を構成する「意味を持つ情報」の最小単位として扱っている。ラテン語圏の言語は単語の区切りに空白を使用しているためプログラムでの抽出は比較的容易だが、日本語の場合は文の中から単語を識別し適切に分割する実装が必要となる。…

sentiment_satisfied 2017年10月12日(Thu) Kuromoji #kuromoji #形態素解析

マルコフ連鎖モンテカルロ法

マルコフ連鎖モンテカルロ法 (Markov chain Monte Carlo methods; MCMC 法) は確率分布から疑似乱数サンプリングを行うためのアルゴリズム。ある時点の状態 \(x^{(t)}\) からランダムに採択した次の状態 \(x^{(t+1)}\) へ確率付きで移動することから "マルコフ連鎖", "モンテカルロ法" の名前で呼ばれる。…

edit_note 2017年10月10日(Tue) #MCMC

マルコフ連鎖

時刻やステップの推移で状態空間 \(\{1, 2, \ldots, k\}\) のいずれかの値を持つ確率変数について考える。ある時点 \(t\in(0, 1, \ldots)\) での確率変数を \(x^{(t)}\) とする。…

done 2017年10月10日(Tue)

疑似乱数サンプリング

疑似乱数サンプリング (pseudo-random number sampling) は与えられた確率分布に従う擬似乱数を生成する数値的手法。一般に一様乱数 \(u\) を利用して一様ではない分布のサンプリングを行う。…

edit_note 2017年10月10日(Tue)

ベータ分布

ベータ分布 (beta distribution) は以下の式で表される連続確率分布。確率変数は \(0 \lt x \lt 1\) の範囲を取る。\( P(x; \alpha, \beta) = \frac{x^{\alpha-1}(1-x)^{\beta-1}}{B(\alpha,\beta)}, \,\,\, \alpha \gt 0, \beta\gt 0 \) ここで \(B(\alpha,\beta)\) はベータ関数である。…

done 2017年10月8日(Sun)

不動点反復法

関数の不動点 (fixed-point) とは関数によって自分自身を得る点のこと。つまり \(f(x) = x\) が成り立つ点 \(x\) は関数 (写像) \(f\) の不動点である。

edit_note 2017年10月6日(Fri)

モンティ・ホール問題

1990 年に話題になったとき、著名な数学者を含む多くの人が「同じ確率だから選択を変える必要はない」と答えた問題。最終的な状況を客観視すると、選択可能な箱が 2 つあってそのうちのどちらかが当たりであることから、どちらを選んでも確率は 1/2 に思える。…

sentiment_satisfied 2017年10月5日(Thu)

ベルヌーイ分布

結果が {0, 1}、{true, false}、{OK, NG} といった 2 値しかとりえない独立した事象の試みをベルヌーイ試行 (bernoulli trial) と呼ぶ。これらの結果は統計で扱う便宜上 \(b \in \{0,1\}\) に置き換えて考える。…

done 2017年10月4日(Wed)

カテゴリカル分布

それぞれ独立した確率 \(p_k\) を持つ \(K\) 個の事象 (カテゴリカル変数; categorical variable) が存在し、1 回の独立した試行でそのいずれか一つが観測される離散確率分布をカテゴリカル分布 (categorical distribution) と呼ぶ。…

done 2017年10月2日(Mon)

カイ二乗分布

\(\vector{x} = (x_1, x_2, \cdots, x_k)\) が標準正規分布に従う確率変数であるとき、その自乗和 \( Z = \sum_{i=1}^k x_i^2 \) は自由度 \(k\) のカイ二乗分布に従う (\(\chi_k^2\) と表す)。…

edit_note 2017年10月1日(Sun)

多項分布の推定

事象 \(k \in \{1,2,\cdots,K\}\) がそれぞれ生起確率 \(\vector{p} = (p_1,p_2,\cdots,p_K)\) に従って観測されるとき、標本 \(x=k\) が観測される確率 \(P(k)=p_k\) の分布はカテゴリカル分布に従う。…

sentiment_very_satisfied 2017年10月1日(Sun)

多項分布

独立した \(K\) 個の事象 \(k \in \{1, 2, \ldots, K\}\) のいずれか一つが観測される確率をそれぞれ \(\vector{p} = (p_1, p_2, \ldots, p_K)\) とする。…

sentiment_satisfied 2017年9月30日(Sat) #multinomial

二項分布

試行において 1 が観測される確率 \(p\) のベルヌーイ試行を \(n\) 回行ったとき (あるいは \(n\) 個同時に行ったとき) に 1 が \(x\) 個観測される確率は \(p\) と \(n\) をパラメータとした以下の確率質量関数で表される。…

done 2017年9月30日(Sat)

高速逆二乗根

高速逆二乗根 (fast inverse square root) は浮動小数点と定数を用いて \(\frac{1}{\sqrt{x}}\) を高速に演算する方法。

edit_note 2017年9月29日(Fri)

浮動小数点演算

浮動小数点演算 (floating-point arithmetic) は実数をある範囲の精度で近似した数式表現で行う算術演算のこと。この近似表現を浮動小数点数という。科学技術計算では非常に大きな値や小さな値を扱う代わりに、観測精度の限界から必要な有効数字が保証されていれば十分であることが多い。…

sentiment_satisfied 2017年9月29日(Fri)

Scala による数値演算アルゴリズム

学生の頃に Numerical Recipes in C という多くの実数演算アルゴリズムの載った書籍があった。英語版は 3rd Ed. が出ているようだが日本語版は出ていない。アルゴリズム辞典や数値演算ライブラリを作る気はないのだが系統としてはあの本の方向で行ければ良いと思っている。…

done 2017年9月27日(Wed)

正規分布の推定

平均 \(\mu\)、分散 \(\sigma^2\) をパラメータとする正規分布 \({\rm Norm}(\mu,\sigma^2)\) にもとづいて確率変数 \(x\) が観測されるとき、その確率密度関数は以下のように表される。…

sentiment_very_satisfied 2017年9月18日(Mon)

二項分布の推定

事象 \(b \in \{0,1\}\) のベルヌーイ試行で \(b=1\) となる確率を \(p\)、試行回数を \(n\) とした時、1 が \(x\) 回観測される (出た数の合計が \(x\) となる) 確率関数は二項分布 \(P(x;n,p)\) に従う。…

sentiment_very_satisfied 2017年9月18日(Mon)

ND4J ユーザガイド

edit_note 2017年9月17日(Sun)

最尤推定とMAP推定

ある生起確率 \(\vector{\theta}=(\theta_1, \ldots, \theta_N)\) に基づいてデータ \(\vector{X} = (x_1, x_2, \ldots, x_N)\) が観測されるとき、あるデータ \(\vector{X}\) が観測される確率は \(\vector{p}(\vector{X}|\vector{\theta})\) で表される (条件付き確率)。…

edit_note 2017年9月17日(Sun)

ガンマ関数と階乗

ガンマ関数 (gamma function) は 0 または負の整数以外の複素数に対して以下の積分で定義される特殊関数。\( \Gamma(z) = \int_0^\infty t^{z-1} e^{-t} dt \) また漸化式 \(\Gamma(z+1) = z \Gamma(z)\) でも表すことができる。…

sentiment_very_satisfied 2017年9月14日(Thu)

ベータ関数

ベータ関数 (beta function) は以下の積分で定義される特殊関数。\( B(x, y) = B(y, x) = \int_0^1 t^{x-1} (1-t)^{y-1} dt \) またガンマ関数を使用して以下のように表すこともできる。…

done 2017年9月14日(Thu)

ディリクレ分布

ディリクレ分布 (dirichlet distribution) は独立した事象 \(k \in \{1, 2, \cdots, K\}\) がそれぞれ \(x_k=\alpha_k - 1\) 回観測されたときに各事象の生起確率が \(p_k\) である確率を示す連続した確率密度関数。…

sentiment_very_satisfied 2017年9月10日(Sun)

ラグランジュの未定乗数法

ラグランジュの未定乗数法 (method of Lagrange multiplier) は制約付き最適化問題で極値を求めるための手法である。ある 1 つ以上の条件 \(g(x)=0\) の下で関数 \(f(x)\) が最大値/最小値を取ることを式 (\(\ref{optimal_consumption}\)) のように表す。…

done 2017年9月10日(Sun)

USB for Java

done 2009年5月21日(Thu) #usb4j

usb4j の機能

usb4j は USB デバイスと通信する Java アプリケーションを開発するためのライブラリです。Java の高い移植性を生かしてプラットフォームごとに異なる USB 実装をより抽象化した API で利用することを目的としています。…

edit_note 2009年5月21日(Thu) #usb4j

USB for Java

USB for Java は Java から USB デバイスと通信するためのライブラリです。

edit_note 2009年5月6日(Wed) #usb4j

HTTP Sniffer Proxy

Java 製のプロキシ型 HTTP リクエスト/レスポンス Sniffer。クライアントから想定通りのリクエストが出ているか、サーバがきちんと Cookie を返しているかなど、ブラウザのソース表示だけでは分からない通信プロトコルを調査する Web ディベロッパー向けツールです。…

done 2009年4月16日(Thu) #HTTPRroxy

1. 導入

edit_note 2008年10月22日(Wed) #Garmin #GPS

Garmin Device Interface Specification

sentiment_very_satisfied 2008年10月22日(Wed) #Garmin #GPS

6. アプリケーションプロトコル

sentiment_very_satisfied 2008年10月22日(Wed) #Garmin #GPS

2. プロトコル層

edit_note 2008年10月22日(Wed) #Garmin #GPS

7. データ型

sentiment_very_satisfied 2008年10月22日(Wed) #Garmin #GPS

3. 物理プロトコル

sentiment_very_satisfied 2008年10月22日(Wed) #Garmin #GPS

4. リンクプロトコル

done 2008年10月22日(Wed) #Garmin #GPS

5. アプリケーションプロトコルの概要

sentiment_satisfied 2008年10月22日(Wed) #Garmin #GPS

SWT レイアウトマネージャ

SWT は AWT とは別に専用のレイアウトマネージャを用意していますが、機能や役割は AWT のそれと同じです。

sentiment_very_satisfied 2008年3月22日(Sat) Java 6

Java GUI

現在 Java で利用されている主な GUI (Graphical User Interface) ライブラリは AWT、Swing、SWT の 3 つです。ただし AWT のみによる GUI アプリケーション開発は既にほとんど行われておりません。…

sentiment_very_satisfied 2008年3月22日(Sat) Java 6

Standard Widget Toolkit

SWT (Standard Widget Toolkit) は IBM が Eclipse 用に開発した GUI ライブラリです。JNI を使用することで昔の Swing で問題となっていたグラフィック描画のボトルネックを回避し、当時の Swing ベースのアプリケーションと比較して格段の速さを誇っていました。…

done 2008年3月22日(Sat) Java 6

公開鍵暗号 入門

異なる鍵 A と B が存在した場合、A で暗号化したデータが B でしか復号化できないといった特殊な鍵の組み合わせを非対称鍵 (asymmetric key) と言う。公開鍵暗号 (public-key encryption) は非対称鍵の特性を利用して鍵の片方を暗号化用に相手に公開し (公開鍵)、もう片方を復号化用に非公開にしておく (秘密鍵) 方式。…

done 2008年3月22日(Sat)

共通鍵暗号

done 2008年3月22日(Sat) #AES

Secure Sockets Layer

SSL (secure sockets layer) は公開鍵暗号と共通鍵暗号、電子署名、公開鍵証明書などの技術を組み合わせ、暗号化による盗聴防止、改ざん・破損の検出、通信相手の証明などを一度に実現している通信技術。…

done 2008年3月22日(Sat) #SSL

電子署名

電子署名 (digital signature) は文書に対する承認と、文書内容の保障を電子的に付け加えるための暗号技術。公開鍵を使用することにより他人によって行われた署名でないことと、署名された時点から文書内容に変更がないことの 2 点を証明することができる。…

sentiment_satisfied 2008年3月21日(Fri)

Swing

Swing はプラットフォーム依存のウィジェットに頼らず、全てのコンポーネント描画と状態の管理を Java で実装した GUI ライブラリです。元々 AWT の機能の薄さを補うために Sun が Netscape 社 (当時) と共同で開発した Java Foundation Class (JFC) という GUI ライブラリが J2SE 1.2 から標準となりました。…

edit_note 2008年3月19日(Wed) Java 6

Jython of Python 2

Jython は動的オブジェクト指向スクリプト言語 Python の Java 実装版です。java.net スクリプトプロジェクトの一つとしてとして開発が進められています。

edit_note 2008年3月15日(Sat) Java 6

Rhino of JavaScript

Rhino は元々 Mozilla プロジェクトで開発されていた Pure Java 製の JavaScript (ECMAScript) エンジンです。JDK 1.1 からの長い歴史を持ち (そして一時期の暗黒時代を経て)、Java SE 6 の Scripting API 実装として標準バンドルされています。…

sentiment_satisfied 2008年3月15日(Sat) Java 6

Abstract Window Toolkit

AWT (Abstract Window Toolkit) は初期の Java で標準として用意されていた GUI ライブラリです。それまでプラットフォームごとに使い方が異なっていたウィジェット (GUI コンポーネント) を抽象化し、Java から統一した標準 API として使用できるようにしています。…

edit_note 2008年3月15日(Sat) Java 6

システムトレイ

Java SE 6 からシステムトレイ (タスクトレイ) が利用できるようになりました。メール着信のお知らせツール (biff) やウィンドウレスで常駐するアプリケーションで便利な機能です。…

done 2008年3月15日(Sat) Java 6

Berkeley DB

Berkeley DB はカリフォルニア大バークレイ校で開発されたデータベースライブラリ。データベースと言っても RDBMS のように SQL が使用できたり関連モデルで設計されているわけではなく、ファイル上にインデックス付けされたデータ構造をプロシジャ形式のインターフェースを用いて検索、更新出来るライブラリ (Database Manager) です。…

done 2008年3月4日(Tue) Berkeley DB

Solaris 10 セットアップ

導入直後の root ユーザのホームディレクトリは / に設定されているがセキュリティ面でも運用面でもろしくないので変更する。

sentiment_satisfied 2008年3月1日(Sat) Solaris 10

Solaris 10 for x86 インストール

Solaris 10 8/07 for x86 のダウンロードから起動までの手順を解説する。なお作業は VMWare のゲスト OS として行っているため通常のインストールと異なる部分が若干あるかもしれない。…

sentiment_satisfied 2008年3月1日(Sat) Solaris 10

Scripting for the Java™ Platform

Scripting for the Java™ Platform は JSR 223 で標準化され Java SE 6 から導入されたスクリプト API。文字列や外部ファイルに記述されているスクリプトを Java 上で実行することができる。…

done 2008年3月1日(Sat) Java 6

GIF 画像出力

米 Unisys 社が取得していた GIF の LZW 圧縮に関する特許が2004年6月20日に切れ Java SE 6 から GIF への出力がサポートされた。このページでは Java SE 6 の Image I/O を使用してアニメーション GIF を作成する方法について述べる。…

sentiment_very_satisfied 2008年1月27日(Sun) Java 6

Date and Time Formats

done 2007年8月16日(Thu)

XML Path Language (XPath) 2.0

sentiment_very_satisfied 2007年8月14日(Tue)

The Content-MD5 Header Field

edit_note 2006年3月23日(Thu)

The Content-Disposition Header

edit_note 2000年7月5日(Wed)

HTTP State Management Mechanism

edit_note 1999年11月7日(Sun)

The Finger User Information Protocol

edit_note 1999年10月22日(Fri)

The Internet Gopher Protocol

edit_note 1999年10月18日(Mon)

The Internet Gopher Protocol

edit_note 1999年10月18日(Mon)

SIMPLE MAIL TRANSFER PROTOCOL

edit_note 1999年10月9日(Sat)

SIMPLE MAIL TRANSFER PROTOCOL

edit_note 1999年10月9日(Sat)

Echo Protocol

edit_note 1999年8月2日(Mon)

UTF-8, a transformation format of Unicode and ISO 10646

edit_note 1999年7月8日(Thu)

Hypertext Transfer Protocol - HTTP/1.1

sentiment_very_satisfied 1999年6月11日(Fri)

Uniform Resource Locators (URL)

edit_note 1999年3月21日(Sun)