移転しました。
2013年2月〜
http://kanonji.info/blog/

2008年11月〜2013年1月
http://d.hatena.ne.jp/kanonji/

はてなダイアリーに移転してたけど、そっからさらにWordPressでのブログに移転しました。
 
201302061607
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
別窓 | スポンサー広告
----------
第32回PHP勉強会のレポート

第32回PHP勉強会に参加しました。


最近色々な勉強会・ワークショップに参加しています。
php関連もいくつか参加していますが、php勉強会はたぶん初参加でした。
初参加の人も結構いるのかなと思いましたが、他の会でも見かけたことのある人もちらほらいました。
特に発表をする人は、割とおなじみ感のある顔ぶれです。
今回は、自分用の覚書にもなるので簡単にメモを書いてみました。


events.php.gr.jpイベント管理システムについて

話者:haltさん


haltさんが作ったイベント管理システム。
このPHP勉強会の募集でも使われています。「http://events.php.gr.jp」にて稼動中。
Ethna+SQLite(多分SQLite2)


日本PHPユーザ会のwebサイトの更新が全体的に停滞していたので、何とかしようという動きがあったなど、背景が垣間見えて面白かったです。
イベント管理システムは、いつの間にかhaltさんの役割になっていたとかw
確かに、リニューアル前は全然更新されていないのに「php」でググると1位に出てきて、煩わしかったのを覚えています。
今ではイベント管理システムだけじゃなく「php.gr.jp」全体が新しくリニューアルされています。


SQLiteについて


5年くらい前からSQLiteを使っているらしく、このイベント管理システムもSQLiteだそうです。
現在phpではSQLite2とSQLite3があり、なんと互換性がない。
SQLite2のほうはもうあまり活発な開発は無さそうだけど、SQLite3はphp5のPDOからでしか使えないため、php4を大事にしたいので悩みどころみたいです。


SQLite2
php4,php5
SQLite3
PDO(なのでphp5.1.6以上)

  • SQLiteのデータはファイルに格納される為、cpコマンドでバックアップ可能だし、他のサーバへ移すのもそのファイルを持っていくだけ。

  • だからwebアプリをDBごと配布することもできる

  • DBファイルはもちろんだが、なぜかDBファイルを置いてあるディレクトリにも書き込み権限が必要
    ※エラー時のダンプファイルなどを書き込むためらしい。

  • データ型があってないようなものになっている
    • integer型に文字列を格納できるし、取り出せる
    • 「foo型」のような定義のないデータ型でCREATE TABLEできるし、動作する

プログラムについて


実際のプログラムについてはあっさり流す感じの説明でしたが、Ethnaを知っていればインストールは別段困ることは無さそうな印象でした。
add-projectをした上でプログラムを配置するのか、プログラムが既にプロジェクトの体をなしているのかはちょっと分かりませんでした。
SQLiteの部分だけは、未経験だったので調べないとですが、ちょっと説明が早くて追いきれなかったです。
このあたりは後でブログにでもと言っていました。


ソースコードはcoderepos.orgに格納されていて、忘れ物がない限りライブラリ関係も入っているらしいので、配置と設定だけやれば動かすことができそうです。
TypeKey認証を利用してますが、OpenID対応しなければいけない。せっかくcoderepos.orgにあるので誰かやってください。との事w


Ethnaでモバイルサイト開発

話者:maru_ccさん


Ethnaを使いモバイルサイトを開発するという観点から、注意点や工夫していることなど、がっつりEthnaを使っている方の話なので参考になる事が多かったです。
が、結構早足だったので、メモを取るよりは聴く方中心になりました。
「Ethnaは自由度が高いので、案件に合わせたルールが必要」の様な事を言っていて、結局はどんなアプローチであれ、必要なルールを作れば使いやすく効率よくなるんでしょうね。
そのルールを作るのが、結構大変だったりはしますがw
他の人がEthnaをどんな感じで使っているかというのは、参考になるし単純に面白かったです。
maru_ccさんも、他の人が作ったEthnaアプリのソースコードを見てみたいと言っていたので、参考にできるコードが増えるといいな。


極める!vim

話者:haltさん


