ロード トップ 参照元 逆検索 検索 ヘルプ

[logo] ぐるぐるコメント_その1


日記とかみていて コメントしたくなったりしたときにちょっと使うページ


Cで配列に命令書いて実行できないかという件。Unix 系 OS なら 普通はできるんじゃないかと...

確かに データがおいてある領域にコードおいて 実行可能かどうかというのは、 OS や アーキティクチャに依存したりすると思うんですが ... mprotect(2) を使えれば 実行可能にする属性を付けたりできます。 で、この mprotect(2) man 見れば POSIX.1b に含まれているみたいなんで、 POSIX 対応と いう OS ならあるはず。

あと、上とは直接関係ないんですが ... gcc ってスタックにコード 埋め込むような ことするコードが出たりするんじゃなかったかと。 どういう時出るかちょっと知らないんですが、トランポリンとかいうのがあって ... 以下略 (というよりちゃんと説明できず)
これと関係あるかないか も良く知らないんですが、コードを書き換えたら キャッシュをインバリデートしないといけないようなアーキティチャもあって、 なんか gcc 依存の変なコード書いてみたら、CACHE_FLUSH_FUNC で定義された コードが出て 困った覚えあり。(mips だと _flush_cache というのが出たんだったか)


javaVMの仕様になぜnativeOSへの呼出しが入っているんだ という疑問について。

java VM ってVMだと思うから変に感じるのでは? 似たものをあえてあげると、 MAC エミュレータの executor とか Windows エミュレータ の !FX32 みたいな。( 名称間違っているかも)
要するに userland レベルのエミュレーションと考えると、システムコールだとか dll 呼出しが込みになってても不自然ではない...と思う。 ( 動かそうとするモデルが実在すればエミュレーションだけども ... 実在しないから、ヴァーチャル エミュレーション? )

ここから妄想モード。hpcmips の バイナリ用 userland レベルエミュレータ があったら個人的に嬉しかったりするんだけども... 嬉しい人他にいないかなぁ。

NetBSDのシステムコールエミュレーションと MIPS の命令エミュレータ くっつければ 作れるような気がするんだけども... (LinuxVR用 だってできたり するかも)
fork なんかは、native OS の fork を呼んで VM(っていうのかこれ) ごと fork しちゃえばよさそう。( って実は、別の用途で こういうやつ作ったことがあって それができたのは 確認済)


妄想はつづくよ....

で、NetBSD/m68k あたりを標準のアーキティクチャにして、VM をばらまいちゃえば java に対抗できないかなぁ。--- え? 無理?

妄想おしまい。


create_memscreenできるタイミングについて

あー そうだったのか。MGL1 の方は、フォーマットが決まっていて malloc 呼ぶぐらい だから いつよんでも 全然問題ないけど、MGL2 だと create_memscreen は ラッパーで 処理関数自体を open_graph() で 組み込んでいくので open_graph() 以降でないと ダメっす。この仕様が使いにくいってのは認識しているのだけども、とは言っても 他の良い方法が見当たらず...(以下略)

libdl は、あれっすね。BSD 系は libc に組み込みなのに対して、SVR4、ソラリス、 linux は libc の 外にあるっつうか。気をつけないといけないのは、ELF 系では C の シンボルに _ が付かないのに対し、BSD の AOUT 系では C のシンボルに _ が 付き、dlsym とかの API で _ を付けないといけないことぐらい。

ちなみに、MGL1 も FreeBSD or Linux の X 環境の上で 動きます。 MGL2 と両方インストールすると mgterm がバッティングするんで、ご注意を。


真のプログラマはPascalを使わないの考察 なかなか興味深い。

Pascalで教育を受けたころは、FORTRANしか使えない人のヨタ話ってのは 言いすぎだが、そういう印象を持っていた。今考えると、共感できる部分も 多々あるって感じか。じっくり考えてみたいネタではある。

高速なJIS-EUCコード変換についてで書いた話だけども、簡単な仕様の JIS-EUC コード変換は、72 行ぐらいで書けるけど、これを高速化しようとしたら 全く同じことしか しないのに 866 行になってしまふって例があって、 わかりやすさ とか 保守性とか と やっぱり相容れない面があるよなぁと 思う。 で、866行の方のコードにも 確実に動くとか 拡張性 とか 結構考慮した つもりなんだが、客観的に見て 書いた自分でも 再度ロジックをちゃんと 追ってみるのは やりたくないようなコードになっちゃている。で、 構造化プログラミングとか言われてた(or 出した?)時代では、こういうコード は 無条件にダメコードに分類されるような気がする。って ..今でもか。 866 行のコードって841 行の 関数1つだし...長さだけでダメダメコードに 分類されちゃうんじゃないだろうか。でも、マクロとか 分割とかして何か分かりやすくなったりするんだろうか...。

