ふと思い立って、Emacs の Org-mode をバージョンアップしてみました。

ちなみに今まで使ってたのは、 Ver.6.33です。


現在の最新バージョンは7.4なので、

したから最新バージョンのzipかtarを落としてきます。

http://orgmode.org/


好きなところに解凍しておきます。


今回は

~/.emacs.d/site-lisp/

に解凍しました。


解凍したら端末で、

~/.emacs.d/site-lisp/org-7.4

に入って"make"します。

これで、

~/.emacs.d/site-lisp/org-7.4/lisp/

の中にあった一連のOrg-Mode用ファイルがバイトコンパイルされます。


後はロードパスを

~/.emacs.d/site-lisp/org-7.4/lisp/

に通して起動するだけ。


後は適当にファイルをOrg-modeで開いて、

下の写真みたいにバージョンを確認します。

mini-bufferに"Org-mode version 7.4"と出れば成功
くらいまーず はい


Orgをバージョンアップして気になることは、


・メモを取るツールが"org-remember"から"org-capture"になったらしい

・なんでもひとつのファイルの中にいろんなプログラミング言語を同居させるOrg-Babelなるものがあるらしい


ということです。


というわけで気になるので、このブログの後ろに、

Org-Capture部分のマニュアルをざっくり和訳したものでも載せておきます。


WindowsでEmacsを使っていて思うこと。

結構な頻度で落ちる。

特にAnything使用時。


デュアルブートでUbuntu入れようかと思いましたが、

何となく面倒で放置してました。

かといって、机の上にもう一台ノートPC置くのも、

何となく机が狭くなっていやだし。


ふと、VMWareで仮想マシンを試してみようかと思い立ちました。

VMWareにした理由は、何となく。

とりあえず始めてだから、聞いたことがある奴で試してみよう位の気持ちです。


とりあえずVMWareのHPへ

http://www.vmware.com/jp/support/


サポートおよびダウンロードから、

VMWare Player

をダウンロードしました。

色々種類があるけど、何が違うんだろう??


後はUbuntuのページから、Ubuntu10.10のISOイメージをダウンロードしてきます。

http://www.ubuntulinux.jp/products/JA-Localized/download


VMWareをインストールして、再起動をかけたら、VMware Playerを起動してスタート。


一番上の「新規仮想マシンの作成」をクリックします。


くらいまーず はい

インストール元はダウンロードしておいた、Ubuntu10.10のISOイメージを指定。


ユーザ名とパスワードを入力

ユーザ名は大文字禁止らしいです。


くらいまーず はい

仮想マシン名は、わかりやすく「Ubuntu10.10」にしておきました。


くらいまーず はい


ディスクサイズは20GBあれば十分かな・・・?


くらいまーず はい


ツールをインストールするか確認されるので、

インストールします。



くらいまーず はい

後はインストールが終わるのをじっと待つだけ。

15分くらいかかりました。


くらいまーず はい

無事Ubuntuが起動。

すばらしい・・・


くらいまーず はい

マシンパワーをフルには使えないにしろ、

こんな簡単にインストールできるのはちょっと感動しました。





くらいまーず はい

ELIPって割と良さそうな仕組みだと思うんだけど、検索すると、


もしかして: emacs lisp


とかいわれますね。


悔しいので付属のマニュアルを抜粋して和訳してみました。

割とはしょってる上に、途中で終わってます。




Emacs Learning Systemの日本語訳
===============================


Table of Contents
=================
1 Introduction
1.1 ELIP license
1.2 What is ELIP?
1.3 Oreview of Learning Methods
2 Study Item Database
2.1 Creating the Database File
2.2 Adding Study Items
2.2.1 Direct EDB Item Addition
2.2.2 Adding Items from a Text File
2.2.3 The Ellipsis Method
2.3 Making Changes to Items
2.4 Sorthing the Database
2.5 Shuffling New Items
2.6 Reversing Questions and Answers
2.7 Exporting Questions and Answers
2.8 Embedded Emacs Lisp
2.9 Changing the Number of Items Learned at Onece
2.10 Specifying an Input Method
2.11 Checking a Database for Trojans
3 Learning Session
3.1 Starting a Session
3.2 Four Ways to Learn
3.2.1 Interval Learning
3.2.2 Leitner Learning
3.2.3 Text-Mode Learning
3.2.4 Flashcard Learning
3.3 The Learning Process
3.3.1 Learning New Items in Interval Mode
3.3.2 Learning Old Items in Interval Mode
3.3.3 Learning in Leitner Mode
3.3.4 Learning in Text Mode
3.3.5 Learning in Flashcard Mode


