本日の戦利品:GitHub実践入門 /シェルスクリプト基本リファレンス/エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド

GitHub実践入門 ~Pull Requestによる開発の変革

http://www.amazon.co.jp/dp/477416366X

GitHubを最近真面目に使い出したので購入。

コンパクトにGithubの活用法が書かれていて非常に勉強になった。

CI連携や、チーム開発のフローの提案も記述されていて、実践で使える内容になっている。

シェルスクリプト基本リファレンス  --#!/bin/shで、ここまでできる

http://www.amazon.co.jp/dp/4774146439/

Vagrantでプロビジョニングスクリプトを記述する時に、シェルスクリプトを書く力が不足していることを実感したので購入。

その名前のとおり、リファレンスとして活用予定。

エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド

http://www.amazon.co.jp/dp/4774142948/

MySQLはXAMPPやMAMPで適当にインストールして使ってたが、自力でDBサーバを立てようとすると全然知識が足りないので購入。

ぶっちゃけ個人サイトだとなくてもいいレベルの知識だが、いい機会なので勉強することにした。

インストール直後にどのような設定を行うべきか、というところから丁寧に書かれているので、まずはこれを羅針盤にしていきたい。

本日の戦利品:入門vi 第6版・データベース徹底攻略・Redis入門・MongoDBイン・アクション

入門vi 第6版

http://www.amazon.co.jp/dp/4873110831/

これまでなんとなく敬遠してきたviを習得すべく購入。

