MA3の開発に着手
mash up award 3rd に向けて開発に着手しました。
とりあえず、3つほどいけそうなアイデアが浮かんだので、個人で作れるシンプルなものから着手することに。
言語は、PHP、ActionScript(Flash)、Pythonを利用する予定です。
色々触ってきて良かった。
どの言語も適材適所。仕事ではこういう言語を利用する機会があまりないので、楽しんで作ることにします。
mash up award 3rd に向けて開発に着手しました。
とりあえず、3つほどいけそうなアイデアが浮かんだので、個人で作れるシンプルなものから着手することに。
言語は、PHP、ActionScript(Flash)、Pythonを利用する予定です。
色々触ってきて良かった。
どの言語も適材適所。仕事ではこういう言語を利用する機会があまりないので、楽しんで作ることにします。
IPAがセキュア・プログラミング講座を改訂していました。
従前は、ソフトウェア開発工程における下流の工程において、セキュリティ脆弱性が発見され、それらについて対処されることが多かった。しかし、作り込まれた脆弱性によっては、容易には修正できないものもありうる。また、たとえ修正できたとしても、不経済な事態になってしまう。
下流の工程においては、取り返しがつかない脆弱性をもってしまわないように、するためには、上流工程(要件定義、設計)から脆弱性対策の論点を意識できるようにする必要がある。
セキュリティは超重要。
そんなこと誰でも分かっているよと良いながら、XSS対策もままならないサイトが多数存在するのも事実です。
今度の改訂では、開発の上流行程からセキュリティに関する不具合をつぶせるようになっているみたいですね。
SIerとして働いていると、実装をしたことがないSEが設計を行い、実装するときにプログラマが苦労するというシーンをよく見かけます。
「こんな設計じゃうごかねーよ」というプログラマに、「こんな実装へぼすぎる」と嘆く設計者。
なんか三谷幸喜監督作の「みんなのいえ」を彷彿とさせます。
やはり上流工程やる人間は下流工程の実作業や苦労するポイントを身をもって知っておくべき。
「そういう仕事がまわってこない」と嘆く前に、家のPCに開発環境導入して日曜プログラミングでもためしてみりゃ良いんです。知識だけじゃなく、実際に試してみて、自分の中の知識を生きたものにしていく。それでこそプロフェッショナルなんじゃないかと。
まあ他の人はどう思うか分かりませんが、少なくとも自分自身はそういうスタンスで仕事に臨みたいですね。

