2009年8月16日日曜日

Zend Framework1.9.1リリース

8/12に1.9.1がリリースされてました。
バグフィックスが中心ですね。

2009年8月1日土曜日

Zend Framework1.9リリース

Zend Framework1.9が7/31にリリースされてました。

PHP5.3の対応の他に、Zend_QueueやZend_Test_PHPUnit_Dbの2つのコンポーネントが追加されてます。

2009年7月23日木曜日

ExtJSの書籍発売

日本語としては、初の書籍「ExtJS入門」が発売されました。



ExtJS2.xベースのようで、さすがにExtJS3.0についての内容は無いです。

2009年7月8日水曜日

ExtJS3.0リリース

ExtJS3.0がリリースされました。


いろいろと試していこうと思っています。

2009年7月3日金曜日

PHP5.3リリース

PHP5.3では
  • 名前空間のサポート
  • 無名関数

などの機能が追加されました。

ダウンロードはここから

NetBeans6.7でJavascriptのライブラリの追加ができないわけではなかったんだ

NetBeans6.5の時のように、Javascriptのライブラリを追加すべく[ツール]=>[ライブラリ]で設定が画面を表示したが、NetBeans6.5ではYahooUIやjQuery等がJavascriptのライブラリとして初めから追加されていたのなにも出てこない上に、「新規ライブラリ」がdisable状態になっていて追加ができない。


6.5ではあったのに、6.7では機能が無い?

と思ったら、単純にプロジェクト内にExtJSライブラリのソース一式を展開しておけば補完できるようになっていました。

2009年7月2日木曜日

Netbeans6.5でExtJS2.2のクラスやメソッドを補完できるようにする

Netbeans6.5でExtJS2.2でクラスやメソッドが補完できるらしいので、やり方のメモ。

事前準備)
ExtJSのサイトからExt2.2.1のライブラリファイルをダウンロードしておく。
※zipファイルのまま使うので、とりあえず解凍せずにどこかにおいておく。

NetBeans6.5での操作)

1)Javascriptライブラリの登録

メニューから[ツール]=>[ライブラリ]と選択して、ライブラリマネージャーを起動する。




2)ExtJSのZIPファイルを指定

ダイアログに左下に配置されている「新規ライブラリ」のボタンをクリックする。




ライブラリ名に名前を入力して「了解」ボタンをクリック。※名前は何でもいいのでここではExt2.2としておく

Javascriptのライブラリに先ほど登録したものが表示されればOK.


3)ZIPファイルを登録

2)で登録したExtJS2.2を選択し、右に表示されている「Zipを追加」ボタンをクリックするとファイルを選択するためのダイアログが表示されるので、事前準備しておいたExtJS2.2のZIPファイルを選択する。
ライブラリのスクリプトパスの一覧に選択したファイルが表示されていればOK


4)プロジェクトでの設定

ExtJSを利用するプロジェクトを選択後に右クリックでメニューを表示する。一番下にプロパティが存在するので選択する。
選択するとプロジェクトプロパティを選択するウィンドウが表示される。
右側に表示されているカテゴリの中から「Javascriptライブラリ」を選択する。
Javascriptライブラリの一覧には何も表示されていないので、左に表示されている「追加」ボタンをクリックし、先ほど登録したExtJSをチェックして「了解」をクリックする。
Javascriptライブラリを抽出して追加してくれるので、しばらく待つ。
ライブラリの一覧にExtJS2.2が表示されたらOK





これでNetBeans側の設定は終了


エディタでの使い方)

ドットの入力やCtl+Spaceでコードアシストを表示する。





コーディングエラーも教えてくれる。

個人的にはハッシュなどで最後の項目の後にカンマがある場合に丁寧にワーニングを表示してくれるのでうれしい。




※NetBeans6.7ではJavascriptライブラリが使えないよう。

Netbeans6.7 Eclipse3.5 リリース

NetBeans6.7とEclipse 3.5.0(Galileo)がリリースされてました。

Eclipse3.5からPHP Developer向けのパッケージが用意されたようです。
PDT2.1ベースのようです。3.4+PDT2.0の時には、うちの非力なPCでは遅くて使いものになりませんでしたが今度は使えるか?。
Pleiadesでも3.5用のパッケージが用意されていました。

NetBeansのダウンロードはこちらから

