ロックとチュウーハイとこりんがるな日々

日々のインプットした事をアウトプットする場所

第21回関西PHP勉強会に参加してLaravelエキスパート養成読本を頂きました

4/21日に開催された第21回関西PHP勉強会に参加してきました

今回の勉強会の内容はセミナー形式で行われました

・ Laravel エキスパート養成読本出版記念で、Laravel の話(@shin1x1)
・ LT1: Lumenとりあえず触ってみた感じレポート(mikakane)
・ LT2: ReactPHPはもっと流行って欲しい(たなかひさてる)

どの話も非常に興味深かったですが、やはり以前に趣味で触った事のあるlaravelに興味があったのでlaravelの 話は非常に面白かったです

そして最後にビッグなプレゼントがLaravel エキスパート養成読本が著者の一人である今回の発表者の新原さんか ら2冊プレゼントされました 2名以上が手を上げたのでじゃんけんになりましたが、「Laravel エキスパート養成読本」をゲットしました

今日やっと読み終えたので感想文を800字以内で書きます

先に結論から書きます、今からlaravelを始めようと思っている方は間違いなく読んだほうが良いと思います 発売の時期がlaravel5のリリース時期とかぶってしまった事も逆によかったと思います

書かれている内容はほぼlaravel4の内容になっていますが、laravel5の新機能についても書かれています つまりlaravel4,5どちらの情報も書かれているという事です

個人的にはまったく理解出来ていなかったlocコンテナ、ファサード、サーピスプロバイダ、Eloquentについて書か れているChapter3、RestAPIについて書かれているChapter5が読み応えがありました

特にlaravelでRestAPIは以前に自分も作った事があるのですがその時に疑問に感じたテストをどうやってやるのか やサービスとモデルの使い方などが詳しく書かれており非常にわかりやすく腑に落ちました

laravelについて書かれた日本語の書籍は少ないので是非一度目通してみてはいかがでしょうか?

ざっと目を通すだけんら2時間もあれば終わります、目を通して気になった部分はあとから詳しくみて みると良いかと思います

僕はこれから2週目に入ろうかと思います

雨のディズニーシー

目下のところ子供が爆睡中なのでnew york deliに避難中

外にいるとめっちゃ寒いのです

手袋がほしいけどどうにも売ってない
子供用や女子向けはあるが男子向けがない

ミッキーやミニーの耳付き手袋を36歳がはめるにはあと10度ほど気温が下がって生命の危険を感じてからである

そこまで寒くならんことをブッダに祈りながら楽しみとしよう

魔法にかかりながら


f:id:box406:20150121153336j:image

歯が痛い

歯が痛いのでロキソニンを買ってみた
恐ろしい効き目だ

一体どうなってるんだ
クスリが切れた時に地獄の痛みが待っているのではないか

はっこうして薬漬けになるのかー



眠る

寝る

明日から早起きして朝のうちに仕事を片付けよう

あーしかし餃子食べたい

おやすみなさい

2015年の目標

2014年が終わる

今年の初めに掲げた抱負はなにひとつできていない 原因は飽き性な性格だ

仕事もプライベートも全部が中途半端だった

仕事においては2015年には劇的な変化が訪れる、転職です 今の会社は社員数が激減して現在5名しかいないが、転職先の会社は200名もいる

転職を決めたきっかけは200名いるなかで今まで考えてきた、ものつくりの考え方や 組織としてのものつくりがどの程度通用するかを試したかったこと、チームで仕事を することにおいて今までの経験と今までやりたかったけど実践できなかったことを試せる 環境と役職を用意してくれたことが大きな要因となった

あと会社が儲かっているという事も大きな決めてとなった

2015年は試す事を目標だ

まずは新しい環境で様々な事を試すことができるように発言権を得ることから始めてみます といってもなにか方法論があるわけではないので求められる仕事に対して200%の結果を用意 することを考えながら動けば大丈夫な気がしている

その上で経営者的思考を忘れないように心がけることが大事だと思う

