このBlogも書き始めてから半年ほど経ち投稿した記事も増えてきたので,前々からやろうと思っていたクリエイティブ・コモンズのライセンスを付けることにした.ライセンスはもう既に貼り終えていて,個別記事すべてをカバーできる場所に配置するように,ページ一番下のフッターに記述している.

今回は,クリエイティブ・コモンズの公式ウェブサイトからテンプレートを作成し,それをJekyll/Octopress用に少し変更した上でfooter.htmlを書き換えるという一連の作業を,メモとしてまとめてみた.

テンプレートを作成する

クリエイティブ・コモンズのライセンスを表明するには,公式ウェブサイトからライセンス付与の書式を作成してウェブページに貼り付ける方法が一番簡単である.まずは以下のページにアクセスして,ライセンスの種類とその他の情報を付加したHTMLコードを作成する.

http://creativecommons.org/choose/のスクリーンショット

(http://creativecommons.org/choose/のスクリーンショット)

HTLMコードの作成で必ず行わなければ行けないのは,左上のボックスにあるライセンスの選択の部分だ.ここの選択肢によって,BY・NC・SA・NDのライセンス選択が行われる.「License Jurisdiction」に関しては,CC-Lisence3.0から「国際」と呼ばれるUnported版を選択できるようになっているようだ.必要がなければ特に変更しなくても問題ないと想われる.

また,左下のボックスには,HTMLコードに付加する情報を入力できるようになっている.貼り付けるウェブサイトのタイトルや著者情報を入力すると,それらの情報がHTMLコードの文面の中にRDFのタグとともにメタデータとして組み込まれる.これらは必須項目ではないが,今回はウェブサイトのタイトルと著者名を入力しておいて,あとで書き換えることにする.

以上の情報を選択/入力して出来上がったHTMLコードが,右下のボックスに表示される.ボックス上側のプレビューで表示されるライセンスのアイコンとテキストに問題がなければ,ボックス下側に表示されるHTMLコードをコピーして,自分のウェブサイトのどこかのに貼り付ければ完了となる.

ブログのタイトルと作成者の名前をJekyll/Octopress風に書き換える

さて,今回は上で作成したテンプレートを少し書き換えて,Jekyll/Octopressの設定を利用したHTMLコードにする.書き換えるといっても最終的にウェブページに表示されるテキストは全く変化しないが,テンプレート内に決め打ちで書かれているウェブサイトのタイトルと著者名を,Jekyll/Octopressの_config.ymlに登録されている情報を使って置換するようにする.

具体的な書き方としては,以下のようにfooter.htmlに書き込むと,

1
{{ site.title }} by {{ site.author }}

実際にウェブページに表示されるテキストは

1
Wolfeyes Bioinformatics beta by yag_ays

このように_config.ymlに登録したウェブサイトのタイトルと著者名に変換される.

フッターを書き換える

このような表記を使って,source/_includes/custom/footer.htmlを以下のコードに書き換える.

1
2
3
4
5
6
7
8
<hr>
<p>
  <a rel="license" href="http://creativecommons.org/licenses/by/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by/3.0/88x31.png" /></a>
  <br />
  <span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">{{ site.title }}</span> by <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">{{ site.author }}</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 Unported License</a>.
  <br />
  <span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
</p>

すると,ウェブページの一番下のフッターの部分に,このようにクリエイティブ・コモンズのラインセンスを付けることができる(下のスクリーンショットの枠は別).ウェブサイトのタイトルや著者名も正しく変換されていることがわかる.

まとめ

といった感じで,このサイトをCC BYにしてライセンスを表記してみた.作品の利用条件は「表示/BY」のみなので,このサイトのクレジットさえ表示すれば,このサイトのコンテンツを改変して発表したり営利目的で利用できるようになっている.

あと,これは書き手の問題だが,これまで書いてきたテキストの中から文書を引用しているものに関しては,その中にCCのSAが含まれていれば個別にクリエイティブ・コモンズ・ライセンスを継承する必要がある.今回自分のウェブサイトにクリエイティブ・コモンズ・ライセンスを付与するにあたり,各リンク先を見てCCのSAがあるかどうかを確認したが,特に見当たらなかった.というわけでこれまでの記事に関しては問題は無いが,これから記事を書く際にはその辺りを注意しつつ書く必要がある.そういう意味では,クリエイティブ・コモンズ・ライセンスを表記することで,ウェブサイトには特に変化はないものの,記事を書く側の人間の意識はだいぶ変わるものだと感じた.

参考



TN君の本当の名前は,とうとう本書の中には出てこなかった.しかし,TN君が生きた19世紀後半という時代,世の中の大きな流れ,政治や生活などの急激な変化,そしてTN君が何を思い何を考え,何をしてきたかについて,彼の名前よりも重要な何かがこの本の中で描かれている.

本書は,19世紀後半に生き,ルソーの思想をいち早く日本に広め,自由民権運動の活動家として活躍した思想家である中江兆民の伝記的小説である.彼が生まれそして亡くなるまでの約50年間の人生と,その時代を取り巻く世相や事件を扱った1冊だ.本書は福音館書店から出版される児童文学の中の1冊であり,本には「小学校上級以上」という読者の目安が書かれている.読みやすいように本文の漢字の大半にはフリガナがふられているが,だからといって子供向けの安易な置き換えがごまかしのようなものが含まれているわけではない.近代史についてほとんど知らないような子供が読んでもわかるように,時代背景から当時の日本の階級制度,人々の生活に至るまで,とても分かりやすく丁寧に紹介しながらTN君の人生が描かれる.

本当であれば,本書の内容,つまりTN君の人生や思想に関して自分の意見や感想を書きたいところなのだけれども,僕は哲学や政治そして近代史に関して何か書けるだけの知識が殆どないので,代わりに別のことを書こうと思う.

僕は本書を読み終えて,このTN君の人生にある人のことを思い浮かべた.それは,数年前に亡くなった音楽の指揮者の先生のことなのだが,その先生の性格や人柄,そして人生までもが,本書で描かれるTN君そのもののように思えてならなかった.もちろんその先生の人生を僕が実際に見てきたわけではないし何か書籍として残っているわけでもない.ほとんどすべてのことは先生自身や周りの人たちから伝え聞いたことばかりなのだが,もしかしたらTN君と同じように確固たる志をもって人生を歩まれてきたのかなと,どうしてもTN君とその先生のことを重ねてしまう.その先生は,戦争が始まる少し前に生まれ,戦後の混乱のさなか音楽を勉強され音楽家になられたという話だ.そして今でも名前が残る有名な指揮者に師事され,その後指揮者として活躍される.一時は音大の先生にならないかと誘われるほどではあったものの,大学に入って教壇に立つよりかは楽団の指揮者として若者に指導したいということで,その誘いを断りそれから様々な楽団を立ち上げ音楽活動を積極的におこなってきたという.そして,その先生の晩年に僕は生徒として関わりを持つことになった.先生からは音楽から人生の教訓に至るまで様々なことを教えてもらったと同時に,先生との関わりの中でもっと自分にできることがあったのではないかと今でも当時のことを思い返しては考えることがある.結局は5年ほどの本当に短い付き合いとなってしまったが,僕の中での先生はまさに本書のTN君そのものだった.

本書を読んだ後は,少しばかり先生のことを色々と思い出し感慨にふけってしまった.これもおそらく本書におけるTN君の人間としての描き方が見事であったからであり,歴史上の偉人としてではなく,人間的な部分までを含めた一人の人間を見事に描ききったという点で,本書は非常に優れた伝記的小説であると言える.読み始める前の僕は明治維新などの近代史に全く興味がなく,各所で絶賛されていたがために本書を手にとって読み始めたのだが,読んでいるうちにすっかり引きこまれてしまった.歴史や登場人物の知識が無くとも問題なく読めるという意味でも,一般向けに洗練された読み応えのある本だった.

影響を受けた書評



例 5.4 数値的最適化法と確率的探索を比較する

例5.1の続き.前回は数値的最適化法によって\theta の値を推定したが,今回は確率的探索による推定を行なって,両者の手法の比較を行う.問題としては,以下の対数尤度を最大化する.

\log l(\theta| x_1,\ldots,x_n) = \sum_{i=1}^{n} \log \frac{1}{1+(x_i-\theta)^2}

この式はn \rightarrow \infty において\theta^* =0 になる.すなわちこれから求める推定値の答えは0ということになる.

ソースコード

以下のソースコードにおける変数の対応は以下のようになっている.

  • 数値的最適化法
    • trul:推定値
    • truv:対数尤度
  • 確率的探索
    • loc:推定値
    • maxv:対数尤度

なお,mcsmパッケージに付随するデモスクリプトでは,数値的最適化法における乱数を正規乱数としていたり対数尤度の関数が微妙に違っているが,今回は例5.1の解法と同様のコーシー乱数と対数尤度の式を用いている.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
ref <- rcauchy(5001)
f <- function(y){-sum(log(1+(x-y)^2))}

maxv <- NULL
loc <- NULL
truv <- NULL
trul <- NULL

for (i in 10:length(ref)){
  # 数値的最適化
  x <- ref[1:i]
  tru <- optimize(f,c(-5,5),maximum=T)
  trul <- c(trul, tru$max)
  truv <- c(truv, tru$ob)

  # 確率的探索
  prop <- runif(10^3,-5,5)
  vale <- apply(as.matrix(prop),1,f)
  loc <- c(loc, prop[order(-vale)[1]])
  maxv <- c(maxv, max(vale))
}

par(mar=c(4,4,1,1), mfrow=c(2,1))
plot(trul, loc, cex=.5, pch=19, xlab=expression(theta^0), ylab=expression(hat(theta)))
abline(a=0, b=1, col="grey")
plot(10:length(ref), (truv-maxv)/abs(truv), type="l", lwd=2, xlab="Sample size", ylab="Relative error", ylim=c(0,0.02))

まず,上のプロットは,数値的最適化法による推定値を横軸に,確率的探索による推定値を縦軸に取った図となっている.真の値が\theta^* =0 なので,当然ながら両者ともに推定値は(0,0)付近に集まっている.また,推定値が外れる場合では,どちらかの値が大きくなればもう片方も大きくなるといった具合に,そのパターンはグレーの線で示した\theta^0 = \hat{\theta} の線分の上に乗るような形となる.

次に,下のプロットは,横軸にサンプルサイズを取り,縦軸に推定値における対数尤度の差を取った図となっている.今回は相対的誤差なので,(数値的最適化法-確率的探索)/(数値的最適化法)といった形で値を求めている.相対的誤差が大きいということは,数値的最適化法と確率的探索それぞれ求めた対数尤度に差がある,すなわち\theta に差があるということで,上のプロットにおけるグレーの線分から離れれば離れるほど相対的誤差も大きくなるということになる.なお,図示しているサンプルサイズはn=10 からn=5001 までの値となっており,これは両者の手法がどちらも一定サイズのサンプルサイズを必要とするからである(つまり1から10までは図示していない).

例 5.6 グローバルミニマムのまわりにローカルミニマムが配置されている関数を可視化する

以下の関数の最小化を検討する.

h(x,y)=(x\sin(20y)+y\sin(20x))^2\cosh(\sin(10x)x)+ (x\cos(10y)-y\sin(10x))^2\cosh(\cos(20y)y)

今回は可視化するだけだが,この後の例5.7などで度々登場する関数となる.3Dプロットを描写すると,(0,0)に最小値があり,その周りには山あり谷ありとローカルミニマムがたくさん配置されている関数だとわかる.この図を上から見ると,P.157のプロットのようになる.

1
2
3
4
5
6
7
8
9
10
h <- function(x,y){
  (x*sin(20*y) + y*sin(20*x))^2 * cosh(sin(10*x)*x) +
    (x*cos(10*y) - y*sin(10*x))^2 * cosh(cos(20*y)*y)
}
x <- seq(-3, 3, le=435)
y <- seq(-3, 3, le=435)
z <- outer(x, y, h)
par(bg="wheat", mar=c(1,1,1,1))
persp(x, y, z, theta=155, phi=30, col="green4",
      ltheta=-120, shade=0.75, border=NA, box=FALSE)



基本的な使い方からTerminalを駆使した設定変更まで,MacのGUIにおけるテクニックを網羅した手引書

本書はいわゆる「入門書」と呼ばれるOSの使い方や各種ツールの便利な機能を紹介した本なのだが,その中でも特にショートカットや隠れた機能に絞ってマニアックな使い方を紹介するという,いかにもO’Reillyが好きそうな内容となっている.この本に登場するTipsの数は300を超え,スクリーンショットはほどほどに,紙面にはびっちりと文字が並ぶ.Tipsの対象はプレビューからSafari,Mail,Spotlight,Mission Controlなどの基本的なアプリケーションや機能に加えて,メモリの増設方法であったりOSやHDDが不調の時の対処法まで,あらゆる使い方に幅広く対応できるようなラインナップになっている.そのため,頭からざっと読んで新しいショートカットを覚えるもよし,何かしたいと思った時に逆引き辞典として使っても良しと,多彩な使い方ができる1冊だ.

取り敢えず私もひと通り眺めようと思ってポストイットを持って最初から最後までひと通り流し読みしたのだが,気付けばポストイットが本の上部にびっしり貼り付けられるという感じで,今まで知らなかったテクニックが非常に多かった.特に,Optionキーを組み合わさせたショートカットはかなりマニアックなものが揃っており,テキストの矩形選択やFinderの新規フォルダ作成など,この本を読まなければずっと知らなかったであろうテクニックばかりだった.また,Terminalを使って1行で設定変更が出来るTipsもかなり掲載されており,普段はインターネットで時々目にするようなHackが纏まっているのも有用だった.

ちなみに,O’Reillyで出版されているMacに関連した本では「入門 Unix for Mac OS X 第4版」というこれまたマニアックな本があるのだが,こちらはタイトルにもあるようにMacのUNIX的な使い方を紹介する本だ.こちらはこちらでUNIXコマンドの基本的な使い方に始まり,Mac OS X特有のコマンドが紹介されていたりと,なかなかユニークで面白い本になっている.本書とは方向性が全然違う本だが,Macをより一層便利に使いたいという点では共通しているだろう.内容が少し古くなっているのが難点だけれども,基本的なところは変わっていないので,特に問題ないと思われる.



「ダダ漏れ」というバズワードを聞かなくなって久しいですが,それでも勉強会などのプレゼンテーションにおいてネット配信や録画の公開などの需要は高まっており,もはやあって当然という感じもあります.また,最近では学会などの基調講演なども録画してYouTubeで後日公開という話もよく耳にするようになりました.しかし,いざUstreamなどで配信を行おうと思っても,そもそもどうすればいいかわからない,手持ちの環境ではマトモに配信ができない,もっとクオリティを上げたい,といったように,技術的な知識を要求されたり高価な機器に依存する部分があるなど,色々なレベルで難しいところがあります.

そこで今回は,ある程度マシな配信&録画環境を作ろうということで,僕が以前勉強会で配信を担当したときに構築した環境についてまとめてみました.今回の目標としては,

コンセプト:ちょっとお金を掛けて比較的マシな配信/録画環境を作ろう

という感じで,高価な機器でいきなりプロ並の配信を目指すのではなく,ちょっとお金と労力をかけることである程度マトモな配信環境を目指そうじゃないかといったスタンスになっています.ただし,この記事を書いた人間は映像/音声関係に全く素人であり,もっと良い環境構築法やテクニックなどあるとは思うので,より詳細に知りたい場合には専門家などが公開している情報を参考にしてもらえればと思います.

この記事はこんな人向け

  • 今までMacBookのFaceTimeカメラを講演者に向けてUstしてたけど,もうちょっとマシな配信がしたい
  • とりあえず音を何とかしたい
  • 配信しつつ録画もしときたい.Ustの録画しょぼい

他にはこんな使い方も

  • ニコニコ生放送でも配信したい
    • ニコ生でもUstreamと同様のセッティングで配信ができます
  • Skypeの会話をそのままUstに流したい or Ustで喋ってる裏でPCに入ってる音楽を流したい
    • USBオーディオ機器によってはMacBookの音を拾って流せます

用意する機材(ハードウェア編)

MacBookを中心にして,そこから音声を取ってくる部分と映像を取ってくる部分を外部のハードウェアで行う.それぞれ高画質/高音質を目指すとキリがないが,スタンダードモデルくらいのものを買えば大体は事が足りる.

  • MacBook

    • 配信用/録画用として1台個別に用意する
    • 配信と録画をしている間はCPU使用率が高くなるので,熱が出る&ファンが回りっぱなしになる
  • USBオーディオ機器

    • マイクとMacBookを繋げる機器
    • ハードウェアから音量調整やミュートができるので便利
    • マイクからの音声を会場のスピーカーに流すこともできる(ハウリング注意)
  • マイク

    • いわゆるカラオケにあるような奴
    • ICレコーダーに付けるような小さいマイクは駄目
    • 基本は講演者の近くに置くか持ってもらう.集音性の高い専用のマイクを使う手もある
    • マイクを講演者近くの壇上に置いておく場合には,マイクスタンドは必須
  • USBカメラまたはデジカメ

    • 要はMacBookに繋いで映像を入力できればよい
    • 三脚が付けられるタイプだと場所を選ばず安定して配置できるので良い
    • 外部接続のカメラ無ければ最悪MacBookのFaceTimeカメラでも良いが,中継している間はMacBookで調整などの操作ができないので注意
  • 各種ケーブルと変換アダプター

    • マイクやイヤホンの端子をUSBオーディオ機器の差し込み口に合わせないといけない
      • イヤホンだと6.3mmと3.5mm
      • マイクだと6.3mmとXLR
    • この辺は変換アダプターが売られているので,それを購入すれば良い
    • 向きとかややこしい部分があるので,分からなかったら家電量販店の売り場の人に訊く

    • 講演者がいる壇上と中継する位置が遠い場合は,マイクのケーブルを延長する必要がある

以下あれば嬉しいもの

  • イーモバイルなどのネット回線
    • 会場にネットが無い場合は,中継用に1つ占有できる回線があると良い
  • Ustream確認用のPC端末
    • 中継/録画している機器とは別に,実際に流れているUstreamの画像や音声を確認できるPCがあると状況を把握しやすい

自分の場合の構成

  • MacBook Early2008(いわゆる白MacBook)
  • USBオーディオ機器:ROLAND TRI-CAPTURE UA-33
  • マイク:SONY F-V420
  • USBカメラ:Logicool HD Webcam C615
  • 卓上に置けるマイクスタンド
  • その他各種ケーブル・アダプター類

MacBookにFlash Media Live Encoderをインストールする (ソフトウェア編)

設定

  • VideoとAudioのデバイス設定だけは絶対に配信前に確認すること
  • せっかく専用の機材を買ったのに,じつは音声はMacBookのスピーカーで録音してましたということになりかねないので注意
  • Videoに外部接続カメラ,AudioにUSBオーディオ機器の名前が選択されていることを確認する

  • 映像や音声の設定は,要求されるクオリティや配信のネットワーク環境に合わせてチューニングする

配信

  • Ustreamで配信する場合は,配信用のプロファイルをUstreamのウェブサイトから入手する
  • Ustreamのウェブサイトのダッシュボードから「番組設定」→「(番組名)」→「リモート」にある「Flash Media Encoder XML ファイル」をダウンロードする

  • Flash Media Live Encoderのメニューバー「File」→「Open Profile」から,先ほどダウンロードしたXMLファイルを読み込む

  • 上のように画面右の「Stream to Flash Media Server」にFMS URLとStreamが表示されればOK
  • あとは画面下のスタートを押せば,配信が開始される

録画

  • 配信を録画するには,画面右下の「Save to File」にチェックを入れて保存する設定にしておく

要するに

MacBook+各種機材+FlashMediaLiveEncoderで何とかなる!!!

という感じで,まとめ

だいぶ大雑把に環境構築についてまとめてみたが,実際には配信環境なり会場の様子なりシチュエーションによって必要な機材や技術が左右されるだろう.最初は何がなんだか分からず取っ付きにくい部分があるが,一度実際に勉強して機材を組んで配信してみると,何が必要でどこが重要なのかといったことが見えてくると思う.もし配信などに興味がある場合は,あれこれやりたいことは沢山あるとは思うが,まずはそこそこの機材からスタートしてだんだん慣れていくという感じが一番いいんじゃないだろうか.要点だけ掴めばあとは部分部分を改良していくだけなので,比較的スムーズに上達すると思う.

ちなみに:このまとめ記事ではできないこと

  • 技術も知識もないけど手っ取り早くお金で解決したい
    • CEREVOのLiveSHellなどの専用機器を買って下さい
  • 講演者のPCから映像をダイレクトに取ってきて配信に流す
    • TwinPactみたいな機器を買って下さい(ちょっと高い)

参考