1 Introduction
~~~~~~~~~~~~~~~

1.1 ELIP license
=================

1.2 What is ELIP?
==================
ELIPは"Emacs Learning Instruction Program."です。
ELIPを使うことで、データベースを作成し、それを使った学習が出来、
また学習の進捗を確認することが出来ます。


1.3 Oreview of Learning Methods
================================
ELIPは複数の学習メソッドに対応しています。
- Supermemoに基づいた反復学習
- Leitner flashcard methodに基づいた学習システム
- 文章の丸暗記に特化したシステム
- シンプルなflashcardシステム


2 Study Item Database
~~~~~~~~~~~~~~~~~~~~~~

2.1 Creating the Database File
===============================
新しいデータベースを作成するためには、
"elip-make-database"を使用します。
ミニバッファ上でファイル名の入力を求められます。
従来は"esperanto.elip"などのように、拡張子を"elip"にしていましたが、
これは必須ではありません。
次にTopicの入力を求められます。
ここでは"エスペラントの文法"といった、データベースの簡単な説明を入力します。

通常ELIPはデータベース内のアイテムをランダムに表示しますが、
C-u M-x elip-make-database
とすることで、ランダム表示機能をOFFにしたデータベースを作成可能です。


2.2 Adding Study Items
=======================
早速学習したいアイテムを登録していきましょう。
アイテムの作成や変更はいつでも、簡単に行うことが出来ます。
これを行うには基本的に3つの方法があります。


2.2.1 Direct EDB Item Addition
-------------------------------
もっとも基本的な方法は、EDBのメソッドを使用する方法です。
まず
M-x edb-interact
を実行して、編集したいelipファイルを開きます。
C-c C-c
でView Modeに移行し、
C-u a
をタイプして、新しいアイテムを追加します。
TABを押すたびに"question"と"Answer"の間にカーソルが移動するので、
それぞれ入力します。
好きなだけアイテムを追加したら、データを失わないようC-x C-sでセーブするのを忘れないようにしましょう。


2.2.2 Adding Items from a Text File
------------------------------------
こちらの方法のほうが、より頻繁に使われるかもしれません。
好きな名前のバッファもしくはファイルを開きます。
その中に、単純に質問と問題のペアを書き込みましょう。
質問の前には"Q. "を、回答の前には"A. "を書く必要があります。
たとえばこんな感じに

Q. Should you delete the sample item prior to adding new items?
A. No.

Q. Where can you fine information about learning methods?
A. On the web.

書き出し終わったら、ファイルを保存しましょう。
追加したいデータベースを開き、elip-sessionのコマンドを呼び出します。
データ閲覧モードになったら、
M-x elip-import
を使用して先ほどのファイル名を入力します。
これで先ほどのファイルの中身をデータベースへ登録することが出来ます。
重複のチェック等はありませんので、同じファイルを2回インポートすると、
データが2重に登録されます。
このコマンドを使用する場合は、常に新しいファイルを用意したほうが無難でしょう。
また、


M-x elip-export


を使用することで、データベースからテキストファイルへの書き出しも可能です。

* text-modeでの学習に使用する場合について
text-modeは文章を丸暗記するために使用するモードなので、
Flashcard等とは、質問と回答の関係が異なります。
またtext-modeでの学習の際は、常に質問のみが表示され、
回答は書いてあっても無視されます。
よってelip-importを使用してデータベースにアイテムを登録する際には、
"A. "の後は空白のままにしてください。

Q. In the seventeenth century, our foreparenta came to this planet with the
goal of establishing a free state based on unsound business principles and the
highest standards of immoral conduct.
A.


