2015年3月19日木曜日

Space and Time : 時空世界

「ミンコフスキー空間」ともいわれる、
ミンコフスキーの「時空」にかかわる資料を探していて、
英文資料を見つけ、
一部をテキスト化しようと試みたのはよしとして、

ところがどっこい「参考文献」にやたらと長いタイトルのドイツ語ばかりがありおりはべり、
…………

愛用の「HTMLエディタ」には表示できない文字が文中に多用されていて
苦心惨澹した結果、今後のためにも、作業を中断して、

今回ドイツ語に多用されていたアルファベットの拡張文字を機械的に
ユニコード変換してくれる、機能をでっちあげました。

機械的な作業は、機械におまかせ!――で。

とりあえず、途中までのミンコフスキーは、アップロードしましたが。

Space and Time : 時空世界事始



ユニコードに自動変換してくれる機能は、
先日の「Br Script のページ」に組み込み、
誰にでも、ご利用いただける形にしております。


「ラテン 拡張文字対応」ボタンは

一部の拡張文字をユニコード形式に表示変換します

例えば 《Ä》⇒《Ä》 に 書き換えます


変換される コード一覧

©
Ä
ä
Ï
ï
Ü
ü
Ë
ë
Ö
ö
ß
á
í
ú
é
ó
æ
‑
‒
–
—


ユニコード形式に変換される 文字の一覧

© Ä ä Ï ï Ü ü Ë ë Ö ö
ß á í ú é ó æ — 


拡張版「Br Script」―― JavaScript
よろしければ、お試しくださいませ。

ご案内 BrEx のページ

2015年3月17日火曜日

No Problem, No Life.

問題が発生すると大喜びしたとかいう、アインシュタインとヒルベルトに関連して、
その方面では有名らしい「ヒルベルトの問題」というのは、
「何が問題なのか」という問題についての問題点を考えてみましたが、
まあ、よくわかりかねる、問題なのです。

昨日、彼らの言葉の原文をサイトにアップしました。

http://theendoftakechan.web.fc2.com/NoProblem.html

その、「問題」の部分のみ、転載します。

『科学大辞典』第2版


ヒルベルトのもんだい ―― の問題  [Hlbert's problem]  (P. 1273, l)

 1900年パリで開催された第2回国際数学者会議でヒルベルトが数学の問題 (Mathematische Probleme) と題して行った講演で提出された23の問題をいう。これらの問題は20世紀における数学の研究に大きな目標を与え、数学の進歩・発展に著しい寄与をした。約 2/3 の問題が肯定的にあるいは否定的に解決された。残された問題の中にも多くの重要な研究がなされているが問題の意味する範囲が漠然としていたり、問題が大きすぎるため最終的解決の判定の困難なものもある。



それと、この前の、VB 2013 のサンプルコードですが、一部修正をしました。



マスターボリュームと同様のキー操作ができてしまうようなので、

すると、〈Home〉〈End〉〈Page Up〉〈Page Down〉にも対応してしまうってえので、
急な音量変化についていけない気の弱いその他大多数の人類のために、
〈Home〉あるいは〈End〉キーの二度打ちで、「ミュート」する機能を付け加えました。

あと、〈Pause / Break〉&〈Scroll Lock〉というほぼまったく無用となっている二大巨頭に、
「音量アップ」と「音量ダウン」の役割を与えてあります。
これは、この前、どうしても実装することができず、ブランクとなっていた、コマンド部分に該当します。

もとのコードも、どうでもいいような、修正をかけてあります。
before

Me.VolBar.Size = New System.Drawing.Size(45, 70)
Me.vLabel.Location = New System.Drawing.Point(14, 70)
Me.ClientSize = New System.Drawing.Size(45, 82)

after

Me.VolBar.Size = New System.Drawing.Size(42, 70)
Me.vLabel.Location = New System.Drawing.Point(13, 70)
Me.ClientSize = New System.Drawing.Size(42, 82)


追加箇所

before

    Private Sub VolBar_KeyDown(sender As Object, e As KeyEventArgs) Handles VolBar.KeyDown

    End Sub


after

    Private Sub VolBar_KeyDown(sender As Object, e As KeyEventArgs) Handles VolBar.KeyDown
        Select Case e.KeyCode
            Case Keys.Pause
                If VolBar.Value <> 10 Then
                    VolBar.Value = VolBar.Value + 1
                    VolUp()
                End If
            Case Keys.Scroll
                If VolBar.Value <> 0 Then
                    VolBar.Value = VolBar.Value - 1
                    VolDown()
                End If
            Case Keys.Home
                SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_MUTE))
            Case Keys.End
                SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_MUTE))
        End Select
    End Sub

    Private Sub VolDown()
        Dim TrcBarDirection As Integer = VolBar.Value
        For TrcBarDirection = 0 To VolLevel
            SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_DOWN))
        Next
        vLabel.Text = (VolBar.Value * 10).ToString()
    End Sub

    Private Sub VolUp()
        Dim TrcBarDirection As Integer = VolBar.Value
        For TrcBarDirection = 0 To TrcBarDirection
            SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_UP))
        Next
        vLabel.Text = (VolBar.Value * 10).ToString()
    End Sub