本日2個目の発表のhaltさんです。
エディタは人生と言い、いつまでもカスタマイズして使っていけるエディタを使うべきということで、vimのお話です。
発表の最後に、vimの設定をcoderepos.orgに!という声が出ましたが、さすがに「人生を全部見せる訳には・・・」的な事を言っていました。
vimはサーバの設定をする時くらいしか使って無い程度の知識でしたが、vimもちょっといいかもと思い始めました。
特に興味があったのはomni completionというコード補完機能です。
PDTだと、自作クラスのインスタンスからはメンバやメソッドを補完してくれなかったりするので、vimのomni completionならもしかしたら?
仮に出来なくてもvimならカスタマイズ次第という期待もあります。
ただ、vimを使っているとブラウザのテキストエリアなどでも、vimの編集モードをしようとして大変なことになる、vim病が発症してしまうそうですw
対策としては、FirefoxではVimperatorというアドオンで、Firefox全体をvimぽく出来てしまうらしいです。
自分はOperaもSafariも使うのですが、さすがにこれらには無さそう・・・


ちなみにこの発表と同じテーマで書いた記事が、まるごとPHP!〈Vol.1〉の続編に掲載されるらしいです。発売日は今のところ不明です。もしかしたら本の名前を聞き間違えたかも。


ARGF作った(LT)

話者:btoさん


コマンドラインプログラムを作る際に便利なRubyの機能をphpに移植したもののようです。
phpは元々web用スクリプトなので、コマンドラインプログラムは非常に作りにくいですが、ARGFを使うと引数の扱いが抽象化されて、簡単になるみたい。
発表を聞いてたときはちょっと理解しきれなかったところもありましたが、btoさんのブログに解説があるので、そこを見ればよさそうです。


ちょっと面白かったのが、ライブラリを直接動かしたら、サンプルコードを出力する仕組みです。
Rubyなどでは割と例も多いみたいですが、公開元に直ぐにアクセスできない状態でもサンプルコードを見れるのは助かる場面も多そうです。
直接ライブラリを動かしたかの判別には、PHPの場合「debug_backtrace()」を使うようです。
include(require)されていない場合、debug_backtrace()は空を返すので、以下のようにすることでサンプルコードを記述できます。


if (debug_backtrace()) {
return;
}
/*
* sample code
*/
while ($line = $ARGF->each()) {
echo $ARGF->lineno.": $line";
}

Ethnaで問題が起こったときにする5段階の解決法 (LT)

話者:sotarokさん


毎回のように何かしら発表をしていてすごいなぁと思います。
内容はちょっとネタっぽいでしたが、もっとコミュニティに参加した方がいい。というのは確かにですね。
自分も大して使っても居ないくせにEthnaのIRCに半常駐していますが、ログを読むだけでも参考になったりします。
sotarokさんが問題点として挙げていた「バグなのか自分の間違いなのか、自信が無いのでコミュニティに投げられない」というのは、自分も結構感じています。


PHP Frameworkの実装比較イベント「PHP Framework Fight!」というのを開催するそうです。
各フレームワークで同じものを実装して、速度などを比較するとか。
5月2日まで、参加を受け付けています。


極めてない! git (LT)

話者:kunitさん


GitというLinuxカーネル開発に使われているバージョン管理システムの解説でした。
バージョン管理システムというとCVSやSubversionが有名ですが、最近は特にRuby方面でGitが熱いみたいです。
Ruby on Railsも後述のGitベースのリポジトリサービスに移行したとか。


CVSの前身


「RCS→CVS→Subversion」
CVSが有名ですが、その前身にRCSというのがあるそうです。
これはファイルをロックして管理していたもので、同じファイルを同時に別の人が編集するようなことは出来なかった。
CVSがそれを改善し、Subversionでディレクトリもバージョン管理対象になり、コミット単位でリビジョン管理されることで、開発しているシステム全体で、あのコミットの時の状態にアクセスできるようになりました。
tracというキラーアプリも登場しかなり普及していますが、tracはデザイナーには使いにくいらしい。


Git


  • RCSの流れとは別で、Linuxカーネル開発用にLinus Torvaldsが作った

  • 今のメンテナは、なんと日本人で浜野純さん

  • 分散リポジトリ

  • ブランチは切り放題、というか切らないと使えないくらい

  • その代わりマージに力を入れていて、おかしくなったリビジョンを見つけるコマンドもある(bisect)

  • サクッとマージできないことも、もちろんある

分散リポジトリという仕組みのため、大本のリポジトリは運用で決めていくようです。
マージにはPullとPushがあり、Pullというのは大本のリポジトリの管理者が派生リポジトリから必要ならマージする。
Pushは派生リポジトリの管理者に予め権限を与えておき、その権限があれば大本のリポジトリにマージする。といった感じのようです。
運用によっては大本のリポジトリとか派生リポジトリという概念でなく、全部が同じレベルで扱われるというのもありえるとか。


