cap'n webb

「ぺちぱな。つぎのつぎ 〜 Use Git as Scm; 〜」をやってきました

ぺちぱな。つぎのつぎ 〜 use git as scm; 〜

喋ってきましたー。

今回はGitの入門編だったのですが、プログラマでないデザイナさんやモノ書きさんでも便利に使えるということを知ってもらおうという趣旨でした。参加者にはプログラマ系はもちろん、画像作る人、3Dモデリングな人などいらっしゃってまして、是非今後も使ってみようという声も頂きましたので、開催した意義はあったのかなあと思います。

今後もいくつかネタを用意しており、また近々開催すると思いますので、その時は是非参加お願いします。

@tactactad氏 挨拶

@hideAki76氏 第二部 gitってどう使うの?

@eccyun氏 第三部? ぎっと、これから

誠での飲み会 ほとんど皆さん参加していただき15名以上いたぽい

ぺちぱな名物唐揚げ

奥にいるのが初参加の@7thworker氏。いやもう勝手にマブダチだと思ってますよ。

サプライズで誕生日ケーキを頂きました!かなり嬉しかった!

「ぺちぱな。(PHPer-na)始まり」に参加してきました

「ぺちぱな。(PHPer-na)始まり」に参加してきました。ちょっと今回はレポート風にお届けします。


趣旨説明 by @tactactadさん


もともと一緒に飲んでた時に、PHPの勉強会やりたいよねーと話したのがきっかけでもありました。(ろくろネタはもうよいですね)


PHPをCOBOL的に使う/職場におけるPHPの利用について。 by @hotta さん


リアルな現場なコードを見せていただいたり、学内インフラ(一応どことは伏せときますね)の構成など、大変興味深いお話を頂きました。


PHP5.4のき?〜四の五のPHP〜 by 私

四の五のPHP 〜PHP5.4のき?〜 from Taichiro Yoshida
PHP5.4の新機能(一応メインはtrait)についてお話させていただきました。話をするにあたって色々と勉強しないといけなかったので、自分にとっても良い機会となりました。


バスとバッグ。如何にしてボクらは挟まれ、そして開放されたのか。 by @hideAki76 さん


タイトルだけだと全く意味不明だったのですが、某バスのドアに挟まれた話へのタイトルからメインのネタへの変換が見事過ぎました。相変わらず話が上手で、本当に参考になります。ただネタ話だけでなく、スクレイピング等の技術・ライブラリ・苦労した点などの話が面白かったです。


WordPressのテーマをテーマにテーマっぽくテーマします。 by @inc2734 さん


WordPressのテーマの効率的で管理しやすい書き方についてお話頂きました。クラス化は自分もしていたのですが、複数サイトにまたがったテーマの共通化についてはあまり考えていなかったので、業務で書いた便利処理なんかをうまくまとめようと思いました。


楽しいEclipseプラグイン開発。 by @yuichi0301 さん


同じ会社のメンバーによります@yuichi0301君によるEclipseプラグインの実装方法について。Eclipseのビューでオセロゲームのサンプルを見せてくれたり、実際にプラグインをいちから作ってみるライブコーディング風なことをしてくれました。何かプラグイン欲しいなーと思ったら、今後は彼にお願いすることに決定しました。ちなみにこの「オセロ」については、懇親会でのあのバトルに繋がっていたのです。


Unity3分クッキング by @reiji1020 さん


UnityでARアプリ作った経験から、僕が良く知らない何かのアニメキャラを手のひらで動かそうという試みなどをお話頂きました。iPhone4とプロジェクタをVGAケーブルで繋いでデモをしてくれようとしたのですが、多分iPhone4が全出力に対応していないためか、どなたかのiPhone4SのカメラでiPhone4を写しつつデモされてました。。。子供のためにARで何か動かしてみるかなーと思いました。


FuelPHPで増えました、唐揚げボクが…… by @eccyun さん


ごめん、君の時だけ写真を取り忘れていました。。。唐揚げで許してね。。。 今流行りのFuelPHPについて話をしてくれました。oilコマンドでのひな形生成から、表示するところまで話してくれました。次回があれば他フレームワークとの比較、優位性などを話したいと約束してくれました。


総括

いやー、皆さんお忙しい中かなり準備していただいたようで、内容もしっかりしたものになっていたと思います。参加者も15名、登壇者を合わせると20名超えという長崎にしては盛況な勉強会となりました。次回も是非たくさんの方にしゃべって頂いて、続けていけるような良い勉強会に育てていきたいです。登壇者、参加者、RTしてくれた皆様も、本当にありがとうございました。