これからちょっとずつ、viに慣れていく予定。(頑張れ自分!

データベース徹底攻略

http://www.amazon.co.jp/dp/4774163651/

立ち読みしたら結構興味深かったので購入。

RedisとかMongoDBとか、名前は知ってるけど、どういうものかよく知らないって状態だったので、手短に特徴やユースケースを説明してもらえるのはありがたい。

すでに使い倒している人向けではなく、あまり触ったことがない人向けっぽい。

あと、全然知らなかったんだけど、MySQL5.6ではmemcachedプラグインなるものが追加されたようで、手軽にMySQLmemcachedを連携させた構成が作れるようだね。

Redis入門 インメモリKVSによる高速データ管理

http://www.amazon.co.jp/dp/4048917358/

データベース徹底攻略を読んでて興味をもったのでついでに購入。

memcachedと違って、文字列以外の型があるということで、wktkしてる。

これは後日試す予定。

MongoDBイン・アクション

http://www.amazon.co.jp/dp/4873115906/

Redis同様、データベース徹底攻略を読んでて興味をもったので購入。

データベース徹底攻略を読んだ感じだと、MongoDBは少し使いこなすのにコツがいりそうな印象。

これも後日試す予定。

MacへPHP5.5+Composerをインストール

f:id:tmknom:20140322174133p:plain

ちょっと久々にPHPのコード書きたいなぁと思ったのでその時のインストールメモだよ!

PHP5.5

コマンド一発でサクッとインストールできる。

$ curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5

さらに、~/.bash_profile ファイルの最後に下記を追加。

export PATH=/usr/local/php5/bin:$PATH

これでPHP5.5が使えるようになるはずだ!

$ source .bash_profile
$ php -v
PHP 5.5.8 (cli) (built: Jan 12 2014 18:50:29)

思いのほか、楽々インストール完了してしまった!

Composer

依存関係の制御を自分でやるのは面倒なのでComposerを導入。

$ curl -s https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

これでインストールできたはずだ。では、確認。

$ composer --version
Composer version 604a65cc31f3e5d8a2b96802135ac24434e87678 2014-03-06 09:26:16

うん、OKだね!

Laravel

せっかくなんで、Composerを使ってLaravelを入れてみた。

Composerでプロジェクト作成すると、必要なファイル全部拾ってきてくれるよ!

$ composer create-project laravel/laravel <project_name> --prefer-dist

ビルトインサーバを立ち上げて確認。

$ cd <project_name>
$ php artisan serve

http://localhost:8000/をブラウザで開いて、 You have arrived. と表示されればOKだ!

ちなみに

最初は、Homebrewで入れようとしたんだけど、なぜかうまくいかなかったので方針転換してるのだ。

面倒なので、真面目に調べなかったけど、Homebrewで入れようとしてうまくいかなかった人はここで紹介した方法をぜひ試してみてね!

Vagrant CloudのVagrant Shareを試してみたら凄すぎて鼻血出た

Vagrant 1.5がリリースされたと思ったら、Vagrant Cloudなんてのが登場してますね!

で、Vagrant Cloudの中にVagrant Shareってのがあるんだけど、試してみたらとんでもなかったので、早速やり方をシェアするよ!

Vagrant Cloudにユーザ登録

Vagrant Cloudのページにアクセスして、まずはユーザ登録しよう。

迷うことはないと思うけど、「JOIN VAGRANT CLOUD」ってボタンをクリックすれば登録ページに飛べる。

Join Vagrant Cloud

次に、ユーザ名、メールアドレス、パスワードを入力したらユーザ登録は完了だ。

Vagrant Cloud Sign Up

Vagrant1.5のインストール

Macの場合は普通にダウンロードページからdmgファイルを落として、ダブルクリックでインストール。

念のため、確認。

$ vagrant -v
Vagrant 1.5.0

Vagrantfile作成&仮想マシンの立ち上げ

HTTPサーバが必要なので、Vagrantfileにその設定を記述しよう。

ついでに、ここでは確認用のindex.htmlも作ってるよ。

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"

  config.vm.network :forwarded_port, guest: 80, host: 8080
  config.vm.provision "shell", inline: <<-EOT
    apt-get update
    apt-get install -y apache2
    rm -rf /var/www
    ln -fs /vagrant /var/www
    echo "<h1>Hello, Vagrant Cloud.</h1>" > /vagrant/index.html
  EOT
end

Vagrantfileを作成したら、いつも通り

$ vagrant up

で、仮想マシンを立ち上げる。

vagrant login

事前準備が整ったので、vagrant login コマンドを叩こう。

$ vagrant login
......
If you don't have a Vagrant Cloud account, sign up at vagrantcloud.com

Username or Email: <ユーザ名入力>
Password (will be hidden):<パスワード入力>
You're now logged in!

もちろんユーザ名とパスワードは、Vagrant Cloudに登録したものだ。

You're now logged in! って表示されてればログインOK。

vagrant share

では、vagrant share コマンドでシェアしてみよう。

$ vagrant share
......
==> default: Checking authentication and authorization...
==> default: Creating Vagrant Share session...
    default: Share will be at: lively-bunny-1387
==> default: Your Vagrant Share is running! Name: lively-bunny-1387
==> default: URL: http://lively-bunny-1387.vagrantshare.com
==> default:
==> default: You're sharing your Vagrant machine in "restricted" mode. This
==> default: means that only the ports listed above will be accessible by
==> default: other users (either via the web URL or using `vagrant connect`).

なんか色々出てくると思うけど、一番下の方にURLが書いてあるはずだ。

この例だと http://lively-bunny-1387.vagrantshare.com がそれだね。

このURLは毎回変わるので、試すときは、実際に手元で表示されてるURLを使ってね。

動作確認

じゃあ、URLをコピってブラウザで表示してみよう。

Hello, Vagrant Cloud. って表示されてれば成功だ!

Vagrant Share Result

普通にスマホとかからもアクセスできて超絶便利。

終了方法

いらなくなったら停止しよう。

Ctrl + C

これで、さっきのURLにアクセスしても何も出なくなるはずだ。簡単だね!

感想

ちょっとしたWebアプリケーションのデモ程度だったら、これだけで完結しちゃいそうだよね。

正直恐れいった。これは今後の発展に大いに期待!!

おまけ

まだ作り途中なんだけど、Vagrant入門者向けに資料を作ってるので、よかったら使ってね!

社内勉強会とかでハンズオン学習するときに活用できると思うのだ!!

.gitignoreのひな形をいい感じに作成する!

f:id:tmknom:20140322174411p:plain

インストール

gitignore.ioが提供しているAPIを利用するよ!

コマンドラインから直接呼び出せた方が簡単なので、下記のコマンドでBashに追加しよう!

$ echo "function gi() { curl http://www.gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profile

使い方

一番簡単な使い方!

$ gi laravel >> <project_root_dir>/.gitignore

複数指定もできるよ!

$ gi laravel, phpstorm >> <project_root_dir>/.gitignore

生成可能な.gitignore の種類

どういう.gitignoreが生成できるか知りたい時に使おう!

$ gi list
actionscript,ada,agda,android,...

はじめての投稿なんだよ!

どんなにくるしくても
おいしいものたべて
うんこしたらなおるよ!
                 ハ_ハ  
               ('(゚∀゚∩ なおるよ!
                ヽ  〈 
                 ヽヽ_)