最近は面倒なのと、Eclipseがうちの環境には重過ぎるので、NetBeans中心。

Firefox3.5リリース

Firefox3.5リリースされました。
自分の環境では、Firefox3.0がなぜか不安定ですぐにクラッシュしていましたが、Firefox3.5ではとりあえずクラッシュすることなく動いているので安心。

2009年6月26日金曜日

Zend Framework1.8.4リリース

Zend Framework1.8.4がリリースされてました。

2009年3月26日木曜日

PHPで携帯キャリア判別(Net_UserAgent_Mobile)

PHPで携帯のキャリア判別をするには、Net_UserAgent_MobileというPEARモジュールを使えば楽に判別ができる。

使い方は以下のサイトが参考になりました。
http://www.phppro.jp/school/pear/vol10/1


ためしに、携帯のUserAgentでget_browser()やNet_UserAgent_Detectを使って情報を取得しようとしてもほとんど使えない状態だったので、素直にNet_UserAgent_Mobileを使ったほうがいいでしょう。
isMoblie()というメソッドが用意されているので、とりあえず、携帯とそれ以外の端末を判別しておいて、携帯以外の場合はget_browser()やNet_UserAgent_Detectを使ってプラットフォームを取得すればいい。

FirefoxでUserAgent切り替え

Firefoxで携帯サイトをなどなど確認するときに便利なアドオン『User Agent Switcher』

以下のページからインストールできる。

https://addons.mozilla.org/ja/firefox/addon/59

User Agent Switcherにインポートできるリストを公開されている方がいました。
http://blog.cgfm.jp/garyu/archives/112

感謝

PHPでブラウザ判別(get_browser() & Net_User_Agent_Detect)

PHPにはブラウザ判別に利用できるget_browser()という組込み関数が標準で用意されている。
ただ、そのままの環境では使えないので、事前にいくつか用意が必要なのでメモ。


(その1)
Browser Capabilities Projectphp_browscap.iniをダウンロードして、サーバに配置。
(その2)
php.iniに以下を追記
-----ここから-----
[browscap]
browscap =/path/to/php_browscap.ini
-----ここまで-----

php.inではなく、.htaccessで以下のように記述しても動かないので注意。
-----ここから-----
php_value browscap /path/to/php_browscap.ini
-----ここまで-----

(その3)
HTTPサーバを再起動

PHPサンプル
-----ソース-----

<?php
$platform = get_browser(null, true);
print_r($platform);
?>


-----ここまで-----

----出力-----

Array
(
[browser_name_regex] => ^mozilla/5\.0 (windows; u; windows nt 5\.1; .*) applewebkit/.* (khtml, like gecko) chrome/1\.0\..* safari/.*$
[browser_name_pattern] => Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*
[parent] => Chrome 1.0
[platform] => WinXP
[browser] => Chrome
[version] => 1.0
[majorver] => 1
[win32] => 1
[frames] => 1
[iframes] => 1
[tables] => 1
[cookies] => 1
[javaapplets] => 1
[javascript] => 1
[cssversion] => 3
[supportscss] => 1
[minorver] => 0
[alpha] =>
[beta] =>
[win16] =>
[win64] =>
[backgroundsounds] =>
[cdf] =>
[vbscript] =>
[activexcontrols] =>
[isbanned] =>
[ismobiledevice] =>
[issyndicationreader] =>
[crawler] =>
[aol] =>
[aolversion] => 0
)

-----ここまで------

ちゃんとChromeの判別ができてる。最近入れたIE8ちゃんと判別してた。

php.iniを利用できない場合は、Net_User_Agent_Detectというモジュールで判別できそう。

使い方はこんな感じ。
-----ここから---
<?php
require_once("Net/UserAgent/Detect.php");
echo Net_UserAgent_Detect::getBrowserString();
echo Net_UserAgent_Detect::getOSString();
?>

---ここまで---
get_browser()とく比較すると情報量が圧倒的に少ないけど、php.iniを編集できる環境じゃない場合は、ブラウザとプラットフォーム取得くらいは使えそう。

2009年3月8日日曜日

phpDocumentorのメモ

PHPのソースからAPIドキュメントを出力するツール「phpDocumentor」を調べたのでメモ。
JavaでのJavaDocにあたるもの。PHPソース内の記述もJavaDocとほぼ同じ。