おまけ

懇親会で私が兼ねてから切望していた、弊社メンバ@yuichi0301と@maemukiyarouさんによりますオセロ三本勝負が始まりました。@yuichi0301は元九州チャンピオン、@maemukiyarouさんは竜王(すいません良く分かりません)なのです。まあ結果を先に言うと@yuichi0301が勝つことになったのですが、その対戦の様子を写真だけあげときます。

はじまりの握手
そこに打つーー??
和やかに終了

勝負の最中の二人の会話を、周りの誰も理解できていなかったのが印象的で、盤面だけみると完全に黒優勢なのに、白は勝ちを確信してたり、我々から見るとヘンテコなとこに打っているのに、「あぁー、良い手!」など。

ちなみにこのあと、私は@maemukiyarouさんと対戦させていただいたのですが、最後の10手くらいからパスするしかなくなり、魔法にかけられたみたいに、一気にひっくり返されました。。。

何事も極めてる人たちの勝負、仕事振りを見るのはワクワクしますねー、ということでレポート終わりです。

HTMLスライドをPDFに綺麗に変換する

最近スライドを作る際、markdownで書いて、Sublime Text 2 の Markdown Slideshow でHTML化しています。 で、気づいたんです。slideshareにあげれない。。。

いろいろ調べまして、PhantomJS使ったりとかしてらっしゃる方もいたのですが、cutycaptとimagemagicでやることに落ち着きました。スライドのURLが http://example.com/slide#1 slide#2 slide#3 みたいになっているやつだといけると思います。単にforで回しながら一枚一枚cutycaptでキャプチャとったものを、convertコマンドでPDFに吐いているだけです。cutycaptもimagemagicもHomebrewで入るので、環境作るのも楽でした。

下記が以前landslideで作ったスライドで、PDFに変換後slideshareにあげたものです。

JavaScript きほんの'き' from Taichiro Yoshida

で、その時に作成したシェルスクリプトをあげときます。汎用的には作ってませんが、環境に合わせて少し変えればある程度は大丈夫なはずです。

ちなみにcutycaptでのキャプチャが時間かかるため、変換が遅いです。ただそんなに頻繁に実行することもないので良しとしてます。もっと楽なやり方があれば是非教えて下さい。

Homebrewで特定のプロダクトがアップグレードされないようにする

brew update後、brew upgradeすると、バージョンアップ対象のものは全てアップグレードされます。
業務でgroonga+MySQLを使用しているのですが、groongaとMySQLのバージョンが合ってなかったりすると、多分壊れます。というかインストール時にそれでハマったので、間違ってアップグレードされてしまうと非常に困ります。他にもapacheを間違ってbrew upgrade後、brew cleanなどしてしまうとhttpd.conf消えちゃうなど。

でどうするかというと、brew versionsでキープしたいバージョンのFormulaをチェックアウトしておけばいいです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ brew versions groonga
2.0.3    git checkout 8330960 /usr/local/Library/Formula/groonga.rb # キープしときたいバージョン
2.0.4    git checkout 409e6a8 /usr/local/Library/Formula/groonga.rb
2.0.2    git checkout d622e37 /usr/local/Library/Formula/groonga.rb

$ cd /usr/local
$ git checkout 8330960 /usr/local/Library/Formula/groonga.rb

$ brew versions mysql
5.5.25a  git checkout 2814e3a /usr/local/Library/Formula/mysql.rb
5.5.25   git checkout 5bcd1f3 /usr/local/Library/Formula/mysql.rb
5.5.24   git checkout a977fbd /usr/local/Library/Formula/mysql.rb # キープしときたいバージョン

$ git checkout a977fbd /usr/local/Library/Formula/mysql.rb

これで、brew updateしても、上記でcheckoutされたFormulaはキープされ続けるので、upgradeされることがなくなります。

長崎でのIT系勉強会(6月)

なんかいろいろと目白押しです。全部は行けないけど是非参加したいですし、主催される方々には感謝です。

PHPでbundlerぽいことを行うOnion、Composer

pear.phpunit.de/PHPUnitを依存関係として設定する前提で、OnionComposerを使ってみました。

Onion

PEARモジュールのビルド、コンパイル、そして今回の目的であるbundler的なことを簡単に行えます。

インストール

homebrewの場合

gistにFormulaを置きましたので使ってください。