のほほんと………
ドーナッツ?
すごいなGoogle がガジェット開発者に投資を始めるようです。
Google、ガジェット開発者への投資を行うGoogle Gadget Venturesを開始 | ネット | マイコミジャーナル
Google Gadgets Venturesによるガジェット開発者への投資は、以下の二種類に分けられている。
- 開発の補助金(Grants)
ガジェット開発者に対し、ガジェットの更なる改善を目的として交付される。交付される金額は$5,000。参加資格は、「Google Gadgets Directory」内にガジェットを作成し、週250,000ページビュー以上を記録すること、となっている。希望者は、1ページからなる提案書をメールする必要がある。提案書には、希望者のメールアドレス、GoogleガジェットのURL、アイデアの詳細、ガジェットの改善に必要な時間の見積もりを記載する。こちらは、年に20件から40件程度の採用を予定しているとのことである。- 起業への投資(Seed Investments)
Googleガジェットプラットフォームを基盤として、新たなビジネスを立ち上げようとする者に対し、$100,000の投資が行われる。こちらを希望する場合は、ガジェットを使用したビジネスプランについての詳細をメールする必要がある。新規企業、既存企業に関わらず、上記の開発補助を受け取ったことのある企業が参加資格を得る。年に2件から5件程度の採用を予定しているとのこと。
ガジェットを作成済みで、そのガジェットが週に250,000ページビューを獲得していなければ、開発の補助金$5,000(60万円くらい?)はもらえないんですね。
国籍は不問のようですが、結構ハードルは高そうです。
一方で企業の方は、アメリカで起業できなければ融資は受けられないみたいです。
そういえば、Google Developer Day 2007 のときに、「今年はガジェットの年です」とか言ってました。
日本での iGoogle ガジェットコンテストもその一環なんでしょうね。
海外では利用者が多いガジェットですが、日本ではまだ今ひとつ盛り上がっていない気がします。
一発打ち上げるなら今かな。
Sun × Recruit mash up award 3rd が早くも開催されます。
Mash up Award 3rd - 開催概要 - サン・マイクロシステムズ
今度の award はまた規模が一段と大きくなっています。
なんと優勝賞金 100万円! これはでかい!
さらに利用可能APIは70以上。前回以上におもしろそうなAPIが提供されています。
サーバなどの実行環境も提供されるようで、これまで「アイデアはあるけど、サーバがないんだよねぇ」と二の足を踏んでいた方も参加しやすくなってます。
この開催発表に合わせて、リクルートさんが「つくるぶ」というサイトを公開しました。
開発者の情報交換コミュニティサイトですね。
award に向けて有効活用できそうです。
ちなみに、先日のmash up award 2nd の座談会記事も公開されています。
つくるぶ -デベロッパー応援プロジェクト | MA3応援座談会
こんな日に、はてなブックマークで「もっと失敗しよう:江島健太郎 / Kenn's Clairvoyance - CNET Japan」というエントリがホッテントリ入りしてました。
ものごとはホップ・ステップ・ジャンプなんだから、今ホップさえしてない人は、小さくてもいいから、まず跳んでみようよ。
まさしくその通り。
僕は早速参加申し込みしちゃいました。
締め切りは9月10日。良いもの作ります。はい。
今週号のイブニングの「ヘルプマン!」に熱いシーンがありました。(国家資格という紙切れを何が何でも手に入れろ! --- ヘルプマンより (くりす流))
国家資格取る取らないの話だったので、これはSEにも当てはまるのではと思いテンプレ化。
元ネタは上記リンク先です。
百 「資格資格資格……。試験試験試験……。
一体それが何になるんだよ!!
実装するときにメモリのヒット率を求めたりするか?
コードを書くのに会計の知識やら法律に関する知識が必要か!?」仁 「必要なんだよ。
情報処理技術者の資格がなければ働けなくなるんだよ。
どんなにプログラムが好きでも
どんなに腕利きのプロジェクトマネージャでも
企業に勤めるSEも在宅勤務のプログラマも
資格がなけりゃ働かせてもらえねぇ
法律はそういう方向で動いているんだ……」百 「何で……
んなことになってんだよ」仁 「それだけ出来上がったシステムの質が悪いってことだ……」
百 「それと資格と何の関係があんだよ!
資格もっててもろくでもない奴いっぱいいるじゃん!」仁 「現場から離れたくなきゃ一生に一回くらい勉強しろ」
百 「国会議事堂の前でうんこしてやる」
仁 「殺すぞ…
もう一度オレに同じことを言わせたら……
勉強したくてもできねえ体になるぞ」百 「(やばい…仁がキレる…)
わかった!
学校へ行く
勉強する!
あー早く学びてえなぁ!!!」仁 「とんでもねぇ時代が来るんだよ
わかってんだろ?
ああ?単価が安くて優秀な外国人プログラマが溢れ出す…
システム予算の大幅削減
目減りする給料
不況で従業員を支えきれない企業……
システム構築現場からの人材の流出どんくさい お国のクソ政策の谷間で
もがき苦しむ年寄りを指をくわえて見ているのが
いやなら…お国と正々堂々戦争をしたいなら
国家資格という紙切れを何が何でも
手に入れろっつってんだよ
ああ!?」
どうでしょうか。
まあ、こんなこと書きながら、僕自身基本情報しか取ってなくて、しかもあまり資格を取ることに対して積極的じゃなかったりします。
介護業界みたいに法律で縛られるのなら話は別ですが。

