Hatena::ブログ(Diary)

タイトル募集中2.0

2010-03-05

debian etchとlennyにおけるffmpegの違い

ffmepg -i file.mp4 で情報取得したとき,

etchだと

Video: h264

Audio: aac

lennyだと

Video: h264

Audio: mpeg4aac

となる.エンコードの部分でコーデックごとに処理をわけていたので,表記が変わっているとは知らず,aacのままにしたいたので落ちていたようだ.とりあえず,書き直して対応.

うーん,最新版いれとけよって話だが,ffmepgはコンパイルが面倒なのでaptitudeで一発で入るのを選んでしまう.

2010-03-02

VirtualBox上のDebianで解像度を変更する

普通にインストールした状態だと,解像度の変更ができなかった(そもそもプルダウンに選択肢がなかった)ので,ググってみた.

tp://d.hatena.ne.jp/a-ya_diary/20090308/1236524901

tp://d.hatena.ne.jp/hipuri/20080513/1210682649

tp://d.hatena.ne.jp/ksaito11/20090217

ありがとうございます.なんとかなりました.

2009-12-17

Zend_Rest_Serverについて

ZendFrameworkについてがっつりいろいろやったんだけど,書くのが面倒で更新が滞ってましたが,落ち着いてきたので少し記事を書いていきたいと思います.

まずは,xmlを返すようなシステムを作るために使ったZend_Rest_Serverについて.Content-Typeとかも勝手にtext/xmlにしてくれるので便利なんですが,公式のドキュメント読んでも意味がわからなくてかなり悪戦苦闘しました.(公式:http://framework.zend.com/manual/ja/zend.rest.server.html

書いてる通りやってるのに動かない.どうなってんのって感じだった.だから一生懸命ググったんだけど,ググれどもググれども,いい資料が見つからない.最後は,海外のフォーラムをさまよって,やっとわかりやすいサンプルをみつけることができた.(http://blog.ekini.net/2009/04/17/zend-framework-a-simple-zend_rest_server-example/

以下,http://localhost/zend/123のような感じでアクセスを想定したプログラム.123はidとしてルーティングしてあります.

//indexAction

$params = $this->_getAllParams();
$request = 省略...;

$server = new Zend_Rest_Server();
$server->setClass('XmlServer');
$server->handle($request);

//XmlServer.php
class XmlServer
{
	private $xmlString = '<?xml version="1.0" encoding="UTF-8"?><response></response>';
	public function getById($id)
	{
		$xml = new SimpleXMLElement($this->xmlString);
		//ノード追加処理は省略
		return $xml;
	}
}

受け取ったパラーメタを上のサイトにあるように

Array ( [method] => getById [id] => 123 ) 

のような配列にして$requestを作成.この配列のmethodの部分がsetClassで指定したクラスでよばれることになるようです.さらに,残りのパラメータ(ここでは[id] => 123)の値がそのメソッドの引数として渡されます.受け取る側は,

getById($id)

のようにして受け取ることができます.また,$requestのパラメータが↓こんなかんじで複数あるときは,

Array ( [method] => getById [id] => 123 [name] => hogeo ) 
getById($id, $name)

のようにして受け取ることになります.パラメータの数に合わせて良しなにやってくれるので楽でいいです.存在しないメソッドを呼んだときのエラー処理とかもやってくれます.

2009-09-17

ルーティング

この二つ読んだら出来た.

<?php
//index.php
$front = Zend_Controller_Front::getInstance();
	$router=$front->getRouter();
	$router->addRoute(
		'test_router',
		new Zend_Controller_Router_Route(
			'test/:id', //ルートの定義
			array( //デフォルト値
				'controller' => 'test',
				'action' => 'index',
				'id' => '000'
				),
			array(id' => '\d+')
        ));
Zend_Controller_Front::run('./application/controllers');
?>
<?php
//TestController.phpのindexAction
public function indexAction()
{
	$this->view->assign('id', $this->_getParam('id'));
}
?>
<?php
//view:index.phtml
echo $this->escape($this->id);
?>

これで,「http://localhost/test/123」でアクセスすると123って表示される.

2009-08-03

さあやるぞと思ったら

データベースの設計とかの勉強してなかったから,詰まった.

http://gihyo.jp/dev/feature/01/database/0001

これ読んで基本的なこと見てからやる.