serverQueen(ホスティングサービス)のvpsにyumをインストールをしたのだが、ちょっとハマったのでメモ。
下記はrootユーザで実行。
cd /usr/local/src/
mkdir yumrpm
cd yumrpm
wget http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/m2crypto-0.16-6.el5.6.i386.rpm
wget http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/python-sqlite-1.1.7-1.2.1.i386.rpm
wget http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/yum-3.2.22-20.el5.centos.noarch.rpm
wget http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/python-elementtree-1.2.6-5.i386.rpm
wget http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/python-urlgrabber-3.1.0-5.el5.noarch.rpm
wget http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
wget http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm
wget http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/rpm-python-4.4.2.3-18.el5.i386.rpm
wget http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm
rpm -ihv *
yum -y install yum-fastestmirror
yum -y update
13行目の「rpm -ihv * 」で
例えばpackage rpm-python-4.4.2.3-18.el5.i386 is already installed
のようにエラーになれば、
インストール済みのファイルをアンインストールする必要がある。
rpm -e rpm-python-4.4.2.3-18.el5.i386
アンインストールできれば、
rpm -ihv *
でインストールできるはず。
※現在は上記のバージョンだが、wgetでnot foundとエラーがでるようなら、
下記のページから現在のバージョンのものをDL。
◯serverQueen環境にあうDLページ
ftp://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/
■参考サイト
http://centos.bungu-do.jp/2008/05/vpsyum.html
http://bucato.jp/weblog/?p=192
今回はサーバスクリプトのみで携帯flashを動的生成する方法です。
※動的に出力できるのはテキストのみです。
下記にある動的生成クラスを利用すれば、簡単に動的生成することが可能です。
サーバスクリプトのみなので、特別なアプリケーションのインストールが不要(phpは必要)です。
■利用ファイル
・SwfGen.php 動的生成クラス
・sample01.php 動的出力テキスト設定・実行ファイル
・sample01.swf テンプレートflash
■各ファイルソース
◯動的生成クラス 言語:php5
ファイル名:SwfGen.php
<?php
class SwfGen
{
public static function execute($swf, $datas = array())
{
$doactiontag = SwfGen::_maketag($datas);
//road
$fr = fopen($swf,"rb");
$headtmp = fread($fr,9);
$rb = ord(substr($headtmp,8,1))>>3; // rectbit
$headlen = ceil(((( 8 - (($rb*4+5)&7) )&7)+ $rb*4 + 5 )/8) + 12 + 5;
$head = $headtmp.fread($fr,$headlen-9);
//change header
$oldsize = filesize($swf);
$newsize = $oldsize+strlen($doactiontag);
$newhead = substr($head,0,4).SwfGen::_h32($newsize).substr($head,8);
$tail = fread($fr, $oldsize-$headlen);
fclose($fr);
//output
header("Content-Type: application/x-shockwave-flash");
print $newhead.$doactiontag.$tail;
}
private static function _h32($sizeint)
{
return pack("V",$sizeint);
}
private static function _h16($sizeint)
{
return pack("v",$sizeint);
}
private static function _calctaglen($dataarray)
{
$ret = 0;
foreach($dataarray as $key => $value){
$ret += strlen($key)+strlen($value) + 11;
}
return $ret+1;
}
private static function _maketag($dataarray)
{
$tag = "¥x3f¥x03";
$taglen = SWfGen::_calctaglen($dataarray);
$tag .= SwfGen::_h32($taglen);
foreach($dataarray as $key => $value){
$tag .= "¥x96".SwfGen::_h16(strlen($key)+2)."¥x00".$key."¥x00";
$value = mb_convert_encoding($value, "SJIS", "EUC-JP");
$tag .= "¥x96".SwfGen::_h16(strlen($value)+2)."¥x00".$value."¥x00";
$tag .= "¥x1d";
}
$tag .= "¥x00";
return $tag;
}
}
◯サーバ側 言語:php
ファイル名:sample01.php
<?php
require_once "SwfGen.php";
//関数 execute
//第1引数 swfファイルパス
//第2引数 連想配列 key:変数名 value:値
//sample01.swf内にtest変数にhogehogeをセット
SwfGen::execute("sample01.swf", array("test"=>"hogehoge"));
◯flash側
・ファイル名:sample01.swf
・ダイナミックテキスト変数名:debug
//test変数の値をダイナミックテキストdebugに代入
debug = test;
■デモ(上記の実行結果)
http://maxfactory.biz/flash/sample/cms/sample01.php
■ソース一式ダウンロード phpは5系、flashはCS4
http://maxfactory.biz/flash/sample/cms/sample01.tar.gz
Flash CS5 Packager for iPhoneでiphoneアプリ作成しました。
作成したアプリは、先週の木曜日にappleからの販売許可も得ました。
アプリ名は、CocktailRecipe.inでカクテルレシピ検索アプリです。
カクテルレシピのコンテンツはWEB APIを利用しています。
◯app store site
http://itunes.apple.com/jp/app/id357364034
とある期限があって間に合わせるため、細かいところは作りこめていないです。
一番気になるのは、通常のiphoneアプリとは違ってスクロールがスムーズに動きません。。
次期バージョンでは、スムーズにスクロールさせたい。
まずCS5 Packager for iPhoneがどんなものか検証するためのアプリという位置づけ。
簡単な感想。
本当に今までのas3知識・技術だけでアプリが作れます。
Flasherにとってこれは本当にありがたいこと。
ちなみにwindowsユーザもCS5を利用すればiphoneアプリ作れます。
RewriteRuleで特定の個体識別番号端末(uid)だけ別処理(ページ)に遷移させます。
サイトアップデートなどのメンテナンス時に、
テスト端末だけ閲覧できるように制御するときなどに使えます。
例えば、下記は3キャリア(au,docomo,softbank)でアクセスしたら、
指定の端末以外はment.html(メンテナンスページを想定)に遷移します。
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP?.Browser|J-PHONE|Vodafone|SoftBank)
RewriteCond %{HTTP:X-UP-SUBNO} !^au サブスクライバID$
RewriteCond %{HTTP:X-DCMGUID} !^docomo iモードID$
RewriteCond %{HTTP:X-JPHONE-UID} !^softbank 端末シリアル番号$
RewriteRule ^$ /ment.html [R]