[php-study 217] Re: 3月勉強会開催日変更と参加者初期化のおしらせ

「Ethnaを利用して何か作ってみよう」という事で 参加者はノートパソコン等を持参していただき、 (別に限定するわけではないのでXoopsモジュールでも良いですが) Ethnaを利用した何かを一人一つ作ってみようというものです。 (パソコンない人はペアプログラミングでもおもしろそうです。)

とりあえずEthnaを知らない人も多いと思うので 私がEthnaの基本的な操作説明を行います。 Ethnaを知らない方はその操作説明で基本的な使いかたを覚えてください。

その後、各自適当に自分の作りたいものを作ります。 自分一人でもくもくと作業するのもよいですが、 他人のソースや開発環境をのぞいてみるのもおもしろいかと思います。

タダでEthnaが覚えられる!ってことで25日の勉強会申し込みましたー! もう面倒臭いからコード書いちゃおうぜって感じが実践的でイイ。予習しとかないと・・・。 コード!コード!コード!(白目)

ripod.jpg

あ”ぁー、風邪ひいたー。 リポD飲んで糞して寝ます。

[戯] Firefox のブックマークのアイコンを好きなアイコンに変更する拡張機能 Favicon Picker

使い方は,拡張をインストールして,ブックマークのプロパティを開くと,上記のような画面が出てきます. Icon が追加されていますので,[Browse…] で好きな画像を登録することができます. 選択した画像は,16×16 に拡大縮小されるみたいです.

bookmarkicon.png

あーこれ便利ー。

ML1—悪夢とコーディング

起きてる間は、オープンソースなCMSであるところの Drupalをいじってることが多いここ数日。

最近Drupalで出来てるとこを見かけるようになってきた。他にもココとか。以前、MojaviJapanを作るにあたって今日びのCMSで作ってみようかなと思ってDrupalと格闘しました。モジュールが抽象化されてて面白くなってしまい、2日ぐらい経ってから手段が目的化してることに気づいてXoopsに変えたら1日でできました・・・。それで久しぶりにDrupalの日本サイトを見に行ったら、

hostbyw.png

hosted by うちの会社かよ。

SaikyoLine.jp

かくして、イメージファイルを作ることに成功したのですが、ZIP圧縮しても130MBくらいとデフォでダウンロードされるwoodyベースのイメージにはほど遠い。 これ、どうやってやればいいのか以前からすごく気になってたんですが、↓こんなページを見つけ一発解決。すばらしい。45MBくらいになりました。

coLinuxインストール大会後もずっと調査を続けてたyoshukiさんの純粋なEtchイメージが遂に完成。パッケージ精査とかにもすごい工数かかってるはず。(coLinuxだとブートローダも必要無いとことか気持ち良い。)特にイメージ圧縮方法には感動。超スッキリしました!

winfont_suck_1.png

せっかくブログの文字を大きくしてもWindowsだとイマイチ残念感が・・・。そこで少しでも滑らかにする方法。

これはやってる人とやってない人の差が激しくて、「そんなの“拡張子を表示する”ぐらい基本でしょ!」っていう人と、「えっ、おれ?(質問の意味自体わかってない)」という人に分かれる。やり方は、winfont_suck_3.png

“画面のプロパティ” > “デザイン”タブ > “効果” > “次の方法でスクリーン フォントの縁を滑らかにする” > “ClearType”

です。

winfont_suck_2.png

ClearTypeだとこんな感じになります。ぜひ!

PEAR :: PEPr :: Details :: Services_IM

>> Description Provides a standard O-O interface to the many IM protocols currently available. Easily extensible with a class hierarchy to support the protocols.

PEPrにDraftでServies_IMが。そりゃ実現すれば便利だけども先、長そうだなー。

p0t: Beautifyしてくれねえ

http://www.waterproof.fr/products/phpCodeBeautifier/

とかってどうでしょうか?確かPEARの書式にも変換できた気がします。

Posted by shimooka at March 20, 2006 09:41 PM

shimookaさんよりBeautify情報。早速試してみました。どうやらPHPEditっていうエディタの副産物のようです。当然Windowsアプリ。

phpCodeBeautifier http://www.waterproof.fr/products/phpCodeBeautifier/

php_code_beautifier.png

おお、ほぼ完璧じゃないスか。これはいいものだぁあー

と、思ったらコマンドラインからだと何故かほとんどのオプションが利かない。そんでこんな感じになる。

C:\WINDOWS\Temp\phpCB-devel-0.8-2003-09-18>phpCB --comment-rendering-style PEAR
--equal-align-position 50 --padding-char-count 4 dirty.php
<?
require_once("Foo/Bar.php");
$foo = foo();
function connect (& $dsn, $persistent = false){
     if(is_array($dsn))
        {
         $dsninfo = & $dsn;
         }
    else
        {
         $dsninfo = DB :: parseDSN($dsn);
         }

     if(!$dsninfo || !$dsninfo['phptype'])
    {
         return $this -> raiseError();
         }
     return true;
    }
