しらとりのブログ

社会人ひよこプログラマのtil

匿名クラスをシリアライズするときの奇妙な挙動について

TL;DR 非staticのコンテキストで宣言された匿名クラスはエンクロージングインスタンスへの非transientな参照を持つ 匿名クラスでオブジェクトの初期化 Javaでは匿名クラスと初期化ブロックを組み合わせて以下のような書き方ができます。 User user = new Use…

C#で最長増加部分列(LIS)の実装サンプル

競プロTips勉強メモです。 今日の一問は、トランプ挿入ソート!現代AtCoderでは出づらいストレートな知識勝負。問題の言い換え→アルゴリズムによる計算量の最適化、という流れは、まさに競プロ的。問題の言い換えまでは頑張ってみよう!#chokudai今日の一問h…

Lossless JPEGとは

DICOM通信で多用されるJPEG Lossless, Nonhierarchical, First- Order Prediction Processes 14 Selection Value 1 について規格書を一通り眺めたので簡単にまとめます。 医用画像用のJPEG JPEGなのでISO/IEC 10918-1にコーデックに関することがまとめられて…

DICOMでJPEGを扱うときの注意点

DICOMを知っている人向けです。 DICOMでは転送構文というものが定義されており、一般でいうところのエンコーディング規則に相当します。転送構文にはJPEGコーデック指すものが含まれていますが、その中には特殊な形式のJPEGが存在するので扱いには気を付けな…

Javaからexeを起動したらデッドロックしてしまった話

TL;DR 下記の条件をすべて満たすとデッドロックします。 呼び出されるexeが標準出力や標準エラー出力に何か書き込むプログラムを持つ ProcessBuilder.start()やRuntime.exec()の後に何もせずProcess.waitFor()する 解決策はProcessが持つストリームのバッフ…