1
2
3
# $ brew install --HEAD https://raw.github.com/gist/1594321/6769fa97864462c4813f06bbb08760630ba7c87f/onion.rb
$ brew install --HEAD https://raw.github.com/gist/1594321/onion.rb
# 2012/02/07 修正 実行ファイルがonion.pharからonionに変更になりましたので、Formulaを修正しました。

直接

onion.pharをパスの通ったディレクトリに置いて、実行権限を与えるだけ。

1
2
3
# $ curl https://github.com/c9s/Onion/raw/master/onion > ~/bin/onion 
$ curl -s http://install.onionphp.org/ | sh
# 2012/02/07 修正 インストール方法が変更されてました。

使用方法

onion_sample
  |-- vendor
  |-- package.ini

プロジェクト直下にpackage.iniを作成し、ここに依存関係などを記述します。

packageセクションにあるname、desc、version、authorは必須となっています。(そもそもOnionはPEARパッケージを作る際にも使うためだと思われます。)
requireセクションには使用したいPEARパッケージを記述します。

上記の状態で下記コマンドを実行することで、vendorディレクトリにPEARパッケージがインストールされます。

1
$ onion -d bundle

いやー、インストールから実行まで非常に手軽。この手軽さが素晴らしいです。

Composer

こちらもbundler的な事を行えるのですが、Onionよりもその依存関係部分に注力したパッケージマネージャといった感じです。 PEARだけに限らず、gitのリポジトリを依存関係として指定したりもできます。ただその辺りはあまり調べていないので、今回はPEARパッケージのみ使う前提で試して見ました。

インストール

1
$ brew install --HEAD https://raw.github.com/gist/1574469/composer.rb

使用方法

composer_sample
  |-- vendor
  |-- composer.json

プロジェクト直下にcomposer.jsonを作成し、ここに依存関係などを記述します。

上記の状態で下記コマンドを実行することで、vendorディレクトリにPEARパッケージがインストールされます。

1
$ composer.phar install

ComposerはPEARモジュール以外も扱うためか、PEARモジュールそのものを扱うのに設定ファイルが少々複雑になります。 今回はpear.phpunit.de/PHPUnitを依存関係として設定していますが、まずそのためにrepositoriesにチャンネルを設定する必要があります。 そこまではいいのですが、PHPUnitがpear.symfony-project.com/YAMLに依存しているので、そのチャンネルも記述しておく必要があります。 つまり依存関係にある全てのチャンネルを設定しておく必要があるみたいです。これどうにかならないのでしょうか。

雑感としてはPEARモジュールさえ扱えればいいのであれば、Onionの方が簡単だと思いました。 対してComposerはPEARモジュール以外にも使えるので、今後に期待できるのはComposerだと思いますが、現状は用途に合わせてといったところでしょう。 また気になる動きとして、OnionのGithubリポジトリにcomposer-supportというブランチがあるのが楽しみです。

phpenv+php-build+pyrusでの複数バージョンPHP管理など

必要なもの

  • phpenv PHPのバージョン切り替え(切り替えるのみ、PHPのインストールはできない。rbenvを流用)
  • php-build 複数バージョンPHPのインストールマネージャ
  • Pyrus PEAR後継パッケージマネージャ

phpenvのインストール

1
2
3
4
5
6
7
8
9
10
$ curl https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | sh
Installing phpenv in /Users/dataich/.phpenv
remote: Counting objects: 1008, done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 1008 (delta 633), reused 928 (delta 558)
Receiving objects: 100% (1008/1008), 135.47 KiB | 124 KiB/s, done.
Resolving deltas: 100% (633/633), done.
Success.

Now add /Users/dataich/.phpenv/bin to your $PATH, add "eval $(phpenv init -)" at the end of your ~/.bashrc and restart your shell to use phpenv.

最後の行で言われたとおり、.bashrcに追記します。

~/.bashrc
1
2
export PATH="/Users/dataich/.phpenv/bin:$PATH"
eval "$(phpenv init -)"

phpenvは~/.phpenv以下にインストールされており、~/.phpenv/versionsにバージョンごとのPHPをインストールしてやることで切り替えが可能になります。

php-buildのインストール

1
2
3
4
5
6
$ git clone https://github.com/CHH/php-build.git
$ cd php-build
$ ./install.sh
Installing php-build in /usr/local
- Creating Directories... Done.
- Copying files... Done.

