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

動作環境確認をコマンドラインで

動作環境確認用のcheck.phpはコマンドラインでも動くみたい

$ php web/check.php
********************************
*                              *
*  Symfony requirements check  *
*                              *
********************************

php.ini used by PHP: /etc/php5/cli/php.ini

** WARNING **
*  The PHP CLI can use a different php.ini file
*  than the one used with your web server.
*  If this is the case, please ALSO launch this
*  utility from your web server.
** WARNING **

** Mandatory requirements **

  OK        Checking that PHP version is at least 5.3.2 (5.3.2-1ubuntu4.5 installed)
  OK        Checking that the "date.timezone" setting is set
  OK        Checking that cache/ directory is writable
  OK        Checking that the logs/ directory is writable

** Optional checks **

  OK        Checking that the PHP-XML module is installed
  OK        Checking that the token_get_all() function is available
  OK        Checking that the mb_strlen() function is available
  OK        Checking that the iconv() function is available
  OK        Checking that the utf8_decode() is available
  OK        Checking that the posix_isatty() is available


[[WARNING]] Checking that that a PHP accelerator is installed: FAILED
            *** Install a PHP accelerator like APC (highly recommended) ***


[[WARNING]] Checking that php.ini has short_open_tag set to off: FAILED
            *** Set short_open_tag to off in php.ini ***
  OK        Checking that php.ini has magic_quotes_gpc set to off
  OK        Checking that php.ini has register_globals set to off
  OK        Checking that php.ini has session.auto_start set to off

** Optional checks (Propel/Doctrine) **

  OK        Checking that PDO is installed
  OK        Checking that PDO has some drivers installed: mysql, pgsql, sqlite, sqlite2


[[WARNING]] Checking that XSL module is installed: FAILED
            *** Install the XSL module (recommended for Propel) ***

あ、なんか警告でてる...

Symfony2事始め

こんどのPHP MatsuriではSymfony2で何か作ろうと思うので、その下調べ。

ちなみに環境はUbuntu.10.04 & PHP 5.3.2。

Quick Tourに沿ってすすめていく。
http://docs.symfony-reloaded.org/quick_tour/index.html

とりあえず作業ディレクトリを用意。

$ cd ~/public_html
$ mkdir symfony2
$ cd symfony2

sandboxをダウンロード、展開。

$ wget http://symfony-reloaded.org/downloads/sandbox_2_0_PR3.tgz
$ tar xvfz sandbox_2_0_PR3.tgz

「sandbox」というディレクトリができる。

動作環境チェック。
http://localhost/~okonomi/symfony2/sandbox/web/check.phpにアクセス。

php.iniのdate.timezoneの設定と、ログとキャッシュディレクトリのパーミッションでエラーが出たので対応。

$ sudo vi /etc/php5/apache2/php.ini

[Date]                                                                                                                                                                                          
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Tokyo   ; <- 追記

$ sudo /etc/init.d/apache2 restart
$ chmod 777 hello/cache hello/logs

ぜんぶチェックが通ったので、いよいよhttp://localhost/~okonomi/symfony2/sandbox/web/index_dev.phpにアクセス。
「Congratulations!」ていうメッセージが表示されればひとまずOKらしい。

ひとまずここまで。現時点で分からないことは

  • ファイル構成
  • Bundleって?
  • 1.xのときにあったmoduleはどこへ?

といったところ。少しずつ理解していこう。