tag:blogger.com,1999:blog-17755701137958131022024-03-13T13:18:17.808+09:00aide-mémoire印象に残ったニュースや本など...Unknownnoreply@blogger.comBlogger47125tag:blogger.com,1999:blog-1775570113795813102.post-57249119215858729692011-09-19T00:59:00.000+09:002011-10-08T22:52:39.746+09:00[雑記] プロジェクトマネージャ 受験先日「プロジェクトマネージャ」という試験を受けました。結果は無事受かったのですが、誰かの役に立てばと思い(&自分への備忘録として)、1.試験対策、2.学習時の留意点、3.本番時の留意点、4.午後Ⅱ回答 をまとめます。<br />
<br />
<span class="Apple-style-span" style="font-size: large;">1. 試験対策</span><br />
<br />
次のような内容を行いました。<br />
<table border="1"><tbody>
<tr><th>大項目</th><th>小項目</th><th>内容</th><th>対策時間</th><th>対策時期</th></tr>
<tr><td rowspan="2">知識の習得</td><td>基礎知識</td><td>問題集の基礎知識部分を熟読</td><td>5h<br />
(PMBOKの知識体系ごとに0.5h)</td><td>2ヶ月前</td></tr>
<tr><td>PMの行動規範を捉える</td><td>午後Ⅱの問題・解答例を読む</td><td>5h<br />
(1題0.3h)</td><td>2ヶ月前</td></tr>
<tr><td>午前問題対策</td><td>午前Ⅱ</td><td>過去問題を解く</td><td>3h (3回) </td><td>数週間前〜前日</td></tr>
<tr><td rowspan="5">午後問題対策</td><td>午後Ⅰ練習</td><td>過去問題を解く</td><td>10h<br />
(1題1h、10題)</td><td>2ヶ月前〜前日</td></tr>
<tr><td rowspan="2">午後Ⅱ練習</td><td>過去問題を解く(フル)</td><td>8h<br />
(1題2.5h、3題分)</td><td>1ヶ月前〜前日</td></tr>
<tr><td>過去問題を解く(骨子のみ)</td><td>3h (1題0.5h×5題)</td><td>1ヶ月前〜前日</td></tr>
<tr><td>午後Ⅱ題材準備</td><td>題材となるプロジェクトの概要を作成</td><td>3h (1例1h×3例)</td><td>数週間前〜前日</td></tr>
<tr><td>午後Ⅰ・Ⅱ 留意点リスト作成</td><td>過去を振り返り、当日の留意点をまとめる</td><td>1h</td><td>数週間前〜前日</td></tr>
<tr><td colspan="3">計</td><td>38h</td><td><br /></td></tr>
</tbody></table>
<div>
<br />
ちなみに参考書は、『<a href="http://www.amazon.co.jp/gp/product/4798122394/ref=as_li_qf_sp_asin_tl?ie=UTF8&tag=tiamazonaffil-22&linkCode=as2&camp=247&creative=1211&creativeASIN=4798122394">情報処理教科書 プロジェクトマネージャ</a>』を利用(リンクは2011年度版)。本書は、類書の中でも飛び抜けて秀逸と感じました。<br />
<br />
<ul>
<li>要点が明確</li>
<li>最短で合格しつつ、かつプロマネとして基礎力が付くように書かれている</li>
<li>過去8年分の問題と回答が、付録CD-ROMに入っており、十分な問題量がある。<br />(PMの行動規範は、午後Ⅱ問題+解答例を読むだけで分かるため、おそらく合格後にも使える。午後Ⅰの問題を読むだけで、午後Ⅱの事例対策になる)</li>
</ul>
<br />
<br /></div>
<div>
<span class="Apple-style-span" style="font-size: large;">2. 学習時の留意点</span><br />
<br />
午後Ⅰ:<br />
<ul>
<li>得意分野の場合は、時間内に答えられるようにすることを目標にする。<br />不得意分野の場合は、知識を付けることを目標にする。</li>
<li>解く問題が「文中から抜粋するタイプ」か「知識で答えるタイプ」か「答えを推測するタイプ」かを明確にしてから、答える。</li>
<li>字数によって、まず回答文の形式を意識してから、答える。<br />例えば、10〜15字→キーワードで、20字→単文(◯◯が△△)、30〜40字→(◯◯が△△で□□) と。</li>
</ul>
<div>
午後Ⅱ:</div>
<div>
<ul>
<li>決まり文句は覚えておく。例えばアについては「私はシステムインテグレータB社に属するプロジェクトマネージャである。先般私が携わったプロジェクト(以下PJ)は、○○業のA社より 依頼された、○○○○○である。本システムは、○○○○○である。○ヶ月、要員は○人、総工数は○人月、総コストは◯千万円である。私は本案件のプロジェクトマネージャとして携わった。」など。</li>
<li>各フェーズ(以下)について、実際に要した時間を記録し、以下の目安からどれだけずれたかを計る。
<ul>
<li>問題文解読+ストーリー構成:20分 (〜14:55)</li>
<li>システム概要記入:5分 (〜15:00)</li>
<li>ア (目安700字):20分 (〜15:20)</li>
<li>イ (目安1200字):40分 (〜16:00)</li>
<li>ウ (目安900字):30分 (〜16:30)</li>
</ul>
</li>
<li>時間をオーバーしてしまった場合は、その原因を必ず分析する。<br />(自分の場合は以下のような原因があった)
</li>
<ul>
<li>ストーリー構成で想定した内容は書き終えたものの、字数が足りず、追加内容を考えた。</li>
<li>ストーリー構成の内容が多すぎて、削りながら作文したため、時間を要した。</li>
<li>書いているうちに内容の矛盾に気づき、修正方法の検討と修正に時間を要した。</li>
<li>書いているうちに、ストーリー構成で想定した方針からずれていることに気づき、書きなおしたため、時間を要した。</li>
<li>事象を説明するために、予想以上に字数を要してしまい、時間(と字数)を要した。(例えばプロジェクトの体制を複雑に設定しすぎてしまった など)</li>
</ul>
<li>論文の題材は、次のものを用意すると効果的</li>
<ul>
<li>納期を守るのに苦労したプロジェクト (PMBOKのタイム)</li>
<li>品質確保に苦労したプロジェクト (PMBOKの品質)</li>
<li>複雑な開発体制だったプロジェクト (PMBOKの人的資源・コミュニケーション)</li>
</ul>
</ul>
</div>
<br />
<span class="Apple-style-span" style="font-size: large;">3. 本番時の留意点</span><br />
<br />
午後I (論述問題):<br />
<ul>
<li>試験開始前: 解答用紙が配られたときに解答欄を眺めて、どの大問でどのような解答が求められているかを眺め、解きやすそうな大問を見つける。例えば、用語を答える問題 が多いか、40字程度の記述が多いか...など。(私は、できるだけ用語を答える小問が多い大問を選ぶようにした)</li>
<li>試験開始直後: その解きやすそうな大問を読み、問題の概要を把握する。<br />
まずはパラグラフのタイトル([]で書かれた部分) だけを読む(※1)。問題なさそうなら、その後、小問を読み始めて解いていく。</li>
<li>解く問題が「文中から抜粋するタイプ」か「知識で答えるタイプ」か「答えを推測するタイプ」かを明確にしてから、答える。</li>
<li>字数によって、まず回答文の形式を意識してから、答える。<br />(例えば、10〜15字→キーワードで、20字→単文(◯◯が△△)、30〜40字→(◯◯が△△で□□) と)。次に、字数の過不足は、冗長な表現があれば削ったり言い換えたりする、修飾語を挿入/削除する、文末を調整する。</li>
<li>解答欄は、できるだけ全て埋める。</li>
</ul>
<div>
※1 例えば、[計画策定]→[スケジュール管理計画]→[計画変更] という章立てになっていることを意識すれば、前半ではスケジュール策定に関する設問、後半ではスケジュール変更に関する設問があることがすぐに分かります。</div>
<br />
午後II (論文):<br />
<div>
<div>
<div style="margin: 0px;">
<ul>
<li>ストーリー構成を行うときは、あまり詰め込み過ぎないようにする。<br />「問題文中に現れるキーワードの2〜3点の具体化」と、もしあれば「文中にないが類推されるキーワード1点の具体化」の程度でよい。<br />また、その他のストーリーを書いても、それが問題文に関係ない話なら全く意味がない。</li>
<li>文章構成は、まず設問に対する答えを明確に一文で回答し、その後理由や具体例を書くようにする。</li>
<li>具体性を持ったキーワードを意図的に盛り込む。</li>
<li>可能なかぎり定量的に書く。</li>
<li>書いてみた結果字数が足りていなかったら、主張を繰り返して字数を稼ぐ。</li>
<li>数行書くごとに、問題の趣旨に逸脱していないか確認する。(上述の「書いているうちに、ストーリー構成で想定した方針からずれていることに気づき...」への対策)</li>
<li>主張を明確にするため、原因・方式・対策などの項目を列挙する場合、必ず順位付けをする。これをしておくと、「トレードオフのある複数の項目からひとつを選ぶ」という場合にも説明しやすいと思う。</li>
<li>使えるフレーズ</li>
<ul>
<li>「○○という状況であった。」</li>
<li>「○○と判明した。」</li>
<li>「本来ならば○○が理想であった。」</li>
<li>「○○という制約があった。」</li>
</ul>
<li>「このような状況では一般的には◯◯をすべきだが、△△なので、□□とした」と書くと、状況が明確になる。(あとプロマネとして正しい知識を持っていることも示せる)</li>
<li>プロジェクトマネージャの本務ではない業務(すなわちPMBOKの9つの知識体系に直結しない業務)は絶対に書かない。書くと減点されるだけでなく、以後の論点がずれるという問題がある。(設計はシステムアーキテクトや他のスペシャリストと相談する/例え主題が移行やテストであったとしても、視点はQ,C,Dとリスクににする) </li>
<li>解答用紙を汚さないため、問題冊子を切り離し、使わない1枚を下敷き替わりにする。(見開きの2ページについて、解答がそれぞれの解答用紙に写ってしまい非常に読みにくくなるのを防ぐため)</li>
</ul>
<div>
<span class="Apple-style-span" style="font-size: large;">4. 午後Ⅱ回答</span></div>
<div>
メモ+一部補完で書きます。問3(組織要員管理)を選択。</div>
</div>
</div>
</div>
<ul>
<li>プロジェクトについて:<ul>
<li>概要:B社向けSaaS基盤システムの構築。本PJは自社(A社)において経営戦略上最重要PJであり、本PJを早急に発足し、システムを早急にリリースする必要が出てきた。アプリケーションは既存のものを流用、インフラは新規設計・構築。</li>
<li>チーム編成:アプリケーション(AP)グループとインフラ(IS)グループ、自分は両グループを統括する立場のプロマネ。APグループはこれまで本システムのAP開発を行ってきた。ISグループは、インフラの研究部門のメンバを異動させることにより新規結成。</li>
</ul>
</li>
<li>イ:人間的側面の問題、誘発されると想定したリスク、対策<ul>
<li>PJが抱える問題:<ol>
<li>ISグループ内の意欲低下。<br />別部門から人事異動で結成したことにより、本PJの業務内容と担当者の希望領域との間にずれが生じていた。それに伴いグループ全体として意欲低下。(設問中の「意欲の低下による成果物の品質の低下」を意図)<br />さらに、上記問題に伴い、ISグループのリーダとメンバ間で不和が起こり、生産性低下。(設問中の「要員間の対立が...」を意図)</li>
<li>APグループのリーダーPが、家庭の問題を抱えている<br />(設問中の「健康を損なうことによる進捗遅延」に類する現象を意図)</li>
</ol>
</li>
<li>誘発されると想定したリスク:<ol>
<li>インフラ概要設計の品質低下による、スケジュール遅延と、後工程での後戻りに伴うコスト増</li>
<li>リーダー不在により、APの開発についてスケジュール遅延</li>
</ol>
</li>
<li>対策:</li>
<ol>
<li>メンバ全員と面接を実施し、担当者の希望領域をヒヤリング。結果、本システムリリース後に、本システムの改善をさせる業務を担当してもらうことで、合意を得た。またそれに向け、現時点から改善点をまとめる作業を新規に指示。</li>
<li>APグループのサブリーダーQ(経験豊富な開発者)に、リーダーPの業務の一部を権限付きで任命。特に、次期人事異動でシステムアーキテクトに昇格させることを意図した。<br />なお、リーダーPの一部業務の移管は、リーダーP自身にさせた (Pの意欲を低下させないため)。</li>
</ol>
</ul>
</li>
<li>ウ:対策の評価、認識した課題、今後の改善点<br />(上手くまとまっていないが、概ね以下のようなことを記述)</li>
<ul>
<li>対策を施すことで、スケジュール遅延が1ヶ月生じたが、全体として取っていたバッファ内に収まっており、スケジュール内でリリースできた。</li>
<li>要員のモチベーションを維持することは重要。今回のケースでは、労働者が基本的には高次元の要求を持っていたが、実作業とマッチしないことが原因だったため、マズローのY理論の考え方に従い要員の自主性を尊重し、対策を打った。結果、要員が自主的に働くようになった。</li>
<li>組織要員管理の面から、要員教育は重要。PJを遂行する上で、適切に要員教育計画を立てる必要がある。</li>
<li>外部環境の変化が激しい昨今、限られた要員でPJを遂行せざるを得ないケースが多い。その状況下で、今回のように要員自身が納得しない状況で異動を伴い、PJを遂行するケースがある。そこで、モチベーションをウォッチし、適切に業務を与えることが、PMとして重要な仕事。</li>
</ul>
</ul>
<div>
<br /></div>
</div>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?t=tiamazonaffil-22&o=9&p=8&l=as1&asins=4798122483&ref=qf_sp_asin_til&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="height: 240px; width: 120px;"></iframe>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?t=tiamazonaffil-22&o=9&p=8&l=as1&asins=4798122394&ref=qf_sp_asin_til&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="height: 240px; width: 120px;"></iframe>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-60208995843221734432011-09-19T00:24:00.000+09:002011-09-19T00:24:47.604+09:00『読んだら使える 日経新聞の読み方』『<a href="http://www.amazon.co.jp/gp/product/4756914543/ref=as_li_tf_tl?ie=UTF8&tag=tiamazonaffil-22&linkCode=as2&camp=247&creative=1211&creativeASIN=4756914543">読んだら使える 日経新聞の読み方</a>』(角川総一著)という本を読みました。<br />
<br />
最近、経営戦略や事業戦略について興味を持っています。ところが、私はおそらく同年代の中では日経はあまり読まない方 (週1〜2回) で、企業活動・経済・政治についてもかなり疎い方だと思います。そこで、もう少しインプットを増やすべきと思い、日経新聞を読む頻度を増やすことを決意し、本書を手に取りました。<br />
<br />
本書を読んで重要と感じたことを4点:<br />
<ol>
<li><b>重要箇所だけを読む;基本的には見出し+リードだけを読む</b></li>
<li><b>新聞の構造を知り、自分にとって重要なページから順に読む</b></li>
<li><b>他の情報源も活用し、得た情報を再構築する</b></li>
<li><b>アウトプットしようという意識で読む</b></li>
</ol>
<div>
日常的に読んでいる方から見れば当然のことですが、今一度整理のためにまとめてみます。</div>
<div>
<br /></div>
<div>
1. <b>重要箇所だけを読む;基本的には見出し+リードだけを読む</b></div>
<div>
どうしても多くの記事を最後まで読んでしまいがち。しかし、最後まで読むと時間がかかるけれども、時間をかけた割に得られる効果は少ないと思います。</div>
<div>
そこで、基本的には見出し+リードだけを読みその他は切り捨てるという意識で、緩急を付けて読む。それが効率よく情報収集するためのコツだと思います。</div>
<div>
切り捨てた結果として得られない情報はあるけれど、毎日読むことを続ければ徐々に背景知識も増えていき、ある程度の段階になると、自然と斜め読みだけで重要な情報を得られるようになるのではと思います。</div>
<div>
<br /></div>
<div>
<div>
2. <b>新聞の構造を知り、自分にとって重要なページから順に読む</b></div>
<div>
記事レベルでは、見出し+リードがもっとも重要な箇所。一方、新聞全体でみるとどんなカテゴリがあって、どのページにどの程度重要な情報があって... を意識し、自分にとって重要なページから読むことで、時間効果的に読めると思います。</div>
</div>
<div>
本書の3章に詳しく書かれています。</div>
<div>
(ちなみに自分は、一面→総合→企業→経済 の順に読もうと思います。)</div>
<div>
<br /></div>
<div>
<div>
3. <b>他の情報源も活用し、得た情報を再構築する</b></div>
<div>
理解するには、情報を多方面から得ることが重要です(以前書いた記事:「<a href="http://000013.blogspot.com/2011/01/to-really-learn-quit-studying-and-take.html">記憶を定着させるにはテストが最も効果的。知識が再構築されるから</a>」も近い内容かもしれません)。そのため、日経以外にも、他の全国誌や、Google Newsのキーワード配信機能、ブログなどの情報源も活用することが望ましいです。<br />
<br />
4. <b>アウトプットしようという意識で読むこと</b><br />
著者曰く、「『インプットしたからアウトプットできた』のではなく、『アウトプットしたいとう意欲が先にありき』」なのだそう。<br />
何も意識しないと、ついつい受動的に読んでしまいがちだと思います。そうすると、おそらく、頭には入って来ないでしょう。そこで、アウトプットすることを前提に読むと、「どんな情報が必要か」を自然と意識し、必要な情報を必要なだけインプットできると思います。<br />
つい忘れがちですが... 情報をインプットすることは目的ではなく、収集した情報を何らかの形で役立てることが目的ですよね。そこを意識しながら読むことが重要と再認識しました。</div>
</div>
<div>
<br /></div>
-----<br />
前回の更新から半年以上も空いてしまいました。<br />
仕事が忙しい...という一見正しそうな(だが大きく誤解している)理由で、いつの間にか記事を更新しない状態になっていました。<br />
しかし、文章を素早く分かりやすく書けること(本質的には、必要な情報を効果的に人に伝えられること)は重要。そこで、トレーニングも兼ねて、続けて行きたいと思っています。以前書いた記事(<a href="http://000013.blogspot.com/2009/10/blog-post.html">[雑記] システムアーキテクト受験</a>)でも以下のとおり書いていますし...。<br />
<blockquote>
文章を書くのが本当に苦手ということですかね。
試験を受けて、文章が書けないことを痛感しました。
しかし、社会人としては文章表現力は非常に重要。
資格に関してはなんとか逃げられるかもしれませんが、社会人としては文章力は大事ですよね。
そこで物を書くことを定期的に続けたいと思います。</blockquote>
<br />
。
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?t=tiamazonaffil-22&o=9&p=8&l=as1&asins=4756914543&ref=tf_til&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="height: 240px; width: 120px;"></iframe>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-7627941833505839942011-01-26T00:03:00.005+09:002011-01-26T00:14:56.273+09:00記憶を定着させるにはテストが最も効果的。知識が再構築されるから。 (To Really Learn, Quit Studying and Take a Test)The New York Timesの記事 (<a href="http://www.nytimes.com/2011/01/21/science/21memory.html">To Really Learn, Quit Studying and Take a Test</a>) から。<br />
<div><br />
Purdue Universityでの研究結果:文章を読んで1週間後に内容を思い出すという実験をしたところ、「文章を読んだ直後にテストを受けた」被験者は、「文章を反復した」被験者や「図を描きながら文章を読んだ」被験者に比べて、文章の内容をよく思い出すことができたという結果になった。<br />
<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">また、「一週間後にどれだけ覚えているか?」という質問に対しては、「文章を読んだ後にテストを受けた」グループが、3グループのうちでもっとも自信がないと答えた。</div><div><br />
</div>なぜテストが効果的なのかは明らかになっていないが、「テストによって、後に情報を取り出すための手がかりが作られるからだろう」とのこと。また、Marcia Linn教授(University of California)によると、「テストによって、知識と知識のずれを認識し、より整合性がとれた形で知識が再構築されるのではないか」とのこと。<br />
<br />
***<br />
<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">この記事のエッセンスは「得た知識は、テストをして知識を再構築することで、定着する」ということだと思いますが、自分の経験を振り返ってみると確かに納得できます。<br />
自分は高校時代は社会科が不得意で、物理が得意だったのですが、それも当てはまりそうな気がします。問題集や暗記カードなどで「テスト」し丸暗記した社会科は、ほとんど長期的な記憶には残らないのに対し、色々な問題や事例を当てはめることで「テスト」した物理は長期的によく覚えているような気がします。</div><div><br />
</div>さて、この記事を読んで、気づいたことが3点あります。<br />
1つめは、自分は理解したつもりになっている場合が多いなということ。例えば、「ふんふん、なるほど」と読み進めた本については、知識の再構築の過程を踏んでいないため、記憶への定着は少ないということになります (しかも図で整理しても定着しないというのだから)。一方、読んで頭に知識を入れたあと、様々なの角度から叩いて「テスト」した場合は、知識の再構築ができて定着する残ることになると思います。<br />
(巷では「本を読んだらアウトプットせよ」と云われていると思いますが、その本質は、「アウトプットする過程で、知識の再構築が行われて、知識が定着するから」かもしれません。)<br />
<br />
2つめに、語学についても同じことが言えそうです。単純に単語帳で語彙を頭に入れただけでは、定着しないと思います (仮に暗記カードを使ってテストをしたとしても、知識の再構築には寄与しないと思うので、効果がなさそうです)。一方で、頭に入れたその語彙を、他の知識と関連付けて再構築することで、はじめて定着することになると思います。例えば、その語彙をイメージする、その利用シーンをイメージする、他の単語と併せて文章を作る、話す、その語彙を辞書で引くなどをすることで、定着するのだと思います。<br />
<br />
3つめ。この話は、PDCAのやり方にも生かせるのではないかと思います。仮に「ある活動に対してCheckしてActすることの本質が、その活動を再構築すること」だとすると、上で紹介した記事の「テスト」という考え方が当てはまるかもしれません。漠然とCheckとActを行っても効果はさほど現れず、「目的に適っている活動か?」「効果が出る活動か?」「もっと改善できる活動ではないか?」というように「テスト」するように行うと、活動を再構築することができ、より改善されるかもしれません。<br />
(ちょっと飛躍しすぎた感はありますが...)</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-3769376505787747942010-12-30T19:26:00.004+09:002011-09-18T12:59:22.079+09:00[雑記] システムアーキテクト 受験システムアーキテクトという試験を受験しました。昨年に続いて2度めの受験で、今回は無事合格することができました(<a href="http://000013.blogspot.com/2009/10/blog-post.html">昨年度の受験時の記録</a>)。<br />
試験対策および本番で気を付けた点をまとめます。<br />
<h4>
本番までの準備</h4>
基本的な知識は昨年に受験した際に学習したため、今回は「前回学習した内容の再確認」を基本にし、その上で「解答のコツを押さえる」ようにしました。4種類ある各科目の準備は次のように進めました。なお、使った問題集は、『情報処理教科書 [秋期]高度試験午前対策 2009年度版』と『情報処理教科書 システムアーキテクト 2009年度版』の2冊です。(<b>2011年度版のリンク</b>:『<a href="http://www.amazon.co.jp/gp/product/479812348X/ref=as_li_qf_sp_asin_tl?ie=UTF8&tag=tiamazonaffil-22&linkCode=as2&camp=247&creative=1211&creativeASIN=479812348X">情報処理教科書 [秋期]高度試験午前I・II 2011年版</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=tiamazonaffil-22&l=as2&o=9&a=479812348X" style="border: none !important; margin: 0px !important;" width="1" />
』(午前用)と『<a href="http://www.amazon.co.jp/gp/product/4798123749/ref=as_li_qf_sp_asin_tl?ie=UTF8&tag=tiamazonaffil-22&linkCode=as2&camp=247&creative=1211&creativeASIN=4798123749">情報処理教科書 システムアーキテクト 2011年版</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=tiamazonaffil-22&l=as2&o=9&a=4798123749" style="border: none !important; margin: 0px !important;" width="1" />
』)<br />
<ul>
<li>午前I (四択/共通問題): 今回は免除のため対策なし</li>
<li>午前II (四択/分野個別問題):<ol>
<li>問題集を2〜3回解く。</li>
</ol>
</li>
<li>午後I (記述問題):<ol>
<li>問題集の基礎知識部分を一読し、知識を再確認する。(1h)</li>
<li>過去問題を数問解き、問題の形式に慣れる。(2-5h)</li>
</ol>
</li>
<li>午後II (論文):<ol>
<li>問題集の「論文の書き方」を一読する。</li>
<li>過去問題を数問解き、問題の形式に慣れる。(3-9h)</li>
<li>プロジェクト例を想定しておく。(2h)</li>
</ol>
</li>
</ul>
続いて、午後I(記述問題)と午後II(論文問題)について、学習時に意識したことと本番で意識した内容をまとめます。<br />
<h4>
学習時に意識したこと</h4>
<div>
午後I (記述問題):</div>
<div>
<ul>
<li>得意分野と不得意分野を明確に把握しておく。不得意分野の過去問題を解くときは知識を付けるようにするが、得意分野の過去問題を解くときは、知識を付けるよりも「どうやって時間内に答えを見つけるか」に重点を置く。<br />
(私の場合、得意分野は、業務分析・業務設計・UML・開発管理、不得意な分野はシステム移行・パッケージ導入)</li>
</ul>
<div>
午後II (論文):<br />
<ul>
<li>決まり文句は覚えておく。<ul>
<li>例 えばアについては「私はシステムインテグレータB社に属するシステムアーキテクトである。先般私が携わったプロジェクト(以下PJ)は、○○業のA社より 依頼された、○○○○○である。本システムは、○○○○○である。総開発期間は○ヶ月、要員は○人、総工数は○人月である。私は本案件にシステム構築の リーダーとして携わった。」など。</li>
</ul>
</li>
<li>各フェーズ(以下)について、実際に要した時間を記録し、以下の目安からどれだけずれたかを計る。</li>
<ul>
<li>問題文解読+ストーリー構成:20分 (〜14:55)</li>
<li>システム概要記入:5分 (〜15:00)</li>
<li>ア (目安700字):20分 (〜15:20)</li>
<li>イ (目安1200字):40分 (〜16:00)</li>
<li>ウ (目安900字):30分 (〜16:30)</li>
</ul>
<li>時間をオーバーしてしまった場合は、その原因を必ず分析する。(自分の場合は以下のような原因があった)<br />
<ul>
<li>ストーリー構成で想定した内容は書き終えたものの、字数が足りず、追加内容を考えた。</li>
<li>ストーリー構成の内容が多すぎて、削りながら作文したため、時間を要した。</li>
<li>書いているうちに内容の矛盾に気づき、修正方法の検討と修正に時間を要した。</li>
<li>書いているうちに、ストーリー構成で想定した方針からずれていることに気づき、書きなおしたため、時間を要した。</li>
<li>事象を説明するために、予想以上に字数を要してしまい、時間(と字数)を要した。(例えば説明するためにアーキテクチャの詳細にまで触れてしまった場合など)</li>
</ul>
</li>
</ul>
</div>
</div>
<h4>
本番で気をつけたこと</h4>
午後I (論述問題):<br />
<ul>
<li>試験開始前: 解答用紙が配られたときに解答欄を眺めて、どの大問でどのような解答が求められているかを眺め、解きやすそうな大問を見つける。例えば、用語を答える問題 が多いか、40字程度の記述が多いか...など。(自分は、できるだけ用語を答える小問が多い大問を選ぶようにした)</li>
<li>試験開始直後: その解きやすそうな大問を読み、問題の概要を把握する。<br />
まずはパラグラフのタイトル([]で書かれた部分) だけを読む(※1)。問題なさそうなら、その後、小問を読み始めて解いていく。</li>
<li>小問回答時: 小問が次のどちらであるかを早めに見極める。(→それぞれで戦略が異なるため) </li>
<ul>
<li>問題文中に書いてある答えを求める問題</li>
<li>問題文中の手がかりをヒントに、システムアーキテクトの常識から答える問題</li>
</ul>
<li>字数指定の設問は、<br />
まず、以下を手がかりに解答を組み立てる。<br />
<ul>
<li>10字:キーワード</li>
<li>20字:短文</li>
<li>30-40字:修飾語をつけた文章</li>
<li>50字:2文</li>
</ul>
次に、字数の過不足は、冗長な表現があれば削ったり言い換えたりする、修飾語を挿入/削除する、文末を調整する。</li>
</ul>
<div>
※1 例えば、[現行システムの概要]→[〇〇業務の概要]→[○○業務の問題点]→[○○業務の改善]→[新システムの○○機能] だけを読むと、「既存のシステムを動かしているのだけど、問題があるため、改善し、新機能を追加したのか」といった流れが分かります。</div>
<br />
午後II (論文):<br />
<div>
<div>
<div style="margin: 0px;">
<ul>
<li>具体性を持ったキーワードを意図的に盛り込む。</li>
<li>書いてみた結果字数が足りていなかったら、主張を繰り返して字数を稼ぐ。</li>
<li>数行書くごとに、問題の趣旨に逸脱していないか確認する。(上述の「書いているうちに、ストーリー構成で想定した方針からずれていることに気づき...」への対策)</li>
<li>ストーリー構成を行うときは、あまり盛り込み過ぎないようにする。<br />
「問題文中に現れるキーワードの2〜3点の具体化」+(あれば)「文中にないが類推されるキーワード1点の具体化」程度でよい。<br />
また、その他のストーリーを書いても意味がない。</li>
<li>主張を明確にするため、原因・方式・対策などの項目を列挙する場合、必ず順位付けをする。これをしておくと、「トレードオフのある複数の項目からひとつを選ぶ」という場合にも説明しやすいと思う。</li>
<li>使えるフレーズ<ul>
<li>「○○という状況であった。」</li>
<li>「○○と判明した。」</li>
<li>「本来ならば○○が理想であった。」</li>
<li>「○○という制約があった。」</li>
<li>「○○方式と○○方式が考えられたが、○○方式を採用した。理由は...。」</li>
</ul>
</li>
<li>システムアーキテクトの本務ではない業務は書かない。(工数と予算はプロマネと相談する/データベースとネットワークの設計はそれぞれのスペシャリストと相談する/コーディングとテストはPJメンバにさせる) </li>
<li>解答用紙を汚さないため、問題冊子を切り離し、使わない1枚を下敷き替わりにする。(見開きの2ページについて、解答がそれぞれの解答用紙に写ってしまい非常に読みにくくなるのを防ぐため)</li>
</ul>
</div>
</div>
</div>
<h4>
参考 (今回受験した際の所感と解答)</h4>
所感:<br />
<div>
<ul>
<li>午後I:<ul>
<li>問3(設備棚卸システム機能追加)と問4(デジタルサイネージシステム設計)を選択。</li>
<li>問3は、仕事で(人力で)設備の棚卸を行ったことがあるので、題意は理解しやすかったです。ディスプレイとPC本体で同じ資産番号なのに、別々の場所にあったり、別の事業所にあったり...といろいろと面倒だった記憶があります。</li>
<li>問4は、一見解けそうと思い着手したものの、推測で書かせる解答が多く、自分の答えが合っているのかそうでないのか自信が持てず、終始不安でした。</li>
</ul>
</li>
<li>午後II:<ul>
<li>問3(組込みシステムでのハードウェアとソフトウェアの機能分担)を選択。<br />
問2か問3で迷いましたが、問2がだいぶ抽象的で書きにくそうに感じたため。</li>
<li>字数は、ア:約800字、イ:約1000字、ウ:約800字。</li>
<li>イとウの内容分担が不明確のまま書いてしまい、少し内容が重複してしまったような気がします。 書いている途中でイとウの内容分担で悩んでしまったためか、時間はぎりぎりでした。</li>
</ul>
</li>
</ul>
</div>
午後Iで書いた解答 (自分のメモより。下線部はおそらく×となったであろう答え)<br />
(ちなみに、80点でした)<br />
<ul>
<li>問3<ul>
<li>設問1:<u>(忘れました...)</u></li>
<li>設問2(1):同一の資産シールを複数枚発行している資産についての現物数の不足</li>
<li>設問2(2):<br />
照合内訳数/内訳テーブルの現物照合実施日が初期値の場合のみ、1を加算する。<br />
最新現物照合実施日/内訳テーブルの現物照合実施日の値と同一とする。</li>
<li>設問3:(忘れました)</li>
<li>設問4(1):遠隔地の資産を回収したとき、システム上照合されていた資産が見つからないこと</li>
<li>設問4(2):<u>(忘れました)</u></li>
</ul>
</li>
<li>問4<ul>
<li>設問1(1):対象のディスプレイ端末、<u>データ保持の有無</u></li>
<li>設問1(2):プレイリスト</li>
<li>設問2(1):<u>ネットワークの性能</u>、ネットワークの切断</li>
<li>設問2(2):NTPサーバと通信し、各端末の時刻を調整する機能</li>
<li>設問2(3):ディスプレイ端末のバックライトの調節機能</li>
<li>設問3(1):HDDの数およびプロセッサの数</li>
<li>設問3(2):<u>サーバ全体としてデータ伝送性能が向上すること</u></li>
<li>設問4(1):タッチパネル</li>
<li>設問4(2):<u>転送量が少ないことによる転送時間の短縮</u></li>
</ul>
</li>
</ul>
午後IIで書いた解答の骨子 (自分のメモ+一部補完)<br />
<ul>
<li>システム:ロボット制御機器の分散システム制御部。障害検知・フェイルオーバー機能・自己状態最適化機能を備える。</li>
<li>イ:ハードウェアとソフトウェアのトレードオフの検討項目</li>
<ul>
<li>障害検知機能:自社保有技術 (自社保有技術を流用) </li>
<li>フェイルオーバ機能: 性能 (完了時間) <br />
⇒ハードでもソフトでも可だったので、プロトタイプを作成し評価することにした。</li>
<li>自己状態最適化機能:再利用性(アルゴリズムを置き換えやすくしたい)</li>
<li>全体として: 開発スケジュール、開発・製造コスト</li>
</ul>
<li>ウ:機能分担の内容と評価</li>
<ul>
<li>ハード: 障害検知機能とフェイルオーバ機能</li>
<li>ソフト:自己状態最適化機能とした。</li>
<li> フェイルオーバ機能はプロトタイプを作成し評価した結果、ソフトウェアでは1msオーダーでの性能が出せなかった。スケジュールは伸び、製造コストはかさんだが、依頼元とPMと相談し合意を得た。</li>
<li>評価:(忘れましたが、「開発コストが○○ほどかかったが、性能を出せた」などと書いたように思います)</li>
</ul>
</ul>
<div>
<br /></div>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?t=tiamazonaffil-22&o=9&p=8&l=as1&asins=4798123749&ref=qf_sp_asin_til&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="height: 240px; width: 120px;"></iframe>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?t=tiamazonaffil-22&o=9&p=8&l=as1&asins=479812348X&ref=qf_sp_asin_til&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="height: 240px; width: 120px;"></iframe>
※上記リンクは、2011年度版です。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-81505369647453386492010-12-18T23:51:00.007+09:002012-12-14T15:22:39.228+09:00[パズル] 99人の囚人「99人の囚人」という論理パズルについて、問題と解答を書きます。<br />
<br />
この問題は、職場の先輩のブログ: <a href="http://yamanity.blog.ocn.ne.jp/nyantacos/">にゃんたこす!徒然草。</a>の<a href="http://yamanity.blog.ocn.ne.jp/nyantacos/2010/03/post_c8c7.html">99人の囚人 問題編(数学パズル)</a>という記事に載っていたものです。面白い問題と思ったので、自分のブログにも転載させて頂きます。解答は私が書いたのですが、結構ややこしいものになってしまいました。エレガントな解答を思いついた方がいらっしゃいましたら、ぜひコメントにて指摘頂ければと思います。<br />
<br />
<hr />
ではまず問題から。(前述のブログから引用)<br />
<h4>
問題</h4>
<blockquote>
99人の囚人がいます。彼らの頭に1~100までのナンバーカードが貼りつけられた帽子をランダムにかぶせます。<br />
他人の帽子は見ることができても、自分の帽子は見ることができません。<br />
帽子の数は全部で100なので、一つ使われずに余ります。<br />
そのナンバーは囚人達にはわからないようにしておきます。<br />
この状況で、囚人たちに一斉に自分のナンバーを宣言させて、全員が正解だったら釈放するという賭けをします。<br />
囚人たちには帽子をかぶせられる前に相談タイムが設けられています。<br />
どういう戦略を取れば、助かる確率を最も高くできるでしょうか?</blockquote>
<br />
以下では、ヒントと答えを書きます。<br />
<br />
<hr />
<h4>
ヒント</h4>
各囚人は、自分以外の98人の囚人のナンバーカードを見ることができます。ナンバーカードは全部で100個あるため、自分のナンバーは2通りある (すなわち、1〜100の数のうち、他の囚人98人が被っている98個の数 以外の2つの数) ことが分かります。その2通りの数のうち、1つは自分のナンバー、もうひとつは、使われなかったナンバーということになります。下の表では、各囚人にとってどの番号を見ることができるかを示します (未使用の番号を61としています)。<br />
<br />
<table align="center" border="1"><tbody>
<tr><td></td><th align="center">囚人1<br />
の番号</th><th align="center">囚人2<br />
の番号</th><th align="center">...</th><th>囚人i-1<br />
の番号</th><th align="center">囚人i</th><th align="center">囚人i+1<br />
の番号</th><th align="center">...</th><th align="center">囚人99<br />
の番号</th><th align="center">未使用<br />
の番号</th><th align="center"></th><th align="center">見えない<br />
数</th></tr>
<tr><th>囚人1にとって</th><td align="center">?</td><td align="center">38</td><td align="center">...</td><td align="center">20</td><td align="center">59</td><td align="center">14</td><td align="center">...</td><td align="center">7</td><td align="center">?</td><td></td><td align="center">96と61</td></tr>
<tr><th>囚人2にとって</th><td align="center">96</td><td align="center">?</td><td align="center">...</td><td align="center">20</td><td align="center">59</td><td align="center">14</td><td align="center">...</td><td align="center">7</td><td align="center">?</td><td></td><td align="center">38と61</td></tr>
<tr><th>:</th><td align="center">:</td><td align="center">:</td><td align="center">...</td><td align="center">:</td><td align="center">:</td><td align="center">:</td><td align="center">...</td><td align="center">:</td><td align="center">:</td><td></td><td align="center">:</td></tr>
<tr><th>囚人iにとって</th><td align="center">96</td><td align="center">38</td><td align="center">...</td><td align="center">20</td><td align="center">?</td><td align="center">14</td><td align="center">...</td><td align="center">7</td><td align="center">?</td><td></td><td align="center">59と61</td></tr>
<tr><th>:</th><td align="center">:</td><td align="center">:</td><td align="center">...</td><td align="center">:</td><td align="center">:</td><td align="center">:</td><td align="center">...</td><td align="center">:</td><td align="center">:</td><td><br /></td><td align="center">:</td></tr>
<tr><th>囚人99にとって</th><td align="center">96</td><td align="center">38</td><td align="center">...</td><td align="center">20</td><td align="center">59</td><td align="center">14</td><td align="center">...</td><td align="center">?</td><td align="center">?</td><td></td><td align="center">7と61</td></tr>
</tbody></table>
<br />
<br />
<b>ヒントの1つめ</b>:<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
「見えない2つの数を元に必ず自分の番号を当てる方法」は存在し得ません。なぜなら、ある囚人にとって、「他の囚人が被っている帽子の番号の情報(98個の整数)」のみでは、2つの可能性を1つに絞ることができないからです。(※1)。</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
そこで、答えは、「あらかじめ2つの可能性を1つに絞るためのルールを決めておく」、より正確には「相談タイムにて『各囚人が<u>あるルール</u>に基づいて2つの数のうちの一方を宣言する』と取り決め、各囚人はその通りに宣言する」となります。<br />
<br />
ちなみに、各囚人が「見えない2つ数のうちの1つを<u>適当に</u>宣言する」とすれば、全員が釈放される可能性はほぼゼロ (1/2の100乗≒宝くじで1等を5連続で当てる確率) となります。</div>
<br />
<b>ヒントの2つめ</b>:<br />
次の性質を持つルールが存在します: そのルールに基づいて各囚人が宣言した場合、1/2の確率で「全員が正しい数を宣言する」が、1/2の確率で「<u>全員が</u>間違った数を宣言する」。<br />
<br />
※1 もし問題に条件を追加して、「他の人が被っている帽子を見た後、何らかの意思疎通を行って良い」とか、「宣言する際には一斉に行う必要はない」とかとするならば、100%の確率で脱出できる答えが出てきます。<br />
<br />
<hr />
<h4>
答え</h4>
答えは「相談タイムにて『<u>(囚人1の番号, 囚人2の番号, ..., 囚人99の番号, 未使用の番号) という順列が偶順列(※2)である</u>』と山を掛ける。各囚人は、他の囚人の番号を見て、前述の順列が偶順列となるように自分の番号を決め、それを宣言する」です。<br />
このようにすると、50%の確率で全員が解放されます。もし、山が当たった場合(すなわち前述の順列が偶順列であった場合)、全ての囚人は自分の番号を正しく定めることができるため、開放されます。一方、不幸にも前述の順列が奇順列であった場合は、全ての囚人が自分の番号を誤ります。<br />
<br />
各囚人は、必ず一意に自分の番号を決めることができます。自分の番号となる数は2つあり、そのうち1つを選ぶと前述の順列が偶順列となり、もう1つを選ぶと奇順列となります。理由は、任意の2要素に対して、それらを交換した順列は奇偶が逆になる(※3)ためです。<br />
<div>
<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
# 順列の偶奇を使わずに解く方法を考えてみたのですが、思いつきませんでした。もし思いついた方がいらっしゃいましたらぜひ教えて下さい。</div>
<br />
<br />
注:<br />
<ul>
<li>※2 異なる整数からなる順列 (<i>a</i><sub>1</sub>, ..., <i>a<sub>i</sub></i>, ...)があるとき、「その順列に対する転倒数」を、「<i>i</i><<i>j</i>かつ <i>a<sub>i</sub></i>><i>a<sub>j</sub></i> である組(<i>i</i>, <i>j</i>)の個数」と定めます。転倒数が偶数である順列を偶順列、奇数である順列を奇順列と定めます。</li>
<li>※3 順列 (..., <i>a<sub>i</sub></i>, ..., <i><span class="Apple-style-span" style="font-style: normal;"><i>a<sub>j</sub></i></span></i>, ...) と、2要素 <i>a<sub>i</sub></i>, <i><span class="Apple-style-span" style="font-style: normal;"><i>a<sub>j</sub></i></span></i> を入れ替えた順列 (..., <i><span class="Apple-style-span" style="font-style: normal;"><i>a<sub>j</sub></i></span></i>, ..., <i>a<sub>i</sub></i>, ...) の偶奇が逆になる理由について説明します。まず、順列の <i>i</i><・<<i>j</i> 番目の部分で、<i>a<sub>i</sub></i>よりも小さい要素の個数を<i>m</i>個、<i><span class="Apple-style-span" style="font-style: normal;"><i>a<sub>j</sub></i></span></i>よりも大きい要素の個数を<i>n</i>個とします。すると、入れ替えることによって、以下の理由から、順列の転倒数の偶奇は反転します。<br />
<ul>
<li><i>a<sub>i</sub></i>の位置が<i>i</i>番目から<i>j</i>番目に移ることにより、転倒数は<i>m</i>減り、(<i>j</i>−<i>i</i>−1)−<i>m</i>増えます。</li>
<li><i>a<sub>j</sub></i>の位置がj番目から<i>i</i>番目に移ることにより、転倒数は<i>n</i>減り、(<i>j</i>−<i>i</i>−1)−<i>n</i>増えます。</li>
<li><i>a<sub>i</sub></i>と<i>a<sub>j</sub></i>について、もし<i>a<sub>i</sub></i><<i>a<sub>j</sub></i>ならば転倒数は1増え、<i>a<sub>i</sub></i>><i>a<sub>j</sub></i>ならば転倒数は1減ります。</li>
<li>上の3点を合わせると、転倒数は −<u><i>m</i></u>+<u>(<i>j</i>−<i>i</i>−1)−<i>m</i></u>−<u><i>n</i></u>+<u>(<i>j</i>−<i>i</i>−1)−<i>n</i></u>±<u>1</u>=2(−<i>m</i>−<i>n</i>+<i>j</i>−<i>i</i>−1)±1 だけ増えることとなり、転倒数の偶奇が反転します。</li>
</ul>
</li>
</ul>
</div>
Unknownnoreply@blogger.com15tag:blogger.com,1999:blog-1775570113795813102.post-40571165694218088752010-11-23T22:35:00.001+09:002010-11-23T22:36:47.408+09:00Kinect ハック on Mac OS X:(3) デモプログラム glview過去2回、OpenKinectについて書きました(<a href="http://000013.blogspot.com/2010/11/kinect-on-mac-os-x1-openkinect.html">第1回(サンプルの実行)</a>、<a href="http://000013.blogspot.com/2010/11/kinect-on-mac-os-x2-openkinect-api.html">第2回(APIの概要)</a>)。今回はデモプログラムであるglviewについて調べてみます。<br />
<br />
ポイントは、(1)OpenKinectのAPIをどのように使っているか、(2)OpenGL(GLUT)をどのように使っているか の2点だと思います。今回の目次はこのようになります。<br />
<ul><li>main関数の処理内容</li>
<li>描画処理 (gl_threadfunc関数, DrawGLScene関数)の処理内容</li>
<li>カメラからの情報取得コールバック関数(depth_cb関数, rgb_cb関数)の処理内容</li>
<li>ユーザ入力を受ける関数 (keyPressed関数) の処理内容</li>
</ul><h4>main関数の処理内容</h4>main関数の処理の流れは、次のようになっています。(各種APIは<a href="http://000013.blogspot.com/2010/11/kinect-on-mac-os-x2-openkinect-api.html">第2回(APIの概要)</a>を参照して下さい)<br />
<ol><li><b>t_gamma配列(※)の事前計算</b> (※深度カメラからの情報を距離情報に直すときに利用)</li>
<li><b>コンテキストの作成</b> (freenect_init関数)</li>
<li><b>ログレベルの設定</b> (freenect_set_log_level関数)</li>
<li><b>利用するデバイスの決定</b> (freenect_set_log_level関数):<br />
プログラム起動時の引数が渡されていれば、その番号のデバイスを利用します。渡されていなければ0番(最初の)デバイスを利用します。もし利用可能なデバイスがなければ、終了します。</li>
<li><b>デバイスのオープン</b> (freenect_open_device関数)</li>
<li><b>種々の設定</b>:<br />
<ul><li><b>傾きの設定</b> (freenect_set_tilt_degs関数):<br />
初期設定では0度(==freenect_angle)</li>
<li><b>LEDの設定</b> (freenect_set_led関数):<br />
初期設定では赤(==LED_RED)</li>
<li><b>カメラの情報を受け取るコールバック関数の設定</b>(freenect_set_depth_callback関数, freenect_set_rgb_callback関数):<br />
それぞれdepth_cb関数とrgb_cb関数を設定</li>
<li><b>カメラの情報を受け取る際のフォーマットの指定</b> (freenect_set_rgb_format関数, freenect_set_depth_format)</li>
: それぞれRGB、11bitを指定 </ul></li>
<li><b>新規スレッドにてgl_threadfunc関数(後に説明)を実行</b></li>
<li><b>カメラ情報取得開始</b> (freenect_start_depth関数, freenect_start_rgb関数)</li>
<li><b>正常に処理が行われている間、加速度情報をコンソールに表示</b> (freenect_get_raw_accel関数, freenect_get_mks_accel関数)</li>
<li><b>カメラ情報取得終了</b> (freenect_stop_depth関数, freenect_stop_rgb関数)</li>
</ol><h4>描画処理 (gl_threadfunc関数, DrawGLScene関数)の処理内容</h4>描画処理の初期化を行う関数が、gl_threadfunc関数です。main関数から呼ばれ、次の処理を行います。<br />
<ol><li>ウィンドウの作成</li>
<li>描画関数を設定(DrawGLScene関数)</li>
<li>キー押し下げ時の処理関数の設定(keyPressed関数)</li>
<li>描画の開始。</li>
</ol>gl_threadfunc関数で設定した描画関数(DrawGLScene関数)は、何度も実行され、カメラから取得した情報をOpenGLのウィンドウに表示します。カメラから取得できる深度とRGBはともに、幅640×高さ480の形になっています。その情報は、gl_depth_back配列, gl_rgb_back配列に入っており(カメラからの情報取得用のコールバック(depth_cb関数, rgb_cb関数)で設定されます)、その情報を一旦コピーしてから(gl_depth_front配列, gl_rgb_back配列)、ウィンドウに表示します (※)。深度情報はウィンドウ左側0<x<640の領域に、RGB情報はウィンドウ右側の640<x<1280の領域に描画されます。<br />
<br />
※ このようにback(カメラからの取得用)、front(描画用)の2つの分けている理由は、処理速度を上げるため。もし一つの配列を使ってデータをやりとりすると、カメラから情報を取得できても、描画が完全に終わるまでは取得した情報を書き込めず、パフォーマンスが低下します。<br />
<h4>カメラからの情報取得コールバック関数(depth_cb関数, rgb_cb関数)の処理内容</h4>カメラからの取得できる情報には、深度情報とRGB情報があります。それらはOpenKinectから定期的に呼ばれるコールバック関数で受け取ることができます。<br />
<br />
まず、RGB情報について(rgb_cb関数)は、引数として渡された領域(変数rgb)を、gl_rgb_back配列にそのままコピー(memcpy)しています。(前述の通り、書きこまれたgl_rgb_back配列の情報は、描画処理(DrawGLScene関数)内でgl_rgb_front配列にコピーされた上で描画されます)<br />
<br />
次に、深度情報について(depth_cb関数)ですが、RGB情報と比べて処理が多少複雑です。というのは、RGBの場合はそのまま表示すれば良かったのですが、深度情報の場合は、(1)深度情報を距離に直す (2)視覚化するために深度情報を色情報に変換(※)する ためです。処理内容は次の通りです。<br />
(※ カメラから近い順に、白→赤→黄→緑→水色→青→黒 と段階的に変化するようにします)<br />
<ol><li>ピクセルの数(FREENECT_FRAME_PIX == 640×480)だけループし、それぞれについて次の処理を行います。<br />
<ol><li>ピクセルの深度の値(depth[i])を距離に補正し、変数pvalに格納します。(main関数であらかじめ計算しておいたt_gamma配列を利用します)</li>
<li>補正した値pvalを、下位8ビットと上位のビットに分離します。下位の値(0〜255)は変数lbに格納します。</li>
<li>上位のビットの値に応じて、色分けをします。 <br />
<ul><li>上位ビット値=0 (0〜255)の場合:下位ビットの値に応じて白(pval=0)→赤(pval=255)に段階的に変化</li>
<li>上位ビット値=1 (256〜511)の場合:同様に赤(pval=256)→黄(pval=511) に段階的に変化</li>
<li>上位ビット値=2 の場合:黄→緑 に段階的に変化</li>
<li>上位ビット値=3 の場合:緑→水色 に段階的に変化</li>
<li>上位ビット値=4 の場合:水色→青 に段階的に変化</li>
<li>上位ビット値=5 の場合:青→黒 に段階的に変化</li>
<li>上位ビット値>5 の場合:黒(一色)</li>
</ul></li>
</ol></li>
</ol><h4>ユーザ入力を受ける関数 (keyPressed関数) の処理内容</h4>この関数は、OpenGLに登録され、表示しているウィンドウ上でキー入力があった場合に実行されます。<br />
<ul><li>'w', 's', 'x'が押された場合、Kinectの傾きをそれぞれ1度上昇、水平、1度下降とします (関数の最後で、freenect_set_tilt_degs関数を呼び出します)。</li>
<li>'0'〜'6'が押された場合、数字の値に応じてLEDを点滅させます。0:無灯、1:緑、2:赤、3:黄(※)、4:黄点滅(※)、5:緑点滅、6:赤と黄(※)を交互に点滅。(※:黄色は、実際のところは橙色のようです)</li>
</ul><br />
<hr />今回は、前回調べたAPIをもとに、サンプルプログラムの挙動を把握しました。次回は、深度情報と色情報をもとに、データを立体的に表示するプログラムを作ってみたいと思います。<br />
<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?t=les.miller-22&o=9&p=8&l=as1&asins=B003T9VDJQ&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="height: 240px; width: 120px;"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-78630918000557313872010-11-23T12:04:00.008+09:002010-11-25T23:03:57.100+09:00Kinect ハック on Mac OS X:(2) OpenKinect APIの概要<a href="http://000013.blogspot.com/2010/11/kinect-on-mac-os-x1-openkinect.html">前回(OpenKinect サンプルの実行)</a>に引き続き、今回もOpenKinectについて書いてみます。今回は、現時点で公開されている OpenKinect (正確にはOpenKinectのCモジュール(?)) のAPIについて調べてみました。以下、目次です。<br />
<ul><li>モジュール構成</li>
<li>core.c (コア部分)</li>
<li>camera.c (カメラ情報取得)</li>
<li>tilt.c (傾斜制御・LED制御・加速度センサ情報)</li>
</ul><div>なお、ここで書くAPIは、随時変わる可能性があると思います。</div><h4>モジュール構成</h4>3つのモジュール(コア部分、カメラ情報取得、傾斜制御・LED制御・加速度センサ情報)から構成されています。<br />
<ul><li>core.c:OpenKinectのコア部分のモジュール</li>
<li>camera.c:Kinectのカメラ情報を取得するモジュール</li>
<li>tilt.c:Kinectの傾き制御、KinectのLED制御、Kinectの加速度センサに関するモジュール</li>
</ul><h4>core.c (コア部分)</h4>Kinectのベースとなる関数が含まれます。実際の処理の流れは次のようになると思います:コンテキストの作成(freenect_init)→デバイスのオープン(freenect_open_device)→処理→デバイスのクローズ(freenect_close_device)→コンテキストの破棄(freenect_shutdown)。また、ログ関連の関数や、ユーザ情報を構造体に設定/取得する関数等も含まれます。<br />
<ul><li><b>コンテキストの作成</b> (コンテキストを作成し、指定されたアドレスへポインタを設定する):<br />
int freenect_init(freenect_context **ctx, freenect_usb_context *usb_ctx);</li>
<li><b>コンテキストの破棄</b> (指定されたコンテキストを破棄する):<br />
int freenect_shutdown(freenect_context *ctx);</li>
<li><b>ログレベルの設定</b> (指定されたコンテキストのログレベルを設定する。※後注1):<br />
void freenect_set_log_level(freenect_context *ctx, freenect_loglevel level);</li>
<li><b>ログ出力関数の設定</b> (指定されたコンテキストにログ出力を行う関数を設定する。※後注2):<br />
void freenect_set_log_callback(freenect_context *ctx, freenect_log_cb cb);</li>
<li><b>イベント処理の実行</b> (指定されたコンテキストに溜まっているイベントを処理する):<br />
int freenect_process_events(freenect_context *ctx);</li>
<li><b>コンテキストに含まれるデバイス数の取得</b>:<br />
int freenect_num_devices(freenect_context *ctx);</li>
<li><b>デバイスのオープン</b>:<br />
int freenect_open_device(freenect_context *ctx, freenect_device **dev, int index);</li>
<li><b>デバイスのクローズ</b>:<br />
int freenect_close_device(freenect_device *dev);</li>
<li><b>ユーザーデータのポインタの設定と取得</b>:<br />
void freenect_set_user(freenect_device *dev, void *user);<br />
void *freenect_get_user(freenect_device *dev);</li>
<li><b>ログの出力</b>:<br />
void fn_log(freenect_context *ctx, freenect_loglevel level, const char *fmt, ...)</li>
</ul><h4>camera.c (カメラ情報取得)</h4>Kinectから取得できるカメラ情報には、RGB情報と深度情報があります。それぞれの情報は、あらかじめ指定したコールバック関数に、定期的に渡されます。<br />
<ul><li><b>コールバック関数の登録</b> (カメラからの情報を処理するコールバック関数の登録):<br />
void freenect_set_{depth,rgb}_callback(freenect_device *dev, freenect_{depth,rgb}_cb cb);</li>
<li><b>取得する情報のフォーマットの設定</b>(後注3):<br />
int freenect_set_{depth,rgb}_format(freenect_device *dev, freenect_{depth,rgb}_format fmt);</li>
<li><b>情報取得の開始</b>:<br />
int freenect_start_{depth,rgb}(freenect_device *dev);</li>
<li><b>情報取得の停止</b>:<br />
int freenect_stop_{depth,rgb}(freenect_device *dev);</li>
</ul><h4>tilt.c (傾斜制御・LED制御・加速度センサ情報)</h4>Kinectは、傾斜を変えたり(±15度)、LEDを点灯(後注4)させることができます。また加速度センサがあります。角度を指定する時には、目的の角度を2倍して(+31〜-31度)指定します。<br />
<ul><li><b>傾斜</b> (指定された角度にKinectを傾けます):<br />
int freenect_set_tilt_degs(freenect_device *dev, double angle);</li>
<li><b>LEDの点灯</b> (指定された方法(後注4)でLEDを光らせます):<br />
int freenect_set_led(freenect_device *dev, freenect_led_options option);</li>
<li><b>加速度情報の取得 </b>(Kinect内蔵の素子の加速度情報を取得します):<br />
int freenect_get_raw_accel(freenect_device *dev, int16_t* x, int16_t* y, int16_t* z);</li>
<li><b>加速度情報(補正)の取得 </b>(加速度情報をMKS単位系に単位換算して取得します):<br />
int freenect_get_mks_accel(freenect_device *dev, double* x, double* y, double* z);</li>
</ul><h4>補足</h4><ol><li>ログレベルはlibfreenect.h参照</li>
<li>ログコールバックを設定しない場合は、ログは標準エラー出力に出力される。</li>
<li>RGB情報のフォーマットは、RGBとベイヤ型配列の2種類。深度情報のフォーマットは、11bit, 10bit, packed-11bit, packed-10bit の4種類。(libfreenect.h参照)</li>
<li>LEDの光らせ方は、LED_GREEN, LED_RED, LED_YELLOW, LED_BLINK_YELLOW, LED_BLINK_GREEN, LED_BLINK_RED_YELLOW の6種類。(libfreenect.h参照)</li>
</ol><br />
<hr/>次回は、デモプログラム(glview.c)とOpenGLについて調べてみようと思います。<br />
<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?t=les.miller-22&o=9&p=8&l=as1&asins=B003T9VDJQ&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="height: 240px; width: 120px;"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-57554087072768243672010-11-23T09:37:00.000+09:002010-11-23T09:37:42.823+09:00Kinect ハック on Mac OS X:(1) OpenKinect サンプルの実行Kinectとは、11月に発売された、MicrosoftのXbox 360用のデバイス。カメラの他に深度センサーやマイクが付いており、プレイヤーはコントローラを持たずにゲームを操作できます。今までのゲームコントローラとは異なる、最先端のデバイスです。<br />
KinectはXbox用のコントローラなのですが、既にいくつかの機能がハックされ、Windows, Linux, Mac OS X用のドライバが出されています(<a href="http://openkinect.org/">OpenKinect Project</a>)。こんなデバイスが簡単に使えるようになっているのであれば、色々と試してみる価値はありそうです(※ちなみに価格も11,693円(Amazon)と安価)。<br />
そこで、このOpenKinectを使って、Kinectを使ったプログラムを作ってみようと思います。このブログでは覚え書きをまとめておきます。<br />
<h4>目次</h4><ul><li>環境</li>
<li>事前準備</li>
<li>OpenKinectのビルド</li>
<li>サンプルプログラムの実行</li>
</ul><br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?t=les.miller-22&o=9&p=8&l=as1&asins=B003T9VDJQ&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="height: 240px; width: 120px;"></iframe><br />
<h4>環境</h4><ul><li>iMac (Early 2006)</li>
<li>Mac OS X 10.6.5</li>
<li>Xcode 3.2.4</li>
</ul><h4>事前準備</h4><ul><li>Xcode(開発環境):<br />
インストールされていなければ、 Mac OS Xのインストールディスクを挿入し、Optional Install→XcodeToolsと辿り、XcodeTools.mpkgをダブルクリックします。</li>
<li>gitとcmake:<br />
インストールされていなければ、下記のように、MacPortをインストールした後で、git-coreとcmakeをインストールします。<ul><li><a href="http://www.macports.org/install.php">http://www.macports.org/install.php</a> からインストーラをダウンロードし、実行</li>
<li>ターミナルから、sudo port install git-core を実行</li>
<li>ターミナルから、sudo port install cmake を実行</li>
</ul></li>
</ul><h4>OpenKinectのビルド</h4>基本的に<a href="http://openkinect.org/wiki/Getting_Started#OS_X">http://openkinect.org/wiki/Getting_Started#OS_X</a>に従って行います。<br />
<ol><li>OpenKinectとlibusbをダウンロード:<br />
<ul><li><code>git clone https://github.com/OpenKinect/libfreenect.git<br />
git clone git://git.libusb.org/libusb.gi</code></li>
</ul></li>
<li>libusbにパッチを当てた上でインストール:<ul><li><code>cd libusb<br />
./autogen.sh<br />
patch -p1 < ../libfreenect/platform/osx/libusb-osx-kinect.diff<br />
./configure<br />
make<br />
sudo make install</code></li>
</ul></li>
<li>OpenKinectをconfigure:<br />
</li>
<ul><li>まずはccmake (※Xcodeを使いたいため最後のccmakeには "-G Xcode"を渡す):<br />
<ul><li><code>cd ../libfreenect/<br />
cd c<br />
mkdir build<br />
cd build<br />
ccmake -G Xcode ..</code></li>
</ul></li>
<li>画面に "Required library USB NOT FOUND."と表示されます。キーボードで'e'を押して、編集モードに入ります。</li>
<li>カーソルを下に動かし、"USB_INCLUDE_DIR-NOTFOUND" の行に合わせます。</li>
<li>Enterを押し、"/usr/local/include/libusb-1.0/"を入力し、再度Enterを押します。</li>
<li>キーボードから、'c'を2回押してconfigureを2度実行し、その後'g'を押して設定ファイルを生成します。</li>
<li>最後に cmake:<br />
<ul><li><code>cmake -G Xcode ..</code></li>
</ul></li>
<li>"Build files have been written to: (略)"と表示されていれば成功</li>
</ul><li>Xcodeから、buildディレクトリにあるlibfreenect.xcodeprojを開く。</li>
<li>"Build and Run" アイコンをクリックする。 ("Build Succeeded" と表示されていれば成功。逆にErrorと表示されていれば失敗(後注))</li>
</ol><h4>サンプルプログラムの実行</h4><ol><li>ターミナル上からglviewを実行 (もしくはXcode上でglviewをダブルクリック):<br />
<ul><li><code>cd examples/Debug/<br />
./glview</code></li>
</ul></li>
<li>次のように表示されていれば成功:<br />
</li>
<ul><li><code>Kinect camera test<br />
Number of devices found: 0</code></li>
</ul></ol>実はまだKinectが届いていないのですが、プログラム上では問題なさそうなので、後はKinectが届いてからUSBに接続すれば動くはず...です。<br />
次はサンプルプログラムのソースコードを読んで、Kinectからのデータ取得方法を調べてみます。<br />
<hr />注: 自分の環境では、最初に実行したときに、エラーが出てビルドできませんでした。そこで以下の方法で暫定的に回避しました。(ビルド時のライブラリへのパスを指定する方法が分からなかったので...汚い方法です)<br />
<ul><li>エラーの内容:<br />
<code>ld: library not found for -lJPEG<br />
collect2: ld returned 1 exit status<br />
Command /Developer/usr/bin/gcc-4.2 failed with exit code 1</code></li>
<li>回避方法:<br />
<ul><li>MacPortでjpegライブラリをインストール:<br />
<ul><li><code>sudo port install jpeg +universal</code></li>
</ul></li>
<li>/opt/local/lib/libjpeg.* を libfreenect/c/build/lib にコピー。</li>
</ul></li>
</ul>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-1775570113795813102.post-49657548940843794102010-10-31T13:00:00.000+09:002010-10-31T13:00:46.583+09:00Simutrans: オープンソースの交通機関シミュレーションゲームとあるゲームにはまってしまいました。Simutrans という交通機関シミュレーションゲーム(※)。主にバス、トラック、鉄道、船舶、航空機などの交通機関を作っていき、街を作り上げていくゲームです。説明はWikipediaから引用すると、<br />
<blockquote>プレイヤーはゲーム開始時にマップを作成し、町や工場の需要に応じた各種交通機関を建設して、旅客や貨物を輸送し、利益を得ていく。MicroProseより発売されたトランスポートタイクーンに似ている。マップ作成時には起伏や街の数などの様々な設定を変更できるため、自分好みのマップを作成することができる。</blockquote><blockquote>ゲーム内で使用できる交通機関には、鉄道、路面電車、モノレール、リニアモーターカー、新交通システム、自動車、船舶、飛行機がある。旅客、貨物、郵便を輸送することができ、その収入によって利益を得ることができる。ただ、闇雲に建設していけばよいわけではなく、黒字となるように建設、運営していかなければならない。赤字が3ヶ月以上続くと破産してしまう。</blockquote>※ Simutrans: <a href="http://www.simutrans.com/">http://www.simutrans.com/</a> , Simutrans Japan (Simutrans 日本語化/解説ページ): <a href="http://japanese.simutrans.com/">http://japanese.simutrans.com/</a><br />
<br />
このゲームの良いところを自分なりに挙げてみると、3つあります。まず一つめは、多言語化されていること。日本語をはじめ15ヶ国語でプレイできます。ローカライズされているものはメニューだけではなく、プレイデータもその国のものになっています。例えば日本語化すると、建物や乗り物が日本のものになっていて(車も左側通行)、さらに産業には米が追加されています。<br />
<br />
次はカスタマイズ性。アドインを入れるという形で、ゲーム中のあらゆるものをカスタマイズできます。独自の車両を作って走らせることや独自の建物を追加するのはもちろん、産業を追加することもできるそうです。日本語化ページには、たくさんの日本の電車用のアドインがありました。また、本家ページには、風景や建物を、ペンシル画風にするものや漫画風にするものがあり、さらには火星のようにするものもありました (ただし火星のはまだ公開されていないようです)。<br />
<br />
最後は、AI(人工知能)が装備されていること。自分だけが街を作るのではなく最大12のAIのプレーヤーと一緒に街を作っていくことができます。<br />
<br />
一方、欠点としては、まだ発展途上で、インストーラやマニュアルが不完全だったりします。自分も最初に何をしてよいかは分からず、日本語サイトや本家サイトを見ながらやっていました。ゲームの全体像を理解するのに少し一苦労、そして例えば電車を走らせるにしても多くの手順を踏まなければならず、また路線が完成したと思っても電車が動いてくれなかったり...。とりあえずは「まずは動かしてみよう」というページと、各交通機関の扱い方のページがあると、もっとユーザが増えるのではと思います。<br />
<br />
最後に、自分の今の楽しみ方は、AIが街を発展させていくのを眺めること (上記の「まずは動かしてみよう」に該当するかも)。まずは初期マップをランダムに作り、その後、AIをオンに設定し、そして早送りすると、AIがどんどん街を作っていきます。発展するものもあればそうでないものもあり、見ていて飽きません。ある程度になったら、混んでいる道路を舗装して混雑を緩和したり、街を追加したり... とするとより発展するかも。Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-1775570113795813102.post-77957556050118425882010-01-31T13:22:00.003+09:002010-02-01T23:48:13.945+09:00『社会言語学入門—生きた言葉のおもしろさに迫る』社会言語学とは言語学の一種で、言語を、社会との関わりという視点から捉える学問です。その触りの部分を紹介する本、『社会言語学入門』(東照二著) を読みました。本書では、さまざまな例を示しながら、社会言語学の全体像を解説しています。<br />
<br />
本書では世界の様々な言語について述べられていています (主に英語と日本語が中心ですが)。<br />
以下、私が興味深く感じた内容について述べます。<br />
<br />
○<b>diglossia (二言語使い分け)</b><br />
diglossiaとは、言葉が使われるシチュエーションによって異なる言語が使われている状態のことです。例えばアラビア圏では、教会や学校では古典アラビア語が使われ、日常生活ではモロッコアラビア語が使われています。<br />
diglossiaに現れる二言語には主に、高い言葉と低い言葉に分けられます。高い言葉は、公的な場所で使われ、低い言葉は、日常的な用途で使われるのだそう。<br />
<br />
ここからは私の所感ですが、日本語はdiglossiaではありませんが、公的な言葉と日常的な言葉では、用語や文法が若干異なると思うので、これも広い意味でのdiglossiaになるのかなと思います。(例えば、くだけた表現(例えば「〜してる」「食べれる」「あたし」「〜じゃねーか」)は公式な場では使われないと思います。)<br />
<br />
○<b>コードスイッチング</b><br />
コードスイッチングとは、談話中に複数言語が入り交じること。最も簡単な例では「I was とても驚いた」とか。<br />
<br />
アメリカのあるラジオ局の放送では、英語とスペイン語が適度にコードスイッチされているそうです。<br />
# 聞いてみたい<br />
<br />
また、私が最近会ったフランス出身の友人から聞いた話。彼は、スペイン語は会話できるが、ポルトガル語は聞けるが話せないとのこと。だから、彼はスペイン語だけを話し、彼の友人はポルトガル語だけを話すという状態で、会話が成立するのだと言っていました (しかもこれはよくあるシチュエーションだそう)。<br />
<br />
○<b>意識と発音の相関性</b><br />
アメリカのMassachusetts州にある、Martha's Vinyard島での話。ここでは、母音/ai/の発音が、/ai/と/əi/の二種類で発音(※)されており、しかもそれが、島のアイデンティティとの相関があるそうです。島を愛して島に残りたい人は/əi/と発音し、そうでない人は英語の標準的と同じ[ai]と発音する傾向が見られたそうです。(※例えば、likeを発音すると、[laik](ライク)、[ləik](レイク)となります。)<br />
<br />
そういえば以前、「イラク」"Iraq" の発音が、話者の政治ポリシーによって変わるという調査結果を見つけました。第二音節を、民主的な立場の人は/ah/と発音し、共和的な立場の人は/æ/と発音するそうです。(http://www.slideshare.net/dialect/the-pronunciation-of-iraq)<br />
<br />
# ちょっとした疑問ですが、日本語でもこういった、立場によって発音が変わる例はあるか知りたいです。<br />
<br />
○<b>社会的ステータスと文法の誤りの相関性</b><br />
英語では、より社会的なステータスが高い人ほど、文法的に正しいと認識されている用法(※)を使う傾向が顕著に見られるそうです。(※ rの発音を落とさない、"the"を省略しないなど)<br />
<br />
○<b>文法と親和度との相関</b><br />
話者同士で同じ文法を使うと、話者同士の親和度も高まってくるのだそうです。特に親和度の高い会話では、文法ミス発生率も似てくるのだとか。<br />
しかも、精神療法ではカウンセリング時に、相手と文法を合わせるように気をつけるのだそうです。<br />
<br />
<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=les.miller-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4327401579" style="height: 240px; width: 120px;"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-33101210961342787292010-01-02T19:58:00.002+09:002010-01-02T21:38:51.989+09:00[雑記] 2010年の目標明けましておめでとうございます/寒中お見舞い申し上げます。<br />
皆様が、幸せな1年、そして素晴らしい new decade を過ごせますように。<br />
<br />
***<br />
新しい1年の始まりとして目標設定をします。この目標は、年末に旧年を振り返りつつマインドマップに描いたものです。今日は気の置けない友人にちょっとだけ話したのですが、まぁせっかく書いたのだからブログに公開しても良いかと思ったので、載せることにしました。ただし量が多いので抜粋。そして要望があればマインドマップもお見せします。<br />
<br />
目標の重点項目としては、<br />
・無駄な時間を作らないようにする。<br />
・常に人のことを意識する。<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">・文章力を鍛える。→日記を書く、ブログを適度に更新する。<br />
</div><div>・キャリアについては常に考える。<br />
</div><div><br />
</div><div>これらを設定するに至ったきっかけはたくさんありますが、一言で表せば、自分に足りていなくて、かつ今身につけたいもの。<br />
</div><div><br />
</div><br />
続いて、専門分野(IT)では、<br />
・システムアーキテクトとプロジェクトマネージャを取得する。<br />
・システム設計やプログラミング技術を、定期的に学習する。<br />
・Webサービスを作成する。<br />
そして語学(英語)では、<br />
・単語と親しくなる。<br />
・Time, New York Times, TechCrunchを読み続ける。<br />
・英会話レッスンを受ける。<br />
・会を開く。<br />
また非専門分野では、<br />
・言語学、感性、集合知、言語処理、経営、会計 について少しずつ学習<br />
<br />
といったところ。<br />
<br />
設定後に見返したときの反省点として、マインドマップにはもう少し具体的に描かれてはいるものの、抽象的というか、アクションが不明瞭だったり達成成果が見えづらいものがほとんどということです。次にレビューするのは4月の予定で、その時にはそれを意識するようにします。<br />
<br />
***<br />
さて、別の視点、というかより上位の視点から目標を立てるとすれば、自分を認識することだと思います。具体的には、上でやったような自己分析をして自分を観察しつつ、また外からの情報も取り入れて、自分をより認識することだと思っています。<br />
<br />
自分のことはまだまだ把握できていないように感じます。上のように目標を書いてみたものの、自分としては、本当に望んでいるものと比べて抜けやズレがたくさんあるように感じます。自分自身で納得できる目標が書けてないということは、自分のビジョンが不完全だったり、自己のことを十分に理解していないということだと思います (まぁ自分が納得できるレベルが高いせいも若干はあるかもしれませんが)。<br />
<br />
また、自分を把握するには、こうやって自己分析をするだけではなく、人に会ったり本を読んだりと外の空気に触れて自分のことを相対的に把握することも大事だと思います。<br />
<br />
ということで、目標である「自己を把握すること」が達成できたならば、2011年の元旦に自分らしい目標設定ができていると言えると思うので、こちらも頑張りたいと思います。<br />
<br />
***<br />
最後に、今年も、どうぞ宜しくお願い致します。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-55010799386800702902009-12-28T10:49:00.001+09:002009-12-31T09:00:56.504+09:00単純なパスワード370個は、Twitterでは使えない。TechCrunchに、<a href="http://www.techcrunch.com/2009/12/27/twitter-banned-passwords/">370 Passwords You Shouldn’t (And Can’t) Use On Twitter</a>(Twitterで使うべきではない&使えない370個のパスワード)という記事がありました。<br />
<br />
禁止パスワードの一覧は<a href="http://www.techcrunch.com/wp-content/uploads/2009/12/Twitter-banned-passwords.txt">こちら(TechCrunch内)</a>から見られます。これらは、Twitterのサインアップのページに直接ハードコーディングされているそうで、そこから抽出したものだそうです。<br />
<br />
見てみると単純なものがたくさん;123456, password, twitter など。<br />
Twitterがこういった形で規制しているということは、簡単なパスワードを使っている人が多いのかもしれません。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-82911955114926112042009-12-27T11:48:00.001+09:002009-12-28T10:16:41.285+09:00[雑記] 2009年振り返り私的な内容ですが、2009年の一年間を振り返ってみようと思います。<br />
<br />
***<br />
まずは会社生活から。<br />
<br />
経営環境の変化により社内にタスクフォース的な部署が生まれ、そこに異動したというのが最も大きな出来事。若干不本意ながらの異動であり、自分のキャリアについて考えることが多かった。個人的な仕事の仕方という点で言えば、仕事を抱えすぎた(量というより仕事の種類;PJ管理・技術開発・システム構築の全てを同時並行していた)ため、仕事を効率的に進めるには...と考えることも多かった。<br />
<br />
少し否定的に書いたものの、色々なことをやらせてもらえているということは、良い上司に恵まれているのだと思う。PJ管理も資料作りも、「部下にやらせてレビューし修正させて再レビューし...(おまけに部下は不機嫌になる始末)」とするよりは、自分でやった方が早いだろうに。こんな機会を与えてくれる上司には心から感謝している。<br />
<br />
技術開発では、技術や理論を肌で感じることと、アイディアを生み出すことの重要性を実感。<br />
技術や理論についていくのでアップアップするのではなく、その全体像も細部も知っている(というか感じられる)状態でいなければ、結局は何も生み出せない。問題点・改良余地のある部分の本質は、全体に散らばっていることが多いと思うから、「全体像は見えるけれど細部はわかりません」だったり「細かい動作一つ一つは知っているけれど、一つ一つ追って行かないと説明できません」だったりすると、けっきょく本質は捉えられず、大きな進歩もできない。<br />
そんなところでアイディアも重要。上に書いたような「問題点」は、明示的に見つけることができない。だから、ロジカルにではなく別の角度から見つける必要がある。<br />
アイディアを生むのは難しいことだけど、今年の経験からすると、日頃から発想力を広げようと努力する、人と問題を共有するあたりが効果的かなぁと思う。<br />
<br />
もう一つ、今年は上司がどうやってコミュニケーション(日常の受け答え・プレゼンなど)を取っているかを見ることが多かった。<br />
自分なりに分かった結果としては、質問に対して真面目に答えるのではなく、相手が求めている答えを見抜いて一言で示すこと。これは良く言われてることだと思うけれど、大事だと実感。この答え如何で、空気ががらっと変わってしまうから(特に怒られているときには...)。本当にこれを実行するのは不可能だとは思うけれど、状況によっては可能なことも多いと思う。<br />
<br />
<br />
***<br />
次は、会社生活以外について。(五月雨式に...)<br />
<br />
まずはライフハックという点。<br />
効率化の基本は無駄を省くこと... 同じようなことをいつも考えているよりは、一度考えたことは次からは省き必要に応じてアップデートすればよい。ということで、自分自身についてのマインドマップを定期的に描いた。結果、全体像は見えないけれど少しはマシにはなったかな...。<br />
もう一つ、アイディアについても同じことが言えると思い、家のPCにはWiki・マインドマップツールを導入 (ついでにSubversionで版管理も)し、いつもノートを持参するようにした。ときどき見返すと、役に立ったことが多かった。<br />
<br />
次は趣味の音楽演奏について。<br />
今まではいくつかのバンドをやっていたのだが、大人数(5人程度)でやるバンドを全てやめ、自分+歌い手2人の3人のバンドだけにした。バンドはバンドでやる楽しさがあるとは思うのだけれど... 理由は2つ。<br />
一つは、良い演奏をしようというよりも仲良くやろうということが優先されてしまい、向上しないこと。<br />
もう一つは、音の数が多い分、自分の課題が見えなくなってしまうこと。<br />
<br />
最後は人間関係について。<br />
社外のいわゆる勉強会というものに出てみることが多く、社外の知り合いも増えたように思います。言葉では分かっていたものの社内に閉じているのは良くないと実感。<br />
<br />
***<br />
まだまだ書き足りないところは沢山あるけれど、とりあえずはこんなところで。<br />
2010年の抱負はまた別途...。Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-1775570113795813102.post-45563464982577254512009-12-17T23:09:00.002+09:002009-12-17T23:28:25.261+09:00How does our language shape the way we think? (言語は考え方に影響を与えるか?)"What's Next: Dispatches on the Future of Science" という、若手の科学者のエッセイを集めた本があります。この中に、"How does our language shape the way we think?" (言語は考え方に影響を与えるか?) というエッセイがありました (原文は<a href="http://edge.org/3rd_culture/boroditsky09/boroditsky09_index.html">こちら(著者のウェブサイト)</a>にも載っています)。著者は、Lera Boroditskyさんというスタンフォード大学の助教授の方。専門は心理学・神経科学・記号論、研究テーマは言葉が思考に及ぼす影響とのことです。<br />
<br />
さて、言語は考え方に影響を与えるのか? 著者が研究した範囲では、答えは「与える」のだそう。従って、違う言語を使う人は考え方も違い、新しい言葉を習得すると考え方が変わり、多言語を話す人は違う言葉を話すときに、考え方も違ってくるということになります。<br />
<br />
それを裏付けるもっとも簡単な例として、動詞の持つ性質があります。例えば、動詞は、言語によって時制があったり、性別があったり、その動作の背景まで含んでいたりします。それによって話者が、話す際、どのような情報が求められるかが変わってきます。<br />
<br />
また少し驚くような例として、アボリジニの一族の絶対的方位感覚があります。多くの人は空間を定義するときには、話者または聞き手から見て相対的に定義しますが、この一族は絶対的な方位で定義します。例えば、「あなたの<u>南東方向の</u>足にアリがいる」とか。著者の研究に拠ると、彼らの方位感覚は言葉によって強制的に身についたものだということです。ちなみに、彼らに「写真を時系列に並べる」ということを指示してみたところ、東から西へ並べたのだそうです (私たち日本人は、一般的に左から右に並べますよね)。<br />
<br />
これが言葉自体の違いで生まれるのか、それとも単に文化的違いだけから来るものなのか? これについては、新しい言葉を学ぶことによって考え方が変わるということが見られたため、言葉が影響を及ぼしていると言えるのだそうです。<br />
<br />
研究に拠れば、空間・時間・色・物・物事の分析・原因の究明・数の認識・物体の認識・認知・感情・他人の気持ちの理解・リスクを取るべきかの決断・仕事や配偶者選びも、言葉の影響を受けていることが分かるそうです。<br />
<br />
***<br />
<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">日本人の文化は諸外国の文化に比べて、ハイコンテクストな文化とされているのも、文法上の性質から説明がつくのではと思いました。<br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">まず、日本語は文法的に曖昧さが許されている言語だと思います。日本語では好きな情報を好きなだけ文章に入れられます。日本語では「私が食べた」「ハンバーガーを食べた」「きのう食べた」「東京で食べた」「お箸で食べた」のどれもが許されるので、5W1H (誰が・いつ・何を・どこで・どうして・どうやって) について、話者が触れたい情報だけ触れることができます。英語では少なくとも、「誰が」については、それの文章中での役割が少ないとしても触れる必要がありますし、動詞によっては「何を」も必要です。<br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">これは逆に考えると、日本語では、意識的か無意識的かは問わず、隠せる情報をいくらでも隠すことができます。とすれば、日本語が「言わなくて良いことは言わない」という性質を帯びているのも納得がいくと思います。<br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">ちなみに、5W1H: who(whom), what, when, where, why, how のうち、はじめの2つは文法上省略不可で、後の4つは副詞で文法上省略可能です。ということは英語でも、when, where, why, how は随意なのですね。<br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">話が逸れつつありますが...<br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">言葉(表現)と考え方との関係や、言語と考え方との関係はとても興味深いです。<br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">言葉の一番の役割は、コミュニケーション、すなわち情報を人対人でやりとりすることです。そこでやりとりする情報は、伝達者が持っているもの、すなわち伝達者が認知していることとなります。とすると、言葉は、人が物事をどう認知するかに大きく依存するはずです。言葉を手がかりとして、認知について考えることができるように思います。<br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"># これは今回のエッセイには関係ないか...<br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">また、言語が考え方に影響を及ぼすとは、「情報をアウトプットする際には一定の様式である文法に従って開示することが求められるため、相対的に重要でない情報についても文法制約上、触れる必要がある場合がある。そのため、重要でない情報も話者が意識する必要が生まれ、考え方が影響を受ける。」といった感じだと思うのですが、どういった文法制約がどういう考えを生むのかはとても興味深いです。<br />
</div><br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=les.miller-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0307389316" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>Unknownnoreply@blogger.com18tag:blogger.com,1999:blog-1775570113795813102.post-57345236220125086382009-11-22T21:52:00.002+09:002009-11-23T13:08:19.497+09:00"Is Technology Dumbing Down Japanese?" (技術が日本語をダメにする?)先週のNew York Timesのエッセーに、<a href="http://www.nytimes.com/2009/11/08/books/review/EParker-t.html">Is Technology Dumbing Down Japanese?</a> (技術が日本語をダメにする?) というものがありました。<br />
<br />
ざっくりですが、以下のような内容が書かれています。<br />
<blockquote>インターネットの影響で、言葉は、ブログ・電子メール・携帯小説といった形で使われるようになった。しかし、昔と比べて、文法や表現が稚拙になってしまっている。この現象は英語にも現れているが、日本語ではより顕著に現れている。<br />
</blockquote><blockquote>『日本語が亡びるとき』(水村美苗著)では、「世界語」である英語によって日本語が駆逐されようとしていると述べられている。村上春樹さんは、言語の進化を変えることはできないと考えている。桐野夏生さんは、携帯小説が従来の日本文学に影響を及ぼすことはないと考えている。<br />
</blockquote><blockquote>言語能力は低下しているという一方で、日本人の読み書きの頻度は増えている。読書量は以前より増えたとの調査がある。また柴田元幸氏(東京大学教授)によれば、書く頻度も増えているとのこと(PCや携帯含め)。さらに、手紙を書くという伝統も増えたとのこと。本人の体験では、20年前と比べ、学生からの返事が増えたそうだ。<br />
</blockquote><blockquote>日本語は簡単になっているかもしれないが、多くの人が、読み書きを楽しんでいるとも言える。また、言語が難しくないことは、国際化しやすいというメリットもある。<br />
</blockquote><br />
***<br />
私は、言語が簡単になっていくことにはあまり抵抗がありません (私が日本語が苦手だからかもしれませんが ...)。全くの素人意見ですが、言語は、それを利用する人の文化に大きく依存するものだと思うからです。言語が今の時代に合うように徐々に変わっていくというのは、全く自然なことであると思いますし、それに抵抗するのはあまり生産的ではないように思います。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-3763273665352339192009-11-15T22:40:00.011+09:002009-11-22T20:43:51.057+09:00"Natural Language Processing with Python"自然言語処理(Natural Language Processing, NLP) には大学・大学院の授業で触れて以来、とても興味を持っていたものの、自分の専門とはちょっと離れていたため取り組んできませんでした。ところが、実現してみたいサービスがあり、そこで必要となるNLPについて勉強してみることにしました。<br />
<br />
<div>そこでまず入手したのが、掲題の本: "Natural Language Processing with Python".<br />
<div>Python (※)を使った自然言語処理手法についての本です。<br />
(※ Python: プログラミング言語の一種)<br />
</div><div><br />
</div><div>まだ4章までしか読了していないのですが、とりあえず、本の紹介をします。<br />
</div><div><br />
</div><div>本書は、NLPの初級者〜中級者向けに書かれており、NLPの理論から実践までを一通り学べるというものです。本書の構成は次の通り(訳は独自)で、NLPについて一通りは網羅しているようです。<br />
</div><div><ul><li>1章 言語処理とPython (Language Processing and Python)</li>
<li>2章 コーパスと単語を扱う (Accessing Text Corpora and Lexical Resources)</li>
<li>3章 生のテキストデータを処理する (Processing Raw Text)</li>
<li>4章 構造化されたプログラムを書く (Writing Structured Programs)</li>
<li>5章 単語の品詞分類(カテゴリ分け・タグ付け)を行う (Categorizing and Tagging Words)</li>
<li>6章 機械学習によるテキストデータの分類 (Learning to Classify Text)</li>
<li>7章 テキストから情報を抽出する (Extracting Information from Text)</li>
<li>8章 文構造を解析する (Analyzing Sentence Structure)</li>
<li>9章 特徴に基づいた文法を構築する (Building Feature-Based Grammars)</li>
<li>10章 文の意味を解析する (Analyzing the Meaning of Sentences)</li>
<li>11章 言語データを管理する (Managing Linguistic Data)</li>
</ul><div><br />
</div><div>序章には本書の特徴は次の通りだと書かれていますが、読んでみて確かに納得。<br />
</div><div><ul><li>実践的 (プログラムを動かすことによって理解を深められる)</li>
<li>プログラミング初級者やPython未経験者にとっては、プログラミングを学ぶことができる。</li>
<li>理論についてもしっかりと説明している。</li>
<li>理論と実践については、実用的な点からバランスを図っている。</li>
<li>読者を楽しませる工夫がされている。</li>
</ul></div><div>そして私見ですが、とても平易な英語で書かれていて、読みやすく感じます。<br />
</div></div></div><br />
<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=les.miller-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0596516495" style="height: 240px; width: 120px;"></iframe>Unknownnoreply@blogger.com21tag:blogger.com,1999:blog-1775570113795813102.post-21029928100193787572009-11-10T21:55:00.009+09:002009-11-11T23:44:42.820+09:00マグロの乱獲 ("Hunting for Tuna: The Environmental Peril Grows")マグロの乱獲が問題となっているとの記事が、Timeにありました(<a href="http://www.time.com/time/magazine/article/0,9171,1933116,00.html">Hunting for Tuna: The Environmental Peril Grows</a>, 週刊誌では"A Tough Catch"というタイトル)。<br /><br />この記事によれば、現状は次の通り。<br />・マグロの個体数はここ数十年の間に激減。<br />・現在の状態が続けば、早くて2012年には、地中海産のクロマグロはいなくなる。(World Wildlife Fundの試算)<br />・違法的に獲られている例も多い。<br />マグロは生態系のトップに位置する種であり、マグロが減ると生態系のバランスが崩れてしまうそうです。<br /><br />実は、全世界で獲れるクロマグロ60,000トンの80%は、日本で消費されるのだそうです。<br />日本に対する批判も所々に書かれています...<br />・日本人の漁獲団体は、マグロを捕りすぎていることを認識せず、漁獲量を制限しようともしない。<br />・日本人はマインドセットを変えるべき。<br /><br />サンフランシスコやシアトルには、sustainable-sushi bar (たくさん獲れる魚のみを提供する寿司屋) があるのだそう。<br /><br />***<br />記事を読んでいて、日本人の感覚はこの事実からはかけ離れているように感じました。(こう感じているのが自分だけなら幸いですが...)<br />マグロ問題は、日本国内でもっと重要視されるべきだと思います。そして日本が率先して、対策を打ち出して行ければ良いのですが...。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-47838175435031049492009-11-08T21:50:00.009+09:002009-12-07T23:33:59.789+09:00(Twitter changes the world)『ツイッター 140文字が世界を変える』In Japan, twitter becomes more common as before.<br />
<div>Some media begin to tweet their news article, and some artists and celebrities tweet their daily lives.<br />
</div><div><br />
</div><div>In Japan, a book focusing on twitter, which was published last month (Oct., 2009), hits the best-seller list.<br />
</div><div>The title is "Twitter; tweets in 140 characters change the world." (in Japanese: "ツイッター 140文字が世界を変える").<br />
</div><div><br />
</div><div>This book introduces the twitter service to Japanese people.<br />
</div><div>This book consisted of the following topics:<br />
</div><div>- <b>A history of twitter in Japan </b>(Chap. 1): <br />
</div><div>-- Twitter in Japan broke out twice, in 2007 and 2009.<br />
</div><div>- <b>What is twitter</b> (Chap. 2):<br />
</div><div>-- A brief introduction on twitter: who made twitter, why 140 chars, what is TL, RT, DM and hashtags, etc. Some sections in this chapter, twitter is compared to mixi, a Japanese social networking service such as Facebook or MySpace.<br />
</div><div>- <b>How to enjoy twitter</b> (Chap. 3):<br />
</div><div>-- There are no specific usages for twitter, except for following and twittering. Follow some people/sources/bots, and twitter about yourself.<br />
</div><div><div>- <b>Twitter in business</b> (Chap. 4):<br />
</div><div>-- Introduction of some advanced companies that is using twitter on business.<br />
</div><div>- <b>Twitter outlook for the future</b> (Chap. 5):<br />
</div><div>-- One perspective for twitter in Japan.<br />
</div><div><br />
</div><div><br />
</div></div><div>*** quotes ***<br />
</div><div><br />
</div><div><b>[preface]</b><br />
</div><div>- Every people makes the Internet useful. We shouldn't forget about that fact. (p. 6)<br />
</div><div><br />
</div><div><b>[Chap. 1: A history of twitter in Japan]</b><br />
</div><div>- One day, the following tweet poked up: (p. 47)<br />
</div><div>-- Found you in twitter after a long interval and followed you slyly.<br />
</div><div>-- You didn't notice that that was me. I think I can tell that this is myself to you someday.<br />
</div><div>-- Read your tweets and they reminded me of the good old days.<br />
</div><div>-- Few days after, you tweeted: "Today is my 3rd wedding anniversary."<br />
</div><div><br />
</div><div><b>[Chap. 2: What is twitter]</b><br />
</div><div>- Twitter acts as information filters. (pp. 97, 98)<br />
</div><div><br />
</div><div><b>[Chap. 3: How to enjoy twittering]</b><br />
</div><div>- When I tweeted "I'm in a bar : "Waura-Sakaba" now.", someone tweeted "May I come?". After then he came and joined with me. I was surprised that could happen with twitter. (p. 120)<br />
</div><div><br />
</div><div><b>[Chap. 4: Using twitter in business]</b><br />
</div><div>- With twitter, journalists can pass realtime information. (p. 156)<br />
</div><div>- In incunabula of the new service, the only thing we have to do is to try. (p. 166)<br />
</div><div><br />
</div><div><b>[Chap. 5: Twitter outlook for the future]</b><br />
</div><div>- A 140-character tweet in Japanese contains 3 times as much information as that in English. Therefore, twitter in Japan will evolve somewhat differently with that in English. (p. 186)<br />
</div><div>- When we send information, the information will be brushed up and come back to the sender. Keep tweeting, and your life will become affluent. (pp. 191, 205)<br />
</div><br />
<br />
<div><br />
link to Amazon.co.jp<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=les.miller-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4839933162" style="height: 240px; width: 120px;"></iframe><br />
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-71004166822880946222009-11-08T11:40:00.008+09:002009-12-06T22:15:28.902+09:00異業種交流の利点昨日、某読書会で知り合った友人と飲みました。<br />
<div>6人いて、全員が違う業界で違う職種を専門としていて、実際はいわゆる「異業種交流会」といった形です。<br />
</div><div>実際とても盛り上がり、4時間ばかり時間を忘れて楽しんできました。<br />
</div><div><br />
</div><div>皆の仕事がバラバラなのにどんな話題で盛り上がったか...。よく考えてみるとちょっと不思議。<br />
</div><div><br />
</div><div><div>一般的に異業種交流のメリットは「自分自身の置かれている状況を把握できる」ということがあると思うのですが、昨日はそれだけではなく「自分や自社の抱えている課題の本質を知ることができる」ということがあると感じました。昨日は、「誰かが自社の抱える課題を話すと、それに対して異業種の他の方が『うちの〜〜という状況もそれに似ている』と返す」といったパターンが所々にあり、一見まったくの別物に見える課題もその本質は一緒だったという発見がありました。<br />
</div></div><div><div><div><br />
</div><div># 例を挙げるべきなのですが、ブログに書ける内容ではないので省きます。<br />
</div><div><br />
</div><div><div>こうやって話が面白くなる理由の一つ(仮説)は、「異業種間の」交流会だから。<br />
</div></div></div></div><div><div>会話をするときには、自分の話題をある程度抽象化して相手に話すと思うのですが、異業種交流ではこの抽象化度合いが適度なのかと思います。<br />
</div><div>メンバーの共通点は、仕事をしていること (かつほとんどの場合、何らかの課題を抱えていること)。その度合いで抽象化をするので、自分の課題と他人の課題を、本質的なレベルで共有できるのだと思います。<br />
</div><div><br />
</div></div><div># ちなみに会場は、品川atréの<a href="http://www.thezen.jp/">the ZEN</a>というお店。料理一つ一つが丁寧に仕上がっていて、とても美味しく頂きました。<br />
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-16498113472152566232009-10-24T09:52:00.006+09:002009-12-09T22:30:41.966+09:00[雑記] システムアーキテクト受験システムアーキテクトを受験しました。<br />
この試験は、IPA(情報処理推進機構)が行っている国家試験で、システム要求を分析からシステム構築までを問う試験。主にSEのための試験です。<br />
<br />
このたぐいの国家試験はたくさんある(10種くらい?)のですが、その中で、システムアーキテクトはいわゆる「論文試験」と言われているもの。試験科目が全部で4科目でそのうちの1つが論文、といったもの。あるテーマについて「実際にどんな工夫をしたか」を、経験に基づいて、2,000〜3,000字にまとめるというものです。<br />
<br />
論文といっても、どういった内容を書けば良いかやどういうストーリーにするかは問題文中に提示されているので、事例さえあれば、実のところそんなに難しくはない。<br />
けれど、やはり2時間で2,000〜3,000字というのは、ふだん「文章」を書くことのない私にとってはしんどいです。(しかも手書きだし)<br />
<br />
<br />
さて、試験を受けてみて感じたこととして、<br />
私に足りない力は大きく2つ。<br />
・書きたいことを明確化するのに時間がかかる。<br />
・表現に乏しい。<br />
<br />
1つめは、要点を捉えるのが苦手というか...<br />
書き始めるときには、段落構成をしっかり捉えているのですが、<br />
いざ書き始めていると、そのうちに、「この段落では何を書いているんだっけ」とか「全体の構成はどんなんだっけ?」と思えてきてしまうのです。<br />
<br />
2つめは、言葉が出てこなかったり、概念をうまく表現できないことが多いということ。<br />
言葉が出てこない例としては、「課題を設定」と書きたいときに、「課題を... なんだろう、調査?分析?探索?発見?評価?」などとあれこれ考えてしまうということ。(←ちなみにこの例は、説明のために簡単にしたのですが...)<br />
概念を上手く表現できない例としては、「スケジュールを立てて作業を進めた」と書けばいいものを、「やるべきことをリスト化して完了日時を決めてそれに従って作業を進めた」のように書いてしまうのです。(こちらの例も説明のため簡単にしました...)<br />
<br />
まとめると、文章を書くのが本当に苦手ということですかね。<br />
試験を受けて、文章が書けないことを痛感しました。<br />
<br />
しかし、社会人としては文章表現力は非常に重要。<br />
資格に関してはなんとか逃げられるかもしれませんが、社会人としては文章力は大事ですよね。<br />
<br />
そこで物を書くことを定期的に続けたいと思います。<br />
<br />
今の時代なら「ブログを書く」でも良いのですが、「ハンドライティング」も大事。<br />
手で書くとすると、後から段落構成を変えられなくなるから、力になりそうな感じがします。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-57384159651889147912009-09-27T00:39:00.011+09:002009-11-22T20:45:18.733+09:00[雑記] サンシャイン牧場<div>mixiアプリ上で、サンシャイン牧場というアプリが流行っていて、少しはまっています。<br />
</div><br />
<div>ただ、このアプリでやっていることは、下の通りのルーチンワーク。<br />
・友達の農場を訪れ、手入れをしたり、収穫物をもらったりする。<br />
・自分の農場で、種をまき、作物を育て、収穫する。<br />
</div><!--
<blockquote><br />
<code></code><br />
<code><div>for friend in friends:<br />
</div><div><span style="white-space: pre;"> </span>for field in friend.getFields():<br />
</div><div><span style="white-space: pre;"> </span>if field.isMatured():<br />
</div><div><span style="white-space: pre;"> </span>field.getHarvest()<br />
</div><div><span style="white-space: pre;"> </span>elif field.isDrying():<br />
</div><div><span style="white-space: pre;"> </span>field.water()<br />
</div><div><span style="white-space: pre;"> </span>elif field.getGrowth() < 100:<br />
</div><div><span style="white-space: pre;"> </span>field.addWorm()<br />
</div><div><br />
</div><div>for field in getFields():<br />
</div><div><span style="white-space: pre;"> </span>if field.isMatured():<br />
</div><div><div><span style="white-space: pre;"> </span>field.getHarvest()<br />
</div><div><span style="white-space: pre;"> </span>elif field.isDrying():<br />
</div><div><span style="white-space: pre;"> </span>field.water()<br />
</div><div><span style="white-space: pre;"> </span>elif field.isEmpty():<br />
</div><div><span style="white-space: pre;"> </span>field.plant(buyPlant())<br />
</div></div></code><br />
</blockquote><br />
# これをAPI経由で呼べてBOTで操作できると便利だ... なんてことを考えてしまいましたが...。<br />
--><br />
このゲームになぜはまってしまうのか、このアプリがなぜ人気なのかはちょっと不思議です。<br />
仮説だけれども、<br />
1. 友人が多く集まるコミュニティで、「農場」という共通の話題で、「友人の作物の世話をし、その対価として作物の一部をもらう」というゆるいコミュニケーションが生まれる。<br />
2. 自分・友人の農場がどんどん成長していくのが楽しい。<br />
3. 農場を、「箱庭」のように育てていける。<br />
といった点を備えているからでしょうか。<br />
<br />
# そういえば、90年代にはたまごっちが流行りましたね・・・。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-19265588340597942472009-09-21T09:07:00.007+09:002009-11-16T10:32:05.361+09:00"Good to Great" /『ビジョナリーカンパニー(2) 飛躍の法則』How to build a *great* corporation? How to change a *good* company to a *great* one? In this book, successful companies, though they are not so many in the world, are analyzed and many ideas are derived from the analyses.<br />
<br />
As this book focuses on companies, ideas from the analyses are applicable to person.<br />
A corporation and a person have a lot in common; they have a goal, they have to compete with rivals to survive, they have many inner resources which have to be controlled efficiently.<br />
<br />
This is an assignment book in a reading club: "Outputting studying club, Tokyo".<br />
# Many study meetings, such as the reading club, are hot among business persons in Japan.<br />
<br />
Ideas I learned from this book are:<br />
- "good" and "great" differ.<br />
- the highest level manager has to be: modest but daring<br />
- face reality<br />
- focus on a point satisfies three necessary conditions. Try to find the point if you don't have any idea.<br />
- stick closely to the rules<br />
- consider technologies before bringing them in.<br />
- create a positive growth cycle.<br />
<br />
---<br />
「東京アウトプット勉強会」に参加したのですが、その課題本。<br />
<br />
企業を最高のものにするにはどうしたら良いか、実際に成功した大企業(しかも歴史のある企業)を分析した本です。<br />
<br />
原題は"Good To Great"。これは「良質」と「偉大」には大きな差があるといった意味が含まれています。<br />
<br />
企業について書かれている本なのですが、次のように置き換えれば、ほとんどの内容が実際には人にも当てはまると思います。<br />
<ul><li>会社=自分全体</li>
<li>経営者=自我</li>
<li>社員=自分の能力</li>
</ul><br />
以下、自分向けのメモです。<br />
<ul><li>「良好は偉大の敵」</li>
<li>第五水準(最高水準)の指導者の特徴:<br />
<ul><li>謙虚だが意志は強く、控えめだが大胆。</li>
<li>なすべきことはきちんと実行する。</li>
<li>成功の要因は、外部または運だと考える。失敗の要因は、内部にあると考える。</li>
</ul><br />
</li>
<li>厳しい現実を直視する。</li>
<li>3つの性質を兼ね備えたところをピンポイントで狙う (針鼠の概念)。なければ、徹底的に探す。<br />
<ul><li>世界一になれる可能性のある分野を、徹底的に追求する。</li>
<li>やることに対する情熱が、必要不可欠。</li>
<li>経済的原動力ももちろん必要。</li>
</ul><br />
</li>
<li>規律の文化</li>
<li>針鼠の概念はきちんと守る。裏返すと、「ピンポイント」ではないことはやらない。→やめるべきリストを作る</li>
<ul><li>枠組みの中に、自由と規律がある。</li>
</ul>
<li>技術は、必要かどうかの判断をしなければならない。</li>
<li>好循環を作り出さなければならない。</li>
</ul><br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=les.miller-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4822242633" style="height: 240px; width: 120px;"></iframe>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-1775570113795813102.post-7320378613735866542009-08-12T20:11:00.010+09:002009-08-12T20:57:49.360+09:00Sheeva Plugで自宅サーバ6月末にオーダーしたSheeva Plugがようやく届き、ただいまセットアップ中。<br /><br />○Mac OS Xからコンソールへ接続<br />Sheeva Plug本体へは、FTDIのUSB-Serialを用いて接続します。説明書にはWindowsやLinuxでの方法は書いてありますが、Mac OS Xのが書いていないので次のサイトを参考にしました: <a href="http://openplug.org/plugforum/index.php?topic=34.0">こちら</a><br /><br /><ol><br /><li>ドライバを http://www.ftdichip.com/Drivers/VCP.htm から取得</li><li>インストールし、リブート。</li><li>Info.plistをSheeva Plug用の設定に書き換える。(以下 rootで作業。PATCHFILE は、上記サイト(<a href="http://openplug.org/plugforum/index.php?topic=34.0">こちら</a>)の"patch your Info.plist file as follows" 直後のCode:以下に書いてある内容をテキストファイルにしたものです。)<br /><ul><li><code># cd System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents</code></li><li><code># cp Info.plist Info.plist.org</code></li><li><code># patch -p0 < PATCHFILE</code></li><code></code></ul><code></code></li><code><li>依存関係の再構築(?)<br /><ul><li><code># touch /System/Library/Extensions</code></li></ul></li><li>ドライバのリロード<br /><ul><li><code># kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext</code></li><li><code># kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext</code></li></ul></li><li>再起動</li><li>screenで接続 (下線部は環境によって変わるかも...)<br /><ul><li><code>$ screen /dev/tty.usbserial-<u>0000101D</u>B 115200</code></li></ul></li><li>ユーザー名: root, パスワード: nosoup4u でログイン</li></code></ol><code><br /><br />○SSHでログイン<br />デフォルトでSSHは動作しているようです(詳しいことは分かりません...)。なのでコンソール接続しなくとも、LANケーブルでルーターに繋ぎ、外からsshで接続することができます。<br /><br /># 当面はこれでいいや・・・。笑<br /><br />○これから、apacheを入れるところ...<br /><br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_jpb7BLIGKqY/SoKlmyfMj7I/AAAAAAAACmE/pH6rLq5tA2M/s1600-h/sheevaPlug2.jpg"><img style="margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 360px; height: 270px;" src="http://4.bp.blogspot.com/_jpb7BLIGKqY/SoKlmyfMj7I/AAAAAAAACmE/pH6rLq5tA2M/s400/sheevaPlug2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5369035791585284018" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_jpb7BLIGKqY/SoKlifbHfgI/AAAAAAAACl8/twCREs9S7L8/s1600-h/sheevaPlug1.jpg"><img style="margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 360px; height: 270px;" src="http://1.bp.blogspot.com/_jpb7BLIGKqY/SoKlifbHfgI/AAAAAAAACl8/twCREs9S7L8/s400/sheevaPlug1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5369035717748424194" /></a></code>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-15311159535178367282009-07-16T19:27:00.011+09:002009-11-16T10:30:36.848+09:00Programming the Semantic Webプログラミング関連で興味がある本、3冊:<br />
- <a href="http://www.amazon.co.jp/gp/product/4873113644?ie=UTF8&tag=les.miller-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4873113644">集合知プログラミング</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=les.miller-22&l=as2&o=9&a=4873113644" style="border: none !important; margin: 0px !important;" width="1" /><br />
- <a href="http://www.amazon.co.jp/gp/product/4873113784?ie=UTF8&tag=les.miller-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4873113784">ビジュアライジング・データ ―Processingによる情報視覚化手法</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=les.miller-22&l=as2&o=9&a=4873113784" style="border: none !important; margin: 0px !important;" width="1" /><br />
- <a href="http://www.amazon.co.jp/gp/product/4797352000?ie=UTF8&tag=les.miller-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4797352000">集合知イン・アクション</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=les.miller-22&l=as2&o=9&a=4797352000" style="border: none !important; margin: 0px !important;" width="1" /><br />
<br />
上の2冊は前に読み終えたのですが(※)『集合知イン・アクション』はまだ...<br />
<br />
※ただし、コードも「読んだ」だけ...<br />
<br />
そんな状況なのですが、もう間もなく <a href="http://www.amazon.co.jp/gp/product/0596153813?ie=UTF8&tag=les.miller-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0596153813">Programming the Semantic Web</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=les.miller-22&l=as2&o=9&a=0596153813" style="border: none !important; margin: 0px !important;" width="1" /> が届きます。一部のページは<a href="http://my.safaribooksonline.com/9780596802141">こちら(Safari Books Online)</a>で読めるのですが、なかなか面白そうに感じます。<br />
<br />
# もし興味がある方がいらっしゃいましたら...一緒に読みませんか?Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1775570113795813102.post-69672901169605286092009-07-10T22:06:00.004+09:002009-07-10T22:38:17.923+09:00ポジティブシンキングは逆効果Timeの記事(<a href="http://www.time.com/time/health/article/0,8599,1909019,00.html">Yes, I Suck: Self-Help Through Negative Thinking</a>)より。<br /><br />ある研究によると、ポジティブシンキングが悪く作用してしまう場合があるそうです。そのメカニズムは、ポジティブに考える→現状とのギャップを意識→自分の不幸さをより強く意識 ということだそうです。<br /><br />一般的に信じられていることとは異なり、「ポジティブな台詞を意識しても、それが自分自身がすでに信じていることでない限りは、効果がないばかりか逆効果になる」だそうです。<br /><br /><br />*****<br />確かに...自分の経験に基づいて考えてみると、納得します:<br />あまりにも上手く行かない時に、「私はできる!」と言っても虚しく感じるだけですし、<br />何かに失敗した時に、「次は成功する!」と言っても「どう改善したら良いのか分からないのに何ができるのか?」と感じますし、<br />心が疲れている人に「頑張れ」と言うのは逆効果と言われていますし...。<br /><br />では、ポジティブな台詞が効果があるのは... と考えると、<br />・ちょっと疲れている+あともう少しという時に、「自分はやり遂げられるから頑張ろう」と言う。<br />・失敗したが、原因が分かっているという時に、「次こそは失敗しないようにしよう」と言う。<br /><br />ちょっとした仮説ですが、目標がある程度見えているときや、次に何をすべきかが分かっているときに、ポジティブシンキングは役に立ちそうに思いました。逆に、何をすべきかがわからない時 (=「何をすべきかを考える」こともできない時)には、ポジティブな言葉は負担になりそうです。Unknownnoreply@blogger.com0