サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
memo.wnishida.com
● ご挨拶 昨年6月のアナウンス以来、停止していたオーバーシー・パブリッシングの活動ですが、このたび新たにPDFオンライン連載を開始することになりました。GNU開発ツールの出版より6年半を経て、ようやくComputer Architecture Seriesの続刊が登場致します(最新情報は Twitter @oversea_pubにて)。 また、これに合わせてWataru's memoは、オーバーシー・パブリッシングのホームページ上に移動します。 私事になりますが、昨年7月に大学を辞し、翌8月愛媛県松山市において、糖尿病専門クリニックである「にしだわたる糖尿病内科」を開院致しました。半年が経過し、ようやく診療業務も落ち着いてきたので、念願であった出版にも力を入れることが可能になった次第です。 技術と医学、一見かけ離れたテーマに見えますが、それぞれが置かれている状況は同じです。専門化・複雑化
● [Thoughts][Publish] I'm alive. お久しぶりの西田です。ネット上での2年以上にわたる沈黙は、ほとんど"他界"を意味するかと思いますが、おかげさまで元気です。この夏、長年勤務してきた大学での生活に終止符を打ち、愛媛県松山市にて糖尿病専門クリニックを開院することになりました。それと同時に、しばらく停滞していた出版業を再開し、Computer Architecture Seriesの第二弾をお届けするべく、準備を進めています。 私の本職が内科医であることをご存じでなかった方は、"開業の報"に戸惑われているかもしれません。なぜ人を診察するはずの医師が、GCCプログラミング工房や、GNU開発ツールを執筆していたのか?詳細については、おいおい述べていきたいと思いますが、私にとって技術書を執筆することと、外来で検査結果や治療内容を説明することは、いずれも等価な仕事なのです
● [Thoughts][Hardware] 新春 機械語入門講座・その4 しばらく間が空いてしまいましたが、一気に TVM を完成させてしまいましょう。今日のメインテーマは、ステート数の把握と immediate という用語の正しい理解です。これまで「即値」というトンデモ訳に悩まされてきた方々に、本エントリを捧げます。 クロックとステート、そしてプログラムカウンタ メモリ回りの次は、いよいよ命令の実装ですが、その前に TVM (Tiny Virtual Machine) を駆動するクロック、そしてプログラムカウンタが必要です。これだけの準備が整い、初めて「何もしない (NOP: No OPeration)」命令を実装することができます。NOP のついでに「停まる」ための命令、SLEEP も実装します。なぜ、わざわざ停まる必要があるのか?その理由については、後で明らかになります。tvm3.
● [Thoughts][Hardware] 新春 機械語入門講座・その3 今日のテーマは「疑似 LED 発光機能」の搭載です。出来上がってみるとお馬鹿な機能なのですが、UNIX の面白さを垣間見させてくれる、良いテーマではないかと私は思います。 懐かしのエスケープシーケンス "エスケープシーケンス" この言葉を聞いて、思わず涙腺がゆるむのは間違いなくパソコン通信世代でしょう。当時のネットワークは、モデムと呼ばれる装置を介した RS-232C 通信が主流でした。画面は 80桁 x 25行の固定、表示はASCIIと漢字の混在、いわゆる CUI (Character-based User Interface)と呼ばれる古典的なインターフェースです。このためMS-DOSが提供する標準APIには、スクロール機能は含まれておらず、過ぎ去った画面を再表示させる処理は、個々人のプログラマーの腕に任されて
● [Thoughts][Hardware] 新春 機械語入門講座・その2 前回、機械語習得のためには、まずは目的とするプロセッサのプログラマーズ・マニュアルとハードウェア・マニュアルを手元に用意することが肝要とお話しました。何度も繰り返している通り、データシートというものは「分かる人が分かる」ようにしか書かれていません。ですから、初心者が挑戦する際には挫折がつきものなのですが、かと言って敬遠していては、一生データシートを読めるようにはなりません。 大切なことは、膨大なマニュアルの一箇所でも良いから「ここは理解できた」という経験を地道に重ねていくことです。この鍛錬を1年、3年と気長に続けていけば、必ずやデータシートから必要な情報を自在に抽出できるようになります。しかし・・しかし、現実は厳しい。学校や教科書は「データシートの読み方」を教えてはくれないからです。そのくせ、社会人として現場に放り
● [Thoughts][Hard] 新春 機械語入門講座・その1 明けましておめでとうございます。元旦より、読者の方から催促のエールを頂きましたので、急遽予定を変更し、「新春 機械語入門講座」を開講したいと思います (“本物を探せ” は、この講座終了後に続く)。 機械語習得の第一段階 まず最初に、「機械語を理解できたよ、母さん!」とは具体的にどういう境地を指すのか、この点を明らかにしておきましょう。諸説あるとは思いますが、私の考える機械語習得に関する第一段階は次のようなものです。 未知のプロセッサーであっても、データシートさえ入手できれば、ハンドアセンブルできる ハンドアセンブルとは、これも今や死語になっていますが、アセンブリ言語のソースリストを "手作業で" 機械語に変換することを意味します。この作業を遂行するためには、データシートに記載されたオペコードマップとアドレッシングモード、レ
● [Thoughts][Hard] 本物を探せ 機械語はなぜ難しいのか 先日「"割り込み処理" は既に死語と化している」と書きましたが、若い人達はアセンブリ言語や機械語の学習を放棄している訳ではありません。数は少ないかもしれませんが、スクリプト言語からプログラミングに目覚め、やがてコンピュータ内部の仕組みに興味を持ち、ついには機械語を学ぼうとする人達は間違いなく存在します。だからこそ、専門雑誌は定期的に「コンピュータの仕組み」に関する特集を組んできましたし、関連する書籍も多数出版されてきたのでしょう。 それでは、このような特集が組まれ書籍が出版されるたびに、彼らの疑問は解消し、コンピュータ内部への理解は深まったのでしょうか?残念ながら、そうではないようです。"理解" するということは、単純に知識が増えることではありません。ある "閾値" を超える必要がある。閾値を超えて、初めて新しい "
● [Hard] Programmable training watch, eZ430 Chronos 発売間近 陰気な男でいいですよ いしかわきょうすけさんが綴る "陰気な男でいいですか?" は、私にとってインターネット上で唯一の心の拠り所。毎夜楽しみに訪れるこのオアシスで、11/24に驚愕のニュースを発見。 いつもの Engadget Japanese を見ていたらアヤシイ時計の記事が目に入ってきた。これは以前 Sim さんが紹介されていた eZ430-Chronos ではないか。 eZ430とくれば、Texas Instruments社が世界に誇るマイクロコントローラ MSP430 (Mixed Signal Processor) ですが、その "怪しい時計" とはこれ如何に?添えられていた engadget の記事をクリックして、のけぞった。「なんじゃ、こりゃ〜〜〜!腕時計の開発キ
● [Publish][Books] GNU開発ツール ジュンク堂書店に登場 ジュンク堂書店 松山店開店 この7月末、松山で最も大きな売り場面積を誇っていた紀伊国屋書店が、突然閉店することとなりました。もともと、工学書の品揃えは郊外にある宮脇書店の方が充実していたため、それほどショックではなかったものの、大型書店がひとつ消えるとやはり寂しいものです。 ところが、間もなく「ジュンク堂書店が四国初上陸」という信じられないような朗報がもたらされました。それも9月には開店するという。「紀伊国屋が閉店した後に、わずか2ヵ月で開店?ホンマかいな?」 ホンマでした。9月19日、紀伊國屋書店が入居していたビルがそのままジュンク堂書店として生まれ変わったのです。翌日の愛媛新聞1面には、華々しくその様子が掲載されました。その後の幾つかの記事をまとめると、ジュンク堂出店には以下のような背景があったようです。 6
● [Thoughts][Books] 小説作法 スティーヴン・キング (その二) 古今東西、多くの作家が小説や文章作法に関わる書籍を著していますが、「小説作法 (On Writing)」は、次の二点において異色を放っています。 執筆に臨む際の覚悟を問うている Editing process の重要性と実例を示している 特に後者に関する記述はとても重要なもので、他書ではお目にかかれません。残念ながら、今の学校教育の中で教師から一生役立つ編集の手ほどきを受けることは不可能に近いでしょう。社会人となった後も、優れた "編集者" (職業人だけでなく指導者も含む)に出会うことは、良き伴侶を見つけることよりも難しい。 Stephen King は未だ mentor に巡り会えていない読者に向かい、高校時代に出会った自分の師から学んだことを伝えようとしているのです。 But it's writing.
● [Thoughts][Books] 小説作法 スティーヴン・キング (その一) 先日は、橋本治の "わからないという方法" を通して、「編集者の出る幕なんかない」場面を紹介しました。これに対して、「編集者は神」と明言する作家も世の中には存在します。今日は、その代表作家であるスティーヴン・キング(Stephen King)が著した「小説作法 (On Writing)」をご紹介しましょう。 King 氏は、ホラー小説界の帝王として有名ですが、同氏の手になる「小説作法 (On Writing)」は、小説家を志す人達の間で高く評価されている、一風変わった作品です。残念ながら、池 央耿(Ike Hiroaki)氏による邦訳は絶版となってしまいましたが、原書は今でも出版されています。 翻訳書のタイトルは読者に「小説の書き方」を連想させますが、この命名はいささか不適切です。原題に "On Writi
● [Thoughts][Books] 「わからない」という方法 橋本治 「橋本治の手トリ足トリ」の内容から、同氏が凄腕テクニカルライターであることを感じ取った私は、いくつか彼の著作を買い求めたのですが、この中に「わからない」という方法 と題する一冊がありました。変てこりんなタイトルですが、変てこりんな私には、その言わんとすることが本を紐解く前から分かったように思います。 章立ては次の通り。 第一章 「わからない」は根性である 第二章 「わからない」という方法 第三章 なんにも知らないバカはこんなことをする 第四章 知性する身体 いきなり第一章から、訳がわからないタイトルです。「根性である」と言われてもねぇ・・。しかも、内容はくどい上にあんまり面白くない。Amazon.co.jpのレビューで「くどい」が連発されているのは当然と言えますが、実はこれは意地の悪い著者が読者を選別するために仕掛け
● ORがわからない 情報処理の教科書において、最初に登場する論理回路。中でも NOT, AND, OR は基本ゲート回路として当たり前のように、さらりと解説されていきます。さらりと。 「わからない=恥」とされる日本社会では、生徒の誰もが疑問の声を上げないままに授業は進みますが、なかにはエジソン少年やアインシュタイン少年のように勇気ある生徒もいることでしょう。 先生、OR 回路がよくわかりません。 日本語で「晴れ または 曇り」といえば、「晴れ」もしくは「曇り」、どちらかが真でしょう。 でも、この教科書に書いてある OR 回路では「晴れ かつ 曇り」も真となってしまいます。 これって論理的におかしいんじゃないですか? この論理表を OR と呼ぶのは間違っていると思います。 「晴れ または 曇り」という論理命題にピッタリ合うのは、むしろ次に出てくる XOR だと思うんですが? この生徒さん(
● [Thoughts] 落第させられたエジソン少年とアインシュタイン少年 先日紹介した川上正光博士の著書「日本に先生らしい先生はいるのか」の中で、エジソンとアインシュタインの少年時代について、興味深いエピソードが紹介されています。 発明王といわれたエジソンは、家庭の都合で一年生に入学したのは八歳の時でした。ところが、エジソンが変な質問ばかりするというので、先生はエジソンをバカだと決めつけ、「こんなバカな子は、学校では教えられない」と授業を断ってしまいました。そこで、お母さんが先生に代わって教えることにしたのです。 エジソンがどんな質問をしたかと言いますと、「2と2を加えると4になる。2に2をかけても4になる。これはどうしてだろう。とても不思議だ」といった類のものでした。 私はこれを読んで、エジソンは大変賢い子でその質問の意味が分からなかった先生こそ、なんと愚かな先生ではなかったかと思いま
● [Thoughts] 名著はお金では買えない 私が知る専門書や専門雑誌の連載記事の世界では、その出来具合は執筆前の資料集めの段階でほぼ決定します。資料集めの対象ですが、専門知識に関連する膨大な基礎資料の探索はもちろんのこと、過去に同一のテーマで出版された国内外の書籍や文献についても徹底的な調査を行わなければなりません。その上で全体像を俯瞰し、先人の良いところは真似、悪しき表現は削り、説明不足の点は新たに起筆する。当たり前のことと言えば当たり前ですが、この作業の意味を理解し実践している商業出版社は、ほとんどないと言って良いでしょう。 飽書の時代 試しに本屋の情報処理コーナーを覗いてみましょう。C言語ひとつをとっても、入門書からポインタの専門書まで多種多様の書籍が並んでいます。今から30年近く前、"K&R プログラミング言語C"ただ一冊しか存在しなかった時代を思えば、現在は初学者にとって桃
● [Thoughts] 名著は読み手の心に火をつける 明けましておめでとうございます 更新が止まること、早9ヵ月。久しぶりの復活です。 The great teacher inspires. William Arthur Ward というアメリカの教育者(1921-1994)が残した、教師に関する有名な格言があります。 The mediocre teacher tells. The good teacher explains. The superior teacher demonstrates. The great teacher inspires. 私が敬愛する故川上正光博士(電子回路の著者)は、この言葉を「先生の四階級」に改変し、自著「日本に先生らしい先生はいるのか」(閣文社 1990年・絶版)の最終章で次のように記しています。 先生の四階級 平凡な先生は、ただしゃべる(Bad te
UNIX の慣習にもとづき、合計8セクションから構成されていますが、実際に中身が用意されているのはセクション1, 2, 3のみです。順番に見ていきましょう。 セクション1の実体は intro.1 であり、Introduction to user commands と名付けられています。*BSD の intro.1 はほぼテンプレートファイルのままですが、Linux の場合は、ログイン・シェル・パス名・ディレクトリ・ファイルシステムについて、簡単に解説されています。 man 2 syscalls セクション2はシステムコールを担当していますが、Linux の intro.2 は秀逸です。DESCRIPTION の先頭には次の一節が据えられています。 DESCRIPTION Section 2 of the manual describes the Linux system calls. A
● [Thoughts] プログラマの教養は manual pages に宿る (その6) 6回目にして、いよいよ stdio.h の登場です。stdio は STanDard Input/Output の略であり、標準入出力関数のプロトタイプ宣言, 関連するマクロや構造体の定義などを収めています。 printf 関数宣言 stdio.h ヘッダーファイルを利用する前に、man 3 printf で printf ライブラリ関数の説明を見ておきましょう(セクション3を指定しない場合、セクション1の printf コマンドが表示されるので注意)。 PRINTF(3) Linux Programmer’s Manual PRINTF(3) NAME printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprint
● [Thoughts] プログラマの教養は manual pages に宿る (その5) 今回は、いよいよ GNU C コンパイラの登場です。一般書ではほとんど触れられることのない、インクルード処理の意義を再考してみましょう。 はじまりは hello.c 最初のソースファイルは、意図的に #include <stdio.h> を削除した hello1.c です。 int main() { printf("Hello, world!\n"); return 123; } main 関数の中に、printf 関数および return 文を記述しただけの小さなプログラムです。通常は return 文にゼロが添えられていますが、ステータスコードの意味を強調するために 123 を指定しています(UNIX の慣習としてプロセスは正常終了の時0、異常終了の時1を返す)。 main 関数の戻り値は、プロ
● [Thoughts] プログラマの教養は manual pages に宿る (その4) Linux/GNU 開発環境の役者が揃ったところで、実際にプログラムのビルドに挑戦してみましょう。 最初に binutils ありき 全ての環境において、もっとも原始的かつ基本的な開発ツールは、アセンブラとリンカです。昔のアセンブラは、そのまま実行可能ファイルを出力できていたのですが(a.out の名前は Assembler OUTput に由来)、GNU 開発環境ではアセンブラ (as: ASsembler) が出力したオブジェクトファイルから、リンカ・ローダ (ld: linker LoaDer) が実行可能ファイルを出力します(Netwide Assembler: NASM を利用すれば、アセンブラ単体で実行可能ファイルを生成可能)。 アセンブラ (as) とリンカ・ローダ (ld) は、GN
● [Thoughts] プログラマの教養は manual pages に宿る (その3) 早速、Cソースからの実行可能ファイル作成に進みたいところですが、その前に作業環境を確認しておきましょう。 Linux/GNU 開発環境の確認方法 私が使用している Linux/GNU 開発環境は以下の通りです。 $ uname -a Linux debian64 2.6.22-3-amd64 #1 SMP Sun Nov 4 18:18:09 UTC 2007 x86_64 GNU/Linux オペレーティングシステム環境を簡単に知るためには、uname (Uts NAME: UTS = Universal Time-sharing System / Unix Time-sharing System) コマンドを使います。この Linux マシンは Core 2 プロセッサ搭載のため、Debian
● [Thoughts] プログラマの教養は manual pages に宿る (その1) NetBSD のドキュメント一覧は、こちらにまとめられています。中でも、The NetBSD Guide は書籍顔負けの完成度。現在、NetBSD の解説書は出版されていませんが、これだけ充実したガイドが準備されていれば、確かに必要ないのかもしれません。 The NetBSD Guide is published. 同書は、NetBSD www チームによって更新が頻回に行われており、現在公開されているファイルの日付は9日前の 2/21 となっていますが、その表記が実に渋いのです。 Published: 2008/02/19 18:52:52 日付の前にさりげなく添えられている、"Published" にご注目。オープンソース界隈ではあまり見かけることのない表現ですが、この言葉は決して軽々しく使える
● [Thoughts] プログラマの教養は manual pages に宿る (その2) manual pages の構成や内容は、オペレーティングシステムによりかなり様相が異なりますが、その背景にある設計者の思想を理解するためには、Cソースファイル中で頻回に登場する「ヘッダーファイル」の意味を正確に把握しておく必要があります。 ヘッダーファイルを巡る諸問題 残念なことに、ヘッダーファイルの取り扱いは、動作環境や処理系によって影響を受けることもあり、従来のC言語入門書や UNIX システムプログラミング解説書で深く追求されることはありませんでした。 printf 関数を使用する時は、プログラムの先頭に #include <stdio.h> と書く。 C言語入門書中で必ず登場するこの一文ですが、その意味が語られることはまずありません。向学心旺盛な読者であれば、#include <stdio
● [Thoughts] オペレーティングシステムの求めしところ 「先人の結果を真似るのではなく、先人が結果に至った道筋を学べ」という考えは、オペレーティングシステムにも当てはまると思います。 Linux, OpenBSD, NetBSD, これらのシステム上で稼働する Apache サーバーは、外部から観察する限りにおいて、その挙動に大きな違いはありませんが、内部は全くことなる実装に基づいています。とにかく動けば良いという実装もあれば、二重三重の異常対策がシステム側に用意された環境もありますし、あらゆるアーキテクチャに対してビルドが可能なシステムもあります。 カーネルやライブラリが POSIX 仕様を満たし、正常動作することは「結果」の一側面に過ぎず、オペレーティングシステムにおいては、いかに安定かつ安全に稼働させるか、いかに合目的的なソースツリーを構築するかが、より重要な評価項目になる
● [Thoughts] 古人の跡を求めず、古人の求めしところを求めよ 年を重ねるごとに、体力や集中力が低下していくことを思い知らされますが、ものを感じる心や調べる力は、逆に豊になっていくようです。特に古典に関しては、若い頃には左から右へ通り過ぎるだけであった言葉達が、全く異なる表情をもって目に飛び込んでくるから不思議です。 古典との共振 この現象をラジオ周波工学の言葉で説明すれば、古典と自分との間に「共振」が発生しているのだと思います。「同調」と呼び変えても良いかもしれません。自分の心が持つ共振回路の周波数が、古典のそれと一致した時、私達の精神は激しく揺り動かされます。 共振回路の特性を決定するものは、年齢・経験・喜怒哀楽・教育環境、様々な要因があるのでしょうが、ラジオ愛好家が自分の手でコイルを巻くように、私達も日々の生活の中で気づかない間に「心のコイル」の巻き数や「心のコンデンサ」の容
● [Time] 時間道、再び --UNIX timeの正体-- The identity of "UNIX epoch" 色々考えた末に、全く新しい観点から「UNIX 入門編」を書いている。世の中には当たり前とされていることが多いけれど、深く考えてみると実は納得がいかないことばかりだ。 UNIX time はそのひとつ。Linux 上の man page は、ctime に関して次のように言っている。 The ctime(), gmtime() and localtime() functions all take an argument of data type time_t which represents calendar time. When interpreted as an absolute time value, it represents the number of sec
Wataru's memo [Books] Categories | Books | Hard | Hardware | Linux | MCU | Misc | Publish | Radio | Repository | Thoughts | Time | UNIX | Writing | プロフィール 2003-09-16 (Tue)#p01 それがぼくには楽しかったから (JUST FOR FUN) 2003-09-16 (Tue)#p02 GNU Bash Reference Manual 2003-09-20 (Sat)#p01 Scheme 本3冊 2003-09-20 (Sat)#p02 Practical file system design 2003-09-20 (Sat)#p03 CPU の創りかた・見参 2003-09-21 (Sun)#p01 Structure
● [Writing] Linux から目覚めるぼくらのゲームボーイ 目覚めよ、ゲームボーイ 渡辺編集長からは 11/4 日頃と伺っていたのだが、本日 google しているとなんと Amazon.co.jp と SBP において、11/1 日から「Linux から目覚めるぼくらのゲームボーイ・書籍版」の宣伝が始まっているではないか! そうなんです、実は本編である GCCプログラミング工房を差し置いて、特別編が一足先にデビューすることに相成りました。書籍版は全編110ページ弱であり、基本的には特別編に若干手を加えた内容に、USB 版ブートケーブルが添付されたものになる予定。価格も予価 7600 円とかなり高額であるため、果たして本書が売れるのかどうか、私としてはハラハラドキドキ心臓に悪い・・というのが、正直なところ。 そもそも、「Linux から目覚めるぼくらのゲームボーイ」の企画は、「ク
● [Thoughts] フィンランドにおける Ph.D. Defence 学位審査は日本の大学院生にとっても恐ろしいものである。普段おちゃらけた連中でも、さすがに審査日が近づくと目がつり上がり、寡黙になる。 その内容だが、「うむ、確かにこいつは博士としてふさわしい」と納得できるだけのプレゼンテーションをこなせる大学院生は、実はごくわずかである。中には「なんでこいつが博士やねん?単なる棚ボタちゃうんか?」という不届きな輩も確かにいる。それも結構な数だ。 噂というのは、悪いことの方が絶対速度は遙かに大きいので、「あの素敵な先輩を見習って、大学院で研究に打ち込むぞ!」とはならずに、「あんなボンクラ先輩でも、お情けで学位取れたらしいよ。仕事は全部上の先生がやったらしいけど・・」となる訳である。よって、大学内部における博士号取得者に対する評価はないに等しい。 「これっておかしいんちゃう?」私は常々
次のページ
このページを最初にブックマークしてみませんか?
『Wataru's memo』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く