Technofara

Golangエンジニア!仕事で必要になって勉強した事とか、新しい事とか色々まとめたりを緩くやります。技術系と思考系だけにしておきます、

引っ越しました

東京で住む家を

ではなくて

会社のOfficeが!!

でもなくて

ブログを http://blog.shinofara.xyz/ で新しく始めました。

このブログでは、wordpress(mac)とS3だけを使って運用しています。
月額どれくらいになるかはわからないけど(vpsよりは安いはず)

では皆様(そんなに読者いないけど)

# git 2.0.0がリリースされましたので、早速いれてみた

数日前のエントリになりますが とうとう Git 2.0 が現実のものに。便利な機能満載 | Atlassian Japan という記事が上がっていました!

ミーハーな僕は早速入れてみました。

今入ってるgitは、macに初めから入っている物ではなく、 Homebrewを使って入れたものになりますので、pathは以下の様になります

$ which git
/usr/local/bin/git

バージョンを確認してみると

$ /usr/local/bin/git --version
git version 1.9.1

1.9.1ですね、では2.0を入れてみたいと思います。

gitを2.0.0をMACにインストールした - Qiita

を参考にすれば、すぐ出来そうですが、 せっかくなので、過去に行った

# はやりに乗って、Boxen止めてBrewfile+brew-caskにした - shinofara's diary(ざっくり版) # Boxenやめて、Homebrew + caskにしたし、Brewfileを晒してみる - shinofara's diary(ざっくり版)

この2つをそのまま使ってみます。

といっても何もする事はないのですが、、、

$ cat Brewfile
...
install git
...

があれば大丈夫なので、Brewfileと同じ階層で

$ brew bundle

と打つだけ

あとは待てば、色々ダウンロードしたり、ビルドしたり してくれます。この間に僕は洗濯物を干したりすることにします。

・ ・

数分後

・ ・

$ /usr/local/bin/git --version
git version 2.0.0

ヽ(=´▽`=)ノ

# Orchestration?それならserfをつかおうぜ!(導入編)

Serfと呼ばれる。 Orchestration 処理をやってみたいと思います。

時間的な都合でまずは、導入だけ

そしてmac限定です。

orchestrationとはなにか

サーバを chef とか puppet でセットアップ(ここがプロビジョニング)した後に、ロードバランサに追加したり、監視入れたり、サーバ管理ツールに登録したり、という他のツールと連携するための作業などを指して使っている。サーバ単体で完結できない作業というか

手順

# Goが必要(goの中でhgも使うよ)
$ brew install go hg

Go環境設定

http://golang.org/doc/code.html#GOPATH

$ mkdir -p $HOME/work/go
$ export GOPATH=$HOME/work/go
$ mkdir $HOME/work/go/src
$ export PATH=$PATH:$GOPATH/bin
$ cd $HOME/work/go/src
$ git clone http://github.com/hashicorp/serf.git 
$ cd serf
$ make
$ serf versoin

これで、環境構築後に、zabbixに自動で登録したり hosts書き換えたり、lb配下に自動でつけたりとか色々やれる!!

# git private repositoryを無料で作って、CIも無料でやりたい!(Rails編)

最初は、github + travisCIがいいな!と思ってました!
でも、これってprivateなciは作成できないんです。。(無料では)
もしこの構成で、非公開リポジトリと、CIでとなると、
github有料で使って、travisを有料で使ってになります!

何を使うの?

  • bitbucket
    • コンフルエンスとかで有名な、Atlassianのgitサービス
  • wercker
    • privateでciを無料で使えるサービス

使い方

簡単、両方のアカウントを使って、werckerにbitbucketを同期 チュートリアルが表示されるので、以下略です。

準備するもの

travisCIで言う、.travis.ymlのように、構成、設定ファイル
wercker.ymlをアプリケーションディレクトリ直下に作成します。
中身は

box: wercker/rvm
# Build definition
# See the Rails section on the wercker devcenter:
# http://devcenter.wercker.com/articles/languages/ruby/settingup-rails4.html
# You will want to define your database as follows:
# services:
#   - wercker/postgresql
# See more about services on our devcenter:
# http://devcenter.wercker.com/articles/services/
build:
    steps:
        # Uncomment this to force RVM to use a specific Ruby version
        - rvm-use:
              version: 2.1.1

        # A step that executes `bundle install` command
        - bundle-install

        # A step that prepares the database.yml using the database in services
        # - rails-database-yml

        # A custom script step, name value is used in the UI
        # and the code value contains the command that get executed
        - script:
            name: echo ruby information
            code: |
                echo "ruby version $(ruby --version) running"
                echo "from location $(which ruby)"
                echo -p "gem list: $(gem list)"

        # Add more steps here:
        - script:
                name: rspec
                code: bundle exec rspec
  1. rvm-useで使うrubyのversion
  2. bundle-installを実行
  3. scriptで、version等々をechoで表示
  4. scriptで、rspecを実行

これだけでci行けます!!

まだ試してないけどherokuにも、デプロイできるみたいなので

git privateリポジトリが無料で使えて CIサービスも無料で使えて デプロイも無料 アプリケーションサーバ運用も無料

無料づくしですね!

# Brewfileでphpenvいれて、複数version使えるようにしてから、5.6でlaravelを触った話

タイトルクソ長くてすみません。

brewfile + phpbuild = 5.6

brewfileでphpbuildを入れて、5.6を入れる

Brefifile + cask環境

以前書いた記事
2014-03-24 Boxenやめて、Homebrew + caskにしたし、Brewfileを晒してみる
こちらを参考に

Brefile更新と実行

Brefileの中身

# install php
tap josegonzalez/homebrew-php || true
install mcrypt
install --HEAD phpenv || true
install --HEAD php-build || true

実行

$ brew bundle

bashrcでpathを通す

$ vim ~/.bashrc
if [[ -s $HOME/.phpenv/bin ]] ; then
    # phpenvの設定
    export PATH="$HOME/.phpenv/bin:$PATH"
    eval "$(phpenv init -)"
fi

phpenvを使って5.6を入れる。

$ php-build --definitions
5.5.4
5.5.5
5.5.6
5.5.7
5.5.8
5.5.9
5.5snapshot
5.6.0alpha1
5.6.0alpha2
5.6.0alpha3
5.6.0beta1
5.6.0beta2
5.6snapshot
master

5.6があるので使ってみる

$ php-build 5.6.0beta2 ~/.phpenv/versions/5.6.b2

インストール済みのversionを確認

$ phpenv versions
* system (set by /Users/shinofara/.phpenv/version)
  5.6.b2

5.6を使う

$ phpenv global 5.6.b2
$ phpenv rehash
$ phpenv versions
  system
* 5.6.b2 
(set by /Users/shinofara/.phpenv/version)

phpのversion確認

php -v
PHP 5.6.0beta2 (cli) (built: May 17 2014 16:54:34) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0-dev, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
    with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

注意 すでにphpが入っている場合は、削除する必要があります。 少なくとも筆者の場合は、すでに入れていた5.4が優先されました

$ which php
/usr/bin/php

となった場合は、

$ sudo mv /usr/bin/php{,.bak}

とでもして、pathからはずしておきます。(仮)

脱線して、本当にversionを変えれるか検証

$ php-build 5.5.0 ~/.phpenv/versions/5.5.0

確認( ー`дー´)キリッ