先月発売のSoftware Design 2008年04月号に、Git特集があったそうです。
発表と重複しているところも多いそうですが、詳しく知りたい場合は読んでみるといいかもしれません。


GitHubというリポジトリサービスが登場し、Ruby関連のプロジェクトが数多く移行しているとか。
というのもGitHub自体がRuby on Railsで実装され、Ruby on RailsもGitHubにリポジトリを移行したらしいです。


懇親会


仕事も溜まっていたので懇親会には参加出来ませんでした。残念。
まとめてみたはいいけれど、書き終わってみればまとまって無さすぎて長すぎですね。
後になるにつれて息切れして手抜きになってるのも・・・w
時間も結構かかってるし、素早くまとめて書ける様になりたいものです。


リンク


スポンサーサイト
別窓 | 未分類 | コメント:2 | トラックバック:0
200804301518
PHPとDBが使える低価格ホスティングの検討
※以下の情報は2007/11/29頃に集めた情報です。
また、正確性の保障は出来ないので、正確な情報は各ホスティング会社に問い合わせて下さい。

月額1000円以下くらいで、PHPとDBが使える低価格ホスティングを調べてみた。
安いから仕方が無いのかもしれないが、PHPやMySQLのバージョンがすごく低かったり、意外な制限があったりと、後から気がついて慌てないように。

無料&格安の本格レンタルサーバー ZMX - ゼメック




ロリポップ!レンタルサーバー - ナウでヤングなレンタルサーバー



  • PHP

    • 4.4.6

    • safe_mode Off


  • MySQL

    • 4.0.14

    • デフォルトの文字コード:EUC-JP

    • 「[PHP My Admin]でのみ利用可」と書いてある。TELNETやSSHでの操作が出来ず、データベースの管理はPHP My Adminで行うことになる。

    • ロリポップのMySQLはとても重たいらしい。実際DBへ接続できないエラーの頻発を経験したこともある。
      参考:ロリポップでMySQLは使うな!! | Melanges



  • PostgreSQL:無し

  • 運営会社:株式会社paperboy&co.



チカッパ!レンタルサーバー



  • PHP

    • 4.4.2

    • safe_mode Off



  • MySQL

    • 4.0.26

    • デフォルトの文字コード:EUC-JP

    • 「[PHP My Admin]でのみ利用可」と書いてある。TELNETやSSHでの操作が出来ず、データベースの管理はPHP My Adminで行うことになる。



  • PostgreSQL:無し

  • 運営会社:株式会社paperboy&co.



XREA.COM



  • PHP

    • サーバによって異なる

    •  
    • 初期の頃から最近まで4.4.4ばかりだった。最近のサーバは5系が多い。

    •  
    • safe_mode On



  • MySQL

    • サーバによって異なる

    •  
    • 初期の頃のサーバは3.23系。その後4.0系が続く。最近は5.1系が多いが、稀に4.0系の場合もある。



  • PostgreSQL

    • サーバによって異なる

    •  
    • 初期の頃は 7.4.14。最近は 8.1.4にシフト。直近では 8.2.4になっている。



  • XREAの各サーバの詳細はこのあたりを参照

  • 運営会社:DigiRock, Inc.





セーフモードについて


PHPにはセーフモードというセキュリティ対策用のモードがあり、セーフモードがOnであればOffよりも高いセキュリティが確保できる。
反面、動かない関数や出来ないことが増えるので、開発がしにくかったり他で動いていたスクリプトが動かないといった問題がある。
セーフモードの詳細は以下を参照。
PHP: セーフモード - Manual

また、同じ「SafeMode On」でも、ホスティングサービスによって制限内容が異なると紹介しているwebページもあったので、注意する必要があるかもしれない。

MySQL 4.0系と4.1系以降の文字コードについて


MySQLは4.1系からUTF-8がサポートされた。
そのため4.0系ではUTF-8がサポートされず、MySQLサーバの設定はEUC-JPかShift-JISの2択になる。
webなので基本的にEUC-JPが使われることになる。

また、4.1系からはMySQLサーバのほかにクライアントからも文字コードを設定出来るようになり、MySQLサーバとクライアントとで異なる文字コードを設定も出来る。
さらに、サーバとクライアントとで異なる文字コードを扱うためにMySQLによる文字コードの自動変換も搭載された。
そのため、4.1系から文字コード関連の設定をしっかりと行わないと、文字化けのトラブルが起きやすい。

