[php][event]AA-Camp #4に参加しました

Posted under php by uechoco on 月曜日 24 12月 2007 at 21 : 16 : 07

 AA-Camp #4に参加してきました。AA-Campの詳細や今回の参加者については、冒頭のリンクからakkyさんがブログでの紹介記事に飛べるのでそちらをご覧ください。簡単に言えば、個人のプロジェクトを黙々とすすめる集会ですね。開発だけではなく、ブログを書くとかでもかまいません。

 私のAA-Camp #4でのプロジェクトは、「CakePHPをはじめて、何かAjaxで動くものを作ること」でした。1つ前の記事に書いた[php][CakePHP]日英・英日翻訳コンポーネントは、AA-Campの途中に書いたコンポーネントです。

 このコンポーネントを用いて作ったのは、英文を入力すると単語ごとにリンクのついた結果を出力して、個々の単語のリンクをクリックすると、Ajax的に同じページ内にその単語の和訳を表示するというものです。CakePHPの1.2でやってみました。サンプルページをアップできるほどのCakePHPについてのセキュリティ知識がないので、今回は報告だけにしておきます。

 AA-Campに参加して思ったことは、集中して開発ができる環境を1つは持っておきたいなということでした。開発に集中できる環境があるとこれだけ作業効率が違うのかと実感しました。もう1つは、周りにすごい人たちが居ると、がんばらないとなっと感じられることです。どんなことでも、目指すべき目標やあったり負けられない相手がいるとモチベーションが上がりますよね。ご自宅を開放して主催して下さったakkyさんには感謝です。


[php][CakePHP]日英・英日翻訳コンポーネント

Posted under CakePHP,php by uechoco on 日曜日 23 12月 2007 at 17 : 15 : 44

ようやくCakePHPの勉強を開始しました。『CakePHPガイドブック』と『PHPフレームワーク完全マスター』で勉強しています。

以前[php][WebAPI]EJ, JE translation APIは翻訳WebAPIとして使えるで紹介したEJ, JE translation APIを用いてなんか変なもの作っています。CakePHPの作法がよくわからないのですが、コントローラの中に書くのは良くなさそうなので、適当に本を見てコンポーネントにしてみました。phpのバージョンやライブラリの依存については[php][WebAPI]EJ, JE translation APIは翻訳WebAPIとして使えるを参照してください。

PHP:
  1. require_once 'HTTP/Client.php';
  2. /**
  3.  * EJ, JE translation APIを用いて翻訳を行うコンポーネント
  4.  *
  5.  * @author uechoco
  6.  * @see    http://muumoo.jp/news/2007/05/09/0translationapi.html
  7.  */
  8.  
  9. class TranslateComponent extends Object
  10. {
  11.     /**
  12.      * 固定ID定数
  13.      */
  14.     const ID_EJ = 'ZM5oVmX92xGrFWiRJhOy0Q';
  15.     const ID_JE = 'ohZnaGr92xG36xIFyzUFzw';
  16.  
  17.     /**
  18.      * コントローラを保持
  19.      */
  20.     var $controller = null;
  21.  
  22.  
  23.  
  24.     /**
  25.      * HTTP_Clientの初期化パラメータ
  26.      *
  27.      * @access private
  28.      */
  29.     var $http_client_default_param = array(
  30.         'timeout' => 10,
  31.         'allowRedirects' => true,
  32.         'maxRedirects' => 3
  33.     );
  34.     var $http_client_default_header = array(
  35.         'Accept-Language' => 'ja-JP,ja;q=0.9,en;q=0.8'
  36.         );
  37.  
  38.     /**
  39.      * POSTする先のURI
  40.      *
  41.      * @access private
  42.      */
  43.     var $uri = 'http://pipes.yahoo.com/pipes/pipe.run';
  44.  
  45.  
  46.     /**
  47.      * POSTするパラメータ(固定部分)
  48.      *
  49.      * @access private
  50.      */
  51.     var $param = array(
  52.     '_run' => 1,
  53.     '_render' => 'json', // or rss
  54.     );
  55.  
  56.     function
  57.     __construct()
  58.     {
  59.         parent::__construct();
  60.     }
  61.  
  62.     function
  63.     startup(&$controller)
  64.     {
  65.         $this->controller =& $controller;
  66.     }
  67.  
  68.  
  69.     /**
  70.      * 英日翻訳
  71.      */
  72.     function translate_ej(&$word)
  73.     {
  74.         return $this->_translate(TranslateComponent::ID_EJ, $word);
  75.     }
  76.  
  77.  
  78.     /**
  79.      * 日英翻訳
  80.      */
  81.     function translate_je(&$word)
  82.     {
  83.         return $this->_translate(TranslateComponent::ID_JE, $word);
  84.     }
  85.  
  86.  
  87.     /**
  88.      * 翻訳本体
  89.      */
  90.     function _translate($_id, &$word)
  91.     {
  92.         $text = urlencode($word);
  93.         $p = am($this->param, array('_id'=>$_id, 'text'=>$text));
  94.  
  95.         // レスポンスの発行
  96.         $client =& new HTTP_Client($this->http_client_default_param, $this->http_client_default_header);
  97.         $client->post($this->uri, $p);
  98.         $response = $client->currentResponse();
  99.  
  100.         // JSON形式をPHPで操作可狽ネ形式にデコード
  101.         $ret = json_decode($response['body']);    //>= php 5.2.0
  102.         $tuple = $ret->value->items[0];
  103.  
  104.         // 翻訳結果
  105.         return urldecode($tuple->description);
  106.     }
  107. }


