忍者ブログ
[4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]

DATE : 2017/11/19 (Sun)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


DATE : 2008/02/11 (Mon)

デバッガの理論と実装」(Jonathan B.Rosenberg著、吉川邦夫訳、アスキー、1998)を読みました。デバッガのアルゴリズムや、各種OSのデバッグ API について述べられた本です。

デバッガには常々お世話になっており、その動作が気になっていたのですが、実際にはかなり細々としたことを行っていました。

例えば、ブレークポイントを設定して、デバッギ(デバッガによってデバッグされるプログラムのこと)の動作を途中で止めるには、ブレークポイントの対象となっているメモリ内の命令を、CPU のブレークポイント命令に置き換えることで行っています。処理の再開は、置き換えた命令を元の命令に戻すことで行います。シングルステップ実行も似たようなもので、命令を実行する前に、次の命令をブレークポイント命令に置き換えます。そしてブレークポイントで処理が停止したら、置き換えた部分を元の命令に戻し、次の命令をブレークポイント命令に置き換え……という処理を繰り返します。

つまり、デバッガはデバッギのあるメモリを様々に操作することで、デバッグを実現していると言えます。

ところが、これではデバッギの実行は、通常の実行時とメモリの状態が異なることになります。本書でも「デバッガの諸原則」(p.26~)で述べられていますが、計測によって実際の状態が乱れてしまう「ハイゼンベルク効果」が現れてきます。つまり、通常の実行時には現れていたバグがデバッグ時には消えたり、その逆もありうるのです。この影響の度合は、デバッグ API を提供する OS によって異なりますが、デバッガが存在する限り、ゼロにはできません。同時に実行されるプロセスが1つ増えることで、命令の実行順序やイベントの送信順序も変化するためです。そのため、バグによってはデバッガでも捕らえきれないものが存在します。

これはとても勉強になった部分でした。デバッガというと、動作が神秘的でできないことはないような気がしていました。しかし、デバッガのアルゴリズムを知ることで、その限界も知ることができたような気がします。

(;^ω^)これからも、デバッガとは良いお付き合いをしていきたいと思います。

PR

DATE : 2008/02/05 (Tue)

Java SE が6 Update 3 から Update 4にバージョンアップしていたので、PC の JDK を更新したところ、GlassFish が動作しなくなってしまいました。サーバの起動や終了を行う際に使用する asadmin コマンドを使っても、次のようなエラーメッセージが出て動作しません。

指定されたパスが見つかりません。

GlassFish のバージョンは v2 Update Release 1で、Windows Vista 上で動作させています。「指定したパスが見つかりません」ということで、環境変数まわりを調査してみましたが、おかしなところは見当たりません。そもそも、JDK のバージョンアップ前は正常に動いており、java コマンドへのパスや JAVA_HOME 環境変数も問題ありませんでした。

そこで GlassFish の設定ファイルを探し回ったところ、「<GlassFish のインストールフォルダ>\config\asenv.bat」の中に次の行が見つかりました。

set AS_JAVA=C:\Program Files\Java\jdk1.6.0_03\jre/..

バージョンアップ前の JDK のパスを指定しているので、非常に怪しいです。そこで、この部分を現在の JDK のパスに書き換えてみます。すると、正常に asadmin が動作し、GlassFish も正常に起動しました。

(;^ω^)asenv.bat は、GlassFish 用の環境変数を設定するバッチファイルです。GlassFish は、Java の実行環境のパスを AS_JAVA 環境変数で独自に管理しているところが今回ひっかかった点でした。Ant や Maven などは JAVA_HOME 環境変数で管理していたので、GlassFish もそうだと思い込んでしまったわけです。


DATE : 2008/01/25 (Fri)

幸いにして、電車は動いていました。

ただ、朝が早かったこともあってか、路面が完全に凍結していてとても怖かったです。

(;^ω^)特に、歩道橋は危険でした。雪が積もっていることもあって、段に傾斜がついていたので、一歩間違えると下まで滑り落ちていきそうでした。


DATE : 2008/01/24 (Thu)

今日は大雪だと聞いていたのですが、あさ起きたらとてつもない強風でした。昨日の時点で家が軽く揺れるくらいの風が吹いていたのですが、朝まで続くとは思ってもいませんでした。