■ 全文(始) ■
Imports System.Runtime.InteropServices

Public Class Form1

    <DllImport("user32.dll")>
    Public Shared Function SendMessageW(ByVal hWnd As IntPtr, _
                                        ByVal Msg As Integer, _
                                        ByVal wParam As IntPtr, _
                                        ByVal lParam As IntPtr) As IntPtr

    End Function

    Private Const APPCOMMAND_VOLUME_MUTE As Integer = &H80000
    Private Const APPCOMMAND_VOLUME_UP As Integer = &HA0000
    Private Const APPCOMMAND_VOLUME_DOWN As Integer = &H90000
    Private Const WM_APPCOMMAND As Integer = &H319

    Friend WithEvents VolBar As TrackBar = New System.Windows.Forms.TrackBar()
    Dim vLabel As New Label
    Dim VolLevel As Integer

    Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown

    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        CType(Me.VolBar, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        '
        'VolBar
        '
        With Me.VolBar
            .Location = New System.Drawing.Point(0, 0)
            .Name = "VolBar"
            .Orientation = System.Windows.Forms.Orientation.Vertical
            .Size = New System.Drawing.Size(42, 70)
            .TabIndex = 0
            .TickStyle = System.Windows.Forms.TickStyle.Both
            .Value = "2"
        End With
        '
        ' Label
        '
        With Me.vLabel
            .Location = New System.Drawing.Point(13, 70)
            .Name = "VolLabel"
            .AutoSize = True
            .TabIndex = 1
            .TabStop = False
            .BorderStyle = BorderStyle.None
            .Text = ""
        End With
        '
        Me.Controls.Add(Me.VolBar)
        Me.Controls.Add(Me.vLabel)
        '
        'Form1
        '
        Dim w As Integer = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width
        Dim h As Integer = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(42, 82)
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
        Me.KeyPreview = True
        Me.Location = New System.Drawing.Point(w - 100, h - 170)
        Me.Name = "Form1"
        Me.Text = "♪"
        CType(Me.VolBar, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)
        Me.PerformLayout()
        '
        VolBar_Scroll(Nothing, Nothing)
        VolBar_ValueChanged(Nothing, Nothing)
    End Sub

    Private Sub VolBar_KeyDown(sender As Object, e As KeyEventArgs) Handles VolBar.KeyDown
        Select Case e.KeyCode
            Case Keys.Pause
                If VolBar.Value <> 10 Then
                    VolBar.Value = VolBar.Value + 1
                    VolUp()
                End If
            Case Keys.Scroll
                If VolBar.Value <> 0 Then
                    VolBar.Value = VolBar.Value - 1
                    VolDown()
                End If
            Case Keys.Home
                SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_MUTE))
            Case Keys.End
                SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_MUTE))
        End Select
    End Sub

    Private Sub VolBar_Scroll(sender As Object, e As EventArgs) Handles VolBar.Scroll
        Dim TrcBarDirection As Integer = VolBar.Value

        If VolBar.Value > VolLevel Then

            For TrcBarDirection = 0 To TrcBarDirection
                SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_UP))
            Next

        Else

            For TrcBarDirection = 0 To VolLevel
                SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_DOWN))
            Next

        End If
        vLabel.Text = (VolBar.Value * 10).ToString()
        SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_MUTE))
    End Sub

    Private Sub VolBar_ValueChanged(sender As Object, e As EventArgs) Handles VolBar.ValueChanged
        VolLevel = VolBar.Value
        SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_MUTE))
    End Sub

    Private Sub VolDown()
        Dim TrcBarDirection As Integer = VolBar.Value
        For TrcBarDirection = 0 To VolLevel
            SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_DOWN))
        Next
        vLabel.Text = (VolBar.Value * 10).ToString()
    End Sub

    Private Sub VolUp()
        Dim TrcBarDirection As Integer = VolBar.Value
        For TrcBarDirection = 0 To TrcBarDirection
            SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_UP))
        Next
        vLabel.Text = (VolBar.Value * 10).ToString()
    End Sub

End Class
■ 全文(終) ■

2015年3月14日土曜日

Visual Basic 2013 で 音量調整アプリ


簡単なものですが、以下の要領で、実行ソフトが、コードのコピペだけで完成します。

スライダーのマウス操作と、キーボードの矢印「↑、↓、←、→」で、
パソコンの音量が調整できます。
マスターボリュームの操作と同じで、アクティブな状態で、
「↑、←」で音量アップ、「↓、→」で音量ダウンができます。

トレイに(この場合は タスク バー にショートカットを)常駐させて、簡単に素早い対応が可能です。
* 微調整には、不向きです。


◎ 謝辞 ◎

いろいろなサイトを参考にさせていただきました。
どこをどうつないでこういう形になったのか、すでに皆目わかりません。
メインの箇所だけでも、参考サイトを紹介したかったのですが、
膨大なサンプルコードの中から必要となる部分をつなげているような記憶がありますのみで、
それらをどこから引いてきたものやら、まったくもって混沌としております。
――まず、参考図書は、必需品でした。
先人の皆様に、お礼を申し上げます。

