2011年のまとめ的な備忘録

年末なので、年末っぽいことを書いてみる。

今年は地震の影響で考えることが多かった。
地震がきて、いろんなことを「リアルに」感じて考えるようになった気がする。

人生観が変わったひと、変わらなかったひとがいたみたいで、人によってさまざまなのは当然。
自分に限って言うと、人生観はかなり変わったと思う。
体を動かしたり、声を出したり、人と交わったり…身体性の高いことを重視するようになったなぁ。

あと、考えることが多くなった。

考えることの一番は原発かなぁ。

声高に賛成も反対も言えてないけれど、原発怖いなと思ってる。

とても手に負えないものなんじゃなかろうか。

原発止めると経済が…って理屈で原発推進してる人もいるみたいだけど、 その理屈は、実は戦時中の

「米兵につかまるくらいなら玉砕もしくは自決すべし」

とかそういう視野狭窄と同じなんじゃなかろうかとも思っている。

でも判断材料がないんだよなぁ。

いままで自分からは遠い話だった原発のこと、 身近に感じて考えるようになってきた。

IT産業で電気をじゃぶじゃぶ使ってる身だからこそ、 いろいろ考えて行動していこう。

とりとめもないけど、何かの折に思い返すきっかけとして残しておこう。

blockdiag 1.1.1で複雑な図を書いてwishlistを作ってみるテスト

どうもこんにちは。 今日はblockdiagでちょっと複雑な、でも業務で使う図を作ってみて、細かい要望をwishlistにしてみます。
なんてわがままな私でしょう!

ちなみに作成した図はアプリケーション構成を表す図です。
厳密に記法など決めているわけではないですが、 トラブルシュートなどのときに大まかな構成を把握するのに使います。

できた図 & wishlist

  • ネストしたグループのラベルが重ならないようになってほしい
  • ネストしたグループのサイズがきっちりになるので、大きい方は少し余裕をもったサイズになってほしい
  • ノード間接続のラベルが重ならないようになってほしい
  • ノード間接続のラベルのサイズを自動拡張してほしい(…にならないように)
  • apache -> mysqlのところとか、disk -> diskのところとか、ノード間接続で直角線コネクタと曲線が選べるといいなぁ
  • ノードの縦サイズをテキスト内容にあわせて自動拡張してほしい(特に改行が入っている場合)
  • apache -> diskのところは縦一列にならんでくれるとキレイだなぁ
    • apache -> diskのところを子groupにすることで解決できた!(2012.1.5追記。ソース未反映)

誰かなんとかしてくれないかなぁ。
自分で書けって話かなぁ。時間かかりそうだ。。。

ソース

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
diagram {
 
    internet [shape="cloud"];
    firewall[label="firewall\n(shared)"];
    vip_lb[label="VIP",shape="beginpoint"];
    keepalived_lb01[label="keepalived"];
    keepalived_lb02[label="keepalived"];
    keepalived_lb01 -- vip_lb[folded];
    keepalived_lb02 -- vip_lb[folded];
 
    proxy_web01[label="proxy"];
    apache_web01[label="apache+php"];
    disk_web01[label="disk",shape=flowchart.database];
    proxy_web01     -> apache_web01;
    apache_web01    -> disk_web01[folded];
 
    proxy_web02[label="proxy"];
    apache_web02[label="apache+php"];
    disk_web02[label="disk",shape=flowchart.database];
    proxy_web02     -> apache_web02;
    apache_web02    -> disk_web02[folded];
 
    mysql_db01[label="mysql\n(master)",shape=flowchart.database];
    mysql_db02[label="mysql\n(slave)",shape=flowchart.database];
    mysql_db01  -> mysql_db02[folded,label="replication"];
 
    internet    -> firewall -> vip_lb;
    vip_lb      -> proxy_web01,proxy_web02;
    apache_web01,apache_web02 -> mysql_db01[label="insert/update"];
    apache_web01,apache_web02 -> mysql_db02[label="select"];
    disk_web01  -> disk_web02 [folded,label="rsync"];
 
    group lb_group {
        color="#882222";
        textcolor="#660000";
        shape=line;
        style=dashed;
        label="Clusterd Load Balncer";
        group lb01_group{label="lb01";keepalived_lb01;};
        vip_lb;
        group lb02_group{label="lb02";keepalived_lb02;};
        };
    group production_group { 
        color="#882222";
        textcolor="#660000";
        shape=line;
        style=dashed;
        label="production";
        group web01_group{label="web01";proxy_web01;apache_web01;disk_web01};
        group web02_group{label="web02";proxy_web02;apache_web02;disk_web02};
        group db01_group{label="db01";mysql_db01;};
        group db02_group{label="db02";mysql_db02;};
        };
 
    stg-proxy_web01[label="proxy"];
    stg-apache_web01[label="apache"];
    stg-disk_web01[label="disk",shape=flowchart.database];
    stg-apache_web01    -> stg-disk_web01[folded];
 
    stg-mysql_db01[label="mysql",shape=flowchart.database];
    vip_lb  -> stg-proxy_web01;
    stg-proxy_web01 -> stg-apache_web01;
    stg-apache_web01   -> stg-mysql_db01;
 
    group staging_group { 
        color="#882222";
        textcolor="#660000";
        shape=line;
        style=dashed;
        label="staging";
        group stg-web01_group{label="stg-web01";stg-proxy_web01;stg-apache_web01;stg-disk_web01};
        group stg-db01_group{label="stg-db01";stg-mysql_db01;};
        };
 
    }

GNU screen でシリアル通信 + xmodem転送

ターミナルマルチプレクサ Advent Calendarの12日目でございます。

今日はさらにコアなネタに。

みなさん、シリアル通信することってありますよね?
ネットワーク機器に接続して設定したりとか、とかとか。

そんな時にもscreenが使えちゃうんです。 ちなみに私はMac(MBA Snow Lepard)で使ってます。

screenでシリアル接続する

  1. ケーブルをつなぐ。最近はUSBタイプのものですね。ドライバとかは入れておいてください
  2. screenでつなぐ

たとえば、USB接続のシリアルが /dev/tty.usbserial に接続できた場合は下記のように接続します。
※Ctrl-aではなくCtrl-zの場合

screen -e ^z^z  /dev/tty.usbserial 115200

xmodem転送する

ネットワーク機器のファームウェアアップデートのために、xmodem転送でデータを送信したいことってありますよね!
そんな時にもscreenでうまいこといけちゃうんです。

step0. lrzszをインストール

準備は簡単。brewでlrzszをインストールしておきましょう。

brew install lrzsz

では使ってみましょう。

step1. 接続する

上にかいてありますね。 ここでは特別なことはありません。

※Ctrl-aではなくCtrl-zの場合

screen -e ^z^z  /dev/tty.usbserial 115200

step2. 転送する

※Ctrl-aではなくCtrl-zの場合(しつこいかな)

Ctrl-z
:exec !! /usr/local/Cellar/lrzsz/0.12.20/bin/lsx -kb /Users/baba/Desktop/firmware.img

※パスとかは適宜読み替えてください!

・・・とまぁこんな感じで、懐かしのxmodem通信もできちゃいます。
xmodem通信とか、パソコン通信時代に◯☆△◇な画像をダウンロードする時にしか使った記憶がないんですが、 知っておいて損はないと思います。
得があるかはわかりませんが気にしたら負け。