『ライト、ついてますか?』を読みました。印象に残った文章をまとめました

ライト、ついてますか? −問題発見の人間学』ドナルド・C・ゴース、ジェラルド・M・ワインバーグ著 (共立出版)を読みました。
自分用のメモもかねて特に印象に残った文章を抜粋しました。
気になった方はぜひ書店等で買って読んでみてください。

注意事項

  • 一部独自解釈が含まれています。独自解釈か否かは記号で分けています
  • 自分向けのメモが主な目的です。

記号について

  • 箇条書き文書について:抜粋した文章
  • ':'以降:抜粋した文章の抜粋した解説
  • '・・・'以降:抜粋した文章の独自解釈に基づく解説

印象に残った文章

  • 問題について何らかの共通理解がなかったら、解答を出したところで、まず間違いなく間違った問題に対する解答に成り終わる。たいていの場合それは、一番大声を出した人の問題、または一番上手にしゃべった人の問題であるにすぎない。(P7)
  • 最良の手がかりは、精神的に単数形から複数形への切り替えをすることである。つまり問題解決者であることをやめて、問題群解決者になるのである。
  • 精神的に切り替えの練習をするには、早い時期から次の問に答えようとしてみるのがよい。「問題を抱えているのは誰ですか?」それを自分だという人ごとに「あなたの問題の本質は何ですか?」
  • 「問題とは、望まれた事柄と認識された事柄の間の相違である」(P15)
  • 「幻の問題は本当の問題」:もともと"家の中が寒すぎる"という形で定式化された問題は、たとえば"なぜ自分は家の中が寒すぎると思ったのだろうか?"とか"私の体はどうしたのだろうか?"とかいった、違う形をとることになる。(P16)
  • 「ユーモアのセンスにない人のために問題を解こうとするな」 ・・・自分なりの解釈がまだ見出せていません(P27)
  • 規則についてほんのちょっと知っていれば、総計算量をたとえば10分の1程度に減らせるだろう(P34)
  • 「彼らの解決方法を問題の定義と取り違えるな」(P36)
  • 「彼らの問題をあまりやすやすと解いてやると、彼らは本当の問題を解いてもらったとは決して信じない」
  • 「道徳的問題点は、とかくおいしい問題の熱にとろける」(P38)・・・コードの健全性も当てはまる?
  • 「解法を問題の定義と取り違えるな。ことにその解法が自分の解法であるときには注意」(P41)・・・解法らしきものが手には入ったときに問題に対して適切かどうかを本当に解法かどうかを疑わなくてはいけない
  • 「問題の正しい定義が得られたかどうかは決してわからない、問題が解けた後でも」(P43)・・・結局観測できたもしくは予想できる範囲での定義になるので、観測できなかった事象や予測が正しかったのか等々、わかりっこない。終わった後の方が少し精度が上がるかもしれないけど。
  • 「結論に飛びついてはいけないが、自分の第一印象は無視するな」(p46)・・・直感は大事
  • 関係者みんなが間違ったのは、問いが重要なら答えも重要であるはずだ、と思いこんだためであった。問題を扱う上で本当に大事なのは、問いは決して答えられることがないと覚悟することなんだ。だがそれは、問い続けている限りは、どうでもいいことなんだ。だまされて究極の解答を得たと思いこむのは、まんまとだまされて究極の問題定義、つまり究極の、真の答えを得たと思い込んだときに限るんだ。で、そう思ったとしたら、それは必ず間違いなんだ。なぜなら『究極の解答』なんてものはそんざいしないからだ
  • 「正しい問題定義が得られたという確信は決して得られない。だがその確信を得ようとする努力は、決してやめてはいけない
  • 「すべての解答は次の問題の出所」(P53):われわれは決して問題を追い払うことはできないのだ。問題と、解答と、そして新しい問題は、終わりのない連鎖を織り出している。期待できるのはせいぜい、解いた問題がよりやっかいさの少ない問題で置き換えられることだけである。この技法は問題の転嫁と呼ばれ、意識的にまたは無意識的に実施されてきわめて有用であることが多い。だがたいていの場合は、新しい問題は無意識的にに作り出される。「問題によっては、それを認識するところが一番難しいということもある」
  • 「キミの問題理解をおじゃんにする原因を三つ考えられないうちは、キミはまだ問題を把握していない」(P56)
  • 「うまく行かない理由を三つ考えよう」
  • たいていの不適合は、認識されさえすれば容易に解ける(P60)
  • 人間は実に適応力に富んだものだから、ほとんどどんな種類の不適合にも身を合わせてします
  • 「結論に飛びつくな、だが第一印象を無視するな」(P62)・・・思いついたらちゃんと調べる
  • 視点の新鮮さが問題だとすればほとんど誰を連れてきても"コンサルタント"として役立つのである。自分たちの方針を予備知識のない人々に説明することによって、われわれはものごとに対する新しい視点を自分たち自身に強制することになる。そして新しい不適合に気づくことになるのだ
  • 「新しい視点は必ず新しい不適合を作り出す」
  • "この図はきわめて見慣れないものを示している。それは何であるか、出来るだけ突拍子もないものを考え出せ"。こちらは"正解"を求めているのではなくて、彼らの意見を求めているのだ、という風に見えるので、威x的雰囲気の大部分が消滅するのである。意見なら誰でも、またはほとんど誰でも持っている。そして自分の個人意見ということになったら、誰でも大家なのだ(P69)
  • 「問題定義のうんざりするような道筋をさまよっているときは、ときどき立ち止まって、迷子になっていないか確認しよう」(P73)
  • いあわせた人が全員、同じ言葉を同じように理解しているという保証は決してないのだ(P77)
  • 「他人が自分の問題を自分で完璧に解けるときに、それを解いてやろうとするな」(P89):彼らの解答は"自分たちの"解答だったから、それを実施していく上での気の入れようが違っていた。もし教師が同じ提案を、権威の座からたれたとしたらどうであったろうか?それは受け入れられないか、またはたとえ受け入れられたとしても真に熱意を持って実行されはしなかったであろう。
  • 「もしある人物が問題に関係があって、しかもその問題を抱えていないなら、何かをやってそれをその人物の問題にしてしまおう」(P94)・・・問題は体感するまで必要性を感じないので、必要性を感じるような状況にして"解決しなければと"と思わせる
  • 彼の問題を彼らの問題ではなく、むしろ彼ら一人ずつの問題に変えることによって、解決したのだった。"分割して統治する"というのは"われわれの問題"方式のちょうど反対であり、したがって問題解決を狙もうとする者にとってもっとも有用な手法である
  • "私の問題"という考えは、「われわれの問題」という考えの反対であるとは限らない。それはほかの連中が悪いことを証明しようと急ぐあまり、われわれが見落としているかもしれないことに気づかせてくれる、という効果がある(P96):問題をあたかもわれわれだけの問題であるかのような視点から見るなら、"環境汚染"についてなにかやることを思いつくかもしれないのだ
  • 問題を幻の問題と見なし、次に状況に対するわれわれの認識を変えるという道筋をたどって、われわれを問題から解放するものであった
  • もし人々の頭の中のライトがついているなら、ちょっと思い出させてやる方がごちゃごちゃいうより有効なのだ(P104)
  • "自然"ゆえに起きる問題は二つの理由によって最悪である。
    • 第1にわれわれは、問題がそんなにかけ離れたところから生じてきたのではどうしようもない、という気持ちに陥り勝ちである。実際、解決のために何かをする責任を逃れたいとき、われわれはしばしば問題を自然のせいにする。"つい食べすぎたり、手に入らないものをひどくほしがったり、経費を水増ししたりするには人の本性さ。"といった具合である。
    • 第2の理由は"自然"の無関心さである。"自然"は、まさにその本性ゆえに、いかなる動機も持たない。"自然はずる賢いが、悪意はもっていない"(P110)
  • ピーターの法則(P112):官僚は組織の中で、その無能の水準に達するまで昇進する。
  • ポールの法則:現代の組織の中では、仕事のむずかしさはすべての官僚の有能さの水準を超える点まで増大する
  • 大学の学部長や、銀行の副頭取や、その他各種の中級官僚と同等、無能さゆえに選ばれたに違いない。あの人がする仕事と、あの人が上の人の首をおびやかさないことの両方によって、ボスたちに気に入られるのだ
  • 公僕に、彼らの人間らしさと有能さへの礼節と敬意をもって接することは、たいていの場合に人間らしさと有能さを呼び起こすもととなる(P116)
  • 「問題の出所はもっともしばしばわれわれ自身の中にある」(P118):著者の経験によれば、問題が実は問題解決者自身に起因する割合は53.27%に及ぶ
  • 問題をずばり出所に送り返すのだ。手柄はすっかり学部長にお回しする。こちらとしても、それでいくらか仕事が片づいたことになる(P126)
  • 問題の出所はしばしばその解決にとって鍵になる要素を含んでいるものだからだ
  • 15週のうちどこからきたのかわからない・・・何がバグの原因かわからないともいえる
  • 特性を適切に利用すれば、考えなければならない問題の定義の数を大幅に減らすことができるからだ(P132)
  • たいていの人は、問題が何であるか知っていると思っているものだが、彼らはその点ではたいていの場合に間違っている。(P137)
  • 多くの場合に、問題を解決すること(ないし解消すること)は取るに足りない作業であるーーひとたび問題が何であるかわかってしまえば
  • 若い元気すぎる問題解決者たちに自分たちの平和な平衡状態をかき乱されて、楽しみを台なしにした経験をもっている(P140)
  • 手持ちの解答に合う問題に対する彼らの情け容赦ない探求ーーそういう探求をわれわれは"解決問題"と呼ぶーー(P142)
  • 「ちょっと見たところと違って人々は、くれといったものを出してやるまでは何がほしかったか知らぬものである」(P147)
  • 人間は計算機を、それが何をしとげるかによってではなく、それがどれだけ時間を食うかによって評価するのである。2,3分しかかからない問題はそんなに重要であるわけないというのだ(P148)
  • 「あとから調べてみれば、本当に問題を解いてほしかった人はそんなにいないものだ」(P153)
  • 急いで解かなければならない問題は確かにたくさんあるが、急がせようとする連中には気をつけなければいけない。問題解決のあとの方の段階で急ぐことは間違いの元になる。だがその最初の数分で急ぐとこは災厄のもとになるのだ(P156)
  • 「本当にほしいか考えるひまはないもの、後悔するひまはいくらでもあるもの」(P158)
  • 人が問題について考えるとき、順応した事物は考慮から除外されやすい。"解答"が順応した要素を取り除いたとき、はじめてわれわれは飛び上がって驚く
  • 他の関係者が無意識にその中に泳いでいる"水"を見ようと努力しなければならない(P160)
  • 解答に、いや問題定義にすら、近づいて感受性が鈍り出す以前に、その道徳的側面について考えてみる必要があるのだ。そのために使う時間は決して無駄にはならない。なぜなら問題解決は決して道徳的に中立的な活動ではないからである