「ありがとうございました」


◆ 作り方 ◆

Microsoft のサイトにアクセスして、
Visual Studio Express 2013 for Windows Desktop 〔無料〕 をインストールする。
すごく時間がかかる。
その間に、できたら、図書館などに出かけて、参考図書を借りてくる。
無事にインストールできたら、そのまま、起動させる。

「新しいプロジェクト」を作成する。
Visual Basic の
「Windows フォーム アプリケーション」を選択する。

しばらく待つと(待ち時間はコンピュータのパフォーマンスによります)
「Form1.vb [デザイン]」という画面になるので、窓枠の中、
「Form1」と書いてある「ウィンドウのどこか(簡単に中央あたり?)」をダブルクリックする。
――と、「Form1.vb」という画面が追加表示されるので、
(さっきの画面は右側のタブに隠れています)


Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub
End Class


という具合に、すでに記述してある文字を全部選択して、次のものに置き換える。


Imports System.Runtime.InteropServices

Public Class Form1

    <DllImport("user32.dll")>
    Public Shared Function SendMessageW(ByVal hWnd As IntPtr, _
                                        ByVal Msg As Integer, _
                                        ByVal wParam As IntPtr, _
                                        ByVal lParam As IntPtr) As IntPtr

    End Function

    Private Const APPCOMMAND_VOLUME_MUTE As Integer = &H80000
    Private Const APPCOMMAND_VOLUME_UP As Integer = &HA0000
    Private Const APPCOMMAND_VOLUME_DOWN As Integer = &H90000
    Private Const WM_APPCOMMAND As Integer = &H319

    Friend WithEvents VolBar As TrackBar = New System.Windows.Forms.TrackBar()
    Dim vLabel As New Label
    Dim VolLevel As Integer

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        CType(Me.VolBar, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        '
        'VolBar
        '
        With Me.VolBar
            .Location = New System.Drawing.Point(0, 0)
            .Name = "VolBar"
            .Orientation = System.Windows.Forms.Orientation.Vertical
            .Size = New System.Drawing.Size(45, 70)
            .TabIndex = 0
            .TickStyle = System.Windows.Forms.TickStyle.Both
            .Value = "2"
        End With
        '
        ' Label
        '
        With Me.vLabel
            .Location = New System.Drawing.Point(14, 70)
            .Name = "VolLabel"
            .AutoSize = True
            .TabIndex = 1
            .TabStop = False
            .BorderStyle = BorderStyle.None
            .Text = ""
        End With
        '
        Me.Controls.Add(Me.VolBar)
        Me.Controls.Add(Me.vLabel)
        '
        'Form1
        '
        Dim w As Integer = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width
        Dim h As Integer = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(45, 82)
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
        Me.KeyPreview = True
        Me.Location = New System.Drawing.Point(w - 100, h - 170)
        Me.Name = "Form1"
        Me.Text = "♪"
        CType(Me.VolBar, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)
        Me.PerformLayout()

        VolBar_Scroll(Nothing, Nothing)
        VolBar_ValueChanged(Nothing, Nothing)
    End Sub

    Private Sub VolBar_KeyDown(sender As Object, e As KeyEventArgs) Handles VolBar.KeyDown

    End Sub

    Private Sub VolBar_Scroll(sender As Object, e As EventArgs) Handles VolBar.Scroll
        Dim TrcBarDirection As Integer = VolBar.Value

        If VolBar.Value > VolLevel Then

            For TrcBarDirection = 0 To TrcBarDirection
                SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_UP))
            Next

        Else

            For TrcBarDirection = 0 To VolLevel
                SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_DOWN))
            Next

        End If
        vLabel.Text = (VolBar.Value * 10).ToString()
        SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_MUTE))
    End Sub

    Private Sub VolBar_ValueChanged(sender As Object, e As EventArgs) Handles VolBar.ValueChanged
        VolLevel = VolBar.Value
        SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_MUTE))
    End Sub

End Class


気が向いたら、隠されている右側のタブをクリックして、何の変哲もないことを、確認してみる。

「▶ 開始」と書かれている、すぐ上についているボタンをクリックする。
(この操作はキーボードの「F5」キーを押しても同じです)



このような見てくれのものが、画面の右下に現れる。
(同時に「ボリュームレベル」表示の影のようなものが画面左上に出現しては消えます)
いじくったり、操作してみる。
「×」をクリックして、終了する。

ついでに、そのまま、
Visual Studio Express 2013 for Windows Desktop を一度終わらせる。
プロジェクトを保存するかどうか、聞いてきた場合には、好きにする。

実行ファイルは、この「▶ 開始」ボタンのクリックで、すでにできているので、
あとは参考書などを見ながら、実行ファイルのありかを探して、
わかりやすい場所に移動させて、ついでにショートカットなども作成してみる。

以上です。
――振り返れば、思い出されるのは、
Visual Studio Express 2013 for Windows Desktop 〔無料〕 のインストール作業が、一番大変だったことであります。


