Posted by yamada on 2010/02/27 – 01:38
Filed under AS3, Flash
Tagged as AS3, Flash, Shift_JIS, XML
「AS3のShift_JISのXML読み込みにバグ」という問題でかなりハマったので、メモのためのエントリです。
Shift_JISのXML読み込みで問題発生
『AS3でShift_JISのXMLを読み込む』という話があった時点で、「え!?Shift_JIS?なんか怖いので、UTF-8にしてください」と野生の勘で言ったものの、根拠がなくて却下されていました。
で、開発終盤。
なぜだかうまく読み込めない、という問題が大きな問題となりつつあり、当初は通信ラグとかサーバ側がおかしいんじゃないのか?とかそういう感じで調査していたのですが、調べていくと、「AS3でShift_JISの大きなサイズのXMLを読み込むとうまく読み込めないことが発生する」というバグ情報にたどり着きました。
野生の勘は的中でした。
21世紀も1割過ぎたんだから、もう新規案件の通信時文字コードはUTF-8で統一しようよ、と心の底から思います。
Shift_JISのXMLを問題なく読み込む方法
さらに調べると、どうやら回避策があるということがわかり、具体的には下記のブログエントリを参考に回避することが出きました。
内容を説明すると、バイナリフォーマットで通信し、それをByteArray→UTF-8の解釈でStringに変換→XMLという流れで解釈してあげれば問題ない模様。
// ロード開始コード.
var _loader:URLLoader = new URLLoader();
_loader.dataForamt = URLLoaderDataFormat.BINARY; // ←ここが重要.
_loader.addEventListener( Event.COMPLETE, onLoadComplete );
_loader.load(new URLRequest( _path_to_load_ ));
// ロード完了後の処理.
var bytes:ByteArray = ByteArray( _loader.data ); // 型キャスト.
var xml:XML = new XML( byteData.readMultiByte( bytes.length, "shift-jis" ) );
この流れでうまく行くというのは、おそらく、自動でXMLに変換するときに文字コード判定がバグってしまう、ということなんだと思います。
[AD]
↓ヘッドフォン入出力の分岐用に欲しい。というか、ミキシングできるらしく試してみたい。
↓フタ付き小物入れ部分が魅力的だったりするUSBハブ。箱の中にも端子があったら最高だった。
Posted by yamada on 2010/02/15 – 12:46
Filed under iPhone
Tagged as iPhoneApp
Posted by yamada on 2010/02/14 – 13:09
Filed under Mac, MySQL
Tagged as Mac, MySQL, OS X
ちょっと勉強のためにMac OSX 10.6 (Snow Loepard)にMySQLを入れて動作させてみました。その時の作業メモを公開しておきます。(後で自分が参考にするため)
また、こちらのページ[MacOSXでサーバー稼業 : Mac OS XにMySQLをインストールしよう]が大変参考になりました。
ダウンロード
私のMacはMacBook Pro (Intel)、OSはMac OSX 10.6.2を基本32bitで動作させています。そのため、MySQLは、”Mac OS X ver. 10.6(x86, 32-bit) DMG Archive”というファイル(約70.9MB)をこちら[http://www.mysql.com/downloads/]からダウンロードしました。
ちなみに、上記サイトには “MySQL Community Server” というものの他に、”MySQL Cluster”というものなどいろいろありますが、落とすのは “MySQL Community Server” です。
MySQLをインストールするのに必要なものはこれだけでした。
インストール
ダウンロードしたDMGファイルをダブルクリックして開き、その中の、mysql-5.1.43-osx10.6-x86.pkgをダブルクリックしてインストール。このときインストール領域として、258.3MBが必要と言われますので、前もってそれ以上は空けておきます。
インストールが完了すると、‘/usr/local/mysql’というファイルが作られ、これは、’/usr/local/mysql-5.1.43-osx10.6-x86′というディレクトリへのシンボリックリンクとなっているようです。
続いて、DMGの中に入っていたもうひとつのインストーラ MySQLStartupItem.pkg”をダブルクリックしてインストール。これでMySQLが自動的に起動するらしい。
さらに、MySQL.prefPaneをダブルクリックしてインストールします。
これで、システム環境設定からMySQLの起動/停止ができるようになります。
そのままインストールし、[Start MySQL Server]というボタンを押して起動させます。
以上でインストールは完了です。
MySQLの初期設定
インストールが完了したら、まずはMySQLを使用を簡単にするために “/usr/local/mysql/bin” にパスを通します。
~/.bash_profile に以下の1文を追加します。このとき、このファイルが無ければ作成します。
export PATH=$PATH:/usr/local/mysql/bin
続いてMySQLのrootユーザのパスワードを変更しておきます。ターミナルを開き、下記のコマンドを入力します。
$ mysqladmin -u root password 'new_password_here'
パスワードを ‘ (シングルクォーテーション)で囲むのを忘れないように注意してください。
パスワードを変更したら、下記の手順でターミナルからmysqlにログインしてみます。
$ mysql -u root -p
と入力しEnterキーを押すとパスワード入力を促されますので、先ほど設定したパスワードを入力します。
ログインに成功したら、”Welcome to MySQL monitor. …”という感じのメッセージが表示され、MySQL monitorへのログインが完了しています。
ここから戻るには、”quit”か”exit”などと入力し、Enterキーを押せば、もとのコマンドプロンプトに戻ります。
MySQL monitorの使い方の簡単なメモ
最後に、ちょっとだけMySQL monitorのコマンドの使い方をメモしておきます。
CREATE DATABASE {データベース名};
DROP DATABASE {データベース名};
SHOW DATABASES;
USE {データベース名};
SHOW TABLES;
CREATE TABLE {テーブル名} ( userid INT, groupid TINYINT );
SHOW FIELDS FROM {テーブル名};
DROP TABLE {テーブル名};
ALTER TABLE {テーブル名} ADD {フィールド名} {フィールド型};
ALTER TABLE {テーブル名} MODIFY {フィールド名} {フィールド型};
[AD]
↓こちら持っていて、参考にしている本です。PHPの設定には問題あると思うけど、MySQL、PHPのそれぞれの基本から、融合させるところまで説明があり便利です。

実践マスターPHP+MySQL―PHP4/PHP5対応
著者/訳者:小島 まさご
出版社:ソーテック社( 2007-06-18 )
定価:¥ 2,604
Amazon価格:¥ 2,604
単行本 ( 383 ページ )
ISBN-10 : 4881665839
ISBN-13 : 9784881665831
↓MySQLの本をもっていないけど、Amazonで評判を見てみるとこれが良さそう。
Posted by yamada on 2010/02/06 – 18:29
ちょっとしたサイトを作ろうと思い、WordPress以外で何かCMSがないかと思い、いくつか探してみたところ、TomatoCMSというのが気になり、ちょっと入れてみてテストしてみました。
テストしたのはさくらインターネットのレンタルサーバです。
TomatoCMS
試したバージョンは2.0.2で、展開したファイルサイズは約29MBありました。また、さくらのレンタルサーバ側の設定は、PHPは5.2.0となっていました。
インストールに参考になるのは公式ブログでした。
展開したディレクトリの中身を、配置したい場所にそのままコピーします。
その後はインストールしたディレクトリに含まれる下記のようなインストールスクリプトを開き、実行します。
{CMS_Directory}/install.php
おおよそのインストールは問題なくできるのですが、下記の.htaccessの修正をしておかないと、実行時に問題が起きます。
.htaccessの修正点
RewriteEngineの仕組みを使っているのだが、さくらの場合、次の1行が必須らしく、これがないと実行時にパスが処理されずうまくいかないので、これだけ.htaccessに追記しておきます。
RewriteBase /
これが設定されていないと、{CMS_URL}/admin というのが{CMS_URL}/index.php?admin という処理に置き換えることが出来ません。
管理者ログインする
管理者としてログインするには、下記のURLにアクセスします。
{CMS_URL}/admin
管理者の初期ユーザー名とパスワードはadmin, adminに設定されています。
ここでうまくアクセス出来ない場合、上記.htaccessの設定の項目等を確認してみてください。
php_zip
ログインしてみると、php_zipが入っていないという表示が出ていました。
これは新しいプラグインとかをインストールするときに必要になるようですが、今回はとりあえ ず 放置して先に進めました。
パスワード変更とTomatoCMSのシステム概要
まずは、このパスワードを変えようとしたのですが、いきなりつまづくこととなりました。
[Account]メニューの[change password]を選ぶと、Resource ‘core:user’ not foundと表示されるのです。
この表示はTomatoCMSの特徴と知るのですが、最初の状態では全ての機能がOFFになっていて、まずはそれをONにしていくことから始まります。
なんと初期状態ではパスワード変更などの機能もOFFになっているのです!
各種機能をONにするためには、上記のadminページのメニューから[User]→[Privilege]メニューを選びます。

その中の[core]→[Manage users]の右側にある[Add]リンクをクリックします。
こんな感じで、片っ端から[Add]していきます。必要に応じて、と書きたいところですが、正直最初の段階でこれを適切に選ぶことは不可能ですよね。
もう一度、パスワード変更をおこないます。[Account]メニューの[change password]を選ぶと、パスワード変更画面が出てきますので、ここで変更します。
コンテンツを作っていく
続いて、各種コンテンツを設定してみたいと思いますが、まずはトップページに表示しているコンテンツのレイアウトについていじってみます。
[Extend]メニューの[Template]を選んでみます。この中には、各種テンプレートが表示されるようですが、デフォルトでは2つしかありません。そのうち一つが使用されているので、そのテンプレートの[List of pages]リンクをクリックします。
ここに現在あるページの全てがあり、”home”と名付けられURIに”/”が設定されたページが、トップページとなっています。
右側にあると[Edit Layout]というボタンをクリックすると、レイアウト編集画面になります。
[Layout]、[Widget]、[Output]という3つのタブがあります。
Layoutでは960 Grid Systemという仕組みが使われており、最大12カラムとなっているのを任意のカラム幅でWidgetを配置する仕組みがわかりやすいインターフェイスで作られています。
その中にWidgetを配置して、各Widgetの設定をしていく、という仕組みです。

こんな感じで作っていく、という流れが、ここまでで理解できました。
やりたかったこと
実はこのCMSを選んだ理由の一つは”Multilingual Support”というキーワードをウェブで見たからだ。
でも、そこのところはいまいち分からずじまい。
[Custome]→[Language]のメニューを選んでみても、そこで設定できそうなのは各コンテンツのメニュー名ぐらい?そこがちょっと分からなかったのと、テンプレートデザイン修正の手順を把握するのも1日とかでは探しきれなかったので、TomatoCMSの調査はここまで。
日本語は問題なく通ったりしたのですが、公式サイトの他にあまり情報がなかったのが残念でした。
このエントリを見て誰かがトライして情報を増やしてくれたら、私も再度トライしてみようかな。
[AD]
↓TomatoCMSで使われているフレームワークはZendFramworkです。

Zend Framework 徹底マスター
著者/訳者:藤野 真吾
出版社:ソーテック社( 2009-04-11 )
定価:¥ 3,990
Amazon価格:¥ 3,990
単行本(ソフトカバー) ( 592 ページ )
ISBN-10 : 488166669X
ISBN-13 : 9784881666692
↓こちらもZendFrameworkの入門書。こういうフレームワークの知識はこれから重要ですね。

PHPフレームワーク Zend Framework入門
著者/訳者:藤野 真吾
出版社:ソーテック社( 2007-09-13 )
定価:¥ 2,919
Amazon価格:¥ 2,919
単行本 ( 336 ページ )
ISBN-10 : 4881665936
ISBN-13 : 9784881665930