アイデンティティの確立

アイデンティティ
自分が自分であること、自分は何を以ってして自分であるか、
昔から悩んでいた。

必ず周り一人はいるだろう。誰にでも好かれる人、憎めない人。
そういう人にあこがれたもので、どういう風に周りから見えるかとか、
どのキャラを演じるべきかとか。
くだらないことで悩む時期があった。

今でもアイデンティティについて考える。
仕事はじめてからは、上記のようなどうでもいいことではなく
もっと高度なこと。

自分がどうやって人の役に立てるのか、何ができるのか、自分がしかでないこと、自分にはできないこと。

別に高尚ではなく、
昨今の日本の経済事情を顧みるに、しっかり自分というものを確立しなければ、
仕事にもありつけずくいっぱぐれる。
そういう日がいつかはくるかもしれない、と。
生きるため、とかんがえればもっと低レイヤーなことかもしれない。


今の自分には、自分にしかできないことは少なすぎる。
もっと腕を磨いていかないと。

プロジェクトに関わるときにありがちな6つのサガ

  • サバよみ
    • 工程にバッファを積み上げて報告してしまう
  • 予算・時間をあるだけ使う
    • 早くおわる前例を作ってしまえば次回からそういわれるかもしれない
  • 一夜漬け
    • 納期に追われて漸く動く
  • 過剰管理
    • 上記のため管理者は頻繁にケツをたたこうとする
  • 早く終わっても報告しない
    • 早く終わる前例を作ってしまえばry
  • マルチタスク
    • 違うプロジェクトをいっぺんに任される


これらのお陰で納期に間に合わない。
啓蒙活動を行い、工数を圧縮すること。

上記のことを認識し、改善するのがCCPMの発想っぽい。
CCPMとは - はてなキーワード

特にマルチタスクを如何にシングルタスクに落とし込むかが鍵っぽいすね。
作業効率が全然違うと。

周りを巻き込んで仕事をする

周りを巻き込んで仕事をしたい、何かをしたい。
そういうシーンは多々ある。自分の実力不足だったり、単に物量が不足していて、
誰かに助けを求めたい場合だ。


どうやって支援を仰ぐか。
相手に対する丁寧なお願いに気を使ったりするが、
実はそこは本質ではない。


常日頃、率先して行動する ことこそが周りを巻き込むための
最大の手段だと思っている。


誰でも良いが、周りのいろんな人に気を配る。
手伝える仕事がないか、もしくは手伝えなくても気遣いぐらいはしてあげる。
余裕があるなら、誰もがやらない面倒なことも、できるだけ率先してやる。
そういう人間こそが、あとから自分のために手伝ったりしてくれる。
協力してもらうまえに、率先してこちら側から協力の姿勢を常にもつ。



つまり、人格者であること大切だということだ。



そして、周りを巻き込んでやりたいことも、協力から先に仰ぐのではなく
ある程度できる限りのことはやる。
それが、自分じゃわからないことであっても、できる範囲で調べる、覚える、など。
すこし足を踏み入れて、何をやるべきか、何が問題かなどくらいは洗い出しておく。



率先して行動することこそが、周りを巻き込むための第一歩。



これが発展していき、仲間全員でできると、
お願いされたら、やる から お願いされなくても、誰かが大変そうなら助ける
風潮ができあがる。
仲間に背中を任せることができるようになる。
本当の一体感を感じることができるだろう。

PHP勉強会2nd

DBの負荷分散が参考になったので、ちょいまとめる。


MySQL分散処理

レプリケーションについて

業務ではMySQL5.4なので、非同期レプリケーションですから
セッションまわりの同期がうまくとれなくて参ったってなことがあったが、
これならうまくいきそう。
相変わらず、スレーブに書き込まれてるかどうかの保証はないですがね。


  1. マスターが更新クエリをバイナリログに記録
  2. スレーブが更新をチェックし、マスターからスレーブにBログ転送
  3. スレーブで更新クエリ実行
  1. マスターは更新クエリを受け取ったときにBログをスレーブに転送
  2. Bログを受け取ったスレーブはマスターにレスポンスを返してからコミット。

しかもマスターはスレーブからのレスを一定時間まつ。
(レスがなければスレーブ無視してコミットする)
これによってほとんど齟齬が生じる可能性が低いようだ。

(リレーログ云々もあったけど全然わかってないw)

  • メリット
    • サーバー故障時にもデータが転送されていることが保障される。
    • コミット動作がリレーログ書き込みまで保証してる。遅延がすくない。
  • デメリット
    • コミット動作がながくなってしまうので、書き込み速度が劣る。
  • 負荷分散

死活監視させるために、
Keepalived(MISC)を使うといいらしい。
Keepalivedとかつかったことない。。)

  1. Keepalived(MISC_CHECK)でスレーブに設置したWEBページをチェック
  2. 問題なければバランシングとして追加。
  3. たとえば遅延があったりした場合はバランシングからはずすなども可能。

なんとなくawkつかってたが漸くすこし意味わかった件

アクセスログとか調べるときに

awk '{ print $1 }' | sort | uniq -c

とかやって、IPアドレスのカウントしたりしてたが、
awkの動きが全然わかってなかった。

この前CSVファイルをほげほげする機会があったので、awkの勉強をちょとした。

http://ja.wikipedia.org/wiki/AWK
awkすごい。

  • awkは渡されたファイルを一行ずつ処理する

100行のファイルを awk '{print $0}'とかやると100行出力される。

  • print
awk '{print $0}'

で一行がまるまる表示される。

    • $0

一行ぜんぶ

    • $1

1列目

    • $2

2列目


という具合。

  • デリミタ

デリミタはデフォルトでスペースのようだ。

abc def ghi hogehoge

これに対してawk printすると
$0はそのまま全部
$1はabc
$2はdef

  • if

grepを使えば条件に一致したものを簡単にだせるが
個人的にawkで便利なのが
あるカラムに対して不等号で条件かけるとこ。

hogehoge foo bar 1
hogehoge foo bar 0
hogehoge foo bar 3
hogehoge foo bar 2
hogehoge foo bar 5

というデータがあったとして

awk '{if($4 >= 1 ) print $0}'

こういう風にすれば、4つ目のカラムが1以上の場合のみ出力するという表示になる

awk '$4>=1{print$0}'<||
これでも同じ出力結果になるようだ。

  • BEGIN, END

構文

>

awk 'BEGIN{初期化処理}{させたい処理}END{最後にさせたい処理}'<||
コンストラクタ、デストラクタのような動きをつけることができる。

  • CSVを扱う上ではまったとこ

まずはデリミタを変更
awkのFS変数にいれてあげればよい。

awk 'BEGIN{FS=",";}{print $3;}'

これでカンマでわけた3列目のカラムだけ表示される。


さらに1以上である場合出力させたいとき

awk 'BEGIN{FS=",";}{if($3>=1) print $0;}'

見た目的にはこれでよさそうだが、なぜかできなかった・・・。
理由はCSVでわけられたファイルが

"hogehoge","foo","bar"

という風にダブルクォートでくくられていたからだった。
ので、

awk 'BEGIN{FS="\",\"";}{if($3>=1) print $0;}'

デリミタを","に変更。\でエスケープ。


awkおぼえてログをhogehogeできそう

mysqlでタブ出力

とりあえずフツーにリダイレクトすればタブで出力されるらしい。

mysql -u root -p "select * from hogehoge" > syuturyoku.tsv


sqlファイルを読み込ませつつやる場合のリダイレクト

mysql -u root -p < select.sql > syuturyoku.tsv