くろねこの栞

tera911が思ったことを書いていくだけ

学ばなければいけないこと

こんにちは。 今日は普段考えていることを文字としてOUTPUTして書いておきます。

考えていること

普段からどうすれば成長できるか、替えが存在しない人間になれるか考えています。 行動しなければ意味がないですが、明確な行動目標が無いため行動できていない部分も多々あります。

生活

普段から不規則な生活をしているため正しいリズムで生活が出来ていません。 リズムを作っていく。

学習

思いつきで「勉強しよう」と行動しているため、継続的な学習が出来ていません。 習慣を作ることが出来ていないため、優先度の高いタスクが来た時すぐ継続的な学習が出来ません。 何事にもぶれない時間の確保、学べるようになりたい。

周りを見る

興味が無いことにはとことん興味が無い。 一般常識(友人と話す内容)などが欠如していてコミュニケーションを取るのが難しい。 自分的にはただの雑談など必要ないなとか考えていますが、飲み会に行った時などすごく苦労します。 社会で生きていくうえでの振る舞い、マナーなどは必要であるためきちんと勉強はします。(しています)

この部分に関しては解決策がないような気もします。

相手の考えを理解する

すごく大事。 特に質問された時など、きちんとこれを考えて行動していきたい。 Aを求めていたら、A + Bぐらい返せるように。

信頼

信頼を得るためにはどうすればよいのか、いろいろ方法があると思います。 時間を守る、納期を守る。 きちんと求めていることをする Aを求めているならばAを返す。80%とかはだめ。

人を見る

周りを見るとは違い、人をみます。 何を考えているのか、なぜこの行動をしたのか、考えていきたい。 「世の中の物事は、人と人の繋がりで生まれている」ずっとこう考えています。だから知らないと何も出来ない。

ロボットにはなりたくない

例えば、ルーチンワーク これって仕組みができあがっていて、作業するだけの人間になってしまっています。 頭を使わない、体を動かすだけの仕事って楽しいの? だからロボットにはなりたくない。ずっと頭を使っていきたい。

人の技術を盗む

その技術はその人が時間というコストを支払って得たもの。 盗むことが出来れば、コストの支払いが少なくなる。

よく職人が弟子入りするのはこういうことじゃないのかな。

他馬力

人の力を借りること 使い方は山ほどあると思う。使わせてくれるかもわからない。 でも自分でするより明らか早い。 2014年は他馬力を使えるようになれと教わった。

「委譲」も一緒なんじゃないかな?

一人で勝手に突き進まない

きちんとコンセンサスを取る。 自分一人の力は小さいし、協力しないと周りに迷惑かかる。時間もかかる。 なぜ組織があるのか。そういう理解

習慣

ある技術を得たい、ある知識を得たい。 1日じゃ絶対ダメだと思っている。 習慣化させることが成功に近づける 自分は天才でもないし、超人でもない

世の中の仕組み

毎日やっている仕事がある。 それはその先にある結果を得るための歯車でしかない 毎日正しく回さないといけない。 その業務を効率化したところでさほど結果は変わらないと思う。 だから結果を変えたいならば全体を見るべき。見なければならない

少し前までの自分は、その歯車一つしか見ていなかった。

技術は武器であり、結果ではない

技術はすごく好き、だからそれを趣味にする

仕事は仕事。この方が綺麗とか誰も見ていない。 追求していても何も出てこない、まずは結果を出すこと。

技術を磨く

楽しい。超楽しい。 いろんな事を知りたい。 刃を磨いている。そんな感覚。

いつ敵(仕事)が現れてもいいように鍛えておく。

dockerとコンテナ技術について

この記事はAdvent Calendar 2015 4日目の記事です。

http://www.adventar.org/calendars/1034 (同じものを別のブログにも書いてます。)

まずは

アドベントカレンダーに書かれているのは、「docker + xhyveについて」なんですがDocker触ってみよう!– 萌え萌えブログ///キャワワ(^^)/でdockerの説明があんまりなかったので、今回はdockerについてだけ書いていこうと思います。
(書こうとしていたxhyveについても仕組みとかその辺は一切触れず、立ち上げてみた程度なので別にいいでしょう。。。)

dockerとは

最近流行りのこのツールですが、そこまで難しいものではないです。
一言で言うとコンテナを動かすツールです。
ちなみに今回重要なキーワードは、

  • コンテナ(Linux Namespace)
  • 仮想化では無い

ぐらいです。

仮想化ではなく、コンテナ化

よく間違えられます、dockerは仮想化してません。
なぜ間違えるのか、予想するにホストとは別の実行環境として動いているからそう勘違いしてしまうのではないのかなと思います。
だって、仮想化もコンテナ化も必要なプロセスが動いていて、十分なパフォーマンスを出していればそこまで気にすることではないのだから。

どこが違う?

仮想化は、その名の通り仮想的な環境を作ります。仮想的なハードウェアを作りその上で別のシステムを動かします。
ハードディスクも、メモリもプロセッサも仮想的に動かします。簡単に言うとこんな感じです、わからなければ調べてください。(これ以上詳しく書けないです)