って、書いてみたが、同じロジックを分かりやすく書く方法はあるかも知れない。 機会があったら、よくよく考えてみたいって気もしてきた。 それが何なの?と思う人は多いかも知れない....うーん。複雑なものとどうつき合って いくかというのは、自分にとってわりと重要なテーマであって...(以下略)


続_真のプログラマは...

とりあえず、翻訳をみつけた。( 真のプログラマはPascalを使わない )

あらためて、内容を読んでみると やっぱり過激な表現がいっぱいあったりする。 .. core ダンプを見るのにデバッガを使わない.. とか 実際そういうことを しないといけなかったという経験はあるが... やっぱりデバッガが使えるのなら 使うよねぇ。ここらへんは、真のプログラマには(必要な場合は)デバッガなしでも 問題の原因を見付けることができる とかそういう風に解釈しないと 何を主張しているのかまったく理解できない。 実際 昔目を通したときには、主張したいことが理解できていなかったと思う。

それはともかく、有野さんの例

linux/kernel/sched.c

void interruptible_sleep_on(struct wait_queue **p)
{
        SLEEP_ON_VAR

        current->state = TASK_INTERRUPTIBLE;

        SLEEP_ON_HEAD
        schedule();
        SLEEP_ON_TAIL
}

だけの情報でどこまで読めるか という 命題は 興味をそそる。 ( このコードははじめて見るわけではないが、はじめて見たとして 解説してみると)

ファイル名で、Linux カーネルの スケジューリングのコードである。

という情報は得られる。

そして、

interruptible_sleep_on(struct wait_queue **p)

という関数名と引数の nameing だけで、プロセスが sleep し、sleep する ための リソースは、waitキューである。ということがわかる。 それに interruptible というオプションが付く。 ( sleep がどういう意味か というのは、OS の構造を知っていれば 既知の知識)

interruptible というオプションについては、interrupt されてどうなるかというと、 起きてくる以外には考えにくいので、そういうものだろうと想像はしておく。 ただし、名前だけ見て決めつけるのは、まったく外している危険性があるから、 確認すべし。

当然 sleep したからには、wait_queue を引数にして 起こすための wakeup というメソッドが用意されているはずだし、 オプションがない sleep_on もあるだろうということも これだけでわかる。

で中身をみると

{
        SLEEP_ON_VAR

        current->state = TASK_INTERRUPTIBLE;

        SLEEP_ON_HEAD
        schedule();
        SLEEP_ON_TAIL
}

となっていて、オプションがない sleep_on との違いは、state にいれるもの が違うだけだろうと思える。SLEEP_ON_VAR - SLEEP_ON_HEAD - SLEEP_ON_TAIL が マクロになっているのは、同じものを 2 箇所以上で使っているからであって、 inline 関数や関数にしていないのは、たぶん。複雑でないから。

また、マクロの中身は、SLEEP_ON_HEAD で waitキューにつなぎ、SLEEP_ON_TAIL で wait キューから外すもののはずである。なぜなら、schedule() には渡っていかない から。あと、SLEEP_ON_VAR は、当然その操作に必要な変数の宣言。

waitキューから外すということを wakeup 側でするような実装も考えられるが、 Linux では、自分でwaitキューから外す。これは、interruptible というのと 無縁ではなさそうだ。たぶん interrupt して起こす側は、waitキューを知らなくとも 良い インターフェイスになっているのだろう。

また、waitキューと schedule() で使うはずの runキュー は別の構造である。 同じ構造(runキューから外して waitキューにつなぐような) の場合は、この ような 処理にはなり得ない。(wakeup の中で waitキューからrunキューにつなぐ ことになる)

schedule() は名前から プロセスを切替える処理のはずである。 それがどのように処理をしているかは、知る必要はないが...

current->state が状態として 重要なもので なおかつ 唯一のもの(sleep_on にとって)であることはわかる。

また、current は、(いま sleep しようとしている)実行中の プロセスを 指す変数である。 ( Linux が SMP 対応であることを知っていれば 、変数ではあり得ない .. どこかにマクロが定義されているはずである という想像もできる)