転職後の行動指針

  1. 常に200%の結果を自分に求める
  2. 好き・嫌いで判断しない、正しいか正しくないかで判断をする
  3. 自分の感情は後回し、客観的にものごとを見る
  4. ロジカルシンキングを心がける
  5. 技術的な勉強を怠らない
  6. 考えることをやめない

転職を決めたきっかけのメモ

会社が儲かっている事

会社が儲かっていることは非常に重要だとおもう、お金がないとなにもかにもががんじがらめで 正しいことがなにもできない、某D社(現職の会社)がそうだ 起死回生を願ってリリースしたシステムにはろくなマーケティングの時間が与えられず、社長が話しを 聞いた20社から聞いた『良いですね』という社交辞令を真に受けて判断した結果、リリースして1年 近くたつが10数社の導入で終わっている、導入先には価値を説明しきれず結局値引きやキャンペーンと 称して売っているため顧客に正しい価値が伝わらず結果導入企業のほとんどがシステムを使わないとう 結果が出ている この結果の要因は色々あるとおもうが、ひとつの原因としてマーケティングを正しくおこなうなかった ことがあると思っている、マーケーティングをおこなう期間と人員に使うお金がなかったので、できるだけ はやく市場に投入してあとで改善していくという考え方があったからだ また改善をおこなうことにも人・物・金を投入しなかったことも原因だとおもう

上記のようなことを繰り返したくないのでシステムに正しくお金を投入できるだけの利益が確保されている 企業が条件の一つだった

チームビルディング

チームビルディング、ここでは開発チームのことをさします 現職のD社ではエンジニアが一人ということもあり、チームビルディングをおこなう必要がなかったことがあります 転職後はエンジニアの数が10名程度います、全体で200名の会社なので社内比率的には完全におかしいですが これから増やしていくという考え方も見えたので今後が楽しみです

エンジニアのチームビルディングの目標はエンジニアが自律的に判断して動く事ができる組織体制を作る事が最終 目標です、そのためにマネジメントを行い、組織構造を変えていくことが僕の仕事かと思います

ものづくり

チームビルディングとかぶる部分もおおくありますが、エンジニアが自律的に動ける組織構造を作るということは エンジニアが好きな事をすると勘違いする可能性を多分に含んでいます

そういったエンジニア至上主義になってしまうとエンジニアが顧客に向き合わなくなってしまいます エンジニアにはものづくりにおいていかの価値観を植えつけたい

  • 誰が使うのか?
  • なんの目的でつかうのか?
  • どういった価値を提供するのか?
  • どういった事で困っているのか?

またアジャイルの考え方を取り入れて顧客に提供する価値を最大限高めたいエンジニアが動きやすい組織でもエンジニアは あくまで顧客思考と経営者思考を持ってものづくりをおこなう事で会社に対する利益を最大限高める事を考える

現職のD社では上記のようなものづくりはできません、会社に体力(お金)が無い事も原因ですが すでに新しいものを生み出す環境がなくなっている事の原因です


まだまだまとまってない事がありますが、転職の理由と2015年の目標です

でわでわ

良いお年を

knife-sole prepare を実行、エラー404 Not Found だとー

knife-solo prepareを実行した所、謎のエラーに遭遇した、 404だと?なにが404なんだ? どうやらchef-soloのバージョンが問題のようです

chef-soloのバージョンを確認すると以下でした

$ chef-solo -v
Chef: 12.0.0.alpha.2

上記が返ってきます、このバージョンが問題のようです knife-solo prepareを実行すると以下のようになりErrorが発生して先に進みません

$ knife solo prepare root@49.212.185.91
Bootstrapping Chef...
Enter the password for root@49.212.185.91:
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16519  100 16519    0     0  15121      0  0:00:01  0:00:01 --:--:-- 32453
Downloading Chef 12.0.0.alpha.2 for el...
downloading https://www.opscode.com/chef/metadata?v=12.0.0.alpha.2&prerelease=false&nightlies=false&p=el&pv=6&m=x86_64
  to file /tmp/install.sh.1500/metadata.txt