介護の現実が良く描写されています
あなたの すぐそばの事
老人介護とはそれPla! な人には常識な話かもしれませんが、正規表現のお勉強と言うことで、amazon の本のベストセラーページを取得して、正規表現でランキングデータを抜き取って、JSON形式にしてファイルに保存するCGIを作りました。
本当はファイルに出力するようにしたのは、1時間に1回しか後進されない静的なページの情報なので、こちらも静的なデータを作っておいた方が良いかと思ったからです。
で、昨日書いたように言語はPythonです。
↓こんな感じ。
import httplib
import urllib
import string
import re
def book_ranking(n):
data = urllib.urlopen('http://www.amazon.co.jp/gp/bestsellers/books/?pg='+n).read()
list = re.findall('<td align=\"center\" valign=\"top\"><a href=\"(.+?)\".+?img src=\"(.+?)\".+?alt=\"(.+?)\".+?/></a>',data)
return list
JSON = '['
pages = ['1','2','3','4']
for page in pages:
list = book_ranking(page)
i = 0
for tmp in list:
if i != 0:
JSON += ','
JSON += '{ "uri":"' + tmp[0] + '" ,"imgpath":"' + tmp[1] +'" ,"item":"' + tmp[2] + '"}'
i = i + 1
JSON += ']'
f = open('./bookranking.txt','w')
f.write(JSON)
f.close()
ランキングは4ページに渡って100位まであるので、ループで回して取得しています。
↓得られたファイルはこんな感じ
http://www.chrisryu.com/ranking/bookranking.txt
思っていた以上にさくっと作れました。
正規表現って面白いです。
mash up award や google ガジェットコンテストなんかの準備のため、ちょっとした cgi を書くことに。
これまでは Perl で書いていたんですが(といっても、Webサービスに接続した結果をそのまま出力するだけの proxy 君的な cgi だけでしたが)、ちょっと Python で書いてみようかと思い立ちました。
ローカルでスクリプトを作成し、ローカルPCのapache 上で動作させるとうまく動きました。
お、やった、簡単簡単なんて浮かれて、サーバへアップロードしたら動作しないんですね。
なんでだろ、と思って調べてみたら、私 mod_python で動くスクリプトを作ってました。あー恥ずかしい。
ローカルPC 上のapache では Trac が動作しているので、それ用に apache + mod_python の環境を作っていたのでした。
僕の借りているサーバは python は cgi モードでしか動作しないってことをすっかり忘れていましたよ。
ってことで、やりなおし。
cgi を配置するディレクトリに、以下のような記述を書いた .htaccess を作成。
AddHandler cgi-script .py
でもって、スクリプトの頭にpython へのコマンドパスを書いて、権限を755 にして、これでOKと思って実行したところ、またしてもエラー。
今度は改行コードが問題でした。
\r\n じゃだめで、\n になっている必要があったんですね。
これを修正して再度アップで、なんとか動作しました。
いやはや、基本が分かってないと色々苦労することが多いですね。
みなさん、仕様書は何で書かれてますか?
アルファルファモザイクより「仕様書をExcelで書くんじゃねぇ」
はてなブックマーク - アルファルファモザイクより「仕様書をExcelで書くんじゃねぇ」
私の会社では、仕様書のテンプレートがExcelとWord形式で管理部門から提供されているのですが、利用されているのはExcelが多いようです。
個人的に思う仕様書として重要な要素は、まず「書かれている内容」、次に「意味・意図が適切に伝わるかどうか」、そして「メンテナンス・運用のしやすさ」かなぁ。
これが守れていれば、何で書かれていたって良いと思います。
何を選択するかは、当然、システムの規模や内容にもよってくるわけで。
数名で作り上げ、運用もそのメンバーでやるシステムなら、仕様書は手書きで、重要事項はWikiへという運用でも大丈夫でしょうし、数百名が関わるような大規模PJでは、電子データで運用しなければ情報がうまく伝わらないでしょうし。
一番ナンセンスなのは、「いつもそうだから」という理由で、何も検討せずにフォーマットを決めてしまうことかなと思います。
Word と Excel どちらで書いてもそれほど変わらないと言う場合は、僕はWordを選択するかなぁ。
印刷のときに変な気遣いをしなくて良いというところが好きです(とはいえ、たまに貼り付けているオブジェクトがバグることがありますけど)。
ドキュメントがメンテナンスしづらいと、ドキュメントと画面の乖離がどんどん進んでいくので、Web系のシステムならいっそ画面に書き出したら良いんじゃないかと思い↓こういうのも作ったことあります。
showyou --- HTML に Ajax でドキュメントを出力 (でぃべろっぱーず・さいど)
showyou-0.0.2 Release (でぃべろっぱーず・さいど)
最終的に一番頼りになるドキュメントはソースコードだと思うので、ひたすらテクニックに走るだけじゃなく、後から見て分かりやすく、誤解を生まないようなロジックやコメントを書いて欲しいです。
↓笑い話として、こんなソースコードの例が良く挙げられますよね。
// hoge が 5 より大きいとき処理する。
if ( hoge < 5) {
hoge += 10;
}
数日前にはてブでホッテントリになっていた↓これ。
僕が5月の頭に作った↓これとよく似てるんですよね。
超簡易ほってんとりーだ(はてなブックマーク + livedoor clip)
ぱくられたー!とか言いたい訳じゃなく(こんなの誰でも思いつく&実装できるし)、注目されたアプリと注目されなかったアプリでどこがどう違うのか、どこをどうすれば注目されたのか、そういう情報を得る良い機会かなぁと思います。
タイトルの付け方とか、情報の表示の仕方とか、プッシュしているポイントとか。
今後の参考にいたします。
↓ちなみにページを作ったときのエントリはこちら。
スターロジックはぶさんのSIerについての日記です。
六月水無月はぶにっき --- SIなんてつまらん仕事ですよ
六月水無月はぶにっき --- SIって最高の仕事ですよ
SIerとして納得できる部分もあり、環境によるよなぁと思うところもあったり。
ただ、最近思うのは、「ものづくり」といっても色んな立場や規模があるということ。
うん百億円、うん千億円かけた大規模システムにかかわるのも、数名でWebサービスを作るのも、同じ「ものづくり」という呼び方をするから混乱するのかなぁ。
SIerとして働いて6年になりますが、ここ数年で自分のやりたい仕事がおぼろげながら見えてきた気がします。
それが今いる会社で実現できるのか、はたまたはなから相手にされないのか。
今年来年あたりは正念場だなぁと思ったり。
ついに、というか、ようやく、というか YouTube の日本語サイトが開設されました。
パートナー企業にSkyperfecTV が名乗りをあげたようですね。
新ユーザインターフェースリリースと言い、オンライン上で動画編集できる機能のリリースと言い、YouTube 関連の興味深いニュースが連日出てきています。
いよいよ動画コンテンツの本領が発揮されるんでしょうかね。
携帯からアップロードして、編集してってことができるようにしたいと考えているようで、携帯ユーザが多い日本で新しいブームを作るかも知れません。
でも、今まで英語版のインターフェスに慣れてきた自分的には、日本語版のサイトの日本語が不自然に感じられて仕方ないんですよね・・・。
同じ気持ちの人、結構たくさんいるんじゃないかなぁ。
Yahoo! がおもしろいWebサービスを公開しました。
Yahoo!デベロッパーネットワーク - テキスト解析 - 日本語形態素解析
形態素解析については以下を参照。
GETパラメータで文字列を渡すと、名詞や品詞に分解して解析した結果をXMLで返してくれます。
これはなかなか面白いAPIですね。
アイデア次第でかなりユニークなアプリが作れそうな気がします。
例えば、自分が書いたブログのエントリを解析したりとか、「どこでもいっしょ。」のトロのように、ユーザと対話する形のミニアプリとか。
週末ちょっと触ってみることにします。
<関連ニュース>
・ITmedia Biz.ID:Yahoo!の日本語形態素解析エンジンAPIを公開
・ヤフー、文章を解析できるAPI「日本語形態素解析Webサービス」を公開:ニュース - CNET Japan
・CodeZine:Yahoo!、異質なWeb API「日本語形態素解析Webサービス」を公開(Webサービス)
・Japan.internet.com Webテクノロジー - Yahoo! デベロッパーネットワークの「日本語形態素解析 Web サービス」
YouTubeのページ右上に、「Try out the NEW (beta) version of this page!」とあって、新しいバージョンのインターフェースを試せるようになっていました。
↓こちらが旧版。