これで必要なもののインストールは完了です。また、現状はインストールできるPHPバージョンが増えたりした場合は、git pullして./install.shを再度実行しないといけないと思います。

php-buildを使用してPHPをインストール

まずはインストール可能なバージョンを調べます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ php-build --definitions
5.2.17
5.3.2
5.3.6
5.3.8
5.3.9RC3
5.3snapshot
5.4.0RC1
5.4.0RC2
5.4.0RC3
5.4.0RC4
5.4.0alpha3
5.4.0beta1
5.4.0beta2
5.4snapshot

では上記から好きなバージョンを選んでインストールしています。今回は業務で必須なので5.3.8を。

とその前にApacheモジュールどうする?

php-buildはApacheモジュールのビルドに対応していません(GitHubにIssueにはFeatureとして登録されてます。)。 ソースを読んでみるconfigure_optionを呼び出してあげればよさそうです。なのでdefinitionsに定義してあるスクリプトに変更を入れてあげます。 このdefinitions配下にあるスクリプトはいろいろビルド方法を調整する時に使えそうです(pyrusじゃなくてpear使いたかったらwith_pear書いて、install_pyrusコメントアウトするとか。)

/usr/local/share/php-build/definitions/5.3.8
1
2
3
4
5
configure_option "--with-apxs2" "/usr/local/Cellar/httpd/2.2.21/sbin/apxs" #この行を追加する。apxsへのパスは環境に応じて置き換えてください。
install_package "http://www.php.net/distributions/php-5.3.8.tar.bz2"
install_pyrus

install_xdebug "2.1.2"

まあPHPをビルドする度にlibphp5.soを上書きしてしまうだろうということと、phpenvで切り替えた時どうするのっていうのはありますが・・・。

気をとりなおしてphp-buildを使用してPHPをインストール

ではphp-buildを使用して5.3.8をインストールします。プレフィックスには~/.phpenv/versions/5.3.8を指定します。実はここでちょっとはまったのですが、最後の引数はプレフィックスなのでフルパスである必要があります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ php-build 5.3.8 ~/.phpenv/versions/5.3.8
Loaded pyrus Plugin.
Loaded xdebug Plugin.
php.ini-production gets used as php.ini

Building 5.3.8 into /Users/dataich/.phpenv/versions/5.3.8

[Downloading]: http://www.php.net/distributions/php-5.3.8.tar.bz2
[Configure]: /usr/local/bin/../tmp/php-build/source/5.3.8
[Make]: /usr/local/bin/../tmp/php-build/source/5.3.8
[Pyrus]: Downloading from http://pear2.php.net/pyrus.phar
[Pyrus]: Installing executable in /Users/dataich/.phpenv/versions/5.3.8/bin/pyrus
[XDebug]: Downloading http://xdebug.org/files/xdebug-2.1.2.tgz
[XDebug]: Compiling in /usr/local/bin/../tmp/php-build/source/xdebug-2.1.2
[XDebug]: Installing XDebug configuration in /Users/dataich/.phpenv/versions/5.3.8/etc/conf.d/xdebug.ini
[XDebug]: Cleaning up.
[Info]: The Log File is not empty, but the Build did not fail. Maybe just warnings got logged. You can review the log in /usr/local/bin/../var/log/php-build/error.5.3.8.20120106174319.log
[Success]: Built 5.3.8 successfully.

ちなみにphp.iniは~/.phpenv/versions/5.3.8/etc配下のを使うようになっています。また~/.phpenv/versions/5.3.8/etc/conf.d配下のものも読むようになっており、 xdebug.iniなどが置いてあります。バージョンごとにiniファイルを持っているので便利です。

phpenvを使ってみる

ではphpenvにて切り替えられるバージョンを調べてみます。

1
2
$ phpenv versions
5.3.8

先ほどインスールした5.3.8が使用できる状態になっていますので、グローバルに使うようにします。

1
2
3
4
5
6
7
8
$ phpenv global 5.3.8
$ phpenv versions
* 5.3.8 (set by /Users/dataich/.rbenv-version)
$ php -v
PHP 5.3.8 (cli) (built: Jan 11 2012 23:20:46)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
with Xdebug v2.1.2, Copyright (c) 2002-2011, by Derick Rethans

また、下記のようにlocalを使うとカレントディレクトリに.rbenv-versionというファイルが作られ、そのディレクトリ配下では一度指定したバージョンが使われるようになります。

1
$ phpenv local 5.4snapshot

phpenv rehashコマンド

