2008年3月23日日曜日

Python初心者が最初につまづくあれこれ

最近ようやくプログラミングと言うもののおもしろさが分かってきたので、Pythonを始める事にした。何故Pythonなのかよくわかんないけど、とりあえず蛇でかっこいいのと(実際はモンティ・パイソンが元ネタ)、レア言語ってかっこいいじゃん?みたいな感覚です。括弧がいらないってのもおもしろいところ。Lispの反対で天邪鬼っぽいとこがいいでしょ?

  • 導入編
FrontPage - Pythonのお勉強
http://python.rdy.jp/
インストールはここの最新のダウンロードの項からお好きなOSの物を

Python Japan User's Group
http://www.python.jp/Zope/

Instant Hacking
http://www.python.jp/Zope/intro/instant_hacking_jp
とりあえずインストール終わったら、チュートリアルこなそう。演習をちょいちょいっとね。

Python 2.4 ドキュメント - June 27, 2006
http://www.python.jp/doc/nightly/
あとはリファレンス見てお好きなように。

  • 初起動編
最新バージョンをインストールしたらPython Command Lineを立ち上げていじくってみる。

Hellow world!!


print "Hello world!!"


  • とりあえず詰んだ編
いきなりループ制御で詰んだ。for文は"for var in range(1,100)"みたいな感じなので"Hellow world"を10回表示させようとすると・・・


for num in range(1,10) :
print "Hello world!!", num;

IndentationError: expected anaindented block


IndentationErrorなるものが出て詰んだ。Indentation??インデンテイション・・・インデント!!そうです、for文内の命令ということを表すために、インデントを入れないとだめ。インデントで怒られるとかなんか新鮮です。以下のように治して実行。


for num in range(1,10) :
print "Hellow world!!", num;

実行結果:
Hello world!! 1
Hello world!! 2
Hello world!! 3
Hello world!! 4
Hello world!! 5
Hello world!! 6
Hello world!! 7
Hello world!! 8
Hello world!! 9


ちなみにインデントはタブでもスペースでもいいみたい。
とりあえず飽きなければ自分がつまづいた部分を晒していこうと思います。つづく・・・?

2008年3月20日木曜日

EclipseプラグインのBIRTのまとめ

BIRT=Business Intelligence and Reporting Tools
BIRTはEclipse上で各種データベースを元に様々なレポートを出力する事ができるプラグインです。XMLを元にレポートを出せるみたいで、WebAPIなんかを使って得た情報も様々な形で加工して表示させる事ができるみたいです。(未確認)というか、そういう事をやってみたいのでちょっとまとめてみます。
最終的にはTwitterの発言や、はてブのブックマークをまとめて様々な角度から検証するレポートを出す事が目標です。

  • とりあえずリンク集
Eclipse.org home
http://www.eclipse.org/

Eclipse BIRT Home
http://www.eclipse.org/birt/phoenix/

BIRT Tutorials
http://www.eclipse.org/birt/phoenix/tutorial/

[ThinkIT] 第1回:インストールからはじめるEclipse BIRT (1/3)
http://www.thinkit.co.jp/free/tech/28/1/



BIRT Tutorial←今ここ
http://www.eclipse.org/birt/phoenix/tutorial/basic/basic05.php

2008年3月18日火曜日

OCL:defでコレクション型属性を定義する方法

OCLで新たに属性を追加するにはdefを使って定義するが、コレクションの属性を定義する場合はコレクションの型と要素の型も指定する。