それで、どうしてこれで音量調整が可能なのか、核[コア]となる部分が理解できていないので、
もう一度、サンプルコードを紹介してくださっていたサイトで確認しようとしたのですが、
繰り返しにはなりますが、どうしても見つかりません。
もともとは


    Private Sub Volume_Bar_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Volume_Bar.ValueChanged

        TrcBarValue = Volume_Bar.Value
        SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_MUTE))

    End Sub

    Private Sub Volume_Bar_Scroll(ByVal sender As Object, ByVal e As EventArgs) Handles Volume_Bar.Scroll

        Dim TrcBarDirection As Integer = Volume_Bar.Value

        If Volume_Bar.Value > TrcBarValue Then

            For TrcBarDirection = 0 To TrcBarDirection

                SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_UP))

            Next

        Else : For TrcBarDirection = 0 To TrcBarValue

                SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_DOWN))

            Next

        End If
        SendMessageW(Me.Handle, WM_APPCOMMAND, Me.Handle, New IntPtr(APPCOMMAND_VOLUME_MUTE))

    End Sub


のように書かれていたサイトだと思うのですが、
もしご存知の方がいらっしゃいましたら、ご教示いただけましたら幸いです。

そこに、たどりつけたなら判明するはずですが、
実はほぼ、そのサイトのコードの丸写しなのです。
それで、現在、無断引用状態となっておるのです。
よろしく、お願いいたします。


03/15 (追記)
ホイールマウスのスクロール操作でも動作します。
結果、実際の音量と「現在の音量の目安を示す数字」とが乖離した状態になりますと、
マスターボリュームをクリックして表示させ、マスターボリュームのほうで、
「目安の数字」に合わせていただけますると、メンテナンスの終了となります。

また、早速ながら、次のページを教えていただきましたが、
「核の部分」がまだ判明しておりませんので、引き続きよろしくお願い申し上げます。

vb.net - Reducing all sound volumes except for my own app
http://stackoverflow.com/questions/24717571/reducing-all-sound-volumes-except-for-my-own-app

 このサイトは、一部アクセスポイントからは、遮断されるようです。
 理由は、わかりませんが……

2015年3月7日土曜日

Javascript で <BR> 改行タグ自動追加

ホームページを作成していて、過去のテキストに <BR> タグをつける作業に思いのほか手間のかかることを思い知らされました。


Visual Basic 2013 で、それ専用のアプリを最初作ったのですが、「これは Web page で自動挿入は可能だろう」と思いつき、ローカル環境でも動作する、JavaScript のページを作ってみました。

これも先人の作業を参考にしようと、探してみたのですが、寡聞にして、オンラインモードのものしか見当たりませんでした。


今回のものは、そのページさえ表示させていれば、動くしろものになっているはずです。

クリック一発で、<BR> もしくは <br> を改行マークにつけ加えます。
JavaScript だけの簡単なコードですので、軽快に動作します。

本日、アップしました。
よろしければ、お試しください。

Br Script のページ

2015年3月5日木曜日

Apollo ; Lost Moon

昨日、今までの内容を整理して、ホームページとしてアップしました。
http://theendoftakechan.web.fc2.com/

本日に更新した内容は、次の通りです。


映画 “Apollo 13” に、有名な言葉があります。


Gene Kranz :
With all due respect, sir,
I believe this will be our finest hour.
or
Gene Kranz :
With all due respect, sir,
I believe this is going to be our finest hour.

 ☆ このシチュエーションは、以下のようになっています。


Darkest Hour :
The American space program is on the brink of one its major disasters, but it's successfully inverted.
Chris Kraft :
This could be the worst disaster NASA's ever faced.
Gene Kranz :
With all due respect, sir, I believe this will be our finest hour.

 ☆ このほかのバリエーションも記録しておきましょう。

NASA Director :
This could be the worst disaster NASA's ever faced.
Gene Kranz :
With all due respect, sir, I believe this is gonna be our finest hour.

Henry Hurt :
We've got the parachute situation, the heat shield, angle of the trajectory and the typhoon.
There's just so many variables, I'm at a loss --
Chris Kraft :
I know what the problems are, Henry. This could be the worst disaster NASA's ever experienced.
Gene Kranz :
With all due respect, sir, I believe this is gonna be our finest hour.
 ◆ Google 翻訳 ◆

ヘンリー・ハート:
私たちは、パラシュートの状況、熱シールド、軌道と台風の角度を(軌道の角度と台風)持っている。
ただ非常に多くの変数があります、私は途方に暮れてよ…
クリス・クラフト:
私は問題が何であるかを知っている、ヘンリー。これは、NASAがこれまで経験した最悪の災害の可能性があります。
ジーン・クランツ:
すべて原因に関しては、先生、私はこれが私たちの最高の時間になりそうだと考えています。


◎ NASAの記録 によると、こう残されています。


Apollo 13 transcription [PDF] 〔約 20MB〕 要注意:ダウンロードに時間がかかります