[php][event]第29回PHP勉強会行ってきました

Posted under php by uechoco on 土曜日 22 12月 2007 at 22 : 30 : 07

 第29回PHP勉強会に参加してきました。今年最後の勉強会ですね。会場はトライコーン株式会社様。会場提供ありがとうございます。

 後々発表資料は上がると思うので、ダイジェスト的な記事にします。

■自己紹介

■『30分で振り返る2007年のPHP』 by yandoさん

 ●Q1(1?3月)

  • symfony 1.0リリース
  • Prahaggerリリース
  • Twitterブレーク
  • いつぶりの焼肉だろう・・・うまかった

 ●Q2(4?6月)

  • Zendのstableがリリース
  • Smartyの公式マニュアルが日本語化
  • Ethna×PHP発売
  • USBミサイル
  • TwitterAPI+GraphViz
  • 今はテンプレート管理ツール r3 はWeb UIがついているらしい(by ogiさん)
  • マジでPHP勉強会を焼き肉屋でやりましょう。プロジェクター持込で

 ●Q3(7?9月)

  • PHP4のサポート終了の告知
  • PHPカンファレンス2007
  • 勉強会に30人以上集まる
  • PHPフレームワーク完全マスター発売
  • やっぱり、ぺちぱーは「肉」

 ●Q4(10?12月)

  • symfony x PHP発売
  • PHPフレームワーク ZendFramework入門
  • CakePHPガイドブック発売
  • symfony徹底攻略発売
  • PHP懇親会開催
  • CakePHP勉強会開催
  • 今回は肉じゃありません(PHP懇親会)

 牛に感謝。

■『PHPの正規表現と最長一致』 by hanawaさん

 ●(a+)(([ab][ab])+)をaaabbbに対して適用した結果は?

  • 最長一致
    • greedy matching(最長と訳すのは間違い)
    • longest matching
  • greedy matching(欲張りマッチ)
  • longest matching(最長一致)
  • POSIX正規表現:longest matching・・・性能↓の可能性、PCREを使おう
  • PCRE正規表現:greedy matching・・・最長は誤訳、繰り返しを欲張る
  • ホワイトボード登場
  • <.*> → <[^<>]*> あるいは <.*?>

 ■『PHPにおける型変換の世界』 by i_ogiさん

  • @see 某サイト
  • NULLとの比較
    • NULL < 1 → true
    • NULL < -1 → true
    • NULL < 0 → false
    • NULL > 0 → false
    • NULL == 0 → true
    • NULLとの比較はboolに変換される。
  • @see phpマニュアル さまざまな型の比較
  • var_dump((int)(float)"2.0e3")
  • operator extension

 ■『MyMiniCityについて』 by sotarokさん feat. shimookaさん

 ■『PECL purple』 by cocoitibanさん

  • 誰かやって?

 ■『Google 静止画を出力しよう』 by LINDさん

  • GETでできる
  • 古い携帯でもできるかもー

 ■『ベイジアンフィルタ』 by btoさん

  • @see 自己学習で分類精度を向上させるベイジアンフィルタ
  • ベイズ推測
    • 過去の事象の確立から未来を推測
  • ベイズの定理 P(H|D) = P(D|H)P(H)/P(D) : データDから仮説Hが成り立つ確立
    • P(H)・・・事前確立
    • P(D|H)・・・尤度(ゆうど)
    • P(H|D)・・・事後確立
  • メールをhamとspamに分類する例
  • Paul Graham方式
  • Gray Robinson方式
  • Naive Bayes
  • トークンの抽出
    • 意味のある単語を取り出す
    • bi-gram, tri-gram

 勉強家の後はもちろん、焼肉です。今回は炭火焼肉 山星(さんせい)四谷本店さんです。選別が面倒なので、撮った写真全部載せます。おすすめは、"とうがらし"の泡醤油です。これはガチ。焼肉にわさびと一緒に泡醤油を乗せて食べるのですが、もうたまりませんっ!!

