ひつまぶし食べたい

メモ代わりのブログ

vSphere API事始め

リファレンス

参考サイト

Overview

Types

4つのタイプがある。

vSphere APIの型普通のプログラミングとの類推
managed object typeプリミティブ型、複合型
data object type抽象データ型
enumerated type定数
Fault type例外型

1. Managed object types

Managed object typeとは

(サーバーサイドのオブジェクトモデルの基本的なデータを担っている。data objectも同じく。) managed objectには、大きく2つの種類がある。


IPv6のことを調べ始めた

IPv6 環境構築

ひとまず参照すべきRFC

  • RFC3315(DHCPv6) とそれをupdateしているやつ
  • RFC4861(Neighbor DiscoveryのIPv6バージョン)
  • RFC5942(IPv6のsubnet model)

IPv6 アドレス配布方式について

全体としては、下記の4パターンある。


DebianにOzをインストールする

ガウディ本読みはじめた。

困ったこと

この本で使われるOzという言語をDebian上で実行するのに、少し困った。 morzart2をダウンロードして、適当にインストールしただけだと、 emacs上でコンパイルはできるのに、実行結果が表示できない状況になった。 正常な動作は、コンパイルできるとウィンドウが開いて、そこに結果が表示される。


論文 - Janus : Optimal Flash Provisioning for Cloud Storage Workloads

読んだもの

http://research.google.com/pubs/pub41179.html

主な内容

  • 『2種類の異なるストレージ(フラッシュとディスク)を複数のワークロードで共用する』効率的な使い方を最適化問題への帰着 使い方に2つの戦略があって、『FIFO or LRU』。
  • LRUの方がキャッシュヒットレート的には良いけど、メトリクスを取るのが複雑になりがちなので、FIFOで良いのでは。
  • 実システムでの計測結果

使われているシステム, 技術要素

  • Clossus (GFSの改良版)
  • アルゴリズム: 貪欲法

大事なこと

  • 最適化問題を特にあたって、ワークロード特性を表す関数を、convexで近似したことにすることがアイディアの1つ。
  • 理論としては、piecewise-linearでなくても良いが、実測では有限個の点しか取れないので、piecewise-linearとしておくと計算が楽になる。
  • 運用中もワークロード特性を測定してフィードバックすることで、特性の変化に対応することができる。

所感

  • よくまとまっているので、とても良い。


DebianでZNCを使って、快適なIRC生活を送る

やりたいこと

最近、自分の興味のあるソフトウェアのIRCによく引きこもっています。 自宅のPCはつけっぱなしにしておけば、全部のログを見れるのですが、 会社やスマホで見るときには、接続している間のことしか確認できず、若干もどかしいです。


WebHDFSで詰まったこと

困っていたこと

HDFSでwebhdfsを使うとき、基本的にnamenodeにリクエストを投げればよいが、実データにアクセスするにはdatanodeにアクセスする。 ただ、使うときにはあんまり気にしなくて良くて、リクエストを投げればリダイレクト先を指定してくれる、らしい。 しかし、実際にやっているとうまくいかないケースがあった。


LEDバックライトの調整

ディスプレイの輝度が高すぎて目が痛いので、輝度を下げたい。 GUIでやっても良いけど、CLIの方が簡単そうだったので、CLIでやってみることにした。


Perl の正規表現

マッチ演算子

評価の結果は真偽値としては、マッチすれば真、そうでなければ偽。 and, or, ! が役立つのは間違いない。

$_ にマッチさせる

/regex/
m:regex:

string にマッチさせる

string =~ /regex/
string =~ m:regex:

$_ の文字列置換

s/regex/new/
s:regex:new:

string の文字列置換

string =~ s/regex/new/
string =~ s:regex:new:

特殊なメタキャラクタ

^, $

  • 行頭、末尾にマッチ

.

  • ニューライン以外の任意の文字にマッチ

[chars]

  • chars に含まれる任意の1文字にマッチ
  • chars 内のバックスラッシュ付き英数字以外のメタキャラクタは、リテラル扱い

[^ chars]

  • chars に含まれない任意の1文字にマッチ
  • メタキャラクタの扱いは [chars] と同様

[char1-char2]

  • char1char2 の間に入る任意の文字にマッチ
  • char1, char2 を含む。

$&

  • 最後にマッチした内容を保持
  • 'Foo' =~ /^[A-Z]/ なら $& は F

\

  • メタキャラクタに使ったり、エスケープに使う

\b

  • 単語の区切りにマッチする
  • 'abc def' にマッチさせたいときに、'Zabc def' にマッチしないよう、'babc def' と書いておく。
  • アルファベットは、単語構成文字クラスなので、スペースや!は、b にマッチするが、Zはマッチしない。

\n

  • ニューライン

\r

  • キャリッジリターン文字
  • カーソルを行頭に戻す

\t

  • タブ

\f

  • フォームフィード
  • 改ページ

\e

  • エスケープ文字

\NNN

  • 8進数が NNN となる文字
  • 例えば、040 はスペース

::: note ::: title Note :::


Perlスクリプトメモ

参考文献

  1. Perl基礎文法最速マスター
  2. ミニマル perl

スクリプトを書く時

  • プラグマ
  • 推奨 : スクリプト先頭に書く
use strict;
use warnings;
  • 1文字でも減らしたい

    • print のデフォルト引数は、 $_
    • print $_; したいだけなら書く必要ない。

用語

レコード

  • 1つのまとまりとして読み書きされる文字の集合
  • 入出力の際、ファイルはレコードの集まりと見ることができる。 この時、デフォルトでは、1行がレコード。

入力レコードセパレータ

  • 入力レコードの終端区切りを表す文字、または文字シーケンス(文字の並び)。
  • Linuxとかでは、デフォルトではラインフィード。
  • Perl ではOS固有の入力レコードセパレータを n として、参照できる。

ニューライン

  • n のこと。
  • OS固有の入力レコードセパレータ。

スイッチ引数

  • -s オプション
  • 良い感じのコマンドラインオプションを取ることができる。
  • 引数の与え方で2つの方法がある。
-foo='test' #=> $foo == 'test'
-foo        #=> $foo == true : -debugで、デバッグ用、みたい使う。
  • スイッチ引数を任意にしているスクリプトでは、冒頭にour関数を使うのが良い。
our($foo);
our($foo, $bar, ...);

真偽値

偽になるのは、次の3パターンある。


VPLSについてのメモ

What is VPLS

  • Virtual Private LAN

  • MACフレームを、ルーターを含むネットワークを超えて、やり取りするための技術の1つ

MPLSはIPにラベルをつけるが、VPLSはMACにラベルをつけるというイメージ

:   -   ラベルを使う理由としては、元々、経路計算を高速にしたかったはずだけど、今はそんなに気にしなくて良いっぽい

Why VPLS

MPLSが便利なのと、同じ。