PHPで複数バージョンの実行環境を管理できるphpenvを試した(on Mac)

時のメモ。phpenvは2つある...

後者に上げたphpenvはphpのインストールまで行ってくれる
が、情報が少なかったため...今回はphp-buildと併用して使う前者の方を使って試してみた

phpenvをインストール

$ curl https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | sh

※Gitを事前にインストールしている必要があります

.zshrcにphpenvへのパスとphpenvのinit実行設定を追記

export PATH=$HOME/.phpenv/bin:$PATH
eval "$(phpenv init -)"

bashをお使いの方は、.bashrcに

php-buildをphpenvのプラグインとしてインスール

phpenv+php-build環境の構築と運用を参考にさせて頂きました(一緒です..)m(_ _)m

$ mkdir $HOME/.phpenv/plugins
$ cd $HOME/.phpenv/plugins
$ git clone git://github.com/CHH/php-build.git
$ curl https://raw.github.com/hnw/php-build/plugin-to-chh-phpenv/bin/rbenv-install > $ php-build/bin/rbenv-install
$ chmod a+x php-build/bin/rbenv-install

phpをインストール

$ phpenv install 5.4.15

が下記build時にエラー・・

-----------------|  BUILD ERROR  |-----------------

Here are the last 10 lines from the log:

-----------------------------------------
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
rm: conftest.dSYM: is a directory
configure: error: jpeglib.h not found.
-----------------------------------------

The full Log is available at '/tmp/php-build.5.4.15.20130518154051.log'.
[Warn]: Aborting build.

ということなので、必要なパッケージをbrewでインストール

$ brew install jpeg
$ brew install re2c
$ brew install mcrypt

んでもって、再度PHPをインスール

インストールされているPHPの確認

$ phpenv versions

phpのバージョンを切替

$ phpenv global 5.4.15

phpのバージョン確認

$ php -v

PHP 5.4.15 (cli) (built: May 18 2013 16:10:03) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans

oh!

参考サイト

下記サイトを参考にさせて頂きましたm(_ _)m

『第13回 PHPで何か作ろうかい(会)@恵比寿』開催しましたぁ!!

f:id:hondabin:20130518142531j:plain

 ※@yandoさん所属のEngineYardさんのオフィスをお借りして開催しています。ありがとうございますm(_ _)m

 

今回の開催で13回目を迎えましたこの会、エンジニアの方からそうでない方、学生の方と

合計14名の方に参加頂きましたっ!!

 

f:id:hondabin:20130520131436j:plain

 

@otiai10さんからハッカソンといえば red bullの差し入れを頂きました!ありがとうございますm(_ _)m

 

f:id:hondabin:20130518142520j:plain

 

前回から今回行うタスクを各自なるべーく小さい粒度でポストイットで貼付けて

開発を進めていきましたが、 結果は・・

 

f:id:hondabin:20130518185158j:plain

 

と、全体の各タスクに対して50%ぐらいの進捗率でしたね。

今回参加された方のテーマをざーっと説明しますと・・

と、各自もくもく・・約6時間、作業が進んだ!方も、そうでなかった・・方も

長い時間、本当にお疲れさまでした!!

 

f:id:hondabin:20130518182459j:plain

 