?>

バッチ的に古いコードを一括で変換したいところ!

PHPコーディングスタイル矯正中のおれですが、これが標準だと思うと「コレはコレで結構・・・」とかなってきて書き途中のコードも全部PEARスタイルにしたくなってきた。手で全部直すのはかったりぃので昔気になってたPEAR PHP_Beautifierを試してみることにしました。PHP_Beautifierはいまだに0.1.7(beta)だそうなのでまたpreferred_stateをbetaに、

colinux:~% sudo pear config-set preferred_state beta

そしてなぜかPHP5じゃなきゃ駄目らしいので切り替え

colinux:~% sudo update-alternatives --config php

やっと入った。

colinux:~% sudo pear install PHP_Beautifier

これでphp_beautifierコマンドが使えるようになるので試しにこんな感じのコードをBeautifyしてもらう。

colinux:~% cat ~/www/php-examples/dirty.php
<?
require_once("Foo/Bar.php");
$foo=foo();
function connect ( &$dsn,$persistent=false ){
  if( is_array($dsn) )
  {
    $dsninfo = &$dsn;
  }
  else
  {
    $dsninfo = DB::parseDSN($dsn);
  }

  if( !$dsninfo || !$dsninfo['phptype'] )
  {
    return $this->raiseError();
  }
  return true;
}
?>

PEARスタイルに変えてくれそうな設定で変換。

colinux:~% php_beautifier -l "Pear()" ~/www/php-examples/dirty.php
<?
require_once ("Foo/Bar.php");

$foo = foo();

function  connect ( &$dsn, $persistent = false)
{

  if ( is_array($dsn)) {

    $dsninfo =  &$dsn;
    } else {

    $dsninfo =  DB::parseDSN($dsn);
    }

  if ( !$dsninfo ||  !$dsninfo['phptype']) {

    return  $this->raiseError();
    }

  return  true;
}

?>
Mar 20 19:26:10 php_beautifier [info] Filters used: Pear
Mar 20 19:26:10 php_beautifier [info] /home/komagata/www/php-examples/dirty.php to STDOUT done
Mar 20 19:26:10 php_beautifier [info] 0 seconds needed

うわっ、なにこれ、びみょう・・・。

コードを見やすくするためにPHPのコーディングスタイルもPEAR標準に従って読みやすくしていきたい。

よく読んでみるとPEAR標準コーディング規約は結構細かく書いてある。viやemacsでの設定も書いてあるので便利だ。大まかにまとめるとこんな感じ。
  • インデントはスペース4個(タブは駄目)
  • 半角75-85 文字ごとに改行することを推奨。(必須ではない)
  • if, for, while, switch等の制御構造と括弧の間はスペース1個。
  • 制御構造の中括弧は条件と同じ行。(間はスペース1個)
  • 関数コールでの関数名と括弧の間にはスペース無し。
  • 代入のイコールの左右はスペースを入れる。(沢山入れて見栄えを揃えても良い)
  • 関数定義の中括弧は次の行の関数名と同じ位置。(one true braceと言うらしい)
  • デフォルト値付き引数は引数リストの終わりに置くこと。(なるべく右側ってこと)
  • Perl/Shell形式のコメントは使ってはいけない。
  • include~およびrequire~は命令であり関数ではないので括弧は付けない。
  • PHPショートタグは使ってはいけない。(<?のこと)
  • 文字エンコードは ISO-8859-1 を使用しなければならない。
  • 改行はLF。
  • PHP終了タグ(?>)の後は改行を一つ入れる。
  • 変数展開や特殊文字を含まない文字列はシングルクォートを使う。(via koyhogeさん)

大体こんな感じのコードになるようです。

&lt;?php
require_once 'Foo/Bar.php';

$foo = foo();

function connect(&$dsn, $persistent = false)
{
    if (is_array($dsn)) {
        $dsninfo = &$dsn;
    } else {
        $dsninfo = DB::parseDSN($dsn);
    }

    if (!$dsninfo || !$dsninfo['phptype']) {
        return $this-&gt;raiseError();
    }

    return true;
}
?&gt;

意外と「うわっ、勘弁してくれよ!」っていう感想の人が多いんじゃないでしょうか。おれもそうですが、頑張って自分の体を合わせて行きたい!(ドM)

PEAR :: Manual :: コードの提供

コードの提供にあたっての要求事項

コード自体およびパッケージの著者に対して、 いくつかの要求事項があります。

  1. 標準コーディング規約への合致

新しいパッケージの作成か、既存のパッケージへの付加かに係わらず、 PEAR にコードを提供する場合は、 標準コーディング規約 に合致している必要があります。 標準コーディング規約というものが良いものかどうかについては 多くの議論がありましたが、絶対に必要なものであるとの決定に達しました。 さらに議論する意義はありません。