<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xml:lang="ja" xmlns="http://purl.org/rss/1.0/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
	<channel rdf:about="http://www.thinkit.co.jp/rss/rss10.xml">
		<title>Software Developer's Think IT</title>
		<link>http://www.thinkit.co.jp</link>
		<description>DESCRIPTION</description>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.impressit.co.jp/inside/?p=659" />
				<rdf:li rdf:resource="http://www.thinkit.co.jp/article/154/4/" />
				<rdf:li rdf:resource="http://www.thinkit.co.jp/article/159/4/" />
				<rdf:li rdf:resource="http://www.thinkit.co.jp/article/157/4/" />
				<rdf:li rdf:resource="http://www.thinkit.co.jp/article/151/4/" />
				<rdf:li rdf:resource="http://www.thinkit.co.jp/article/158/4/" />
				<rdf:li rdf:resource="http://www.thinkit.co.jp/article/153/4/" />
				<rdf:li rdf:resource="http://www.thinkit.co.jp/article/152/4/" />
				<rdf:li rdf:resource="http://www.thinkit.co.jp/article/160/1/" />
				<rdf:li rdf:resource="http://www.thinkit.co.jp/article/156/4/" />
				<rdf:li rdf:resource="http://www.thinkit.co.jp/article/154/3/" />
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.impressit.co.jp/inside/?p=659">
		<title>Think IT RSS変更のお知らせ</title>
		<link>http://www.impressit.co.jp/inside/?p=659</link>
		<dc:date>2008-12-08 17:00:00</dc:date>
		<content:encoded><![CDATA[<div>平素は当サイトをご利用いただきまして、誠にありがとうございます。<br />
Think ITでは12月1日より、Think IT RC版（http://thinkit.jp/）にて最新記事を公開しております。それに伴い<br />
RSSが変更になっております。<br />大変お手数をおかけいたしますが、RSSの変更をお願いいたします。<br />
<br />
<br />
・RSS 1.0<br />
http://thinkit.jp/rss/index.xml<br />
・RSS 2.0<br />
http://thinkit.jp/rss/rss20.xml<br />
・ATOM<br />
http://thinkit.jp/rss/atom.xml<br />
<br />
<br />
今後ともご愛顧のほどよろしくお願いいたします。<br />
<br />
</div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.thinkit.co.jp/article/154/4/">
		<title>作品を作ってみたいあなたへ - 【現場に学ぶWeb動画配信】パペットアニメーションの世界</title>
		<link>http://www.thinkit.co.jp/article/154/4/</link>
		<description><![CDATA[<div><a href='http://www.thinkit.co.jp/article/154/4/'><img src='http://www.thinkit.co.jp/images/article/154/4/15441.png' /></a></div><div>今回は、多様な可能性を秘めたアニメーションの今後についてお話したいと思います。</div>]]></description>
		<dc:date>2008-11-28 11:00:00</dc:date>
		<content:encoded><![CDATA[<div><h1>キャラクターの魔法</h1><p>　人は逆さになると、血流を促したり、脳を活性化したり精神を調和する効果があります。腰痛やヘルニアにも良いです。禅僧やヨガ修行僧も、瞑想（めいそう）状態に入る時に逆立ちをします。瞑想（めいそう）は心の安らぎ、心と身体の一体感、ストレスや一日の疲れを取り除くことができます。現代人にとって逆立ちは重要性の高いものであると言えます。<br />
<br />
　このことは最近知ったのですが、偶然にも筆者の作品に「さかだちくん」という2Dアニメーションがあります。<br />
<br />
　さかだちくんは頭の上に身体がついていて、立ち姿は逆立ちをしています。10歳のときに初めて逆立ちできるようになり、それからずっと逆立ちで生活しています。さかだちくんは柔道着を着ているのですが、これは筆者が中学時代、柔道をやっていたことからヒントを得ました。<br />
<br />
　なぜ逆立ちさせることにしたのか。筆者が小学生のときに見ていたドラマ「暴れはっちゃく」がふと頭をよぎったからでした。何かに悩み、その答えを導き出すとき「はっちゃく」は逆立ちをして解決するのです。<br />
<br />
　筆者もそれにならってらくがきを逆立ちさせることにしました。さかだちくんはその容姿のインパクトですでに悟りを開いているような存在感を放っています。人間の完成型と言える、象徴（シンボル）のようなものです。<br />
<br />
　筆者自身は逆立ちをする習慣を持っていませんが、これをアニメーションにすることは、現代人にとって大いに役立つものになるかもしれません（具体的にどのように役立つかはよくわからないのですが）。</p><h1>三ノ函半島 - 百色旅館／100名所ジュークボックス</h1><p>　さかだちくんを制作したあと、リチャード・ブローティガン著「西瓜糖の日々」、ガルシア・マルケス著「エレンディラ」の世界のように、構想していた架空の世界（立体ではない、もう1つの世界、3Dと2Dとの差異）を創作し始めました。<br />
<br />
　それが「三ノ函半島 - 百色旅館／100名所ジュークボックス」という作品で、30年ほど前のビクターのジュークボックスを改良し、音楽ではなく100種類の映像作品を見ることができるというものです。<br />
<br />
　『景勝地で知られる「三ノ函半島」は「100の名所」があり、今では半島自体が残像となりまして「幻想半島」とも呼ばれております。100の名所があるのにちなんで「百色旅館」と改名した当館は創業170年の歴史ある旅館としてみなさまに親しんでいただいております。この地でしか見る事のできない「ピンクのドロドロ」はときどき大空から垂れ流されます。昔の人はそれを「天からのお糞さま」と呼び、信仰しました。ドロドロを独自の方法で採取、ピンクゲルマ温泉として当館の源泉となりました。温泉効果は～肩こり、腰痛、リウマチ、まれに予知能力を持つ効果もございます。三ノ函半島はここでしか見ることのできない「さむらいイカ」の生息地でもあります。「文豪八釜磯辺」がこの地を好み、当館を宿泊場としていたことでも有名です。』<br />
<br />
　「地球のはぐれ方」という本の中で村上春樹さんは、日本の都市が平準化し、衛生化されていってしまうことは「僕ら自身の内部にある古典的異界＝暗闇」に次々に照明があてられ、その固有の暗がり性が失われ、やがて消失していくということを書いています。それは「三ノ函半島100名所」を作るうえで重要なキーワードであり、「古典的異界＝暗闇」を持ったアニメーション作品となっています。</p><div><a href='http://www.thinkit.co.jp/article/154/4/'><img src='http://www.thinkit.co.jp/images/article/154/4/15441.png' /></a></div><div><a href="http://www.thinkit.co.jp/article/154/4/2.html">次のページへ</a></div></div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.thinkit.co.jp/article/159/4/">
		<title>実例！キャッシュの仕組み - 【深きプログラミング言語】続・アルゴリズムで頭の体操</title>
		<link>http://www.thinkit.co.jp/article/159/4/</link>
		<description><![CDATA[<div><a href='http://www.thinkit.co.jp/article/159/4/'><img src='http://www.thinkit.co.jp/images/article/159/4/15941.png' /></a></div><div>ハッシング＋リンクトリストの組み合わせは実際どのようなところで使われているのだろうか。</div>]]></description>
		<dc:date>2008-11-28 11:00:00</dc:date>
		<content:encoded><![CDATA[<div><h1>ハッシング＋リンクトリスト</h1><p>　「第3回：ソースでわかる！ハッシング（http://www.thinkit.co.jp/article/159/3/）」でハッシングとリンクトリストを組み合わせたものを紹介しました。今回はそのプログラムを紹介しますが、実はその本体はこれまでに紹介したものばかりです。1本のリンクトリストを扱うプログラムは第1回に紹介しました。これをハッシュ値が同じもの同士をひとつのリストにするようにして、複数のリストを作って管理するのがこの方法です。<br />
<br />
　第3回の最後にハッシングとリンクトリストを使ったプログラムのinsert()関数を紹介しましたが、ハッシング機能のモジュールの全体を図1-1に示します。ハッシュ関数h()のほかに、このハッシュテーブル＋リンクトリストの構造を使った登録insert()、検索search()および削除delete()の機能を加えています。<br />
<br />
　テストプログラムを含めたプログラム全体はこちら（http://www.thinkit.co.jp/images/article/159/4/15941.zip）からダウンロードできます（15941.zip/2 KB）。<br />
<br />
　hash.phpについて少し説明します。はじめにllist.phpをインクルードしています。これはリンクトリスト機能を使うためです。ただ、insert()などの関数名がダブらないように、list_insert()のように名前を変えたことについては、上で述べた通りです。<br />
<br />
　次に define() があります。<br />
<br />
define( "ARRAY_SIZE", 13 );<br />
<br />
　第3回のハッシュ関数ではハッシュ値を求めるために最後に35で割って、その余りを求めました。35は対象としたデータの総数です。実際には衝突が起こります。また、その衝突をリンクトリストで「吸収する」わけですから、この数はもっと少なくても構いません。ここでは13にしました。この数値については後でまた説明します。この値は何カ所かで使うのでdefine()を使って定義しています。<br />
<br />
　次の関数insert()の中身は次のようになっています。<br />
<br />
$hashval = h( $key );<br />
list_insert( $array_of_anchor[$hashval], $key, $value );<br />
<br />
　list_insert()はアンカーの位置（アンカーの配列のインデックス）を決めるためにハッシュ関数を呼び出しますが、あとはリスト操作関数を使うだけです。ほかの関数についての説明は不要でしょう。<br />
<br />
　テストプログラムを図1-2に示します。対象のデータをinsert()で登録して、その結果を表示するだけです。これを実行した結果が図1-3です。ハッシュ値ごとにリストがどのように作られているかがわかるでしょう。<br />
<br />
　図1-3を見ると、35 個の要素がほどよく分散していることがわかると思います。いかがでしょう。衝突が起こっていますが一番長いリストでも要素数は6になりました。</p><h1>ハッシュ関数再考</h1><p>　先の例ではハッシュ関数の最後の割り算のために13を使いました。中途半端な数値に思えると思いますが、この数値にはわけがあります。この値を使ったのはこの数が素数だからです。興味ある読者は、この値を変えて実験して見てください。分散の様子が変わることがわかると思います。例えば14を使うと、ハッシングのグループが増えるのでより分散するように思えますが、実際には偏りは大きくなることがわかります（図1-4）。<br />
<br />
　素数で割った余りが分散することはよく知られています。ちなみに、素数のいくつかを紹介します。これらの値で試してみてください。<br />
<br />
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73,<br />
79, 83, 89, 97<br />
<br />
　もちろん、結果がほどよく分散するかどうかは対象データの値（文字列）に依存しますので、素数で割り算した値をハッシュ値に使うのが最善であると言うことはできませんが、簡単で性能のよいハッシュ関数を設計するヒントにはなるでしょう。</p><div><a href='http://www.thinkit.co.jp/article/159/4/'><img src='http://www.thinkit.co.jp/images/article/159/4/15941.png' /></a></div><div><a href="http://www.thinkit.co.jp/article/159/4/2.html">次のページへ</a></div></div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.thinkit.co.jp/article/157/4/">
		<title>等価変換型プログラムをかじる - 【深きプログラミング言語】なぜプログラムを書くのか？</title>
		<link>http://www.thinkit.co.jp/article/157/4/</link>
		<description><![CDATA[<div><a href='http://www.thinkit.co.jp/article/157/4/'><img src='http://www.thinkit.co.jp/images/article/157/4/15741.png' /></a></div><div>現在研究中の等価変換型プログラミング（Equivalent Transformatio）について解説する。</div>]]></description>
		<dc:date>2008-11-27 11:00:00</dc:date>
		<content:encoded><![CDATA[<div><h1>基礎理論からわかること</h1><p>　いつの間にかねじれてしまった宣言型プログラミングの本質をあらためて考えてみると、本当にやりたかったことは、問題の定義とその解法を分離して、それぞれを独立して理論化していくことだったと考えられます。<br />
<br />
　宣言型プログラミングは、仕様と実装を同一視するため、問題の定義に解法が深く侵入してしまい、分離不可能なものとなっています。そのため、問題ドメインごとに、効率化のためのさまざまなデータ構造と、それを扱うための手続き（制約ソルバー）が拡張された、多くの言語が次々と開発されるようになりました。結果として、命令型プログラミングと同様に、まとまりに欠ける混迷状態となってしまっています。<br />
<br />
　プログラミングという概念が、より広く、より複雑なものになってきているのですから、どこが一番上のレイヤーで、どこが一番下なのかということは一意に決まりませんし、決めるべきではありません。また、問題ドメインが多様化してきているのですから、プログラミングの基礎となる理論は、特定の問題ドメインに依存しない一般的なものであることが望ましいと言えます（図1）。</p><h1>等価変換型プログラミング</h1><p>　さて、そのような理論的枠組みを構築するためには、プログラミングをどのように位置付けて考えれば良いのでしょうか？<br />
<br />
　ここで1つの可能性として、等価変換（Equivalent Transformation；ET）に基づく問題解決の枠組みを紹介します。もちろん、これが絶対的な答えというつもりはありませんし、より良い枠組みがありましたら、ぜひ筆者に教えていただきたいところです。<br />
<br />
　ETパラダイムはまだ歴史が浅く、入門書や教科書などは整備されていません。論文はたくさん出ていますが、研究者以外の方々にそれを読めというのは乱暴ですし、ハードルが高いのではないかと思います。正直なところ、今回の連載のような一般のメディアに紹介するのはまだ時期尚早なのではないかとも悩みました。しかし、この理論からは多くの示唆が得られると考え、何らかの参考になることを願い紹介させていただきます。<br />
<br />
　とはいえ筆者自身は一介の学生にすぎないので、フォローできている理論の範囲はとても限定されたものです。また、間違いや誤解、理解不足な点も多く存在すると思います。以下は完ぺきな解説ではなく、あくまでも現時点での私なりの理解だということをあらかじめお断りさせていただきます。<br />
<br />
　ETパラダイムは、もともとは90年代初頭に北海道大学で行われていた、コンピュータに自然言語を処理させるための基礎研究に端を発しています。本質的にあいまいである自然言語をコンピュータに理解させるためには、具体例からのルール抽出、ルールの最適化やそこからのプログラム生成、制約充足問題の並列処理などが複雑に絡み合った、極めて広範囲にまたがる高度なプログラム構築技術が必要とされたからです。<br />
<br />
　人間が話す自然言語は、形式的に文法が定義された人工言語（プログラミング言語が代表例です）とは異なり、解釈が一意には定まらないあいまいなものです。そのため、（コンパイラの用語で言うところの）字句解析、構文解析、意味解析などの各工程をきれいに分割することが難しく、すべてを並列に行い、ありえない可能性をそのつど枝刈りしながら進めなくては、あっという間に可能性が爆発的に増えてしまいます。<br />
<br />
　人間の知能という極めて高度なシステムを研究するAI（人工知能）分野では、常により強力なプログラミング技術が求められ、その発展を後押ししてきました。例えば「第3回：宣言型プログラミングの可能性と限界（http://www.thinkit.co.jp/article/157/3/）」に紹介したPrologも、もともとは自然言語処理研究から生まれた言語です。また、なじみ深い方が多いと思われるオブジェクト指向プログラミングも、もともとはAIの階層型の知識表現（フレーム理論）研究の影響があります。</p><div><a href='http://www.thinkit.co.jp/article/157/4/'><img src='http://www.thinkit.co.jp/images/article/157/4/15741.png' /></a></div><div><a href="http://www.thinkit.co.jp/article/157/4/2.html">次のページへ</a></div></div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.thinkit.co.jp/article/151/4/">
		<title>モバイル動画をもっと活用する - 【現場に学ぶWeb動画配信】モバイル動画の最新活用術</title>
		<link>http://www.thinkit.co.jp/article/151/4/</link>
		<description><![CDATA[<div><a href='http://www.thinkit.co.jp/article/151/4/'><img src='http://www.thinkit.co.jp/images/article/151/4/15141.png' /></a></div><div>モバイル動画の活用シーンの想定や、シーンに適した配信方法のチョイス、簡単にコンテンツとして導入する方法、今後の可能性などを紹介する。</div>]]></description>
		<dc:date>2008-11-27 11:00:00</dc:date>
		<content:encoded><![CDATA[<div><h1>写真で作れる動画コンテンツ</h1><p>　前回（http://www.thinkit.co.jp/article/151/3/）、「携帯動画はリッチコンテンツです」と紹介しましたが、そうはいってもいきなり映像制作にかける予算の捻出（ねんしゅつ）は難しいかもしれません。そこで、品質を損なわず動画コンテンツを作る方法としてフォトスライドショーをお勧め致します。<br />
<br />
　これは、Adobe Photoshopのような画像編集アプリケーションであればたいてい付加されている機能で、安価なソフトでもかなり品質の高いトランジション（場面転換）等を使用してスライドショーを演出できるので、とても利用価値は高いと思います。<br />
<br />
　あらかじめ使用する画像（写真）にテキストテロップなどを書き込んでおけば、必要な情報の補足もできて効果的です。さらに、BGMを入れてムービーファイルに書き出してくれるアプリケーションも多くあります。これにナレーションを加えることができれば本当に十分な動画コンテンツが作れると思います。<br />
<br />
　ただし、結局は使用する画像（写真）のクオリティーが大きく影響します。理想はプロのカメラマンが撮影した素材、せめて構図を考えられた画像を用意してみてください。そうすることでフォトスライドショーでも十分なクオリティーの動画を制作することができると思います。</p><h1>動画コンテンツならではの利用方法</h1><p>　では、どのようなコンテンツを動画にすることで大きな効果を得られるか考えてみましょう。<br />
<br />
　例えば、携帯サイトの中で写真を使って紹介したい媒体が縦に大きいもの（建築物、風景）や、横に長いものであったり、位置関係を伝える要素（大きな商品の中にピンポイントで見せたい個所）があった場合、構図を変えた何枚もの写真を用意する必要があります。<br />
<br />
　そして携帯サイトでは1ページ内に表示できる画像データの容量に制限があるため、同じページ内で多量の画像を表示することはできません。<br />
<br />
　つまり、何枚もの写真を使用して概要を詳しく伝えたい時、1ページ内には小さなサムネイル画像を多用し、クリックして大きな写真を表示させることでユーザーに見てもらえるように工夫されるかと思います。<br />
<br />
　しかし、それではユーザーは拡大写真を見るために何度も別ページへ移動しなくてはいけません。そういったユーザー遷移がこれからは「ナンセンス」と言われてしまうかもしれません。<br />
<br />
　例えば、上記のような例に動画を使ってみてはどうでしょうか。大きな建物を足元から最上階まで近距離で迫力をもって見せたい時は、カメラワークで一連の映像で見せることができます。横に長い媒体でも同じです。大きな媒体のある一部を拡大して見せたい時は、ズームワークで見せることができるので位置関係も加えて見せることができます。<br />
<br />
　さらにナレーションで音声による詳細が補足されていれば、動画（映像）を見ているだけであらゆる情報を得ることができます。しかもユーザーは、動画をダウンロードするために数秒待つだけで後は視聴するだけです。何度もページを移動させる煩わしさがなくなります。<br />
<br />
　上記にあげた例は抽象的すぎたかもしれませんが、伝えたかったのは、動画はその中で被写体を移動することができ、場面を展開することができるということなのです。<br />
<br />
　小さな携帯電話での操作です、ボタン操作も最小限で十分な情報を伝えられるメリットを最大限に生かして、既存のどのコンテンツを動画コンテンツに置き換えると効果的であるか考えてみると良いでしょう。</p><div><a href='http://www.thinkit.co.jp/article/151/4/'><img src='http://www.thinkit.co.jp/images/article/151/4/15141.png' /></a></div><div><a href="http://www.thinkit.co.jp/article/151/4/2.html">次のページへ</a></div></div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.thinkit.co.jp/article/158/4/">
		<title>言語仕様とオブジェクト指向 - 【深きプログラミング言語】言語仕様とオブジェクト指向</title>
		<link>http://www.thinkit.co.jp/article/158/4/</link>
		<description><![CDATA[<div><a href='http://www.thinkit.co.jp/article/158/4/'><img src='http://www.thinkit.co.jp/images/article/158/4/15841.png' /></a></div><div>オブジェクト指向のインタフェースの定義とクラスの継承を考える。また最後にオブジェクト指向は何かを問いなおす。</div>]]></description>
		<dc:date>2008-11-27 11:00:00</dc:date>
		<content:encoded><![CDATA[<div><h1>インタフェース</h1><p>　多重継承は、複数のスーパークラスの性質や機能を併せ持つクラスを作りたい場合に利用します。例えば、サブスレッドを生成してファイル入力を行うクラスと、URLで指定したネット上のファイルを読み込めるクラスを多重継承できると便利そうです。ただし、多重継承は複数のクラスのメソッドやインスタンス変数が混在したサブクラスを作るため、利用するスーパークラスの実装を指定し、意図通り動作するように調整する必要があります。<br />
<br />
　多重継承の1つとして、図1-1のように抽象メソッドを継承する場合もあります。抽象メソッドを用いると、スーパークラスでメソッドの宣言のみ行い、具体的な実装はサブクラスで行うことができます。この方法では、スーパークラスの抽象メソッドとサブクラスのメソッドの実装の間に、必ずしも関連性はありません。<br />
<br />
　なお、実装をまったく伴わずメソッドの宣言のみの抽象クラスを作ることもできます。JavaやC#では、0個以上のメソッドの宣言の集合をインタフェースと呼びます。これらの言語ではインタフェースをスーパークラスのように継承することができますが、メソッドの実装はサブクラスで行います（図1-2）。インタフェースは複数個指定することもできます。この機能はObjective-Cでプロトコルと呼んでいた言語仕様をJavaが取り入れたものです。<br />
<br />
　インタフェースは、それを採用した複数のクラスが共通して持つ機能を表現します。例えば図1-3は、画面に表示可能な4種類のクラスを示しています。各クラスの実装はわかりませんが、共通のインタフェースを採用しているため、メソッドsetPositionで画面上の位置を決め、displayで表示を行えることがわかります。さらに、長方形クラスと曲線クラスは線の太さを設定、参照できるインタフェースを採用しているので、実装によらず、同じメソッドで扱えます。</p><h1>実装継承とインタフェース継承</h1><p>　スーパークラスからメソッド定義やインスタンス変数などの実装を継承するものをクラス継承、あるいは実装継承、インタフェースだけを継承するものをインタフェース継承と呼んで区別することがあります。JavaやC#、Objective-Cなどの言語には多重継承の機能はなく、インタフェースを利用すれば多重継承は不要であるとしています。<br />
<br />
　続いて実際のクラスの定義と継承を見てみましょう。<br />
</p><div><a href='http://www.thinkit.co.jp/article/158/4/'><img src='http://www.thinkit.co.jp/images/article/158/4/15841.png' /></a></div><div><a href="http://www.thinkit.co.jp/article/158/4/2.html">次のページへ</a></div></div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.thinkit.co.jp/article/153/4/">
		<title>動画配信規模とコストの関係はどう？ - 【現場に学ぶWeb動画配信】はじめての動画配信</title>
		<link>http://www.thinkit.co.jp/article/153/4/</link>
		<description><![CDATA[<div><a href='http://www.thinkit.co.jp/article/153/4/'><img src='http://www.thinkit.co.jp/images/article/153/4/15341.png' /></a></div><div>今回は、動画配信規模とコストについて説明します。</div>]]></description>
		<dc:date>2008-11-27 11:00:00</dc:date>
		<content:encoded><![CDATA[<div><h1>そもそも動画配信のコストって何？</h1><p>　2001年に筆者がWeb制作会社に勤めていた時の体験談です。<br />
<br />
　その当時の部長から「お前は、ビデオの制作費が100万円と言うけど、ページ単価が数万円なのに、その中に入る動画に100万円も払えないんだよ！」と言われました。これは動画配信のコスト意識をわかりやすく表現しています。<br />
<br />
　その当時、筆者は「Web系の人たちはこんな費用計算をするんだ！」と思ったのですが、こういう発想だと、「UNIQLOCK（http://www.uniqlo.jp/uniqlock/）」のようなコンテンツは到底制作できないわけです。現在でも、こういう発想のWeb制作会社を多く見かけます。<br />
<br />
　また、クライアント側でも誤解が多く、例えばジュエリー系の動画配信で筆者がビデオ制作費を数十万円とかなり安く見積もっても、「料金が高すぎる！」というクライアントもいます。この場合、クライアントは数万円で動画映像制作・配信ができると判断しています。けたが違います。<br />
<br />
　一方で、動画映像はクライアント自身で用意し、動画配信のみ筆者に依頼するクライアントもあります。この場合は月額数千円で動画配信することも可能です。<br />
<br />
　数千円になったり、数百万円になったりと、コストってどうなっているのと思われるかもしれませんが、原因は映像制作の人件費とビデオ制作費などのコスト意識の違いなんです。人や機材、時間がコストに直接影響を与えています。</p><h1>コスト要因は何か？</h1><p>　コスト要因についてが以下の3つが挙げられます（図1-1）。<br />
<br />
　1つ目は、動画制作のコストがコスト計算で誤算が生じるところです。<br />
<br />
　動画制作でコスト誤算が大きいのは、自分たちで最初から映像制作する機会が少ないのが主な原因です。通常、動画をどこかで調達してしまうか、CMやパッケージビデオなどを借りてきてしまうからです。はじめから映像制作する場合は、第2回（http://www.thinkit.co.jp/article/153/2/）で説明している通り、映像制作スタッフとの連携が重要になります。<br />
<br />
　特に、高いクオリティーの映像を望めば、それ相応の費用となりますので注意が必要です。また、予算からどのような映像が作れるかを逆算する必要もあるでしょう。<br />
<br />
　2つ目は、動画配信システム構築のコストです。<br />
<br />
　例えば、動画映像の権利をクライアントが持っていて、その映像を利用してコンテンツビジネスを展開しようという場合、第3回（http://www.thinkit.co.jp/article/153/3/）で説明した動画配信の予算・見込みアクセス数などからインフラの規模を検討し、さらにこれらの動画配信インフラに適合した決済システムやユーザー管理システム／DRMシステム構築を査定する必要があります。<br />
<br />
　3つ目は、Webコンテンツ制作のトータルコストです。最初に元となるWebコンテンツがあって、その集客する中から決済システムやユーザー管理システム／DRMシステムなどを使い、動画に誘導しないとビジネスにはなりません。<br />
<br />
　元となるWebコンテンツは、初期投資になります。いわゆるイニシャルコストです。それで、この初期投資をどれくらいの規模で実施するかが、マーケティングも含めたマネジメントの重要なところです。<br />
<br />
　どのような映像を配信するか、その映像に対してどれくらいのユーザーが獲得できそうか。結果、映像やWebコンテンツなどの初期投資はどれくらいか。視聴者となるユーザーが獲得できたら、月々のランニングコストはどれくらいか。<br />
<br />
　筆者の経験では、「うちのポータルサイト200万人の会員がいるけど、その1％の2万人が同時に動画を視聴しているだろう。もちろん課金したい。このシステムいくらでできるか見積もりしてよ！」と、あまりにも大ざっぱですが、このように言ってくるクライアントは多いです。<br />
<br />
　ここで重要なのは、図1-2のようにいろいろな条件を検討することです。<br />
<br />
　特に、米国の大手コンテンツホルダーなどは、所有するコンテンツが月額の売り上げで一定額以上ないとコンテンツ自体を貸さないという場合もありますので、たとえ映像を借りてくるにしても注意が必要です。<br />
<br />
　次は、規模に応じた動画配信コストを説明します。</p><div><a href='http://www.thinkit.co.jp/article/153/4/'><img src='http://www.thinkit.co.jp/images/article/153/4/15341.png' /></a></div><div><a href="http://www.thinkit.co.jp/article/153/4/2.html">次のページへ</a></div></div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.thinkit.co.jp/article/152/4/">
		<title>Red5とその他のオープンソースFlash技術 - 【現場に学ぶWeb動画配信】Red5でストリーミング！</title>
		<link>http://www.thinkit.co.jp/article/152/4/</link>
		<description><![CDATA[<div><a href='http://www.thinkit.co.jp/article/152/4/'><img src='http://www.thinkit.co.jp/images/article/152/4/15241.png' /></a></div><div>今回はまとめとして、Red5の今後と、それ以外のFLash関連のオープンソースプロジェクトについて紹介し、今後のFlash開発の姿を占っていきます。</div>]]></description>
		<dc:date>2008-11-26 11:00:00</dc:date>
		<content:encoded><![CDATA[<div><h1>オープンソースが開くFlashの世界</h1><p>　本連載では、これまでにオープンソースのFMS（Flash Media Server）互換のサーバーソフトウエアであるRed5を中心にサーバーサイドと連携したFlashの世界について紹介してきました。今回はまとめとして、Red5の今後と、それ以外のFLash関連のオープンソースプロジェクトについて紹介し、今後のFlash開発の姿を占っていきます。<br />
<br />
　まず、背景としてFlashの世界は長らくMacromedia社／Adobe社の製品に依存してきました。現在でも最も重要な要素であるFlash PlayerはAdobe社によって精力的に開発が続けられています。そのFlash Playerの普及度は99%にせまっており、Flashをプラットフォームとしたアプリケーションやサービスの可能性は今後も高まるばかりです。<br />
<br />
　長らくクローズドな方針をとってきたAdobe社自身も、最近ではFlex SDKやBlaze DSに代表されるようなオープンソース戦略を積極的にとることが増えてきています。現行のFlash CS3などFlash IDE製品がまるごとオープンソース化されるようなことは考えにくいですが、いくつかの技術はオープンソースで代替が効いたり、またコミュニティーによって新しいアイデアが注入されたりすると、より活性化されたFlashの世界が開けていくのではないかと期待しています。</p><h1>Red5の今後</h1><p>　Red5の現在の正式版は0.7、最新版は0.8RC（リリース候補版）となっています。Red5のオフィシャルサイトにはロードマップ（http://jira.red5.org/confluence/display/docs/Red5+Roadmap）が提示されていて、今後の計画が明記されています。<br />
<br />
　0.8はパブリック・ベータという位置づけで、いよいよ正式版が近づいてきた感があります。長年の懸念であったスケーラビリティ対策も1つのオリジンサーバーとクライアントからの接続先となる複数台のエッジを配置する形でのクラスタリング手法が0.7から盛り込まれてきました。<br />
<br />
　今後はホットデプロイやサーバーサイドActionScriptのサポート、映像のH.264エンコード対応などがロードマップ上に記載されています。<br />
<br />
　また、Red5はJavaをベースとしたテクノロジーであるため、JavaVM上で動くRubyであるJRubyや、同じくPythonであるJythonなどでサーバーサイドを記述することも将来的には可能になってくるかもしれません。そうなってくるとより多くの開発者にとってより取り組みやすい環境になってくるでしょう。<br />
<br />
　次は、Red5と同じようにRTMPを扱うサーバーソフトウエアをいくつか紹介します。</p><div><a href='http://www.thinkit.co.jp/article/152/4/'><img src='http://www.thinkit.co.jp/images/article/152/4/15241.png' /></a></div><div><a href="http://www.thinkit.co.jp/article/152/4/2.html">次のページへ</a></div></div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.thinkit.co.jp/article/160/1/">
		<title>ファイルサーバ乱立を統合ストレージで解決！ - Windowsファイルサーバ統合のキモ！</title>
		<link>http://www.thinkit.co.jp/article/160/1/</link>
		<description><![CDATA[<div><a href='http://www.thinkit.co.jp/article/160/1/'><img src='http://www.thinkit.co.jp/images/article/160/1/16011.png' /></a></div><div>ファイルサーバの決定版、EMCの統合ストレージ「Celerra NX4」</div>]]></description>
		<dc:date>2008-11-25 11:00:00</dc:date>
		<content:encoded><![CDATA[<div><h1>ファイルサーバ乱立の現状</h1><p>　企業において保管されるべきデータは増加する一方だ。IDCの最新の報告では、<br />
すでに2007年の時点で毎年生成されるデータ量が実ストレージ容量を上回ってい<br />
るという（図1）。<br />
<br />
　このデータ量の増加に対し、なぜストレージ容量は増えていないのだろうか。<br />
その要因のひとつとして、増え続けるデータ量に見合ったIT投資が行えないこと<br />
があげられる。<br />
<br />
　限られたIT投資の中で必要なデータを確実に保存できる環境を整えるためには、<br />
長期的な観点に立ったストレージの確保が急務だ。そこで本記事では、このギャッ<br />
プが生まれる原因から解決の道筋までを紹介していく。<br />
<br />
　企業内には数多くのファイルサーバが立ち上がっていることが多く見受けられ<br />
る。多くはWindowsサーバの内蔵ディスク、もしくはにDAS（直接接続型ストレー<br />
ジ）形態で接続したシステムになっている。<br />
<br />
　だが、この「DASを使用するサーバ」というアプローチは、サーバの増加、使<br />
用率の低下、非効率なバックアップにつながりやすい。また、管理オーバーヘッ<br />
ドが高くなるため、システム拡張も困難である。このような場合は、システムを<br />
ファイバ・チャネルSANに移行することも容易ではない。<br />
<br />
　そこで、既存のネットワークで接続できる専用NASを導入することで課題の解<br />
決を考えてみよう。既存のLANインフラストラクチャに接続することにより、ファ<br />
イルまたはブロックのどちらを保存しているかにかかわらず、すべてのDASを専<br />
用NASに統合が可能である。ここでは、Windowsファイルサーバ乱立の傾向と、具<br />
体的な対策方法について解説する。</p><h1>データ量増加の原因は非構造化データにある</h1><p>　現在増加しているデータには大きく分けて「構造化データ」と「非構造化データ」の2種類がある。特に増加が著しいものが非構造化データで、これはビジネスで利用・保存されるべきデータが変化している現れとも言える。<br />
<br />
　この非構造化データは、これまで紙で管理していた書類の電子化や、オフィスドキュメント、画像、映像、リッチコンテンツなど、従来は各ユーザが個別のPCに保存していたものである。情報の共有の観点から、これらのファイルをファイルサーバ上で管理するという形態が注目されているほか、コンプライアンスの観点から一定期間データを保存しておく必要が生じたことも、データ量の増加の要因となっている。<br />
<br />
　このような非構造化データの保存先は、安価なIAサーバを使って部門ごとにWindowsファイルサーバを構築／運用しているケースが多い。しかも専任ではない人員が運用にあたっている場合、運用のポリシーに一貫性が無く、非常に無駄の多い環境となっている。次ページでは、この問題点について見ていこう。</p><div><a href='http://www.thinkit.co.jp/article/160/1/'><img src='http://www.thinkit.co.jp/images/article/160/1/16011.png' /></a></div><div><a href="http://www.thinkit.co.jp/article/160/1/2.html">次のページへ</a></div></div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.thinkit.co.jp/article/156/4/">
		<title>Railsに変えてよかった！：iKnow!の場合 - 【深きプログラミング言語】言語選択の岐路</title>
		<link>http://www.thinkit.co.jp/article/156/4/</link>
		<description><![CDATA[<div><a href='http://www.thinkit.co.jp/article/156/4/'><img src='http://www.thinkit.co.jp/images/article/156/4/15641.png' /></a></div><div>語学学習サイト「iKnow!」は、Ruby on Railsで開発されている。Ruby on Railsを開発するに至った経緯、効果、問題点などを具体的に紹介する。</div>]]></description>
		<dc:date>2008-11-25 11:00:00</dc:date>
		<content:encoded><![CDATA[<div><h1>iKnow!はRuby on Railsでできている</h1><p>　みなさん「iKnow!」という語学学習サイトはご存じでしょうか？<br />
<br />
　iKnow!は、効率的に暗記ができる、スケジュール管理および記憶定着度管理機能を備えたパーソナル学習アプリケーションを搭載した、無料のSNS型語学学習サイトです。サービス開始からわずか1年でユーザー数が34万人を超え、現在も国内最大の語学学習 SNSとして日々成長を続けています。<br />
<br />
　Think ITでも「【Webデザインワークフロー】iKnow!の作り方（http://www.thinkit.co.jp/article/111/1/）」（英語版「【Web design work flow】How to make iKnow!（http://www.thinkit.co.jp/article/121/1/）」）で、Webアプリケーションの開発手法について取り上げました。<br />
<br />
　この記事では、iKnow!を運営するCerego Japanが語学学習SNSを立ち上げた際に、Ruby on Railsを選択した経緯についてご紹介します。これから新たなサイトを立ち上げる方や、これからRuby on Railsにチャレンジする方、開発環境の選択としてRuby on Railsを考慮に入れている方など、さまざまな立場の方の参考になればと思います。<br />
<br />
　ここで簡単にiKnow!がどんなアプリケーションなのか、紹介しましょう。開発するアプリケーションによって、適した開発環境も異なってきますので、1つの事例として参考にしてみてください。<br />
<br />
　iKnow!では、Cerego Japanが独自に研究開発を行った効率的な学習メカニズムに基づいて、システムが自動的に学習のスケジュールや日々の目標管理などを決定してくれます。<br />
<br />
　そのため、「興味のある内容のコンテンツから、自分のレベルにあったものを選択し、日々の目標を達成していく」というステップを繰り返すことで、効率的に語学を習得することができます。<br />
<br />
　具体的にどんなアプリケーションで、実際になにができるのか知りたいという方は、「トライアル学習コース（http://www.iknow.co.jp/flash?swf=iknow&lang=ja&course_id=708）」を使ってみてください。iKnow!が持っている機能がよくわかり、またその仕組みが知りたくなるはずです。<br />
<br />
　さて、そもそも2007年10月のサービス開始当初、iKnow!は英語学習に特化したサイトとして誕生しました。<br />
<br />
　2008年5月にはユーザーが学習コンテンツ（英語のみ）を作成できる機能も追加され、語学だけではなく歴史や文化を学ぶためのコースなど、2008年10月時点で15,000以上のコンテンツ（コース）が生まれています。<br />
<br />
　また現在では英語のほかに日本語、中国語、韓国語、スペイン語、ドイツ語、イタリア語など、ほとんどの主要な言語が学習可能になっており、日本語を勉強している外国人の方々にもお使いいただけるサイトになっています。<br />
<br />
　2008年10月にはサードパーティーのデベロッパーにAPIを公開し、よりオープンなサイトになるとともに、われわれがSocial Learning Platformと呼ぶWeb上での学習プラットホームを目指したサービス展開を開始しています。</p><h1>なぜRuby on Rails!を選んだのか？</h1><p>　iKnow!チームでは、Flashで実装された学習アプリケーションを除いては、Ruby on Railsを採用しています。<br />
<br />
　Railsを選択するまでに、Java、PHP、.Netなど、多くの言語およびプラットホームが検討されたのですが、なぜ最終的に Rails に決定されたのでしょうか？次ページからは、いよいよオープン化への決断、また開発環境を決めるまでについてお話ししましょう。</p><div><a href='http://www.thinkit.co.jp/article/156/4/'><img src='http://www.thinkit.co.jp/images/article/156/4/15641.png' /></a></div><div><a href="http://www.thinkit.co.jp/article/156/4/2.html">次のページへ</a></div></div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.thinkit.co.jp/article/154/3/">
		<title>立体アニメーションのしくみ - 【現場に学ぶWeb動画配信】パペットアニメーションの世界</title>
		<link>http://www.thinkit.co.jp/article/154/3/</link>
		<description><![CDATA[<div><a href='http://www.thinkit.co.jp/article/154/3/'><img src='http://www.thinkit.co.jp/images/article/154/3/15431.png' /></a></div><div>今回は、立体アニメーションができるまでの行程を説明したいと思います。</div>]]></description>
		<dc:date>2008-11-21 11:00:00</dc:date>
		<content:encoded><![CDATA[<div><h1>立体アニメーションができるまで</h1><p>　今回は、立体アニメーションができるまでの行程を説明したいと思います。<br />
<br />
　ストーリーを考え、シナリオを書きます。自分1人で制作できる範囲の舞台セットを頭に浮かべながら、制作可能な個所を抜粋し、絵コンテを描きます。同時に主人公となる人形のことも考えます。演出によってどのような人形にしたらいいのかも考慮にいれます。<br />
<br />
　30センチに満たない人形の中には関節（図1）が入っています。少しずつ動かしては撮影、動かしては撮影という繰り返しに耐えられるだけの人形を作ります。人形のサイズに合わせた舞台セットを作ります。<br />
<br />
　資料は実際に撮影にいく時もあります。写真集を参考にする時もあります。カメラアングル、照明を決めて、人形の演出を頭に思い浮かべます。コマ撮りは静止画の連なりにより動いているように見せます。だから動いてはいけないものはすべて固定しておきます。それから撮影を開始します。<br />
<br />
　撮影は1秒のシーンを撮るのに15回ほど動かすわけですが、撮影がスムーズに進行する場合もあれば、いつまで進まない場合もあります。一度動かし始めるとそのカットが終わるまで続きます。途中でやめることはできません。途中で動かすことに失敗したら最初からやり直しです。焦れば焦るほど失敗する原因になります。じっくりと呼吸を整えてせっかちにならないように心がけます。<br />
<br />
　撮影中はさまざまな音楽を聴きます。作品の空気と合いそうな曲があれば、それはどこかに書きとどめておきます。なんとか撮り終えたら編集です。編集が終わりましたら、DVD-RかミニDVテープに出力します。それで一通り完成ということになります。</p><h1>セット制作について</h1><p>　木工用ボンド、くぎなどを使ってベニヤ板を箱状にして、演劇の舞台をミニチュアで作ってみようというのが最初のセット制作の発想でした。カメラアングルをどうするかということを念頭に置いておらず、いざ撮影に入ってみると、ほぼ正面からしか撮影できませんでした。やらなければならないことをこなすだけで頭がいっぱいで失敗ばかりでした。<br />
<br />
　次の作品では箱状のものを制作するのではなく、どだいとなる机を1台用意して、その上に土や、壁板、造花といったものを使用し、セットを分解、組み立てやすいストーリーを考えました。作り込まずに済むようなもののみで作りました。それはいい意味でも悪い意味でもチープな作品になり、やはりちゃんとセットを作る必要があると感じました。<br />
<br />
　今度はいくつものシーンを考え、その場面場面のセットをいくつも制作することにしました。大学の課題日程は長くて2ヶ月ほどでした。時間だけでなく、金もない学生だったので、余り金のかからない、しかも加工しやすい素材はないだろうかと思い、浮かんだのが段ボールでした。これは思った以上に使いやすかったのですが、段ボール特有のストライプが気になるのと、色を片面に彩色すると絵の具の乾燥とともに段ボールが反ってしまう、という問題点がありました。<br />
<br />
　最終的にはベニヤ板におさまり現在に至ります。箱状のセットも四面すべての取り外し可能な作り方を考えました。床面は、「睡蓮の人」「朱の路」では主にベニヤ板を使って制作していました。歩かせる時は人形の裏面に両面テープを貼（は）り付けたり、見えないように練りゴムなども使用していました。<br />
<br />
　「HERO」の時はバルサ材とスタイロフォームに変更しました。人形が歩いたり、走ったりするシーンが多かったので、人形の足（鉛板）にあらかじめ小さな穴を開けておき、そこに「虫ピン」を指すことにしました。バルサ材やスタイロフォーム（押出法ポリスチレンフォーム）は、ベニヤ板ほど硬質でないために床面に直接虫ピンを刺すことができます。それと同時に両面テープも併用することで、人形は直立するのにかなりの安定感を得ることができました。</p><div><a href='http://www.thinkit.co.jp/article/154/3/'><img src='http://www.thinkit.co.jp/images/article/154/3/15431.png' /></a></div><div><a href="http://www.thinkit.co.jp/article/154/3/2.html">次のページへ</a></div></div>]]></content:encoded>
	</item>
</rdf:RDF>