インストールはpearから。
-----インストール例-------
>pear install --alldeps phpdocumentor
WARNING: channel "pear.php.net" has updated its protocols, use "channel-update
ear.php.net" to update
downloading PhpDocumentor-1.4.2.tgz ...
Starting to download PhpDocumentor-1.4.2.tgz (2,421,028 bytes)
....................................................................done: 2,421
028 bytes
downloading XML_Beautifier-1.2.0.tgz ...
Starting to download XML_Beautifier-1.2.0.tgz (12,948 bytes)
...done: 12,948 bytes
downloading XML_Parser-1.3.2.tgz ...
Starting to download XML_Parser-1.3.2.tgz (16,260 bytes)
...done: 16,260 bytes
downloading XML_Util-1.2.1.tgz ...
Starting to download XML_Util-1.2.1.tgz (17,729 bytes)
...done: 17,729 bytes
install ok: channel://pear.php.net/PhpDocumentor-1.4.2
install ok: channel://pear.php.net/XML_Parser-1.3.2
install ok: channel://pear.php.net/XML_Util-1.2.1
install ok: channel://pear.php.net/XML_Beautifier-1.2.0

-----インストール例ここまで-------

実行はコマンドラインから。

(実行)
>phpdoc -t ドキュメント出力ディレクトリ -d ソースディレクトリ -o HTML:frames:earthli

※ 出力はHTML::frames:earthliがお気に入り

テーマ(?)のテンプレートが日本語対応になっておらず、出力したファイルが文字化けするので、以下のテンプレートを修正する。

ディレクトリ([php install directory]/data/PhpDocumentor/phpDocumentor/Converters/HTML/タイプ/templates/テーマ/templates)以下にあるheader.tplファイルのISO-8859-1と書かれている所を文字コードにあわせて修正

PDF/CHMもためしたが、PDFは文字化け、CHMはファイルの生成がされなかった。

[タイプ/テーマ]
frames(フレームあり)
 default
 DOM
 earthli
 l0l33t
 phpdoc.de
 phpedit
 phphtmllib

Smarty(フレームなし)
 HandS
 PHP
 default

(参考URL)
http://caspar.hazymoon.jp/php/phpDocumentor/

ieHTTPHeaders

HTTPヘッダー情報を知りたいときにはいつもFirefoxのLive HTTP Headersというプラグインを使っているのですが、IEでHTTPヘッダーを表示するプラグインとして「ieHTTPHeaders」があるのを知ったのでとりあえずメモ。

2009年2月19日木曜日

IEでローカルファイルのJavaScriptの動作を確認するときのおまじない

IEでローカルファイルのJavascriptやFLASHの動作を確認使用とするとセキュリティ警告が出てきてちょっと面倒。
DOCTYPE宣言の後に、以下の一文を入れておくとIEでセキュリティ警告が出なくなる。

<!-- saved from url=(0014)about:internet -->

文字コードはEUC-JPでもUTF-8でも何でもいいけど、改行はCRLFでないとうまく動作しないので注意。

2009年2月14日土曜日

フリーのER図作成ツール

[ClayDatabaseModeling]
http://www.azzurri.co.jp/ja/clay/index.html

PostgreSQL7.x,MySQL3,4などちょっと古い印象。
Windows以外や、Eclipseのプラグインとして動作するので、Eclipseユーザならいいかも。


[A5:SQL Mk-2]
http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/#Download

結果をExcelシートに出力できるのは面白いかも。

PostgreSQLでサーバ・クライアント間の自動文字セット変換

[参考ドキュメント]
http://www.postgresql.jp/document/pg835doc/html/multibyte.html#AEN27493

クライアント側で使用するの文字セットを明示することで、サーバとクライアントの間の文字セットの変換をしてくれる。
SQLベースで行う場合は以下のようなSQL(?)を接続時に実行すればよい。

UTF8を指定する例)

 SET CLIENT_ENCODING TO 'UTF8'

2009年2月12日木曜日

jQuery適当メモ


[jQuery日本語リファレンス]
http://semooh.jp/jquery/cont/doc/release_1.3/

(1)ダウンロード
ダウンロードは以下から
[jQuery]
http://jquery.com/

開発用の非圧縮用と、公開用(?)圧縮されたライブラリが用意されいる。
試したときのバージョンは1.3.1

2)コアライブラリの読み込みと読み込み完了の関数実行