コンテナ化は?
別の言い方をすると隔離化です。 ただし、CPUもメモリもディスクも共通のものを使います。
ん?それだと隔離できないんじゃ?
大丈夫です。LinuxカーネルにNamescpaceという機能があり、これを使うと別の名前空間作りリソースを隔離することができます。
これがコンテナ化の大事なところです。これ無しだとコンテナ化は行えないと言っても間違いではないと思います。

コンテナ化の特徴

さて、先ほどコンテナ化は名前空間を作りリソースを隔離すると言いました。また、ハードウェアなどは共通のものを使うとも。
名前空間が違うとどうなるか。アプリケーションの実行領域だけが違ってきます。(プロセスの隔離)
つまり互いにアプリケーションが干渉できなくなります。名前空間が変わると全プロセスを表示しても他の名前空間のプロセスは見えなくなります。

例えば、
サーバーの用途としては、アプリケーションでサービスの提供ですよね?
sshd, httpd, mysql...etc これらが別々の空間で動かせたら、不正アクセスされた時もそのプロセスにしか影響が出なくなります。
ユーザによる権限設定だけでなく、隔離することによってセキュリティを高めることができます。
実際にどう隔離されるのか見ていきましょう。

dockerを使ってみる

実際に使ってみれば多分わかります。
Linux(CentOS6)があるというのが前提です。

dockerのインストール

epelレポジトリを追加して、
yum install -y docker-io
これで入ります。

コンテナ化されてるか確認する

さっきから言ってるコンテナ化、 実際に体験してどのような挙動をするかみてみましょう。

$ docker pull centos  #centosのコンテナデータをダウンロード
$ docker run -ti centos ps ax
# centosのコンテナでps axを実行する
# ps axは実行されている全プロセスの表示
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  17672  1116 ?        Rs+  10:08   0:00 ps aux

結果をみてください。
プロセスがpsしか見えません。これが隔離化です。
ホスト側のLinuxからはプロセスは全て見えてますよね?

以上です。 さすがにこれだけではちょっとわからないかも... とか思ってますが結構長くなりましたのでここで一旦切ります。 わからない人はとりあえず、 yum install -y docker-ioとかやってdocker run -it centosってすれば答えが見えてくると思います。

最後まで読んでくださった方ありがとうございます。

参考にしたページ

http://gihyo.jp/admin/serial/01/linux_containers/0002 http://gihyo.jp/admin/serial/01/linux_containers/0016 http://qiita.com/zwirky/items/991f61a231f4e198a320 https://ja.wikipedia.org/wiki/%E4%BB%AE%E6%83%B3%E5%8C%96

bookmarklet書いてる時の、Uncaught SyntaxError: Unexpected end of input

bookmarkletはすべて1行のコードで動かす

小さなミスでコメントを入れていたんですよね、//こんな風に
これだとコメント書いた後は全てコメントとして解釈されるのでエラーが出ちゃったわけです。

コメント書くときは、/* */ これで書く!

Linuxでvi / vim を使ったとき矢印キーを押すと A B C D と出る場合

昔書いてたブログから記事をもってきました。 たまに困るので一応書いときます

vi vimには両方に互換モードがついてるから切り替えてあげればOK
:set nocompatible

もしくは
$vi -C

Cオプションでvim互換 Nオプションでvi互換らしいです。

SES使おうとしたらsandboxだった

AWSのSESを使用しようとしたら、 初期状態だとsandbox状態ということを知らずに使ってて少し困った。

メール送信時にFromアドレスを認証しているのにもかかわらず、
554 Message rejected: Email address is not verified と返ってくる。

エラーメッセージ変えてくれないとちょっと困る;;

ng-resourceで取得する際キャッシュを無効にする

Angular.jsのng-resourceを使用して開発している時、 history backなどで戻った時に、フェッチ用関数は実行するが、 キャッシュからデータを拾ってくるため実際にはhttp requestは飛ばないことがありました。

きちんとデータを取得してほしいので毎回きちんとhttp requestを送信するようにします。

ng-resourceを使う時HTTP headerを書き換える

HTTP headerに If-Modified-Since: 0 をつけるとキャッシュからデータを拾わなくなる。

app.factory 'Resource', ['$resource', ($resource) ->
  $resource '/api/v1/nfo/:id', id: "@id" ,
    query:
      method: "GET",
      isArray: true,
      headers: {
        'If-Modified-Since': 0
      }

とりあえずこれでできます。

とりあえずって感じが嫌なのでまた詳しく調べましょうか。

'Illuminate\Foundation\Support\Providers\AuthServiceProvider' not found

Larvalで新たにability?ちょっとわかんないけど多分アクセス権限などを定義できるもの を作ろうとした時、Document通りにするとエラーが出たのでそれの解決策

Laravelのバージョンチェック

Illuminate\Contracts\Auth\Access\Gateが5.0だと存在してなかったので5.1に変更

composer show -i |grep laravel          
#=> laravel/framework           5.0.x-dev b11c8ab The Laravel Framework.

composer.jsonを書き換えて、composer update

物理的なファイルチェック

ls vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php
 => not found.
rm -rf vendor/laravel
composer clearcache #キャッシュを消す 
composer install

とりあえずこれで入りました。