$ phpenv versions 
  system
  5.5.0
* 5.6.b2 (set by /Users/shinofara/.phpenv/version)

5.5.0に変更してみるっす

$ phpenv global 5.5.0
$ phpenv rehash 
$ phpenv versions
  system
* 5.5.0 (set by /Users/yshinoha/.phpenv/version)
  5.6.b2

phpのversionを確認してみるっす

$ php -v  
PHP 5.5.0 (cli) (built: May 17 2014 17:16:46) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0-dev, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.2-dev, Copyright (c) 1999-2013, by Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

いいっす!じゃ、もどすっす

$ phpenv global 5.6.b2
$ phpenv rehash

じゃぁ、次はlaravelさんにはいります。

laravel環境準備

composerインストール手順 を参考に

$ curl -sS https://getcomposer.org/installer | php

laravel導入手順 を参考にします。
testappというアプリケーションを作りましょう

$ ./composer.phar create-project laravel/laravel testapp --prefer-dist

アプリケーションディレクトリに移動

$ cd testapp

サーバを立ち上げてみよう

$ php artisan serve
Laravel development server started on http://localhost:8
[Sat May 17 17:26:44 2014] ::1:57891 [200]: /favicon.ico

http://localhost:8000/ を開けば、「You have arrived.」と表示されるはずです!

Hello WorldとかHello ralavelじゃなかった!!!

準備が整ったので、ralavelと生活をはじめます。
では、では今後も更新していきます。

追記:PHPフレームワークトレンド

f:id:shinofara:20140517225951p:plain

すげぇはねあがり

# すんげー簡単に、LT用スライドを作る方法

あえてスライドだけにした。 SEOきかないんやろうな。。。残念

使ったものは

使い方は、以下のスライド(REVEAL.JSで作ってます)

github page
https://shinofara.github.io/#/

# Boxenやめて、Homebrew + caskにしたし、Brewfileを晒してみる

# tap
tap phinze/cask || true
tap caskroom/versions || true
tap aereal/homebrew-aereal_casks || true
tap caskroom/homebrew-fonts || true

# Homebrewを最新版にアップデート
update

# Formulaを更新
upgrade

# homebrew
install autoconf
install wget
install tree
install fontforge
install markdown
install git
install tmux
install hub

# install Ruby
install openssl
install rbenv
install readline
install ruby-build

# homebrew-caskのインストール
tap phinze/homebrew-cask
install brew-cask

# インストール
cask install google-chrome
cask install google-chrome-canary
cask install firefox
cask install sublime-text

tap jingweno/gh
cask install vagrant
cask install evernote
cask install mou

cleanup

https://github.com/yshinoha/.dotfiles/blob/master/Brewfile