phpenvでは.phpenv/shims/にパスを通すようになっており、そこを介してexecutableなコマンドを実行したりします。

1
$ ll .phpenv/shims

何もないはずです。ここを構築するにはrehashを使います。

1
2
3
4
5
6
7
8
9
10
$ phpenv rehash
$ ll .phpenv/shims/
total 56
-rwxr-xr-x 7 dataich staff 102 1 11 23:31 phar
-rwxr-xr-x 7 dataich staff 102 1 11 23:31 phar.phar
-rwxr-xr-x 7 dataich staff 102 1 11 23:31 php
-rwxr-xr-x 7 dataich staff 102 1 11 23:31 php-config
-rwxr-xr-x 7 dataich staff 102 1 11 23:31 phpize
-rwxr-xr-x 7 dataich staff 102 1 11 23:31 pyrus
-rwxr-xr-x 7 dataich staff 102 1 11 23:31 pyrus.phar

これを実行することでインストールされているPHPやPEARモジュールの実体を探してきて、シムリンクぽいシェルスクリプトが作成されます。新しいバージョンのPHPや、phpunitなどの実行モジュールをインストールした後には実行しておきましょう。

Pyrus

で次にPyrusです。PEARの後継にあたるパッケージマネージャです。使ってみます。php-buildでインストールした際に既に使えるようになっています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ pyrus config-show
Pyrus version 2.0.0a3 SHA-1: BE7EA9D171AE3873F1BBAF692EEE9165BB14BD5D
Using PEAR installation found at /Users/dataich/.phpenv/versions/5.3.8/pyrus
System paths:
php_dir => /Users/dataich/.phpenv/versions/5.3.8/pyrus/php
ext_dir => /Users/dataich/.phpenv/versions/5.3.8/lib/php/extensions/no-debug-non-zts-20090626
cfg_dir => /Users/dataich/.phpenv/versions/5.3.8/pyrus/cfg
doc_dir => /Users/dataich/.phpenv/versions/5.3.8/pyrus/docs
bin_dir => /Users/dataich/.phpenv/versions/5.3.8/bin/
data_dir => /Users/dataich/.phpenv/versions/5.3.8/pyrus/data
www_dir => /Users/dataich/.phpenv/versions/5.3.8/pyrus/www
test_dir => /Users/dataich/.phpenv/versions/5.3.8/pyrus/tests
src_dir => /Users/dataich/.phpenv/versions/5.3.8/pyrus/src
php_bin => /Users/dataich/.phpenv/versions/5.3.8/bin/php
php_ini => /Users/dataich/.phpenv/versions/5.3.8/etc/php.ini
php_prefix => /Users/dataich/.phpenv/versions/5.3.8/bin/
php_suffix =>
...

パッケージのインストール先ディレクトリ等がphpenvで指定している現在のバージョン配下になっています、素晴らしい! これでPEARモジュールは現在使用中のPHPのバージョン配下に収まることになります。

pyrusコマンドは第一引数にディレクトリを渡してやることで、そのディレクトリローカルなパッケージ管理ができるようになるので、非常に便利です。 ただphp-buildが生成するshimにバグがあって、使えない状態だったのですが、作者さんに投げたところ数時間で対応していただきました、これで常用できそうです。

#35: Cannot use pyrus locally - Issues - CHH/php-build - GitHub

ただし現状Pyrusだとプロジェクトローカルなインストールは簡単なのですが、依存関係の設定ファイルだけリポジトリに上げておいて、コマンド一発で全部インストールみたいなことが難しいです。 package.xmlを作ればできるようなのですが、そもそもPEARモジュールのビルド用ぽくて、扱いが難しいです。 次のエントリーではその辺りを上手く解決してくれる、Onion、Composer辺り扱ってみます。

参考

phpenv で複数の PHP 環境を管理する

php-build で PHP5.4.0 beta1 をビルドする

Using Pyrus To ManagePEAR Installable Vendor Libs

PHPUnit_Storyで振舞駆動開発なテストを書いてみた

テスト対象としてEntryクラスを作成しました。
  • ステータス(下書き・公開済・削除)を持つ。
  • 初期ステータスは下書き
  • ステータスはメソッドを通じて変更できる。
まずはテスト駆動開発なテストを行う簡単なテストケースを書いてみました。こんなコードになります。
実行結果はこうなります。
$ phpunit --debug EntryTest.php 
PHPUnit 3.6.2 by Sebastian Bergmann.


Starting test 'EntryTest::testStatus'.
.