想像できる範囲はこれぐらい。コードそのものだけではなく、 それが関連している他の情報も読んでしまうことはできると言える(と思う)。

それを input にしてさらに、他のコードも読む。そのときには、どのようなコード であるかも想像が膨らんでいるから、想像と違うところを重点的にチェックすれば 良い。

さて、コードを読む際に、コメントは必要であっただろうか... 構造化という 話と関係があっただろうか... もっとも重要なものは何だったであろうか?

必要な知識がない人がコードを読む場合は? コメントがあったら理解できた であろうか... プログラムの構造は重要なのだろうか? ... もっとも重要なものは何だろう?


実は 上記でこのコードを説明したことにはならない。どのようなものか が分かっただけで、動かないかも知れず検証するという立場だと もっと知らないと いけない。何を知らないといけないのか...

上で書いたことを知らないと、current->state の変更と SLEEP_ON_HEAD の 順番を 逆にしても動くのかどうか すら 判断できない。そういう意味では 、上のコード読みのレベルでは何も理解できていないということは 認識する必要がある。

真のプログラマー の内容とは違う方向に話題が進んでしまったが...

上の2点に気を付けないといけない ということを このコード見ただけで 私が、なぜ考えたのか...結局のところ、この種の問題についてよくよく考える 機会が過去にあった.. ということになるんだろう。

結局 経験がパターンとして蓄積 されているので、コードは、どのパターンかを判断するために 過不足のない情報量を 持っていると 非常に読みやすい。パターンとして蓄積されていない人にとっては、 最初は意味ないのであるが、新たにパターンとして蓄積しようとしたとき意味が 出て来るのではないか という気がする。構造化というのは、コードをどのように 書くか... ということよりも概念に識別子を与えるという点で重要だったりしない のだろうか? これは、ランダムに名前を与えた同じコードが分かりやすいか... という実験をやってみれば はっきりするかも知れない。

ただ、真のプログラマはPascalを使わない では、これすら否定しているようなところがあるんだよなぁ。 goto 文の塊から、WHILE や DO などの制御構造を読み取ることができる --- ひょっとしたら、名前がない 制御構造のパターンも読み取れるといっているの かも。それだけではなく、名前のない複雑な制御構造のパターンをパターン認識で 見つけだし、適切に理解することができる... これってやっぱりすごいことではないかと思う。

interruptible_wake_up(struct run_queue **p)
{
        RUNQUEUE_VAR

        current->state = TASK_INTERRUPTIBLE;

        RUNQUEUE_ADD
        schedule();
        RUNQUEUE_DEL
}

私レベルだと、ちょっと名前を 変更しただけで、完全に混乱しそう。 これはいったい何だと問われたら、実際とはかけ離れた想像をしてしまうだろう。
その推測を元に他のコードを読み進めると どこかで矛盾があることに気が付く。 矛盾の本質を探していくと、最初から間違っていたことが分かるだろう。 で、間違いを元に全てを訂正するわけだ。この時でさえ sleep のパターンである ことに気が付かないかもしれない。正しい理解がかなり進んだ時点で、はっと気が 付くかも。sleep というキーワードだけでタグ付けされた知識は役に立たなかった わけだが... たぶんこの時点で、sleep の知識に別のタグが付く。 こうやって、経験をつんでいけば はたして真のプログラマーとなれるのか?... 真のプログラマーへの道とはかくも厳しい長い道のりなのだろうか...

そうそう、真のプログラマーの悲哀についてもコメントがあったような。 上のような、名前すらついていない概念/パターンを 名前を付けないまま扱えても、 他の人と共有できず、理解させることはできない。そういうことなんだろうと 私は理解した。それを救うのは、結局のところ 名前が付いていないものに 対して デザインパターンとして名前を付けるという 行為なのだろうか?

問題は、新たな デザインパターンの登録ということだけでは(たぶん)ない。 あるものを 既知のデザインパターンと結びつける 認識術 というのもまた 重要だろう。こんなものをちゃんと体系化できるのか... かなり疑問ではある。 しかし、真のプログラマーとして客観的に認知したいとしたら、こういうこと をやっていかないといけないのではなかろうか。


暗記が好きな人、嫌いな人

私、暗記が嫌いな人です。

暗記数学」ってのは わかるような気がするが、それと 「単語帳で単語暗記」 というのが 自分的にはつながらない。この関係について解説していただけると 嬉しいです。

