Kengo's blog

Technical articles about original projects, JVM, Static Analysis and TypeScript.

最近のアウトプット

ここ数週間で作ったものについてまとめておきます。

Javaのコンストラクタに関する知識と私見

GWの時間をつぎ込んで書いたのがこれです。Javaのコンストラクタはきれいにコーディングする上でもJVMの動作を理解する上でも重要なファクターであると感じており、現時点での自分の意見をまとめたいと思っていました。
Java constructor
特に最終章で扱っている例外の投げ方は、Webアプリのような長く生きるプログラムでは必ず配慮すべき問題であると言っていいでしょう。
なにか名前が付いていないかと探したのですが、“エラーアトミック性”以上に近い用語を見つけられませんでした。インスタンスの状態を保つわけではないので、厳密にはこれも適当でないと考えています。

HTMLのcanvas要素から画像を生成する

Canvasに描いた図形をクライアントにダウンロードさせることはできないか?と考えた結果です。ダウンロードまではさすがにできなかったのですが、PNG画像として表示させることができました。
サーバーで画像を作ってダウンロードさせるのは演算量と転送量の両面でやりたくないので、ブラウザの差異さえうまく吸収できればこの手法は流行るかもしれませんね。

forked: Node Garden with Gravity - jsdo.it - share JavaScript, HTML5 and CSS

ネステッドループ結合の可視化

ちょっとRDBMSの内部について話すときに教材がほしいなと思い作成しました。jsdo.itでの教材作成は先々月に作ったJVM simulatorに続き2作目となります。

Visual Nested Loop - jsdo.it - share JavaScript, HTML5 and CSS


今までネステッドループを説明する場合はトランプを用意して説明していたため時間がかかる上に2〜3人しか相手できませんでしたが、これならプロジェクタを使って10数人に見せることもできます。地味で見栄えが良くないのが玉に瑕ですが、まあ許容範囲でしょう。
なおソートマージ結合についてはこちらにアニメーションがあります。ハッシュ結合については図を探すよりもJavaのHashMapの実装を読んだ方が早く理解できるかもしれません。