――が、勉強不足のため、該当箇所が見当たりませんでした。
 各自でご確認ください。
ちなみに (P. 764) に、以下の記述がありました。

 05 22 50 26   S-2
 Iwo Jima Control, this is Swim 2. I have a visual bearing 182.



〔参考資料〕
October 2009 Diamond Harvard Business Review
 DIAMOND ハーバード・ビジネス・レビュー 2009年10月号 ダイヤモンド社/発行
‘Cognitive Fitness’
Roderick W. Gilkey
 Clint D. Kilts

 「脳は死ぬまで鍛えられる」

エモリー大学 医学部 教授 ロデリック W.ギルキー
エモリー大学 医学部 教授 クリント D.キルツ
鈴木泰雄/訳

  (PP. 107-108)

 さらに、目新しいことやイノベーションに理解のある人は、危機に強い。なぜなら、たとえ最悪の状況でも、チャンスを見出そうとするからだ。アポロ一三号に緊急事態が発生した最悪の瞬間、管制塔飛行主任のユージーン・F・クランツが示した反応はまさしくその典型である。その時、彼はこう述べた。「最大の栄光の瞬間になるよ」
  クランツは長年にわたって、NASA(アメリカ航空宇宙局)のしきたりや方針、やり方に異議を唱えてきた。そして、従来の縦割り組織から有能な人材を引き抜き、組織の壁を超えて特別チームを編成した。
  また、専門知識を吸収し、リレーションシップを築くために、自分のいる建物のなかに外部ベンダーの事務所を用意した。ペンシルバニア大学ウォートン・スクール教授、マイケル・ユシームの『九つの決断』(注3)のなかで、彼は有能かつ創造的リーダーの鏡として描かれている。
(HBR 2007年11月号より)

【注】
3)
Michael Useem, The Leadership Moment: 9 True Stories of Triumph & Disaster & Their Lessons for US All, Crown Business, 1998. 邦訳は1999年、光文社より。



“APOLLO 13”

(P. 95)
 “Hey,” Swigert shouted down to Houston, “we've got a problem here.”
 “This is Houston, say again please,” Lousma responded.
 “Houston, we've had a problem,” Lovell repeated for Swigert. “We've had a main B bus undervolt.”
 “Roger, main B undervolt. O.K., stand by, 13, we're looking at it.”



―― First Mariner Books edition 2006 ――

Mission Control to bring the crew back in what many consider
NASA's finest hour.



『九つの決断』


第三章 最善をつくす

(PP. 90-91)

「こちらに問題が生じた」
  一九七〇年四月十三日。声の主は宇宙飛行士のジャック・スワイガートで、宇宙船〈オデッセイ〉からの交信だった。
  アメリカ航空宇宙局(NASA)のミッション・コントロール(飛行管制センター)はただちに聞き返した。「こちらヒューストン。もう一度、願います」
  今度は船長のジェームズ・ラベルが答えた。「ヒューストン、こちらに問題が生じた」
  首席飛行実施責任者のユージーン(ジーン)・クランツにとって、アポロ13号からのこのメッセージは、彼の人生における最大の試練を予告していた。
  わずか九ヵ月前の一九六九年七月二十日にアポロ11号が月面に着陸し、 ニール・アームストロングとバズ・オルドリンが〝静かの海〟に降り立った。一九六〇年代の終わりまでに人類を月面に着陸させるというジョン・F・ケネディの公約が実現したのである。さらに、五ヵ月前にはアポロ12号のピート・コンラッドとアラン・ビーンが〝嵐の大洋〟に着陸した。そして、五五時間前の一九七〇年四月十一日(土曜日)午後一時十三分、ケネディ宇宙センターからアポロ13号が打ち上げられた。そのときは何の問題もない宇宙飛行に見え、月面のフラ・マウロ高地を目指していた。しかし、それがにわかに不運な旅に変わったのである。
  NASAの技術者のジョージ・ブリスは、管制センターの奥の部屋でコンソールのコンピュータ画面に釘付けになり、肝[きも]を冷やしていた。「問題どころではない」と、ブリスは同僚のサイ・リーバゴットに言った。モニターがその理由を物語っていた。オデッセイにある二個の酸素タンクのうち一個が空になっていたのである。さらに、酸素を使って電力を生成する燃料電池は、三個のうち二個の圧力が急激に落ちていた。
  ジーン・クランツのもとに異常の報告が集まるにつれて、状況は深刻になっていった。宇宙飛行士と船体はダメージを受けていないが、生命維持に必要な装置になんらかの爆発が起こって損傷したことは明らかだった。