↓こちらが新版。

大きな違いは、画面上部の広告の有無でしょうか。
目に付く位置に広告がないというだけで、すっきりした印象を受けます。
また、プレーヤのサイズも一回り大きくなって見やすくなっています。
後は、3カラムレイアウトが2カラムに変更されていたり、メニュー部分がすっきりしていたり、右側の情報表示部分のグルーピングが整理されていたりしますね。
画像からは分かりませんが、share というところをクリックするとdiggやdel.icio.usに投稿できたり、 customize this embed をクリックすると、自分のページに表示するプレーヤに関連動画を載せるかどうかを選択することができます。
Google による買収後、それほど大きな変化のなかったYouTube ですが、ぼちぼち買収の影響が出始めてきているようですね。
※新インターフェースはURLの後ろに&v3を付ければ試すことができます。
マッシュアップのポータルサイト「マッシュペディア」が、「マッシュアップ・カフェ」というイベントを企画しているようです。
オフラインイベント「マッシュアップ・カフェ」開催のお知らせ : お知らせ一覧 : MASHUPEDIA - マッシュペディア - : Web API x Mashup
イベントの趣旨としましては、Web API提供企業様、Mashup開発者の方をお呼びして、その魅力を語っていただく「マッシュアップ・カフェ」と、Web API企業様やWeb開発者の方々同士の交流を深めていただく、マッシュアップ・バー(懇親会)の二段構成になっています。
昨日、他の開発者の方との交流を通じて刺激を受けた僕としては、こういうイベントがもっと開催されれば良いなぁと思ったり。
mash up award 3rd ももうすぐ開催されますし、位置情報を使って何かアプリを作ってみたいなぁと言う方は是非ともご参加ください。
mash up award 2nd の座談会に参加してきました。
もうすぐ mash up award 3rd が開催されるらしく、開催の発表にあわせて座談会の内容も公開されるそうです。
↓mash up award 2nd のときも前回受賞者を集めて座談会が開かれてましたね。
僕を含め8名の方が集まって、プログラミングを始めたきっかけとか、受賞後の周りの評価とかを楽しくお話ししました。
皆さん、バックグラウンドやmash up に対する想いも様々で、個人的にかなり刺激になりました。
さて、今年の夏は プログラミングコンテストが数多く実施されます。
・mash up award 3rd
・iGoogleガジェットコンテスト
・Amazon.co.jp アソシエイト・プログラム: コンテスト
・マッシュアップコンテスト - タグ検索ならTAGGY
・トップ-Drecom Award on rails 2007
個人的に上の3つは何か出してみようかなと思ってます。
今年の夏は忙しくなりそう。
CNET に Twitter に関する2つの翻訳記事が掲載されていました。
「Twitter」擁護論 - CNET Japan
私が「Twitter」を受け入れられない理由 - CNET Japan
Twitter擁護論の人は、
根拠や理由にとらわれずにメッセージを公開できる気軽さ、それがTwitterのよいところだ。
なんて言い、一方受け入れらないひとは、
Twitterは、友人のみならずウェブサイトをうろついて赤の他人のくだらない物思いに目を通すひまのある人間たちに向けて、頭に浮かんだもろもろを思いつくまま伝える手段となるべく作られたものだ。
なんて言ってます。
僕もTwitterのアカウントは作ってみたものの、長続きしなかったタイプ。
どうもあれのおもしろさが分かりかねるんですよね。
まあ、一番の理由はTwitterでコミュニケーションを取るような友達が少ないからなんだと思います。
あと表示が重たいので、気軽に書き込もうって気になりにくいんですよね。
逆に、Twitter 上に自分が発言できるコミュニティがあって、表示の重さを回避できる、或いは気にならない人は、Twitter にはまれるんだろうなぁ。
日本でも Twitter クローン的なサービスが乱立してましたが、今どうなんでしょう。
Google マップの航空写真が更新されたようです。
Google Japan Blog: Google Earth と Google マップの航空写真を更新しました
地方都市を中心に更新されたとか。
今回、日本国内では、旭川、秋田、郡山、宇都宮、長野、富山、高知、宮崎の 8 地域の画像が更新されています。
・・・あれ、我が郷土鹿児島は・・・。
↓前のままだ!
早く鹿児島も更新してくれないかなぁ。
鹿児島と言えば、なぜか桜島の一部だけやけに高解像度なんですよね↓。
なにか理由があるのかしら。
Yahoo! が検索結果にソーシャルブックマークの登録人数を表示しはじめました。
ヤフー検索結果にソーシャルブックマークの登録人数を表示 - CNET Japan
今ひとつ盛り上がり感のないYahoo!のソーシャルブックマークですが(僕が知らないだけで実は盛り上がっていたらごめんなさい)、Yahoo!の検索結果にブックマーク数を表示することで、ちょっと風向きが変わるような気がします。
なんだかんだ言っても日本ではYahoo!の検索が強いですから、この結果ページから、ブックマークにたどり着いて利用し始める人も増えるんじゃないでしょうか。
はてぶやLivedoor clip とは違ったブックマークランキングになりそうで、今後の動向に興味津々です。
iGoogle の Gadget って アクセス状況や機能の利用状況を Google Analytics で追跡できます。
その辺の詳細情報は、↓こちらに詳しく書いてあります。
iGoogle ガジェットの作り方 : Google Analytics ライブラリ - WebOS Goodies
ガジェット系の規格を統一しようとしている Google のことなので、同じように mapplet の利用状況も確認できるんじゃないかと思ってやってみたら、あっさりできちゃいました。
方法は上記リンク先と同じなのですが、一応書いておきます。
<ModulePrefs>タグで囲まれている中に、<Require feature="sharedmap"/>が書いてあるので、その下に、 <Require feature="analytics"/> を記述します。
でもって、スクリプトタグの間に以下のコードを差し込むだけ。
_IG_Analytics("UA-xxxxxx-xx", "/your_trace_path");
UA-xxxxxx-xx とyour_trace_path に当てはめる値は上記リンクを参考にしてください。
これで、mapplet の利用状況が把握できます。
mapplet 自体まだ一般公開されているサービスではないので、まだまだ利用回数は少ないようです。
↓楽天トラベルmapplet はこちらからどうぞ。
平文テキストのための diff / match / patch のライブラリがGoogle code に公開されていました。
どうやら Google Docs で利用されているライブラリのようです。
google-diff-match-patch - Google Code
それぞれ以下のデモページにて試すことができます。
ダウンロードページには、java と python 、javascript のソースが置いてあります。
Google Docs での差分管理はこれを利用して実現されていたんですね。
diff を取る機会は仕事の中で結構あるので、今度使ってみたいと思います。