逆に、4.0系にUTF-8のデータを入れても特にエラーなどは発生しない。
そのままwebアプリケーションが4.0系のMySQLからデータを取り出しても、UTF-8のデータとして問題なく利用可能。
ただし、バックアップでトラブルが起こりやすい。
MySQLのバックアップコマンドに「mysqldump」があるが、4.0系に付属するmysqldumpは基本的にUTF-8を扱えない。
なんとかバックアップできるケースもあるようだが、不確実。
別窓 | 未分類 | コメント:0 | トラックバック:0
200711290520
Eclipse Foundation公式のPHP開発用プラグイン「PDT 1.0」(Eclipse PHP Development Tools)がリリース。だけど起動時にエラー

eclipse3.4 (PDT2.0)での関連エントリ。
eclipse.iniでJVMを指定してメモリ関係(ヒープ)のエラーを回避する。ロケールを変更してhtmlエディタのバグを回避する。 - kanonjiの日記


PDT Project

eclipseを開発するEclipse FoundationからPHP開発用プラグイン「PDT 1.0」(Eclipse PHP Development Tools)がリリース。

18th of September, 2007 - PDT 1.0 Release

早速下記ページから、PDTをダウンロードしてみた。
1.0 Release Build: R20070917

既存のeclipseに入れたりするのは面倒だったので、下記PDT All-in-Oneをダウンロード。
pdt-all-in-one-1.0-R20070917-win32.zip

ZIPを解凍し実行してみるが、下記のようなエラーが出てしまう。
JVM terminated. Exit code=-1
以下省略


※PDTのエラーではなくeclipse3.3のエラーっぽい。

検索してみると以下のページを発見。
日記/2007-06-01 - Saisse's Wiki

メモリ関連のトラブルらしく、eclipse.iniにあるメモリ関連の設定値を削除するとエラーは出なくなった。

・変更前
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m


・変更後
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m


・各オプションの説明
-vmargs:JVMのオプションが指定できるようになる。下記Xms・XmxはJVMのオプションなので、先にvmargsを指定する必要がある。
-Xms:起動時のヒープサイズを設定する。
-Xmx:ヒープサイズの最大値を設定する。Xmsの設定で不足したら、この設定まで領域を確保していく。


ちなみに、どうしてもこのオプションの意味だけはわからなかった。
--launcher.XXMaxPermSize

下記ページに一応説明が書いてあったが、Solaris編だし解説も意味がわからなかった。
Java 2 SDK 開発ガイド (Solaris 編)

-XXMaxPermSize=64m 恒久的な世代のサイズ

GC関連じゃないかとなんとなく思っているが、なんともいえない。

ただ、チューチューマウスというソフトウェアとの相性が悪いとも書いてあり、下記でもAltIMEというソフトとの相性問題が書かれている。
ただぶろぐ - eclipse3.3 起動エラー

しかし、上記エントリに習って常駐ソフトを順次終了させてみたが改善せず。
もしかしたらサービスのほうに何か相性の悪いものがあるのかもしれない。

また、エラーメッセージがすごく似ているが、下記の場合は複数バージョンのJRE(or JDK)がインストールされていて、どれを使っていいかわからない状態らしい。
JVM terminated. Exit code=1
以下省略


こっちが今回のメモリ関連のエラーメッセージ。
JVM terminated. Exit code=-1
以下省略


「1」か「-1」かの違いなので混同しやすい。

eclipseの場合、インストールディレクトリ(※configurationフォルダとかfeaturesフォルダが入っているフォルダ)にjreというフォルダを作って、eclipse起動に使いたいjreを入れておくとそれを使ってくれる。

JRE1.5 Update11を使いたい場合は、以下のようにする。

C:\Program Files\Java\jre1.5.0_11フォルダをeclipseインストールフォルダにコピー。
eclipseインストールフォルダ\jre1.5.0_11をjreにリネームして、下記のようにする。

eclipseインストールフォルダ\jre
別窓 | 開発環境 | コメント:1 | トラックバック:0
200709270054
eclipseの設定
[3.1.2]eclipse+[1.0.3]aio-WST+[1.0.1a]TruStudio+[0.2.7]aptana

とりあえず気になったところだけ。

General->Editor->Text file encoding:Other: EUC-JP(or UTF-8)
New text file line delimiter:Other: Unix(LF)