(PP. 110-112)

 どの分野でも、ほぼ確実に失敗するだろうと予測したマネージャーは、悪い予感が次々に実現する悪循環にあっさりとおちいり、悪い可能性が事実に変わっていく。 ユージーン・クランツは本能的に、精神的な危機の存在を理解した。「全員、冷静になろう」と、クランツは爆発の直後に強調した。「問題を解決しよう」。そして、管制チームのメンバーに、うまく機能していないことに気をとられず、むしろ機能していることに集中するようにと警告した。サイ・リーバゴットや他の管制官が次から次にこわれたシステムについて報告するのを聞いて、クランツは部下に対し、まだグラスに半分も残っていると考えさせた。「宇宙船で、まだ正常に機能しているところはどこだ?」
  やがて、 エンジエアたちが飛行土の生命を救うシナリオを書けないようだとわかると、クランツは自分が希望をもっていることを再度、主張した。われわれは「敗北を認めていないし、決して降参するつもりはない。搭乗員たちは地球に向かっている」。ロン・ハワード監督の映画『アポロ13』でクランツを演じる俳優のエド・ハリスは、クランツの姿勢を完璧に要約している台詞をつぶやく。「失敗は選択肢にない」
  ~~。問題は解決されるだろう。「宇宙船と飛行士を生還させられないだろうと考えたことは一度もない」と、クランツは振り返っている。彼は記者会見でも大胆に言ってのけた。「彼らを帰還させられるかどうかの問題ではない。彼らをどう帰還させるかという問題だ」(クランツは、ある記者が隣りの同僚にこうささやくのを耳にしたという。「まったく、傲慢な奴だな」)
  そうした断固たる楽観主義は、根拠のない信念ではなく、訓練された自信の賜物[たまもの]である。「いったん、降伏や条件つきの降参を考えたら、その坂道を転げ落ちる」と、クランツは警告する。「そのように考えはじめたとたんに、実際に失敗するのだ……とぎすまされた、ぎりぎりの精神をもってこそ、こうした生死を分ける状況に取り組むことができ、成功へと導ける」

(P. 113)

クランツが自信をもって予測したとおり、彼のチームはこの問題を解決したのである。

教訓
ともに働く人びとに最高のパフォーマンスを期待することは、成功への必要条件である。高い基準と楽観的な見通しから、好ましい結果が得られるという保証はない。しかし、確実に言えることは、そうした心構えが欠如していれば、反対の結果しか生まれないということである。  積極的な期待が人びとを行動にかりたてることは、研究からも、経験からも、明らかである。例として、二つの新しい勤務習慣が製造業の生産性におよぼす影響を調べた研究を見てみよう。一つの製造工場群では、従業員が複数の仕事をローテーションして、つねに新しいことに挑戦する気持ちをもてるようにした。もう一つの工場群では、挑戦する気持ちを浸透させる別の方法として、仕事の幅を広げた。そして、工場によっては、上級管理職が新しい勤務計画がうまくいくと期待しているところもあれば、ほとんど進歩はないだろうと思っているところもあった。その結果、仕事をローテーションさせたか、幅を広げたかにかかわらず、上級管理職の態度が続果を左右していたことがわかった。特定の勤務習慣ではなく、高い期待が高い生産性を実現し、低い期待のもとでは生産性も低かったのである。つまり、リーダーであるあなたに成功する自信がなければ、一緒に働く人びとはもっと自信がないということだ。

  ユージーン・クランツはアポロ13号のことを振り返って、次のように述べている。「リーダーは動じてはならない。周囲で何が起こっていても、徹頭徹尾、冷静で聡明でなければならない」

(P. 116-117)

 周囲の声をよく聞いて得た情報は、経験という枠組みを通して吟味される。「あらゆる情報源から情報を集めたら、自分の知識を活用する」と、クランツは言う。「送られてくる情報を受け入れたら、その妥当性を確認して、それからすべての断片を一つにまとめ、全体像を描くのだ」
  効果的な意思決定には、相反する主張の是非を判定することも必要だ。クランツは、すべての意見が賞賛に値し、かつすべてが上司からの意見であるときも、この判定を避けなかった。

(P. 120)

 つまり、大きな計画ではチームワークという意識が不可欠になる。苦境に立たされても楽観主義を維持することができ、さらにはそれぞれの実力の総和以上の行動を生み出せるのは、チームワークだけなのである。

(P. 121)

クランツのチームは必要なものを獲得した。すなわち、「最低限の時間で、基本的に百パーセント正しい判断を下す」能力である。こうして強力なチームができあがり、個人のもろさを超越することができた。「個人では失敗することもあるが、チームは失敗しない」と、クランツは言う。しかし、どんなに些細な欠点も防がなければならない。クランツはこうつけ加える。「チームのメンバーはそれぞれが潜在的にヒーローで、ヒーローたちが集まって働いている」。自分がヒーローになるときがきたら、準備はできているというわけだ。


http://theendoftakechan.web.fc2.com/Apollo.html

2015年3月2日月曜日

ヒルベルト 「無矛盾性」の追求

【ヒルベルトが追求したもの】についての資料です



『ヒルベルトの挑戦 世紀を超えた23の問題』


 (P. 11)
ヒルベルトは、問題は数学の生命だと信じていた。ある論題から問題が生まれなくなったなら、その分野は死んだも同然だ。

 (P. 15)
 一九〇〇年八月八日水曜日、ダヴィド・ヒルベルトは、パリで開かれた国際数学者会議の演壇に上がった。 これから、数学の問題にかんする講演を行うのだ。~~。