def : Collection(OCLType //コレクション内部の型) = expression //コレクションを返す式


EclipseのOCLプラグインだとこうなる

OCL ocl = OCL.newInstance(ECoreEnviromnmentFactory.INSTANCE);
OCLHelper helper = ocl.createOCLHelper();
helper.defineAttribute("collection : Collection(Integer) = OrderedSet{1,2,3}"); //OrderedSet型で要素が1,2,3が作られCollection(Integer)型のcollectionという変数が定義される
//helper#define*で定義された属性や操作はこのhelperから作られたQueryでしか有効にならないので注意


属性だけじゃなく操作も定義できるのですっごい複雑なOCLを毎回書くのが面倒な場合でかつ、モデルに直接持たせるほどでもない属性であった場合、エイリアスとして定義して使うことができる。

でも、渡されたオブジェクトがCollection型であるか調べる方法がわからなず。

// 上の続きでcollectionはInteger型が入ったコレクション
collection.oclIsTypeOf(OrderedSet(Integer)) // これはダメだった

Collectionとして見るよりは、要素の集合として見てて、要素の属性もそのまま使えるから、Collectionの型を意識する必要は無いのかな?

ところで、この辺りを触ってて、OCLHelper#defineOperation()で二つ以上パラメータを持った操作を定義しても、すべてのパラメータの値が必ず最初のパラメータになるバグに遭遇して困っている。
Bugzillaで検索しても出てこず、最新版でも直ってなかったので気付いてないのかなぁ?
どなたかBugzillaで発見したら教えてください。

2008年3月17日月曜日

著作権問題をクリアしてニコニコする方法



①同サービス内における既存の著作権侵害放送番組動画はすべて削除する
こと、②新規投稿動画の監視を行い著作権侵害放送番組動画については直ちに削除する旨
の申入書を提出しましたことをお知らせいたします。



080311.pdf (application/pdf オブジェクト) から2008年3月17日に引用

先日、ニコニコ動画を運営するニワンゴの親会社であるドワンゴが放送局に対して、テレビ放送されている番組の動画すべてについて、厳格に削除対象とする申入書が出されました。

一部権利者はネット上への違法アップロードに対して譲歩とも言える発言をしているようですが、


「好意を持っていてわざわざ宣伝してくれる。そんなファンをないがしろにして著作違反だとやっていたら、ファンなんかいなくなります」



J-CASTニュース : 「らき☆すた」売れまくったのは 違法投稿が「宣伝」してくれたから から2008年3月17日に引用

著作権に関しては以前からいろんな場所で議論が行われていると思いますが、結局は「違法動画も利益に繋がる派VS著作物は権利者のものだゴラァー派」の二方による水掛け論となってしまって平行線を辿ってることと思います。
今の法律の上では著作権者の方が利用者よりも有利であり、利用の仕方が限られているのは確かなので、これ以上著作権に関する議論を繰り返してもはっきり言って無駄な気もします。
僕としては水掛け論を繰り返すよりは、新しいビジネスモデルを考えだしてそれを権利者やコンテンツオーナーに売り込んだ方がいいと思うしね。
それか、自分自身がコンテンツオーナーになって誰かの考えたビジネスモデルを取り入れて、沢山利益を上げる前例を作っちゃう。そうすれば失敗や現在の既得権益を失う事を恐れて動こうとしない大手コンテンツオーナーを動かす事もできるかもしれない。
例えばこちらのエントリーではかなり詳細に新しいビジネスモデルを提案していて、とても期待できそうです。が、実際導入しようと思うと複雑過ぎてコストがかかり過ぎるんじゃないかなとも個人的には思います。あとはカードネタを作ったユーザーが何かしら権利を主張した場合はどうなるんでしょうか?この辺りはのま猫問題のようになかなか難しいところもあるかもしれません。



「ニコ☆スタ」とはオンラインカードゲームで、アニメの有料視聴、ニコニコ動画内のクリエイターへの寄付、そしてニコニコ動画の文化の持続を全て可能にする案です。簡単に言うと、色々な商品にアニメの有料視聴するための料金を予め上乗せしよう、という案です。



ニコニコ動画公式カードゲームでアニメ有料視聴を無料に - 論理的なアイディアはまだかい? から2008年3月17日に引用

しかし、ここまで詳細に書かれているので著者のid:ronriさんはかなり本気なんだと御見受けします。他のエントリーもすごいアイデアの宝庫だし量が半端ないっ!
僕はただのしがないニコ厨でそんなに頭もよくないのでかなり単純な方法で今すぐにでも実現でき、著作権問題をクリアし、かつニコニコ動画の楽しさを損なわずにみんなでニコニコする方法を提案してみようと思います。

コメント専用動画 : ニコニコプラン


ニコニコ動画で観る動画がただのローカル上で再生する動画より面白い理由はいくつかあると思いますが、やっぱり一番の理由はコメントが付いている事だと思います。そしてそのコメントが動画と同期しており、まったく違う時間に観た人と同時に見ているかのような擬似的感覚を味わえたり、独りで観た場合見逃してしまうような細かい点についてもコメント(突っ込み)によって気付かされる事も多々あります。(何回動画を繰り返し観ても中毒じゃないという上級ニコ厨のみなさんにはわかりきった事ですね><)

そこでコメント専用動画を作って、そこにみんなでコメントをするというのはどうでしょう?

動画の内容はもちろん著作者の権利を害さないもので、対象となる映画やアニメ、ドラマなどの動画の長さだけ合わせてあります。その動画に対してコメント及び突っ込みを入れる、もちろん弾幕も。そして本編の動画は各自がテレビ放送を録画するなり、DVDを買うなりレンタルするなりして合法的な手段を使って入手したものを再生しつつ、コメント専用動画を流す。
これなら、権利者の権利は害してないし、DVDの利益分も権利者に行くだろうし、視聴者としても新たな動画の楽しみを満喫でき、なおかつ製作者も視聴者のダイレクトな反応が見る事ができてこれからの動画製作に活かせて、一石三鳥だと思います。
問題としては、
  • 動画とコメントの同期を上手く取れ無い場合がある。
  • ニコニコ動画のように動画上にコメントを表示できない。
などが挙げられると思いますが、一つ目はコメント用動画にここからオープニング、ここからAパート、ここでアイキャッチなど著作権に触れない範囲で同期させるための動画の情報を用意する事で、手動だけどある程度容易に動画を同期できるようになると思います。
二つ目は、コメントの情報を読み取って表示するようなプレイヤーを誰かが開発するのを待つんです!(他力本願w)もちろんわざわざ動画上に表示させなくてもいい人もいるでしょうし、ニコニコがそういったクライアントソフトを提供してくれるといいのですが・・・。
理想としてはEPG(Electronic Program Guide:電子番組ガイド)から番組情報を取得して自動的に番組用コメント専用動画が用意されるようになればいいなぁ。2ちゃんねるの実況板がニコニコ動画の起源だけど、実況板で番組用スレッドを立てる感覚でコメント専用動画が用意する事ができれば理想だなぁと感じます。
実際にテレビ番組欄@2chではEPGを利用しているようですし。

テレビ番組欄@2ch - PukiWiki

正直に言えば、僕はニコニコでコメント付きのアニメを観るようになるまでは、アニメなんてほとんどみなかったのに、今ではどっぷりはまってDVD買ったりするまでになりました。これも、多彩なコメントで僕を洗脳してくれる上級ニコ厨のみなさんのおかげなのですが、逆に言うとコメントが付いてないアニメには魅力を感じてなくて、ニコニコ動画が無ければ毎週欠かさず観るようなことにはならなかっただろうと思います。それがこういった例もあるのですから(たった一例だけどw)コンテンツオーナー側も既得権益の死守にばかり力を入れるのではなく、みんながニコニコできる新しいビジネスモデルに少しでも注目していただいて、権利者、視聴者、製作者それぞれの観点から利益を得られる環境ができればいいなぁと思う。
(念のため書いておきますが、僕は違法動画のアップロードを擁護してるわけではありません。現在の法律上は違法なのですから、運営者はしかるべき態度を取るべきだと思っています。まぁ、それによって僕がコンテンツを買う機会はなくなると思いますが・・・)

深読みすると最初に書いたドワンゴの強気な姿勢は、コンテンツオーナーから歩み寄らせるためのカードなのかなぁとも思うですが実際はどうなんでしょうか?
まだまだ、ニコニコ動画からは目が離せませんね!

3月18日追記:
ちょっと検索したらまったく同じような事を先立って書いてるエントリーを見つけた。
ほとんど同じような事が書かれていてびびった。う~ん・・・、自分は意識しないうちに読んでたのかなぁ。
版権動画でニコニコする方法を考えてみる ver.2 - ブログ執筆中