文字コード設定は一応設定できるが、不便なことにすべてのケースに適用されない。
HTMLやCSSなど、そのファイルに文字コードを定義できる場合、そのファイルに定義された文字コードが使用される。
もし、Smartyなどテンプレート化してありheaderタグを持たないようなHTMLファイルがあれば、なぜかMS932(Shift-JIS)に設定される。
気をつけないと、いつの間にかマルチバイト部分が文字化けしていることがある。
回避方法は、そういったファイルを一つ一つ、プロパティ開いて正しい文字コードを設定していく。

Aptana->Browsers/User Agents:とりあえず全部チェックしておいて損はない
Aptana->Editors:Formatting:Insert spaces insted of tabs:タブは微妙なのでチェック
Aptana->Editors->HTML Editor:Automatically insert the equals sign:on
Aptana->Editors->HTML Editor:Default extension for new HTML files:.html

PHP->Code analyzers: Compiler compliance level:PHP5( or PHP4)
PHP->Editor:Typing:Select options for automatic text modifications:Insert spaces for tab:こっちもチェック
別窓 | 開発環境 | コメント:0 | トラックバック:0
200702211549
[eclipse][koebi] ちょろっと使ってみた感じ
KoebiStudio Express Editionを使ってみました。

まだほんのちょこっとしか使ってないわけですが、いきなりなじめません。

・コード補完機能ではタグは大文字になる
 ※XHTMLではタグは小文字(だったと思う。
・コード補完でタグを選んで、直ぐ属性の記述に移れない
 例)<INPUT>| ←コード補完でタグを書くとここにカーソルがある。
 typeとかを書くためには左キーを押して、1個戻らなければならない。
 ※ez-htmlもENTREで補完決定すると同じだけど、Spaceで補完決定すると続けて属性の記述に移れる。
 もちろんコード補完状態で。

・属性のコード補完が、その都度CTR+Spaceを押さないと出てこない。
・DOCTYPEを挿入する機能がない
・そもそもXHTML形式でタグを補完しない

一応Preferenceをざっと見て、設定で何とかならないかとも思ったけど、なんとかならない様子。
間違って英語版入れちゃったから見落としてるかもだけど。
PHP機能の方はまだ試してないが、HTMLの機能だけ見ると今まで使っていたez-html(非eclipse)の方が断然使いやすい。
PHPとHTML両方とも一つの開発環境(eclipse)で扱いたいから、koebiはPHP機能が良かったとしても微妙かもしれないなぁ。
この間ちょろっと使ったAptanaはすごくよさそうだったから、Aptanaと連動できればいいんだけど。

さらにPHP機能を使ってみた。
こっちものっけから、んん?と思う動きをしてくれます。
<?php
phpinfo();
    |
?>

どこで改行しても、必ずタブを1個入れてくれます。
一応上の例ではphpinfo();とか書いてから改行って感じにしてますが、何も書かずに改行を入れてもやっぱりタブが・・・
この補完にしたがって書くと・・・

<?php
    var a = 1;
    var b = 2;
    var c = a + b;
    echo c;
?>

こんな状態になってしまいます。
インデントしないで下さい・・・
というかタブは使わないで下さい・・・

これは自分には合わないかも(´ω`)
別窓 | 開発環境 | コメント:0 | トラックバック:0
200609061439
[eclipse] PHP統合開発環境
eclipseプラグインな、PHP用の統合開発環境について。

今のところ主に4個ほど有力なものが公開されている様子。

--TruStudio::

結構前から知ってはいたけど、eclipseが重たいのでeclipse自体を敬遠していたから使わなかった。
有償のTruStudio Professionalと無償のTruStudio Foundationがある。
PHPのほかにPythonの開発にも使えるらしい。



--PHPeclipse::

SourceForgeにホストされている。
PHPとeclipse関連を調べるとTruStudioと同じくらいページを見かける。



--PHP IDE::

PHPの開発元のZENDが他の割と大きな企業の協力の下、開発している。
出てきたのは割と最近らしい。



--KoebiStudio Express Edition::

小海老というネーミングのIDE。
AND Systemsという企業で開発が行われている様子だが、サイトに会社概要が見当たらない。
プログラムのライセンスは、eclipse同様Common Public Licenseの様子。
こちらも最近出てきたようでまだ新しい。
サイトでは動作条件にeclipse3.0とあるのが少し気がかり。
eclipseと統合した状態でインストールする、インストーラが用意されているのが良かった。

別窓 | 開発環境 | コメント:0 | トラックバック:0
200609040712
| プログラマのチラシの裏 | NEXT
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。