Prometheus Operator で k8s を監視する

Posted on 日 26 7月 2020 in 運用 • Tagged with Prometheus, Grafana, Kubernetes, Docker

Prometheus は、メトリクスの監視を行うためのモニタリングツールだ。各種メトリクスを出す exporter とそれを集計する Prometheus サーバ、及びその集計結果を監視しアラートを出すアラートマネージャで主に構成されている。Prometheus それ自体は便利なんだが、Kubernetes クラスタを監視したい場合色々追加で設定が必要で、結構めんどくさい。そこで、Kubernetes 用に Prometheus をカスタマイズして提供してくれるパッケージがいくつか出ている。今回はそのうちの Prometheus Operator を触る機会があって、せっかくなので使い方を備忘録として残しておく。

Prometheus …


Continue reading

CBC mode に対しての Padding Oracle Attack

Posted on 日 19 7月 2020 in セキュリティ • Tagged with ブロック暗号, 脆弱性

共通鍵暗号の暗号方式としてよく用いられている暗号の種類として,ブロック暗号がある.ブロック暗号は,暗号方式の大別で,固定長のデータを単位として処理するような暗号の総称である.ところで,もちろん暗号化の対象となるデータは,固定長とは限らないし,かなり長さが大きくなる場合もある.そこで,ブロック暗号を扱うデータサイズより長いデータに対しても利用できるよう補佐する暗号利用モードと呼ばれるメカニズムも用意されている.

ところで,この暗号利用モードは,誤って利用すると,元となったブロック暗号が優秀であろうと致命的に安全性が損なわれる場合が多いことが知られている.今回はそのケースのうち,CBC と呼ばれる暗号利用モードについて知られている攻撃手法,padding oracle attack の概要を見ていく.

CBC (Cipher Block …


Continue reading

BlockArguments で括弧を書かない生活を送る

Posted on 日 05 7月 2020 in プログラミング言語 • Tagged with Haskell, GHC, GHC拡張

GHC 8.6 から BlockArguments という拡張が入った.これは構文拡張で,Haskell 2010 で必要だった幾つかの括弧を省略できるようにするものだ.この拡張を使うことで,Haskell プログラミングにおいて極限まで括弧を省略できるようになった.今回は,BlockArguments の簡単な紹介と,どういう風に括弧の省略ができるかを見ていきたいと思う.

BlockArguments 拡張

Haskell 2010 では,構文要素として幾つかのブロック式が入っている.

1
2 …

Continue reading

XCode でビルドするときに引っかかったところ

Posted on 木 18 6月 2020 in ツール • Tagged with XCode, Objective-C, iOS, ビルド

XCode を使ってる時,ちょっと検索しにくい問題に2件当たったので,備忘録として残しておく.

Undefined symbols for architecture i386

iOS 用の Objective-C のプロジェクトをビルドしてる際,なぜかリンクに失敗し,ある特定の framework について,

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_XXX", referenced …

Continue reading

gRPC クライアントをAndroid アプリで書く

Posted on 日 19 4月 2020 in フレームワーク • Tagged with Kotlin, Java, Gradle, Android, gRPC

単純に gRPC クライアントを Android アプリで書いて,mock サーバを Kotlin で書くだけなのにすごく苦労したので,備忘録的に書いとく.なお,最終的に出来上がったものは,https://github.com/mizunashi-mana/grpc-android-example に上げてある.

Android の Gradle プロジェクトの基本

まず,Android Studio …


Continue reading

Coherent Implicit Parameter

Posted on 火 31 3月 2020 in プログラミング言語 • Tagged with Haskell, 型クラス, 型システム

アドホック多相を実現する方法として,型クラスがある.型クラスは,辞書渡しと呼ばれる方法により,かなり自然に elaboration ができる.ところで,この elaboration は暗黙的引数にも転用できることが知られている。特に、型クラスを搭載した Haskell では,その処理系 GHC の内部実装を利用して暗黙的引数を実現する reflection パッケージ が知られている.

ところで,暗黙的引数の仕組みは,単純に型クラスの型システムを転用するだけでは,coherence …


Continue reading

DerivingVia で deriving 戦略を模倣する

Posted on 月 30 3月 2020 in プログラミング言語 • Tagged with GHC, Haskell, GHC拡張

Haskell では、ボイラープレートは非常に嫌われており、それを撲滅するため強力な型システムの他にも幾つか機能が組み込まれている。その中で非常に強力な機能が、deriving だ。この機能は、データ型の型クラスインスタンスを、その名の通り導出してくれる機能である。Haskell 標準では、幾つかの標準の型クラスにおいて、事前に用意されたアルゴリズムによる導出ができるだけの機能だったが、GHC ではさらに3つの戦略を追加し、広範囲の型クラスの導出が行えるようになっている。特に最近入った DerivingVia と呼ばれる拡張の戦略は、deriving の可能性を大いに引き上げてくれる拡張である。

ところで、実は DerivingVia …


Continue reading

遅延評価でデバッグが困難になる状況

Posted on 日 29 3月 2020 in プログラミング言語 • Tagged with Haskell, 遅延評価, デバッグ

先日、Haskell 界隈で遅延評価によってデバッグがし辛いのはどんな時かと言う話があった。見た感じ、遅延評価によってデバッグのしにくさはそんなに変わらないと言う意見が結構あり、個人的には衝撃だった。僕自身は遅延評価にだいぶヘイトを溜めてる人なので、どういう状況でデフォルト遅延評価が嫌かを実感できる問題を作った。この問題を解けば、きっとヘイトを共有できるはずってわけ。一緒に地獄に落ちような。

なお、かなり主観に寄っていて、結構書き殴ってる部分が多いので、厳密な議論をするにはあまり良い例ではないかもしれない。個人的には、備忘録的な意味合いも強くて、今まで詰まったやつをまとめておくかみたいな感じでもある。

先に結論を書いておくと、

  • プログラム自体が大きくて [1]
  • 複雑な制御構造をしていて
  • (optional) 以下のいずれかの条件を満たす
    • 遅延評価を機能として使っている …

Continue reading

型クラスの Coherence と Orphan Instance

Posted on 金 20 3月 2020 in プログラミング言語 • Tagged with Haskell, GHC, 型クラス

Haskell には型クラスと呼ばれる重要な機能がある.これは名前の通り,型をクラス分けするための機能で,その型に対してある操作が構成できることをその型の性質とみなし,性質に名前がつけられる機能だ.この機能は,アドホック多相,つまりは型による静的なオーバーロードを実現する仕組みとしての側面もある.型クラスに対しては,型ごとにそのインスタンス,つまり操作の実装を与えることができ,ある型がある型クラスに所属していることを型注釈で表明することができる.その表明は,コンパイラによるインスタンスの自動検索で解決され,解決できなかった場合は型エラーになる.

さて,型クラスの仕組みは coherence という,かなり強い性質を要求する.今回は,この coherence がどういう役割を持つかを …


Continue reading

LaTeX の数式フォントに STIX を使う

Posted on 土 07 3月 2020 in ツール • Tagged with LaTeX, フォント, 数式, STIX

LaTeX では Computer Modern フォントが使われている.ただ,Computer Modern フォントはかなり古く対応してる文字もあまり多くない.特に日本語環境だと IPA フォントなどと併用して使われることが多い.僕自身は Computer Modern に代わる目的で作られた Latin Modern フォントと IPA フォントを使ってきたんだけど,最近数式環境だけ STIX フォントに切り替えた.そのメモ …


Continue reading