2.2.3 The Ellipsis Method
--------------------------
これはSupermemoに基づくすばらしい方法です。
この方法ではウェブやテキストファイルなど任意の文章から、
学習用のアイテムを作成することが出来ます。
唯一の条件は、基になるデータがEmacsで読み込み可能なテキストフォーマットであることです。

Emacs上で文章を開きます。
もし興味を引かれる文章に行き当たったら、その文章の前後を{}で囲みましょう。

The earth is quite far from the sun. {The distance from the earth to the sun is about
93 million miles. This is called an Astronomical Unit (AU).} It is often used for other purposes.

あまり長々と囲みすぎないよう注意しましょう。
どんな文章中でも{}で囲めば、そこから学習用のアイテムを生成することが出来ます。

{}で囲んだ文章中に[]で囲まれたブロックを作ると、"ellipsis"スタイルのQandAが作れます。

{The distance from the earth to the sun is about
[93 million miles]. This is called an [Astronomical Unit (AU)].}

後ほど説明する方法で、この文章から以下のような質問と回答のペアを生成できます。

Q. The distance from the earth to the sun is about [...].
This is called an Astronomical Unit (AU).
A. 93 million miles

Q. The distance from the earth to the sun is about 93 million miles.
This is called an [...].
A. Astronomical Unit (AU)

十分にマーキングがすんだら、M-<で文章の先頭に戻り、


M-x elip-scan-text


を実行します。


2.3 Making Changes to Items
============================
すべてのアイテムはEDBの編集コマンドで、いつでも編集できます。


2.4 Sorthing the Database
==========================
何かの理由で、ELIPのデータベース中のアイテムを並べ替えたい場合もあります。


M-x elip-sort


を使用することで、以下の並び替えが可能です。
- 新しいアイテムをデータベースのはじめに移動
- 新しいアイテムを、データベースに表示される順に整列
- 古いアイテムを新しいアイテムの後ろに移動
- 日付順に並び替え
- 同じ日付のアイテムは現状維持
通常このような方法でデータを並び替えることで問題は生じませんが、
不安がある場合はバックアップをとってください。


2.5 Shuffling New Items
========================
データベース中のデータを完全にランダムに並べ替えたいときは、


elip-shuffle


が使えます。


2.6 Reversing Questions and Answers
====================================
語学学習など、質問と回答を反転させることが有効なこともあります。
(単語帳の英語とその日本語訳など)
まず"Adding Items from a Text File"で触れたように、質問と回答のペアを書き出して保存します。
次に"elip-reverse"コマンドを呼び出しましょう。
コマンドを呼び出すと、反転させたい対象のファイル名と、
反転したものを書き出す先のファイル名の入力を求められます。
これらのファイルをひとつのデータベース内でミックスさせたい場合は、
elip-importで反転前後のファイルを読み込んだ後、elip-shuffleを実行すればよいでしょう。

すでにデータベース化されているアイテムについては、
"elip-export"で外部のファイルに書き出してから、elip-reverseを行えばよいでしょう。


2.7 Exporting Questions and Answers
====================================
データベース中の質問と回答を一度に書き出したいときには、
"elip-export"が使えます。


2.8 Embedded Emacs Lisp
========================
任意のEmacs Lispを質問と回答の末尾に書くことで、Emacsにそれを評価させることが出来ます。
"#####"で区切られた線より下にかかれたものはEmacs Lispとして解釈されます。
これによって、音声や画像を表示させることが可能となります。
例えば下のように書いておくことで、解答の一部として画像を表示させることが出来ます。

A. The A-minor scale is depicted as follows:
(shell-command "xv aminorscale.jpg &")

この機能には多くの可能性が秘められていますが、同様に危険も付きまといます。
使用には十分な注意を払うべきです。
例えば何かを企んでいる人間から、トロイの木馬付のELIPデータベースを受け取ってしまうかもしれません。
このような問題に対処するための対策がELIPには含まれています。
完全な保護にはなっていないため、ELIPのデータベースは信頼できるものを使用してください。


2.9 Changing the Number of Items Learned at Onece
==================================================
データベースの設計者として、あなたは一度に学習するアイテム数を
20より多くしたり少なくしたりしたいと思うかもしれません。
また学習する際に、ほんのちょっとづつ進めたり、一気にやってしまおうという気になったりするでしょう。
この値を変更するには、
"elip-set-max-items-at-once"
を使用します。