trying wget...
trying curl...
ERROR 404
Unable to retrieve a valid package!
Please file a bug report at http://tickets.opscode.com
Project: Chef
Component: Packages
Label: Omnibus
Version: 12.0.0.alpha.2

Please detail your operating system type, version and any other relevant details
Metadata URL: https://www.opscode.com/chef/metadata?v=12.0.0.alpha.2&prerelease=false&nightlies=false&p=el&pv=6&m=x86_64
\nDEBUG OUTPUT FOLLOWS:\n\nSTDERR from wget:\n\n--2014-10-21 11:10:36--  https://www.opscode.com/chef/metadata?v=12.0.0.alpha.2&prerelease=false&nightlie
s=false&p=el&pv=6&m=x86_64
www.opscode.com をDNSに問いあわせています... 184.106.28.90
www.opscode.com|184.106.28.90|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2014-10-21 11:10:37 エラー 404: Not Found。\n

上記のErrorの回避策についてはchefのバージョンを指定します

$ knife solo prepare root@[IP Address] --bootstrap-version 11.12.0
Bootstrapping Chef...
Enter the password for root@49.212.185.91:
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16519  100 16519    0     0  15458      0  0:00:01  0:00:01 --:--:-- 33439
Downloading Chef 11.12.0 for el...
downloading https://www.opscode.com/chef/metadata?v=11.12.0&prerelease=false&nightlies=false&p=el&pv=6&m=x86_64
  to file /tmp/install.sh.1574/metadata.txt
trying wget...
url     https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.12.0-1.el6.x86_64.rpm
md5     3e4fadc93e3080ec0b2ed811f36cb8bc
sha256  42a29433f83f03fdf75a06ff65c45f0bbdeb44593b45fc0ef1717fbdb7eb8756
downloaded metadata file looks valid...
downloading https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.12.0-1.el6.x86_64.rpm
  to file /tmp/install.sh.1574/chef-11.12.0-1.el6.x86_64.rpm
trying wget...
Comparing checksum with sha256sum...
Installing Chef 11.12.0
installing with rpm...
警告: /tmp/install.sh.1574/chef-11.12.0-1.el6.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
準備中...                ########################################### [100%]
   1:chef                   ########################################### [100%]
Thank you for installing Chef!    

これでOK、あせったYosemitenのせいかと思ってしまいましたが違うようですね

でわでわ

参考URL:

Chef-DK:'knife solo bootstrap', or 'prepare'でwgetの404エラー - 役立ちぬ開発史、それはただのブログ

ansible を使ってさくらVPSにLAMP環境を構築してみる その1

mac からansibleでさくらVPSを構築する 目的はさくらVPSec-cubeを動かす

※なぜec-cubeなのかは気にしない気にしない

今まではサーバ構築にchefを使っていましたが、今回は対象のサーバに対してchefをinstall 出来ない可能性があるので前から試したかったansibleを使ってみる事にしました

ansible を mac に install する

http://docs.ansible.com/intro_installation.html#latest-releases-via-homebrew-mac-osx

公式にhomebrewで入れろと書いてかるので素直に従う

$ brew update
$ brew install ansible

上記でさくっと入りました

※homebrewの設定は語りません

