ユーザー領域にPEARをインストールする

システムとは別の場所にPEARをインストールする手順。たぶんPerlでいうところのlocal::lib的なもの。すでにシステムにPEARがインストールされているのが前提。

ここでは~/local/php以下にインストールすることにする。

個別PEAR用の設定ファイルの生成

# インストールパスと設定ファイルのパスを指定
$ pear config-create ~/local/php ~/.pearrc.local

~/local/phpの中のpearディレクトリにインストールするように設定されたファイルが生成される。
この設定ファイルを使ってPEARをインストールしていく。

チャンネル情報を更新

$ pear -c ~/.pearrc.local uc

PEAR本体をインストール

$ pear -c ~/.pearrc.local i pear

これでOK。

インストールファイルを確認

$ ls ~/local/php/pear
cache    data     docs     download ethna    pear     peardev  pecl     php      temp     tests

~/local/php/pear/pearpearコマンド。今後はこれを使う。

ついでに、このままだとコマンドがこんな感じでいちいち長いので

$ ~/local/php/pear/pear -c ~/.pearrc.local

aliasを設定しとく。例えば.zshrcに

alias lpear="$HOME/local/php/pear/pear -c $HOME/.pearrc.local"

と書いとけば

$ lpear

で使えるようになる。

以上で終わり。もちろんシステム側のPEARにはなにも影響しない。WEBフレームワークと組み合わせて、vendorディレクトリにインストールしたりするとかいいかも。

swfedのインストール on Homebrew@Mac OS 10.6.6

HomebrewなMac環境でswfedをインストールするときにちょっとはまったのでメモ。

環境

$ php -v
PHP 5.3.3 (cli) (built: Aug 22 2010 19:41:55) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

$ brew -v
0.7.1

依存するライブラリのインストール。

$ brew install libpng
$ brew install giflib

あと

$ brew link libpng

てやらないとpng.hが見つからなくてPNGサポートが有効にならない(ここではまった)。

あとはいつもどおり、ぺちぱいずしてこんふぃぎゅあーでめいく。

$ pwd
swfed-0.28
$ cd src
$ phpize
$ ./configure
$ make

src/modulesにswfed.soができあがるのでextension_dirにコピー。

$ php -i | grep extension_dir
extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20090626 => /usr/lib/php/extensions/no-debug-non-zts-20090626
$ sudo cp modules/swfed.so /usr/lib/php/extensions/no-debug-non-zts-20090626/

デフォルトの状態ではphp.iniが無いので作成する(ここでもちょっとはまった)。

$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
$ cd /etc
$ sudo cp php.ini.default php.ini
$ sudo chmod +w /etc/php.ini
$ sudo vi php.ini
「extension=swfed.so」を追記

確認。

$ php -i

.. 略 ..

swfed

SWF Editor support => enabled
SWF Editor version => 0.28
SWF Editor PNG support => yes
SWF Editor GIF support => yes

.. 略 ..

おわり。

第2回 関西アンカンファレンスに参加した

当日のセッション一覧をid:iseebiさんが作成されています。感謝!
http://d.hatena.ne.jp/iseebi/20110108/p1

以下聴いたセッションのメモ。

PHPがこの先生きのこるために何か」PHP光源氏計画 (@tbsmcdさん)

おみくじで必ず「大吉」を引くたったひとつの方法 (@ryo_ryoo_ryoooさん)

  • 大吉 16%
  • 今日 35%
  • 結論:大吉がでるまでやり続ける

sshの公開鍵認証について考えてみよう (@Ten_forwardさん)

  • 暗号で防ぐもの
    • 盗聴
    • 改ざん
    • なりすまし
    • 否認
  • だれと通信するのか?
  • 事例
  • 秘密鍵のパスフレーズはネットワーク上を流れない

zshで記号プログラミング (@mollifierさん)

  • 記号だけでHello, World!

Webサービスと言語について (@griffin374さん)

伝わるプレゼンの組み立て方を考える (@shokutoさん)

  • プレゼンはハッピーなもの
  • パワポは一直線
  • 時間を確認

海外で起業しよう!-オンライン英会話編- (@@tomoyatouさん)

  • フィリピンで企業
  • 英会話サイト
  • WordPressCakePHPで開発
  • Emacs
    • MySQLに接続できる
    • Git
  • 海外での起業は楽しい!

WEBの中に見られるバビロンシステム (slywalkerさん)

新感覚のURL短縮サービスを作ってみた (@mzsm_jさん)

  • URLが説明文になっている(日本語ドメイン)

Gmailはショートカットでサクサク使おう (@msngさん)

  • やりたいことはだいたいできる

WindowsのTwitterアプリJanetterの紹介 (@sinnerthesinnerさん)

美味しそうな写真の撮り方 (@griffin374さん)

  • 背景には何も無いほうがいい