2.10 Specifying an Input Method
================================
ELIPは外国語の勉強に使うことが出来ます。
回答をタイプすることが、記憶にとって非常に有用であることに気づいた人も多いでしょう。

ELIPは2つの方法であなたの勉強の手助けをします。
まず一つ目は、正しい答えと自分の回答を即座に比較できることです。


例えばELIPの通常のセッションで、答えた内容は、"Your Answer"としてバッファ上に表示されます。

****Question ****

flugi

****Answer ****

to fly

****Your Answer ****

fruit


2つ目として、ELIPではmini-bufferに回答を記入するとき、
入力メソッドをあらかじめ設定しておくことが出来ます。
これによって、回答するときに入力方法を変更する必要がなくなります。
(例えば英語・日本語の変更など)
この設定は、ELIPのデータベースファイルに記入しておきます。
データベースファイルの":locals"で始まるブロックに"input-method"を追記します。

:locals
[(text-percent-min 20)
(tex-percent-max 90)
(leitner-last-box 5)
(ok-score 4)
(max-new 20)
(input-methode "latin-3-prefix")
(elip-learn-random t)]

どの入力方法を指定するべきかわからないときは、
C-h L (or M-x describe-language-enviroment)
から調べてください。


2.11 Checking a Database for Trojans
======================================
ELIP上から任意のコードを実行できるため、データベース上に害意あるコードが存在する可能性があります。
ELIPでは対策として2つの方法を提供しています。
初めてデータベース上のEmacs Lispを読み込んだ場合、ELIPはコードの読み込みを続けるかどうか、
ユーザーに許可を求めます。
もし"yes"を選択した場合、そのデータベースが同じフォルダに同じファイル名で存在している限り、
ELIPは中のコードが”信頼できる”とみなして動作し続けます。
もし"no"を選択した場合は、データベースを信用できないものとみなして、
コードを実行しません。
もし気が変わって、コードを実行したくなった(あるいは実行をとめたくなった)ら、~/.eliprcを開いてください。
このファイルの中から、変更したいデータベースのフルパスを探し、”OK"を”NOT OK"に変更します。
2つ目の対策は、"elip-dump"の実装です。
このコマンドを実行すると、データベース内のすべてのEmacs Lispコードを、
特別なバッファ内に書き出させることが出来ます。
Emacs Lispについて十分な知識があれば、その中に害をなすものがあるか見つけることが出来るでしょう。


3 Learning Session
~~~~~~~~~~~~~~~~~~~

3.1 Starting a Session
=======================
ELIPデータベースによる学習を始めるには、


M-x elip-session


を実行して、データベースの名前を入力してください。


3.2 Four Ways to Learn
=======================
最初に触れたように、ELIPでは4種類の学習方法をサポートしています。
以下、それぞれの学習法について、簡単に触れます。


3.2.1 Interval Learning
------------------------
反復学習は"Supermemo"のコンセプトに基づいています。
このメソッドでは、新しいアイテムは20のグループに分けられます。
毎日の学習の中で、そのアイテムに合格点が与えられるまで繰り返し提示されます。
(通常は4以上のスコアを与えられると合格点となります)
学習の質は、正解したパーセンテージによって評価され、
間違って何度も解答されている問題は、正しく回答されている問題よりも、
頻繁に出題されます。

繰り返し間隔は時間とともに増加していきます。
もし新しいアイテムに正解した場合、そのアイテムが次に表示されるのは4日後です。
4日後に再度正解した場合、次は7日後に表示されます。
このように、常に正しく答えられている問題は、最終的に数ヶ月おきに出題されるようになるでしょう。

また非常に低いスコア(正答率が低い)アイテムに関しては、
新しく追加されたアイテムと同様のステータスが与えられ、
頻繁に出題されるようになります。

このメソッドは非常に効果的で、実際に試してみる価値があるものです。
特に語学学習に効果を発揮するでしょう。


3.2.2 Leitner Learning
-----------------------
"Leitner Learning"はflashcardの拡張版で、Dr. Leitnerの"So Lernt Man Lernen"に基づいています。

