2012年7月28日土曜日

Codeigniter フィールドのユニークチェック is_unique

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
前はDBのフィールドに対するユニークチェックのバリデーションを自前でやる必要があったのですが、バージョンが新しくなってis_uniqueが使えるようになったみたいですね。

is_unique[category.title]

テーブル名と フィールド名を指定するだけ。簡単。

ソーシャル的にWEBサイトを作り上げる方法はないものか

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ソーシャル的にとはなんなのか、よくわからない。
たぶんコミュニケーションとってごにょごにょすることだろう。

アマチュア一人ではそれなりのものしか作れない。でもネットでソーシャル的に協力すれば
その作業に誰でも参加できて、良い作品を作り上げることができるし、多くの人がそう感じてるのではないだろうか。

昔はネットがなかったからわからないことはすぐ調べるということができなかった。
いまはぐぐってしまえばある程度の知識はなんとかなるし、アマチュアでもWEBサイトが作れてしまう。ツールも進化して一人で多くの分野の作業もできるようになった。
それはたぶん、ネットで知識の共有のおかげで、プロの方がブログで知識を公開したり、サービスでコードを共有したり、知恵袋であったりするのだろう。

ネットは人類の脳という例えがどっかにあったがまさにそんな感じかな。
実現に50年、100年かかるといったものが半分になったりするんじゃないかと思うと
何かわくわくしてくる。

とはいえ、専門的な知識の進化も著しくなってきているので
一人がググって多くの分野にわたって高度なスキルを習得するのはかなりの時間がかかってしまうし、進化し続けることを考えると、追いつくのはほぼ不可能だと思う。

ちょっと本題からそれて、おっさん世代はネットで共同作業することに慣れてはいない。
記事で読んだが、今の中学生、高校生はそれを良くも悪くもうまく利用している。
Skypeやgoogleドキュメントを使って、分業して教えあい課題をクリアしていくことができる。

もし自分が今の学生の立場であるとしたらこんな使い方をしてみたい。
例えば夏休みに英文訳の課題 100 ページ分でたとする。
いまなら一人で翻訳ツール、辞書ツールを使いつつそれなりの速度でこなすことが出来るだろう。
でももっと楽をするのなら、同級生100人で1人1ページを分業して合わせれば1日で終わらすこともでき、残りを遊ぶ時間に他の勉強に当てることもできる。
これには。実際に訳する力が鍛えられないという問題はあるが、協力してお互い補完しあうことで1つの良い模範訳を作ることになるので、ある意味教材の模範解答に近いものができるだろう。
それと照らし合わせて自分の問題点を知ることができるので、教材を買わずに効率よく復習することができる。本当に羨ましい限りだ。

つまり、何人か異なる分野の専門家がお互いに協力して作り上げるほうが、一般的に良いものができる。(当たり前か)。同じ作業場に実際集まって協力して作り上げるのが効率の良い方法だ。
ネットで同様なやり方を実現できないものか?

もし、アマチュアの100人のWEBサイト作成者が協力して1つのWEBサイトを作成できたら
今ある有名なこのサイトやあのサイトが1時間でできるかもしれない!
とまではまだまだいかないだろうけど、お互いの知識を共有してそれを繰り返していくことでそれを可能にするのではないかと思う。

10個のWEBサイトを自分ひとりで作成できるのもそれなりに評価されることではあるけれど
やはり、多くの人が使う有名なサイトの作成者の1人として携わったことがあると言えるほうが
多くの人に認められるし、自信にもなる。

結局言いたいのは、望むなら、今日始めたアマチュアから、プロまでスキルの幅が広くでも
一つのプロジェクトをそれぞれのスキルにあった作業に分業し誰でも参加できるシステムがあるようなソーシャル的に開発できるサービスが出来てほしい。(自分ではまだまだ作れないし)
もっというならお互いが共同作業できる各種ツールが備わっているといい。プログラミング作業をリアルタイムで共同作業するのはまだまだ難しいのかなあ。

2012年7月23日月曜日