■焼肉

  • G言語で開発日誌www
  • G言語はモーターを操るやつとゲノムを操るやつがあるみたい
  • ドワンゴとJASRAC
  • 某phpサイトは超クール
  • コスキャバ
  • デブサミ
  • モバイルの評論家っていないよね

第29回PHP勉強会/焼肉01
第29回PHP勉強会/焼肉02
第29回PHP勉強会/焼肉03
第29回PHP勉強会/焼肉04
第29回PHP勉強会/焼肉05
第29回PHP勉強会/焼肉06
第29回PHP勉強会/焼肉07
第29回PHP勉強会/焼肉08
第29回PHP勉強会/焼肉09
第29回PHP勉強会/焼肉10
第29回PHP勉強会/焼肉11
第29回PHP勉強会/焼肉12
第29回PHP勉強会/焼肉13
第29回PHP勉強会/焼肉14


[雑記]MyMiniCityやってみたけど

Posted under 雑記 by uechoco on 金曜日 21 12月 2007 at 15 : 52 : 58

 かなり乗り遅れていますが、ブーム到来中のMyMiniCityやってみました。

クリックで拡大
MyMiniCityをはじめてみた

 ページにも書いてありますが、

To improve uechoco, you only have to give the following links to your friends or post them in your blog. Each different click will improve uechoco!

どうやら、他の人からのアクセスが増えることで、人が増えるようです。

 んーでも、友達にURL送りつけるのもアレだし、かといってブログに書いたところでそれほど多くの方が見ているわけではないので・・・他にいいアクセスアップの方法はないですかね?たとえば、自分のMyMiniCityのページにオリジナルのコンテンツをあげることができるとか。でないと有名ブロガーの方々にはかないません><;


[XAMPP]Skype起動後にApacheを起動できない

Posted under ソフトウェア by uechoco on 金曜日 21 12月 2007 at 00 : 10 : 00

 ローカル開発はXAMPPで環境を整えています。ApacheやMySQLをサービスとして自動起動する設定にしていないので、開発したいときにXAMPPコントロールパネルから起動するのが私のスタイルです。

 今日、大事なプログラムを書く必要があったのでいつものようにXAMPPコントロールパネルからApacheとMySQLを起動しようとしたら、MySQLは起動するのにApacheが起動しません。何度やっても起動しません。

 httpd.confに類する設定ファイルを変えた覚えもないので、起動しないのがなぜかまったくわからず、時間が過ぎていったのですが、XAMPPのツールで何がいけないのか診断できないものかと、XAMPPディレクトリをあさっていたら、「xampp-portcheck.exe」なるプログラムがあったので、実行してみるとこんな画面が

クリックで拡大します
xampp-portcheck.exeの実行画面に

 なんかポート80番にSkypeって文字が・・・これが原因だと思って、Skypeを閉じた後にApacheを起動したら見事に起動しました。今日から久しぶりに再使用し始めたSkypeがこんな駄々っ子だったとは思いませんでした。もちろんApache起動後にSkypeを起動したら、ちゃんと起動しますし、他のポートを使っているようでした。

 これ毎回あるといやだから、Skypeの設定で変えられないのかなっと思って、Skypeの設定を見たら、ちゃんとありましたね。「上記のポートの変わりに、ポート80を使用」というところにチェックがついていました。これをはずせば万事解決かな?

クリックで拡大します
skypeの設定画面

 後からググったら、同じ症状の記事はたくさんありますね。このデフォルト設定どうにかならないのかなぁ・・・


« 前ページへ次ページへ »

Copyright © 2012 うえちょこ@ぼろぐ. WP Theme created by Web Top.