書籍へのリンク

Kubuntu-10.04からKubuntu-11.10にアップデートしたときのメモ

Kubuntu-10.04からKubuntu-11.10にアップデートしたときに案の定失敗したので手動で復旧を試みたときのメモです。

メモなので詳細な確認はしていません。お許しください。

アップデートの流れ

10.04からアップデートするとまず10.10へアップデートされます。
このアップデートからさらに11.10にアップデートすることになります。
このどちらも失敗します。

10.04 to 10.10にアップデートしたときの復旧

依存関係を無視してインストールした後に通常のインストールを行います。
終わったら再起動しましょう。
注意:途中で終了したりするとシステムが起動しなくなる可能性があります

$sudo dpkg --configure -a --force-depends
$sudo apt-get dist-upgrade -f 
$sudo dpkg --configure -a

10.10 to 11.10にアップデートしたときの復旧

先ほどと手順に加えて"apt-get upgrade"が増えています。
これをしないとapt-get先生に怒られます。。。
終わったら再起動しましょう。
注意:途中で終了したりするとシステムが起動しなくなる可能性があります

$sudo dpkg --configure -a --force-depends
$sudo apt-get upgrade -f
$sudo apt-get dist-upgrade -f 
$sudo dpkg --configure -a

補足

なぜアップデートは失敗する?

