シャミアの秘密分散法 ~漏洩に強い鍵分散技術~

秘密分散法とは? 秘密分散法とは、任意のデータをいくつかに分散させ、隠しておくための方法。 例えば、パスワード文字列として、"APPLE"という文字列をどこかに隠したいとしよう。普通にどこかのサーバーに平文でそのパスワードを保存してしまえば、そのサ…

Golangのメソッドチェーンが長くなってしまう問題

gormなど、メソッドチェーンを多用できるライブラリを使っている時に、 どうしても一行が長くなってしまう問題がある。 実際のコード: if err := db.Model(&User{}).Where(&User{Name: "hogehoge"}).Count(&cnt).Error; err != nil { panic(err) } 本当はこ…

HBaseを支えるLSM-tree

最近HBaseについてちょくちょく勉強しているので、まとめていこうかと 今回は、HBaseのストレージ構造であるLSM-treeについて。 LSM-treeとは RDBMSがストレージ構造としてB-Tree(特にB+Tree)を用いているのに対して、HBaseはLog-structured merge-tree(LSM-…

HaskellでFunctional Reactive Programming(FRP)を試してみる

HaskellでFRPをするためのライブラリ"Sodium"を少し触ってみました。 sodium: Sodium Reactive Programming (FRP) System | Hackage Sodiumは、C#, C++, Java, Scala, Haskellに対応していて、各言語間で類似したインターフェースを持つように設計されたFRP…