迷えるWEBデザイナー2011年をFLASHで切り抜ける (@mrhdmsさん)

  • Progression
    • フルFlashサイトなら一択
    • 国産
  • THE Hype Framework
    • ビジュアルエフェクト
  • EASELjs
    • ASライクにJSが書ける

WEBの中に見られるバビロンシステム まとめ (@slywalkerさん)

  • バビロンシステムとWEBサービスの比較

Emacsデモ (@tomoyaさん)

  • point-undo

いつか役に立つかもしれないマーケティングのあれこれ (@kekoさん)

  • LPO(着地ページ最適化)

iPhoneアプリの作り方10個 (@mogyaさん)

  • 1/29 Titanium Mobile 勉強会

ライブストリーミングあれこれ (@GoaRICKさん)

大阪で2番目に分かりやすいjQueryプラグインの作り方 (@kamiyamさん)

Lithiumの紹介 (@nano_eightさん)

要求開発について (@ntaijiさん)

  • 要求開発とは?
  • WEB系と業務系の壁

以上メモおわり。
気になったキーワードをリストアップしてみる。

  • Titanium
  • プレゼンはハッピーなもの
  • バビロンシステム
  • point-undo.el
  • LPO
  • 要求開発

いやー面白い話いっぱい聞けました。発表されたみなさん、おつかれさまでした。

UINavigationControllerのアニメーションをカスタマイズしたい(未解決)

UINavigationControllerのアニメーションをカスタマイズしたいなと思って、ググってたらこんな情報があった。

iphone - UINavigationController Custom Transition Animations - Stack Overflow

Core Animationを使ってアニメーションさせて、アニメーションが終わったらアニメーションOFFでpushViewControllerする、という方法。

これでうまくいくかと思ったけど、この方法だとアニメーション中は片方のビューコントローラのビューしか表示されない。標準のアニメーションみたいにアニメーション中も両方のビューを表示したい。

なのでこんな方法を考えた。

// ビューをねじこむ
[self.navigationController.view addSubview:nextViewController.view];

// Get position of old view controller
CGPoint center = [oldViewController.view center];

// Position new view controller to the right of old one
[newViewController.view setCenter:CGPointMake(center.x + 320, center.y)];

// Animate change
[UIView beginAnimations:@"myAnimation" context:NULL];

// Move old view off screen
[oldViewController.view setCenter:CGPointMake(center.x - 320, center.y)];

// Move new view onto screen
[newViewController.view setCenter:center];

// Set animation delegate to self so that we can detect when animation is complete
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationComplete:finished:target:)];

// Finish animation block
[UIView commitAnimations];

あらかじめaddSubviewしとけば表示されるんじゃないの、と。
なんとなく望む結果になったけど、ナビゲーションバーの表示にかぶったり座標がなんかずれたりよくわからない。
もう自分で一から画面遷移のコード書いた方が早い気がしてきた...。

MacBook Airを買った

買っちゃいました。酔った勢いで。11インチのやつを。

いままで勉強会に参加するときとか外出時はネットブック(VAIO W)を使ってたけどスペックや重量に不満があって、それについ最近おしごとでiPhoneアプリつくりはじめてて、そこへきてのMacBook Air発売なもんで値段もリーズナブルだし買っちゃうか!と。正直買わない理由がなかった。

初めてのMacだけど思ってたほど戸惑いなく使えてます。Ubuntuで非Windows環境にそこそこ慣れてたせいかもしれません。

今日一日持ち歩いてみたけど重量的には全く負担ないです。バッテリーの持ちもいいし、閉じてスリープ開いて復帰な運用が快適で、もう非の打ち所がないんだけどどうしよう。

いまのところインストールしたものは以下の通り。

ずっと憧れてたおしゃれ通知ソフトGrowlがやっと使える!あと夜フクロウが気になってるのであとでいれてみる。

最後にちょっと気になってることなど。

いまのところいちばんの問題が、なぜか無線LANが繋がりにくいこと。アクセスポイント自体は認識してるのに、接続がタイムアウトしてしまう。同じ環境でVAIO Wは繋がるのに。何度か試すと繋がるので何とかなってるけど。

それとMacPortsでのパッケージのインストールにとても時間かかるのがびっくりした。

総じて特に問題なく快適に使えてるので、買って三日ですが大変満足しています。

ということで
Macデビューしました!

IO_SWFをラップしてSWFをいじるクラスを書いた

GREE Engineers' Blogで連載中の「SWFバイナリ編集のススメ」を参考にIO_SWFを使ってSWFをいじってみたけど、わりとローレベルな知識や操作を要求されるのでそのへんを簡単にできるようにしてみた。

JPEG以外の画像の処理はかなりあやしいので今後の連載の解説をもとにアップデートする予定。