ansible を試す

  • hostsファイルを作る

    実行するサーバのIPを書く 今回はvagrantでサーバを起動しているのでhostsに192.168.33.10を記述

      $ mkdir ec-cube
      $ cd ec-cube
      $ vagranit init centos6.5
      $ vim hosts
      192.168.33.10
    
  • ansibleを実行

    鍵認証を設定していないので通常のパスワード認証を行う

    ansible ホスト -i ホストリストファイル -m 実行モジュール -u ユーザ

    --ask-pass --ask-sudo-pass はパスワード認証を行うときに必要

      $ ansible 192.168.33.10 -i hosts -m ping -u vagrant --ask-pass --ask-sudo-pass
    

    以下のerrorが発生、sshpassなるものを入れろと

      192.168.33.10 | FAILED => to use the 'ssh' connection type with passwords, you must install the sshpass program
    

    http://lalyos.github.io/blog/2013/09/30/install-sshpass-on-mac/

    上のページを参考にhomebrewでinstall する

      brew install https://raw.github.com/eugeneoden/homebrew/eca9de1/Library/Formula/sshpass.rb
    

    もう一度ansibleを実行する

      $ ansible 192.168.33.10 -i hosts -m ping -u vagrant --ask-pass --ask-sudo-pass
      SSH password:
      192.168.33.10 | success >> {
          "changed": false,
          "ping": "pong"
      }
    

    上記のように返ってくればOKです

  • httpdを入れてみる

    以下を実行する

    -m 実行モジュールはyumを指定 -s sudo -a name=[httpdを指定]

      ansible 192.168.33.10 -i hosts -m yum -s -a name=httpd -u vagrant --ask-pass
    

    しばらく待つ

      SSH password:
      192.168.33.10 | success >> {
          "changed": true,
          "msg": "",
          "rc": 0,
          "results": [
              "Loaded plugins: fastestmirror\nLoading mirror speeds from cached hostfile\n * base: www.ftp.ne.jp\n * epel: ftp.iij.ad.jp\n * extras: www.ftp.ne.jp\n * updates: mirror.awanti.com\nSetting up Install Process\nResolving Dependencies\n--> Running transaction check\n---> Package httpd.x86_64 0:2.2.15-31.el6.centos will be installed\n--> Processing Dependency: httpd-tools = 2.2.15-31.el6.centos for package: httpd-2.2.15-31.el6.centos.x86_64\n--> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-31.el6.centos.x86_64\n--> Processing Dependency: /etc/mime.types for package: httpd-2.2.15-31.el6.centos.x86_64\n--> Running transaction check\n---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be installed\n---> Package httpd-tools.x86_64 0:2.2.15-31.el6.centos will be installed\n---> Package mailcap.noarch 0:2.1.31-2.el6 will be installed\n--> Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package            Arch        Version                      Repository    Size\n================================================================================\nInstalling:\n httpd              x86_64      2.2.15-31.el6.centos         updates      824 k\nInstalling for dependencies:\n apr-util-ldap      x86_64      1.3.9-3.el6_0.1              base          15 k\n httpd-tools        x86_64      2.2.15-31.el6.centos         updates       73 k\n mailcap            noarch      2.1.31-2.el6                 base          27 k\n\nTransaction Summary\n================================================================================\nInstall       4 Package(s)\n\nTotal download size: 939 k\nInstalled size: 3.1 M\nDownloading Packages:\n--------------------------------------------------------------------------------\nTotal                                            48 kB/s | 939 kB     00:19     \nRunning rpm_check_debug\nRunning Transaction Test\nTransaction Test Succeeded\nRunning Transaction\n\r  Installing : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                         1/4 \n\r  Installing : httpd-tools-2.2.15-31.el6.centos.x86_64                      2/4 \n\r  Installing : mailcap-2.1.31-2.el6.noarch                                  3/4 \n\r  Installing : httpd-2.2.15-31.el6.centos.x86_64                            4/4 \n\r  Verifying  : httpd-2.2.15-31.el6.centos.x86_64                            1/4 \n\r  Verifying  : mailcap-2.1.31-2.el6.noarch                                  2/4 \n\r  Verifying  : httpd-tools-2.2.15-31.el6.centos.x86_64                      3/4 \n\r  Verifying  : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                         4/4 \n\nInstalled:\n  httpd.x86_64 0:2.2.15-31.el6.centos                                           \n\nDependency Installed:\n  apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1                                        \n  httpd-tools.x86_64 0:2.2.15-31.el6.centos                                     \n  mailcap.noarch 0:2.1.31-2.el6                                                 \n\nComplete!\n"
          ]
      }
    

    実行結果が反映される

とりあえずここまで、次回はplaybookを作っていきます

使ってみた感想

今までサーバ構築に使っていたchef(chef-solo)に比べたら最初に用意するもの、学習すべき事がすくないと 感じました、chef-soloの実行にはknife-soloを使っていたのですが、それに相当する事が標準で出来るのも ありがたいなと感じました