高校ぐらいのときを思いだしてみても.. どうも 抽象的なものは覚えられるけれども、 デジタルなものは ダメ って感じだったと思う。

高校数学は得意で、「問題」と「その解法」の関係はわりとよく覚えられたように 思う。でも、「定理」をちゃんと覚えるのは苦手だったような... 記憶にある「定理」が信用できなくなると、最初からそれを「導き出す」ことを していたような憶えすらある。

理解と暗記の関係」というのも実はよくわからない。自分のなかでは、 理解=アナログ、暗記=デジタル というイメージがあって... (以下略)


お、 有野さんから早速のコメント

。どうもありがとうございます。

そう、年号暗記もダメでした。ってのはおいておいて...

受験において、全部の問題を条件=解き方の組み合わせで覚えておく事 は確かに 必要で 実際やっていたはず。 でも、私が高校の数学で楽しかったのは、条件=解き方の組み合わせを発見する プロセスだったような... 理解するだけなら答え見れば良いわけで、 理解 そのものにはそういうプロセスは、必要ないのは同意できるんですが、 そうなると 「高い応用力が必要な難問」 をやる必然性は、論理としてどう説明 できるんでしょう? 理解することは、解き方を覚えておく。そしてそれ以外は 必要ないとすれば、高い応用力が必要な難問 をやる必然性は、解き方 を覚えたかどうかチェックする以外になく、既出のパターンである必要があって それは難問とは言えないはず。そのあたりが引っかかります。

あと、単語帳による暗記について... 数学の説明と良く似た話だとすると、 実は 理解が先にあって、単語帳による暗記というのは、反復による理解の固定化 と呼ぶべきもの... なのかなぁと 思いました。となると 私が暗記だと思っていた ものとはちょっと違うかも。

私がもっているイメージだと、

というのと

ぐらいの違いがあるような... 私は、前者は全然ダメで、後者は好き。


おお、ながいコメントが。私の 質問につきあってくれて、恐縮です。

とりあえず、テーマは、"難問を暗記する" ということと、"英単語が先か長文が先か" の2つ かなぁ。

でも、問題の方が気になって気になって... そっちから

問題みて

で、それにしたがって、すなおにやれば

    (x - y -z)^2 + y^2 + z^2 = 0 + 1 + 4

つうのが出て来るっす。y,z は 正だから x - y - z = 0 ということが言えて y = 1 , z = 2 or y = 2, z = 1 が言え、どちらの場合も x = 3

... と書いたものの、実は、はまった。式をこねくり回しすぎて、変なところに 落ち込んでしまったのでした。

とりあえず... 落ち着いた。

で、暗記数学の話にもどると... 公式とかほとんど全て忘れているんだけども、 XX^2 + YY^2 = 1 + 4 の形にできないかということだけは 覚えている。 これはパターンなんだろうけど、暗記したもの なんだろうか やっぱり。

まぁ、いろいろな条件とともに覚えたけども、すこしづつ忘れていって、 それだけが残ったというものかもしれない。昔は、理解したものは忘れるわけが ないと思っていたのだが... 実際 理解していたはずのものが、理解できないようになっている というのを 体験してみると.. 理解というのは 記憶の一形態であるということは納得できる。 でも、公式は暗記だけど、パターンの記憶は暗記じゃないような気がするなぁ。

"英単語が先か長文が先か" という話。実は そのこと自体は知っているとは言える 状態ではないので、あえて、地図と現地 で 表現することにします。

地図を見て役立てるのは、ダメと書いたけど、嫌いではなく、見ても分からない のです。地図みて現地へいっても なんど確認しても 地図の知識が全然使えない。現地で右往左往するのだけれども...後で地図みれば 地図がよくわかる。 たぶん、名前なしで理解して、あとで名前を与える ような 記憶方法しか 得意ではないんじゃないかと。--- これは損なんで、なんとかしたい なぁ と 思っている次第。


話がどんどん展開 していますが...

ひとつコメント。暗記は悪 から 暗記数学は悪 みたいな話の流れがひとつありますが、 私は、悪 的な イメージはもっていないです。むしろ、どうやって それを 他の人に伝えられるような、暗記的知識にできるのか という 方法論に興味があって いろいろ 意地が悪いような(自分ではそういうつもりはないんですが、 そう受け取れ兼ねない) 質問になっているわけです。