「その向こうに未来が隠れているベールを、進んで持ち上げようとしない人がいるでしょうか」とヒルベルトが口を開いた。~~。

 (P. 16)
 ヒルベルトが問題を提示したのは、問題を解くことによってこそ数学が進展すると信じていたからだ。問題はその分野が生きていることの証なのだ、と聴衆に説いた。



『ヒルベルト -現代数学の巨峰』


 (P. 129)
 「純粋数学の発展は、古い諸問題が新しい手法をもって解決される時に可能になる」とクラインはよく学生たちに語った。「新しい手法の適用によって古い諸問題に関するより進んだ理解が可能になると、自然に新しい諸問題が現われる」
 クラインのこの言葉を例証するものとして、ヒルベルトが新たにとりかかった研究計画に優るものはおそらくあるまい。

 (PP. 146-147)
 「ある種の問題が、数学的科学全般の進展に関して持つ深い意義と、それらが個々の研究者の仕事において持つ重要な役割とを、われわれは否定し得ない。科学の特定の分野が豊富な問題を持つ限り、その分野は生き続ける。問題の欠除は、そのような分野の独立的発展の消滅あるいは終焉の前兆に他ならない」

 (PP. 155-156)
 「ここで、数学的問題が時として提供する諸困難と、それらをいかに乗りこえるかということについて、若干の注意をしておくことが適当だと考える」
 「もし、われわれが数学的問題を解くことに成功しないとすれば、~~」

14 空間、時間そして数

 (PP. 218-219)

 ヒルベルトとは対照的に、一九〇八年の夏には、ミンコフスキーは想像力にあふれていた。九月には、彼は電気力学に関する最近の結果を、~~報告した。この講演の題目として彼は「空間と時間」を選んだ。

 彼はゲッティンゲンの彼の学生たちによくいったものである、「アインシュタインの深い理論の論述は数学的にはぎこちないものです。こういえるのは、彼がチュリヒで私から数学をならったからです」
 その特殊相対性理論の中で、アインシュタインは力学的なできごとを時計と物差しによって記述する際に、その内容は、その計器がその中において用いられる実験室の運動に依存することを示し、さらに、同一の物理現象の異なった記述相互間の数学的関係を述べた。
 そしていま、~~「偉大な幾何学化の瞬間」が訪れた。数分間の間に、ミンコフスキーは特殊相対性理論に、彼自身のきわ立って簡明な空間―時間 (Space-Time) の数学的アイディアを導入し、それによって、一現象の異なる記述が数学的に極めて簡明に表わされ得ることを示した。
「三次元の幾何学は、四次元幾何学の一章になります」

 (P. 248)
 「物理学は」とヒルベルトはいった、「物理学者には難しすぎる」
 これはいささか高慢な言葉のように思えるが、物理学者たちは彼の言わんとするところを理解した。

 (PP. 275-277)
 ゲッティンゲンで、毎週のヒルベルト-デバイのセミナーにでていた数少ない学生たちは、物理学の「生きた脈搏」がその指先に感じられるような思いをした。アインシュタインによる一般相対性理論の展開される模様は大いに興味を持って学ばれた。他の人々による同じ目的のための仕事についても学習がなされた。ヒルベルトが特に印象を受けたのは、グスタフ・ミーのアイディアであったが、当時彼はグライフスヴァルトにいて、相対論の原理に基づいて物質論を展開することを試みていた。~~。
 両人とも、ほとんど同時にゴールに到着した。冬に入って西部戦線の状況が落ちついたのでアインシュタインは「一般相対性理論について (Zur allgemeinen Relativitatstheorie) 」と題する二部の論文を一一月の一一日と二五日にベルリン・アカデミーに提出した。ヒルベルトは一方、彼の物理学の基礎 (Grundlagen der Physik) についてのノートを一九一五年一一月二〇日にゲッティンゲンの王立科学協会に提出した。
 ~~。アインシュタインはもともと物理学の基本的諸法則を記述するためにはもっとも初等的な数学があればそれで十分であるという考えであった。事態がそれとは異なることを彼が理解し~~彼が見出したことは、~~ミンコフスキーこそが、空間-時間に関する数学的概念を構成し、それによって彼の一般相対性理論の定式化が可能にされるということであった。

 (PP. 330-332)
 一九二二年以降、ヒルベルトは最早物理学者ではなくなった。~~。
 物理学における彼独自の業績は彼を落胆させるようなものでしかなかった。~~。彼がミンコフスキーとの共同研究にとりかかって以来の目標であった物理学の公理化はつねに彼の手からすり抜けた。

 ヒルベルトによる物理学への寄与の本質的なものは、一つには彼の積分方程式論についての成果を通して生みだされた数学的方法であり、もう一つには、この方法によって可能になった理論の統一化であった。

 (P. 425)
 ヒルベルトの死後ゲッティンゲンのその墓に置かれた碑文……

    Wir mussen wissen.
    Wir werden wissen.

    われわれは知らねばならない。
    われわれは知るであろう。 



〔再掲〕
 (P. 146)