HTMLに以下を記載(srcの部分は環境に合わせて)
<pre>
<script type="text/javascript" src="js/jquery-1.3.1.min.js"></script>
<script>
jQuery.noConflict();
jQuery(document).ready(function(){
//実行したい内容を記載<br />}
</script>
</pre>
jQuery.noConflict()は他のライブラリを意識する場合に記述する。
記述すると、$のショートカット(?)は無効になるので、jQuery()の記述だけが利用できることになる。
prototype.jsと同時に使わなければ意識する必要なないようです。
以下のように戻り値を受け取ると、宣言した変数が$の代わりに使える。

   var j = jQuery.noConflict();

$は短くていいけど、個人的な趣味で以下はjQuery.xxxで書いておきます。

jQuery(document).ready(function(){})
はブラウザがDOMを構成し終わった後に起動する関数オブジェクトを指定する。
いくつも重ねて書いてもいいようです。

(3)要素の指定方法

$(".クラス名");
$("タグ名");
$("#ID名");

(4)個人的に良く使いそうなメソッド

要素.addClass();//クラス追加
要素.removeClass();//クラス除外
要素.toggleClass(class)//要素に対し、指定CSSクラスがあれば削除し、無ければ追加する。

要素.html();//HTMLの取得/設定
要素.val();//value属性の取得/設定


(5)個人的に良くお世話になりそうなイベント

//クリックイベント
要素.click();

//要素にマウスが乗った時の動作イベント。
//overがマウスが乗った時、outが外れた時に呼び出す関数オブジェクトを指定する。
要素.hover(over, out);

(6)DOMの構成が終わった後のイベントに処理を追加

 $(document).ready(関数オブジェクト);

 or

$(関数オブジェクト);


例)読み込み直後にアラートを表示する例
$(document).ready(
function() {
alert("jQuery START!!");
}
);

(7)選択済みラジオボタンのバリューを取得
未調査

(8)選択済みリストのバリューを取得
//IDで指定
var fid=jQuery('#ターゲット').val();
//イベント処理を記述しているときなど
var fid=jQuery(this).val();

// 複数の要素が選択済みの可能性がある場合は、配列が帰ってくる
var sel=jQuery("select option:selected");
var fid=sel.val();


(9)リスト変更イベントに関数を登録
jQuery("#ターゲット").change(関数オブジェクト);

(10)特定CSSクラスのエリアにマウスオーバーイベントに関数を登録

(11)データの書換え:直接
$(ターゲット).text();//テキストとして、(タグはそのまま表示される)
$(ターゲット).html();//HTMLとして(タグはきちんと解釈される)


(12)データの書換え:dom操作で
$(タゲット).before(要素);//同列で次に追加
$(ターゲット).after(要素);//同列で前に追加
$(ターゲット).prepend(要素);//子要素の最後に追加
$(ターゲット).append(要素);//子要素の最後に追加
$(ターゲット).empty(要素);//子要素をすべて削除
$(ターゲット).remove(要素);//ターゲット自体を削除

要素:jQuery("<div>") とするとタグ名で指定できる
   単純にテキストで記述してもOK

//テキスト記述
$("#hoge").append('<a href="http://www.google.com/">google</a>');
//エレメント表記
$("#hoge").append(
$('<a>').attr("href", "http://www.google.com").html("google")
);

(13)属性の操作
jQuery(":submit").attr("disabled", "disabled");//無効化
jQuery(":submit").removeAttr("disabled");//無効化解除

Ext2.2.1が出てます

Ext2.2.1が出てます。
ここから

Google Chromeに正式に対応したのとAIR関連のコンポーネントが追加されているようです。

2009年2月10日火曜日

Spket IDE 1.6.16が出てました。

Spket IDE 1.6.16が出ています。こちらから

2009年2月9日月曜日

AIR GEARをインストール

AIR GEARを入れる前に、Flex3 SDKとAIR SDKをインストールしておく。
ダウンロードは以下から
[Flex3SDK]
http://www.adobe.com/products/flex/flexdownloads/

[AIR SDK]
http://www.adobe.com/jp/products/air/tools/sdk/


(1)AIR GEARダウンロード

以下のサイトからnet.sf.amateras.air_1.0.1.jarというファイルをダウンロードする。

[Amateras]
http://sourceforge.jp/projects/amateras/releases/

(2)ダウンロードしたEclipseのpluginフォルダにjarファイルをコピー
(3)Eclipseを起動し、[Window]=>[Preferences]でAIR GEARの項目が出ていることを確認し、AIR ADKとFlexSDKのパスを設定


使用方法はここのページを参考に。

(簡単な使い方)
(1)AIR プロジェクト(Flex)を作成する
 プロジェクト名.asとプロジェクト名.mxmlが作成されているので、適当に編集
 ※ボタンを押すと足し算をするサンプルがはじめから入っている。
(2)[ 実行]=>[RunAS]=>[AIR Application]でAIRアプリが起動

(感想)
ActionScriptのコードアシストが予約語と一部しかできないのは正直つらい。
MXMLを直接コードを見る場合は別のXMLエディタを使わないといけないようなので、中途半端な気がする。Eclipseのほかのプラグインを使えってことなんだろうけど。
SpketIDEがMXMLをサポートしているようなので、時間を作って試してみよう。


けど、フリーのソフトで、WYSIWYGでフォームを編集できるのはすごい。
FlexBuidlerを使ったことはないけど(今度体験版を試してみよう)、ActionScriptのコードアシストができるようなら、これ一本でいけるかも。

FlashDevelop3.0.0RC1のインストール&日本語化

ここのサイトを参考にさせていただきました。
http://sothis.blog.so-net.ne.jp/2008-03-26

(1)JDKインストール

(2)Flex3SDKインストール(入れたのは3.2でした)
#FLEX3SDKインストール先\bin\jvm.configを編集
--ここから--
# Arguments to VM

#java.args=-Xmx384m -Dsun.io.useCanonCaches=false
java.args=-Xmx384m -Dsun.io.useCanonCaches=false -Duser.language=en -Duser.region=JP
--ここまで--

(3)FlashDevelopインストール(3.0.0RC1)
よくわからなかったので、とりあえずデフォルトで進めました。

(4)日本語化ファイルをダウンロード

ここで配布していたのでいただきました。感謝。
http://www.logicalyze.net/blog/?p=1560

いただいたファイルをアプリケーション設定のSettingフォルダにすべてコピー

(5)フォント設定
Setting\ScintillaNET.xmlのglobals セクションデフォルトフォントとサイズを設定
※これしないと日本語文字化けしてダメでした。
<value name="default-font"> MS Pゴシック< /value>
<value name="default-font-size"> 12</value>

2009年2月6日金曜日

ExtJS3.0は2009年4月に出るようです。

Ext Conference2009でExtJS3.0やExt Core1.0の紹介があるらしい。

Ubuntuでロケール(ja_JP.eucjp)追加

以下を参考にPostgreSQLのロケールをUTF-8からロケールなしに変更。
UbuntuはベースがUTF-8なので、EUC-JPのデータベースでソートがおかしくなったりする問題が出てくる模様。

(参考URL)
http://d.hatena.ne.jp/pasela/20080909/postgres

コンソールからロケールja_JP.eucJPに変更して日本語のデータを入れようとした文字が入らない。コンソール上では日本語部分が文字化けになっている。

pg_controlldataコマンドで見るとロケールはCになっているのになぜ?

ちなみにUbuntu8.10でPostgreSQLのコマンド類は以下のディレクトリにあった。
/usr/lib/postgresql/8.3/bin

psql実行時に良く見ると

—–ワーニング—–
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = “ja_JP:ja:en_GB:en”,
LC_ALL = (unset),
LANG = “ja_JP.eucJP”
are supported and installed on your system.
perl: warning: Falling back to the standard locale (”C”).
Welcome to psql 8.3.5, the PostgreSQL interactive terminal.
—-ここまで—–

どうもロケールの設定が良くないようでlocale -aで見ると確かにロケールにja_JP.eucjpがなかった。

ここを参考にロケールを追加
(参考)
http://d.hatena.ne.jp/Bayside/20080207/p1

/var/lib/locales/supported.d/localeに「ja_JP.EUC-JP EUC-JP」を追記して、locale-genを実行するとja_JP.eucjpが追加される。

たしかにlocale -aで見るとja_JP.eucjpが追加されていた。

euc-jpにコンソールのロケールを変更して、試してみるときちんと表示も入力もできるようになった。
$export LANG=ja_JP.eucjp