ポイントは ある共有できていない知識なり理解を 人にどうやって伝えるか ( 伝えられる形にできるか) ということではないか。 自分の中では整理できてしまっていて、人に伝えられそうだというものもあるんだけ ども、実際 やってみると、既に知っている人には伝わるけども、知らない人には 伝わらないということが多々あって、そのあたりの話が一番興味あるところ。

まあ現在前振り中なんで(笑)
実際に悪、というイメージは、世の中には私はあるとは思いますが、 今書いてるのは、 それよりも今後の暗記と理解の関係についての説明の為の準備です。--有野

という訳で徐々に仕込んどいたネタを使いはじめましたがどうでしょう? 別に本当にいじけてる訳では無いんですが、 まあ読み物、という事で導入があんな感じになってます(^^;--有野


とりあえず まとめてみる。

暗記シリーズ数学編スレッド

ここで(第5回時)、リクエストを書いてみるテスト(もっと長くしてどうする!)

ここで(第6回時)はっきり認識したことがある。

私は、「うーん」と考える時間は、 条件=解法の組み合わせで覚えておいた知識(= パターン)を駆使する訓練にすぎない とは思っていたが、有野さんがいっていることは、"同じ知識しか駆使しないので あれば、レベルが上がったときにやった方が効率的だ。"ということに思えてきた。

なぜ少ない知識を、駆使しようとするのか?... ここらへんがやっぱり本質的な 差かも知れない。

で、上のコード読みの例 だと、私は覚えなければならない知識を減らそうと工夫 しているわけだ。だから、有野さんの読み方と本質的な差があるに違いない。 そして、私は理解数学派 ってことになるのか。

書くことについては、どうか。表現することは、知識の具体化でもある。 具体化されたものは、あいまいさがない(or すくない) 状態であるはず。 すくなくとも暗記しやすい状態になっているのは間違いない。 表現することに苦労する --- これは、暗記数学派とは遠い位置にいるという証明 かもしれない。

もちろん、すべてのことについて表現することに苦労するわけではないし、 すべての問題について、少ない知識を駆使しようとはしていない。 だから、基本的にトレードオフの問題だと思うけれども...そのバランスは 新たな認識のもとに、見直してみる必要性がありそうだ。

ここで(第7回)、各地の反応が... という話が、まあ10回まで予告されたら 話の腰を折るわけにもいかないから、静聴するしかありますまい。
.. そうすると まとめる必要が...

とりあえずここへの反応は全部終わってからの予定です。
一応当初予定していた流れ、というのがあるので(^^;--有野

ようやく、終りました。どうもごくろうさまでした。

ふうむ、読み終って 実は一番知りたいことが、第9回、第10回にかかれていたり します。暗記項目の抽出には相当のコストがかかるわけですね。で、それを あえてやるには、それが必要であるという信念/覚悟が必要 --- このあたりのことまで違うように感じられるのか!なんて思いながら読んでいた もので....

さて、私はまあ発端になった人間であり、そもそも興味をもって読んだわけだから、 書いてあることはよくわかったつもりだが、他の人はどうだったんだろうか?

的反応がありそうなのは、よくわかるような気がする。 だいたい文章を読んで、読み手の体験にMapping できないと 読み手は 簡単には理解できない。 で、多数派の意見 を知らないと 落しどころというか説明のポイントが、 微妙にずれがちというのは、ありがちのような気がする。同じことを何回か 説明すれば、回を増す毎に 説得力が増える.. そういうものじゃないかと いう気がしてます。

私自身は、自明でない なにかを説明しなければならなかったことは、 経験として それほどないんですが、一度極端に複雑なことを説明しようと 試みて、その結果、読み手の体験にMapping できるはずもない 話 ... というのはそもそも説明不可能 ぐらいに思うようになりました。

で、なにがいいたかったかというと、 読み手がなにを経験してなにを経験していないか わからない状態で、 多数派に理解してもらうのは、たぶん無理なんじゃないか... だから、推敲したから よくわかる ようになるわけではないかも知れない。
というわけで、悲観するにはあたらないじゃないかと。 ... 同じことを2度3度説明したとしたら、 たぶん より多くの人がわかるようになるんじゃないかと...。

内容についての 私の考えというのは、また別途。よおく読んでからでないと、 ..というより、上記の話と関連あるんだけども、どういうとき暗記項目の抽出 というやつをやるべきか そしてどうやって実践していくか というのが 1つの課題で もうひとつは、暗記を楽しく... 。前者は、いままでも ある程度やってみていたけれども 認識が少しかわればやりかたも変わってくる だろうと思っている。後者は..楽しいものとそうでないものがあって、 楽しくないと思えるものはいままでやっていない。楽しいと思えるにはなにが 必要かということを考えだすということだろうと思っている。
これは単に印象であって、考えがまとまるのは もっと時間がかかるだろうし、 結論そのものは、ずっとずっと後に出るんだろう。

とりあえず途中で出ていた質問に関しては、 それなりに答えもあった気もしますが、 答えて無いのとか、 答えてるつもりに私がなってるだけの物等いろいろある気がします。 どうしましょ?--有野

とりあえず、質問に答えてもらったかという観点だと、

という感じかなぁ。

いやいや、どうも。コメントありがたいです。

長く書く理由

暇だから、とか?(ぉ
いや、別に長く書こう、などとは思って無いのですが。 書くネタによって理由は違う気がしますが、 実は一緒なのかなぁ。

自分の考えている事を一時的に保存する為に書く場合、 考えてる事は割と膨大な上に、 普通は明文化せずに思考しているので、 文章に落とす時には長い文章になるのはしょうがない。

また、物理学科、というのは、基本的に学校でやる事は議論する事です。
議論とは、なんか良くわからない事とかを言葉にして、 質問する、という事でしょうか。
相手の言う事で良くわからない事はやっぱり言葉にして説明する訳です。
普通は扱うのがそこそこ複雑なので、 説明というのは正確で長くなりがちです。
そこらへんと関係しているかもしれません。--有野

私の場合、

なんていうことをやりがちだったりします。で、訓練だと思って 面倒なのを あえてやっていくと...

のに違いないと思っている。--- というのが、なんとなく わかっているつもりの 内容なのだろう。

ちなみに、有野さんの言葉を全部借りているのは、 やっぱり言葉にして説明することが出来ていないから、 上のことは、自明だったりするのかも知れませんが、私にとっては自明という レベルの認識ではないはず、なぜなら出来ていないから。

こういうことが、自分の体験との差で理解するということで、ずいぶん上の 方で述べた 新しい認識 ということだと考えています。

他人と共有するのは難しい事とは思わなくなる必要を感じているわけで、 面倒がゆえに やりがちなことを 意識してやらないようにするというのが、 言動の差になってくるはず。

ソースの読み方

ソースを何故全部読むか、、、って別に私も全部は読みませんが。
私の場合は、ソースを勉強で読む事が最近は多いので、 全部読む事が多い気がします。 MINIXとかL4とかemacsとかSCMとか。 という事で全部読む事が多い。 動かしたい、とか、こういう機能を付けたい、 という訳では無いので、 普通は勉強したい所は全部読むと思います。 うーん、暗記等との関連は無い気も。

相手の知らない事をどう他人に伝えるか

普通の人とは敷居が低い、というのはどういう意味かちとわからんのですが(typoだとは思うけど、本来の文がなんだったのかがわからない)、

基本的に、 ある一定量の文を書いても良い状況であれば、 あまり他人と共有するのは難しい事、 とは思ってません。

共有しづらい事はありますが、 大抵の事は相手に読む気があれば、 理解させる文は作れる、とは思います。
分量が多くなるし、 相手に読む気があれば、という前提は普通はなりたたないのでやりませんが。--有野

上で、だいたい自分の体験との対比というのは説明できたと思うけどコメント すれば、

たぶん、私は実践するのに相当苦労しそう。まあこれが現状認識で、 それをするために、上のことができている人の 感覚というかそういうものを 知りたかった わけです。
いやいや、本当に ありがたいです。


お、速読英単語入門編 というのがアルですか。... ということで それの CD BOOK を買ってみた。

ゆっくり読んでくれる。Paced Reading というやつと 普通の Normal Speed の 2種類 が録音されていて、Paced Reading は聞き取れるけど Normal Speed は、なかなかうまく聞けない。

私のレベルにちょうど良いではないか... ってことは高校受験レベル? ... まあいいけど。

で、次に 速読英単語の必修編 がひかえていて、 その先は 横山ロジカルリーディング講義の実況中継 .. さらに アルクの速読速聴大特訓 ... 先は長いなぁ。

有野さんから、英語の勉強方法についてのコメントが ...

コメント TOEICの勉強方法

私はこれが良いと思うなんていうコメントはできるレベルにないが... どういう風にやるつもりか ぐらいは 書けるはず。

後でまとめてみたい。


(最終更新 Thu Mar 30 18:02:43 2006)