Time: 0 seconds, Memory: 5.50Mb

OK (1 test, 3 assertions)
これを振舞駆動開発なテストで書きなおしてみました。PHPUnit_Extensions_Story_TestCaseをextendsし、runGiven、runWhen、runThenを実装する必要があります。
実行結果はこうです。なんかそれっぽくなりました
$ phpunit --debug --verbose --printer PHPUnit_Extensions_Story_ResultPrinter_Text EntrySpec.php
PHPUnit 3.6.2 by Sebastian Bergmann.

EntrySpec
 [x] Status for new entry is draft

   Given New Entry 
    Then Status should be draft

 [x] Status after publish entry is published

   Given Some Entry 
    When publish Entry 
    Then Status should be published

 [x] Status after delete entry is deleted

   Given Some Entry 
    When delete Entry 
    Then Status should be deleted

Scenarios: 3, Failed: 0, Skipped: 0, Incomplete: 0.
パッと見、コード量が多くなってしまいましたが、テスト対象がサンプル程度なので。実装が増えてきたときに、runGiven、runWhen、runThenを良い感じに使いまわせるようにすると、効果大きそうです。 ちなみにPHPUnit、PHPUnit_StoryともにPEARでサクッとインストール可能です。

HomebrewでApache2.2+MySQL5.1+PHP5.3環境を構築

残念ながらHomebrewのリポジトリにはApache、PHPがなく、MySQLは5.5となっています。もっともApacheとPHPに関しては、システムに入ってるものはインストールしないというHomebrewの方針なんだろうと思いますが。で探し回っているとこんなものを見つけました。
Alternate formulae repos for Homebrew
https://github.com/adamv/homebrew-alt/
homebrewのリポジトリにはないものを野良的に公開してくださっています。上記利用させていただいて、MAMP環境を構築します。

PHP5.3のインストール

HomebrewはFomulaの直URL指定でもインストールすることができます。
brew install https://raw.github.com/adamv/homebrew-alt/master/duplicates/php.rb --with-mysql
ちなみにduplicatesディレクトリに入っているFomulaは、OS Xに標準で入っているものが集められています。

MySQL5.1のインストール

brew install https://raw.github.com/adamv/homebrew-alt/master/versions/mysql51.rb --with-utf8-default --use-gcc
初期設定
unset TMPDIR
mysql_install_db
起動・停止
私は、自動起動はさせたくなかったので、launchdには登録しませんでした。
mysql.server start
mysql.server stop

Apache2.2のインストール

brew install https://raw.github.com/adamv/homebrew-alt/master/duplicates/httpd.rb
httpd.conf等は/usr/local/Cellar/httpd/2.2.21/etc/apache2にあります。
PHPなどの設定
私の場合は、extra/php.confを作成し、httpd.confにてIncludeするようにしています。
vi /usr/local/Cellar/httpd/2.2.21/etc/apache2/extra/php.conf
LoadModule php5_module /usr/local/Cellar/php/5.3.8/libexec/apache2/libphp5.so
AddType application/x-httpd-php .php .php5 .phtml
その他に、DocumentRootを/Users/dataich/Sitesという風にユーザーホームのSitesディレクトリを使用するようにしました。この辺りはお好みで。
起動・停止
sudo apachectl start
sudo apachectl stop
あとは、phpinfo()で出力してみたりして確認すればOKです。 追記 - 2011/11/08 Homebrewで入れたPHPのpearでpermissionエラーが出ましたので、下記でもろもろ設定しました。
chmod -R ug+w /usr/local/Cellar/php/5.3.8/lib/php
pear config-set php_ini /usr/local/etc/php.ini

「じゃばすく製作所(仮)ひとつめ」で話してきました

じゃばすく製作所(仮)ひとつめ
というわけで、「じゃばすく製作所(仮)ひとつめ」で話してきました。 コンテンツのアウトラインは@tactactadさんに作ってもらい、中身は僕が書いたという感じです。前半僕がJavaScriptについて説明、後半は皆さんに計算機を作ってもらうというコンテンツでした。 JavaScriptの基本の説明の部分では、関数のちょっと深い部分やプロトタイプチェーンなどの説明もやったのですが、非プログラマな方々もいらっしゃったので、ちょっと申し訳なかったです。もう少し後半の計算機制作に向けて特化した内容にしても良かったのかなあという気がします。もうこればっかりは経験。やっていくしかない。 スライドはDropboxに置いてますのでどうぞ。