PHP

BEARで始めるWebアプリケーション開発 その12「Ajaxアクセスを試してみる」

現在、今まで作ったWebサービス達をBEARベースに移行しようとしていまして、どうせならAjaxも使いたいなと思って、BEARでのAjax周りの学習をしていました。そんな訳で、今回はBEARでのAjaxアクセスに関するお話です。今回は例として、Googleの検索APIを叩い…

BEARで始めるWebアプリケーション開発 その11「リソースをWebAPIとして外部に公開する」

今回は、リソースをWebAPI*1として外部に公開する為の方法について学びます。リソースをWebAPIとして提供する場合、外部からはGETのみで、かつ返す表現がXML・JSONの場合は非常に簡単で、PageのonOutputハンドラでdisplayメソッドを使っていたところを、outp…

Amazon Elastic MapReduceでHadoop Streamingする時にライブラリをrequireする方法

ちょっと元データの件数が大量にある処理をしたいという要件があって、普通に逐次処理していくと恐ろしく時間が掛かるので、「こんな時こそHadoop!」って事で、久々にHadoopをいじくっていました。ただ、自宅サーバでやろうとすると、いくら分散処理できると…

第51回PHP勉強会参加&BEARについてプレゼンしました

「ブログに書くまでが(ry」…ではなく、「トラックバックするまでが勉強会」との事なので、早速。第51回PHP勉強会に行って参りました。今回は発表者として、BEARに関するプレゼンをさせて頂きました。リソースフレームワークBEARのススメ(PHP勉強会#51)View m…

はてなキーワードからMeCabのユーザ辞書を作る

PHP

今まで作ったWebサービスのいくつかでMeCabを使っているんですが、最近の言葉がMeCabの辞書に反映されていないので、特に話し言葉に近いブログとかの単語判別が甘いという悩みがありました。そんな訳で、以前からずっとやろうと思っていたまま後延ばしにして…

BEARで始めるWebアプリケーション開発 その10「アスペクト指向プログラミングしてみる」

今回は、BEARの特徴の内の一つである"アスペクト指向"について学びます。概要の説明は例によって本家Wikiに譲ります。→Google Code Archive - Long-term storage for Google Code Project Hosting. アスペクト指向してみる BEARの場合AOPは、phpdoc形式のコ…

BEARで始めるWebアプリケーション開発 その9「フォーム関連機能を学んでみる」

今回はBEARでのフォーム関連の機能を学習します。…とは言ってもBEARの場合、フォーム関連はPEAR::QuickFormのラッパー的な感じなので、フォームの構築方法自体はQuickFormの方を学ぶ必要がありそうです。なので、QuickFormの細かい使い方はひとまず置いてお…

BEARで始めるWebアプリケーション開発 その8「リンクを使ってリソース同士を接続する」

今回は、リソース同士を接続する事ができる"リンク"の機能について学習します。 今回の題材 今までは"逆さ語"を題材としてきたんですが、現状の逆さ語の仕様だとリソース同士がリンクしていなくて、題材としてはよろしくないので、他の題材を探す事にしまし…

BEARで始めるWebアプリケーション開発 その7「複数のリソースからデータを取得して画面に表示する」

今回は、前回作成したリソースを使って、"逆さ語"の画面に"最近変換した文章"を表示させてみます。 ページに表示するリソースを定義する と言ってもそんなに難しくもなく、以前作成したページのonInitメソッドにちょこっと追加するだけになります。 $args['…

BEARで始めるWebアプリケーション開発 その6「DBを扱うリソースを作ってみよう」

前回、BEARでのDBを扱うリソースの作り方を学びました。今回は、実際にリソースを設計して実装するところまでやってみたいと思います。 まずはリソース設計から 例によって、まずはリソースの設計から入ります。 URI /sentences CRUD各メソッドの処理内容 "G…

BEARで始めるWebアプリケーション開発 その5「DBを扱うリソースの作り方を学んでみる」

前回までで、極めてシンプルな形のWebアプリケーションではありますが、BEARを使って動作するものを作成するところまで、一通りの流れを見てきました。ただ、最初の紹介記事でも書いたように、Webアプリケーションが1画面で1機能だけを提供するような事はま…

BEARで始めるWebアプリケーション開発 その4「ページを作ってみる 〜そして(一旦は)完成へ〜」

久々にPHP勉強会(第49回)に参加する事にしまして、BEARの布教活動をしてこようかと企む今日この頃、皆様いかがお過ごしでしょうか。(ここまで挨拶)*1さて、前回までで、DBを使わないようなシンプルなリソースの作り方について学びました。今回は、リソースを…

BEARで始めるWebアプリケーション開発 その3「リソースを作ってみよう」

前回、BEARでのリソースの作り方まで分かったので、今回は実際にリソースを作ってみましょう。 リソースを設計する リソースを実際に実装する前に、どんなリソースを作るか決めておきたいと思います。リソース指向の場合、先にリソース設計をきちんとやって…

BEARで始めるWebアプリケーション開発 その2「リソースの作り方を学んでみる」

今まで月1ペースぐらいだったブログ更新が急にペースアップしているのは、自分のwktk感の現れです。(笑) 最初の紹介記事のはてブの付き方を見ると、結構注目度も高い感じですね。今まで注目されてなかったのが何とも不思議だ…。さて、今回から実践編という事…

BEARで始めるWebアプリケーション開発 その1「インストール〜HelloWorld」

今回から、ちょっとずつBEARを触っていってみようと思います。今回は、とりあえず基本に従って、インストールからHelloWorldまで。 早速インストール インストールの手順は本家Wikiのインストールのページを参照しました。 →Google Code Archive - Long-term…

リソース指向フレームワークのBEARが何やらスゴイ予感

これ、密かにスゴイぞ…。→Google Code Archive - Long-term storage for Google Code Project Hosting.「こんなWebアプリケーションフレームワークがあったらなぁ…。」と最近ぼんやりと考えていた、そのものズバリな感じで、かなり衝撃を受けています。今ま…

MeCabとマルコフ連鎖で文章生成をやってみた

PHP

何となく"マルコフ連鎖"という単語に魅かれて、ちょっとやってみました。→mecab でマルコフ連鎖をためしてみる。 - コードを舐める日々 まずスクレイピング まぁ、当然(?)、PHPでやる訳ですが、まずスクレイピングをどうしようかなと思ったんですが、HTMLScr…

PHPだけで顔認識をやってみた

PHP

久々の"やってみた"系の記事です。…と言うか、記事自体書くのが久々だ…。PHPだけで顔認識をやってみたという以下の記事に魅かれて、とりあえず触ってみました。ちょっと出遅れたので二番煎じな感は否めませんが…。→http://svay.com/blog/index/post/2009/06/…

Amazon EC2上でHadoop Streamingによる分散処理をPHPでやってみた

あいかわらずHadoopStreamingが楽しくてやっているんですが、そろそろ自宅サーバ1台だけで処理するのは限界っぽいので、AmazonEC2上でHadoopStreamingにチャレンジしてみました。AmazonEC2の導入に関しては、以下のまとめ記事からのリンクを参照しまくりさせ…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その7「階層的クラスタリングによりグループを見つけ出す」

前回は話だけで終わってしまったので、今回はソースコード中心です。 アイテム同士の距離の計算に必要な情報を出力するReducerを実装する という訳で早速ですが、前回延々と話をしていた事をReducerに実装します。 #!/usr/bin/php

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その6「グループを見つけ出す…の下準備」

今回はちょこっとアルゴリズムの話をしてから、前回作成したMapperで出力したデータを、いかにして欲しいデータの形にするReducerを書くか…という流れでいきたいと思います。 階層的クラスタリングのアルゴリズム 今回対象にする"階層的クラスタリング"は、…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その5「グループを見つけ出す…の下準備…の下準備」

今回から、元書の第3章に入っていきます。第3章は"グループを見つけ出す"というタイトルになっていて、アイテムを複数のグループに分類するアルゴリズムがいくつか紹介されています。今回は、実際にグルーピングをする前段階として、フィード中の単語を数え…

Hadoop StreamingのReducerへの入力の構造化をPHPでやってみた

(今回の記事は、id:naoyaさんの記事をパクってにインスパイアされて、PHPでやってみたものです。話の内容としては概ね同じです。)前回の記事の最後で、「HadoopStreamingはReducerへの入力が構造化されていないという問題点があります。」という事を書きまし…

Hadoop Streamingで分散処理をPHPでやってみた

「何番煎じか分からないけど集合知プログラミングをPHPでやってみたシリーズ」で扱っている集合知プログラミングは、とかく計算量が多くなりがちで、うまくアルゴリズムを作らないとメモリ不足に陥りがちです。現に前回の記事では、その越えられない壁を体験…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その4「はてブのリンクを推薦するシステムを作ってみる」

前回の予告で、「次回は、del.icio.usのAPIを使って、リンク推薦システム作りに挑戦です。」と書いたんですが、はてブを題材にした方が面白いかなと思って、今回は、はてブのデータを使ってリンク推薦システムを作ってみる事にしました。 データセットを作る…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その3「アイテムを推薦する・似ている製品」

前回は、評者同士の類似度を計算する関数を使って、評者のランキングを返すメソッドの作成までやりました。今回は、いよいよ(ようやく?)実際に推薦を行うメソッドを作成してみたいと思います。 アイテムを推薦する 基本的な考え方としては、自分が評価してい…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その2「ピアソン相関によるスコアの算出・評者のランキング」

前回に引き続き、「今日も元気に集合知!」って事で、やっていきたいと思います。今回は、ピアソン相関によるスコア算出のメソッドと、それを利用して評者のランキングを得るメソッドを見ていきます。 ピアソン相関によるスコア算出のメソッド 前回作成したRe…

何番煎じか分からないけど集合知プログラミングをPHPでやってみた その1「ユークリッド距離によるスコアの算出」

明けましておめでとうございます。m(_ _)m 旧年中は(ry。普通だと、ここで去年の総括とか今年の目標とか書くところなんでしょうが、1月1日だからと言ってそういうのをやるのはあまり好きではないので、通常通り"やってみた系"の記事を書いていこうかと思いま…

TOM先生のテスト講座が無事終了!

すっかりid:kunitさんに宣伝してもらっちゃってましたが(^^;、PHPプロ!さんのところで連載させてもらっていた、TOM先生のテスト講座が無事に最終回を迎えました。「"テスト"ってそんな嫌なものじゃないんだよ」という話から始まって、後半の方は具体的なコ…

PHPカンファレンス2008に行ってきた

「ブログに書くまでが遠足勉強会」メソッドということで、報告エントリです。 という訳で、PHPカンファレンス2008に行って参りました。それぞれの講演内容なんかは、素晴らしい配信スタッフの方々のおかげで、ニコニコ動画で絶賛公開中、今なら誰でもツッコ…