というわけで、いつもは自転車で駅に向かうのですが、今日は徒歩で向かうことになりました。

幸い、いつも私が乗る電車は定刻どおりに運転していました。もっとも、それ以降は運休のものもちらほらありましたが……。

それにしても、最近は寒くて仕方がありません。私の部屋にはストーブなどの暖房器具がないので、毛布に包まりながら作業をするしかありません。しかし、指先が冷えてなかなか作業が進みません。体のほうは毛布に包まっていれば十分温かいのですが、手は完全に無防備なので、そこから体温がどんどん奪われていく現状です。

(;^ω^)とりあえず、いまは PC の AC アダプタで指先をあたためたりしています。もうそろそろ、手袋をしてキーボードを打たなければならないのかもしれませんね……。

さて、明日は果たして電車が動くのかどうか……。


DATE : 2008/01/05 (Sat)

ヒューメイン・インタフェース」(ジェフ・ラスキン:著、村上 雅章:訳、ピアソン・エデュケーション、2001)を読みました。人に優しいインタフェースについて、マッキントッシュのプロジェクトを立ち上げた人物が書いた本です。

本書では、マッキントッシュやCanon Catなど、ジェフ・ラスキン本人の手がけた製品のユーザインタフェースを中心に解説しています。中でも、モードをなくすことやアイコン多用の厳禁、GUI への批判などが繰り返し出てきます。

Canon Cat は海外のみで発売されたものらしく、私も本書を読むまでは存在すら知りませんでした。が、電源を落とす前に現在の画面を画像として保存しておいて、次回の電源投入時には立ち上げが完了するまでその画像を表示しておくなど、非常に面白いハードだと思いました。本書によると、状況に応じて人が頭を切り替えるのには約10秒かかるそうです。そのため、次回の電源投入時に終了直前の画面を表示しておくと、立ち上がり完了とともに人が作業を再開できるようになると言います。

その一方で、Canon Cat は、思わず顔をしかめてしまいそうなほど「直感」とはほど遠いインタフェースとなっています。Canon Cat にはマウスはなく、ディスクのフォーマットからメールの送信まで全てキーボード操作で行います。また、GUI はなく、全てテキスト上で完結するインタフェースとなっています。

これだけ見ると、どこが人に優しいのか疑問になってきます。ところが、著者はこれこそが人に優しいインタフェースなのだと主張しています。まず、よくユーザインタフェースの評価で言われる「直感的」というのはしょせん「これまでに見たことがある」ものに過ぎず、ユーザの国籍やこれまでの経験などによって解釈が変わりうるそうです。そして、これまでに見たことがある = 人に優しいとは限らず、本当に人に優しいのは、教育のしやすいインタフェースであり、ユーザの作業の邪魔をしないインタフェースであると述べています(実際にはさらにいろいろと述べていますが、省きました)。

しかし、これはなかなか難しい問題といえます。例えば、見ただけで嫌になりそうなインタフェースの製品を買いたいかというと、正直いって私は買いたくありません。かといって、見た目が良さそうなので買ってみたら、思うように操作できずイライラする……ということも珍しくありません。

結局のところ、その製品でなにを重視するかが問題となってくるのだと思います。例えば、長期間、頻繁に使われるような製品であれば、ユーザが快適に作業できるインタフェースが必要となりますが、時々しか使われない製品であれば、目で見て使い方が分からないと不便です。また、既存の製品に対抗する場合には、その製品のインタフェースに似せて、ユーザが移行しやすいようにする必要もあります。Canon Cat の場合は、ユーザの快適さに重視を置いたため、一見するとややこしいインタフェースになっているのでしょう。

(;^ω^)私の身近な例では、vi エディタが該当するかと思います。キーボード操作だけでテキストの編集ができる反面、とっつきはかなり悪いものとなっています。全ての操作はとても覚えきれません。ただ、一部の操作だけでもじゅうぶん快適に使えますし、なによりキーボードから手を離さなくてもいいという点は魅力です。もっとも、人に強くおすすめできるかというと、とっつきが悪い以上なかなか難しいと思います。

忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
10 2017/11 12
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)
ブログ内検索
最近の状況
リンク
カレンダー
10 2017/11 12
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)