グーグル急上昇ワード関連のツイートをまとめて表示させてみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
今話題のワードといえばグーグルトレンド、急上昇のランキングのワード
それに関してリアルタイムでのツイートをまとめてみれたらいんじゃないかということで
作ってみました。

グーグル急上昇ワード関連ツイートまとめ
















非常に手抜きをしております。
グーグルの急上昇ワードをとってきてそれぞれのキーワードに対して
グーグルのガジェットを表示しているだけという


グーグルの急上昇のAPI関連は以下を参考にさせてもらいました。

XMLが自分としては扱いやすいのでモバイル?のバージョンのほうを取得しています。
そしてそれらのキーワードをツイートのガジェットに適用してたくさん表示させているだけです。

ツイートガジェットはここでいろいろ作ることができます。

なぜ作ろうと思ったかわからない、誰得なのかもわからない
とりあえず作ればいいと思う(所要時間 3時間程度)
いろいろ迷走しています

Whitespace in query component. Use %20 in place of spaces.

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
HTM5コードチェックのメモ

URLのクエリのスペースは%20で置き換える
&は&で置き換えるなどなど

phpの場合URLを表示させる前に
htmlentities($url) もしくは htmlspecialchars($url) しておく

2012年7月14日土曜日

1000円以下のクーポン情報まとめサイトを作ってみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
各クーポン情報を集めて1000円以下という括りでまとめてみました。

1000円クーポンお得情報http://webcafe.x0.com/coupon1000/














今回はクーポンサイトのAPIを叩いてみました。

グルーポン API
http://www.groupon.jp/about-api

ポンパレ API

くまぽん API

シェアリー API

データを取得する流れはどのAPIについても
①チケット情報一覧 or エリア情報 から チケットコードを取得
②取得したチケットコードから クーポン情報を取得する
という手順で情報を取得できるようです。

データを更新してできるだけ新しい情報を表示させたいのですが
毎回リクエストしているとAPIのリクエスト制限や、サーバー負荷が問題となるので
特に、くまぽん、シェアリーは1件のリクエストでチケット情報が1件しか取得できないみたいなので
チケット情報一覧を1回読み込んでやって、DBにチケット一覧を保存
cronでチケット一覧から未更新のチケットを例えば20個程度を1時間ごとに実行してやって
クーポン情報を更新しています。
また同時に、クーポン期限の切れたデータは削除させています。

細かいところではRSSをつけたり、Twitterガジェットを付けたり、bootstrapのスライダーを使ってみたりしています。

クーポンサイトのデザインやレイアウト項目などを見比べると
まるで同じ人が作ったように似通っていました。
業界の作り方の基本とかあるんですかねえ。

2012年7月2日月曜日

オークションサイトをまとめて検索するサイトを作ってみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
各オークションサイトををまとめて検索して安いものが見れたらいいなあと思って作ってみました。

オークションまとめ検索
















ちょっと検索性能がしょぼいのでぴったりのものが見つからないかもしれないのが
改善したいのもあるのですが、とりあえず公開してみました。
おいおい、改善するかもしれません。

今回は各オークションサイトのAPIを使ってみました。
有名そうな3つのサイトを対象にしました。
各種APIの商品検索を使ってデータを取得して、データをまとめて表示させてみました。

Yahooオークションの検索API
http://developer.yahoo.co.jp/webapi/auctions/auction/v2/search.html

楽天オークションの検索API
http://webservice.rakuten.co.jp/api/auctionitemsearch/

ビッダースのAPI

Yahooはすんなりデータ取得できる。
楽天はxmlに名前空間が付いていてxmlローダーと相性が悪いらしく
取得したレスポンスの各項目の名称をいじるとなんとかなるみたいです。
以下を参考にさせていただきました。

ビッダースのAPIはzipでダウンロードして解凍して中にいろいろサンプルがあるので
それを参考にしました。
どのapiも取得方法はだいたい同じで以下のようにkeywordとして言葉を付け加えてsortなどを指定するだけで簡単ですね。キーワード部分はエンコードしてやる必要があるみたいですが。
http://xml.bidders.co.jp/bep/xml?keyword=1%89%7E&sort=price,A