!!!

 

  • 作りたい物があるんだけど・・なかなか進まない・・yo!!
  • 作っている物があるんだけど・・行き詰まっている・・・(´ノω;`)
  • 作りたい物があるんだけど・・何から始めればいいんだ!?・・
  • 一人でモンモンとしている・・orz

な方も、、この機会をきっかけに、みんなで一緒にもくもくと物を作り上げませんか??

次回は・・6/29日(土) に開催します!!ご都合がよろしければ是非参加お待ちしております!!

:sの置換

<option value="1">hoge</option>

こんなHTMLがあって

"1"  => "hoge",

の形式に変換したい・・

:s/\(.*\)value=["']\(.*\)["']\(.*\)>\(.*\)<\/option>/"\2" => "\4",/gc

!!

railsでバックグラウンドプロセスの管理

そんな時はforeman使うといい。

$ gem install foreman

プロジェクトのルートディレクトリにProcfile作成して、管理したいプロセスを記述。

web: bundle exec rails s
mail: mailcatcher

で起動は・・

$ foreman start

・・

11:26:36 mail.1    | started with pid 63721
11:26:36 web.1     | started with pid 63720

Good job!!

githubに追加して欲しいstarのコメント機能

githubでstarしたリポジトリをあとで検索しやすいように、starした時に合わせてコメントをつけれるようなuser scriptを書いてみた(動作はchromeのみでしか試してません)

gihub-star-note

先週末にqiitaのハッカソンがあって、そこにgithubの人が来ていたので
その日にdemo作って、この機能を入れて欲しいとプレゼン時に発表した。伝わったかは分かりません..

starの検索周り強化してほしいのだ!!

第4回『Rubyで何か作ろう会』開催します

少し先になりますが、3/2日(土)に第4回目のRubyで何かつくる会を開催します。

(前回は13名の方に参加頂きました!ありがとうございます!!)

 

以前まで、成果発表の後にすぐに解散(打ち上げに参加できる方は居酒屋へ・・)という形をとっていましたが

打ち上げに参加できない方もいるなぁーと思い、、成果発表後にミニ懇親会という時間を用意して

打ち上げにでれない方も参加者同士でわいわい交流ができたらなと思います。

 

「未経験者でも大丈夫ですか?」

「成果発表はどんな形式ですか?」

 

と参加希望の方から質問を頂くことがよくありますが、未経験者でももちろんモーマンタイですし、成果発表はプロジェクターを用意して・・などという形ではなく、その場で口頭にて発表する形ですので、肩の力を抜いてお気軽にご参加ください。

 

@honbin まっています!!

フォルダ間の移動を高速に「どこでもどあゔぃむー」

※音量をあげ、再生ボタンを押しましたら、さーご一緒に

こんなこといいな できたらいいな
あんなゆめ こんなゆめ いっぱい あるけど
みんなみんなみんな かなえてくれる
ふしぎなプラグインで かなえてくれる
ふぉるだかんのいどうを こうそくに
「ハイ!コントロールピーヴィムー」
アン アン アンッ とってもだいすき ヴィム エーディーター

この記事はVim Advent Calendar 2012 43日目の記事になります。
前回の記事は@takochuuさんのtagbar + ctagsでウキウキ新生活!という記事でした。オシャンティ!

経緯のお話し

rails.vimcake.vimのようにプロジェクトの各フォルダ間移動を、独自MVCで作られたプロジェクトにても… :Rmodel、:Rcontrollerと各フォルダへ高速に移動できるプラグインが欲しいので作ろう..と意気込んでいたのですが、年始にごにょごにゅしているうちにctrlp.vim拡張機能を使って近しいことができることを発見したので、そのトピックを2つほど紹介してみたいと思います。

「どこでもどあー ゔぃむー」のctrlp拡張プラグインを入れる

※尚、ctrlp.vimはgithubからcloneして最新版を入れて上げてください

プラグインというより、コマンドをただただ提供しているだけのプラグインです。
名前は「どこでもドア」にインスパイアされて命名してみました。

ctrlp-dokodemo-doa.vim

ctrlpのソースを呼んでたところ、ctrlp#initの第2引数にパスを渡してあげると、そこからファイル検索ができるよう仕組みが分かったので、プラグイン?とは言い難いのですがちょこっと実装して拡張してみました。

インストール方法は、上記URLのpluginフォルダにあるctrlp-dokodemo-doa.vimを ctrlp.vim/plugin/のポケットにいれてあげて、vimrcに下記設定を書いてあげれば、いつでもドラえもんがポケットから取り出してくれます。

let g:ctrlp_dokodemo_doa_settings = {
\  'YourProject' : {
\    'app_path' : '/path/to/your_project/',
\    'available' : 1,
\    'role_paths' : {
\      'controller' : 'app/controllers/',
\      'model' : 'app/models/',
\      'view' : 'app/views/'
\    }
\  },
\  'YourProject2' : {
\    'app_path' : '/path/to/your_project2/',
\    'available' : 0,                                                                                                                                     
\    'role_paths' : {
\      'controller' : 'app/controllers/',
\      'model' : 'app/models/',
\      'view' : 'app/views/'
\    }
\  },
\}

ctrlp_dokodemo_doa_settingsの第1階層がプロジェクトのキーとなっており、そのキーとその配下のrole_pathsのキーがそのままコマンドとして適用されます。
※キーの設定はユーザーコマンドの命名規則(半角英数)に従って名前付けをしてあげてください。

上記vimrcの設定ですと

:CtrlPDDYourProjectcontroller
:CtrlPDDYourProjectmodel
:CtrlPDDYourProjectview

の3つのコマンドが適用されます。尚、CtrlPDDはプレフィックスとなっています。

上記適用されたコマンドを入力し、目的の場所にてctlpのウィンドウが開きましたら、後は<c-h>、<c-v>、<c-t>とお好みの開き方でファイルを開いてあげたり、そのディレクトリ配下にてファイルを作成 or フォルダを作成したい場合は、ファイル名 or 作成したいフォルダ(フォルダを含む場合はhoge/hoge.rb)を入力して<c-y>で作成してくれます。ここはctrlp.vimの標準機能ですね、詳しくはドラエモンにhelpを参照してください。また上記設定のように、複数プロジェクトを抱えている..あ..設定をしますと、沢山のコマンドが羅列されて選択が大変でしたので、availableの有効設定値を設けてコマンドの非表示設定をできるようにしました。

複数人でこういうプロジェクトの開発をしていると、変なところにプログラムがおかてしまったり… とドキュメント関連とか整備されていればあれなのですが、ドキュメントなんて見ないことがほとんどですので、コマンド入力からフォルダ移動を強制するという意味で有効ではないかと思ったりしました。

名前についてはみんな大好きなドラえもんの道具を命名することで、Vimに取っ付きにくかった人も、名前から興味ができて一歩を踏み出すきっかけが 「できたらいいなー あんなゆめ こんなゆめ.. 」..失礼、よかったら是非使ってみてください。

:CtrlPBookmarkDirAddコマンドを使おう

ctrlp標準の拡張として提供されている機能です。

:CtrlPBookmarkDirAdd
:CtrlPBookmarkDir

各ディレクトリパスをブックマーク登録することができて、登録されたブックマークからファイル検索できるような仕組みが提供されております(この機能を使えば全てよかったんじゃ..)

最後に

ctrlpは先日上がったエントリのように、拡張機能を簡単に作れる仕組みがあるので 今度はもう少し突っ込んだプラグインを作ろうと思います。まだctrlp自体使っていない方がいましたら、ライフチェンジングなプラグインなので是非使うことをお勧めしますです。使い方はmattnさんの記事が非常に参考になると思います。 

明日は@yomi322さんです!

そんじゃーね!!!!!