Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

PHPテクニカルセミナー - 懇親会

二日連続の懇親会です(^^; 今夏は立食パーティーでした。20名以上いたんじゃないですかね?

今回も新たにいろいろな方とお会いして来ました。昨日のPHP勉強会の宴会で名刺が少なくなったので補充していったのですが、結局全部なくなってしまいました(^^; 田中さん@アシアル、森川さん@アシアル、安藤さん@カサレアル、木村さん@キムラデービー、長谷川さん@アローズ・システムズ、月宮さん@ディノ、新原さん@1x1、吉武さん@freeative、久保さん@Piece Project、そして大垣さん@PHPユーザー会。ありがとうございました。
また、藤本さん、小山さん、お付き合いいただきありがとうございました。
ネタ的には、雑談1/2、PHPネタ1/4、その他技術ネタ1/4な感じでした。毎度のごとく、思い出せる範囲でダイジェスト(雑感込み)。

  • Frameworkがボトルネックになるより、DBとかファイルI/Oの方がネックになるよね
  • 「アシアルさん、メチャクチャ広範囲にアンテナ張ってますね」「でも、チェックしてるのは1人だけですよ」「え〜!」
  • デザパタ本は話が来てから発売まで半年かかってます
  • 新原さん@1x1、新幹線間に合いました?ホントにありがとうございます :-)
  • ディノは引越だったそうです
  • 最近、Apache2.2.4でmod_proxy系使って遊んでます
  • Do You PHP?の更新頻度低くてすみません。。。
  • PHPOOPって、PHPの「軽さ」を生かせないんじゃない?

あ〜。名刺作ろっ。

まるごとJavaScript & Ajax ! Vol.1

「まるごと」シリーズのjavascript版が出るらしいです。Amazonでは予約が始まってますね。

まるごとJavaScript & Ajax ! Vol.1

まるごとJavaScript & Ajax ! Vol.1

目次は、インプレスのサイトをどうぞ。

あとで読「も」

「あとで読む」も登録してましたが、こちらも早速登録して試してみました。あ〜。これ、いいかも知れない。


あとで読むのモバイル版、「あとで読も」。
外出前に「あとで読も」のブックマークをポチっと一押しするだけで、表示しているサイトのテキスト情報がケータイに転送されます。
ニュース記事やスケジュールなど、お出かけ前にポチっと転送していただければ意外と便利ではないかと。
#地下鉄でも退屈しませんよw

で、登録したときに届くメールのSubject

[あとで読も] 登録確認メールです(いま読んでください)

これが好きですね ;-)

mod_proxy_balancerのLoad Balancer Manager

Apache2.2.4のmod_proxy_balancer.cを何気なく眺めていたら、