kdeのパッケージで依存関係が解決できないために起きているようです。
理由は調べていませんが。。。

何をやっているのか?

やってることは単純に「エラーになっている依存関係の問題を無視して作業を進めて、最後に正常な状態に戻す」ようにしています。

参考元

勘(勘といってもエラーログを読んで方針を固めています)でやったので参考元は得にありません。この記事と似たような記事があったらごめんなさい。

  • man dpkg (--force-depends を調べるのに使った)

Jackson-1.9.1(mapper)のAndroid向けライブラリを公開しました

公開終了

jacksonライブラリ(mapper)をandroidのリリースビルドでも使うための方法および対応済みのライブラリを公開します。

Jacksonについて

jacksonライブラリはJava向けのJsonライブラリです。
標準のorg.jsonよりも高速でメモリ効率もよく、InputStreamやbyte[]から直接パース可能で便利です。

注意

公開したライブラリの動作は一切保証いたしません。僕が使用する範囲のみの対応になっています。

謝辞

本家Jacksonライブラリに感謝いたします。

ライセンス

AL-2.0 で公開しています(http://www.apache.org/licenses/LICENSE-2.0.html)

ライブラリ

-ライブラリ: http://huuga.sytes.net/jackson-mapper-asl-1.9.1.jar

使い方

本家のjackson-coreライブラリと合わせてお使いください。

対応内容

下記コード部分の初期化でNullPointerExceptionが発生します。
(dexファイルの生成過程で最適化されてアノテーションが削除されるため?)
nullを代入することで初期化を回避しました(無理矢理...)。

  • org.codehaus.jackson.map.introspect.VisibilityChecker$Std#DEFAULT
- protected final static Std DEFAULT = new Std(Std.class.getAnnotation(JsonAutoDetect.class));
+ protected final static Std DEFAULT = null;

Gentoo Linux LiveDVD 11.2(amd64) 日本語版を公開しました

Gentoo LiveDVD 11.2 日本語版 amd64版を公開しました。

ベータ版から2chブラウザibus-skk, ibus-tutcodeの追加をしました。
引き続きslやmikutterもお楽しみいただけます。

(2011/11/07 追記)
isohybridに対応したバージョンに差し替えました。


ダウンロード

現在ネットワーク機器の調子が悪いため繋がらない状態にあります。申し訳ありません。対応中です。

http://huuga.sytes.net/livedvd-amd64-multilib-11.2_ja_isohybrid.iso
http://huuga.sytes.net/livedvd-amd64-multilib-11.2_ja_isohybrid.iso.DIGESTS

日本語版の特徴

  • 日本語入力対応

ibus-mozc,anthyの他、skk入力、T-Code入力に対応しています。
anthyの設定画面より親指シフトにも対応可能です。

日本語対応

その他の対応

ベータ版からの改善

  • memtest86が起動しない問題の修正
  • LibreOfficeのUIを日本語に対応
  • konsoleのフォントが切れる問題の修正

今後

  • LiveDVD11.2のバグ修正版公開するかも
  • x86版の公開

Gentoo LiveDVD 11.2 日本語版ベータを公開しました

Gentoo合宿で日本語版LiveDVD組で作っていたLiveDVDベータ版を公開します。だいぶ日が空いてしまいました。。

何か気になる点がありましたらコメントかTwitterまでお願いします。

リリースプラン

LiveDVD 11.2元にしてるのでRCとかいらない気がするので、そのままリリースになるかも

  • 9/27 β版公開
  • 10/1 RC版公開 (10/3 変更)
  • 10/3か4 リリース版公開 (10/3 変更)
  • 10/x LiveDVD11.2のバグ修正版公開(やれない可能性が高い) (10/3追記)

日本語対応

日本語版オリジナル対応

現状の課題

  • x86版忘れてた
  • squashfsの配置最適化したいなぁ
  • ibus-mozc入れる
  • konsoleで文字が切れる
  • Apple MacBook Pro(5.5)でXがうまく起動しない(対応しない可能性大)

その他 (10/3 追記変更)

公開方法考え中

android-sdkの環境構築(on Gentoo Linux)

Gentoo Linux上でAndroid開発環境を構築したのでメモです。
EclipseでADTの設定完了までのメモ。

環境

流れ

  1. Eclipseandroid-sdk-update-managerのインストール
  2. 環境の設定
  3. Android SDKを導入する
  4. Android仮想マシンを作成する
  5. EclipseにADT(Android Development Tools)をインストールする
  6. サンプルプロジェクトを作成する

Eclipseandroid-sdk-update-managerのインストール

dev-util/eclipse-sdkとdev-util/android-sdk-update-managerの二つをインストールします。

$sudo emerge dev-util/eclipse-sdk dev-util/android-sdk-update-manager -q

環境の設定

PATHの追加

~/.bashrcに"/opt/android-sdk-update-manager/tools"を追加する

export PATH="/opt/android-sdk-update-manager/tools:~/bin:${PATH}"

こんな感じ

グループへの追加

Androidの開発をしたいユーザを"android"グループに追加します。

$sudo /usr/sbin/usermod -G android -a [ユーザ名]
Java-VMを設定する

Java-VMを設定します。特に問題なければ"icedtea6-bin"を選択します。
もし、Sun-JDKを既に導入して使用している場合はそちらでも問題ありません。

$eselect java-vm list
$eselect java-vm set user [icedtea6-binの番号]

最後に一度ログアウトして再度ログインする。

Android SDKを導入する

Android SDKを導入します。androidを使用します。

下記コマンドを実行する。

$android update sdk

実行後、GUIインストーラが立ち上がるので、"Accept All"を選択して"Install"ボタンをクリックする。

あとは、終わるのを待つだけです。終わったら終了します。

Android仮想マシンを作成する

下記手順で行います。

  1. androidコマンドを起動する
  2. "Virtual Devices"をリストから選択する
  3. "New"ボタンを選択する
  4. "Name"に"Android2.2"を入力する
  5. "Target"で"Android 2.2"を選択する
  6. "SD Card"のサイズを"256"と入力する
  7. "Create AVD"を選択する

作成後"Start"ボタンで動作確認出来ます。

EclipseにADTをインストールする

ADTをインストールします。
公式の方法だと途中でパッケージ不足で止まってしまったので、パッケージ導入用のサイトを追加して行います。

パッケージ導入用のサイトを登録する
  1. Eclipseを起動する
  2. Help -> Install New Softwearを選択する
  3. "Work with:"に"http://download.eclipse.org/releases/galileo/"を張り付ける
  4. "Add"ボタンを押して"galileo"等の名前をつけてOKを押す
  5. Eclipseを再起動する
  6. 再度"Install New Softwear"を開き"https://dl-ssl.google.com/android/eclipse/"を"Work with:"に貼り付ける
  7. リスト部分に"Developer Tools"が表示されるのでチェックボックスにチェックをいれ"Next"ボタンをクリックする
  8. "Finish"ボタンをクリックしてインストールする
SDKのロケーションを設定する
  1. Eclipseを起動する
  2. Window - Preferencesを開く
  3. リストからAndroidを選択する
  4. "SDK Location:"に"/opt/android-sdk-update-manager"と入力する
  5. "OK"ボタンをクリックする

以上で環境構築完了です。

Window - Android SDK and AVD Managerが起動できるようになります。

File - ProjectにAndroidが追加されています!sampleプロジェクトとかで簡単に早速確認できます!

トラブルシューティング

Android SDKのアップデートが途中で止まる

僕特有の環境ですが、LD_PRELOADにtcmallocを設定しているのが原因でした。

Android SDKをユーザホームに直接保存する場合

そのままではエラーになるので、ANDROID_SWT環境変数を設定する必要があります。

下記コマンドにより設定できます。.bashrcとかに書くと幸せ

$SWT_DIR=`java-config -p swt-3.5`; export ANDROID_SWT=`dirname $SWT_DIR`
$android

備考

icedtea6-binとは

OpenJDKベースのJDKです

今後の作成予定メモ

  • sampleプロジェクトの起動
  • バイス接続やる
  • NDKとか