学習を始めると、データベースから最大20のアイテムが選ばれます。
はじめ、これらのアイテムは"slot1"のステータスにあります。
回答して、4以上のスコアを獲得したアイテムは"slot2"のステータスに移行します。
次の学習で正解したものは"slot3"へ移行し、間違ったアイテムは"slot1"に戻されます。
もし正解し続け、"slot5"のステータスに達した場合、このアイテムの学習は完了したとみなされ、
出題されなくなります。
もちろん完了までにいくつのステータスを設けるかは、ユーザーによって設定可能です。
すべてのアイテムが"slot5"をパスした場合、データベースの学習が完了したとみなされるため、
再度学習をスタートするためにはリセットする必要があります。

この学習法は非常に徹底していますが、退屈に思えるかもしれません。
もし望むならば、Leitner LearningとInterval Learningは並行して進めることが出来ます。


3.2.3 Text-Mode Learning
-------------------------
Text-Mode Learningでは、通常この目的のためのみに作られたデータベースによって、
学習が行われます。
とはいえ、望むならばほかの学習法と併用することも可能です。

Text-Modeによる学習は、文章の暗記のために行われます。
宗教的なテキストを暗記する用途が多いかと思いますが、内容は問いません。

学習を始めると、データベース中から20個のアイテムが選択されます。
それぞれのアイテムは、文章の一部が削除されているので、
学習者は記憶を頼りに文章を補完せねばなりません。
もしそのアイテムが始めて出題されたものなら、
文章の10%が削除された状態で現れます。
4以上のスコアを獲得すると、次は20%が削除された状態で出題され、
次々に削除される量が増えていきます。
最終的に80%が削除された状態でパスすると、
10%が削除される一番最初の状態にリセットされます。

逆に低いスコアをとった場合は、削除される割合が減っていきます。
また、削除される場所は毎回ランダムに選択されます。

この学習方法はかなり長い文章を暗記する上でも有効です。


3.2.4 Flashcard Learning
-------------------------
Flashcard learningは昔からあるフラッシュカード式の学習方法です。
データベースから20個のアイテムをランダムに抜き出して表示します。
各アイテムは4以上のスコアを獲得しない限り繰り返し出題されます。


3.3 The Learning Process
=========================
どの学習法でも、またアイテムが新しかろうと古かろうと、
学習法は同じです。
質問を読んで、mini-bufferに答えを記入し、
正解と自分の答えを比較してスコアを記入します。
スコアは以下のような考えに基づいて記入すればよいでしょう

0 さっぱりわからない
1 間違っていてかすりもしない
2 間違ってるけど、正解をみて記憶がよみがえってきた
3 惜しい 間違ってるけど近いところまでは来ている
4 正解だけど、答えるのに間があった
5 躊躇なく正解を答えることが出来た

スコアを正しく・正直に記入するのは大切なことです。
ここで嘘をついても、学習の成果が上がらないだけで得をすることは何もありません。


3.3.1 Learning New Items in Interval Mode
------------------------------------------
もし学習したい新しいアイテムがあるなら、
M-x elip-learn-new
を使ってください。
新しいアイテムが20以上あるなら、最初の20個が出題されます。
この"20"という数字は、もちろんユーザーが変更することが出来ますが、
一日か二日に20問ずつというのは十分な数でしょう。

データベースの中にいくつ新しいアイテムが含まれるかを調べるには、
"global report"を使用します(後で説明します)


3.3.2 Learning Old Items in Interval Mode
------------------------------------------
新しいアイテムではなく、一度学習したアイテムの中から出題させたいときには、
M-x elip-learn-old
を使うと良いでしょう。


3.3.3 Learning in Leitner Mode
-------------------------------
Leitner Modeでは、Interval Modeと違い、アイテムの古い新しいを気にする必要はありません。
Leitner Modeで学習をスタートさせたい場合は、
M-x elip-learn-leitner
を呼び出してください。


3.3.4 Learning in Text Mode
----------------------------
Text Modeでも同様に、アイテムの古い新しいを気にする必要はありません。
Text Modeで学習をスタートさせたい場合は
M-x elip-learn-text
を呼び出してください。

3.3.5 Learning in Flashcard Mode
---------------------------------