672:    if (apr_table_get(params, "xml")) {

な行を発見。Manager画面にアクセスする際、パラメータ「xml=1」(「1」の部分は何かの文字列)をつけてアクセスしてみると、XML形式で出力されるみたいですね。

<?xml version="1.0" encoding="UTF-8" ?>
<httpd:manager xmlns:httpd="http://httpd.apache.org">
  <httpd:balancers>
    <httpd:balancer>
      <httpd:name>balancer://172.17.3.219</httpd:name>
      <httpd:workers>
        <httpd:worker>
          <httpd:scheme>http</httpd:scheme>
          <httpd:hostname>172.17.3.219</httpd:hostname>
          <httpd:loadfactor>1</httpd:loadfactor>
        </httpd:worker>
        <httpd:worker>
          <httpd:scheme>http</httpd:scheme>
          <httpd:hostname>172.17.3.219</httpd:hostname>
          <httpd:loadfactor>2</httpd:loadfactor>
        </httpd:worker>
      </httpd:workers>
    </httpd:balancer>
  </httpd:balancers>
</httpd:manager>

ただし、HTML形式のものと比べて情報があまりに少なすぎる。status出てこないし。。。ということで、

*** mod_proxy_balancer.c.org	2006-12-20 06:56:16.000000000 +0900
--- mod_proxy_balancer.c	2007-01-31 14:17:23.000000000 +0900
***************
*** 681,686 ****
--- 681,688 ----
              ap_rputs("      <httpd:workers>\n", r);
              worker = (proxy_worker *)balancer->workers->elts;
              for (n = 0; n < balancer->workers->nelts; n++) {
+                 char fbuf[50];
+ 
                  ap_rputs("        <httpd:worker>\n", r);
                  ap_rvputs(r, "          <httpd:scheme>", worker->scheme,
                            "</httpd:scheme>\n", NULL);
***************
*** 688,693 ****
--- 690,725 ----
                            "</httpd:hostname>\n", NULL);
                 ap_rprintf(r, "          <httpd:loadfactor>%d</httpd:loadfactor>\n",
                            worker->s->lbfactor);
+ 
+                 ap_rprintf(r, "          <httpd:route>%s</httpd:route>\n",
+                           worker->s->route);
+                 ap_rprintf(r, "          <httpd:routeRedir>%s</httpd:routeRedir>\n",
+                           worker->s->redirect);
+                 ap_rprintf(r, "          <httpd:lbset>%d</httpd:lbset>\n",
+                           worker->s->lbset);
+ 
+                 ap_rputs("          <httpd:status>", r);
+                 if (worker->s->status & PROXY_WORKER_DISABLED)
+                    ap_rputs("Dis ", r);
+                 if (worker->s->status & PROXY_WORKER_IN_ERROR)
+                    ap_rputs("Err ", r);
+                 if (worker->s->status & PROXY_WORKER_STOPPED)
+                    ap_rputs("Stop ", r);
+                 if (worker->s->status & PROXY_WORKER_HOT_STANDBY)
+                    ap_rputs("Stby ", r);
+                 if (PROXY_WORKER_IS_USABLE(worker))
+                     ap_rputs("Ok", r);
+                 if (!PROXY_WORKER_IS_INITIALIZED(worker))
+                     ap_rputs("-", r);
+                 ap_rputs("</httpd:status>\n", r);
+ 
+                 ap_rprintf(r, "          <httpd:elected>%" APR_SIZE_T_FMT "</httpd:elected>\n",
+                           worker->s->elected);
+                 ap_rprintf(r, "          <httpd:to>%s</httpd:to>\n",
+                           apr_strfsize(worker->s->transferred, fbuf));
+                 ap_rprintf(r, "          <httpd:from>%s</httpd:from>\n",
+                           apr_strfsize(worker->s->read, fbuf));
+ 
                  ap_rputs("        </httpd:worker>\n", r);
                  ++worker;
              }

のようにしてやると、いい感じに出てきます :-) 監視アプリなんかと組み合わせられるかも。

<?xml version="1.0" encoding="UTF-8" ?>
<httpd:manager xmlns:httpd="http://httpd.apache.org">
  <httpd:balancers>
    <httpd:balancer>
      <httpd:name>balancer://172.17.3.219</httpd:name>
      <httpd:workers>
        <httpd:worker>
          <httpd:scheme>http</httpd:scheme>
          <httpd:hostname>172.17.3.219</httpd:hostname>
          <httpd:loadfactor>1</httpd:loadfactor>
          <httpd:route></httpd:route>
          <httpd:routeRedir></httpd:routeRedir>
          <httpd:lbset>0</httpd:lbset>
          <httpd:status>Ok</httpd:status>
          <httpd:elected>26</httpd:elected>
          <httpd:to> 14K</httpd:to>
          <httpd:from> 61K</httpd:from>
        </httpd:worker>
        <httpd:worker>
          <httpd:scheme>http</httpd:scheme>
          <httpd:hostname>172.17.3.219</httpd:hostname>
          <httpd:loadfactor>2</httpd:loadfactor>
          <httpd:route></httpd:route>
          <httpd:routeRedir></httpd:routeRedir>
          <httpd:lbset>0</httpd:lbset>
          <httpd:status>Ok</httpd:status>
          <httpd:elected>52</httpd:elected>
          <httpd:to> 28K</httpd:to>
          <httpd:from>1.1M</httpd:from>
        </httpd:worker>
      </httpd:workers>
    </httpd:balancer>
  </httpd:balancers>
</httpd:manager>

あとで調べてみると、1年以上前にネタが出てました。。。orz