「科学の特定の分野が豊富な問題を持つ限り、その分野は生き続ける。問題の欠除は、そのような分野の独立的発展の消滅あるいは終焉の前兆に他ならない。すべての人間的働きが特定の目標をもつのと同様に、数学的研究はその対象となる問題を必要とする。」

◆ この表現と似たような感じのアインシュタインの言葉を探してみました ◆

 〝あらゆる困難の真ん中に機会がある。〟
 という一文は前に紹介しましたが、まずはその同じ書籍から。

『増補新版 アインシュタインは語る』

(P. 17)
私には特別な才能などありません。ただ好奇心が激しく強いだけです。
    アインシュタイン伝の著者カール・ゼーリッヒへの手紙、1952年 3月11日。「アインシュタイン・アーカイヴ」39-013.


『あなたにもわかる相対性理論』

茂木健一郎[もぎ・けんいちろう]/著

 科学の感動――まえがき

 (PP. 003-004)
 人間の脳というのは不思議なもので、たった一つの経験が大きな影響を残し、人生の行く末を変えることがある。
 私にとっては、小学校五年生くらいの時に読んだアルベルト・アインシュタインの伝記がそうであった。~~。
 アインシュタイン自身、「感動するのをやめた人は、生きていないのと同じである」という言葉を残している。ここでアインシュタインが言っている「感動」とは、この宇宙を支配している法則にふれることで私たちの心に起きるさざ波のことであろう。それは、発見する歓びであり、創造へと向かう衝動である。
 科学が明らかにするこの世界の真実にふれて、私たちの心は戦慄[せんりつ]する。生きることの意味が、より深いところで確認できるようになる。少々の困難ではへこたれない、前向きに生きる力が湧[わ]き上がってくるのである。


    ☆ こちらはどうやら、流布している和訳は「感動しない人生を送るのは、生きていないことと同じである」のようで、《教えて!goo》のサイト に、詳しい説明がありました。

◎ この言葉に関する主な英文資料を次にあげておきます。

Albert Einstein   (Wikiquote)

    The most beautiful experience we can have is the mysterious. It is the fundamental emotion that stands at the cradle of true art and true science. Whoever does not know it and can no longer wonder, no longer marvel, is as good as dead, and his eyes are dimmed. It was the experience of mystery ― even if mixed with fear ― that engendered religion. A knowledge of the existence of something we cannot penetrate, our perceptions of the profoundest reason and the most radiant beauty, which only in their most primitive forms are accessible to our minds: it is this knowledge and this emotion that constitute true religiosity. In this sense, and only this sense, I am a deeply religious man.
            ......
            The most beautiful thing we can experience is the mysterious. It is the source of all true art and science. He to whom this emotion is a stranger, who can no longer pause to wonder and stand rapt in awe, is as good as dead: his eyes are closed.
              ......
            The most beautiful emotion we can experience is the mysterious. It is the fundamental emotion that stands at the cradle of all true art and science. He to whom this emotion is a stranger, who can no longer wonder and stand rapt in awe, is as good as dead, a snuffed-out candle. To sense that behind anything that can be experienced there is something that our minds cannot grasp, whose beauty and sublimity reaches us only indirectly: this is religiousness. In this sense, and in this sense only, I am a devoutly religious man."
            ......


PRINCETON ALUMNI WEEKLY
VOLUME LXV. NO. 1 SEPTEMBER 22, 1964
SPECIAL ISSUE WITH "UNIVERSITY" MAGAZINE
 (P. 31)
 Perhaps Albert Einstein has put it as succinctly as any one: “The most beautiful thing we can experience is the mysterious. It is the source of all true art and science. He to whom this emotion is a stranger, who can no longer pause to wonder and stand rapt in awe, is as good as dead: his eyes are closed. This insight into the mystery of life, coupled though it be with fear, has also given rise to religion. To know that what is impenctrable to us really exists, manifesting itself as the highest wisdom and the most radiant beauty our dull faculties can comprehend only in their most primitive forms―this knowledge, this feeling is at the conter of true religiousness.”



つまり は

◆  問題のない人生[の時間]は、そのとき死んでいたとしても、たいして違わない。 ◆

    ☆ 繰り返しになりますが、問題の発生をただの「トラブル」と捉えるか、それとも「トラブル・シューティングのチャンス」と捉えるかは、ひとそれぞれの問題に相違ありません。――事実として「問題[trouble]が発生した」のです。それが当事者にとって、《 “Problem” or “No problem” 》のいずれであるかは、まさにその当事者 = 私たち次第なのでしょう。



    ◇ 西欧の『バイブル』には試練についての記述があります ◇

    『聖書 新共同訳』

「コリントの信徒への手紙 一」 10. 13
あなたがたを襲った試練で、人間として耐えられないようなものはなかったはずです。神は真実な方です。あなたがたを耐えられないような試練に遭わせることはなさらず、試練と共に、それに耐えられるよう、逃れる道をも備えていてくださいます。

    ◇ また有名な “Apollo 13” の映画があります ◇

このことについては、項を改めたいと思います。